{"version":3,"sources":["serviceWorker.js","interfaces/model/Common.ts","interfaces/model/MaterialIndex.ts","interfaces/model/MaterialFamily.ts","interfaces/model/MaterialSubFamily.ts","interfaces/model/MaterialReferential.ts","interfaces/model/Material.ts","components/Filters/InputFilter.tsx","components/Filters/ResetFilter.tsx","helpers/index.ts","components/Filters/SelectFilter.tsx","components/TypeSelector/context/TypeSelectorContext.tsx","components/TypeSelector/TypeSelector.tsx","i18n/index.ts","contexts/LanguageContext.tsx","contexts/MixedChartContext.tsx","components/Chart/Analysis/Filters.tsx","interfaces/model/Chart.ts","interfaces/model/CompanySubType.ts","interfaces/model/CompanyType.ts","interfaces/model/Company.ts","interfaces/model/Container.ts","interfaces/model/ContainerDemand.ts","interfaces/model/ContainerDemandStatus.ts","interfaces/model/InvoiceType.ts","interfaces/model/KPI.ts","interfaces/model/Organization.ts","interfaces/serializer/AbstractSerializer.ts","actions/API.ts","actions/Contact.ts","actions/Currency.ts","actions/User.ts","actions/Preference.ts","interfaces/providers/abstract.ts","interfaces/providers/abstractBCMPortal.ts","interfaces/providers/Chart.ts","actions/BCM_Constant.ts","interfaces/providers/Company.ts","interfaces/providers/Container.ts","interfaces/providers/ContainerDemand.ts","interfaces/providers/ContainerDemandStatus.ts","interfaces/providers/KPI.ts","interfaces/serializer/MaterialSerializer.ts","interfaces/providers/Material.ts","interfaces/providers/MaterialFamily.ts","interfaces/providers/MaterialSubFamily.ts","interfaces/providers/Organization.ts","contexts/UserContext.tsx","contexts/BaseStoreContext.tsx","contexts/ChartContext.tsx","contexts/FormContext.tsx","contexts/AppInsightContext.tsx","routes/withTracker.jsx","routes/CustomRoute.tsx","hooks/useLogged.ts","hooks/useNotLogged.ts","components/Dropdown/index.tsx","hooks/useOutsideClick.ts","components/Layout/AppBar/Items/NavDropdown.tsx","components/Dropdown/DropdownItem.tsx","components/Layout/AppBar/Items/NavItem.tsx","components/Layout/AppBar/FiltersBar.tsx","components/Layout/AppBar/index.tsx","components/Layout/ReturnToTop.tsx","components/Layout/index.tsx","components/Common/index.tsx","components/Loader/index.tsx","components/Chart/Abstract/Bar.tsx","components/Chart/Abstract/FilterMaterials.tsx","components/Chart/Abstract/Mixed.tsx","components/Chart/Analysis/Co2.tsx","components/Chart/Analysis/IndexValue.tsx","components/Chart/Abstract/CutsomBar.tsx","components/Tile/index.tsx","components/Chart/Analysis/KPI.tsx","hooks/useWindowSize.ts","components/Chart/Abstract/Bars.tsx","components/Chart/Analysis/Revenue.tsx","components/Chart/Analysis/Volume.tsx","contexts/Co2ChartContext.tsx","contexts/VolumeChartContext.tsx","components/Button/Export/AllSerializer.ts","components/Button/ExportButton.tsx","components/Button/Export/MovementSerializer.ts","components/Button/MovementExportButton.tsx","components/Chart/Abstract/StackedBars.tsx","components/Chart/Analysis/CircularEconomy.tsx","contexts/CircularEconomyChartContext.tsx","components/Button/ExportIndexButton.tsx","pages/Analysis.tsx","contexts/MovementCo2ChartContext.tsx","contexts/MovementVolumeChartContext.tsx","components/TypeSelector/MovementTypeSelector.tsx","components/TypeSelector/context/MovementTypeSelectorContext.tsx","pages/Movement.tsx","components/Card/Card.tsx","components/Card/EmbedCard.tsx","components/Catalog/CatalogItems.tsx","components/Catalog/Catalog.tsx","hooks/useDebounce.ts","pages/Catalog.tsx","pages/CatalogItem.tsx","components/Form/Form.tsx","components/Form/Field.ts","components/Form/Contact.tsx","components/Form/Currency.tsx","components/Form/Language.tsx","components/Form/Login.tsx","components/Form/Password/PasswordValidationBlock.tsx","components/Form/Password/ResetPasswordApplyForm.tsx","components/Form/Password/PasswordValidator.ts","components/Form/Password/ResetPasswordRequestForm.tsx","pages/Contact.tsx","pages/ResetPassword/CommonResetPassword.tsx","pages/user/Account.tsx","pages/Welcome.tsx","components/TableContainer/TableColumnFilter.js","components/TableContainer/TablePagination.js","components/TableContainer/Table.js","components/Chip/Chip.tsx","pages/Demands/Materials.tsx","pages/Demands/DemandsInternal.tsx","pages/Demands/DemandsExternal.tsx","routes/passwordRoutes.ts","pages/ResetPassword/ResetPasswordRequest.tsx","pages/ResetPassword/ResetPasswordApply.tsx","pages/Login.tsx","pages/Consent.tsx","pages/Demands/CreateDemand.tsx","index.tsx"],"names":["Boolean","window","location","hostname","match","ModelInstance","object","_classCallCheck","_defineProperty","this","createdBy","createdAt","updatedBy","updatedAt","deletedBy","deletedAt","ModelActions","objects","MaterialIndexInstance","_ModelInstance","_inherits","_super","_createSuper","materialIndex","_this","call","_assertThisInitialized","code","materialIndexSourceCode","currencyCode","id","idMaterialIndexSource","name","materialIndexSourceName","MaterialIndex","_ModelActions","_super2","_this2","_len","arguments","length","args","Array","_key","apply","concat","materialIndexes","map","MaterialFamilyInstance","materialFamily","materialFamilyCode","idMaterialFamily","materialFamilyName","MaterialFamily","materialFamilies","MaterialSubFamilyInstance","materialSubFamily","materialSubFamilyCode","idMaterialSubFamily","materialSubFamilyName","MaterialSubFamily","materialSubFamilies","MaterialReferentialInstance","materialReferential","idMaterialsReferential","materialsReferentialName","MaterialInstance","material","_material$photo","undefined","materialCode","countryCode","description","idMaterial","materialName","photos","photo","split","p","Material","materials","SearchFilter","_ref","className","onChange","value","translate","useContext","LanguageContext","React","createElement","SzInput","groupClassName","icon","_ref2","currentTarget","placeholder","ResetFilter","resetFilters","onClick","SzIcon","variant","SzTypographie","sprintf","haystack","values","v","forEach","item","index","parseInt","toString","getDate","date","moment","format","getDecodedToken","token","jwtDecode","LocalStorage","_createClass","key","localStorage","getItem","setItem","removeItem","RefreshToken","_LocalStorage","Token","_LocalStorage2","_len3","_key3","get","Username","_LocalStorage3","_super3","_this3","_len5","_key5","UserId","_LocalStorage4","_super4","_this4","_len7","_key7","DecodedStorage","_LocalStorage5","_super5","JSON","parse","_get","_getPrototypeOf","prototype","stringify","Organization","_DecodedStorage","_super6","_this5","_len9","_key9","Company","_DecodedStorage2","_super7","_this6","_len11","_key11","Preference","_DecodedStorage4","_super9","_this8","_len15","_key15","Currency","_Preference","_super10","currency","preference","Language","_Preference2","_super11","language","axiosInterceptorError","response","status","Promise","reject","config","url","provider","pathname","_","SzSelectInternal","options","isMulti","isDisabled","isMultiList","isSearchable","isClearable","defaultOptions","noOptionsMessage","SzSelect","propTypes","PropTypes","string","array","bool","oneOfType","any","func","node","SelectFilter","rest","_objectWithoutProperties","_objectSpread","MaterialFamilyFilter","_ref3","Object","assign","MaterialSubFamilyFilter","_ref4","OrganizationFilter","_ref9","organizations","BaseStoreContext","filters","PlantFilter","_ref10","plants","ContractFilter","_ref11","t","label","TypeSelectorContext","createContext","selected","setSelected","TypeSelectorProvider","children","roles","getDecoded","filter","r","includes","_useState","useState","_useState2","_slicedToArray","Provider","TypeSelector","_useContext2","_useContext3","setSelectedMaterials","contract","itemFiltersSelected","useEffect","isArray","SzButton","translations","languageInitier","initSelectedLanguage","navigator","initialState","languages","selectedLanguage","setSelectedLanguage","findTranslation","keys","shift","LanguageProvider","RESET","SET_SELECTED_INDEX","SET_SELECTED_MATERIAL","COLORS","defaultStore","dispatch","selectedIndex","selectedMaterial","defaultContext","data","indexes","total","reducer","state","payload","type","MixedChartContext","MixedChartProvider","_state$selectedIndex","_state$selectedMateri","_ref2$color","color","startDate","endDate","_useReducer","useReducer","_useReducer2","endDeliveryDate","startDeliveryDate","setData","_useState3","_useState4","setMaterials","_useState5","_useState6","setIndexes","_useState7","_useState8","setTotal","idIndex","memoizedState","useMemo","memoizedFilters","_Currency$getDecoded","isService","role","hasSelectedIndex","year","Date","getFullYear","month","getMonth","currentMonth","formatLabelYearMonthUTC","toISOString","MixedChart","getChart","then","sort","a","b","localeCompare","datas","labels","m","indexValues","i","push","first","second","getTime","colorIterator","l","dateString","toLocaleDateString","replace","toUpperCase","datasets","_ref5","borderColor","backgroundColor","pointBorderColor","pointBackgroundColor","pointHoverBackgroundColor","pointHoverBorderColor","yAxisID","divideBy1000","n","loop","formatToUnits","symbols","_divideBy","_divideBy2","toFixed","formattedTitle","result","symbol","formatTitleToK","_formatToUnits","_formatToUnits2","formatTitleToKg","_formatToUnits3","_formatToUnits4","UTC","TopFilters","_ref$additional","additional","formatTitle","OverlayTrigger","placement","delay","show","hide","overlay","Tooltip","BottomFilters","_useContext","ChartInstance","chart","mvtTonnageDistributed","Chart","results","MultiGraphInstance","line","VolumeGraph","CircularGraph","lines","self","findIndex","_item$domainName","domainName","reduce","initRow","fill","indexOf","create","Co2ChartInstance","volumeTeqCO2","Co2Chart","MixedChartIndexValueInstance","materialUnitValue","MixedChartInstance","materialIndexValues","getOne","getMany","CompanySubTypeInstance","companySubType","idCompanySubType","companySubTypeCode","companySubTypeName","CompanyTypeInstance","companyType","idCompanyType","companyTypeCode","companyTypeName","CompanyInstance","company","idCompany","companyLocalName","companies","ContainerInstance","container","idContainer","containerName","Container","containers","ContainerDemandInstance","demand","idContainerDemand","idDemand","ContainerDemandStatusInstance","internalOperator","externalOperator","bookingDate","ContainerDemand","demandStatus","idContainerDemandStatus","demandStatusCode","demandStatusName","ContainerDemandStatus","demandeStatus","KPIInstance","kpi","revenue","valorisationRevenue","volume","revenueTotal","serviceRevenue","KPI","OrganizationInstance","organization","idOrganization","organizationName","parent","parentOrganization","level","organizationLevel","AbstractSerializer","obj","o","getHeaders","h","Accept","API","instance","axios","baseURL","getBaseUrl","headers","interceptors","use","_deleteRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","endpoint","wrap","_context","prev","next","abrupt","request","stop","_x","_getRequest","_callee2","_ref2$endpoint","_context2","URLSearchParams","pagination","_x2","_patchRequest","_callee3","_ref3$endpoint","_context3","patch","Authorization","_x3","_postRequest","_callee4","_ref4$config","_ref4$endpoint","_context4","post","_x4","_putRequest","_callee5","_context5","put","_x5","APIPlatform","_API","process","Contact","_APIPlatform","postRequest","getRequest","User","updateClient","append","accessToken","access_token","decoded","Error","set","refresh_token","username","user_id","setDecoded","UPDATE_CLIENT","organization_id","OrganizationStorage","company_id","CompanyStorage","ref","_ref6","resetForm","_ref7","_ref8","current","reset","FormData","_ref12","_ref13","logout","_ref14","console","log","_ref15","_ref16","LOGOUT","patchRequest","RefreshTokenSingleton","fetching","refreshToken","AbstractProvider","REACT_APP_ENV","queryParametersObject","entries","serializer","serialize","k","x","join","withQueryParameters","management","formatQueryParameters","getUrl","all","ids","model","count","exp","now","refresh","error","AbstractBCMPortal","_AbstractProvider","withParams","ROLES","ROUTES","CO2","VOLUMES","_AbstractBCMPortal","ChartModel","FilterChart","_AbstractBCMPortal2","VolumeChart","_AbstractBCMPortal3","VolumeGraphModel","CircularEconomyChart","_AbstractBCMPortal4","MovementVolumeChart","_AbstractBCMPortal5","_AbstractBCMPortal6","Co2ChartModel","MovementCo2Chart","_AbstractBCMPortal7","_this7","_len13","_key13","_AbstractBCMPortal8","_super8","ExportChart","_AbstractBCMPortal9","_this9","_len17","_key17","MovementExportChart","_AbstractBCMPortal10","_this10","_len19","_key19","PROVIDER","MANAGEMENT","EXCLUDED_ROUTES","Login","ResetPasswordRequest","ResetPasswordApply","CompanyModel","ContainerModel","ContainerDemandModel","ContainerDemandStatusModel","KPIModel","MaterialSerializer","_AbstractSerializer","perPage","page","idOrganizations","idCompanies","materialFamilyFilterValues","materialSubFamilyFilterValues","fullname","searchMaterialFilter","MaterialModel","MaterialFamilyModel","MaterialSubFamilyModel","OrganizationModel","defaultValue","isLogged","user","decode","UserContext","UserProvider","ADD_ITEM_CATALOG","SET_CATALOG","SET_FILTERS","SET_ITEM_FILTERS_SELECTED","SET_OPEN_FILTERS","SET_SELECTED_ITEM","INIT_ANALYSIS_MATERIALS","SET_ANALYSIS_MATERIALS","SET_ANALYSIS_SELECTED_MATERIALS","INIT_MOVEMENT_MATERIALS","SET_MOVEMENT_MATERIALS","SET_MOVEMENT_SELECTED_MATERIALS","loading","catalog","analysis","selectedMaterials","movement","contracts","plant","itemSelected","openFilters","selection","_toConsumableArray","objectToOptionInterface","fields","separator","field","BaseStoreProvider","_useReducer2$","getList","getSelector","ChartContext","ChartProvider","_useContext$itemFilte","_useContext$analysis","finalSelectedMaterials","idMaterials","graph","graphOptions","d","sum","unit","order","compute","_ref4$reset","getMaterials","getFilterMaterials","SET_ERROR","SET_LOADING","SET_SUCCESS","SET_VALUE","isLoading","success","FormContext","FormProvider","defaultState","initialized","appInsights","AppInsightsContext","AppInsightProvider","history","useHistory","instrumentationKey","setAppInsights","setInitialized","ai","reactPlugin","ReactPlugin","ApplicationInsights","maxBatchInterval","disableFetchTracking","disableTelemetry","enableUnhandledPromiseRejectionTracking","extensions","extensionConfig","identifier","loadAppInsights","trackException","exception","severityLevel","SeverityLevel","withTracker","WrappedComponent","HOC","_Component","props","Component","displayName","roleNamesToNumber","roleNames","roleName","myEnum","enumValue","getEnumKeyByValue","CustomRoute","useLocation","Route","returnedRoute","setReturnedRoute","condition","path","businessRoles","currentRoles","find","businessRole","currentRole","String","useLogged","some","DemandsInternal","DemandsExternal","Movement","useNotLogged","Dropdown","alignRight","dropdownToggleClass","dropdownTogglerIcon","disabled","title","withoutChildren","open","setOpen","useRef","callback","handleClick","e","contains","target","document","addEventListener","removeEventListener","useOutsideClick","event","preventDefault","NavDropdown","DropdownItem","to","Link","NavItem","FiltersBar","Navbar","expand","expanded","Collapse","Divider","AppBarDropdown","_ref$withoutCaret","withoutCaret","setCount","_useContext2$itemFilt","Fragment","AvatarDropdown","src","alt","routes","navitems","AppBar","setExpanded","_useContext4","baseStore","isExternalOperator","isInternalOperator","isUserMovement","_n$roles","splice","height","navitem","_extends","ReturnToTop","scrollY","top","setTop","handleScroll","scrollTo","behavior","LayoutBase","withFooter","Nav","Item","href","Layout","noContainer","withDisclaimer","ComponentWithTitle","button","customIcon","logo","withoutTranslation","style","display","Loader","text","Spinner","as","animation","Bar","_ref$options","_ref$unit","ChartBar","redraw","plugins","legend","position","align","tooltip","enabled","displayColors","external","context","tooltipEl","getElementById","innerHTML","body","appendChild","_tooltipModel$labelCo","tooltipModel","opacity","formated","replaceAll","parseFloat","toLocaleString","renderToString","CustomTooltip","labelColors","classList","remove","yAlign","add","canvas","getBoundingClientRect","left","pageXOffset","caretX","pageYOffset","caretY","elements","tension","responsive","maintainAspectRatio","scales","grid","y","beginAtZero","FilterMaterials","setShow","search","setSearch","family","setFamily","subFamily","setSubFamily","_useState9","_useState10","setSelection","update","updater","updateSelection","newMaterials","_m$materialFamily","_m$materialSubFamily","toLowerCase","subFamilies","f","_m$materialSubFamily2","_m$materialSubFamily3","SzModal","handleClose","every","s","size","_m$materialFamily2","_m$materialFamily3","SzCheckbox","checked","_m$materialFamily4","_m$materialSubFamily4","Set","Mixed","_ref$type","titleFontSize","bodyFontColor","bodyFontSize","Co2","IndexValue","roundToUpperInt","repeat","subtype","Math","floor","CustomBar","_ref2$placement","_ref2$trigger","trigger","_ref2$type","setDate","Tile","_selectedLanguage$val","_useWindowSize","width","innerWidth","innerHeight","windowSize","setWindowSize","handleResize","useWindowSize","setValues","isServices","filterDate","KPIProvider","Bars","_dataset$unit","dataset","dataPoints","datasetIndex","Revenue","Volume","Co2ChartProvider","_ref$color","_useContext2$analysis","VolumeChartProvider","AllSerializer","monthlyData","detailsData","monthlyColumns","detailsColumns","columns","acc","column","serializedDetailsData","serializedMonthlyData","_loop","mapColumnValue","_loop2","setHours","getHours","round","Number","EPSILON","XlsxTemplate","require","ExportAllChart","setIsLoading","today","dataLayer","sz_conversion_type","ExportChartProvider","fetch","arrayBuffer","buffer","template","templateData","substitute","file","_arr","_i","content","archive","asText","re","matches","exec","subType","full","extractPlaceholders","substitution","xlsx","generate","link","URL","createObjectURL","Blob","filename","toLocaleTimeString","setAttribute","click","err","loader","MovementSerializer","MovementExportAllChart","MovementExportChartProvider","formatNumber","number","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","StackedBars","_data$datasets","layout","mode","callbacks","tooltipItem","_total","totals","dataIndex","raw","titleColor","titleFont","titleSpacing","titleMarginBottom","padding","bodyColor","bodyFont","bodySpacing","stacked","CircularEconomy","CircularEconomyChartProvider","mvtTypeCode","ExportIndexButton","serializeData","_data$labels","headersMonth","headersMaterials","headersValue","day","volumeCharts","component","Tonnages","Unites","co2Charts","mixedCharts","circularEconomyCharts","Automotive","Construction","Railway","Recycling","Aeronotic","scrapRetail","transport","oilAndGas","energy","varnishesPowderPaint","tractorVehicle","Other","NA","labelsLegendCO2","activeKey","setActiveKey","finalLegendCO2","indexLegend","SzAccordion","SzCollapse","header","eventKey","SET_END_DATE","SET_START_DATE","setFullYear","getLastYear","Analysis","showCircularChart","setShowCircularChart","charts","setCharts","_Currency$getDecoded2","_Currency$getDecoded3","Revenues","SzDatePicker","dateRange","endMinDate","onChangeEndDate","onChangeStartDate","MovementCo2ChartProvider","_useContext2$movement","_ref2$reset","MovementVolumeChartProvider","MovementTypeSelector","MovementTypeSelectorProvider","Card","EmbedCard","image","CatalogItems","hasMore","setHasMore","InfiniteScroll","pageStart","loadMore","Catalog","isFirstCall","setIsFirstCall","setMaterialFamilyFilterValues","setMaterialSubFamilyFilterValues","setSearchMaterialFilter","setMaterialFamily","_useState11","_useState12","setMaterialSubFamily","debounced","debouncedValue","setDebouncedValue","handler","setTimeout","clearTimeout","useDebounce","_useState13","setter","providers","callMaterialAPI","useCallback","CatalogComponent","CatalogItem","_itemSelected$materia","_itemSelected$materia2","_itemSelected$materia3","_itemSelected$photos","goBack","useRouteMatch","params","jsonToFormData","element","fd","Field","SzTextArea","autocomplete","rows","labelClassName","required","formProperties","recaptchaRef","submitForm","validate","setCaptchaOk","onSubmit","formData","fromEntries","formatformToJson","resolve","resetRecaptchaIfNeeded","Alerts","successMessage","SzAlert","hasCaptcha","BaseForm","additionalLinks","_ref6$alertsTop","alertsTop","_ref6$back","back","buttonContent","buttonText","_ref6$keepButton","keepButton","withRecaptcha","_useContext5","setRecaptchaRef","captchaOk","_useHistory","formProps","_renderGrecaptcha","execute","additionalLink","Recaptcha","hl","verifyCallback","resp","querySelector","sitekey","onloadCallback","Form","password","confirmPassword","messageBody","ContactAction","send","email","currencyHelper","CurrencyHelper","currencies","setCurrencies","setCurrency","CurrencyProvider","PreferenceProvider","option","LanguageLS","login","userLanguage","lang","requirements","PasswordValidationBlock","requirement","ResetPasswordApplyForm","hasError","setHasError","isValidated","strongRegex","RegExp","validatePassword","resetPasswordApply","ResetPasswordRequestForm","resetPasswordRequest","ResetPasswordForCurrentUserRequestForm","ContactForm","CommonResetPassword","AccountItem","Account","accountItems","Welcome","TableColumnFilter","setFilter","setValue","timer","TablePagination","pageIndex","pageCount","pageSize","canPreviousPage","pageOptions","canNextPage","gotoPage","nextPage","previousPage","setPageSize","Table","_ref$disabledList","disabledList","_ref$disabledColumnAc","disabledColumnActionsList","_ref$paginationDispla","paginationDisplayed","_ref$checkedList","checkedList","_ref$onSelectedItemCh","onSelectedItemChanged","_ref$onCheckAll","onCheckAll","itemIds","_ref$onSelectionChang","onSelectionChange","_ref$onPageChange","onPageChange","_ref$pageCount","_ref$headerVisible","headerVisible","_ref$resultPerPage","resultPerPage","REACT_APP_TABLE_DEFAULT_RESULT_PER_PAGE","_ref$onSortTableChang","onSortTableChange","_ref$initialFilters","initialFilters","_ref$onFiltersChange","onFiltersChange","_ref$nbPerPage","nbPerPage","_ref$onNbPerPageChang","onNbPerPageChange","_ref$isLoading","_ref$isInternalPagina","isInternalPagination","_ref$initialSortBy","initialSortBy","_ref$resetOrgaInsti","resetOrgaInsti","_ref$forceReset","forceReset","_ref$currentPage","currentPage","_ref$manualPagination","manualPagination","_ref$autoResetPage","autoResetPage","_ref$embeddedFilter","embeddedFilter","_ref$autoResetSort","autoResetSort","defaultColumn","Filter","checkedArrayToObject","checkedArray","curr","useSwitchStateManagement","memoValue","selectedRowIds","useStateMemo","_useTable","useTable","autoResetSelectedRows","manualSortBy","autoResetFilters","autoResetSortBy","defaultFilters","manualFilters","getRowId","row","useControlledState","sortBy","useFilters","useSortBy","usePagination","useRowSelect","hooks","visibleColumns","columnsData","Header","getToggleAllRowsSelectedProps","IndeterminateCheckbox","isHeader","Cell","getToggleRowSelectedProps","getTableProps","getTableBodyProps","headerGroups","prepareRow","allColumns","setAllFilters","_useTable$state","actions","resetPage","sorted","desc","TableHeader","toDisplay","getRowProps","cells","cell","getCellProps","render","ceil","foundDisabled","_headerGroups$","_headerGroups$$header","_headerGroups$$header2","colName","headerGroup","getHeaderGroupProps","getHeaderProps","getSortByToggleProps","isSorted","isSortedDesc","canFilter","forwardRef","indeterminate","defaultRef","resolvedRef","arrayOf","defaultProps","Chip","Materials","_demand$materials","STATUS","INPROGRESS_STATUS","CLOSED_STATUS","inProgressTableData","setInprogressTableData","closedTableData","setClosedTableData","pageInprogress","setPageInprogress","pageClosed","setPageClosed","pgCountClosed","setPgCountClosed","pgCountInprogress","setPgCountInprogress","_useState14","perPageClosed","setPerPageClosed","_useState15","_useState16","perPageInprogress","setPerPageInprogress","_useState17","_useState18","inprogressStatusList","setInprogressStatusList","_useState19","_useState20","closedStatusList","setClosedStatusList","_useState21","_useState22","isClosedTableLoading","setIsClosedTableLoading","_useState23","_useState24","isInprogressTableLoading","setIsInprogressTableLoading","_useState25","_useState26","StatusList","setStatusList","_useState27","_useState28","setBookingDate","_useState29","_useState30","bookingTime","setBookingTime","_useState31","_useState32","selectedDemand","setSelectedDemand","_useState33","_useState34","successUpdate","setSucessUpdate","_useState35","_useState36","failureUpdate","setFailureUpadate","_useState37","_useState38","setSuccessMessage","_useState39","_useState40","_useState41","_useState42","failureMessage","setFailureMessage","_useState43","_useState44","inprogressFilters","setInprogressFilters","_useState45","_useState46","closedFilters","setClosedFilters","_useState47","_useState48","sortInprogressTable","setSortInprogressTable","_useState49","_useState50","sortClosedTable","setSortClosedTable","TABLE_COLUMN","accessor","disableFilters","disableSortBy","INPROGRESS_TABLE_CULUMN","filterList","_column$filterValue","filterValue","CLOSED_TABLE_COLUMN","_column$filterValue2","formatedTableData","demands","_demand$company","companyName","substring","utc","controlButtons","getStatus","loadDataInprogress","_loadDataInprogress","statusFilter","statusFilterValue","idStatus","orderByDate","loadDataClosed","_loadDataClosed","handleUpdateDemand","statusLabel","booking","_StatusList$find","formatedBookingDate","idDemandStatus","sendDemandMail","operators","_loadStatus","inprogressStatus","closedStatus","loadStatus","transparent","centered","startMinDate","classNameStartDate","TimePicker","showSecond","popupClassName","minuteStep","sucessCreate","setSucessCreate","handleStatusChange","operator","idOperator","passwordRoutes","strict","exact","background","LoginForm","rel","CreateDemands","containerList","setContainerList","selectedContainer","setSelectedContainer","isSelectLoading","setIsSelectLoading","minutes","startOf","handleCreateDemand","CreatedBy","_loadContainers","idUser","loadContainers","createBrowserHistory","RoutingComponent","Switch","BrowserRouter","ROLE_CUSTOMER","ROLE_SUPPLIER","ROLE_MOVEMENT_CUSTOMER","ROLE_MOVEMENT_SUPPLIER","ROLE_EXTERNAL_OPERATOR","ROLE_INTERNAL_OPERATOR","route","App","tarteaucitronForceLanguage","ReactDOM","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.1783596306.chunk.js","sourcesContent":["/* eslint-disable */\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 http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","export interface ModelInterface {\n '@id': string;\n code?: string;\n name?: string;\n createdBy?: string | null;\n createdAt?: string | null;\n updatedBy?: string | null;\n updatedAt?: string | null;\n deletedBy?: string | null;\n deletedAt?: string | null;\n}\n\nexport class ModelInstance {\n '@id' = '';\n id = '';\n code = '';\n name = '';\n createdBy = '';\n createdAt = '';\n updatedBy = '';\n updatedAt = '';\n deletedBy = '';\n deletedAt = '';\n\n constructor(object: any /*eslint-disable-line*/) {\n this['@id'] = object['@id'];\n this.createdBy = object.createdBy;\n this.createdAt = object.createdAt;\n this.updatedBy = object.updatedBy;\n this.updatedAt = object.updatedAt;\n this.deletedBy = object.deletedBy;\n this.deletedAt = object.deletedAt;\n }\n}\n\nexport class ModelActions {\n getMany = (objects: any[]): any[] => objects; //eslint-disable-line\n getOne = (object: any): any => object; //eslint-disable-line\n}\n","import { ModelActions, ModelInstance } from './Common';\n\nexport interface MaterialIndexInterface {\n idMaterialIndexSource: string;\n materialIndexSourceCode: string;\n materialIndexSourceName: string;\n currencyCode: string;\n}\n\nexport class MaterialIndexInstance extends ModelInstance {\n code = '';\n currencyCode = '';\n\n constructor(materialIndex: MaterialIndexInterface) {\n super(materialIndex);\n this.code = materialIndex.materialIndexSourceCode;\n this.currencyCode = materialIndex.currencyCode;\n this.id = materialIndex.idMaterialIndexSource;\n this.name = materialIndex.materialIndexSourceName;\n }\n}\n\nexport class MaterialIndex extends ModelActions {\n getMany = (\n materialIndexes: MaterialIndexInterface[]\n ): MaterialIndexInstance[] =>\n materialIndexes.map(\n (materialIndex) => new MaterialIndexInstance(materialIndex)\n );\n getOne = (materialIndex: MaterialIndexInterface): MaterialIndexInstance =>\n new MaterialIndexInstance(materialIndex);\n}\n","import { ModelActions, ModelInstance } from './Common';\n\nexport interface MaterialFamilyInterface {\n idMaterialFamily: string;\n materialFamilyCode: string;\n materialFamilyName: string;\n}\n\nexport class MaterialFamilyInstance extends ModelInstance {\n code = '';\n\n constructor(materialFamily: MaterialFamilyInterface) {\n super(materialFamily);\n this.code = materialFamily.materialFamilyCode;\n this.id = materialFamily.idMaterialFamily;\n this.name = materialFamily.materialFamilyName;\n }\n}\n\nexport class MaterialFamily extends ModelActions {\n getMany = (\n materialFamilies: MaterialFamilyInterface[]\n ): MaterialFamilyInstance[] =>\n materialFamilies.map(\n (materialFamily) => new MaterialFamilyInstance(materialFamily)\n );\n getOne = (materialFamily: MaterialFamilyInterface): MaterialFamilyInstance =>\n new MaterialFamilyInstance(materialFamily);\n}\n","import { ModelActions, ModelInstance } from './Common';\n\nexport interface MaterialSubFamilyInterface {\n idMaterialSubFamily: string;\n materialSubFamilyCode: string;\n materialSubFamilyName: string;\n}\n\nexport class MaterialSubFamilyInstance extends ModelInstance {\n constructor(materialSubFamily: MaterialSubFamilyInterface) {\n super(materialSubFamily);\n this.code = materialSubFamily.materialSubFamilyCode;\n this.id = materialSubFamily.idMaterialSubFamily;\n this.name = materialSubFamily.materialSubFamilyName;\n }\n}\n\nexport class MaterialSubFamily extends ModelActions {\n getMany = (\n materialSubFamilies: MaterialSubFamilyInterface[]\n ): MaterialSubFamilyInstance[] =>\n materialSubFamilies.map(\n (materialSubFamily) => new MaterialSubFamilyInstance(materialSubFamily)\n );\n getOne = (\n materialSubFamily: MaterialSubFamilyInterface\n ): MaterialSubFamilyInstance =>\n new MaterialSubFamilyInstance(materialSubFamily);\n}\n","import { ModelActions, ModelInstance, ModelInterface } from './Common';\n\nexport interface MaterialReferentialInterface extends ModelInterface {\n idMaterialsReferential: string;\n materialsReferentialName: string;\n}\n\nexport class MaterialReferentialInstance extends ModelInstance {\n constructor(materialReferential: MaterialReferentialInterface) {\n super(materialReferential);\n this.id = materialReferential.idMaterialsReferential;\n this.name = materialReferential.materialsReferentialName;\n }\n}\n\nexport class MaterialReferential extends ModelActions {\n getMany = (\n materialReferentials: MaterialReferentialInterface[]\n ): MaterialReferentialInstance[] =>\n materialReferentials.map(\n (materialReferential) =>\n new MaterialReferentialInstance(materialReferential)\n );\n getOne = (\n materialReferential: MaterialReferentialInterface\n ): MaterialReferentialInstance =>\n new MaterialReferentialInstance(materialReferential);\n}\n","import { ModelActions, ModelInstance, ModelInterface } from './Common';\nimport {\n MaterialFamilyInstance,\n MaterialFamilyInterface,\n} from './MaterialFamily';\nimport {\n MaterialSubFamilyInstance,\n MaterialSubFamilyInterface,\n} from './MaterialSubFamily';\nimport {\n MaterialReferentialInstance,\n MaterialReferentialInterface,\n} from './MaterialReferential';\n\nexport interface MaterialInterface extends ModelInterface {\n countryCode: string;\n description: string;\n idDefaultUnit: string;\n idMaterial: string;\n localCountryLegalMaterialCode: string;\n localCountryMaterialName: string;\n localDefaultUnit: string;\n localITSystemMaterialUID: string;\n localMaterialFamilyCode: string;\n localMaterialFamilyName: string;\n localMaterialSubFamilyCode: string;\n localMaterialSubFamilyName: string;\n materialCode: string;\n materialFamily: MaterialFamilyInterface;\n materialName: string;\n materialSubFamily: MaterialSubFamilyInterface;\n materialReferential: MaterialReferentialInterface;\n photo?: string;\n}\n\nexport class MaterialInstance extends ModelInstance {\n code = '';\n countryCode = '';\n description = '';\n materialFamily?: MaterialFamilyInstance = undefined;\n materialReferential?: MaterialSubFamilyInstance = undefined;\n materialSubFamily?: MaterialReferentialInstance = undefined;\n photos?: string[] = undefined;\n\n constructor(material: MaterialInterface) {\n super(material);\n this.code = material.materialCode;\n this.countryCode = material.countryCode;\n this.description = material.description;\n this.id = material.idMaterial;\n this.name = material.materialName;\n this.materialFamily =\n material.materialFamily &&\n new MaterialFamilyInstance(material.materialFamily);\n this.materialSubFamily =\n material.materialSubFamily &&\n new MaterialSubFamilyInstance(material.materialSubFamily);\n this.materialReferential =\n material.materialReferential &&\n new MaterialReferentialInstance(material.materialReferential);\n this.photos = material.photo?.split(';').map((p) => p);\n }\n}\n\nexport class Material extends ModelActions {\n getMany = (materials: MaterialInterface[]): MaterialInstance[] =>\n materials.map((material) => new MaterialInstance(material));\n getOne = (material: MaterialInterface): MaterialInstance =>\n new MaterialInstance(material);\n}\n","import React, { Dispatch, SetStateAction, useContext } from 'react';\nimport { SzIcon, SzInput } from 'react-theme-components';\nimport './filter.scss';\nimport { ClassNameInterface } from '../../interfaces';\nimport { LanguageContext } from '../../contexts';\n\ninterface InputFilterInterface {\n onChange: Dispatch>;\n value: string;\n}\n\nexport const SearchFilter: React.FC<\n ClassNameInterface & InputFilterInterface\n> = ({ className, onChange, value }) => {\n const { translate } = useContext(LanguageContext);\n return (\n ): void => onChange(value),\n placeholder: translate('filters.search.placeholder'),\n value,\n }}\n />\n );\n};\n","import React, { useContext } from 'react';\nimport { SzIcon, SzTypographie } from 'react-theme-components';\nimport { ClassNameInterface } from '../../interfaces';\nimport { LanguageContext } from '../../contexts';\n\ninterface ResetFilterInterface {\n resetFilters: () => void;\n}\n\nexport const ResetFilter: React.FC<\n ClassNameInterface & ResetFilterInterface\n> = ({ className, resetFilters }) => {\n const { translate } = useContext(LanguageContext);\n return (\n resetFilters()}\n >\n \n \n \n {translate('filters.reset.label')}\n \n \n \n );\n};\n","import jwtDecode from 'jwt-decode';\nimport {\n CompanyInstance,\n CurrencyInterface,\n ModelInterface,\n OrganizationInstance,\n PreferenceInterface,\n TokenInterface,\n} from '../interfaces';\nimport { RoleInterface } from '../interfaces/RoleInterface';\nimport { AxiosResponse } from 'axios';\nimport moment from 'moment';\n\nexport const sprintf = (haystack: string, values: string[]): string => {\n let v = '';\n haystack\n .split('%s')\n .forEach(\n (item, index) =>\n (v += `${item}${values[parseInt(index.toString())] || ''}`)\n );\n return v;\n};\n\nexport const getTimeOffset = (): number => new Date().getTimezoneOffset();\n\nexport const getDate = (date): string => moment(date).format('YYYY-MM-DD');\n\nexport const getDecodedToken = (token: string): TokenInterface =>\n token ? (jwtDecode(token) as TokenInterface) : ({} as TokenInterface);\n\nabstract class LocalStorage {\n protected key = '';\n\n public get(): string | null {\n return localStorage.getItem(this.key);\n }\n\n public set(value: string): void {\n return localStorage.setItem(this.key, value);\n }\n\n public delete(): void {\n return localStorage.removeItem(this.key);\n }\n}\n\nexport class RefreshToken extends LocalStorage {\n protected key = 'refresh_token';\n}\n\nexport class Token extends LocalStorage {\n protected key = 'token';\n\n public getDecoded(): TokenInterface {\n return getDecodedToken(this.get() || '');\n }\n}\n\nexport class Username extends LocalStorage {\n protected key = 'username';\n}\nexport class UserId extends LocalStorage {\n protected key = 'userId';\n}\n\nabstract class DecodedStorage extends LocalStorage {\n public getDecoded(): ModelInterface | RoleInterface | null {\n return JSON.parse(super.get() || '{}') as ModelInterface;\n }\n\n public setDecoded(value: ModelInterface | null): void {\n super.set(JSON.stringify(value));\n }\n}\n\nexport class Organization extends DecodedStorage {\n protected key = 'organization';\n\n public getDecoded(): OrganizationInstance {\n return super.getDecoded() as OrganizationInstance;\n }\n\n public setDecoded(value: OrganizationInstance): void {\n super.setDecoded(value);\n }\n}\n\nexport class Company extends DecodedStorage {\n protected key = 'company';\n\n public getDecoded(): CompanyInstance {\n return super.getDecoded() as CompanyInstance;\n }\n\n public setDecoded(value: CompanyInstance): void {\n super.setDecoded(value);\n }\n}\nexport class Roles extends DecodedStorage {\n protected key = 'roles';\n\n public getDecoded(): RoleInterface {\n return super.getDecoded() as RoleInterface;\n }\n\n public setDecoded(value: ModelInterface | string[] | null): void {\n super.set(JSON.stringify(value));\n }\n}\n\nexport class Preference extends DecodedStorage {\n protected key = 'preference';\n\n public getDecoded(): PreferenceInterface | CurrencyInterface {\n return super.getDecoded() as PreferenceInterface;\n }\n\n public setDecoded(value: PreferenceInterface | CurrencyInterface): void {\n super.setDecoded(value);\n }\n}\n\nexport class Currency extends Preference {\n public getDecoded(): CurrencyInterface {\n const preference = super.getDecoded() as PreferenceInterface;\n return preference.currency || {};\n }\n\n public setDecoded(value: CurrencyInterface): void {\n const preference = super.getDecoded() as PreferenceInterface;\n preference.currency = value;\n super.setDecoded(preference);\n }\n}\n\nexport class Language extends Preference {\n public get(): string {\n const preference = super.getDecoded() as PreferenceInterface;\n return preference.language || '';\n }\n\n public set(value: string): void {\n const preference = super.getDecoded() as PreferenceInterface;\n preference.language = value;\n super.setDecoded(preference);\n }\n}\n\nexport const axiosInterceptorError = (\n response: AxiosResponse\n): Promise | undefined => {\n if (!response.status) {\n return Promise.reject(response);\n }\n const { status } = response;\n if (401 === status || 403 === status) {\n if (response.config.url == '/refresh') {\n const providers = [Token, Preference, Username, Company, Organization];\n providers.forEach((provider) => new provider().delete());\n window.location.pathname = '/';\n return new Promise((_, reject) => {\n reject(response);\n });\n }\n }\n};\n","import React, { Dispatch, SetStateAction, useContext } from 'react';\nimport { SzSelect } from 'react-theme-components';\nimport { ClassNameInterface } from '../../interfaces';\nimport './filter.scss';\nimport { BaseStoreContext, LanguageContext } from '../../contexts';\nimport { sprintf } from '../../helpers';\n\nimport PropTypes from 'prop-types';\n\nfunction SzSelectInternal({\n id,\n options,\n value,\n className,\n isDisabled,\n isMulti,\n isMultiList,\n isSearchable,\n name,\n onChange,\n placeholder,\n isClearable,\n defaultOptions,\n noOptionsMessage,\n}) {\n return (\n \n );\n}\n\nSzSelectInternal.propTypes = {\n id: PropTypes.string,\n defaultOptions: PropTypes.array,\n isClearable: PropTypes.bool,\n options: PropTypes.array,\n value: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.array,\n PropTypes.any,\n ]),\n className: PropTypes.string,\n isDisabled: PropTypes.bool,\n isMulti: PropTypes.bool,\n isMultiList: PropTypes.bool,\n isSearchable: PropTypes.bool,\n name: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.node,\n noOptionsMessage: PropTypes.string,\n};\n\nexport interface OptionInterface {\n label: string;\n value?: string | boolean;\n}\n\ninterface DropdownFilterInterface {\n isMulti?: boolean | undefined;\n options?: OptionInterface[];\n placeholder?: string;\n}\n\ninterface SelectFilterInterface extends DropdownFilterInterface {\n onChange: Dispatch>;\n value: OptionInterface[] | OptionInterface;\n}\n\ninterface SelectOneFilterInterface {\n onChange: Dispatch>;\n value: OptionInterface | [] | undefined | null;\n}\n\nexport const SelectFilter: React.FC<\n ClassNameInterface & DropdownFilterInterface\n> = ({ placeholder, ...rest }) => {\n const { translate } = useContext(LanguageContext);\n return (\n \n );\n};\n\nexport const MaterialFamilyFilter: React.FC<\n ClassNameInterface & SelectFilterInterface\n> = ({ ...rest }) => (\n \n);\n\nexport const MaterialSubFamilyFilter: React.FC<\n ClassNameInterface & SelectFilterInterface\n> = ({ ...rest }) => (\n \n);\n\nexport const MaterialReferentialFilter: React.FC<\n ClassNameInterface & SelectFilterInterface\n> = ({ ...rest }) => (\n \n);\n\nexport const IndexFilter: React.FC<\n ClassNameInterface & SelectFilterInterface\n> = ({ ...rest }) => (\n \n);\n\nexport const ByFilter: React.FC<\n ClassNameInterface & SelectOneFilterInterface\n> = ({ ...rest }) => (\n \n);\n\nexport const YearFilter: React.FC<\n ClassNameInterface & SelectOneFilterInterface\n> = ({ ...rest }) => {\n const options: OptionInterface[] = [];\n for (let i = 0; i < 20; i++) {\n const value = `${2020 - i}`;\n options.push({ label: value, value });\n }\n return ;\n};\n\nexport const OrganizationFilter: React.FC<\n ClassNameInterface & SelectFilterInterface\n> = ({ ...rest }) => {\n const {\n filters: { organizations },\n } = useContext(BaseStoreContext);\n return (\n \n );\n};\n\nexport const PlantFilter: React.FC<\n ClassNameInterface & SelectFilterInterface\n> = ({ ...rest }) => {\n const {\n filters: { plants },\n } = useContext(BaseStoreContext);\n return (\n \n );\n};\n\nexport const ContractFilter: React.FC<\n ClassNameInterface & SelectFilterInterface\n> = ({ ...rest }) => {\n const { translate } = useContext(LanguageContext);\n const t = (value: string): string =>\n translate(sprintf('filters.contract.options.%s', [value]));\n return (\n \n );\n};\n","import React, {\n createContext,\n Dispatch,\n SetStateAction,\n useState,\n} from 'react';\nimport { Token } from '../../../helpers';\n\ninterface TypeSelectorContextInterface {\n selected: string;\n setSelected: Dispatch>;\n}\n\nexport const TypeSelectorContext = createContext({\n selected: '',\n setSelected: () => null,\n});\n\nexport const TypeSelectorProvider: React.FC = ({ children }) => {\n const roles = new Token()\n .getDecoded()\n .roles.filter((r) => ['ROLE_SUPPLIER', 'ROLE_CUSTOMER'].includes(r));\n const [selected, setSelected] = useState(roles[0] || '');\n\n return (\n \n {children}\n \n );\n};\n","import React, { useContext, useEffect } from 'react';\nimport { Token } from '../../helpers';\nimport { TypeSelectorContext } from './context/TypeSelectorContext';\nimport { BaseStoreContext, LanguageContext } from '../../contexts';\nimport { ClassNameInterface } from '../../interfaces';\nimport './typeSelector.scss';\nimport { SzButton } from 'react-theme-components';\n\nexport const TypeSelector: React.FC = ({ className }) => {\n const t = new Token().getDecoded().roles || [];\n if (!(t.includes('ROLE_CUSTOMER') && t.includes('ROLE_SUPPLIER'))) {\n return null;\n }\n\n const { translate } = useContext(LanguageContext);\n const { selected, setSelected } = useContext(TypeSelectorContext);\n const {\n setSelectedMaterials,\n itemFiltersSelected: { contract },\n } = useContext(BaseStoreContext);\n\n useEffect(() => {\n if (\n contract &&\n !Array.isArray(contract) &&\n typeof contract['value'] === 'boolean'\n ) {\n if (contract['value'] && selected !== 'ROLE_CUSTOMER') {\n setSelected('ROLE_CUSTOMER');\n } else if (!contract['value'] && selected !== 'ROLE_SUPPLIER') {\n setSelected('ROLE_SUPPLIER');\n }\n }\n }, [contract]);\n\n const handleTypeSelected = (type) => {\n setSelected(type);\n setSelectedMaterials([], 'analysis');\n setSelectedMaterials([], 'movement');\n setSelectedMaterials([], 'circularEconomy');\n };\n\n return (\n
\n
\n
\n {[\n {\n label: 'customer',\n value: 'ROLE_CUSTOMER',\n },\n {\n label: 'supplier',\n value: 'ROLE_SUPPLIER',\n },\n ].map(({ label, value }, key) => (\n handleTypeSelected(value)}\n variant={selected === value ? 'primary' : 'secondary'}\n >\n {translate(`charts.typeSelector.${label}`)}\n \n ))}\n
\n
\n
\n );\n};\n","import en from './en.json';\nimport fr from './fr.json';\n\ninterface DescriptionInterface {\n description: string;\n}\n\ninterface LabelInterface {\n label: string;\n}\n\ninterface NavFileInterface extends LabelInterface {\n filename: string;\n}\n\ninterface PlaceholderInterface {\n placeholder: string;\n}\n\ninterface FieldInterface extends LabelInterface, PlaceholderInterface {}\n\ninterface TextInterface {\n text: string;\n}\n\ninterface TitleInterface {\n title: string;\n}\n\ninterface FiltersInterface {\n filters: string;\n}\n\nexport interface TranslationInterface {\n [key: string]: {\n appbar: {\n routes: {\n account: string;\n analysis: string;\n catalog: string;\n contact: string;\n login: string;\n logout: string;\n overview: string;\n };\n };\n charts: {\n export: string;\n kpi: {\n loader: string;\n };\n revenue: LabelInterface & {\n loader: string;\n };\n volume: LabelInterface & {\n loader: string;\n };\n };\n export: {\n common: {\n filters: string;\n informations: string;\n };\n index: {\n material: string;\n source: string;\n values: string;\n };\n revenueVolume: {\n materials: string;\n values: string;\n };\n };\n filters: {\n bar: {\n all: string;\n contract: string;\n numberSelected: string;\n organization: string;\n plant: string;\n };\n contract: PlaceholderInterface;\n materialFamily: PlaceholderInterface;\n materialReferential: PlaceholderInterface;\n organization: PlaceholderInterface;\n plant: PlaceholderInterface;\n reset: LabelInterface;\n search: PlaceholderInterface;\n year: PlaceholderInterface;\n };\n forms: {\n contact: {\n successMessage: string;\n };\n errorMessage: string;\n fields: {\n confirmPassword: FieldInterface;\n email: FieldInterface;\n firstname: PlaceholderInterface;\n lastname: PlaceholderInterface;\n messageBody: FieldInterface;\n messageHeader: FieldInterface;\n newPassword: FieldInterface;\n password: FieldInterface;\n };\n login: {\n additionalLink: string;\n };\n resetPasswordApply: {\n successMessage: string;\n };\n resetPasswordRequest: {\n successMessage: string;\n };\n submit: {\n classic: string;\n };\n };\n layout: {\n disclaimer: string;\n footer: {\n nav: {\n 'general-usage-terms': NavFileInterface;\n 'cookies-policy': NavFileInterface;\n 'legal-terms': NavFileInterface;\n 'privacy-policy': NavFileInterface;\n };\n };\n };\n pages: {\n account: TitleInterface & {\n currency: string;\n email: string;\n informations: string;\n language: string;\n };\n analysis: {\n indexes: TitleInterface;\n revenue: TitleInterface;\n volume: TitleInterface;\n };\n catalog: TitleInterface & {\n item: {\n more: string;\n };\n };\n catalogItem: {\n back: string;\n };\n contact: DescriptionInterface & TitleInterface;\n login: {\n form: TitleInterface;\n block: DescriptionInterface & TitleInterface;\n };\n resetPasswordApply: DescriptionInterface & TitleInterface;\n resetPasswordRequest: DescriptionInterface & TitleInterface;\n welcome: {\n card: {\n discover: TextInterface & TitleInterface;\n manage: TextInterface & TitleInterface;\n need: TextInterface & TitleInterface;\n };\n overview: DescriptionInterface & TitleInterface;\n };\n };\n };\n}\n\nexport const translations: TranslationInterface = {\n 'en-US': en,\n 'fr-FR': fr,\n};\n","import React, {\n createContext,\n Dispatch,\n SetStateAction,\n useState,\n} from 'react';\nimport { Language } from '../helpers';\nimport { OptionInterface } from '../components/Filters';\nimport { translations } from '../i18n';\n\ninterface LanguageProviderInterface {\n languages: OptionInterface[];\n selectedLanguage: OptionInterface;\n setSelectedLanguage: Dispatch>;\n translate: (value: string) => string;\n}\n\nconst allowedLanguages = (): OptionInterface[] => [\n {\n label: 'Français',\n value: 'fr-FR',\n },\n {\n label: 'English',\n value: 'en-US',\n },\n];\n\nconst languageInitier = (value: string): OptionInterface[] =>\n allowedLanguages().filter((item) => value === item.value);\nconst initSelectedLanguage = (): OptionInterface =>\n languageInitier(new Language().get())[0] ||\n languageInitier(navigator.language)[0] || {\n label: 'English',\n value: 'en-US',\n };\n\nconst initialState = {\n languages: allowedLanguages(),\n selectedLanguage: initSelectedLanguage(),\n setSelectedLanguage: (): void => {\n return;\n },\n translate: (value: string): string => {\n return value;\n },\n};\n\nexport const LanguageContext =\n createContext(initialState);\n\nconst findTranslation = (\n keys: string[],\n translations: any /*eslint-disable-line*/\n): string | undefined => {\n const key = keys[0];\n if (keys.length && translations[key.toString()]) {\n keys.shift();\n return findTranslation(keys, translations[key.toString()]);\n } else if (!keys.length) {\n return translations;\n }\n return undefined;\n};\n\nexport const LanguageProvider: React.FC = ({ children }) => {\n const [selectedLanguage, setSelectedLanguage] = useState(\n initSelectedLanguage()\n );\n const translate = (value: string): string =>\n findTranslation(\n value.split('.'),\n translations[selectedLanguage.value as string]\n ) || value;\n return (\n \n {children}\n \n );\n};\n","import React, {\n createContext,\n Dispatch,\n SetStateAction,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useState,\n} from 'react';\nimport { MixedChart } from '../interfaces/providers';\nimport { Currency, getDate } from '../helpers';\nimport { BaseStoreContext } from './BaseStoreContext';\nimport { MaterialIndexInstance, MaterialInstance } from '../interfaces/model';\nimport { OptionInterface } from '../components/Filters';\nimport { TypeSelectorContext } from '../components/TypeSelector';\nimport { LanguageContext } from './LanguageContext';\nimport { formatLabelYearMonthUTC } from '../components/Chart/Analysis/Filters';\nimport { ChartProviderInterface } from '../interfaces/ChartInterface';\n\nexport const RESET = 'RESET';\nexport const SET_SELECTED_INDEX = 'SET_SELECTED_INDEX';\nexport const SET_SELECTED_MATERIAL = 'SET_SELECTED_MATERIAL';\n\nconst COLORS: string[] = [\n '#030f40',\n '#f67536',\n '#ffc229',\n '#ef8143',\n '#eb4a65',\n '#8FD4FF',\n '#0f1319',\n];\n\ninterface ActionInterface {\n payload:\n | SetStateAction\n | SetStateAction\n | SetStateAction\n | undefined;\n type: string;\n}\n\ninterface ChartInterface {\n dispatch: Dispatch;\n selectedIndex: OptionInterface | null;\n selectedMaterial: OptionInterface | null;\n}\n\ninterface ChartContextInterface extends ChartInterface {\n data: any;\n indexes: MaterialIndexInstance[];\n materials: MaterialInstance[];\n total: number;\n}\n\ninterface MixedChartDatasetInterface {\n label: string;\n type: string;\n data: number[];\n borderColor: string;\n backgroundColor: string;\n pointBorderColor: string;\n pointBackgroundColor: string;\n pointHoverBackgroundColor: string;\n pointHoverBorderColor: string;\n}\n\nexport type DataInterface =\n | { labels: string[]; datasets: MixedChartDatasetInterface[] }\n | undefined;\n\nconst defaultStore: ChartInterface = {\n dispatch: () => {\n return;\n },\n selectedIndex: null,\n selectedMaterial: null,\n};\n\nconst defaultContext: ChartContextInterface = {\n ...defaultStore,\n data: undefined,\n indexes: [],\n materials: [],\n total: 0,\n};\n\nconst reducer = (\n state: ChartInterface = defaultStore,\n { payload, type }: ActionInterface\n): ChartInterface => {\n switch (type) {\n case RESET: {\n return {\n ...defaultStore,\n };\n }\n case SET_SELECTED_INDEX: {\n return {\n ...state,\n selectedIndex: payload as OptionInterface,\n selectedMaterial: null,\n };\n }\n case SET_SELECTED_MATERIAL: {\n return {\n ...state,\n selectedIndex: null,\n selectedMaterial: payload as OptionInterface,\n };\n }\n default:\n return state;\n }\n};\n\nexport const MixedChartContext =\n createContext(defaultContext);\n\nexport const MixedChartProvider: React.FC = ({\n children,\n color = '#77B7FC',\n label,\n startDate,\n endDate,\n}) => {\n const [state, dispatch] = useReducer(reducer, defaultStore);\n const {\n itemFiltersSelected: { contract },\n } = useContext(BaseStoreContext);\n const endDeliveryDate = getDate(endDate);\n const startDeliveryDate = getDate(startDate);\n\n const [data, setData] = useState(defaultContext.data);\n const [materials, setMaterials] = useState(\n defaultContext.materials\n );\n const [indexes, setIndexes] = useState(\n defaultContext.indexes\n );\n const { selected } = useContext(TypeSelectorContext);\n const { selectedLanguage } = useContext(LanguageContext);\n\n const [total, setTotal] = useState(defaultContext.total);\n const idIndex = state.selectedIndex?.value;\n const idMaterial = state.selectedMaterial?.value;\n const memoizedState = useMemo(\n () => ({\n idIndex,\n idMaterial,\n }),\n [idIndex, idMaterial]\n );\n const memoizedFilters = useMemo(\n () => ({\n currencyCode: new Currency().getDecoded()?.value,\n endDeliveryDate,\n isService: Array.isArray(contract)\n ? contract[0]\n : (contract as OptionInterface).value,\n role: selected,\n ...memoizedState,\n startDeliveryDate,\n }),\n [contract, endDeliveryDate, memoizedState, selected, startDeliveryDate]\n );\n\n const hasSelectedIndex: boolean = useMemo(\n (): boolean => !!(memoizedState.idMaterial || memoizedState.idIndex),\n [memoizedState]\n );\n\n useEffect(() => {\n if (!hasSelectedIndex && indexes.length) {\n dispatch({\n payload: {\n label: indexes[0].name,\n value: indexes[0].id,\n },\n type: SET_SELECTED_INDEX,\n });\n }\n }, [indexes]);\n\n const year = new Date().getFullYear();\n const month = new Date().getMonth() + 1;\n\n const currentMonth = {\n label: formatLabelYearMonthUTC(year, month).toISOString(),\n value: 0,\n };\n\n useEffect(() => {\n setData(undefined);\n new MixedChart({ filters: memoizedFilters })\n .getChart()\n .then(({ data, materials, indexes }) => {\n setMaterials(materials);\n setIndexes(indexes.sort((a, b) => a.name.localeCompare(b.name)));\n const datas: {\n color: string;\n data: number[];\n material: MaterialInstance;\n name: string;\n }[] = [];\n let labels: string[] = [];\n let t = 0;\n data.forEach((item) =>\n item.materials.forEach((m) =>\n m.indexValues.forEach(\n (i) =>\n !labels.includes(i.label) &&\n JSON.stringify(i) !== JSON.stringify(currentMonth) &&\n labels.push(i.label)\n )\n )\n );\n labels = labels.sort(\n (first, second) =>\n new Date(first).getTime() - new Date(second).getTime()\n );\n let colorIterator = 0;\n data.forEach((item) => {\n item.materials.forEach((m) => {\n datas.push({\n color: COLORS[parseInt(`${colorIterator % COLORS.length}`)],\n data: labels.map((l) => {\n const v = m.indexValues.filter((i) => l === i.label);\n if (v.length) {\n return v[0].value;\n }\n return 0;\n }),\n material: m.material,\n name: item.name,\n });\n colorIterator++;\n m.indexValues.forEach((i) => (t += i.value || 0));\n });\n });\n setTotal(t);\n setData({\n labels: labels.map((l) => {\n const dateString = new Date(l).toLocaleDateString(\n (selectedLanguage.value as string) ?? navigator.language,\n {\n month: 'short',\n year: 'numeric',\n }\n );\n return dateString.replace(/^./, dateString[0].toUpperCase());\n }),\n datasets: datas.map(({ data, color, material, name }) => ({\n label: `${material.code}`,\n type: 'line',\n data,\n borderColor: color,\n backgroundColor: 'transparent',\n pointBorderColor: color,\n pointBackgroundColor: color,\n pointHoverBackgroundColor: color,\n pointHoverBorderColor: color,\n yAxisID: 'y-axis-1',\n })),\n });\n });\n }, [color, label, memoizedFilters]);\n\n return (\n \n {children}\n \n );\n};\n","import React, { useContext } from 'react';\nimport { OptionInterface, ResetFilter, SelectFilter } from '../../Filters';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport {\n MixedChartContext,\n RESET,\n SET_SELECTED_INDEX,\n SET_SELECTED_MATERIAL,\n} from '../../../contexts/MixedChartContext';\n\nconst divideBy1000 = (n: number, loop = 0): [number, number] =>\n n < 1000 ? [n, loop] : divideBy1000(n / 1000, loop + 1);\n\nconst formatToUnits = (total: number, symbols: string[]): [string, string] => {\n const [n, l]: [number, number] = divideBy1000(total);\n return [n.toFixed(2), symbols[parseInt(l.toString())]];\n};\n\nconst formattedTitle = (result: string, symbol: string): JSX.Element => (\n \n {result}\n {symbol}\n \n);\n\nexport const formatTitleToK = (\n total: number,\n currency: string\n): JSX.Element => {\n const [result, symbol] = formatToUnits(total, ['', 'K', 'M', 'B', 'T']);\n return formattedTitle(result, `${symbol}${currency}`);\n};\n\nexport const formatTitleToKg = (total: number): JSX.Element => {\n const [result, symbol] = formatToUnits(total, ['t', 'Kt', 'Mt', 'Tt']);\n return formattedTitle(result, symbol);\n};\nexport const formatLabelYearMonthUTC = (year: number, month: number): Date => {\n return new Date(\n Date.UTC( year, parseInt(`${month < 10 ? '0' : ''}${month})`)-1, 2)\n );\n};\n\ninterface TopFiltersInterface {\n additional?: string;\n formatTitle: (total: number) => JSX.Element;\n total: number;\n}\n\nexport const TopFilters: React.FC = ({\n additional = '',\n children,\n formatTitle,\n total,\n}) => (\n
\n
\n {children || (\n \n {total\n .toFixed(2)\n .toString()\n .replace(\n /\\B(?=(\\d{3})+(?!\\d))/g /*eslint-disable-line*/,\n ','\n )}\n {additional}\n \n ),\n }}\n >\n
\n {formatTitle(total)}\n
\n \n )}\n
\n
\n);\n\nexport const BottomFilters: React.FC = () => {\n const { dispatch, materials, indexes, selectedIndex, selectedMaterial } =\n useContext(MixedChartContext);\n return (\n
\n
\n
\n \n dispatch({ type: RESET, payload: undefined })\n }\n />\n
\n
\n \n dispatch({\n payload: v,\n type: SET_SELECTED_INDEX,\n }),\n options: indexes.map((i) => ({\n label: i.name,\n value: i.id,\n })),\n placeholder: 'indexes',\n value: selectedIndex,\n }}\n />\n
\n
\n \n dispatch({\n payload: v,\n type: SET_SELECTED_MATERIAL,\n }),\n options: materials.map((m) => ({\n label: `${m.code} - ${m.name}`,\n value: m.id,\n })),\n placeholder: 'material',\n value: selectedMaterial,\n }}\n />\n
\n
\n );\n};\n","import {\n MaterialIndex,\n MaterialIndexInstance,\n MaterialIndexInterface,\n} from './MaterialIndex';\nimport { Material, MaterialInstance, MaterialInterface } from './Material';\nimport { formatLabelYearMonthUTC } from '../../components/Chart/Analysis/Filters';\n\nexport interface ChartInterface {\n year: number;\n month: number;\n value: number;\n materialUnitValue: number;\n mvtTonnageDistributed?: number;\n}\n\nexport interface VolumeGraphInterface {\n [key: string]: ChartInterface[];\n}\n\nexport class ChartInstance {\n label = new Date();\n value = 0;\n\n constructor(chart: ChartInterface) {\n this.label = formatLabelYearMonthUTC(chart.year, chart.month);\n this.value = chart.value || chart.mvtTonnageDistributed || 0;\n }\n}\n\nexport class Chart {\n getMany = (data: VolumeGraphInterface): MultiGraphInstance[] => {\n const results: MultiGraphInstance[] = [];\n for (const key in data) {\n results.push(\n new MultiGraphInstance(\n key,\n data[key].map((line) => new ChartInstance(line))\n )\n );\n }\n return results;\n };\n}\n\nexport class MultiGraphInstance {\n type = '';\n data: ChartInstance[] = [];\n\n constructor(type: string, data: ChartInstance[]) {\n this.type = type;\n this.data = data;\n }\n}\n\nexport class VolumeGraph {\n getMany = (data: VolumeGraphInterface): MultiGraphInstance[] => {\n const results: MultiGraphInstance[] = [];\n for (const key in data) {\n results.push(\n new MultiGraphInstance(\n key,\n data[key].map((line) => new ChartInstance(line))\n )\n );\n }\n return results;\n };\n}\nexport interface CircularChartInterface {\n year: number;\n month: number;\n mvtTonnageDistributed: number;\n domainName?: string | null;\n}\n\nexport class CircularChartInstance {\n type = '';\n data: ChartInstance[] = [];\n\n constructor(type: string, data: ChartInstance[]) {\n this.type = type;\n this.data = data;\n }\n}\n\nexport class CircularGraph {\n getMany = (lines: CircularChartInterface[]): CircularChartInstance[] => {\n //get Labels + remove duplicates\n const labels = lines\n .map((item) => `${item.year}-${item.month}`)\n .filter(\n (value, index, self) => index === self.findIndex((t) => t === value)\n );\n const data = lines\n .map((item) => {\n item.domainName = item.domainName ?? 'NA';\n return item;\n })\n .reduce((r, a) => {\n if (a.domainName != null) {\n const initRow = {\n year: a.year,\n month: a.month,\n domainName: a.domainName,\n mvtTonnageDistributed: 0,\n };\n r[a.domainName] =\n r[a.domainName] ||\n new Array(labels.length).fill(initRow, 0, labels.length);\n r[a.domainName][labels.indexOf(`${a.year}-${a.month}`)] = a;\n }\n return r;\n }, Object.create(null));\n const results: MultiGraphInstance[] = [];\n for (const key in data) {\n results.push(\n new MultiGraphInstance(\n key,\n data[key].map((line) => new ChartInstance(line))\n )\n );\n }\n\n return results;\n };\n}\n\nexport interface Co2ChartInterface {\n year: number;\n month: number;\n volumeTeqCO2: number;\n}\n\nexport class Co2ChartInstance {\n label = new Date();\n value = 0;\n\n constructor(chart: Co2ChartInterface) {\n this.label = formatLabelYearMonthUTC(chart.year, chart.month);\n this.value = chart.volumeTeqCO2;\n }\n}\n\nexport class Co2Chart {\n getMany = (lines: Co2ChartInterface[]): Co2ChartInstance[] =>\n lines.map((line) => new Co2ChartInstance(line));\n}\n\ninterface MixedDataChartInterface extends MaterialIndexInterface {\n materials: {\n material: MaterialInterface;\n materialIndexValues: ChartInterface[];\n }[];\n}\n\nexport interface MixedChartInterface {\n data: MixedDataChartInterface[];\n indexes: MaterialIndexInterface[];\n materials: MaterialInterface[];\n}\n\nexport class MixedChartIndexValueInstance {\n label: string = new Date().toISOString();\n value = 0;\n\n constructor(chart: ChartInterface) {\n this.label = formatLabelYearMonthUTC(chart.year, chart.month).toISOString();\n this.value = chart.materialUnitValue;\n }\n}\n\nexport type DataMixedChartType = {\n materials: {\n indexValues: MixedChartIndexValueInstance[];\n material: MaterialInstance;\n }[];\n} & MaterialIndexInstance;\n\nexport class MixedChartInstance {\n data: DataMixedChartType[] = [];\n materials: MaterialInstance[] = [];\n indexes: MaterialIndexInstance[] = [];\n constructor({ data, indexes, materials }: MixedChartInterface) {\n this.data = data.map((item) => ({\n ...new MaterialIndexInstance(item),\n materials: item.materials.map((m) => ({\n indexValues: m.materialIndexValues.map(\n (i) => new MixedChartIndexValueInstance(i)\n ),\n material: new Material().getOne(m.material),\n })),\n }));\n this.indexes = new MaterialIndex().getMany(indexes);\n this.materials = new Material().getMany(materials);\n }\n}\n","import { ModelActions, ModelInstance, ModelInterface } from './Common';\n\nexport interface CompanySubTypeInterface extends ModelInterface {\n idCompanySubType: string;\n companySubTypeCode: string;\n companySubTypeName: string;\n}\n\nexport class CompanySubTypeInstance extends ModelInstance {\n constructor(companySubType: CompanySubTypeInterface) {\n super(companySubType);\n this.id = companySubType.idCompanySubType;\n this.code = companySubType.companySubTypeCode;\n this.name = companySubType.companySubTypeName;\n }\n}\n\nexport class Company extends ModelActions {\n getMany = (\n companySubTypes: CompanySubTypeInterface[]\n ): CompanySubTypeInstance[] =>\n companySubTypes.map(\n (companySubType) => new CompanySubTypeInstance(companySubType)\n );\n getOne = (companySubType: CompanySubTypeInterface): CompanySubTypeInstance =>\n new CompanySubTypeInstance(companySubType);\n}\n","import { ModelActions, ModelInstance, ModelInterface } from './Common';\n\nexport interface CompanyTypeInterface extends ModelInterface {\n idCompanyType: string;\n companyTypeCode: string;\n companyTypeName: string;\n}\n\nexport class CompanyTypeInstance extends ModelInstance {\n constructor(companyType: CompanyTypeInterface) {\n super(companyType);\n this.id = companyType.idCompanyType;\n this.code = companyType.companyTypeCode;\n this.name = companyType.companyTypeName;\n }\n}\n\nexport class Company extends ModelActions {\n getMany = (companyTypes: CompanyTypeInterface[]): CompanyTypeInstance[] =>\n companyTypes.map((companyType) => new CompanyTypeInstance(companyType));\n getOne = (companyType: CompanyTypeInterface): CompanyTypeInstance =>\n new CompanyTypeInstance(companyType);\n}\n","import { ModelActions, ModelInstance, ModelInterface } from './Common';\nimport {\n CompanySubTypeInstance,\n CompanySubTypeInterface,\n} from './CompanySubType';\nimport { CompanyTypeInstance, CompanyTypeInterface } from './CompanyType';\n\nexport interface CompanyInterface extends ModelInterface {\n companyType: CompanyTypeInterface;\n companySubType: CompanySubTypeInterface;\n idCompany: string;\n companyLocalName: string;\n}\n\nexport class CompanyInstance extends ModelInstance {\n companyType?: CompanyTypeInstance = undefined;\n companySubType?: CompanySubTypeInstance = undefined;\n\n constructor(company: CompanyInterface) {\n super(company);\n this.id = company.idCompany;\n this.name = company.companyLocalName;\n this.companyType =\n company.companyType && new CompanyTypeInstance(company.companyType);\n this.companySubType =\n company.companySubType &&\n new CompanySubTypeInstance(company.companySubType);\n }\n}\n\nexport class Company extends ModelActions {\n getMany = (companies: CompanyInterface[]): CompanyInstance[] =>\n companies.map((company) => new CompanyInstance(company));\n getOne = (company: CompanyInterface): CompanyInstance =>\n new CompanyInstance(company);\n}\n","import { ModelActions, ModelInstance, ModelInterface } from './Common';\nimport { CompanyInstance, CompanyInterface } from './Company';\n\nexport interface ContainerInterface extends ModelInterface {\n idContainer: string;\n containerName: string;\n}\n\nexport class ContainerInstance extends ModelInstance {\n constructor(container: ContainerInterface) {\n super(container);\n this.id = container.idContainer;\n this.name = container.containerName;\n }\n}\n\nexport class Container extends ModelActions {\n getMany = (containers: ContainerInterface[]): ContainerInstance[] =>\n containers.map((container) => new ContainerInstance(container));\n getOne = (container: ContainerInterface): ContainerInstance =>\n new ContainerInstance(container);\n}\n","import {\n CompanyInstance,\n CompanyInterface,\n ContainerDemandStatusInstance,\n ContainerDemandStatusInterface,\n ContainerInstance,\n ContainerInterface,\n} from '.';\nimport { ModelActions, ModelInstance, ModelInterface } from './Common';\nimport { MaterialInstance, MaterialInterface } from './Material';\n\nexport interface ContainerDemandInterface extends ModelInterface {\n idContainerDemand: string;\n idDemand: number;\n company: CompanyInterface;\n container: ContainerInterface;\n status: ContainerDemandStatusInterface;\n internalOperator: string;\n externalOperator: string;\n bookingDate: string;\n materials: MaterialInterface[];\n}\n\nexport class ContainerDemandInstance extends ModelInstance {\n container?: ContainerInstance = undefined;\n company?: CompanyInstance = undefined;\n status?: ContainerDemandStatusInstance = undefined;\n internalOperator?: string = undefined;\n idDemand?: number = undefined;\n externalOperator?: string = undefined;\n materials?: any[] = [];\n bookingDate?;\n\n constructor(demand: ContainerDemandInterface) {\n super(demand);\n this.id = demand.idContainerDemand;\n this.idDemand = demand.idDemand;\n this.company = demand.company && new CompanyInstance(demand.company);\n this.container =\n demand.container && new ContainerInstance(demand.container);\n this.status =\n demand.status && new ContainerDemandStatusInstance(demand.status);\n this.internalOperator = demand.internalOperator;\n this.externalOperator = demand.externalOperator;\n this.bookingDate = new Date(demand.bookingDate);\n this.materials = demand.materials.map(\n (material) => new MaterialInstance(material)\n );\n }\n}\n\nexport class ContainerDemand extends ModelActions {\n getMany = (\n containers: ContainerDemandInterface[]\n ): ContainerDemandInstance[] =>\n containers.map((container) => new ContainerDemandInstance(container));\n getOne = (container: ContainerDemandInterface): ContainerDemandInstance =>\n new ContainerDemandInstance(container);\n}\n","import { ModelActions, ModelInstance, ModelInterface } from './Common';\n\nexport interface ContainerDemandStatusInterface extends ModelInterface {\n idContainerDemandStatus: string;\n demandStatusCode: string;\n demandStatusName: string;\n}\n\nexport class ContainerDemandStatusInstance extends ModelInstance {\n constructor(demandStatus: ContainerDemandStatusInterface) {\n super(demandStatus);\n this.id = demandStatus.idContainerDemandStatus;\n this.code = demandStatus.demandStatusCode;\n this.name = demandStatus.demandStatusName;\n }\n}\n\nexport class ContainerDemandStatus extends ModelActions {\n getMany = (\n demandeStatus: ContainerDemandStatusInterface[]\n ): ContainerDemandStatusInstance[] =>\n demandeStatus.map((status) => new ContainerDemandStatusInstance(status));\n getOne = (\n status: ContainerDemandStatusInterface\n ): ContainerDemandStatusInstance => new ContainerDemandStatusInstance(status);\n}\n","import { ModelActions, ModelInstance, ModelInterface } from './Common';\n\nexport interface InvoiceTypeInterface extends ModelInterface {\n idInvoiceType: string;\n invoiceTypeCode: string;\n invoiceTypeName: string;\n}\n\nexport class InvoiceTypeInstance extends ModelInstance {\n constructor(invoiceType: InvoiceTypeInterface) {\n super(invoiceType);\n this.id = invoiceType.idInvoiceType;\n this.code = invoiceType.invoiceTypeCode;\n this.name = invoiceType.invoiceTypeName;\n }\n}\n\nexport class InvoiceType extends ModelActions {\n getMany = (invoiceType: InvoiceTypeInterface[]): InvoiceTypeInstance[] =>\n invoiceType.map((type) => new InvoiceTypeInstance(type));\n getOne = (type: InvoiceTypeInterface): InvoiceTypeInstance =>\n new InvoiceTypeInstance(type);\n}\n","export interface KPIInterface {\n serviceRevenue: number;\n valorisationRevenue: number;\n volume: number;\n volumeTeqCO2: number;\n}\n\nexport class KPIInstance {\n revenue = 0;\n volume = 0;\n volumeTeqCO2 = 0;\n revenueTotal = 0;\n\n constructor(kpi: KPIInterface) {\n this.revenue = kpi.valorisationRevenue;\n this.volume = kpi.volume || 0;\n this.volumeTeqCO2 = kpi.volumeTeqCO2 || 0;\n this.revenueTotal = kpi.valorisationRevenue + kpi.serviceRevenue;\n }\n}\n\nexport class KPI {\n getOne = (line: KPIInterface): KPIInstance => new KPIInstance(line);\n}\n","import { ModelActions, ModelInstance, ModelInterface } from './Common';\n\nexport interface OrganizationInterface extends ModelInterface {\n idOrganization: string;\n organizationLevel: string;\n organizationName: string;\n parentOrganization?: OrganizationInterface;\n}\n\nexport class OrganizationInstance extends ModelInstance {\n parent?: OrganizationInstance = undefined;\n level: string;\n\n constructor(organization: OrganizationInterface) {\n super(organization);\n this.id = organization.idOrganization;\n this.name = organization.organizationName;\n this.id = organization.idOrganization;\n this.name = organization.organizationName;\n this.parent =\n organization.parentOrganization &&\n new OrganizationInstance(organization.parentOrganization);\n this.level = organization.organizationLevel;\n }\n}\n\nexport class Organization extends ModelActions {\n getMany = (organizations: OrganizationInterface[]): OrganizationInstance[] =>\n organizations.map((organization) => new OrganizationInstance(organization));\n getOne = (organization: OrganizationInterface): OrganizationInstance =>\n new OrganizationInstance(organization);\n}\n","export class AbstractSerializer {\n [key: string]: any; /* eslint-disable-line */\n\n serialize(obj: any /* eslint-disable-line */) {\n obj &&\n Object.keys(obj).forEach((o) => (this[o.toString()] = obj[o.toString()]));\n return this;\n }\n}\n","import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { axiosInterceptorError, Token } from '../helpers';\n\ninterface EndpointInterface {\n endpoint?: string;\n}\n\ninterface ConfigInterface {\n config?: AxiosRequestConfig;\n}\n\ninterface CustomHeadersInterface {\n Accept: string;\n Authorization?: string;\n 'Content-Type': string;\n}\n\nconst getHeaders = (): Record => {\n const h: Record = {\n Accept: 'application/ld+json',\n 'Content-Type': 'application/ld+json',\n };\n if (new Token().get()) {\n h['Authorization'] = `Bearer ${new Token().get()}`;\n }\n\n return h;\n};\n\nclass API {\n endpoint = '';\n filter = {};\n pagination = {};\n\n getBaseUrl = (): string => '';\n\n request(): AxiosInstance {\n const instance = axios.create({\n baseURL: this.getBaseUrl(),\n headers: getHeaders(),\n });\n instance.interceptors.response.use((r) => r, axiosInterceptorError);\n return instance;\n }\n\n async deleteRequest({ endpoint }: EndpointInterface): Promise {\n return this.request().delete(`${this.endpoint}${endpoint || ''}`);\n }\n\n async getRequest({\n endpoint = '',\n }: EndpointInterface): Promise {\n return this.request().get(\n `${this.endpoint}${endpoint}${\n new URLSearchParams({\n ...this.pagination,\n ...this.filter,\n }).toString() || ''\n }`\n );\n }\n\n async patchRequest({\n data,\n endpoint = '',\n }: AxiosRequestConfig & EndpointInterface): Promise {\n return this.request().patch(\n `${this.endpoint}${endpoint}`,\n JSON.stringify(data),\n {\n headers: {\n Authorization: `Bearer ${new Token().get()}`,\n 'Content-Type': 'application/merge-patch+json',\n },\n }\n );\n }\n\n async postRequest({\n config = {},\n data,\n endpoint = '',\n }: AxiosRequestConfig &\n EndpointInterface &\n ConfigInterface): Promise {\n return this.request().post(`${this.endpoint}${endpoint}`, data, config);\n }\n\n public async putRequest({\n data,\n endpoint,\n }: AxiosRequestConfig & EndpointInterface): Promise {\n return this.request().put(\n `${this.endpoint}${endpoint || ''}`,\n JSON.stringify(data)\n );\n }\n}\n\nexport class APIPlatform extends API {\n endpoint = '';\n\n getBaseUrl = (): string => process.env.REACT_APP_API_ENTRYPOINT || '';\n}\n","import { APIPlatform } from './API';\nimport { SyntheticEvent } from 'react';\n\ninterface ContactInterface {\n data: SyntheticEvent;\n}\n\nexport class Contact extends APIPlatform {\n public endpoint = '/users';\n\n public send({ data }: ContactInterface): Promise {\n this.endpoint = '';\n return this.postRequest({\n data,\n endpoint: '/contact',\n })\n .then(() => {\n return;\n })\n .catch();\n }\n}\n","import { APIPlatform } from './API';\nimport { OptionInterface } from '../components/Filters';\n\nexport class Currency extends APIPlatform {\n public endpoint = '/currencies';\n\n public get(): Promise {\n return this.getRequest({}).then(({ data }) => {\n return data['hydra:member'];\n });\n }\n}\n","import { AxiosResponse } from 'axios';\nimport { APIPlatform } from './API';\nimport { Dispatch, MutableRefObject } from 'react';\nimport { LOGOUT, UPDATE_CLIENT, UserActionInterface } from '../contexts';\nimport {\n Company as CompanyStorage,\n getDecodedToken,\n Organization as OrganizationStorage,\n Preference,\n RefreshToken,\n Token,\n UserId,\n Username,\n} from '../helpers';\nimport { Company, Organization } from '../interfaces/providers';\n\ninterface RefInterface {\n ref: MutableRefObject<{\n reset: () => void;\n }>;\n}\ninterface FormdataInterface {\n data: FormData;\n}\n\ninterface ResetPasswordInterface extends RefInterface, FormdataInterface {}\n\ntype ValueInterface =\n | { payload: Record | string; type: string }\n | Record;\n\ninterface LoginInterface extends ResetPasswordInterface {\n updateClient: any; // eslint-disable-line\n}\n\ninterface RegisterInterface extends ResetPasswordInterface {\n updateClient: (value: ValueInterface) => void;\n}\n\ninterface RegisterInterface extends ResetPasswordInterface {\n updateClient: (value: ValueInterface) => void;\n}\n\ninterface LogoutInterface {\n updateClient: Dispatch;\n}\n\nexport class User extends APIPlatform {\n public endpoint = '/users';\n\n public login({ data, updateClient }: LoginInterface): Promise {\n data.append('grant_type', 'password');\n data.append('client_id', '' + process.env.REACT_APP_OAUTH_CLIENT_ID);\n data.append(\n 'client_secret',\n '' + process.env.REACT_APP_OAUTH_CLIENT_SECRET\n );\n this.endpoint = '';\n return this.postRequest({\n config: {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n },\n data,\n endpoint: '/login',\n }).then(({ status, data }: AxiosResponse) => {\n if (200 !== status) {\n return;\n }\n\n const accessToken = data.access_token;\n const token = new Token();\n const decoded = getDecodedToken(accessToken);\n // Administrators are not allowed on this platform\n if (\n decoded.roles.includes('ROLE_ADMIN') ||\n (decoded.roles.includes('ROLE_EXTERNAL_OPERATOR') &&\n decoded.roles.includes('ROLE_INTERNAL_OPERATOR'))\n ) {\n // the empty message has been asked by the client\n throw new Error();\n }\n new RefreshToken().set(data.refresh_token);\n token.set(accessToken);\n new Username().set(decoded.username);\n new UserId().set(decoded.user_id);\n new Preference().setDecoded(decoded.preference);\n updateClient({\n payload: accessToken,\n type: UPDATE_CLIENT,\n });\n decoded.organization_id &&\n new Organization()\n .getOne({ id: decoded.organization_id })\n .then(({ data }) => new OrganizationStorage().setDecoded(data));\n new Company()\n .getOne({ id: decoded.company_id })\n .then(({ data }) => new CompanyStorage().setDecoded(data));\n });\n }\n\n public resetPasswordRequest({\n data,\n ref,\n }: ResetPasswordInterface): Promise {\n this.endpoint = '';\n return this.postRequest({\n data,\n endpoint: `/reset-password/request`,\n })\n .then(({ status }: AxiosResponse) => User.resetForm({ ref, status }))\n .catch();\n }\n\n static resetForm({ ref, status }: RefInterface & { status: number }): void {\n if (200 === status) {\n ref.current.reset();\n }\n }\n\n public resetPasswordApply({\n data,\n ref,\n }: ResetPasswordInterface): Promise {\n this.endpoint = '';\n return this.postRequest({\n data: {\n ...data,\n },\n endpoint: '/reset-password/apply',\n })\n .then(({ status }: AxiosResponse) => User.resetForm({ ref, status }))\n .catch();\n }\n\n public static logout({ updateClient }: LogoutInterface): void {\n const providers = [\n Token,\n Preference,\n Username,\n CompanyStorage,\n OrganizationStorage,\n ];\n providers.forEach((provider) => new provider().delete());\n updateClient({\n type: LOGOUT,\n });\n }\n\n public register({ data, ref }: RegisterInterface): Promise {\n return this.postRequest({\n data,\n endpoint: '/users',\n }).then(({ status }: AxiosResponse) => {\n if (201 === status) {\n ref.current.reset();\n }\n return;\n });\n }\n\n public refreshToken(): Promise {\n const data = new FormData();\n data.append('grant_type', 'refresh_token');\n data.append('client_id', '' + process.env.REACT_APP_OAUTH_CLIENT_ID);\n data.append('refresh_token', new RefreshToken().get() || '');\n this.endpoint = '';\n return this.postRequest({\n config: {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n },\n data,\n endpoint: '/login',\n }).then(({ status, data }: AxiosResponse) => {\n if (200 === status) {\n const accessToken = data.access_token;\n const token = new Token();\n const decoded = getDecodedToken(accessToken);\n if (decoded.roles.includes('ROLE_ADMIN')) {\n throw new Error();\n }\n new RefreshToken().set(data.refresh_token);\n token.set(accessToken);\n new Username().set(decoded.username);\n new Preference().setDecoded(decoded.preference);\n decoded.organization_id &&\n new Organization()\n .getOne({ id: decoded.organization_id })\n .then(({ data }) => new OrganizationStorage().setDecoded(data));\n new Company()\n .getOne({ id: decoded.company_id })\n .then(({ data }) => new CompanyStorage().setDecoded(data));\n } else {\n User.logout({ updateClient: () => null });\n window.location.pathname = '/login';\n }\n });\n }\n\n public sendDemandMail({ data }): Promise {\n this.endpoint = '';\n return this.postRequest({\n data,\n endpoint: `/send_demand_mail`,\n })\n .then(() => console.log())\n .catch();\n }\n}\n","import { APIPlatform } from './API';\n\nexport class Preference extends APIPlatform {\n public endpoint = '/user_preferences';\n\n public update({\n data,\n id,\n }: {\n data: Record;\n id: string;\n }): void {\n this.patchRequest({ data, endpoint: `/${id}` })\n .then(() => {\n return;\n })\n .catch();\n }\n}\n","import axios, { AxiosInstance } from 'axios';\nimport { axiosInterceptorError, Language, Token } from '../../helpers';\nimport { AbstractSerializer } from '../serializer/AbstractSerializer';\nimport { PossibleValueType } from '../KeyValueInterface';\nimport { User } from '../../actions';\n\nexport interface AbstractProviderConstructorInterface {\n filters?: any; //eslint-disable-line\n pagination?: any; //eslint-disable-line\n}\n\ninterface OneInterface {\n data: any; //eslint-disable-line\n}\n\ninterface ListInterface {\n data: any[]; //eslint-disable-line\n total: number;\n}\n\ninterface CustomHeadersInterface {\n Accept: string;\n Authorization?: string;\n 'Content-Type': string;\n}\n\nclass RefreshTokenSingleton {\n static fetching = false;\n\n static refresh(): Promise {\n if (this.fetching) {\n return new Promise(() => null);\n } else {\n this.fetching = true;\n return new User().refreshToken().finally(() => (this.fetching = false));\n }\n }\n}\n\nexport class AbstractProvider {\n endpoint = '';\n env = process.env.REACT_APP_ENV || 'int';\n filters: any = {}; //eslint-disable-line\n ids: string[] = [];\n management = '';\n model: any; //eslint-disable-line\n name = '';\n pagination = {};\n token = new Token().get() || '';\n serializer = new AbstractSerializer();\n\n constructor({\n filters,\n pagination,\n }: AbstractProviderConstructorInterface = {}) {\n this.filters = { ...filters, language: new Language().get() };\n this.pagination = pagination;\n }\n\n getHeaders = (): Record => {\n const h: Record = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n };\n if (this.token) {\n h['Authorization'] = `Bearer ${this.token}`;\n }\n\n return h;\n };\n\n request(): AxiosInstance {\n const instance = axios.create({\n headers: this.getHeaders(),\n });\n instance.interceptors.request.use(\n async (config) => {\n if (config.url !== '/login') {\n if (new Token().getDecoded().exp - Date.now() / 1000 <= 60 * 60) {\n RefreshTokenSingleton.refresh().catch(() => {\n User.logout({ updateClient: () => null });\n window.location.pathname = '/';\n });\n }\n }\n return config;\n },\n (error) => Promise.reject(error)\n );\n instance.interceptors.response.use((r) => r, axiosInterceptorError);\n return instance;\n }\n\n formatQueryParameters = (): string => {\n const queryParametersObject = Object.entries({\n ...this.pagination,\n ...this.serializer.serialize(this.filters),\n }).reduce(\n (a, [k, v]: [string, PossibleValueType]) =>\n v === false\n ? { ...a, [k]: v }\n : v\n ? Array.isArray(v) && v.length\n ? {\n ...a,\n [k]: `[${\n v[0].value ? v.map((x) => x.value).join(',') : v.join(',')\n }]`,\n }\n : v.value || v.value === false\n ? { ...a, [k]: v.value }\n : v.length || (!Array.isArray(v) && v)\n ? { ...a, [k]: '[]' === v ? '' : v }\n : a\n : a,\n {}\n );\n return Object.keys(queryParametersObject).length\n ? `?${new URLSearchParams(queryParametersObject).toString()}`\n : '';\n };\n\n getUrl = (value = '', withQueryParameters?: boolean): string =>\n `${process.env.REACT_APP_WDH_API_URL}/${this.management}_management/v1/${\n this.endpoint || this.name\n }${value}${withQueryParameters ? this.formatQueryParameters() : ''}`;\n\n create = ({\n data,\n }: any): Promise => //eslint-disable-line\n this.request()\n .post(this.getUrl(), data)\n .then(({ data }) => ({\n data: data,\n }));\n\n update = ({ data }) =>\n this.request()\n .put(this.getUrl(`/${data.id}`), data, {\n headers: {\n 'Content-Type': 'application/merge-patch+json',\n },\n })\n .then(({ data }) => ({\n data: data?.data,\n }));\n\n deleteMany = (): void => {\n Promise.all(\n this.ids.map((id) => this.request().delete(this.getUrl(`/${id}`)))\n );\n };\n\n getList = (): Promise =>\n this.request()\n .get(this.getUrl('', true))\n .then(({ data }) => ({\n data: this.model.getMany(data.data ? data.data : data),\n total: data.count ? data.count : data.length,\n }));\n\n getOne = ({ id }: { id: string }): Promise =>\n this.request()\n .get(this.getUrl(`/${id}`, true))\n .then(({ data }) => ({\n data: this.model.getOne(data),\n }));\n}\n","import { AbstractProvider } from './abstract';\n\ninterface BCMInterface {\n [key: string]: number;\n}\n\nexport class AbstractBCMPortal extends AbstractProvider {\n withParams = true;\n\n getUrl = (value = '', withQueryParameters?: boolean): string =>\n `${process.env.REACT_APP_WDH_API_URL}/bcm_customer_portal/v1${\n this.endpoint || this.name\n }${value}${withQueryParameters ? this.formatQueryParameters() : ''}`;\n\n get = (): Promise =>\n this.request()\n .get(this.getUrl('', this.withParams))\n .then(({ data }) => this.model.getOne(data.data ? data.data : data));\n}\n","import {\n Chart as ChartModel,\n VolumeGraph as VolumeGraphModel,\n MultiGraphInstance,\n Co2Chart as Co2ChartModel,\n Co2ChartInstance,\n Material,\n MixedChartInstance,\n MaterialInstance,\n CircularGraph,\n CircularChartInstance,\n} from '../model';\nimport { AbstractBCMPortal } from './abstractBCMPortal';\nimport { ExportAllDataInterface } from '../../components/Button/Export/AllSerializer';\nimport { ExportMovementDataInterface } from '../../components/Button/Export/MovementSerializer';\nimport { ChartRestInterface } from '../ChartInterface';\n\nconst CO2 = '/co2';\nconst REVENUES = '/revenues';\nconst VOLUMES = '/volumes';\nconst CIRCULAR_ECONOMY = '/circular_economy';\nconst MATERIALS = '/materials';\nconst INDEXES = '/indexes';\n\n\nexport class Chart extends AbstractBCMPortal {\n endpoint = '/analysis_and_reporting';\n model = new ChartModel();\n\n getChart = (\n rest?: ChartRestInterface\n ): Promise<\n {\n data: MultiGraphInstance[];\n } & ChartRestInterface\n > => {\n return this.request()\n .get(this.getUrl(REVENUES, true))\n .then(({ data }) => {\n return {data: this.model.getMany(data?.data || data), ...rest}\n });\n };\n}\nexport class FilterChart extends AbstractBCMPortal {\n endpoint = '/analysis_and_reporting';\n model = new ChartModel();\n\n getMaterials = (\n rest?: ChartRestInterface\n ): Promise<\n {\n materials: MaterialInstance[];\n } & ChartRestInterface\n > => {\n return this.request()\n .get(this.getUrl(MATERIALS, true))\n .then(({ data }) => ({\n materials: new Material().getMany(data),\n ...rest,\n }));\n };\n}\n\nexport class VolumeChart extends AbstractBCMPortal {\n endpoint = '/analysis_and_reporting';\n model = new VolumeGraphModel();\n\n getChart = (\n rest?: ChartRestInterface\n ): Promise<\n {\n data: MultiGraphInstance[];\n } & ChartRestInterface\n > => {\n return this.request()\n .get(this.getUrl(VOLUMES, true))\n .then(({ data }) => ({\n data: this.model.getMany(data?.data || data),\n ...rest,\n }));\n };\n}\nexport class CircularEconomyChart extends AbstractBCMPortal {\n endpoint = '/analysis_and_reporting';\n model = new CircularGraph();\n\n getChart = (\n rest?: ChartRestInterface\n ): Promise<\n {\n data: CircularChartInstance[];\n materials: MaterialInstance[];\n } & ChartRestInterface\n > => {\n return this.request()\n .get(this.getUrl(CIRCULAR_ECONOMY, true))\n .then(({ data }) => ({\n data: this.model.getMany(data?.data || data),\n materials: new Material().getMany(data.materials),\n ...rest,\n }));\n };\n}\n\nexport class MovementVolumeChart extends AbstractBCMPortal {\n endpoint = '/movement';\n model = new VolumeGraphModel();\n\n getChart = (\n rest?: ChartRestInterface\n ): Promise<\n {\n data: MultiGraphInstance[];\n materials: MaterialInstance[];\n } & ChartRestInterface\n > => {\n return this.request()\n .get(this.getUrl(VOLUMES, true))\n .then(({ data }) => ({\n data: this.model.getMany(data?.data || data),\n materials: new Material().getMany(data.materials),\n ...rest,\n }));\n };\n}\n\nexport class Co2Chart extends AbstractBCMPortal {\n endpoint = '/analysis_and_reporting';\n model = new Co2ChartModel();\n\n getChart = (\n rest?: ChartRestInterface\n ): Promise<\n {\n data: Co2ChartInstance[];\n } & ChartRestInterface\n > => {\n return this.request()\n .get(this.getUrl(CO2, true))\n .then(({ data }) => ({\n data: this.model.getMany(data?.data || data),\n ...rest,\n }));\n };\n}\n\nexport class MovementCo2Chart extends AbstractBCMPortal {\n endpoint = '/movement';\n model = new Co2ChartModel();\n\n getChart = (\n rest?: ChartRestInterface\n ): Promise<\n {\n data: Co2ChartInstance[];\n materials: MaterialInstance[];\n } & ChartRestInterface\n > => {\n return this.request()\n .get(this.getUrl(CO2, true))\n .then(({ data }) => ({\n data: this.model.getMany(data?.data || data),\n materials: new Material().getMany(data.materials),\n ...rest,\n }));\n };\n}\n\nexport class MixedChart extends AbstractBCMPortal {\n endpoint = '/analysis_and_reporting';\n\n getChart = (): Promise => {\n return this.request()\n .get(this.getUrl(INDEXES, true))\n .then(({ data }) => new MixedChartInstance(data));\n };\n}\n\nexport class ExportChart extends AbstractBCMPortal {\n endpoint = '/analysis_and_reporting/export';\n\n getChart = (): Promise => {\n return this.request()\n .get(this.getUrl('', true))\n .then(({ data }) => data as ExportAllDataInterface);\n };\n}\nexport class MovementExportChart extends AbstractBCMPortal {\n endpoint = '/movement/export';\n\n getChart = (): Promise => {\n return this.request()\n .get(this.getUrl('', true))\n .then(({ data }) => data as ExportMovementDataInterface);\n };\n}\n","export const PROVIDER = {\n COMPANIES: 'companies',\n COMPANY_SUB_TYPES: 'company_sub_types',\n COMPANY_TYPES: 'company_types',\n INVOICES: 'invoices',\n INVOICE_LINES: 'invoice_lines',\n INVOICE_STATUS: 'invoice_status',\n INVOICE_TYPE: 'invoice_types',\n MATERIALS: 'materials',\n MATERIAL_FAMILIES: 'material_families',\n MATERIAL_INDEX_SOURCES: 'material_index_sources',\n MATERIAL_INDEX_VALUES: 'material_index_values',\n MATERIAL_REFERENTIALS: 'material_referentials',\n MATERIAL_SUB_FAMILIES: 'material_subfamilies',\n ORGANIZATIONS: 'organizations',\n ORGANIZATION_HIERARCHIES: 'organization_hierarchies',\n ORGANIZATION_TYPES: 'organization_types',\n CONTAINERS: 'containers',\n CONTAINER_DEMANDS: 'container_demands',\n CONTAINER_DEMAND_STATUS: 'container_demand_status',\n};\nexport const MANAGEMENT = {\n COMPANY: 'company',\n INVOICE: 'invoice',\n MATERIAL: 'material',\n ORGANIZATION: 'organization',\n};\n\nexport enum ROLES {\n ROLE_CUSTOMER = 1,\n ROLE_SUPPLIER = 2,\n ROLE_ADMIN = 3,\n ROLE_INTERNAL_OPERATOR = 3,\n ROLE_EXTERNAL_OPERATOR = 4,\n\n ROLE_MOVEMENT_CUSTOMER = 6,\n ROLE_MOVEMENT_SUPPLIER = 7,\n}\n\n\nexport enum ROUTES {\n Welcome = '/',\n Analysis = '/analysis',\n Login = '/login',\n Catalog = '/catalogs',\n Account = '/account',\n Movement = '/movement',\n DemandsExternal = '/demandsExternal',\n DemandsInternal = '/demandsInternal',\n CreateDemands = '/demandsExternal/create',\n ResetPasswordRequest = '/reset-password',\n ResetPasswordApply = '/reset-password/:token',\n CatalogItem = '/catalogs/:id',\n Contact = '/contact',\n Consent = '/consent',\n}\n\nexport const EXCLUDED_ROUTES: string[] = [\n ROUTES.Login,\n ROUTES.ResetPasswordRequest,\n ROUTES.ResetPasswordApply,\n];\n","import { AbstractProvider } from './abstract';\nimport { Company as CompanyModel } from '../model';\nimport { MANAGEMENT, PROVIDER } from '../../actions/BCM_Constant';\n\nexport class Company extends AbstractProvider {\n management = MANAGEMENT.COMPANY;\n model = new CompanyModel();\n name = PROVIDER.COMPANIES;\n}\n","import { AbstractProvider } from './abstract';\nimport { Container as ContainerModel } from '../model';\nimport { MANAGEMENT, PROVIDER } from '../../actions/BCM_Constant';\n\nexport class Container extends AbstractProvider {\n endpoint = PROVIDER.CONTAINERS;\n management = MANAGEMENT.COMPANY;\n model = new ContainerModel();\n name = PROVIDER.CONTAINERS;\n}\n","import { AbstractProvider } from './abstract';\nimport { ContainerDemand as ContainerDemandModel } from '../model';\nimport { MANAGEMENT, PROVIDER } from '../../actions/BCM_Constant';\n\nexport class ContainerDemand extends AbstractProvider {\n endpoint = PROVIDER.CONTAINER_DEMANDS;\n management = MANAGEMENT.COMPANY;\n model = new ContainerDemandModel();\n name = PROVIDER.CONTAINERS;\n}\n","import { AbstractProvider } from './abstract';\nimport { ContainerDemandStatus as ContainerDemandStatusModel } from '../model';\nimport { MANAGEMENT, PROVIDER } from '../../actions/BCM_Constant';\n\nexport class ContainerDemandStatus extends AbstractProvider {\n endpoint = PROVIDER.CONTAINER_DEMAND_STATUS;\n management = MANAGEMENT.COMPANY;\n model = new ContainerDemandStatusModel();\n name = PROVIDER.CONTAINERS;\n}\n","import { KPI as KPIModel } from '../model';\nimport { AbstractBCMPortal } from './abstractBCMPortal';\n\nexport class KPI extends AbstractBCMPortal {\n endpoint = '/overview';\n model = new KPIModel();\n withParams = true;\n}\n","import { AbstractSerializer } from './AbstractSerializer';\n\nexport class MaterialSerializer extends AbstractSerializer {\n serialize(\n obj: { [key: string]: string | number | [] } /* eslint-disable-line */\n ): this {\n this.perPage = obj.perPage;\n this.page = obj.page;\n this.language = obj.language;\n this.idOrganizations = obj.idOrganizations;\n this.idCompanies = obj.idCompanies;\n this.idMaterialFamily = obj.materialFamilyFilterValues;\n this.idMaterialSubFamily = obj.materialSubFamilyFilterValues;\n this.fullname = obj.searchMaterialFilter;\n return this;\n }\n}\n","import { AbstractProvider } from './abstract';\nimport { Material as MaterialModel } from '../model';\nimport { MANAGEMENT, PROVIDER } from '../../actions/BCM_Constant';\nimport { MaterialSerializer } from '../serializer/MaterialSerializer';\n\nexport class Material extends AbstractProvider {\n management = MANAGEMENT.MATERIAL;\n model = new MaterialModel();\n name = PROVIDER.MATERIALS;\n serializer = new MaterialSerializer();\n}\n","import { AbstractProvider } from './abstract';\nimport { MaterialFamily as MaterialFamilyModel } from '../model';\nimport { MANAGEMENT, PROVIDER } from '../../actions/BCM_Constant';\n\nexport class MaterialFamily extends AbstractProvider {\n endpoint = PROVIDER.MATERIAL_FAMILIES;\n management = MANAGEMENT.MATERIAL;\n model = new MaterialFamilyModel();\n name = PROVIDER.MATERIALS;\n}\n","import { AbstractProvider } from './abstract';\nimport { MaterialSubFamily as MaterialSubFamilyModel } from '../model';\nimport { MANAGEMENT, PROVIDER } from '../../actions/BCM_Constant';\n\nexport class MaterialSubFamily extends AbstractProvider {\n endpoint = PROVIDER.MATERIAL_SUB_FAMILIES;\n management = MANAGEMENT.MATERIAL;\n model = new MaterialSubFamilyModel();\n name = PROVIDER.MATERIALS;\n}\n","import { AbstractProvider } from './abstract';\nimport { Organization as OrganizationModel } from '../model';\nimport { MANAGEMENT, PROVIDER } from '../../actions/BCM_Constant';\nimport { Token } from '../../helpers';\n\nexport class Organization extends AbstractProvider {\n management = MANAGEMENT.ORGANIZATION;\n model = new OrganizationModel();\n name = PROVIDER.ORGANIZATIONS;\n token = new Token().get() || '';\n}\n","import React, { createContext, Dispatch, useReducer } from 'react';\nimport decode from 'jwt-decode';\nimport { Token, Username } from '../helpers';\n\nexport const UPDATE_CLIENT = 'UPDATE_CLIENT';\nexport const LOGOUT = 'LOGOUT';\n\ninterface UserInterface {\n dispatch: Dispatch;\n isLogged: boolean;\n user: string | null;\n username: string | null;\n}\n\nconst defaultValue: UserInterface = {\n dispatch: () => {\n return;\n },\n isLogged: !!new Token().get(),\n user: new Token().get(),\n username: new Username().get(),\n};\n\nexport interface UserActionInterface {\n payload?: string;\n type: string;\n}\n\nfunction reducer(\n state: UserInterface,\n { payload, type }: UserActionInterface\n): UserInterface {\n switch (type) {\n case UPDATE_CLIENT: {\n const { username } = decode(payload || '') as UserInterface;\n new Username().set(username || '');\n return {\n ...state,\n isLogged: true,\n user: payload || '',\n username,\n };\n }\n case LOGOUT: {\n return {\n ...state,\n ...defaultValue,\n isLogged: false,\n };\n }\n default:\n return state;\n }\n}\n\nexport const UserContext = createContext(defaultValue);\n\nexport const UserProvider: React.FC = ({ children }) => {\n const [state, dispatch] = useReducer(reducer, defaultValue);\n\n return (\n \n {children}\n \n );\n};\n","import React, {\n createContext,\n Dispatch,\n useContext,\n useEffect,\n useReducer,\n} from 'react';\nimport { MaterialInstance } from '../interfaces/model';\nimport {\n CommonFilterInterface,\n CommonFilterSelectedInterface,\n MaterialFilterInterface,\n} from '../interfaces/Filter';\nimport { Organization } from '../interfaces/providers';\nimport { OptionInterface } from '../components/Filters';\nimport { UserContext } from './UserContext';\n\nexport const ADD_ITEM_CATALOG = 'ADD_ITEM_CATALOG';\nexport const SET_CATALOG = 'SET_CATALOG';\nexport const SET_FILTERS = 'SET_FILTERS';\nexport const SET_ITEM_FILTERS_SELECTED = 'SET_ITEM_FILTERS_SELECTED';\nexport const SET_OPEN_FILTERS = 'SET_OPEN_FILTERS';\nexport const SET_SELECTED_ITEM = 'SET_SELECTED_ITEM';\n\nexport const INIT_ANALYSIS_MATERIALS = 'INIT_ANALYSIS_MATERIALS';\nexport const SET_ANALYSIS_MATERIALS = 'SET_ANALYSIS_MATERIALS';\nexport const SET_ANALYSIS_SELECTED_MATERIALS =\n 'SET_ANALYSIS_SELECTED_MATERIALS';\n\nexport const INIT_MOVEMENT_MATERIALS = 'INIT_MOVEMENT_MATERIALS';\nexport const SET_MOVEMENT_MATERIALS = 'SET_MOVEMENT_MATERIALS';\nexport const SET_MOVEMENT_SELECTED_MATERIALS =\n 'SET_MOVEMENT_SELECTED_MATERIALS';\n\ninterface BaseStoreInterface {\n dispatch: Dispatch;\n catalog: MaterialInstance[];\n analysis: MaterialFilterInterface;\n movement: MaterialFilterInterface;\n filters: CommonFilterInterface;\n itemFiltersSelected: CommonFilterSelectedInterface;\n itemSelected?: MaterialInstance;\n openFilters: boolean;\n loading?: boolean;\n setSelectedMaterials: (selection: MaterialInstance[], page: string) => void;\n}\n\nconst defaultValue: BaseStoreInterface = {\n dispatch: () => {\n return;\n },\n loading: false,\n catalog: [],\n analysis: {\n materials: [],\n selectedMaterials: [],\n },\n movement: {\n materials: [],\n selectedMaterials: [],\n },\n filters: {\n contracts: [],\n organizations: [],\n plants: [],\n },\n itemFiltersSelected: {\n contract: [],\n organization: [],\n plant: [],\n },\n itemSelected: undefined,\n openFilters: false,\n setSelectedMaterials: (selection) => {\n return;\n },\n};\n\nexport interface ActionInterface {\n payload:\n | boolean\n | CommonFilterInterface\n | CommonFilterSelectedInterface\n | MaterialInstance\n | MaterialInstance[]\n | OptionInterface[]\n | string[]\n | { [key: string]: OptionInterface[] }\n | string\n | { loading: boolean; data: MaterialInstance[] };\n type: string;\n}\n\nfunction reducer(\n state: BaseStoreInterface,\n { payload, type }: ActionInterface\n): BaseStoreInterface {\n switch (type) {\n case ADD_ITEM_CATALOG: {\n const catalog = payload as MaterialInstance[];\n return {\n ...state,\n catalog: [...state.catalog, ...catalog],\n };\n }\n case SET_CATALOG: {\n const catalog = (payload as any).data as MaterialInstance[];\n return {\n ...state,\n catalog,\n loading: (payload as any).loading,\n };\n }\n case SET_FILTERS: {\n const filters = payload as CommonFilterInterface;\n return {\n ...state,\n filters: {\n ...state.filters,\n ...filters,\n },\n };\n }\n case SET_ITEM_FILTERS_SELECTED: {\n const filters = payload as CommonFilterSelectedInterface;\n if (filters.organization) {\n filters.plant = [];\n }\n return {\n ...state,\n itemFiltersSelected: {\n ...state.itemFiltersSelected,\n ...filters,\n },\n };\n }\n case SET_OPEN_FILTERS: {\n return {\n ...state,\n openFilters: !!payload,\n };\n }\n case SET_SELECTED_ITEM: {\n const itemSelected = payload as MaterialInstance;\n return {\n ...state,\n itemSelected,\n };\n }\n case INIT_ANALYSIS_MATERIALS: {\n return {\n ...state,\n analysis: {\n materials: payload as MaterialInstance[],\n selectedMaterials: (payload as MaterialInstance[]).map((i) => i.id),\n },\n };\n }\n case SET_ANALYSIS_MATERIALS: {\n return {\n ...state,\n analysis: {\n ...state.analysis,\n materials: payload as MaterialInstance[],\n },\n };\n }\n case SET_ANALYSIS_SELECTED_MATERIALS: {\n return {\n ...state,\n analysis: {\n ...state.analysis,\n selectedMaterials: payload as string[],\n },\n };\n }\n case INIT_MOVEMENT_MATERIALS: {\n return {\n ...state,\n movement: {\n materials: payload as MaterialInstance[],\n selectedMaterials: (payload as MaterialInstance[]).map((i) => i.id),\n },\n };\n }\n case SET_MOVEMENT_MATERIALS: {\n return {\n ...state,\n movement: {\n ...state.movement,\n materials: payload as MaterialInstance[],\n },\n };\n }\n case SET_MOVEMENT_SELECTED_MATERIALS: {\n return {\n ...state,\n movement: {\n ...state.movement,\n selectedMaterials: payload as string[],\n },\n };\n }\n default:\n return state;\n }\n}\n\nexport const BaseStoreContext = createContext(defaultValue);\n\nexport const objectToOptionInterface = (\n data: any[] /*eslint-disable-line*/,\n fields: string[] = [],\n separator = ''\n): OptionInterface[] =>\n data.map((item) => ({\n label: fields.length\n ? fields.map((field) => item[field.toString()]).join(separator)\n : item.name,\n value: item.id,\n }));\n\nexport const BaseStoreProvider: React.FC = ({ children }) => {\n const [{ filters, ...rest }, dispatch] = useReducer(reducer, defaultValue);\n const { isLogged } = useContext(UserContext);\n\n useEffect(() => {\n if (isLogged) {\n new Organization({ filters: { perPage: 1000 } })\n .getList()\n .then(({ data }) =>\n dispatch({\n payload: {\n organizations: objectToOptionInterface(\n data,\n ['level', 'name'],\n ' - '\n ),\n },\n type: SET_FILTERS,\n })\n );\n }\n return;\n }, [dispatch, isLogged]);\n\n const getSelector = (page) => {\n switch (page) {\n case 'analysis':\n return SET_ANALYSIS_SELECTED_MATERIALS;\n case 'movement':\n return SET_MOVEMENT_SELECTED_MATERIALS;\n default:\n return SET_ANALYSIS_SELECTED_MATERIALS;\n }\n };\n\n const setSelectedMaterials = (\n selection: MaterialInstance[],\n page: string\n ) => {\n dispatch({\n payload: selection,\n type: getSelector(page),\n });\n };\n\n return (\n \n {children}\n \n );\n};\n","import React, {\n createContext,\n Dispatch,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { BarDataInterface } from '../components/Chart';\nimport { Chart, FilterChart } from '../interfaces/providers';\nimport { Currency, getDate } from '../helpers';\nimport {\n ActionInterface,\n BaseStoreContext,\n INIT_ANALYSIS_MATERIALS,\n SET_ANALYSIS_MATERIALS,\n} from './BaseStoreContext';\nimport { ChartInstance, MaterialInstance } from '../interfaces/model';\nimport { OptionInterface } from '../components/Filters';\nimport { TypeSelectorContext } from '../components/TypeSelector';\nimport { formatLabelYearMonthUTC } from '../components/Chart/Analysis/Filters';\nimport { LanguageContext } from './LanguageContext';\nimport { GraphInterface, InternalChartProviderInterface } from '../interfaces/ChartInterface';\n\nexport type DataInterface = BarDataInterface | undefined;\n\ninterface ChartInterface {\n dispatch: Dispatch;\n materials: MaterialInstance[];\n selectedMaterials: string[];\n}\n\ninterface ChartContextInterface extends ChartInterface {\n data: any;\n total: number;\n}\n\nexport const defaultStore: ChartInterface = {\n dispatch: () => {\n return;\n },\n materials: [],\n selectedMaterials: [],\n};\n\nexport const defaultContext: ChartContextInterface = {\n ...defaultStore,\n data: undefined,\n total: 0,\n};\n\nexport const ChartContext =\n createContext(defaultContext);\n\nexport const ChartProvider: React.FC = ({\n children,\n startDate,\n endDate,\n options,\n}) => {\n const {\n itemFiltersSelected: { organization, plant, contract },\n analysis: { materials, selectedMaterials },\n dispatch,\n } = useContext(BaseStoreContext);\n const { translate } = useContext(LanguageContext);\n\n const endDeliveryDate = getDate(endDate);\n const startDeliveryDate = getDate(startDate);\n\n const [data, setData] = useState(defaultContext.data);\n const [total, setTotal] = useState(defaultContext.total);\n const { selected } = useContext(TypeSelectorContext);\n const finalSelectedMaterials: string[] = useMemo(\n () =>\n !materials.length || materials.length === selectedMaterials.length\n ? []\n : selectedMaterials.length\n ? selectedMaterials\n : [],\n [materials.length, selectedMaterials]\n );\n\n const filters = {\n currencyCode: new Currency().getDecoded()?.value,\n endDeliveryDate,\n idCompanies: plant,\n idMaterials: finalSelectedMaterials,\n idOrganizations: organization,\n isService: Array.isArray(contract)\n ? contract[0]\n : (contract as OptionInterface).value,\n role: selected,\n startDeliveryDate,\n };\n\n const compute = (filters: any, { reset = true }) => {\n new Chart({ filters }).getChart().then(({ data }) => {\n const year = new Date().getFullYear();\n const month = new Date().getMonth() + 1;\n\n const currentMonth: ChartInstance = {\n label: formatLabelYearMonthUTC(year, month),\n value: 0,\n };\n\n const labels: string[] = [];\n const datasets: any[] = [];\n let t = 0;\n data.forEach((graph) => {\n const graphOptions: GraphInterface = options[graph.type];\n if (!graphOptions) return;\n\n const d: number[] = [];\n graph.data\n .filter(\n (item) => JSON.stringify(item) !== JSON.stringify(currentMonth)\n )\n .forEach((item) => {\n let dateString = item.label.toLocaleDateString(navigator.language, {\n month: 'short',\n year: 'numeric',\n });\n dateString = dateString.replace(/^./, dateString[0].toUpperCase());\n if (!labels.includes(dateString)) {\n // Based on the fact that the api \"fill\" empty dates before returning data\n // So only first graph will add labels\n labels.push(dateString);\n }\n d.push(item.value);\n if (graphOptions.sum) t += item.value;\n });\n\n if (graphOptions.type === 'line') {\n datasets.push({\n label: translate(graphOptions.label),\n data: d,\n type: 'line',\n unit: graphOptions.unit,\n borderColor: graphOptions.color,\n backgroundColor: 'transparent',\n pointBorderColor: graphOptions.color,\n pointBackgroundColor: graphOptions.color,\n pointHoverBackgroundColor: graphOptions.color,\n pointHoverBorderColor: graphOptions.color,\n yAxisID: 'y-axis-1',\n order: 1,\n });\n } else {\n datasets.push({\n label: translate(graphOptions.label),\n backgroundColor: graphOptions.color,\n data: d,\n unit: graphOptions.unit,\n order: 2,\n });\n }\n });\n setTotal(t);\n setData({\n labels,\n datasets,\n });\n });\n };\n\n const getFilterMaterials = (filters: any, { reset = true }) => {\n new FilterChart({ filters }).getMaterials().then(({ materials: m }) => {\n dispatch({\n payload: m,\n type: reset ? INIT_ANALYSIS_MATERIALS : SET_ANALYSIS_MATERIALS,\n });\n });\n };\n\n useEffect(() => {\n setData(undefined);\n compute({ ...filters }, { reset: true });\n }, [\n options,\n filters.currencyCode,\n filters.endDeliveryDate,\n JSON.stringify(filters.idMaterials),\n JSON.stringify(filters.idCompanies),\n JSON.stringify(filters.idOrganizations),\n filters.isService,\n filters.role,\n filters.startDeliveryDate,\n ]);\n\n useEffect(() => {\n getFilterMaterials({ ...filters }, { reset: true });\n }, [\n filters.endDeliveryDate,\n JSON.stringify(filters.idCompanies),\n JSON.stringify(filters.idOrganizations),\n filters.isService,\n filters.role,\n filters.startDeliveryDate,\n ]);\n\n return (\n \n {children}\n \n );\n};\n","import React, { createContext, Dispatch, useReducer } from 'react';\n\nexport const SET_ERROR = 'SET_ERROR';\nexport const SET_LOADING = 'SET_LOADING';\nexport const SET_SUCCESS = 'SET_SUCCESS';\nexport const SET_VALUE = 'SET_VALUE';\n\ninterface FormInterface {\n dispatch: Dispatch;\n error: boolean;\n isLoading: boolean;\n success: boolean;\n values?: any; // eslint-disable-line\n}\n\nconst defaultValue: FormInterface = {\n dispatch: () => {\n return;\n },\n error: false,\n isLoading: false,\n success: false,\n values: {},\n};\n\ninterface PayloadInterface {\n name: string;\n value: string;\n}\n\nexport interface FormActionInterface {\n payload?: PayloadInterface | boolean | string;\n type: string;\n}\n\nfunction reducer(\n state: FormInterface,\n { payload, type }: FormActionInterface\n): FormInterface {\n const { values } = state;\n switch (type) {\n case SET_ERROR: {\n return {\n ...state,\n error: true,\n success: false,\n };\n }\n case SET_LOADING: {\n return {\n ...state,\n isLoading: !!payload,\n };\n }\n case SET_SUCCESS: {\n return {\n ...state,\n error: false,\n success: true,\n };\n }\n case SET_VALUE: {\n values[(payload as PayloadInterface).name] = (\n payload as PayloadInterface\n ).value;\n return {\n ...state,\n values,\n };\n }\n default:\n return state;\n }\n}\n\nexport const FormContext = createContext(defaultValue);\n\nexport const FormProvider: React.FC = ({ children }) => {\n const [state, dispatch] = useReducer(reducer, defaultValue);\n\n return (\n \n {children}\n \n );\n};\n","import React, { createContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport {\n ApplicationInsights,\n SeverityLevel,\n} from '@microsoft/applicationinsights-web';\nimport { ReactPlugin } from '@microsoft/applicationinsights-react-js';\n\ninterface AppInsightContextStateInterface {\n initialized: boolean;\n appInsights?: ApplicationInsights;\n}\n\nconst defaultState: AppInsightContextStateInterface = {\n initialized: false,\n appInsights: undefined,\n};\n\nexport const AppInsightsContext =\n createContext(defaultState);\n\nexport const AppInsightProvider: React.FC = ({ children }) => {\n const history = useHistory();\n const instrumentationKey = process.env.REACT_APP_APP_INSIGHTS || '';\n\n const [appInsights, setAppInsights] = useState<\n ApplicationInsights | undefined\n >(defaultState.appInsights);\n const [initialized, setInitialized] = useState(\n defaultState.initialized\n );\n useEffect(() => {\n let ai = appInsights;\n if (!initialized) {\n const reactPlugin = new ReactPlugin();\n ai = new ApplicationInsights({\n config: {\n instrumentationKey: instrumentationKey,\n maxBatchInterval: 0,\n disableFetchTracking: false,\n disableTelemetry: false,\n enableUnhandledPromiseRejectionTracking: true,\n /*eslint-disable-next-line*/\n extensions: [reactPlugin as any],\n extensionConfig: {\n [reactPlugin.identifier]: { history },\n },\n },\n });\n\n ai.loadAppInsights();\n setInitialized(true);\n }\n\n if (!ai) {\n setAppInsights(ai);\n } else {\n ai.trackException({\n exception: new Error('some error'),\n severityLevel: SeverityLevel.Error,\n });\n }\n }, [appInsights, history, initialized, instrumentationKey]);\n return (\n \n {children}\n \n );\n};\n","import React, { Component } from 'react';\n\nexport default function withTracker(WrappedComponent) {\n const HOC = class extends Component {\n render() {\n return ;\n }\n };\n HOC.displayName = 'hoc';\n\n return HOC;\n}\n","/* eslint-disable react/require-default-props */\n/* eslint-disable react/jsx-props-no-spreading */\n\nimport React, { useState } from 'react';\nimport { useHistory, Route, useLocation } from 'react-router-dom';\n\nimport { Token } from '../helpers';\nimport { EXCLUDED_ROUTES, ROLES, ROUTES } from '../actions/BCM_Constant';\n\ninterface CustomRouteProps {\n children?: React.ReactNode;\n path: string | string[];\n exact: boolean;\n condition: ROLES[];\n personnalizedCondition?: boolean;\n}\n\nfunction hasAccessTo(\n businessRoles: Array,\n currentRoles: Array\n) {\n return businessRoles.find((businessRole) =>\n currentRoles.find((currentRole) => currentRole === businessRole)\n );\n}\n\nfunction getEnumKeyByValue(myEnum: any, enumValue: any): any {\n const keys = Object.keys(myEnum).filter((x) => myEnum[x] === enumValue);\n return keys.length > 0 ? keys[0] : null;\n}\n\nfunction roleNamesToNumber(roleNames: Array): Array {\n return roleNames.map((roleName: string) =>\n parseInt(getEnumKeyByValue(ROLES, roleName), 10)\n );\n}\n\nconst CustomRoute = (props: CustomRouteProps) => {\n const history = useHistory();\n const location = useLocation();\n\n const roleNames = new Token().getDecoded().roles;\n\n const [returnedRoute, setReturnedRoute] = useState();\n\n const { condition, path } = props;\n\n React.useEffect(() => {\n if (\n roleNames?.length > 0 &&\n !hasAccessTo(condition, roleNamesToNumber(roleNames)) &&\n !EXCLUDED_ROUTES.includes(String(path)) &&\n path === location.pathname\n ) {\n history.push(ROUTES.Login);\n }\n\n setReturnedRoute();\n }, [path]);\n\n return returnedRoute;\n};\n\nexport default CustomRoute;\n","import { useContext, useEffect } from 'react';\nimport { UserContext } from '../contexts';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { Token } from '../helpers';\nimport { ROUTES } from '../actions/BCM_Constant';\n\nexport const useLogged = (): void => {\n const { push } = useHistory();\n const location = useLocation();\n const { isLogged } = useContext(UserContext);\n\n if (!isLogged) {\n push('/login');\n }\n\n const roles = new Token().getDecoded().roles;\n if (\n location.pathname === '/' &&\n !roles?.some((role) => ['ROLE_SUPPLIER', 'ROLE_CUSTOMER'].includes(role))\n ) {\n if (roles?.some((role) => role === 'ROLE_INTERNAL_OPERATOR')) {\n push(ROUTES.DemandsInternal);\n } else if (roles?.some((role) => role === 'ROLE_EXTERNAL_OPERATOR')) {\n push(ROUTES.DemandsExternal);\n }\n if (\n roles?.some((role) =>\n ['ROLE_MOVEMENT_SUPPLIER', 'ROLE_MOVEMENT_CUSTOMER'].includes(role)\n )\n ) {\n push(ROUTES.Movement);\n }\n }\n};\n","import { useContext, useEffect } from 'react';\nimport { UserContext } from '../contexts';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nexport const useNotLogged = (): void => {\n const { push } = useHistory();\n const { isLogged } = useContext(UserContext);\n if (isLogged) {\n push('/');\n }\n};\n","import React, { SyntheticEvent, useRef, useState } from 'react';\nimport { ClassNameInterface, DropdownInterface } from '../../interfaces';\nimport { useOutsideClick } from '../../hooks';\n\nexport const Dropdown: React.FC = ({\n alignRight,\n children,\n className,\n dropdownToggleClass,\n dropdownTogglerIcon,\n disabled,\n name,\n onClick,\n title,\n withoutChildren,\n}) => {\n const [open, setOpen] = useState(false);\n const ref = useRef(null);\n useOutsideClick(ref, () => setOpen(false));\n\n return (\n {\n event.preventDefault();\n !disabled && setOpen(!open);\n onClick && onClick();\n }}\n >\n \n {title}\n \n \n \n \n {!withoutChildren && (\n \n {children}\n
\n )}\n \n );\n};\n","import { MutableRefObject, useEffect } from 'react';\n\nexport const useOutsideClick = (\n ref: MutableRefObject,\n callback: () => void\n): void => {\n const handleClick = (e: MouseEvent): void => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n callback();\n }\n };\n\n useEffect((): (() => void) => {\n document.addEventListener('click', handleClick);\n return (): void => {\n document.removeEventListener('click', handleClick);\n };\n });\n};\n","import * as React from 'react';\nimport { ClassNameInterface, DropdownInterface } from '../../../../interfaces';\nimport { Dropdown } from '../../../Dropdown';\n\nexport const NavDropdown: React.FC = ({\n className,\n dropdownToggleClass,\n ...rest\n}) => (\n \n);\n","import * as React from 'react';\nimport { LinkInterface } from '../../interfaces';\nimport { Link } from 'react-router-dom';\n\nexport const DropdownItem: React.FC = ({ children, to }) => (\n \n {children}\n \n);\n","import React, { useContext } from 'react';\nimport {\n ClassNameInterface,\n DisabledInterface,\n LinkInterface,\n} from '../../../../interfaces';\nimport { Link, useHistory } from 'react-router-dom';\nimport './navitem.scss';\nimport { LanguageContext } from '../../../../contexts';\n\nexport const NavItem: React.FC<\n ClassNameInterface & DisabledInterface & LinkInterface\n> = ({ children, disabled, to, className }) => {\n const { translate } = useContext(LanguageContext);\n const { location } = useHistory();\n return (\n \n \n {children && translate(`appbar.routes.${children.toString()}`)}\n \n \n );\n};\n","import React, { useContext, useEffect } from 'react';\nimport { Dropdown, Navbar } from 'react-bootstrap';\nimport './filtersBar.scss';\nimport {\n ContractFilter,\n OptionInterface,\n OrganizationFilter,\n PlantFilter,\n ResetFilter,\n} from '../../Filters';\nimport {\n BaseStoreContext,\n objectToOptionInterface,\n SET_FILTERS,\n SET_ITEM_FILTERS_SELECTED,\n} from '../../../contexts';\nimport { Company } from '../../../interfaces/providers';\n\nexport const FiltersBar: React.FC = () => {\n const {\n dispatch,\n itemFiltersSelected: { contract, plant, organization },\n openFilters,\n } = useContext(BaseStoreContext);\n const resetFilters = (): void => {\n dispatch({\n payload: {\n organization: [],\n plant: [],\n contract: [],\n },\n type: SET_ITEM_FILTERS_SELECTED,\n });\n };\n\n useEffect(() => {\n new Company({\n filters: {\n perPage: 1000,\n idOrganizations: ((organization as OptionInterface[]) || []).map(\n (o) => o.value\n ),\n },\n })\n .getList()\n .then(({ data }) =>\n dispatch({\n payload: {\n plants: objectToOptionInterface(\n data.filter(\n (item) => item.companyType && item.companyType.code !== '01'\n )\n ),\n },\n type: SET_FILTERS,\n })\n );\n }, [dispatch, organization]);\n\n return (\n \n
\n \n
\n {\n dispatch({\n payload: {\n organization: value as OptionInterface[],\n },\n type: SET_ITEM_FILTERS_SELECTED,\n });\n },\n value: organization,\n }}\n />\n
\n
\n \n
\n
\n \n dispatch({\n payload: {\n plant: value as OptionInterface[],\n },\n type: SET_ITEM_FILTERS_SELECTED,\n }),\n value: plant,\n }}\n />\n
\n
\n \n
\n
\n \n dispatch({\n payload: {\n contract: value as OptionInterface[],\n },\n type: SET_ITEM_FILTERS_SELECTED,\n }),\n value: contract,\n }}\n />\n
\n
\n \n
\n \n
\n
\n \n );\n};\n","import React, { useContext, useMemo, useState, useEffect } from 'react';\nimport { NavDropdown } from './Items/NavDropdown';\nimport { DropdownItem } from '../../Dropdown/DropdownItem';\nimport { NavItem } from './Items/NavItem';\nimport { Navbar } from 'react-bootstrap';\nimport { LinkInterface } from '../../../interfaces';\nimport { Link } from 'react-router-dom';\nimport {\n BaseStoreContext,\n LanguageContext,\n SET_ITEM_FILTERS_SELECTED,\n SET_OPEN_FILTERS,\n UserContext,\n} from '../../../contexts';\nimport { SzIcon } from 'react-theme-components';\nimport { Dropdown } from 'react-bootstrap';\nimport { User } from '../../../actions';\nimport { Token } from '../../../helpers';\n\nconst AppBarDropdown: React.FC<{ withoutCaret?: boolean }> = ({\n withoutCaret = false,\n}) => {\n const { translate } = useContext(LanguageContext);\n const [count, setCount] = useState(0);\n const {\n itemFiltersSelected: { plant, organization },\n openFilters,\n } = useContext(BaseStoreContext);\n useMemo(() => {\n setCount((plant?.length || 0) + (organization?.length || 0));\n }, [plant, organization]);\n return (\n <>\n \n filter_list\n \n {translate('appbar.filters.label')} {count > 0 && `(${count})`}\n \n \n {!withoutCaret && (\n \n \n \n )}\n \n );\n};\nconst AvatarDropdown: React.FC = () => (\n <>\n \n \"User\n \n \n \n \n \n);\nlet routes: (LinkInterface & { children: string; roles?: string[] })[] = [];\n\nconst navitems: (LinkInterface & { children: string; roles?: string[] })[] = [\n {\n children: 'overview',\n to: '/',\n roles: ['ROLE_SUPPLIER', 'ROLE_CUSTOMER'],\n },\n {\n children: 'analysis',\n to: '/analysis',\n roles: ['ROLE_SUPPLIER', 'ROLE_CUSTOMER'],\n },\n {\n children: 'catalog',\n to: '/catalogs',\n roles: ['ROLE_SUPPLIER', 'ROLE_CUSTOMER'],\n },\n {\n children: 'demandsExternal',\n to: '/demandsExternal',\n roles: ['ROLE_EXTERNAL_OPERATOR'],\n },\n {\n children: 'demandsInternal',\n to: '/demandsInternal',\n roles: ['ROLE_INTERNAL_OPERATOR'],\n },\n {\n children: 'movement',\n to: '/movement',\n roles: ['ROLE_MOVEMENT_CUSTOMER', 'ROLE_MOVEMENT_SUPPLIER'],\n },\n {\n children: 'contact',\n to: '/contact',\n roles: [\n 'ROLE_SUPPLIER',\n 'ROLE_CUSTOMER',\n 'ROLE_MOVEMENT_CUSTOMER',\n 'ROLE_MOVEMENT_SUPPLIER',\n 'ROLE_EXTERNAL_OPERATOR',\n 'ROLE_INTERNAL_OPERATOR',\n ],\n },\n];\n\nexport const AppBar: React.FC = () => {\n const { translate } = useContext(LanguageContext);\n const [expanded, setExpanded] = useState(false);\n const { dispatch, isLogged } = useContext(UserContext);\n const baseStore = useContext(BaseStoreContext);\n const expand = 'xl';\n useEffect(() => {\n const roles = new Token().getDecoded().roles;\n const isExternalOperator = roles.some(\n (r) => 'ROLE_EXTERNAL_OPERATOR' === r\n );\n const isInternalOperator = roles.some(\n (r) => 'ROLE_INTERNAL_OPERATOR' === r\n );\n const isUserMovement = roles.some((r) =>\n ['ROLE_MOVEMENT_SUPPLIER', 'ROLE_MOVEMENT_CUSTOMER'].includes(r)\n );\n routes = navitems.filter((n) => n.roles?.some((r) => roles.includes(r)));\n if (isUserMovement && !navitems.some((n) => 'movement' === n.children)) {\n navitems.splice(2, 0, {\n children: 'movement',\n to: '/movement',\n });\n }\n if (\n isExternalOperator &&\n !navitems.some((n) => 'demandsExternal' === n.children)\n ) {\n navitems.push({\n children: 'demandsExternal',\n to: '/demandsExternal',\n });\n\n const index = navitems.findIndex((n) => 'demandsInternal' === n.children); // find index demandsInternal\n if (index !== -1) navitems.splice(index, 1); // remove element demandsInternal from navitems\n } else if (\n isInternalOperator &&\n !navitems.some((n) => 'demandsInternal' === n.children)\n ) {\n navitems.push({\n children: 'demandsInternal',\n to: '/demandsInternal',\n });\n\n const index = navitems.findIndex((n) => 'demandsExternal' === n.children); //find index demandsExternal\n if (index !== -1) navitems.splice(index, 1); //remove element demandsExternal from navitems\n }\n }, []);\n\n return (\n \n
\n
\n \n \"BCM\n \n
\n
\n {\n if (!baseStore.openFilters) {\n setExpanded(false);\n }\n baseStore.dispatch({\n type: SET_OPEN_FILTERS,\n payload: !baseStore.openFilters,\n });\n }}\n >\n \n \n
\n {\n if (!expanded) {\n baseStore.dispatch({\n type: SET_OPEN_FILTERS,\n payload: expanded,\n });\n }\n setExpanded(!expanded);\n }}\n >\n \n \n \n
    \n \n baseStore.dispatch({\n type: SET_OPEN_FILTERS,\n payload: !baseStore.openFilters,\n }),\n title: ,\n }}\n />\n {routes.map((navitem: LinkInterface, index: number) => (\n \n ))}\n {\n <>\n
    \n \n account\n {\n baseStore.dispatch({\n type: SET_ITEM_FILTERS_SELECTED,\n payload: {\n organization: [],\n plant: [],\n contract: [],\n },\n });\n baseStore.dispatch({\n type: SET_OPEN_FILTERS,\n payload: false,\n });\n User.logout({\n updateClient: dispatch,\n });\n }}\n >\n {translate('appbar.routes.logout')}\n \n
    \n : <>,\n withoutChildren: !isLogged,\n }}\n >\n {isLogged ? (\n <>\n \n \n {translate('appbar.routes.account')}\n \n \n \n User.logout({\n updateClient: dispatch,\n })\n }\n >\n {translate('appbar.routes.logout')}\n \n \n ) : null}\n \n \n }\n
\n
\n
\n \n );\n};\n\nexport * from './FiltersBar';\n","import React, { useEffect, useState } from 'react';\nimport { SzIcon } from 'react-theme-components';\nimport './returnToTop.scss';\n\nconst MAX_SCROLL = 120;\n\nexport const ReturnToTop: React.FC = () => {\n const [top, setTop] = useState(window.scrollY < MAX_SCROLL);\n\n const handleScroll = (): void => {\n setTop(window.scrollY < MAX_SCROLL);\n };\n useEffect(() => {\n window.addEventListener('scroll', handleScroll);\n\n return (): void => window.removeEventListener('scroll', handleScroll);\n }, []);\n return (\n window.scrollTo({ top: 0, behavior: 'smooth' })}\n >\n \n \n );\n};\n","import React, { useContext, useEffect } from 'react';\nimport { Nav } from 'react-bootstrap';\nimport { AppBar, FiltersBar } from './AppBar';\nimport { LanguageContext, UserContext } from '../../contexts';\nimport './index.scss';\n\ninterface LayoutBaseInterface {\n withFooter?: boolean;\n}\n\nexport const LayoutBase: React.FC = ({\n children,\n withFooter,\n}) => {\n const { translate } = useContext(LanguageContext);\n\n return (\n <>\n {children}\n {withFooter ? (\n
\n
\n \n
\n
\n ) : null}\n \n );\n};\n\ninterface LayoutInterface {\n noContainer?: boolean;\n withDisclaimer?: boolean;\n withFooter?: boolean;\n}\n\nexport const Layout: React.FC = ({\n children,\n noContainer,\n withDisclaimer,\n withFooter,\n}) => {\n useEffect(() => {\n typeof window !== 'undefined' &&\n [\n '/',\n '/analysis',\n '/catalogs',\n '/account',\n '/movement',\n '/contact',\n '/consent',\n '/demandsExternal',\n '/demandsInternal',\n ].includes(document.location.pathname);\n }, [window]);\n\n const { translate } = useContext(LanguageContext);\n const { isLogged } = useContext(UserContext);\n\n if (!isLogged) {\n return null;\n }\n\n return (\n \n
\n \n \n
\n {noContainer ? (\n children\n ) : (\n
\n
{children}
\n
\n )}\n {withDisclaimer ? (\n
\n
\n {translate('layout.disclaimer')}\n
\n
\n ) : null}\n
\n );\n};\n\nexport * from './ReturnToTop';\n","import React, { useContext } from 'react';\nimport { ButtonInterface, ClassNameInterface } from '../../interfaces';\nimport { SzButton, SzTypographie } from 'react-theme-components';\nimport { LanguageContext } from '../../contexts';\n\ninterface ComponentWithTitleInterface {\n button?: JSX.Element;\n customIcon?: string;\n icon?: string;\n logo?: string;\n title: string;\n withoutTranslation?: boolean;\n}\n\nexport const ComponentWithTitle: React.FC<\n ClassNameInterface & ComponentWithTitleInterface\n> = ({\n button,\n customIcon,\n className,\n children,\n icon,\n title,\n logo,\n withoutTranslation,\n}) => {\n const { translate } = useContext(LanguageContext);\n return (\n <>\n
\n \n {customIcon ? (\n \n ) : (\n {icon}\n )}\n {logo && (\n \n \n \n )}\n \n {!withoutTranslation ? translate(`${title}.title`) : title}\n \n
{button}
\n
\n
\n {children}\n \n );\n};\n","import React, { useContext } from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { LanguageContext } from '../../contexts';\n\ninterface LoaderInterface {\n text?: string;\n}\n\nexport const Loader: React.FC = ({ text }) => {\n const { translate } = useContext(LanguageContext);\n return (\n
\n
\n \n \n {translate(`${text}.loader`)}\n \n
\n
\n );\n};\n","import React, { useContext, useRef } from 'react';\nimport { Bar as ChartBar } from 'react-chartjs-2';\nimport './bar.scss';\nimport { renderToString } from 'react-dom/server';\nimport { ChartContext } from '../../../contexts';\n\nimport { Loader } from '../../Loader';\nimport { Language } from '../../../helpers';\n\ninterface BarDatasetInterface {\n label: string;\n backgroundColor: string;\n data: number[];\n type?: string;\n borderColor?: string;\n order?: number;\n pointBorderColor?: string;\n pointBackgroundColor?: string;\n pointHoverBackgroundColor?: string;\n pointHoverBorderColor?: string;\n unit?: string;\n}\n\nexport interface BarDataInterface {\n labels: string[];\n datasets: BarDatasetInterface[];\n}\n\nexport interface BarInterface {\n options?: Record;\n type: string;\n unit?: string;\n}\n\nexport interface TooltipInterface {\n body: { lines: string[] }[];\n caretX: number;\n caretY: number;\n dataPoints: { datasetIndex: number };\n labelColors: { backgroundColor: string }[];\n opacity: number;\n style: {\n opacity: number;\n };\n title: string[];\n yAlign: string;\n}\n\nconst CustomTooltip = (\n title: string,\n value: string,\n unit: string,\n color: string\n): string => {\n const formated = value\n .split(': ')[1]\n .replaceAll(' ', '')\n .replaceAll(' ', '')\n .replace(',', '.');\n const v = parseFloat(formated).toLocaleString(new Language().get());\n return renderToString(\n
\n {title}\n \n {`${v}${unit}`}\n \n
\n );\n};\n\nexport const Bar: React.FC = ({\n children,\n options = {},\n type,\n unit = '',\n}) => {\n const ref = useRef(null);\n const { data } = useContext(ChartContext);\n return (\n
\n
\n {children}\n {!data ? (\n \n ) : (\n
\n
\n {\n let tooltipEl: HTMLElement | null =\n document.getElementById('chartjs-tooltip');\n\n if (!tooltipEl) {\n tooltipEl = document.createElement('div');\n tooltipEl.id = 'chartjs-tooltip';\n tooltipEl.innerHTML = '
';\n document.body.appendChild(tooltipEl);\n }\n\n const tooltipModel = context.tooltip;\n if (tooltipModel.opacity === 0) {\n tooltipEl.innerHTML = `
`;\n tooltipEl.style.opacity = '0';\n return;\n } else {\n tooltipEl.innerHTML = CustomTooltip(\n tooltipModel.title[0],\n tooltipModel.body[0].lines[0],\n unit,\n tooltipModel?.labelColors[0]?.backgroundColor.toString() ||\n '#77B7FC'\n );\n }\n\n tooltipEl.classList.remove(\n 'above',\n 'below',\n 'no-transform'\n );\n if (tooltipModel.yAlign) {\n tooltipEl.classList.add(tooltipModel.yAlign);\n } else {\n tooltipEl.classList.add('no-transform');\n }\n\n const position =\n context.chart.canvas.getBoundingClientRect();\n\n tooltipEl.classList.add(\n 'tooltip',\n 'shadow',\n 'bg-white',\n 'p-0'\n );\n tooltipEl.style.position = 'absolute';\n tooltipEl.style.opacity = '1';\n tooltipEl.style.left = `${\n position.left +\n window.pageXOffset +\n tooltipModel.caretX\n }px`;\n tooltipEl.style.top = `${\n position.top +\n window.pageYOffset +\n tooltipModel.caretY\n }px`;\n },\n },\n },\n elements: {\n line: {\n tension: 0.5,\n },\n },\n responsive: true,\n maintainAspectRatio: false,\n scales: {\n x: {\n grid: {\n display: false,\n },\n position: 'top',\n },\n y: {\n grid: {\n display: true,\n },\n beginAtZero: true,\n },\n },\n ...options,\n },\n ref,\n }}\n />\n
\n
\n )}\n
\n
\n );\n};\n","import React, {\n Dispatch,\n SetStateAction,\n useContext,\n useState,\n useEffect,\n useMemo,\n} from 'react';\nimport './bar.scss';\nimport { SzCheckbox, SzModal } from 'react-theme-components';\nimport { LanguageContext, BaseStoreContext } from '../../../contexts';\nimport {\n MaterialFamilyFilter,\n MaterialSubFamilyFilter,\n OptionInterface,\n SearchFilter,\n} from '../../Filters';\n\ntype OptionWithArrayInterface = OptionInterface | OptionInterface[];\n\nexport const FilterMaterials: React.FC<{ page: string }> = ({ page }) => {\n const [show, setShow] = useState(false);\n const [search, setSearch] = useState('');\n\n const { setSelectedMaterials, analysis, movement } =\n useContext(BaseStoreContext);\n const [family, setFamily] = useState([]);\n const [subFamily, setSubFamily] = useState([]);\n const [selection, setSelection] = useState([]);\n\n const selectedMaterials: string[] = useMemo(() => {\n switch (page) {\n case 'analysis':\n return analysis.selectedMaterials;\n case 'movement':\n return movement.selectedMaterials;\n default:\n return analysis.selectedMaterials;\n }\n }, [analysis, movement]);\n const materials = useMemo(() => {\n switch (page) {\n case 'analysis':\n return analysis.materials;\n case 'movement':\n return movement.materials;\n default:\n return analysis.materials;\n }\n }, [analysis, movement]);\n\n useEffect(() => {\n setSelection(selectedMaterials);\n }, [JSON.stringify(selectedMaterials)]);\n\n const update = (\n payload: SetStateAction,\n updater: Dispatch>\n ): void =>\n updater(\n !Array.isArray(payload) && (payload as OptionInterface).value\n ? (payload as OptionInterface)\n : []\n );\n\n const isNoMaterials = () => {\n return (\n materials.filter((m) =>\n `${m.code} - ${m.name}`.toLowerCase().includes(search.toLowerCase())\n ).length === 0\n );\n };\n const updateSelection = (family, subFamily) => {\n const newMaterials = materials.filter(\n (m) =>\n `${m.code} - ${m.name}`.toLowerCase().includes(search.toLowerCase()) &&\n ((family as OptionInterface).value\n ? m.materialFamily?.id === (family as OptionInterface).value\n : true) &&\n ((subFamily as OptionInterface).value\n ? m.materialSubFamily?.id === (subFamily as OptionInterface).value\n : true)\n );\n\n setSelection(newMaterials.map((m) => m.id));\n };\n\n const updateFamily = (\n payload: SetStateAction\n ): void => {\n update(payload, setFamily);\n updateSelection(payload, subFamily);\n };\n const updateSubFamily = (\n payload: SetStateAction\n ): void => {\n update(payload, setSubFamily);\n updateSelection(family, payload);\n };\n\n const { translate } = useContext(LanguageContext);\n\n const subFamilies = materials\n .filter((m) => {\n const f = family as any;\n if (!f || f.length === 0) return true;\n if (f && m.materialFamily && m.materialFamily.id === f.value) {\n return true;\n }\n\n return false;\n })\n .map((m) => ({\n label: m.materialSubFamily?.name || '',\n value: m.materialSubFamily?.id || '',\n }))\n .filter((m) => m && m.label)\n .filter(\n (m, index, self) => index === self.findIndex((t) => t.value === m.value)\n )\n .sort((a, b) => a.label.localeCompare(b.label));\n\n useEffect(() => {\n if (!subFamilies.length || !(subFamily as any).value) return;\n if (subFamilies.find((e) => e.value === (subFamily as any).value)) return;\n setSubFamily([]);\n }, [subFamilies]);\n\n useEffect(() => {\n updateSelection(family, subFamily);\n }, [search]);\n\n return (\n <>\n {\n setShow(false);\n if (\n !selection.every((m) => selectedMaterials.find((s) => s === m)) ||\n selectedMaterials.length !== selection.length\n ) {\n setSelectedMaterials(selection as any, page);\n }\n }}\n size={'xl'}\n >\n
\n
\n ({\n label: m.materialFamily?.name || '',\n value: m.materialFamily?.id || '',\n }))\n .filter((m) => m && m.label)\n .filter(\n (m, index, self) =>\n index === self.findIndex((t) => t.value === m.value)\n )\n .sort((a, b) => a.label.localeCompare(b.label)),\n ]}\n onChange={(v): void => updateFamily(v as OptionInterface[])}\n value={family as OptionInterface}\n />\n updateSubFamily(v as OptionInterface[])}\n value={subFamily as OptionInterface}\n />\n \n
\n
\n 0}\n onChange={(e: React.ChangeEvent): void =>\n selection.length === 0\n ? updateSelection(family, subFamily)\n : setSelection([])\n }\n type=\"checkbox\"\n label={\n 'Tout ' + (selection.length !== 0 ? 'dé-' : '') + 'sélectionner'\n }\n />\n\n {materials\n .filter(\n (m) =>\n `${m.code} - ${m.name}`\n .toLowerCase()\n .includes(search.toLowerCase()) &&\n ((family as OptionInterface).value\n ? m.materialFamily?.id === (family as OptionInterface).value\n : true) &&\n ((subFamily as OptionInterface).value\n ? m.materialSubFamily?.id ===\n (subFamily as OptionInterface).value\n : true)\n )\n .map((material, key) => (\n ): void => {\n if (e.target.checked) {\n setSelection((selection) => [\n ...(new Set([...selection, material.id]) as any),\n ]);\n } else {\n setSelection((selection) =>\n selection.filter((m) => m !== material.id)\n );\n }\n }}\n type=\"checkbox\"\n label={material.code + ' - ' + material.name}\n />\n ))}\n
\n
\n \n
\n {materials.length ? (\n setShow(true)}\n >\n {translate(`pages.analysis.materialfilter.name`)} (\n {selection.length || 0})\n \n ) : null}\n
\n \n );\n};\n","import React, { useContext, useRef } from 'react';\nimport { Bar as ChartBar } from 'react-chartjs-2';\nimport './bar.scss';\nimport { renderToString } from 'react-dom/server';\nimport { Loader } from '../../Loader';\nimport { BarInterface } from './Bar';\nimport { MixedChartContext } from '../../../contexts/MixedChartContext';\nimport { BottomFilters } from '../Analysis/Filters';\nimport { Language } from '../../../helpers';\n\nconst Tooltip = (\n title: string,\n month: string,\n value: string,\n unit: string,\n color: string\n): string => {\n\n const formated = value\n .split(': ')[1]\n .replaceAll(' ', '')\n .replaceAll(' ', '')\n .replace(',', '.');\n const v = parseFloat(formated).toLocaleString(new Language().get());\n\n return renderToString(\n
\n {title}\n {month}\n \n {`${v}${unit}`}\n \n
\n );\n};\n\nexport const Mixed: React.FC = ({\n children,\n options = {},\n type = '',\n unit = '',\n}) => {\n const ref = useRef(null);\n const { data } = useContext(MixedChartContext);\n\n return (\n
\n
\n {children}\n {!data ? (\n \n ) : (\n
\n
\n {\n let tooltipEl: HTMLElement | null =\n document.getElementById('chartjs-tooltip');\n\n if (!tooltipEl) {\n tooltipEl = document.createElement('div');\n tooltipEl.id = 'chartjs-tooltip';\n tooltipEl.innerHTML = '
';\n document.body.appendChild(tooltipEl);\n }\n\n const tooltipModel = context.tooltip;\n if (tooltipModel.opacity === 0) {\n tooltipEl.innerHTML = `
`;\n tooltipEl.style.opacity = '0';\n return;\n } else {\n tooltipEl.innerHTML = Tooltip(\n data.datasets.filter(\n (d) =>\n d.borderColor ===\n tooltipModel.labelColors[0].backgroundColor\n )[0].label,\n tooltipModel.title[0],\n tooltipModel.body[0].lines[0],\n unit,\n tooltipModel?.labelColors[0]?.backgroundColor.toString() ||\n '#77B7FC'\n );\n }\n\n tooltipEl.classList.remove(\n 'above',\n 'below',\n 'no-transform'\n );\n if (tooltipModel.yAlign) {\n tooltipEl.classList.add(tooltipModel.yAlign);\n } else {\n tooltipEl.classList.add('no-transform');\n }\n\n const position =\n context.chart.canvas.getBoundingClientRect();\n\n tooltipEl.classList.add(\n 'tooltip',\n 'shadow',\n 'bg-white',\n 'p-0'\n );\n tooltipEl.style.position = 'absolute';\n tooltipEl.style.opacity = '1';\n tooltipEl.style.left = `${\n position.left +\n window.pageXOffset +\n tooltipModel.caretX\n }px`;\n tooltipEl.style.top = `${\n position.top +\n window.pageYOffset +\n tooltipModel.caretY\n }px`;\n },\n },\n },\n responsive: true,\n maintainAspectRatio: false,\n elements: {\n line: {\n tension: 0.5,\n },\n },\n scales: {\n x: {\n grid: {\n display: false,\n },\n position: 'top',\n },\n 'y-axis-1': {\n type: 'linear',\n display: true,\n beginAtZero: true,\n position: 'left',\n },\n },\n\n ...options,\n },\n ref,\n }}\n />\n
\n
\n )}\n
\n
\n \n
\n
\n );\n};\n","import React, { useContext } from 'react';\nimport { Bar } from '../Abstract';\nimport { ChartContext } from '../../../contexts';\nimport { formatTitleToK, TopFilters } from './Filters';\n\nexport const Co2: React.FC = () => {\n const { total } = useContext(ChartContext);\n\n return (\n \n formatTitleToK(value, 'teqCO2'),\n total,\n }}\n />\n \n );\n};\n","import React, { useContext } from 'react';\nimport { Mixed } from '../Abstract';\nimport { MixedChartContext } from '../../../contexts/MixedChartContext';\nimport { formatTitleToK, TopFilters } from './Filters';\nimport { OptionInterface } from '../../Filters';\n\nexport const IndexValue: React.FC = () => {\n const { selectedIndex, selectedMaterial, total } =\n useContext(MixedChartContext);\n\n return (\n \n formatTitleToK(value, ''),\n total,\n }}\n >\n
\n {(selectedIndex as OptionInterface)?.label ||\n (selectedMaterial as OptionInterface)?.label ||\n ''}\n
\n \n
\n );\n};\n","import React, { useContext } from 'react';\nimport { ClassNameInterface } from '../../../interfaces';\nimport './custombar.scss';\nimport { LanguageContext } from '../../../contexts';\nimport { sprintf } from '../../../helpers';\nimport { OverlayTrigger } from 'react-bootstrap';\n\ninterface CustomBarInterface {\n label?: string;\n placement?: 'left' | 'right' | 'top' | 'bottom';\n subtype?: string;\n title?: JSX.Element;\n tooltip?: JSX.Element;\n total?: number;\n trigger?: 'hover' | 'click';\n type?: string;\n value: number;\n}\n\nconst roundToUpperInt = (value: number): number => {\n const v = value.toFixed(0);\n return parseInt(`${parseInt(v[0]) + 1}${'0'.repeat(v.length - 1)}`);\n};\n\nconst Bar: React.FC = ({ subtype, total, type, value }) => (\n
\n
\n \n
\n
\n);\n\nexport const CustomBar: React.FC = ({\n className,\n label,\n placement = 'left',\n subtype,\n title,\n tooltip,\n total,\n trigger = 'hover',\n type = 'primary',\n value,\n}) => {\n if (!subtype) subtype = type + '-light';\n\n const { translate } = useContext(LanguageContext);\n const date = new Date();\n date.setDate(0);\n return (\n \n \n {sprintf(translate(`charts.${label}.label`), [''])}\n \n \n {title}\n \n {tooltip ? (\n \n \n \n ) : (\n \n )}\n \n );\n};\n","import React from 'react';\nimport { ClassNameInterface } from '../../interfaces';\n\nexport const Tile: React.FC = ({ children, className }) => (\n
{children}
\n);\n","import React, { useContext, useEffect, useState } from 'react';\nimport { CustomBar } from '../Abstract/CutsomBar';\nimport { Loader } from '../../Loader';\nimport { formatTitleToK, formatTitleToKg } from './Filters';\nimport { BaseStoreContext, LanguageContext } from '../../../contexts';\nimport { KPI as KPIProvider } from '../../../interfaces/providers';\nimport { Currency, getDate } from '../../../helpers';\nimport { OptionInterface } from '../../Filters';\nimport { Tooltip } from 'react-bootstrap';\nimport { Tile } from '../../Tile';\nimport './kpi.scss';\nimport { useWindowSize } from '../../../hooks';\nimport { TypeSelector, TypeSelectorContext } from '../../TypeSelector';\n\ninterface KPIStateInterface {\n [key: string]: number;\n}\n\nexport const KPI: React.FC = () => {\n const { itemFiltersSelected } = useContext(BaseStoreContext);\n const { selectedLanguage, translate } = useContext(LanguageContext);\n const date = new Date();\n date.setDate(0);\n const { width } = useWindowSize();\n const [values, setValues] = useState(null);\n const { selected } = useContext(TypeSelectorContext);\n const currency = new Currency().getDecoded().label;\n\n const contract = (\n itemFiltersSelected.contract.length\n ? itemFiltersSelected.contract[0]\n : itemFiltersSelected.contract\n ) as OptionInterface;\n const isServices = contract && contract.value === true;\n\n useEffect(() => {\n const filters: {\n endDeliveryDate?: string;\n startDeliveryDate?: string;\n } = {};\n const filterDate = new Date();\n filterDate.setDate(0);\n filters.endDeliveryDate = getDate(filterDate);\n filterDate.setDate(1);\n filters.startDeliveryDate = getDate(filterDate);\n new KPIProvider({\n filters: {\n idOrganizations: itemFiltersSelected.organization,\n currencyCode: new Currency().getDecoded()?.value,\n idCompanies: itemFiltersSelected.plant,\n isService: isServices,\n role: selected,\n ...filters,\n },\n })\n .get()\n .then(setValues);\n }, [itemFiltersSelected, selected]);\n\n if (!values) {\n return ;\n }\n\n return (\n
\n \n \n {formatTitleToK(values.revenueTotal, currency)}\n
\n }\n tooltip={\n \n
\n
\n {`${translate(\n 'charts.kpi.services'\n )}`}\n \n {formatTitleToK(\n values.revenueTotal - values.revenue,\n currency\n )}\n \n
\n
\n {`${translate(\n 'charts.kpi.valorisations'\n )}`}\n \n {formatTitleToK(values.revenue, currency)}\n \n
\n
\n
\n }\n total={values.revenueTotal}\n type=\"secondary-light\"\n subtype=\"secondary\"\n label=\"kpi.revenue\"\n />\n {!isServices && (\n {formatTitleToKg(values.volume)}\n }\n label=\"kpi.volume\"\n subtype=\"blue-clear-light\"\n />\n )}\n \n
\n \n {translate('charts.kpi.services')}\n \n \n {translate('charts.kpi.valorisations')}\n \n
\n
\n \n {date.toLocaleDateString(selectedLanguage.value?.toString(), {\n month: 'long',\n year: 'numeric',\n })}\n \n
\n
\n \n );\n};\n","import { useEffect, useState } from 'react';\n\ninterface UseWindowSizeInterface {\n width: number;\n height: number;\n}\n\nexport const useWindowSize = (): UseWindowSizeInterface => {\n const [windowSize, setWindowSize] = useState({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n\n useEffect(() => {\n const handleResize = (): void => {\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n };\n\n window.addEventListener('resize', handleResize);\n return (): void => window.removeEventListener('resize', handleResize);\n }, []); // Empty array ensures that effect is only run on mount and unmount\n\n return windowSize;\n};\n","import React, { useContext, useRef } from 'react';\nimport { Bar as ChartBar } from 'react-chartjs-2';\nimport './bar.scss';\nimport { renderToString } from 'react-dom/server';\nimport { ChartContext } from '../../../contexts';\nimport { Loader } from '../../Loader';\nimport { BarInterface } from './Bar';\nimport { Language } from '../../../helpers';\n\nconst Tooltip = (\n graph: string,\n title: string,\n value: string,\n unit: string,\n color: string\n): string => {\n const formated = value\n .split(': ')[1]\n .replaceAll(' ', '')\n .replaceAll(' ', '')\n .replace(',', '.');\n const v = parseFloat(formated).toLocaleString(new Language().get());\n return renderToString(\n
\n {graph}\n {title}\n \n {`${v}${unit}`}\n \n
\n );\n};\n\nexport const Bars: React.FC = ({\n children,\n options = {},\n type,\n}) => {\n const ref = useRef(null);\n const { data } = useContext(ChartContext);\n\n return (\n
\n
\n {children}\n {!data ? (\n \n ) : (\n
\n
\n 1,\n position: 'bottom',\n align: 'start',\n },\n tooltip: {\n enabled: false,\n external: (context): void => {\n let tooltipEl: HTMLElement | null =\n document.getElementById('chartjs-tooltip');\n\n if (!tooltipEl) {\n tooltipEl = document.createElement('div');\n tooltipEl.id = 'chartjs-tooltip';\n tooltipEl.innerHTML = '
';\n document.body.appendChild(tooltipEl);\n }\n const tooltipModel = context.tooltip;\n if (tooltipModel.opacity === 0) {\n tooltipEl.innerHTML = `
`;\n tooltipEl.style.opacity = '0';\n return;\n } else {\n const dataset =\n data.datasets[\n tooltipModel.dataPoints[0].datasetIndex\n ];\n tooltipEl.innerHTML = Tooltip(\n dataset.label,\n tooltipModel.title[0],\n tooltipModel.body[0].lines[0],\n dataset.unit ?? '',\n tooltipModel?.labelColors[0]?.backgroundColor.toString() ||\n '#77B7FC'\n );\n }\n\n tooltipEl.classList.remove(\n 'above',\n 'below',\n 'no-transform'\n );\n if (tooltipModel.yAlign) {\n tooltipEl.classList.add(tooltipModel.yAlign);\n } else {\n tooltipEl.classList.add('no-transform');\n }\n\n const position =\n context.chart.canvas.getBoundingClientRect();\n\n tooltipEl.classList.add(\n 'tooltip',\n 'shadow',\n 'bg-white',\n 'p-0'\n );\n tooltipEl.style.position = 'absolute';\n tooltipEl.style.opacity = '1';\n tooltipEl.style.left = `${\n position.left +\n window.pageXOffset +\n tooltipModel.caretX\n }px`;\n tooltipEl.style.top = `${\n position.top +\n window.pageYOffset +\n tooltipModel.caretY\n }px`;\n },\n },\n },\n responsive: true,\n maintainAspectRatio: false,\n scales: {\n x: {\n display: true,\n grid: {\n display: false,\n },\n position: 'top',\n },\n y: {\n beginAtZero: true,\n position: 'left',\n },\n 'y-axis-1': {\n type: 'linear',\n display: true,\n grid: {\n display: false,\n },\n beginAtZero: false,\n position: 'right',\n },\n },\n ...options,\n },\n ref,\n }}\n />\n
\n
\n )}\n
\n
\n );\n};\n","import React, { useContext } from 'react';\nimport './datepicker.scss';\nimport { formatTitleToK, TopFilters } from './Filters';\nimport { Currency } from '../../../helpers';\nimport { ChartContext } from '../../../contexts';\nimport { Bars } from '../Abstract/Bars';\n\nexport const Revenue: React.FC = () => {\n const currency = new Currency().getDecoded()?.label || '€';\n const { total } = useContext(ChartContext);\n return (\n \n formatTitleToK(value, currency),\n total,\n }}\n />\n \n );\n};\n","import React, { useContext } from 'react';\nimport { Bars } from '../Abstract/Bars';\nimport { ChartContext } from '../../../contexts';\nimport { formatTitleToKg, TopFilters } from './Filters';\n\nexport const Volume: React.FC = () => {\n const { total } = useContext(ChartContext);\n\n return (\n \n formatTitleToKg(value),\n total,\n }}\n />\n \n );\n};\n","import React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { Co2Chart } from '../interfaces/providers';\nimport { Currency, getDate } from '../helpers';\nimport {\n BaseStoreContext,\n} from './BaseStoreContext';\nimport { ChartContext, DataInterface, defaultContext } from './ChartContext';\nimport { LanguageContext } from './LanguageContext';\nimport { Co2ChartInstance } from '../interfaces/model';\nimport { OptionInterface } from '../components/Filters';\nimport { TypeSelectorContext } from '../components/TypeSelector';\nimport { formatLabelYearMonthUTC } from '../components/Chart/Analysis/Filters';\n\ninterface ChartProviderInterface {\n color?: string;\n label: string;\n startDate: Date;\n endDate: Date;\n}\n\nexport const Co2ChartProvider: React.FC = ({\n children,\n color = '#aadc14',\n label,\n startDate,\n endDate,\n}) => {\n const { translate } = useContext(LanguageContext);\n const {\n itemFiltersSelected: { organization, plant, contract },\n analysis: { materials, selectedMaterials },\n dispatch,\n } = useContext(BaseStoreContext);\n const endDeliveryDate = getDate(endDate);\n const startDeliveryDate = getDate(startDate);\n\n const [data, setData] = useState(defaultContext.data);\n const [total, setTotal] = useState(defaultContext.total);\n const { selected } = useContext(TypeSelectorContext);\n const finalSelectedMaterials = useMemo(\n () =>\n !materials.length || materials.length === selectedMaterials.length\n ? []\n : selectedMaterials.length\n ? selectedMaterials\n : [],\n [materials.length, selectedMaterials]\n );\n\n const filters = {\n currencyCode: new Currency().getDecoded()?.value,\n endDeliveryDate,\n idCompanies: plant,\n idMaterials: finalSelectedMaterials,\n idOrganizations: organization,\n isService: Array.isArray(contract)\n ? contract[0]\n : (contract as OptionInterface).value,\n role: selected,\n startDeliveryDate,\n };\n\n const compute = (filters: any, { reset = true }) => {\n new Co2Chart({ filters }).getChart().then(({ data }) => {\n const year = new Date().getFullYear();\n const month = new Date().getMonth() + 1;\n\n const currentMonth: Co2ChartInstance = {\n label: formatLabelYearMonthUTC(year, month),\n value: 0,\n };\n\n const labels: string[] = [];\n const d: number[] = [];\n let t = 0;\n data\n .filter((item) => JSON.stringify(item) !== JSON.stringify(currentMonth))\n .forEach((item) => {\n const dateString = item.label.toLocaleDateString(navigator.language, {\n month: 'short',\n year: 'numeric',\n });\n labels.push(dateString.replace(/^./, dateString[0].toUpperCase()));\n d.push(item.value);\n t += item.value;\n });\n setTotal(t);\n setData({\n labels,\n datasets: [\n {\n label: translate(label),\n data: d,\n type: 'line',\n borderColor: color,\n backgroundColor: 'transparent',\n pointBorderColor: color,\n pointBackgroundColor: color,\n pointHoverBackgroundColor: color,\n pointHoverBorderColor: color,\n },\n ],\n });\n });\n };\n\n useEffect(() => {\n setData(undefined);\n compute({ ...filters }, { reset: true });\n }, [\n color,\n label,\n filters.currencyCode,\n filters.endDeliveryDate,\n JSON.stringify(filters.idMaterials),\n JSON.stringify(filters.idCompanies),\n JSON.stringify(filters.idOrganizations),\n filters.isService,\n filters.role,\n filters.startDeliveryDate,\n ]);\n\n return (\n \n {children}\n \n );\n};\n","import React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { VolumeChart } from '../interfaces/providers';\nimport { Currency, getDate } from '../helpers';\nimport {\n BaseStoreContext,\n} from './BaseStoreContext';\nimport { ChartContext, DataInterface, defaultContext } from './ChartContext';\nimport { LanguageContext } from './LanguageContext';\nimport { OptionInterface } from '../components/Filters';\nimport { TypeSelectorContext } from '../components/TypeSelector';\nimport { Co2ChartInstance } from '../interfaces';\nimport { formatLabelYearMonthUTC } from '../components/Chart/Analysis/Filters';\n\nexport interface ChartProviderInterface {\n options: { [key: string]: GraphInterface };\n}\ninterface InternalChartProviderInterface extends ChartProviderInterface {\n startDate: Date;\n endDate: Date;\n}\ninterface GraphInterface {\n color: string;\n label: string;\n sum?: boolean;\n type?: string;\n unit?: string;\n}\n\nexport const VolumeChartProvider: React.FC = ({\n children,\n options,\n startDate,\n endDate,\n}) => {\n const { translate } = useContext(LanguageContext);\n const {\n itemFiltersSelected: { organization, plant, contract },\n analysis: { materials, selectedMaterials },\n dispatch,\n } = useContext(BaseStoreContext);\n const endDeliveryDate = getDate(endDate);\n const startDeliveryDate = getDate(startDate);\n\n const [data, setData] = useState(defaultContext.data);\n const [total, setTotal] = useState(defaultContext.total);\n const { selected } = useContext(TypeSelectorContext);\n const finalSelectedMaterials = useMemo(\n () =>\n !materials.length || materials.length === selectedMaterials.length\n ? []\n : selectedMaterials.length\n ? selectedMaterials\n : [],\n [materials.length, selectedMaterials]\n );\n\n const filters = {\n currencyCode: new Currency().getDecoded()?.value,\n endDeliveryDate,\n idCompanies: plant,\n idMaterials: finalSelectedMaterials,\n idOrganizations: organization,\n isService: Array.isArray(contract)\n ? contract[0]\n : (contract as OptionInterface).value,\n role: selected,\n startDeliveryDate,\n };\n\n const compute = (filters: any, { reset = true }) => {\n new VolumeChart({ filters }).getChart().then(({ data }) => {\n const year = new Date().getFullYear();\n const month = new Date().getMonth() + 1;\n const currentMonth: Co2ChartInstance = {\n label: formatLabelYearMonthUTC(year, month),\n value: 0,\n };\n const labels: string[] = [];\n const datasets: any[] = [];\n let t = 0;\n data.forEach((graph) => {\n const graphOptions: GraphInterface = options[graph.type];\n if (!graphOptions) return;\n\n const d: number[] = [];\n graph.data\n .filter(\n (item) => JSON.stringify(item) !== JSON.stringify(currentMonth)\n )\n .forEach((item) => {\n let dateString = item.label.toLocaleDateString(navigator.language, {\n month: 'short',\n year: 'numeric',\n });\n dateString = dateString.replace(/^./, dateString[0].toUpperCase());\n if (!labels.includes(dateString)) {\n // Based on the fact that the api \"fill\" empty dates before returning data\n // So only first graph will add labels\n labels.push(dateString);\n }\n d.push(item.value);\n if (graphOptions.sum) t += item.value;\n });\n\n if (graphOptions.type === 'line') {\n datasets.push({\n label: translate(graphOptions.label),\n data: d,\n type: 'line',\n unit: graphOptions.unit,\n borderColor: graphOptions.color,\n backgroundColor: 'transparent',\n pointBorderColor: graphOptions.color,\n pointBackgroundColor: graphOptions.color,\n pointHoverBackgroundColor: graphOptions.color,\n pointHoverBorderColor: graphOptions.color,\n yAxisID: 'y-axis-1',\n order: 1,\n });\n } else {\n datasets.push({\n label: translate(graphOptions.label),\n backgroundColor: graphOptions.color,\n data: d,\n unit: graphOptions.unit,\n order: 2,\n });\n }\n });\n\n //datasets.reverse(); // Pour que la courbe soit devant les barres...\n\n setTotal(t);\n setData({\n labels,\n datasets,\n });\n });\n };\n\n useEffect(() => {\n setData(undefined);\n compute({ ...filters }, { reset: true });\n }, [\n options,\n filters.currencyCode,\n filters.endDeliveryDate,\n JSON.stringify(filters.idMaterials),\n JSON.stringify(filters.idCompanies),\n JSON.stringify(filters.idOrganizations),\n filters.isService,\n filters.role,\n filters.startDeliveryDate,\n ]);\n\n return (\n \n {children}\n \n );\n};\n","import { Token } from '../../../helpers';\n\ntype InvoiceTypeNameType = 'AP' | 'AR';\n\nexport interface ExportAllDataInterface {\n detailsData: ExportDataInterface[];\n monthlyData: ExportDataInterface[];\n}\n\nexport interface ExportDataInterface {\n countryCode: string;\n companyLocalName: string;\n startDatePeriod: string;\n endDatePeriod: string;\n invoiceTypeName: InvoiceTypeNameType;\n materialCode: string;\n materialName: string;\n materialUnitName: string;\n isService: boolean;\n quantity?: number | null;\n volumeTeqCO2?: number | null;\n priceExcludingTax?: number | null;\n pricePerQuantity?: number | null;\n quantityPrevYear?: number | null;\n volumeTeqCO2PrevYear?: number | null;\n priceExcludingTaxPrevYear?: number | null;\n quantityEvolution?: number | null;\n volumeTeqCO2Evolution?: number | null;\n priceExcludingTaxEvolution?: number | null;\n}\n\nexport interface ExportSerializationResultInterface {\n headers: ExportHeadersInterface;\n data: ExportSerializedDataInterface[];\n detailsData: ExportSerializedDataInterface[];\n}\n\ninterface ExportHeadersInterface {\n countryCode: string;\n companyLocalName: string;\n startDatePeriod: string;\n endDatePeriod: string;\n invoiceTypeName: string;\n materialCode: string;\n materialName: string;\n materialUnitName: string;\n isService: string;\n quantity: string;\n volumeTeqCO2: string;\n priceExcludingTax: string;\n pricePerQuantity: string;\n quantityPrevYear: string;\n volumeTeqCO2PrevYear: string;\n priceExcludingTaxPrevYear: string;\n quantityEvolution: string;\n volumeTeqCO2Evolution: string;\n priceExcludingTaxEvolution: string;\n}\n\ninterface ExportSerializedDataInterface {\n countryCode: string;\n companyLocalName: string;\n startDatePeriod: string;\n endDatePeriod: string | null;\n invoiceTypeName: string;\n materialCode: string;\n materialName: string;\n materialUnitName: string;\n isService: string;\n quantity?: number | null;\n volumeTeqCO2?: number | null;\n priceExcludingTax?: number | null;\n pricePerQuantity?: number | null;\n quantityPrevYear?: number | null;\n volumeTeqCO2PrevYear?: number | null;\n priceExcludingTaxPrevYear?: number | null;\n quantityEvolution?: number | null;\n volumeTeqCO2Evolution?: number | null;\n priceExcludingTaxEvolution?: number | null;\n}\n\nexport interface ExportSerializerConstructorInterface {\n translate: (v: string) => string;\n}\n\nexport class AllSerializer {\n translate: (v: string) => string;\n\n constructor({ translate }: ExportSerializerConstructorInterface) {\n this.translate = (v: string): string => translate(`export.${v}`);\n }\n\n public serialize(\n data: ExportAllDataInterface\n ): ExportSerializationResultInterface {\n const monthlyData: ExportDataInterface[] = data.monthlyData;\n const detailsData: ExportDataInterface[] = data.detailsData;\n const monthlyColumns = Object.keys(data.monthlyData[0]) as string[];\n const detailsColumns = Object.keys(data.detailsData[0]) as string[];\n detailsColumns[2] = 'executionDate';\n const columns = [...monthlyColumns, ...detailsColumns].filter(\n (v, i, a) => a.indexOf(v) === i\n );\n\n const headers = columns.reduce((acc, column) => {\n acc[column] = this.translate('labels.' + column);\n return acc;\n }, {}) as ExportHeadersInterface;\n\n const serializedDetailsData: ExportSerializedDataInterface[] = [];\n const serializedMonthlyData: ExportSerializedDataInterface[] = [];\n\n for (let i = 0; i < monthlyData.length; i++) {\n serializedMonthlyData.push(\n columns.reduce((acc, column) => {\n const value = monthlyData[i][column];\n acc[column] = this.mapColumnValue(column, value);\n return acc;\n }, {}) as ExportSerializedDataInterface\n );\n }\n for (let i = 0; i < detailsData.length; i++) {\n serializedDetailsData.push(\n columns.reduce((acc, column) => {\n const value = detailsData[i][column];\n acc[column] = this.mapColumnValue(column, value);\n return acc;\n }, {}) as ExportSerializedDataInterface\n );\n }\n return {\n headers,\n detailsData: serializedDetailsData,\n data: serializedMonthlyData,\n };\n }\n\n private mapColumnValue(column: string, value: any): any {\n switch (column) {\n case 'startDatePeriod': {\n return new Date(value);\n }\n case 'endDatePeriod': {\n const d = new Date(value);\n d.setHours(d.getHours() - 2);\n return d;\n }\n case 'countryCode':\n return this.translate('countries.' + value);\n\n case 'invoiceTypeName':\n return this.translate('labels.' + value);\n\n case 'materialName':\n return value === 'export.labels.others'\n ? this.translate('labels.others')\n : value;\n\n case 'isService': {\n const name = value ? 'services' : 'valuations';\n return this.translate('contracts.' + name);\n }\n\n case 'priceExcludingTax':\n case 'priceExcludingTaxPrevYear':\n case 'quantity':\n case 'quantityPrevYear':\n case 'volumeTeqCO2':\n case 'volumeTeqCO2PrevYear':\n case 'pricePerQuantity':\n return Math.round((value + Number.EPSILON) * 100) / 100;\n case 'quantityEvolution':\n case 'volumeTeqCO2Evolution':\n case 'priceExcludingTaxEvolution':\n return value !== null ? value / 100 : '';\n\n default:\n return value as string;\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-var-requires */\nimport React, { useContext, useMemo, useState } from 'react';\nimport { SzButton, SzIcon } from 'react-theme-components';\nimport { BaseStoreContext, LanguageContext } from '../../contexts';\nimport {\n AllSerializer,\n ExportSerializationResultInterface,\n} from './Export/AllSerializer';\nimport { Currency, getDate } from '../../helpers';\nimport { OptionInterface } from '../Filters';\nimport { ExportChart as ExportChartProvider } from '../../interfaces/providers';\n\nconst XlsxTemplate = require('xlsx-template');\n\ninterface ExportOptionsInterface {\n endDate: Date;\n startDate: Date;\n}\n\ninterface PlaceholderInterface {\n placeholder: string;\n type: string;\n name: string;\n key: string;\n subType: string;\n full: boolean;\n}\n\n// https://github.com/optilude/xlsx-template/blob/752568a81d7a635ba7f9a8a7347f5e8a2c7889b3/lib/index.js#L811\n// Regex customized to skip character \" in first group\n//\n// Return a list of tokens that may exist in the string.\n// Keys are: `placeholder` (the full placeholder, including the `${}`\n// delineators), `name` (the name part of the token), `key` (the object key\n// for `table` tokens), `full` (boolean indicating whether this placeholder\n// is the entirety of the string) and `type` (one of `table` or `cell`)\nfunction extractPlaceholders(string): PlaceholderInterface[] {\n // Yes, that's right. It's a bunch of brackets and question marks and stuff.\n const re = /\\${(?:([^\"]+?):)?(.+?)(?:\\.(.+?))?(?::(.+?))??}/g;\n\n const matches: PlaceholderInterface[] = [];\n let match: RegExpExecArray | null = null;\n while ((match = re.exec(string)) !== null) {\n matches.push({\n placeholder: match[0],\n type: match[1] || 'normal',\n name: match[2],\n key: match[3],\n subType: match[4],\n full: match[0].length === string.length,\n });\n }\n\n return matches;\n}\n\nexport const ExportAllChart: React.FC = ({\n startDate,\n endDate,\n}) => {\n const {\n itemFiltersSelected: { organization, plant, contract },\n } = useContext(BaseStoreContext);\n const { translate } = useContext(LanguageContext);\n const [isLoading, setIsLoading] = useState(false);\n const endDeliveryDate = getDate(endDate);\n const startDeliveryDate = getDate(startDate);\n const memoizedFilters = useMemo(\n () => ({\n currencyCode: new Currency().getDecoded()?.value,\n endDeliveryDate,\n idCompanies: plant,\n idOrganizations: organization,\n isService: Array.isArray(contract)\n ? contract[0]\n : (contract as OptionInterface).value,\n startDeliveryDate,\n }),\n [contract, endDeliveryDate, organization, plant, startDeliveryDate]\n );\n\n const serializer = new AllSerializer({ translate });\n const today = new Date();\n\n const handleClick = () => {\n setIsLoading(true);\n window.dataLayer.push({\n event: 'sz_conversion',\n sz_conversion_type: `Export Analyse et Rapports`,\n });\n\n new ExportChartProvider({ filters: memoizedFilters })\n .getChart()\n .then((data) => {\n return serializer.serialize(data);\n })\n .then(\n (\n result: ExportSerializationResultInterface\n ): Promise<{\n result: ExportSerializationResultInterface;\n buffer: ArrayBuffer;\n }> => {\n // fetch right template : customer has saved Co2 column\n return fetch(\n '/templates/export_global_analyses.xlsx'\n )\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n return {\n result,\n buffer,\n };\n });\n }\n )\n .then(({ result, buffer }): void => {\n const template = new XlsxTemplate(buffer);\n let templateData = {\n data: result.data,\n detailsData: result.detailsData,\n };\n // template-xlsx don't support table headers of type headers.column... So map to headers_column\n templateData = (Object.keys(result.headers) as string[]).reduce(\n (acc, key) => {\n acc['headers_' + key] = result.headers[key];\n return acc;\n },\n templateData\n );\n template.substitute('Export', templateData);\n template.substitute('Export détaillé', templateData);\n\n // Update files for pivot table\n for (const file of [\n 'xl/pivotCache/pivotCacheDefinition1.xml',\n 'xl/pivotCache/pivotCacheRecords1.xml',\n 'xl/pivotTables/pivotTable1.xml',\n ]) {\n let content = template.archive.file(file).asText();\n // D'ont use builtin extractPlaceholders because of bad regex with character \" (xml files)\n extractPlaceholders(content).forEach((placeholder) => {\n const substitution = templateData[placeholder.name];\n content = content.replace(\n placeholder.placeholder,\n template.stringify(substitution)\n );\n });\n template.archive.file(file, content);\n }\n\n const xlsx = template.generate({ type: 'arraybuffer' });\n\n // Download generated xlsx file\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(new Blob([xlsx]));\n const filename = `all-${today\n .toLocaleDateString()\n .replace('/', '_')}-${today.toLocaleTimeString()}.xlsx`;\n link.setAttribute('download', filename);\n document.body.appendChild(link);\n link.click();\n setIsLoading(false);\n })\n .catch((err) => {\n setIsLoading(false);\n console.error('Error building xls file', err);\n });\n };\n\n return (\n
\n \n \n \n {translate('charts.export-all')}\n \n \n
\n );\n};\n","export interface ExportMovementDataInterface {\n detailsData: ExportDataInterface[];\n monthlyData: ExportDataInterface[];\n}\n\nexport interface ExportDataInterface {\n countryCode: string;\n companyLocalName: string;\n startDatePeriod: string;\n endDatePeriod: string;\n materialCode: string;\n materialName: string;\n materialUnitName: string;\n quantity?: number | null;\n volumeTeqCO2?: number | null;\n quantityPrevYear?: number | null;\n volumeTeqCO2PrevYear?: number | null;\n quantityEvolution?: number | null;\n volumeTeqCO2Evolution?: number | null;\n weightNoteRef?: string | null;\n}\n\nexport interface ExportSerializationResultInterface {\n headers: ExportHeadersInterface;\n data: ExportSerializedDataInterface[];\n detailsData: ExportSerializedDataInterface[];\n}\n\ninterface ExportHeadersInterface {\n countryCode: string;\n companyLocalName: string;\n startDatePeriod: string;\n endDatePeriod: string;\n materialCode: string;\n materialName: string;\n materialUnitName: string;\n quantity: string;\n volumeTeqCO2: string;\n quantityPrevYear: string;\n volumeTeqCO2PrevYear: string;\n quantityEvolution: string;\n volumeTeqCO2Evolution: string;\n weightNoteRef: string | null;\n}\n\ninterface ExportSerializedDataInterface {\n countryCode: string;\n companyLocalName: string;\n startDatePeriod: string;\n endDatePeriod?: string | null;\n materialCode: string;\n materialName: string;\n materialUnitName: string;\n quantity?: number | null;\n volumeTeqCO2?: number | null;\n quantityPrevYear?: number | null;\n volumeTeqCO2PrevYear?: number | null;\n quantityEvolution?: number | null;\n volumeTeqCO2Evolution?: number | null;\n weightNoteRef?: string | null;\n}\n\nexport interface ExportSerializerConstructorInterface {\n translate: (v: string) => string;\n}\n\nexport class MovementSerializer {\n translate: (v: string) => string;\n\n constructor({ translate }: ExportSerializerConstructorInterface) {\n this.translate = (v: string): string => translate(`export.${v}`);\n }\n\n public serialize(\n data: ExportMovementDataInterface\n ): ExportSerializationResultInterface {\n const monthlyData: ExportDataInterface[] = data.monthlyData;\n const detailsData: ExportDataInterface[] = data.detailsData;\n const monthlyColumns = Object.keys(data.monthlyData[0]) as string[];\n const detailsColumns = Object.keys(data.detailsData[0]) as string[];\n detailsColumns[2] = 'executionDate';\n const columns = [...monthlyColumns, ...detailsColumns].filter(\n (v, i, a) => a.indexOf(v) === i\n );\n\n const headers = columns.reduce((acc, column) => {\n acc[column] = this.translate('labels.' + column);\n return acc;\n }, {}) as ExportHeadersInterface;\n\n const serializedDetailsData: ExportSerializedDataInterface[] = [];\n const serializedMonthlyData: ExportSerializedDataInterface[] = [];\n\n for (let i = 0; i < monthlyData.length; i++) {\n serializedMonthlyData.push(\n columns.reduce((acc, column) => {\n const value = monthlyData[i][column];\n acc[column] = this.mapColumnValue(column, value);\n return acc;\n }, {}) as ExportSerializedDataInterface\n );\n }\n for (let i = 0; i < detailsData.length; i++) {\n serializedDetailsData.push(\n columns.reduce((acc, column) => {\n const value = detailsData[i][column];\n acc[column] = this.mapColumnValue(column, value);\n return acc;\n }, {}) as ExportSerializedDataInterface\n );\n }\n return {\n headers,\n detailsData: serializedDetailsData,\n data: serializedMonthlyData,\n };\n }\n\n private mapColumnValue(column: string, value: any): any {\n switch (column) {\n case 'startDatePeriod': {\n return new Date(value);\n }\n case 'endDatePeriod': {\n const d = new Date(value);\n d.setHours(d.getHours() - 2);\n return d;\n }\n case 'countryCode':\n return this.translate('countries.' + value);\n\n case 'materialName':\n return value === 'export.labels.others'\n ? this.translate('labels.others')\n : value;\n\n case 'quantity':\n case 'quantityPrevYear':\n case 'volumeTeqCO2':\n case 'volumeTeqCO2PrevYear':\n return Math.round((value + Number.EPSILON) * 100) / 100;\n case 'quantityEvolution':\n case 'volumeTeqCO2Evolution':\n return value !== null ? value / 100 : '';\n\n default:\n return value as string;\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-var-requires */\nimport React, { useContext, useMemo, useState } from 'react';\nimport { SzButton, SzIcon } from 'react-theme-components';\nimport { BaseStoreContext, LanguageContext } from '../../contexts';\nimport {\n MovementSerializer,\n ExportSerializationResultInterface,\n} from './Export/MovementSerializer';\nimport { Currency, getDate } from '../../helpers';\nimport { OptionInterface } from '../Filters';\nimport { MovementExportChart as MovementExportChartProvider } from '../../interfaces/providers';\n\nconst XlsxTemplate = require('xlsx-template');\n\ninterface ExportOptionsInterface {\n endDate: Date;\n startDate: Date;\n}\n\ninterface PlaceholderInterface {\n placeholder: string;\n type: string;\n name: string;\n key: string;\n subType: string;\n full: boolean;\n}\n\n// https://github.com/optilude/xlsx-template/blob/752568a81d7a635ba7f9a8a7347f5e8a2c7889b3/lib/index.js#L811\n// Regex customized to skip character \" in first group\n//\n// Return a list of tokens that may exist in the string.\n// Keys are: `placeholder` (the full placeholder, including the `${}`\n// delineators), `name` (the name part of the token), `key` (the object key\n// for `table` tokens), `full` (boolean indicating whether this placeholder\n// is the entirety of the string) and `type` (one of `table` or `cell`)\nfunction extractPlaceholders(string): PlaceholderInterface[] {\n // Yes, that's right. It's a bunch of brackets and question marks and stuff.\n const re = /\\${(?:([^\"]+?):)?(.+?)(?:\\.(.+?))?(?::(.+?))??}/g;\n\n const matches: PlaceholderInterface[] = [];\n let match: RegExpExecArray | null = null;\n while ((match = re.exec(string)) !== null) {\n matches.push({\n placeholder: match[0],\n type: match[1] || 'normal',\n name: match[2],\n key: match[3],\n subType: match[4],\n full: match[0].length === string.length,\n });\n }\n\n return matches;\n}\n\nexport const MovementExportAllChart: React.FC = ({\n startDate,\n endDate,\n}) => {\n const {\n itemFiltersSelected: { organization, plant, contract },\n } = useContext(BaseStoreContext);\n const { translate } = useContext(LanguageContext);\n const [isLoading, setIsLoading] = useState(false);\n const endDeliveryDate = getDate(endDate);\n const startDeliveryDate = getDate(startDate);\n const memoizedFilters = useMemo(\n () => ({\n currencyCode: new Currency().getDecoded()?.value,\n endDeliveryDate,\n idCompanies: plant,\n idOrganizations: organization,\n isService: Array.isArray(contract)\n ? contract[0]\n : (contract as OptionInterface).value,\n startDeliveryDate,\n }),\n [contract, endDeliveryDate, organization, plant, startDeliveryDate]\n );\n\n const serializer = new MovementSerializer({ translate });\n const today = new Date();\n\n const handleClick = () => {\n setIsLoading(true);\n window.dataLayer.push({\n event: 'sz_conversion',\n sz_conversion_type: `Export Mouvements`,\n });\n\n new MovementExportChartProvider({ filters: memoizedFilters })\n .getChart()\n .then((data) => {\n return serializer.serialize(data);\n })\n .then(\n (\n result: ExportSerializationResultInterface\n ): Promise<{\n result: ExportSerializationResultInterface;\n buffer: ArrayBuffer;\n }> => {\n // fetch right template : movement has saved Co2 column\n return fetch('/templates/export_all_movement.xlsx')\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n return {\n result,\n buffer,\n };\n });\n }\n )\n .then(({ result, buffer }): void => {\n const template = new XlsxTemplate(buffer);\n let templateData = {\n data: result.data,\n detailsData: result.detailsData,\n };\n // template-xlsx don't support table headers of type headers.column... So map to headers_column\n templateData = (Object.keys(result.headers) as string[]).reduce(\n (acc, key) => {\n acc['headers_' + key] = result.headers[key];\n return acc;\n },\n templateData\n );\n template.substitute('Export', templateData);\n template.substitute('Export détaillé', templateData);\n\n // Update files for pivot table\n for (const file of [\n 'xl/pivotCache/pivotCacheDefinition1.xml',\n 'xl/pivotCache/pivotCacheRecords1.xml',\n 'xl/pivotTables/pivotTable1.xml',\n ]) {\n let content = template.archive.file(file).asText();\n // D'ont use builtin extractPlaceholders because of bad regex with character \" (xml files)\n extractPlaceholders(content).forEach((placeholder) => {\n const substitution = templateData[placeholder.name];\n content = content.replace(\n placeholder.placeholder,\n template.stringify(substitution)\n );\n });\n template.archive.file(file, content);\n }\n\n const xlsx = template.generate({ type: 'arraybuffer' });\n\n // Download generated xlsx file\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(new Blob([xlsx]));\n const filename = `all-movements-${today\n .toLocaleDateString()\n .replace('/', '_')}-${today.toLocaleTimeString()}.xlsx`;\n link.setAttribute('download', filename);\n document.body.appendChild(link);\n link.click();\n setIsLoading(false);\n })\n .catch((err) => {\n setIsLoading(false);\n console.error('Error building xls file', err);\n });\n };\n\n return (\n
\n \n \n \n {translate('charts.export-all')}\n \n \n
\n );\n};\n","import React, { useContext, useRef } from 'react';\nimport { Bar as ChartBar } from 'react-chartjs-2';\nimport './bar.scss';\nimport { ChartContext } from '../../../contexts';\nimport { Loader } from '../../Loader';\nimport { BarInterface } from './Bar';\nimport { FilterMaterials } from './FilterMaterials';\n\nexport function formatNumber(number: number) {\n if (number % 1 !== 0) {\n return new Intl.NumberFormat('fr-FR', {\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n }).format(number);\n }\n return new Intl.NumberFormat('fr-FR', {\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n }).format(number);\n}\n\nexport const StackedBars: React.FC = ({\n children,\n options = {},\n type,\n}) => {\n const ref = useRef(null);\n const { data } = useContext(ChartContext);\n\n const total = (index: number) => {\n const totals = data?.datasets.map((item) => {\n return item.data[index];\n });\n return totals?.reduce(function (a, b) {\n return a + b;\n }, 0);\n };\n\n return (\n
\n
\n {children}\n {!data ? (\n \n ) : (\n
\n
\n dataset.label != 'NA'\n ).length > 0,\n position: 'bottom',\n align: 'start',\n },\n tooltip: {\n mode: 'x',\n position: 'nearest',\n callbacks: {\n title(tooltipItem: any) {\n const title = [tooltipItem[0].label];\n title.push(\n `${formatNumber(\n total(tooltipItem[0].dataIndex) ?? 0\n )} t`\n );\n return title;\n },\n label(tooltipItem: any) {\n const label = tooltipItem.dataset.label || '';\n return `${label} : ${formatNumber(\n tooltipItem.raw\n )} t`;\n },\n },\n // Title Style\n titleColor: '#030F40',\n titleFont: { size: 16, family: 'DINPro' },\n titleSpacing: 10,\n titleMarginBottom: 12,\n padding: 10,\n // Body Style\n bodyColor: '#030F40',\n bodyFont: { size: 12 },\n bodySpacing: 5,\n\n // Global Style\n backgroundColor: '#fff',\n },\n },\n scales: {\n x: {\n grid: {\n display: false,\n },\n stacked: true,\n },\n y: {\n beginAtZero: true,\n display: true,\n stacked: true,\n },\n },\n },\n ref,\n }}\n />\n
\n
\n )}\n
\n
\n );\n};\n","import React, { useContext } from 'react';\nimport { ChartContext } from '../../../contexts';\nimport { formatTitleToK, TopFilters } from './Filters';\nimport { StackedBars } from '../Abstract/StackedBars';\n\nexport const CircularEconomy: React.FC = () => {\n const { total } = useContext(ChartContext);\n\n return (\n \n formatTitleToK(value, 't'),\n total,\n }}\n />\n \n );\n};\n","import React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { CircularEconomyChart } from '../interfaces/providers';\nimport { getDate } from '../helpers';\nimport {\n BaseStoreContext,\n} from './BaseStoreContext';\nimport { ChartContext, DataInterface, defaultContext } from './ChartContext';\nimport { LanguageContext } from './LanguageContext';\nimport { TypeSelectorContext } from '../components/TypeSelector';\nimport { Co2ChartInstance } from '../interfaces';\nimport { formatLabelYearMonthUTC } from '../components/Chart/Analysis/Filters';\n\nexport interface ChartProviderInterface {\n options: { [key: string]: GraphInterface };\n}\ninterface InternalChartProviderInterface extends ChartProviderInterface {\n startDate: Date;\n endDate: Date;\n}\ninterface GraphInterface {\n color: string;\n label: string;\n sum?: boolean;\n type?: string;\n unit?: string;\n}\n\nexport const CircularEconomyChartProvider: React.FC<\n InternalChartProviderInterface\n> = ({ children, options, startDate, endDate }) => {\n const { translate } = useContext(LanguageContext);\n const {\n itemFiltersSelected: { organization, plant },\n analysis: { materials, selectedMaterials },\n dispatch,\n } = useContext(BaseStoreContext);\n const endDeliveryDate = getDate(endDate);\n const startDeliveryDate = getDate(startDate);\n\n const [data, setData] = useState(defaultContext.data);\n const [total, setTotal] = useState(defaultContext.total);\n const { selected } = useContext(TypeSelectorContext);\n const finalSelectedMaterials = useMemo(\n () =>\n !materials.length || materials.length === selectedMaterials.length\n ? []\n : selectedMaterials.length\n ? selectedMaterials\n : [],\n [materials.length, selectedMaterials]\n );\n\n const filters = {\n endDeliveryDate,\n idCompanies: plant,\n idMaterials: finalSelectedMaterials,\n idOrganizations: organization,\n mvtTypeCode: selected == 'ROLE_CUSTOMER' ? '02' : '01',\n role: selected,\n startDeliveryDate,\n };\n\n const compute = (filters: any, { reset = true }) => {\n new CircularEconomyChart({ filters })\n .getChart()\n .then(({ data, materials: m }) => {\n const year = new Date().getFullYear();\n const month = new Date().getMonth() + 1;\n const currentMonth: Co2ChartInstance = {\n label: formatLabelYearMonthUTC(year, month),\n value: 0,\n };\n let labels: any[] = [];\n let datasets: any[] = [];\n let t = 0;\n\n data.forEach((graph) => {\n const graphOptions: GraphInterface = options[graph.type];\n if (!graphOptions) return;\n\n const d: number[] = [];\n graph.data\n .filter(\n (item) => JSON.stringify(item) !== JSON.stringify(currentMonth)\n )\n .forEach((item) => {\n labels.push(item.label);\n d.push(item.value);\n\n if (graphOptions.sum) t += item.value;\n });\n datasets.push({\n label: translate(graphOptions.label),\n data: d,\n unit: 't',\n backgroundColor: graphOptions.color,\n });\n });\n\n labels = labels\n .map((date) => date.getTime()) //Convert Date() to be able to compare\n .filter((date, i, array) => array.indexOf(date) === i) //Remove duplicates\n .sort((a: any, b: any) => a - b) //Sort date\n .map((item) => {\n //Convert To MM. YYYY => Ex: Jan. 2023\n const dateString = new Date(item).toLocaleDateString(\n navigator.language,\n {\n month: 'short',\n year: 'numeric',\n }\n );\n return dateString.replace(/^./, dateString[0].toUpperCase());\n });\n\n if (datasets.length > 1) {\n datasets = datasets.filter((dataset) => dataset.label != 'NA');\n }\n\n // datasets.reverse(); // Pour que la courbe soit devant les barres...\n setTotal(t);\n setData({\n labels,\n datasets,\n });\n });\n };\n\n useEffect(() => {\n setData(undefined);\n compute({ ...filters }, { reset: true });\n }, [\n options,\n filters.endDeliveryDate,\n JSON.stringify(filters.idMaterials),\n JSON.stringify(filters.idCompanies),\n JSON.stringify(filters.idOrganizations),\n filters.mvtTypeCode,\n filters.role,\n filters.startDeliveryDate,\n ]);\n\n return (\n \n {children}\n \n );\n};\n","/* eslint-disable @typescript-eslint/no-var-requires */\nimport React, { useContext } from 'react';\nimport { SzButton, SzIcon } from 'react-theme-components';\nimport { LanguageContext } from '../../contexts';\nimport { MixedChartContext } from '../../contexts/MixedChartContext';\nimport moment from 'moment';\n\nconst XlsxTemplate = require('xlsx-template');\n\ninterface ExportItem {\n month: string;\n material: string;\n value: number;\n}\n\nexport const ExportIndexButton: React.FC = () => {\n const { data, selectedIndex } = useContext(MixedChartContext);\n const { translate } = useContext(LanguageContext);\n\n const handleClick = () => {\n window.dataLayer.push({\n event: 'sz_conversion',\n sz_conversion_type: `Export Index`,\n });\n\n const serializeData: ExportItem[] = [];\n\n data?.datasets?.map((dataset) => {\n data?.labels?.map((month, i) => {\n serializeData.push({\n month: month,\n material: dataset.label,\n value: dataset.data[i],\n });\n });\n });\n return fetch('/templates/export_index.xlsx').then((response) => {\n response.arrayBuffer().then((buffer) => {\n const template = new XlsxTemplate(buffer);\n const values = {\n headersMonth: translate('export.index.month'),\n headersMaterials: translate('export.index.material'),\n headersValue: `${translate('export.index.value')} ${\n selectedIndex?.label\n }`,\n data: serializeData,\n };\n template.substitute(1, values);\n\n const result = template.generate({ type: 'arraybuffer' });\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(new Blob([result]));\n const day = moment(new Date()).format('YYYY-MM-DD');\n const filename = `Export_Index_${selectedIndex?.label}_${day}.xlsx`;\n link.setAttribute('download', filename);\n document.body.appendChild(link);\n link.click();\n });\n });\n };\n\n return (\n
\n \n \n \n {translate('charts.export')}\n \n \n
\n );\n};\n","import React, {\n Dispatch,\n SetStateAction,\n useContext,\n useReducer,\n useState,\n useEffect,\n useMemo,\n} from 'react';\nimport { SzDatePicker, SzAccordion } from 'react-theme-components';\nimport { Layout } from '../components/Layout';\nimport { ComponentWithTitle } from '../components/Common';\nimport { Co2, IndexValue, Revenue, Volume } from '../components/Chart/Analysis';\nimport { Currency, Token } from '../helpers';\nimport { useLogged } from '../hooks';\nimport { BaseStoreContext, ChartProvider, LanguageContext } from '../contexts';\nimport { OptionInterface } from '../components/Filters';\nimport { Co2ChartProvider } from '../contexts/Co2ChartContext';\n\nimport {\n MixedChartContext,\n MixedChartProvider,\n} from '../contexts/MixedChartContext';\nimport {\n VolumeChartProvider,\n} from '../contexts/VolumeChartContext';\nimport { TypeSelector, TypeSelectorProvider } from '../components/TypeSelector';\nimport { ExportAllChart } from '../components/Button';\nimport { FilterMaterials } from '../components/Chart';\nimport { CircularEconomy } from '../components/Chart/Analysis/CircularEconomy';\nimport { CircularEconomyChartProvider } from '../contexts/CircularEconomyChartContext';\nimport { ExportIndexButton } from '../components/Button/ExportIndexButton';\nimport { BaseChartsInterface, ChartInterface, ChartsInterface, MultiChartProviderInterface, PeriodeInterface, VolumeChartInterface } from '../interfaces/ChartInterface';\n\n\nconst volumeCharts: (MultiChartProviderInterface & BaseChartsInterface)[] = [\n {\n component: ,\n title: 'pages.analysis.volume',\n icon: 'poll',\n options: {\n Tonnages: {\n label: 'charts.volume.label',\n color: '#030f40',\n sum: true,\n unit: 't',\n },\n Unites: {\n label: 'charts.volume_units.label',\n color: '#77B7FC',\n type: 'line',\n },\n },\n },\n];\n\nconst co2Charts: ChartsInterface[] = [\n {\n component: ,\n label: 'charts.co2.label',\n title: 'pages.analysis.co2',\n icon: 'trending_up',\n },\n];\n\nconst mixedCharts: ChartsInterface[] = [\n {\n component: ,\n label: 'charts.index.label',\n title: 'pages.analysis.indexes',\n icon: 'trending_up',\n },\n];\n\nconst circularEconomyCharts: (MultiChartProviderInterface &\n BaseChartsInterface)[] = [\n {\n component: ,\n title: 'pages.analysis.circularEconomy',\n icon: 'sync',\n options: {\n Automotive: {\n label: 'charts.circularEconomy.automotive',\n color: '#FFD469',\n sum: true,\n },\n Construction: {\n label: 'charts.circularEconomy.construction',\n color: '#F89E73',\n sum: true,\n },\n Railway: {\n label: 'charts.circularEconomy.railway',\n color: '#8187A0',\n sum: true,\n },\n Recycling: {\n label: 'charts.circularEconomy.recycling',\n color: '#C4E769',\n sum: true,\n },\n Aeronotic: {\n label: 'charts.circularEconomy.aeronotic',\n color: '#77B7FC',\n sum: true,\n },\n scrapRetail: {\n label: 'charts.circularEconomy.scrapRetail',\n color: '#B4B7C6',\n sum: true,\n },\n transport: {\n label: 'charts.circularEconomy.transport',\n color: '#BBDCFD',\n sum: true,\n },\n oilAndGas: {\n label: 'charts.circularEconomy.oilAndGas',\n color: '#030F40',\n sum: true,\n },\n energy: {\n label: 'charts.circularEconomy.energy',\n color: '#AADC14',\n sum: true,\n },\n varnishesPowderPaint: {\n label: 'charts.circularEconomy.varnishesPowderPaint',\n color: '#4F5779',\n sum: true,\n },\n tractorVehicle: {\n label: 'charts.circularEconomy.tractorVehicle',\n color: '#FFC229',\n sum: true,\n },\n Other: {\n label: 'charts.circularEconomy.other',\n color: '#666666',\n sum: true,\n },\n NA: {\n label: 'NA',\n color: '#666666',\n sum: true,\n },\n },\n },\n];\n\nconst Chart: React.FC = ({\n chart,\n startDate,\n endDate,\n children,\n}) => (\n \n \n
{children}
\n
\n
\n \n);\n\nconst VolumeChart: React.FC = ({\n chart,\n startDate,\n endDate,\n children,\n}) => (\n \n \n
{children}
\n
\n
\n \n);\n\nconst Co2Chart: React.FC = ({\n chart,\n startDate,\n endDate,\n children,\n}) => {\n const { translate } = useContext(LanguageContext);\n\n const labelsLegendCO2 = [\n 'aluminiumTeqCO2',\n 'brassTeqCO2',\n 'bronzeTeqCO2',\n 'cardboardTeqCO2',\n 'castIronTeqCO2',\n 'copperTeqCO2',\n 'E1TeqCO2',\n 'E2TeqCO2',\n 'E3TeqCO2',\n 'E5TeqCO2',\n 'E6TeqCO2',\n 'E8TeqCO2',\n 'EHRTeqCO2',\n 'ferrousTeqCO2',\n 'nonferrousTeqCO2',\n 'paperTeqCO2',\n 'plasticsTeqCO2',\n 'titaniumTeqCO2',\n 'VFTeqCO2',\n ];\n\n const [activeKey, setActiveKey] = useState('1');\n const onClick = (key) => setActiveKey(key !== activeKey ? key : -1);\n\n const finalLegendCO2 = useMemo(\n () =>\n labelsLegendCO2.filter(\n (item) =>\n translate(`pages.analysis.co2.legendCO2.${item}`) !==\n `pages.analysis.co2.legendCO2.${item}`\n ),\n [labelsLegendCO2]\n );\n const indexLegend =\n Math.floor(finalLegendCO2.length / 2) + (finalLegendCO2.length % 2);\n\n return (\n \n \n
\n {children}\n
\n
\n \n {translate('pages.analysis.co2.disclaimer')}\n \n
\n
\n \n \n {[0, 1].map((i, k) => (\n
\n
    \n {finalLegendCO2.map(\n (item, key) =>\n ((i === 0 && key < indexLegend) ||\n (i === 1 && key > indexLegend - 1)) && (\n
  • \n {translate(\n `pages.analysis.co2.legendCO2.${item}`\n )}\n
  • \n )\n )}\n
\n
\n ))}\n
\n }\n eventKey=\"0\"\n onClick={onClick}\n />\n \n
\n
\n
\n \n
\n \n );\n};\n\nconst MixedChart: React.FC = ({ chart, children }) => {\n const { data, indexes, selectedIndex } = useContext(MixedChartContext);\n const { translate } = useContext(LanguageContext);\n if (data !== undefined && !data.labels.length && !indexes.length) {\n return null;\n }\n\n return (\n }>\n
\n {children}\n {selectedIndex?.label === 'MMR-SteelMint-SIAM' && (\n
\n
\n \n {translate(\"pages.analysis.indexes.MMR\")}\n \n
\n
\n )}\n
\n
\n );\n};\nconst CircularEconomyChart: React.FC<\n VolumeChartInterface & PeriodeInterface\n> = ({ chart, startDate, endDate, children }) => (\n \n \n
{children}
\n
\n
\n \n);\n\nconst SET_END_DATE = \"SET_END_DATE\";\nconst SET_START_DATE = \"SET_START_DATE\";\n\ninterface ActionInterface {\n payload: SetStateAction;\n type: string;\n}\n\ninterface PeriodeStoreInterface extends PeriodeInterface {\n dispatch: Dispatch;\n}\n\nconst getLastYear = (): Date => {\n const startDate = new Date();\n startDate.setFullYear(new Date().getFullYear() - 1);\n return startDate;\n};\n\nconst defaultStore: PeriodeStoreInterface = {\n dispatch: () => {\n return;\n },\n endDate: new Date(),\n startDate: getLastYear(),\n};\n\nconst reducer = (\n state: PeriodeStoreInterface = defaultStore,\n { payload, type }: ActionInterface\n): PeriodeStoreInterface => {\n switch (type) {\n case SET_END_DATE: {\n return {\n ...state,\n endDate: payload as Date,\n };\n }\n case SET_START_DATE: {\n return {\n ...state,\n startDate: payload as Date,\n };\n }\n default:\n return state;\n }\n};\n\nexport const Analysis: React.FC = () => {\n useLogged();\n const { itemFiltersSelected } = useContext(BaseStoreContext);\n const contract = (\n itemFiltersSelected.contract.length\n ? itemFiltersSelected.contract[0]\n : itemFiltersSelected.contract\n ) as OptionInterface;\n\n const [state, dispatch] = useReducer(reducer, defaultStore);\n const { startDate, endDate } = state;\n const [showCircularChart, setShowCircularChart] = useState(false);\n const [charts, setCharts] = useState<(MultiChartProviderInterface & BaseChartsInterface)[]>([]);\n\n useEffect(() => {\n const roles = new Token().getDecoded().roles || [];\n setShowCircularChart(roles.includes(\"ROLE_CIRCULAR_ECONOMY\"));\n const options: (MultiChartProviderInterface & BaseChartsInterface)[] = [\n {\n component: ,\n title: 'pages.analysis.revenue',\n icon: 'poll',\n options: {\n Revenues: {\n label: 'charts.revenue.label',\n color: '#77B7FC',\n sum: true,\n unit: `${new Currency().getDecoded()?.label || '€'}`,\n },\n Unites: {\n label: `charts.revenue_units.${new Currency().getDecoded()?.value || 'eur'}`,\n color: '#030f40',\n type: 'line',\n unit: `${new Currency().getDecoded()?.label || '€'}/t`,\n },\n },\n },\n ];\n setCharts(options);\n }, []);\n\n return (\n \n \n
\n
\n \n dispatch({ type: SET_END_DATE, payload: v as Date }),\n onChangeStartDate: (v): void =>\n dispatch({ type: SET_START_DATE, payload: v as Date }),\n startDate,\n }}\n />\n
\n \n \n \n
\n {charts.map((chart, key) => (\n \n {chart.component}\n \n ))}\n {volumeCharts\n .filter(() => !(contract && contract.value === true))\n .map((chart, key) => (\n \n {chart.component}\n \n ))}\n {co2Charts\n .filter(() => !(contract && contract.value === true))\n .map((chart, key) => (\n \n {chart.component}\n \n ))}\n {showCircularChart &&\n circularEconomyCharts\n .filter(() => !(contract && contract.value === true))\n .map((chart, key) => (\n \n {chart.component}\n \n ))}\n {mixedCharts.map((chart, key) => (\n \n {chart.component}\n \n ))}\n
\n
\n );\n};\n","import React, {\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useState,\n} from 'react';\nimport { MovementCo2Chart } from '../interfaces/providers';\nimport { Currency, getDate } from '../helpers';\nimport {\n BaseStoreContext,\n INIT_MOVEMENT_MATERIALS,\n SET_MOVEMENT_MATERIALS,\n SET_MOVEMENT_SELECTED_MATERIALS,\n} from './BaseStoreContext';\nimport { ChartContext, DataInterface, defaultContext } from './ChartContext';\nimport { LanguageContext } from './LanguageContext';\nimport { Co2ChartInstance } from '../interfaces/model';\nimport { OptionInterface } from '../components/Filters';\nimport { TypeSelectorContext } from '../components/TypeSelector';\nimport { formatLabelYearMonthUTC } from '../components/Chart/Analysis/Filters';\n\ninterface ChartProviderInterface {\n color?: string;\n label: string;\n startDate: Date;\n endDate: Date;\n}\n\nexport const MovementCo2ChartProvider: React.FC = ({\n children,\n color = '#aadc14',\n label,\n startDate,\n endDate,\n}) => {\n const { translate } = useContext(LanguageContext);\n const {\n itemFiltersSelected: { organization, plant, contract },\n movement: { materials, selectedMaterials },\n dispatch,\n } = useContext(BaseStoreContext);\n const endDeliveryDate = getDate(endDate);\n const startDeliveryDate = getDate(startDate);\n\n const [data, setData] = useState(defaultContext.data);\n const [total, setTotal] = useState(defaultContext.total);\n const { selected } = useContext(TypeSelectorContext);\n const finalSelectedMaterials = useMemo(\n () =>\n !materials.length || materials.length === selectedMaterials.length\n ? []\n : selectedMaterials.length\n ? selectedMaterials\n : [],\n [materials.length, selectedMaterials]\n );\n\n const filters = {\n currencyCode: new Currency().getDecoded()?.value,\n endDeliveryDate,\n idCompanies: plant,\n idMaterials: finalSelectedMaterials,\n idOrganizations: organization,\n isService: Array.isArray(contract)\n ? contract[0]\n : (contract as OptionInterface).value,\n mvtTypeCode: selected == 'ROLE_MOVEMENT_CUSTOMER' ? '02' : '01',\n role: selected,\n startDeliveryDate,\n };\n\n const compute = (filters: any, { reset = true }) => {\n new MovementCo2Chart({ filters })\n .getChart()\n .then(({ data, materials: m }) => {\n if (JSON.stringify(finalSelectedMaterials) === JSON.stringify([])) {\n dispatch({\n payload: m,\n type: reset ? INIT_MOVEMENT_MATERIALS : SET_MOVEMENT_MATERIALS,\n });\n }\n\n const year = new Date().getFullYear();\n const month = new Date().getMonth() + 1;\n\n const currentMonth: Co2ChartInstance = {\n label: formatLabelYearMonthUTC(year, month),\n value: 0,\n };\n\n const labels: string[] = [];\n const d: number[] = [];\n let t = 0;\n data\n .filter(\n (item) => JSON.stringify(item) !== JSON.stringify(currentMonth)\n )\n .forEach((item) => {\n const dateString = item.label.toLocaleDateString(\n navigator.language,\n {\n month: 'short',\n year: 'numeric',\n }\n );\n labels.push(dateString.replace(/^./, dateString[0].toUpperCase()));\n d.push(item.value);\n t += item.value;\n });\n setTotal(t);\n setData({\n labels,\n datasets: [\n {\n label: translate(label),\n data: d,\n type: 'line',\n borderColor: color,\n backgroundColor: 'transparent',\n pointBorderColor: color,\n pointBackgroundColor: color,\n pointHoverBackgroundColor: color,\n pointHoverBorderColor: color,\n },\n ],\n });\n });\n };\n\n useEffect(() => {\n setData(undefined);\n compute({ ...filters }, { reset: true });\n }, [\n color,\n label,\n filters.currencyCode,\n filters.endDeliveryDate,\n JSON.stringify(filters.idMaterials),\n JSON.stringify(filters.idCompanies),\n JSON.stringify(filters.idOrganizations),\n filters.isService,\n filters.role,\n filters.startDeliveryDate,\n ]);\n\n return (\n \n {children}\n \n );\n};\n","import React, {\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useState,\n} from 'react';\nimport { MovementVolumeChart } from '../interfaces/providers';\nimport { Currency, getDate } from '../helpers';\nimport {\n BaseStoreContext,\n INIT_MOVEMENT_MATERIALS,\n SET_MOVEMENT_MATERIALS,\n} from './BaseStoreContext';\nimport { ChartContext, DataInterface, defaultContext } from './ChartContext';\nimport { LanguageContext } from './LanguageContext';\nimport { OptionInterface } from '../components/Filters';\nimport { TypeSelectorContext } from '../components/TypeSelector';\nimport { Co2ChartInstance } from '../interfaces';\nimport { formatLabelYearMonthUTC } from '../components/Chart/Analysis/Filters';\n\nexport interface ChartProviderInterface {\n options: { [key: string]: GraphInterface };\n}\ninterface InternalChartProviderInterface extends ChartProviderInterface {\n startDate: Date;\n endDate: Date;\n}\ninterface GraphInterface {\n color: string;\n label: string;\n sum?: boolean;\n type?: string;\n unit?: string;\n}\n\nexport const MovementVolumeChartProvider: React.FC<\n InternalChartProviderInterface\n> = ({ children, options, startDate, endDate }) => {\n const { translate } = useContext(LanguageContext);\n\n const {\n itemFiltersSelected: { organization, plant, contract },\n movement: { materials, selectedMaterials },\n dispatch,\n } = useContext(BaseStoreContext);\n const endDeliveryDate = getDate(endDate);\n const startDeliveryDate = getDate(startDate);\n\n const [data, setData] = useState(defaultContext.data);\n const [total, setTotal] = useState(defaultContext.total);\n const { selected } = useContext(TypeSelectorContext);\n const finalSelectedMaterials = useMemo(\n () =>\n !materials.length || materials.length === selectedMaterials.length\n ? []\n : selectedMaterials.length\n ? selectedMaterials\n : [],\n [materials.length, selectedMaterials]\n );\n\n const filters = {\n currencyCode: new Currency().getDecoded()?.value,\n endDeliveryDate,\n idCompanies: plant,\n idMaterials: finalSelectedMaterials,\n idOrganizations: organization,\n isService: Array.isArray(contract)\n ? contract[0]\n : (contract as OptionInterface).value,\n mvtTypeCode: selected == 'ROLE_MOVEMENT_CUSTOMER' ? '02' : '01',\n role: selected,\n startDeliveryDate,\n };\n\n const compute = (filters: any, { reset = true }) => {\n new MovementVolumeChart({ filters })\n .getChart()\n .then(({ data, materials: m }) => {\n if (JSON.stringify(finalSelectedMaterials) === JSON.stringify([])) {\n dispatch({\n payload: m,\n type: reset ? INIT_MOVEMENT_MATERIALS : SET_MOVEMENT_MATERIALS,\n });\n }\n\n const year = new Date().getFullYear();\n const month = new Date().getMonth() + 1;\n const currentMonth: Co2ChartInstance = {\n label: formatLabelYearMonthUTC(year, month),\n value: 0,\n };\n const labels: string[] = [];\n const datasets: any[] = [];\n let t = 0;\n data.forEach((graph) => {\n const graphOptions: GraphInterface = options[graph.type];\n if (!graphOptions) return;\n\n const d: number[] = [];\n graph.data\n .filter(\n (item) => JSON.stringify(item) !== JSON.stringify(currentMonth)\n )\n .forEach((item) => {\n let dateString = item.label.toLocaleDateString(\n navigator.language,\n {\n month: 'short',\n year: 'numeric',\n }\n );\n dateString = dateString.replace(\n /^./,\n dateString[0].toUpperCase()\n );\n if (!labels.includes(dateString)) {\n // Based on the fact that the api \"fill\" empty dates before returning data\n // So only first graph will add labels\n labels.push(dateString);\n }\n d.push(item.value);\n if (graphOptions.sum) t += item.value;\n });\n\n if (graphOptions.type === 'line') {\n datasets.push({\n label: translate(graphOptions.label),\n data: d,\n type: 'line',\n unit: graphOptions.unit,\n borderColor: graphOptions.color,\n backgroundColor: 'transparent',\n pointBorderColor: graphOptions.color,\n pointBackgroundColor: graphOptions.color,\n pointHoverBackgroundColor: graphOptions.color,\n pointHoverBorderColor: graphOptions.color,\n yAxisID: 'y-axis-1',\n order: 1,\n });\n } else {\n datasets.push({\n label: translate(graphOptions.label),\n backgroundColor: graphOptions.color,\n data: d,\n unit: graphOptions.unit,\n order: 2,\n });\n }\n });\n\n //datasets.reverse(); // Pour que la courbe soit devant les barres...\n\n setTotal(t);\n setData({\n labels,\n datasets,\n });\n });\n };\n\n useEffect(() => {\n setData(undefined);\n compute({ ...filters }, { reset: true });\n }, [\n options,\n filters.currencyCode,\n filters.endDeliveryDate,\n JSON.stringify(filters.idMaterials),\n JSON.stringify(filters.idCompanies),\n JSON.stringify(filters.idOrganizations),\n filters.isService,\n filters.role,\n filters.startDeliveryDate,\n ]);\n\n return (\n \n {children}\n \n );\n};\n","import React, { useContext, useEffect } from 'react';\nimport { Token } from '../../helpers';\nimport { TypeSelectorContext } from './context/TypeSelectorContext';\nimport { BaseStoreContext, LanguageContext } from '../../contexts';\nimport { ClassNameInterface } from '../../interfaces';\nimport './typeSelector.scss';\nimport { SzButton } from 'react-theme-components';\n\nexport const MovementTypeSelector: React.FC = ({\n className,\n}) => {\n const t = new Token().getDecoded().roles || [];\n if (\n !(\n t.includes('ROLE_MOVEMENT_CUSTOMER') &&\n t.includes('ROLE_MOVEMENT_SUPPLIER')\n )\n ) {\n return null;\n }\n\n const { translate } = useContext(LanguageContext);\n const { selected, setSelected } = useContext(TypeSelectorContext);\n const {setSelectedMaterials} = useContext(BaseStoreContext);\n\n useEffect(() => {\n setSelected('ROLE_MOVEMENT_SUPPLIER');\n }, []);\n\n const handleTypeSelected = (type) => {\n setSelected(type);\n setSelectedMaterials([], 'analysis');\n setSelectedMaterials([], 'movement');\n setSelectedMaterials([], 'circularEconomy');\n };\n\n return (\n
\n
\n
\n {[\n {\n label: 'customer',\n value: 'ROLE_MOVEMENT_CUSTOMER',\n },\n {\n label: 'supplier',\n value: 'ROLE_MOVEMENT_SUPPLIER',\n },\n ].map(({ label, value }, key) => (\n handleTypeSelected(value)}\n variant={selected === value ? 'primary' : 'secondary'}\n >\n {translate(`charts.typeSelector.${label}`)}\n \n ))}\n
\n
\n
\n );\n};\n","import React, { useState } from 'react';\nimport { Token } from '../../../helpers';\nimport { TypeSelectorContext } from './TypeSelectorContext';\n\nexport const MovementTypeSelectorProvider: React.FC = ({ children }) => {\n const roles = new Token()\n .getDecoded()\n .roles.filter((r) =>\n ['ROLE_MOVEMENT_SUPPLIER', 'ROLE_MOVEMENT_CUSTOMER'].includes(r)\n );\n const [selected, setSelected] = useState(roles[0] || '');\n\n return (\n \n {children}\n \n );\n};\n","import React, { Dispatch, SetStateAction, useContext, useReducer } from 'react';\nimport { SzDatePicker } from 'react-theme-components';\nimport { Layout } from '../components/Layout';\nimport { ComponentWithTitle } from '../components/Common';\nimport { Co2, Volume } from '../components/Chart/Analysis';\nimport { getTimeOffset } from '../helpers';\nimport { useLogged } from '../hooks';\nimport { BaseStoreContext, LanguageContext } from '../contexts';\nimport { OptionInterface } from '../components/Filters';\nimport { MovementCo2ChartProvider } from '../contexts/MovementCo2ChartContext';\nimport {\n MovementVolumeChartProvider,\n} from '../contexts/MovementVolumeChartContext';\nimport { MovementExportAllChart } from '../components/Button';\nimport { FilterMaterials } from '../components/Chart';\nimport { MovementTypeSelector } from '../components/TypeSelector/MovementTypeSelector';\nimport { MovementTypeSelectorProvider } from '../components/TypeSelector/context/MovementTypeSelectorContext';\nimport { BaseChartsInterface, ChartInterface, ChartsInterface, MultiChartProviderInterface, PeriodeInterface, VolumeChartInterface } from '../interfaces/ChartInterface';\n\nconst volumeCharts: (MultiChartProviderInterface & BaseChartsInterface)[] = [\n {\n component: ,\n title: 'pages.movement.volume',\n icon: 'poll',\n options: {\n Tonnages: {\n label: 'charts.volume.label',\n color: '#030f40',\n sum: true,\n unit: 't',\n },\n Unites: {\n label: 'charts.volume_units.label',\n color: '#77B7FC',\n type: 'line',\n },\n },\n },\n];\n\nconst co2Charts: ChartsInterface[] = [\n {\n component: ,\n label: 'charts.co2.label',\n title: 'pages.movement.co2',\n icon: 'trending_up',\n },\n];\n\nconst MovementVolumeChart: React.FC<\n VolumeChartInterface & PeriodeInterface\n> = ({ chart, startDate, endDate, children }) => (\n \n \n
{children}
\n
\n
\n \n);\n\nconst MovementCo2Chart: React.FC = ({\n chart,\n startDate,\n endDate,\n children,\n}) => {\n const { translate } = useContext(LanguageContext);\n\n return (\n \n \n
\n {children}\n
\n
\n \n {translate('pages.movement.co2.disclaimer')}\n \n
\n
\n
\n
\n
\n \n );\n};\n\nconst SET_END_DATE = 'SET_END_DATE';\nconst SET_START_DATE = 'SET_START_DATE';\n\ninterface ActionInterface {\n payload: SetStateAction;\n type: string;\n}\n\ninterface PeriodeStoreInterface extends PeriodeInterface {\n dispatch: Dispatch;\n}\n\nconst getLastYear = (): Date => {\n const startDate = new Date();\n startDate.setFullYear(new Date().getFullYear() - 1);\n return startDate;\n};\n\nconst defaultStore: PeriodeStoreInterface = {\n dispatch: () => {\n return;\n },\n endDate: new Date(),\n startDate: getLastYear(),\n};\n\nconst reducer = (\n state: PeriodeStoreInterface = defaultStore,\n { payload, type }: ActionInterface\n): PeriodeStoreInterface => {\n switch (type) {\n case SET_END_DATE: {\n return {\n ...state,\n endDate: payload as Date,\n };\n }\n case SET_START_DATE: {\n return {\n ...state,\n startDate: payload as Date,\n };\n }\n default:\n return state;\n }\n};\n\nexport const Movement: React.FC = () => {\n useLogged();\n const { itemFiltersSelected } = useContext(BaseStoreContext);\n const contract = (\n itemFiltersSelected.contract.length\n ? itemFiltersSelected.contract[0]\n : itemFiltersSelected.contract\n ) as OptionInterface;\n\n const [state, dispatch] = useReducer(reducer, defaultStore);\n const { startDate, endDate } = state;\n\n return (\n \n \n
\n
\n \n dispatch({ type: SET_END_DATE, payload: v as Date }),\n onChangeStartDate: (v): void =>\n dispatch({ type: SET_START_DATE, payload: v as Date }),\n startDate,\n }}\n />\n
\n \n \n \n
\n {volumeCharts\n .filter(() => !(contract && contract.value === true))\n .map((chart, key) => (\n \n {chart.component}\n \n ))}\n {co2Charts\n .filter(() => !(contract && contract.value === true))\n .map((chart, key) => (\n \n {chart.component}\n \n ))}\n
\n
\n );\n};\n","import React from 'react';\nimport { ClassNameInterface } from '../../interfaces';\n\nexport const Card: React.FC = ({ children, className }) => (\n
{children}
\n);\n","import React, { SyntheticEvent, useContext } from 'react';\nimport { Card } from './Card';\nimport { SzIcon } from 'react-theme-components';\nimport { ClassNameInterface } from '../../interfaces';\nimport { LanguageContext } from '../../contexts';\n\ninterface EmbedCardInterface {\n image: {\n alt: string;\n src?: string;\n };\n link: string;\n onClick: (event: SyntheticEvent) => void;\n title: string;\n}\n\nexport const EmbedCard: React.FC = ({\n className,\n image,\n link,\n onClick,\n title,\n}) => {\n const { translate } = useContext(LanguageContext);\n return (\n \n
\n \n

{title}

\n
\n \n \n \n {translate('pages.catalog.item.more')}\n \n \n
\n
\n
\n );\n};\n","import React, { useContext, useState } from 'react';\nimport { MaterialInstance } from '../../interfaces/model';\nimport {\n ADD_ITEM_CATALOG,\n BaseStoreContext,\n LanguageContext,\n SET_SELECTED_ITEM,\n} from '../../contexts';\nimport { EmbedCard } from '../Card';\nimport { useHistory } from 'react-router';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport { Material } from '../../interfaces/providers';\nimport { Spinner } from 'react-bootstrap';\nimport { OptionInterface } from '../Filters';\n\ninterface CatalogItemsInterface {\n materialFamilyFilterValues: OptionInterface[];\n materialSubFamilyFilterValues: OptionInterface[];\n perPage: number;\n searchMaterialFilter: string;\n}\n\nexport const CatalogItems: React.FC = ({\n materialFamilyFilterValues,\n materialSubFamilyFilterValues,\n perPage,\n searchMaterialFilter,\n}) => {\n const { push } = useHistory();\n const { catalog, loading, dispatch, itemFiltersSelected } =\n useContext(BaseStoreContext);\n const { translate } = useContext(LanguageContext);\n const [hasMore, setHasMore] = useState(true);\n\n const loader = (\n
\n \n \n {translate(`pages.catalog.loader`)}\n \n
\n );\n\n if (loading) {\n return loader;\n }\n\n if (!catalog.length) {\n return (\n
\n \n \n {translate(`pages.catalog.no_results`)}\n \n \n
\n );\n }\n\n return (\n
\n {\n new Material({\n filters: {\n idOrganizations: itemFiltersSelected.organization,\n idCompanies: itemFiltersSelected.plant,\n materialFamilyFilterValues,\n materialSubFamilyFilterValues,\n searchMaterialFilter,\n page,\n perPage,\n },\n })\n .getList()\n .then(({ data }) => {\n setHasMore(data.length === perPage);\n dispatch({\n payload: data,\n type: ADD_ITEM_CATALOG,\n });\n if (data.length < perPage) {\n setHasMore(false);\n }\n });\n }}\n hasMore={hasMore}\n loader={loader}\n >\n
\n {catalog.map((item: MaterialInstance, key: number) => (\n
\n {\n event.preventDefault();\n dispatch({\n type: SET_SELECTED_ITEM,\n payload: item,\n });\n push(`/catalogs/${item.id}`);\n }}\n title={`${item.code} - ${item.name}`}\n />\n
\n ))}\n
\n \n
\n );\n};\n","import React, {\n Dispatch,\n SetStateAction,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport {\n Material,\n MaterialFamily,\n MaterialSubFamily,\n} from '../../interfaces/providers';\nimport { BaseStoreContext, SET_CATALOG } from '../../contexts';\nimport { MaterialInstance, ModelInstance } from '../../interfaces';\nimport {\n MaterialFamilyFilter,\n MaterialSubFamilyFilter,\n OptionInterface,\n ResetFilter,\n SearchFilter,\n} from '../Filters';\nimport { CatalogItems } from './CatalogItems';\nimport { AbstractProvider } from '../../interfaces/providers/abstract';\nimport { useDebounce } from '../../hooks';\nimport { Tile } from '../Tile';\n\ninterface ProviderInterface {\n provider: AbstractProvider;\n setter: Dispatch>;\n}\n\nexport const Catalog: React.FC = () => {\n const perPage = 20;\n const { dispatch, itemFiltersSelected } = useContext(BaseStoreContext);\n const [isFirstCall, setIsFirstCall] = useState(true);\n const [materialFamilyFilterValues, setMaterialFamilyFilterValues] = useState<\n OptionInterface[]\n >([]);\n const [materialSubFamilyFilterValues, setMaterialSubFamilyFilterValues] =\n useState([]);\n const [searchMaterialFilter, setSearchMaterialFilter] = useState('');\n const [materialFamily, setMaterialFamily] = useState([]);\n const [materialSubFamily, setMaterialSubFamily] = useState(\n []\n );\n const debounced = useDebounce(searchMaterialFilter, 500);\n const [providers] = useState([\n {\n provider: new MaterialFamily(),\n setter: setMaterialFamily,\n },\n ]);\n\n useEffect(() => {\n setMaterialSubFamily([]);\n setMaterialSubFamilyFilterValues([]);\n\n const options: any = {};\n\n // TODO: this should not be an OptionInterface[] but an OptionInterface\n // there is although lot of code to change to fix this properly\n if (\n materialFamilyFilterValues &&\n !Array.isArray(materialFamilyFilterValues)\n ) {\n options.filters = {\n idMaterialFamily: (materialFamilyFilterValues as OptionInterface).value,\n };\n }\n\n new MaterialSubFamily(options)\n .getList()\n .then(({ data }: { data: ModelInstance[] }) => {\n setMaterialSubFamily(\n data.map((item) => ({\n label: item.name,\n value: item.id,\n }))\n );\n });\n }, [materialFamilyFilterValues]);\n\n const resetFilters = (): void => {\n setMaterialFamilyFilterValues([]);\n setMaterialSubFamilyFilterValues([]);\n setSearchMaterialFilter('');\n };\n const callMaterialAPI = useCallback(() => {\n new Material({\n filters: {\n perPage,\n idOrganizations: itemFiltersSelected.organization,\n idCompanies: itemFiltersSelected.plant,\n materialFamilyFilterValues,\n materialSubFamilyFilterValues,\n searchMaterialFilter,\n },\n })\n .getList()\n .then(({ data }: { data: MaterialInstance[] }) => {\n dispatch({\n payload: { data, loading: false },\n type: SET_CATALOG,\n });\n });\n }, [\n dispatch,\n itemFiltersSelected,\n materialFamilyFilterValues,\n materialSubFamilyFilterValues,\n searchMaterialFilter,\n ]);\n\n useEffect(() => {\n providers.map((provider) =>\n provider.provider.getList().then(({ data }: { data: ModelInstance[] }) =>\n provider.setter(\n data.map((item) => ({\n label: item.name,\n value: item.id,\n }))\n )\n )\n );\n }, [providers]);\n\n useEffect(() => {\n dispatch({\n payload: { data: [], loading: true },\n type: SET_CATALOG,\n });\n callMaterialAPI();\n }, [\n callMaterialAPI,\n dispatch,\n materialFamilyFilterValues,\n materialSubFamilyFilterValues,\n ]);\n\n useMemo(() => {\n if (debounced || isFirstCall) {\n setIsFirstCall(false);\n dispatch({\n payload: { data: [], loading: true },\n type: SET_CATALOG,\n });\n callMaterialAPI();\n }\n }, [callMaterialAPI, dispatch, debounced, isFirstCall]);\n\n return (\n
\n \n
\n
\n \n
\n
\n \n
\n \n \n
\n \n
\n
\n );\n};\n","import { useEffect, useState } from 'react';\nimport { OptionInterface } from '../components/Filters';\n\nexport const useDebounce = (\n value: string | OptionInterface[],\n delay: number\n): string | OptionInterface[] => {\n const [debouncedValue, setDebouncedValue] = useState<\n string | OptionInterface[]\n >(value);\n\n useEffect((): (() => void) => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return (): void => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n","import React from 'react';\nimport { Layout, ReturnToTop } from '../components/Layout';\nimport { ComponentWithTitle } from '../components/Common';\nimport { Catalog as CatalogComponent } from '../components/Catalog';\nimport { useLogged } from '../hooks';\n\nexport const Catalog: React.FC = () => {\n useLogged();\n return (\n \n \n \n \n \n \n );\n};\n","import React, { useContext, useEffect } from 'react';\nimport { Layout } from '../components/Layout';\nimport { useHistory, useRouteMatch } from 'react-router';\nimport './catalogItem.scss';\nimport { SzIcon, SzTypographie } from 'react-theme-components';\nimport {\n BaseStoreContext,\n LanguageContext,\n SET_SELECTED_ITEM,\n} from '../contexts';\nimport { Material } from '../interfaces/providers';\nimport { MaterialInstance } from '../interfaces/model';\nimport { useLogged } from '../hooks';\nimport { ComponentWithTitle } from '../components/Common';\nimport { Tile } from '../components/Tile';\nimport { Loader } from '../components/Loader';\n\nexport const CatalogItem: React.FC = () => {\n useLogged();\n const { translate } = useContext(LanguageContext);\n const { goBack } = useHistory();\n const {\n params: { id },\n } = useRouteMatch>();\n const { itemSelected, dispatch } = useContext(BaseStoreContext);\n\n useEffect(() => {\n if (!(itemSelected && id === itemSelected.id)) {\n new Material()\n .getOne({ id })\n .then(({ data }: { data: MaterialInstance }) =>\n dispatch({\n payload: data,\n type: SET_SELECTED_ITEM,\n })\n );\n }\n }, [dispatch, id, itemSelected]);\n\n return (\n \n \n
\n \n
\n \n \n goBack()}\n >\n {' '}\n \n {translate('pages.catalogItem.back')}\n \n \n \n \n
\n {!itemSelected ? (\n
\n \n
\n ) : (\n <>\n
\n \n {itemSelected.name}\n \n \n {itemSelected.code}\n \n
\n
\n \n {(\n itemSelected?.materialFamily?.name || ''\n ).toUpperCase()}\n |\n {(\n itemSelected?.materialSubFamily?.name || ''\n ).toUpperCase()}\n \n \n {itemSelected.description}\n \n
\n
\n {itemSelected?.photos?.map((p, k) => (\n \n )) || (\n \n )}\n
\n \n )}\n
\n
\n
\n
\n \n
\n );\n};\n","import React, {\n Dispatch,\n MutableRefObject,\n ReactElement,\n SyntheticEvent,\n useContext,\n useState,\n useRef,\n} from 'react';\nimport { FieldInterface } from './Field';\nimport { Link, useHistory } from 'react-router-dom';\nimport {\n FormContext,\n FormProvider,\n LanguageContext,\n SET_ERROR,\n SET_LOADING,\n SET_SUCCESS,\n SET_VALUE,\n} from '../../contexts';\nimport { SzAlert, SzButton, SzInput, SzTextArea } from 'react-theme-components';\nimport './form.scss';\nimport Recaptcha from 'react-recaptcha';\n\nexport interface LinkInterface {\n label: string;\n path: string;\n}\n\nexport interface BaseFormInterface {\n additionalLinks?: LinkInterface[];\n alertsTop?: boolean;\n back?: boolean;\n buttonContent?: ReactElement;\n buttonText?: string;\n keepButton?: boolean;\n submitForm?: (\n e: any, // eslint-disable-line\n ref: MutableRefObject\n ) => Promise;\n successMessage?: string;\n validate?: (ref: MutableRefObject) => boolean;\n withRecaptcha?: boolean;\n}\n\nexport interface FormInterface extends BaseFormInterface {\n fields: FieldInterface[];\n}\n\nexport const jsonToFormData = (\n element: any /*eslint-disable-line*/\n): FormData => {\n const fd = new FormData();\n Object.keys(element).forEach((e) => fd.append(e, element[e])); // eslint-disable-line\n return fd;\n};\n// eslint-disable-line\nexport const formatformToJson = (\n elements: any /*eslint-disable-line*/\n): any /*eslint-disable-line*/ => {\n const formData = new FormData(elements);\n return Object.fromEntries(formData);\n};\n\nexport interface BaseInputInterface {\n field: FieldInterface;\n}\n\nconst Field: React.FC = ({ field }) => {\n const { translate } = useContext(LanguageContext);\n const { dispatch, isLoading, values } = useContext(FormContext);\n return (\n
\n
\n {'textarea' === field.type ? (\n ): void => {\n dispatch({\n payload: {\n name: field.name,\n value: event.currentTarget.value,\n },\n type: SET_VALUE,\n });\n return;\n }}\n />\n ) : (\n {\n dispatch({\n payload: {\n name: field.name,\n value: target.value,\n },\n type: SET_VALUE,\n });\n return;\n }}\n label={\n field.label && translate(`forms.fields.${field.label}.label`)\n }\n labelClassName=\"d-block position-relative required\"\n required\n disabled={isLoading}\n icon={field.icon}\n placeholder={translate(\n `forms.fields.${field.placeholder}.placeholder`\n )}\n />\n )}\n
\n
\n );\n};\n\ninterface FormPropertiesInterface {\n onSubmit: (event: SyntheticEvent) => void;\n ref: MutableRefObject;\n}\n\ninterface InnerFormPropertiesInterface extends BaseFormInterface {\n dispatch: Dispatch; // eslint-disable-line\n recaptchaRef: Recaptcha | null;\n ref: MutableRefObject;\n withRecaptcha?: boolean;\n setCaptchaOk?: any;\n}\n\nfunction noop() {} // eslint-disable-line\n\nfunction resetRecaptchaIfNeeded({ recaptchaRef, values }: any): Promise {\n if (recaptchaRef && !values['g-recaptcha-response']) {\n return Promise.reject(new Error('No captcha.'));\n }\n\n return Promise.resolve(values);\n}\n\nconst formProperties = ({\n dispatch,\n recaptchaRef,\n ref,\n submitForm,\n validate,\n setCaptchaOk,\n}: InnerFormPropertiesInterface): FormPropertiesInterface => {\n return {\n onSubmit: (event: SyntheticEvent): void => {\n event.preventDefault();\n dispatch({\n type: 'SET_LOADING',\n payload: true,\n });\n const values = formatformToJson(event.target);\n\n if (validate && !validate(ref)) {\n dispatch({\n type: SET_LOADING,\n payload: false,\n });\n return;\n }\n\n resetRecaptchaIfNeeded({ recaptchaRef, values })\n .then((values: any) => {\n if (!submitForm) {\n return Promise.resolve();\n }\n\n return submitForm(values, ref);\n })\n .then(() => {\n dispatch({ type: SET_SUCCESS });\n Object.keys(values).forEach((name: string) =>\n dispatch({\n payload: {\n name,\n value: '',\n },\n type: SET_VALUE,\n })\n );\n })\n .catch((err: Error) => {\n console.error('An error occured while submitting the form', err);\n dispatch({ type: SET_ERROR });\n })\n .finally(() => {\n recaptchaRef?.reset();\n setCaptchaOk(false);\n dispatch({\n type: SET_LOADING,\n payload: false,\n });\n });\n },\n ref,\n };\n};\n\ninterface AlertsInterface {\n error: boolean;\n isLoading: boolean;\n success: boolean;\n successMessage?: string;\n}\n\nconst Alerts: React.FC = ({\n error,\n isLoading,\n success,\n successMessage,\n}) => {\n const { translate } = useContext(LanguageContext);\n\n return !isLoading && error ? (\n
\n {translate(`forms.errorMessage`)}\n
\n ) : successMessage && !isLoading && success ? (\n
\n \n {translate(`forms.${successMessage}.successMessage`)}\n \n
\n ) : null;\n};\n\nlet hasCaptcha = false;\n\nconst BaseForm: React.FC = ({\n additionalLinks,\n alertsTop = true,\n back = false,\n buttonContent,\n buttonText,\n children,\n keepButton = false,\n successMessage,\n withRecaptcha,\n ...rest\n}) => {\n const { selectedLanguage, translate } = useContext(LanguageContext);\n const { dispatch, error, isLoading, success } = useContext(FormContext);\n const [recaptchaRef, setRecaptchaRef] = useState(null);\n const [captchaOk, setCaptchaOk] = useState(false);\n const { goBack, push } = useHistory();\n const ref = useRef();\n const formProps = formProperties({\n dispatch,\n ref: ref as MutableRefObject,\n recaptchaRef,\n withRecaptcha,\n setCaptchaOk,\n ...rest,\n });\n\n setTimeout(() => {\n if (withRecaptcha && !hasCaptcha && recaptchaRef) {\n (recaptchaRef as any)._renderGrecaptcha();\n }\n }, 1000);\n\n return (\n
\n {alertsTop ? (\n \n ) : null}\n {!success && children}\n
\n {!keepButton && success ? (\n push('/')}\n variant=\"secondary\"\n >\n arrow_back{' '}\n {translate('forms.returnToHome')}\n \n ) : (\n <>\n {back && (\n
\n goBack()}\n variant=\"secondary\"\n >\n \n arrow_back\n \n \n
\n )}\n {\n if (withRecaptcha && recaptchaRef && !captchaOk) {\n event.preventDefault();\n recaptchaRef.execute();\n return false;\n }\n\n return;\n },\n }}\n >\n {buttonContent\n ? buttonContent\n : translate(`forms.submit.${buttonText || 'classic'}`)}\n \n \n )}\n
\n {additionalLinks ? (\n
\n {additionalLinks.map(\n (additionalLink: LinkInterface, index: number) => (\n \n {translate(`forms.${additionalLink.label}.additionalLink`)}\n \n )\n )}\n
\n ) : (\n ''\n )}\n {!alertsTop ? (\n \n ) : null}\n {withRecaptcha ? (\n
\n {\n setCaptchaOk(true);\n if (ref && ref.current) {\n const button = ref.current.querySelector(\n 'button[type=\"submit\"]'\n ) as unknown as any;\n if (button) {\n button.click();\n }\n }\n }}\n sitekey={process.env.REACT_APP_RECAPTCHA_KEY}\n onloadCallback={() => {\n hasCaptcha = true;\n }}\n />\n
\n ) : null}\n \n );\n};\n\nexport const Form: React.FC = ({ fields, ...rest }) => (\n \n \n {fields.map((field: FieldInterface, key: number) => (\n \n ))}\n \n \n);\n","import { ClassNameInterface } from '../../interfaces';\n\nexport interface FieldInterface extends ClassNameInterface {\n icon?: string;\n label?: string;\n name: string;\n placeholder?: string;\n type?: 'textarea' | 'number' | 'text' | 'email' | 'password';\n}\n\nexport const email = (className?: string): FieldInterface => ({\n className,\n name: 'email',\n label: 'email',\n placeholder: 'email',\n type: 'email',\n});\n\nexport const firstname = (className?: string): FieldInterface => ({\n className,\n name: 'firstname',\n placeholder: 'firstname',\n});\n\nexport const lastname = (className?: string): FieldInterface => ({\n className,\n name: 'lastname',\n placeholder: 'lastname',\n});\n\nexport const password = (className?: string): FieldInterface => ({\n className,\n name: 'password',\n label: 'password',\n placeholder: 'password',\n type: 'password',\n icon: 'login-keys',\n});\n\nexport const newPassword = (className?: string): FieldInterface => ({\n ...password(className),\n name: 'password',\n label: 'newPassword',\n placeholder: 'newPassword',\n});\n\nexport const confirmPassword = (className?: string): FieldInterface => ({\n ...password(className),\n name: 'confirmPassword',\n label: 'confirmPassword',\n placeholder: 'confirmPassword',\n});\n\nexport const username = (className?: string): FieldInterface => ({\n className,\n name: 'username',\n label: 'email',\n placeholder: 'email',\n type: 'email',\n});\n\nexport const messageHeader = (className?: string): FieldInterface => ({\n className,\n name: 'messageHeader',\n label: 'messageHeader',\n placeholder: 'messageHeader',\n});\n\nexport const messageBody = (className?: string): FieldInterface => ({\n className,\n name: 'messageBody',\n label: 'messageBody',\n placeholder: 'messageBody',\n type: 'textarea',\n});\n","import React from 'react';\nimport { Form } from './Form';\nimport { messageBody, messageHeader } from './Field';\nimport { Contact as ContactAction } from '../../actions';\nimport { Username } from '../../helpers';\n\nexport const Contact: React.FC = () => {\n return (\n => {\n return new ContactAction().send({\n data: { ...data, email: new Username().get() },\n });\n }}\n successMessage=\"contact\"\n />\n );\n};\n","import React, { useEffect, useState } from 'react';\nimport {\n Currency as CurrencyProvider,\n Preference as PreferenceProvider,\n} from '../../actions';\nimport { OptionInterface, SelectFilter } from '../Filters';\nimport { Currency as CurrencyHelper, Preference } from '../../helpers';\nimport { CurrencyInterface, PreferenceInterface } from '../../interfaces';\n\nexport const Currency: React.FC = () => {\n const currencyHelper = new CurrencyHelper();\n const [currencies, setCurrencies] =\n useState<(OptionInterface & CurrencyInterface)[]>();\n const [currency, setCurrency] = useState(\n currencyHelper.getDecoded()\n ? currencyHelper.getDecoded()\n : { label: 'EUR €', value: 'eur' }\n );\n const updateCurrency = (currency: OptionInterface): void => {\n const label = currency.label.split(' ');\n currency = {\n ...currency,\n label: label.length > 1 ? label[1] : label[0],\n };\n setCurrency(currency);\n currencyHelper.setDecoded(currency as CurrencyInterface);\n new PreferenceProvider().update({\n data: {\n currency: (currency as CurrencyInterface)['@id'],\n },\n id: (new Preference().getDecoded() as PreferenceInterface)['@id'],\n });\n };\n useEffect(() => {\n new CurrencyProvider().get().then((values) =>\n setCurrencies(\n values.map(\n (value) =>\n ({\n ...(value as CurrencyInterface),\n label: `${(value.value as string).toUpperCase()} ${value.label}`,\n value: value.value,\n } as OptionInterface & CurrencyInterface)\n )\n )\n );\n }, []);\n\n return (\n \n );\n};\n","import React, { useContext } from 'react';\nimport { OptionInterface, SelectFilter } from '../Filters';\nimport { Language as LanguageLS, Preference } from '../../helpers';\nimport { LanguageContext } from '../../contexts';\nimport { Preference as PreferenceProvider } from '../../actions';\nimport { PreferenceInterface } from '../../interfaces';\n\nexport const Language: React.FC = () => {\n const { languages, selectedLanguage, setSelectedLanguage } =\n useContext(LanguageContext);\n const updateLanguage = (option: OptionInterface): void => {\n setSelectedLanguage(option);\n new LanguageLS().set(option.value as string);\n new PreferenceProvider().update({\n data: {\n language: option.value,\n },\n id: (new Preference().getDecoded() as PreferenceInterface)['@id'],\n });\n };\n\n return (\n \n );\n};\n","import React, { MutableRefObject, SyntheticEvent, useContext } from 'react';\nimport { Form, jsonToFormData } from './Form';\nimport { password, username } from './Field';\nimport { User } from '../../actions';\nimport {\n BaseStoreContext,\n SET_ITEM_FILTERS_SELECTED,\n SET_OPEN_FILTERS,\n UserContext,\n LanguageContext,\n INIT_ANALYSIS_MATERIALS,\n INIT_MOVEMENT_MATERIALS,\n} from '../../contexts';\nimport { useHistory } from 'react-router';\nimport { Language } from '../../helpers';\n\nexport const Login: React.FC = () => {\n const { goBack } = useHistory();\n const { dispatch } = useContext(UserContext);\n const { languages, selectedLanguage, setSelectedLanguage } =\n useContext(LanguageContext);\n const baseStore = useContext(BaseStoreContext);\n\n return (\n ,\n ref: MutableRefObject<{ reset: () => void }>\n ): Promise => {\n baseStore.dispatch({\n payload: {\n organization: [],\n plant: [],\n contract: [],\n },\n type: SET_ITEM_FILTERS_SELECTED,\n });\n baseStore.dispatch({\n payload: [],\n type: INIT_ANALYSIS_MATERIALS,\n });\n baseStore.dispatch({\n payload: [],\n type: INIT_MOVEMENT_MATERIALS,\n });\n baseStore.dispatch({\n type: SET_OPEN_FILTERS,\n payload: false,\n });\n\n return new User()\n .login({\n data: jsonToFormData(data),\n ref,\n updateClient: dispatch,\n })\n .then(() => {\n const userLanguage = new Language().get();\n const lang = languages.find(({ value }) => value === userLanguage);\n if (selectedLanguage.value !== userLanguage && lang) {\n setSelectedLanguage(lang);\n }\n goBack();\n });\n }}\n withRecaptcha\n />\n );\n};\n","import React, { useContext } from 'react';\nimport { SzTypographie } from 'react-theme-components';\nimport './passwordValidationBlock.scss';\nimport { LanguageContext } from '../../../contexts';\n\nconst requirements: string[] = ['length', 'upper', 'lower', 'digit', 'special'];\n\nexport const PasswordValidationBlock: React.FC = () => {\n const { translate } = useContext(LanguageContext);\n const t = (value: string): string =>\n translate(`forms.password.conditions.${value}`);\n return (\n
\n
\n \n {t('title')}\n \n \n {requirements.map((requirement, index) => (\n

\n {t(`contains.${requirement}`)}\n

\n ))}\n
\n
\n
\n );\n};\n","import React, { MutableRefObject, useContext, useState } from 'react';\nimport { User } from '../../../actions';\nimport { confirmPassword, newPassword } from '../Field';\nimport { Form } from '../Form';\nimport { useRouteMatch, useLocation } from 'react-router';\nimport { LanguageContext } from '../../../contexts';\nimport { validatePassword } from './PasswordValidator';\nimport { PasswordValidationBlock } from './PasswordValidationBlock';\n\nexport const ResetPasswordApplyForm: React.FC = () => {\n const { translate } = useContext(LanguageContext);\n const { search } = useLocation();\n const { params } = useRouteMatch<{ token: string }>();\n const fields = [newPassword(), confirmPassword()];\n const [hasError, setHasError] = useState(false);\n return (\n <>\n {hasError && (\n
\n {translate(`forms.changePassword.invalid`)}\n
\n )}\n {\n const isValidated = validatePassword(ref, fields);\n setHasError(!isValidated);\n return isValidated;\n }}\n submitForm={(\n data: any, // eslint-disable-line\n ref: MutableRefObject<{ reset: () => void }>\n ): Promise => {\n return new User().resetPasswordApply({\n data: {\n ...data,\n email: new URLSearchParams(search).get('username'),\n token: params.token,\n },\n ref,\n });\n }}\n successMessage=\"resetPasswordApply\"\n />\n \n \n );\n};\n","import { MutableRefObject } from 'react';\nimport { FieldInterface } from '../Field';\n\nexport const validatePassword = (\n ref: MutableRefObject,\n fields: FieldInterface[]\n): boolean => {\n if (ref.current[fields[0].name].value !== ref.current[fields[1].name].value) {\n return false;\n }\n\n const strongRegex = new RegExp(\n '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*])(?=.{8,})'\n );\n if (!ref.current[fields[0].name].value.match(strongRegex)) {\n return false;\n }\n\n return true;\n};\n","import React, { MutableRefObject, useContext } from 'react';\nimport { SzIcon, SzTypographie } from 'react-theme-components';\nimport { Form } from '../Form';\nimport { User } from '../../../actions';\nimport { email } from '../Field';\nimport { LanguageContext, UserContext } from '../../../contexts';\n\nexport const ResetPasswordRequestForm: React.FC = () => (\n void }>\n ): Promise => {\n return new User().resetPasswordRequest({ data, ref });\n }}\n successMessage=\"resetPasswordRequest\"\n withRecaptcha\n />\n);\n\nexport const ResetPasswordForCurrentUserRequestForm: React.FC = () => {\n const { username } = useContext(UserContext);\n const { translate } = useContext(LanguageContext);\n\n return (\n \n \n \n {translate('forms.password.reset.label')}\n \n \n }\n fields={[]}\n keepButton={true}\n submitForm={(\n data: FormData,\n ref: MutableRefObject<{ reset: () => void }>\n ): Promise => {\n data['email'] = username ?? '';\n return new User().resetPasswordRequest({ data, ref });\n }}\n successMessage=\"password.reset\"\n withRecaptcha\n />\n );\n};\n","import React, { useContext } from 'react';\nimport { Layout } from '../components/Layout';\nimport { Contact as ContactForm } from '../components/Form';\nimport { SzTypographie } from 'react-theme-components';\nimport { LanguageContext } from '../contexts';\nimport { useLogged } from '../hooks';\nimport { ComponentWithTitle } from '../components/Common';\n\nexport const Contact: React.FC = () => {\n useLogged();\n const { translate } = useContext(LanguageContext);\n return (\n \n \n
\n \n {translate('pages.contact.description')}\n \n \n
\n
\n
\n );\n};\n","import React, { useContext } from 'react';\nimport { ComponentWithTitle } from '../../components/Common';\nimport { SzTypographie } from 'react-theme-components';\nimport { useNotLogged } from '../../hooks';\nimport { LanguageContext } from '../../contexts';\nimport { LayoutBase } from '../../components/Layout';\n\ninterface CommonResetPasswordInterface {\n title: string;\n}\n\nexport const CommonResetPassword: React.FC = ({\n children,\n title,\n}) => {\n useNotLogged();\n const { translate } = useContext(LanguageContext);\n return (\n \n
\n
\n \n
\n \n {translate(`pages.${title}.description`)}\n \n {children}\n
\n
\n
\n
\n
\n );\n};\n","import React, { useContext } from 'react';\nimport { Layout } from '../../components/Layout';\nimport { ComponentWithTitle } from '../../components/Common';\nimport { Tile } from '../../components/Tile';\nimport {\n Currency,\n Language,\n ResetPasswordForCurrentUserRequestForm,\n} from '../../components/Form';\nimport { Company, Organization, sprintf, Username } from '../../helpers';\nimport { LanguageContext } from '../../contexts';\nimport { CompanyInstance, OrganizationInstance } from '../../interfaces/model';\nimport { ClassNameInterface } from '../../interfaces';\nimport { useLogged } from '../../hooks';\n\ninterface AccountItemsInnerInterface {\n company: CompanyInstance;\n organization: OrganizationInstance;\n translate: (value: string) => string;\n}\n\ninterface AccountItemsOuterInterface {\n children: JSX.Element;\n title: string;\n}\n\nconst accountItems = ({\n company,\n organization,\n translate,\n}: AccountItemsInnerInterface): AccountItemsOuterInterface[] => [\n {\n children: (\n <>\n
    \n
  • \n mail\n \n {' '}\n {translate('pages.account.email')}: {new Username().get()}\n \n
  • \n {company && (\n
  • \n business\n \n {' '}\n {sprintf(translate(`filters.bar.plant`), [company.name])}\n \n
  • \n )}\n {organization && (\n
  • \n business\n \n {' '}\n {sprintf(translate(`filters.bar.organization`), [\n organization.name,\n ])}\n \n
  • \n )}\n
\n \n \n ),\n title: 'pages.account.informations',\n },\n {\n children: ,\n title: 'pages.account.language',\n },\n {\n children: ,\n title: 'pages.account.currency',\n },\n];\n\nconst AccountItem: React.FC = ({\n children,\n className,\n title,\n}) => {\n const { translate } = useContext(LanguageContext);\n return (\n \n

{translate(title)}

\n {children}\n
\n );\n};\n\nexport const Account: React.FC = () => {\n const { translate } = useContext(LanguageContext);\n const company = new Company().getDecoded();\n const organization = new Organization().getDecoded();\n useLogged();\n return (\n \n \n
\n {accountItems({ company, organization, translate }).map(\n (item, index) => (\n 0 && 'mt-3'}`}\n {...item}\n key={index}\n />\n )\n )}\n
\n \n
\n );\n};\n","import React, { useContext } from 'react';\nimport { Layout } from '../components/Layout';\nimport { ComponentWithTitle } from '../components/Common';\nimport { KPI } from '../components/Chart/Analysis';\nimport { useLogged } from '../hooks';\nimport { LanguageContext, UserContext } from '../contexts';\nimport { Tile } from '../components/Tile';\nimport { TypeSelectorProvider } from '../components/TypeSelector';\n\nexport const Welcome: React.FC = () => {\n useLogged();\n const { translate } = useContext(LanguageContext);\n const { isLogged } = useContext(UserContext);\n return (\n \n \n
\n
\n \n \n {translate('pages.welcome.overview.description')}\n \n \n
\n {isLogged ? (\n
\n \n \n \n
\n ) : null}\n
\n
\n
\n );\n};\n","import React, { useState, useEffect, useContext } from 'react';\nimport { LanguageContext } from '../../contexts';\n\n/**\n * We use react-table lib because the native Suez Design System\n * Component (SDS) does not provide the functionalities we want\n * The react-table lib is cool, but with TYPESCRIPT, we have\n * a lot of problem, so we use JS files\n */\nfunction TableColumnFilter({\n // eslint-disable-next-line react/prop-types\n column: { setFilter },\n}) {\n const { translate } = useContext(LanguageContext);\n const [value, setValue] = useState('');\n\n useEffect(() => {\n const timer = setTimeout(() => setFilter(value), 1000);\n return () => clearTimeout(timer);\n }, [value]);\n\n return (\n <>\n {\n setValue(e.target.value || undefined);\n }}\n />\n \n );\n}\n\nexport default TableColumnFilter;\n","import React, { useContext } from 'react';\n// import { useTranslation } from 'react-i18next'\nimport { LanguageContext } from '../../contexts';\n\n/* eslint-disable react/prop-types */\n/* eslint-disable no-shadow */\n/**\n * We use react-table lib because the native Suez Design System\n * Component (SDS) does not provide the functionalities we want\n * The react-table lib is cool, but with TYPESCRIPT, we have\n * a lot of problem, so we use JS files\n */\nfunction TablePagination({\n pageIndex,\n pageCount,\n pageSize,\n pageOptions,\n canPreviousPage,\n canNextPage,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n}) {\n const { translate } = useContext(LanguageContext);\n return (\n
\n
\n gotoPage(0)}\n disabled={!canPreviousPage}\n >\n {'<<'}\n {' '}\n previousPage()}\n disabled={!canPreviousPage}\n >\n {'<'}\n {' '}\n \n {pageIndex + 1} {pageCount ? `/ ${pageCount}` : ''}\n \n nextPage()}\n disabled={!canNextPage}\n >\n {'>'}\n {' '}\n gotoPage(pageCount - 1)}\n disabled={!canNextPage}\n >\n {'>>'}\n {' '}\n
\n
\n

{translate('table.label.linesPerPage')}

\n
\n
\n {\n setPageSize(Number(e.target.value));\n }}\n >\n {[10, 20, 30, 40, 50].map((pageSize) => (\n \n ))}\n \n
\n
\n );\n}\n\nexport default TablePagination;\n","/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable no-return-assign */\n/* eslint-disable react/jsx-key */\n/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable no-nested-ternary */\n/* eslint-disable no-use-before-define */\n/* eslint-disable react/display-name */\n/* eslint-disable react/prop-types */\n/* eslint-disable no-shadow */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { useMemo, useEffect, useCallback, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n useTable,\n useSortBy,\n useFilters,\n useRowSelect,\n usePagination,\n actions,\n} from 'react-table';\nimport { Spinner } from 'react-bootstrap';\n\nimport TableColumnFilter from './TableColumnFilter';\nimport TablePagination from './TablePagination';\nimport { SzIcon } from 'react-theme-components';\nimport './_table.scss';\nimport './_table-pagination.scss';\n\n/**\n * We use react-table lib because the native Suez Design System\n * Component (SDS) does not provide the functionalities we want\n * The react-table lib is cool, but with TYPESCRIPT, we have\n * a lot of problem, so we use JS files\n */\nfunction Table({\n type,\n columns,\n data,\n disabledList = [],\n disabledColumnActionsList = [],\n paginationDisplayed = true,\n // These are wrong\n checkedList = [],\n onSelectedItemChanged = (id) => {},\n onCheckAll = (itemIds) => {},\n // Use this instead:\n onSelectionChange = null,\n onPageChange = (page) => {},\n pageCount = 0,\n headerVisible = true,\n resultPerPage = `${process.env.REACT_APP_TABLE_DEFAULT_RESULT_PER_PAGE}`,\n onSortTableChange = (order) => {},\n initialFilters = [],\n onFiltersChange = (filters) => {},\n nbPerPage = 10,\n onNbPerPageChange = (pageSize) => {},\n isLoading = true,\n isInternalPagination = false,\n initialSortBy = [],\n resetOrgaInsti = false,\n forceReset = false,\n currentPage = 0,\n manualPagination = true,\n autoResetPage = true,\n embeddedFilter = false,\n autoResetSort = true,\n}) {\n const defaultColumn = useMemo(\n () => ({\n Filter: TableColumnFilter,\n }),\n []\n );\n\n function checkedArrayToObject(checkedArray) {\n return checkedArray.reduce((acc, curr) => {\n acc[curr] = true;\n return acc;\n }, {});\n }\n\n let useSwitchStateManagement = (state) => ({ ...state });\n if (!onSelectionChange) {\n // TODO remove this and improve checkbox selection everywhere using the state selectedRowIds instead...\n const useStateMemo = (state) => {\n return useMemo(\n () => ({\n ...state,\n selectedRowIds: { ...checkedArrayToObject(checkedList) },\n }),\n [checkedList]\n );\n };\n // TODO remove this and improve checkbox selection everywhere using the state selectedRowIds instead...\n useSwitchStateManagement = (state) => {\n const memoValue = useStateMemo(state);\n return paginationDisplayed\n ? {\n ...state,\n selectedRowIds: { ...checkedArrayToObject(checkedList) },\n }\n : memoValue;\n };\n }\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n prepareRow,\n page,\n canPreviousPage,\n canNextPage,\n pageOptions,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n allColumns,\n setAllFilters,\n dispatch,\n rows,\n state: { pageIndex, pageSize, sortBy, filters, selectedRowIds },\n } = useTable(\n {\n columns,\n defaultColumn,\n data,\n autoResetSelectedRows: forceReset,\n manualPagination,\n manualSortBy: !embeddedFilter,\n pageCount,\n autoResetPage,\n autoResetFilters: false,\n autoResetSortBy: autoResetSort,\n defaultFilters: embeddedFilter,\n manualFilters: !embeddedFilter,\n getRowId: useCallback((row) => row.id, []),\n useControlledState: (state) => useSwitchStateManagement(state),\n initialState: {\n filters: initialFilters,\n pageSize: nbPerPage,\n sortBy: initialSortBy,\n pageIndex: currentPage,\n },\n },\n useFilters,\n useSortBy,\n usePagination,\n useRowSelect,\n (hooks) => {\n hooks.visibleColumns.push((columnsData) => [\n {\n id: 'selection',\n Header: ({ getToggleAllRowsSelectedProps }) => (\n
\n {onSelectionChange ? (\n \n ) : (\n onCheckAll(page.map(({ id }) => id))}\n />\n )}\n
\n ),\n Cell: ({ row }) => (\n
\n {onSelectionChange ? (\n \n ) : (\n onSelectedItemChanged(row.id)}\n />\n )}\n
\n ),\n },\n ...columnsData,\n ]);\n }\n );\n\n useEffect(() => {\n if (!isInternalPagination) {\n dispatch({ type: 'resetSelectedRows' });\n dispatch({ type: 'resetSortBy' });\n setAllFilters(initialFilters);\n onPageChange(1);\n }\n }, [columns]);\n\n useEffect(() => {\n dispatch({ type: actions.resetPage });\n }, [resetOrgaInsti]);\n\n useEffect(() => {\n if (manualPagination) onPageChange(pageIndex + 1);\n else onPageChange(pageIndex);\n }, [pageIndex]);\n\n useEffect(() => {\n onNbPerPageChange(pageSize);\n }, [pageSize]);\n\n useEffect(() => {\n if (embeddedFilter) onPageChange(0);\n onFiltersChange(filters);\n }, [filters]);\n\n useEffect(() => {\n if (onSelectionChange) onSelectionChange(selectedRowIds);\n }, [selectedRowIds]);\n\n useEffect(() => {\n if (sortBy.length === 0) {\n return;\n }\n\n const sorted = {};\n\n allColumns.forEach((column) => {\n const index = sortBy.findIndex((sorted) => sorted.id === column.id);\n if (index !== -1) {\n sorted[column.Header] = sortBy[index].desc ? 'desc' : 'asc';\n }\n });\n onSortTableChange(sorted);\n if (embeddedFilter) onPageChange(0);\n }, [sortBy]);\n\n return (\n
\n \n \n\n \n {page.map((row) => {\n prepareRow(row);\n return (\n \n {row.cells.map((cell) => {\n return (\n \n );\n })}\n \n );\n })}\n \n
{cell.render('Cell')}
\n {paginationDisplayed ? (\n \n ) : null}\n
\n );\n}\n\nfunction TableHeader({\n toDisplay,\n headerGroups,\n disabledColumnActionsList,\n isLoading,\n}) {\n if (toDisplay === false) {\n return null;\n }\n\n const foundDisabled = (index) => {\n const colName = headerGroups?.[0]?.headers?.[index]?.Header;\n return disabledColumnActionsList.includes(colName);\n };\n\n return (\n \n {headerGroups.map((headerGroup) => (\n \n {headerGroup.headers.map((column, index) => (\n \n \n
\n {index === 0 && isLoading ? (\n \n ) : (\n column.render('Header')\n )}\n\n {!foundDisabled(index) ? (\n <>\n {/* SORT UI */}\n \n {column.isSorted ? (\n column.isSortedDesc ? (\n \n ) : (\n \n )\n ) : (\n \n )}\n \n \n ) : null}\n\n {index < headerGroup.headers.length - 1 &&\n column.Header !== '' ? (\n  \n ) : (\n ''\n )}\n
\n\n
\n {!foundDisabled(index) && column.canFilter ? (\n <>\n {/* FILTER UI */}\n {column.render('Filter')}\n \n ) : null}\n
\n
{' '}\n {/* end table header container */}\n \n ))}\n \n ))}\n \n );\n}\n\nconst IndeterminateCheckbox = React.forwardRef(\n ({ indeterminate, type, isHeader, ...rest }, ref) => {\n const defaultRef = useRef();\n const resolvedRef = ref || defaultRef;\n\n useEffect(() => {\n resolvedRef.current.indeterminate = indeterminate;\n }, [resolvedRef, indeterminate]);\n\n if (type === 'radio')\n return (\n
\n \n
\n \n
\n
\n );\n if (type === 'hidden')\n return (\n \n );\n if (type === 'checkbox' && isHeader)\n return (\n \n );\n return (\n
\n \n
\n \n \n
\n
\n );\n }\n);\n\nTable.propTypes = {\n columns: PropTypes.arrayOf(PropTypes.object),\n data: PropTypes.arrayOf(PropTypes.object),\n type: PropTypes.string,\n onSelectedItemChanged: PropTypes.func,\n initialFilters: PropTypes.arrayOf(PropTypes.object),\n pageCount: PropTypes.number,\n};\n\nTable.defaultProps = {\n columns: [],\n data: [],\n type: 'checkbox',\n onSelectedItemChanged: () => {\n // empty just for the compilation\n },\n pageCount: 0,\n initialFilters: [],\n};\n\nexport default Table;\n","import React from 'react';\nimport './chip.scss';\n\nexport const Chip: React.FC = ({ key, label }) => (\n
\n
{label}
\n
\n);\n","import React from 'react';\nimport { Chip } from '../../components/Chip/Chip';\n\nexport const Materials: React.FC = ({ demand }) => (\n
\n {demand.materials?.map((m, i) => {\n return ;\n })}\n
\n);\n","/* eslint-disable @typescript-eslint/no-use-before-define */\nimport React, { useContext, useState, useEffect } from 'react';\nimport { Layout } from '../../components/Layout';\nimport { ComponentWithTitle } from '../../components/Common';\nimport { useLogged } from '../../hooks';\nimport { BaseStoreContext, LanguageContext } from '../../contexts';\nimport Table from '../../components/TableContainer/Table';\nimport {\n SzAlert,\n SzButton,\n SzDatePicker,\n SzModal,\n SzSelect,\n} from 'react-theme-components';\nimport TimePicker from 'rc-time-picker';\nimport {\n ContainerDemand,\n ContainerDemandStatus,\n} from '../../interfaces/providers';\nimport { UserId } from '../../helpers';\nimport { ContainerDemandStatusInstance } from '../../interfaces';\nimport './Demand.scss';\n\nimport 'rc-time-picker/assets/index.css';\nimport moment from 'moment';\nimport { User } from '../../actions';\nimport { Materials } from './Materials';\n\nexport const STATUS = {\n InProgress: 'In Progress',\n Planned: 'Planned',\n NewDate: 'New Date',\n Closed: 'Closed',\n Canceled: 'Canceled',\n NoReturn: 'No Return',\n};\nexport const INPROGRESS_STATUS = [\n STATUS.InProgress,\n STATUS.Planned,\n STATUS.NewDate,\n];\nexport const CLOSED_STATUS = [STATUS.Closed, STATUS.Canceled, STATUS.NoReturn];\n\nexport const DemandsInternal: React.FC = () => {\n useLogged();\n const { itemFiltersSelected } = useContext(BaseStoreContext);\n const { translate } = useContext(LanguageContext);\n\n const [inProgressTableData, setInprogressTableData] = useState([]);\n const [closedTableData, setClosedTableData] = useState([]);\n const [pageInprogress, setPageInprogress] = useState(1);\n const [pageClosed, setPageClosed] = useState(1);\n const [pgCountClosed, setPgCountClosed] = useState(1);\n const [pgCountInprogress, setPgCountInprogress] = useState(1);\n const [perPageClosed, setPerPageClosed] = useState(10);\n const [perPageInprogress, setPerPageInprogress] = useState(10);\n const [inprogressStatusList, setInprogressStatusList] = useState([]);\n const [closedStatusList, setClosedStatusList] = useState([]);\n const [isClosedTableLoading, setIsClosedTableLoading] = useState(false);\n const [isInprogressTableLoading, setIsInprogressTableLoading] =\n useState(false);\n const [StatusList, setStatusList] = useState([]);\n const [bookingDate, setBookingDate] = useState(new Date());\n const [bookingTime, setBookingTime] = useState(new Date());\n const [selectedDemand, setSelectedDemand] = useState();\n const [successUpdate, setSucessUpdate] = useState(false);\n const [failureUpdate, setFailureUpadate] = useState(false);\n const [successMessage, setSuccessMessage] = useState('');\n const [show, setShow] = useState(false);\n const [failureMessage, setFailureMessage] = useState('');\n const [inprogressFilters, setInprogressFilters] = useState([]);\n const [closedFilters, setClosedFilters] = useState([]);\n const [sortInprogressTable, setSortInprogressTable] = useState([]);\n const [sortClosedTable, setSortClosedTable] = useState([]);\n\n function StatutInprogressDemandFilter({ column }: { column: any }) {\n const filterList = [\n { value: '', label: translate(`pages.demands.status.all`) },\n ...inprogressStatusList,\n ];\n const { filterValue = filterList[0], setFilter } = column;\n return (\n {\n setFilter(value);\n }}\n />\n );\n }\n function StatutClosedDemandFilter({ column }: { column: any }) {\n const filterList = [\n { value: '', label: translate(`pages.demands.status.all`) },\n ...closedStatusList,\n ];\n const { filterValue = filterList[0], setFilter } = column;\n return (\n {\n setFilter(value);\n }}\n />\n );\n }\n\n const TABLE_COLUMN = [\n {\n Header: translate('table.header.idDemand'),\n accessor: 'id',\n disableFilters: true,\n disableSortBy: true,\n },\n {\n Header: translate('table.header.client'),\n accessor: 'companyName',\n disableFilters: true,\n disableSortBy: true,\n },\n {\n Header: translate('table.header.container'),\n accessor: 'containerName',\n disableFilters: true,\n disableSortBy: true,\n },\n {\n Header: translate('table.header.materials'),\n accessor: 'materials',\n disableFilters: true,\n disableSortBy: true,\n },\n {\n Header: translate('table.header.date'),\n accessor: 'bookingDate',\n disableFilters: true,\n },\n ];\n\n const INPROGRESS_TABLE_CULUMN = [\n ...TABLE_COLUMN,\n {\n Header: translate('table.header.status'),\n accessor: 'status',\n Filter: StatutInprogressDemandFilter,\n disableSortBy: true,\n },\n {\n Header: translate('table.header.Actions'),\n accessor: 'controlButtons',\n disableFilters: true,\n disableSortBy: true,\n },\n ];\n\n const CLOSED_TABLE_COLUMN = [\n ...TABLE_COLUMN,\n {\n Header: translate('table.header.status'),\n accessor: 'status',\n Filter: StatutClosedDemandFilter,\n disableSortBy: true,\n },\n ];\n\n const initialSortBy = [\n {\n id: 'bookingDate',\n desc: true,\n },\n ];\n\n const formatedTableData = (demands: any[]) => {\n return demands.map((demand: any) => {\n return {\n id: demand.idDemand,\n companyName: (\n
{demand.company?.name}
\n ),\n containerName: (\n
{demand.container.name}
\n ),\n materials: ,\n bookingDate: (\n
\n
\n {demand.bookingDate\n ? `${new Date(demand.bookingDate).toLocaleDateString(\n navigator.language\n )}\n ${new Date(demand.bookingDate)\n .toISOString()\n .substring(11, 19)}`\n : ''}\n {' '}\n {!(\n demand.status.name === STATUS.Closed ||\n demand.status.name === STATUS.Canceled ||\n demand.status.name === STATUS.NoReturn\n ) && (\n {\n setShow(true);\n setBookingDate(new Date(demand.bookingDate));\n setBookingTime(\n moment(demand.bookingDate).utc().format('HH:mm:ss')\n );\n setSelectedDemand(demand);\n }}\n >\n )}\n
\n
\n ),\n status: (\n
\n {demand.status\n ? translate(`pages.demands.status.${demand.status.name}`)\n : ''}\n
\n ),\n controlButtons: getStatus(demand, demand.status),\n };\n });\n };\n\n async function loadDataInprogress() {\n setIsInprogressTableLoading(true);\n const statusFilter = inprogressFilters.find((f) => f.id === 'status');\n const statusFilterValue =\n statusFilter && statusFilter?.value.value !== ''\n ? [statusFilter?.value]\n : inprogressStatusList.map((s) => s.value);\n\n await new ContainerDemand({\n filters: {\n perPage: perPageInprogress,\n page: pageInprogress,\n idOrganizations: itemFiltersSelected.organization,\n idCompanies: itemFiltersSelected.plant,\n internalOperator: new UserId().get(),\n idStatus: statusFilterValue,\n orderByDate: sortInprogressTable['Date'],\n },\n })\n .getList()\n .then(({ data, total }) => {\n setInprogressTableData(data);\n setPgCountInprogress(Math.ceil(total / perPageInprogress));\n setIsInprogressTableLoading(false);\n })\n .catch((e) => {\n console.error(e);\n setIsInprogressTableLoading(false);\n });\n }\n\n async function loadDataClosed() {\n setIsClosedTableLoading(true);\n const statusFilter = closedFilters.find((f) => f.id === 'status');\n const statusFilterValue =\n statusFilter && statusFilter?.value.value != ''\n ? [statusFilter?.value]\n : closedStatusList.map((s) => s.value);\n\n await new ContainerDemand({\n filters: {\n perPage: perPageClosed,\n page: pageClosed,\n idOrganizations: itemFiltersSelected.organization,\n idCompanies: itemFiltersSelected.plant,\n internalOperator: new UserId().get(),\n idStatus: statusFilterValue,\n orderByDate: sortClosedTable['Date'],\n },\n })\n .getList()\n .then(({ data, total }) => {\n setClosedTableData(data);\n setPgCountClosed(Math.ceil(total / perPageClosed));\n setIsClosedTableLoading(false);\n })\n .catch((e) => {\n console.error(e);\n setIsClosedTableLoading(false);\n });\n }\n\n // Handle of change booking date and status\n const handleUpdateDemand = async (\n demand: any,\n statusLabel: string,\n booking?: boolean\n ) => {\n setIsInprogressTableLoading(true);\n const formatedBookingDate = `${moment(bookingDate).format(\n 'YYYY-MM-DD'\n )} ${bookingTime}`;\n if (moment(formatedBookingDate) < moment()) {\n setFailureUpadate(true);\n setFailureMessage(translate(`forms.externalDemand.invalidBookingDate`));\n new Promise((resolve) => setTimeout(resolve, 5000)).then((r) => {\n setFailureUpadate(false);\n });\n setIsInprogressTableLoading(false);\n return;\n }\n const idStatus = StatusList.find((s) => s.name === statusLabel)?.id;\n\n const data = {\n id: demand.id,\n idDemandStatus: idStatus,\n internalOperator: new UserId().get(),\n };\n if (booking) {\n data['bookingDate'] = formatedBookingDate;\n }\n await new ContainerDemand()\n .update({\n data,\n })\n .then(() => {\n new User().sendDemandMail({\n data: {\n demandStatus: statusLabel,\n type: 'external',\n operators: demand.externalOperator,\n demand: demand.idDemand,\n },\n });\n })\n .then(() => {\n loadDataInprogress();\n if (closedStatusList.includes(idStatus)) {\n loadDataClosed();\n }\n setSucessUpdate(true);\n booking\n ? setSuccessMessage(\n translate('forms.internalDemand.successUpdateBookingDate')\n )\n : setSuccessMessage(\n translate('forms.internalDemand.successUpdateStatus')\n );\n new Promise((resolve) => setTimeout(resolve, 5000)).then((r) => {\n setSucessUpdate(false);\n });\n })\n .catch((e) => {\n setFailureUpadate(true);\n new Promise((resolve) => setTimeout(resolve, 5000)).then((r) => {\n setFailureUpadate(false);\n });\n setIsInprogressTableLoading(false);\n console.error(e);\n });\n };\n\n const getStatus = (demand: any, status: ContainerDemandStatusInstance) => {\n if (status.name === STATUS.InProgress) {\n return (\n
\n {\n return handleUpdateDemand(demand, STATUS.Planned);\n }}\n >\n check\n \n {\n return handleUpdateDemand(demand, STATUS.Canceled);\n }}\n >\n close\n \n
\n );\n } else if (\n status.name === STATUS.NewDate ||\n status.name === STATUS.Planned\n ) {\n return (\n
\n \n {\n return handleUpdateDemand(demand, STATUS.Canceled);\n }}\n >\n close\n \n
\n );\n } else {\n return (\n
\n \n \n
\n );\n }\n };\n\n // Handler of table filters\n const handleInprogressFiltersChange = (filter: any[]) => {\n if (JSON.stringify(filter) !== JSON.stringify(inprogressFilters)) {\n setPageInprogress(1);\n setInprogressFilters(filter);\n }\n };\n const handleClosedFiltersChange = (filter: any[]) => {\n if (JSON.stringify(filter) !== JSON.stringify(closedFilters)) {\n setPageClosed(1);\n setClosedFilters(filter);\n }\n };\n\n useEffect(() => {\n async function loadStatus() {\n await new ContainerDemandStatus()\n .getList()\n .then(({ data }) => {\n const inprogressStatus: any[] = [];\n const closedStatus: any[] = [];\n\n data.map((status) => {\n if (INPROGRESS_STATUS.includes(status.name))\n inprogressStatus.push({\n value: status.id,\n label: translate(`pages.demands.status.${status.name}`),\n });\n else if (CLOSED_STATUS.includes(status.name))\n closedStatus.push({\n value: status.id,\n label: translate(`pages.demands.status.${status.name}`),\n });\n });\n setStatusList(data);\n setInprogressStatusList(inprogressStatus);\n setClosedStatusList(closedStatus);\n })\n .catch((e) => {\n console.error(e);\n });\n }\n\n try {\n setIsInprogressTableLoading(true);\n setIsClosedTableLoading(true);\n loadStatus();\n } catch (error) {\n console.error(error);\n }\n }, []);\n\n useEffect(() => {\n if (inprogressStatusList.length > 0) {\n loadDataInprogress();\n }\n }, [\n pageInprogress,\n perPageInprogress,\n inprogressStatusList,\n inprogressFilters,\n sortInprogressTable,\n itemFiltersSelected,\n ]);\n\n useEffect(() => {\n if (closedStatusList.length > 0) {\n loadDataClosed();\n }\n }, [\n pageClosed,\n perPageClosed,\n closedStatusList,\n closedFilters,\n sortClosedTable,\n itemFiltersSelected,\n ]);\n\n return (\n <>\n \n \n
\n {successUpdate && (\n
\n \n {successMessage}\n \n
\n )}\n {failureUpdate && (\n
\n \n {failureMessage}\n \n
\n )}\n \n
\n
\n \n
\n \n
\n
\n
\n {\n setShow(false);\n }}\n size={'lg'}\n >\n
\n {translate(`pages.demands.chooseDate`)}\n
\n
\n
\n setBookingDate(v),\n classNameStartDate: 'col-12',\n startDate: bookingDate,\n }}\n />\n
\n
\n setBookingTime(value.format('HH:mm:ss'))}\n placeholder={translate(`pages.demands.chooseTime`)}\n popupClassName={'rc-time-picker-panel-customer'}\n placement={'bottomLeft'}\n minuteStep={5}\n />\n
\n
\n
\n {\n setShow(false);\n handleUpdateDemand(selectedDemand, STATUS.NewDate, true);\n }}\n >\n {translate(`pages.demands.validate`)}\n \n
\n \n \n );\n};\n","/* eslint-disable @typescript-eslint/no-empty-function */\nimport React, { useContext, useState, useEffect } from 'react';\nimport { useHistory, useLocation } from 'react-router';\nimport { Layout } from '../../components/Layout';\nimport { ComponentWithTitle } from '../../components/Common';\nimport { useLogged } from '../../hooks';\nimport { BaseStoreContext, LanguageContext } from '../../contexts';\nimport Table from '../../components/TableContainer/Table';\nimport {\n ContainerDemand,\n ContainerDemandStatus,\n} from '../../interfaces/providers';\nimport { UserId } from '../../helpers';\nimport { ContainerDemandStatusInstance } from '../../interfaces';\nimport './Demand.scss';\nimport { SzAlert, SzSelect } from 'react-theme-components';\nimport { CLOSED_STATUS, INPROGRESS_STATUS, STATUS } from './DemandsInternal';\nimport { User } from '../../actions/User';\nimport { Materials } from './Materials';\n\nexport const DemandsExternal: React.FC = () => {\n useLogged();\n const { itemFiltersSelected } = useContext(BaseStoreContext);\n const { translate } = useContext(LanguageContext);\n const { state } = useLocation<{ sucessCreate: boolean }>();\n const history = useHistory();\n\n const [inProgressTableData, setInprogressTableData] = useState([]);\n const [closedTableData, setClosedTableData] = useState([]);\n const [pageInprogress, setPageInprogress] = useState(1);\n const [pageClosed, setPageClosed] = useState(1);\n const [pgCountClosed, setPgCountClosed] = useState(1);\n const [pgCountInprogress, setPgCountInprogress] = useState(1);\n const [perPageClosed, setPerPageClosed] = useState(10);\n const [perPageInprogress, setPerPageInprogress] = useState(10);\n const [StatusList, setStatusList] = useState([]);\n const [inprogressStatusList, setInprogressStatusList] = useState([]);\n const [closedStatusList, setClosedStatusList] = useState([]);\n const [isClosedTableLoading, setIsClosedTableLoading] = useState(false);\n const [isInprogressTableLoading, setIsInprogressTableLoading] =\n useState(false);\n const [successUpdate, setSucessUpdate] = useState(false);\n const [failureUpdate, setFailureUpadate] = useState(false);\n const [successMessage, setSuccessMessage] = useState('');\n const [sucessCreate, setSucessCreate] = useState(false);\n const [inprogressFilters, setInprogressFilters] = useState([]);\n const [closedFilters, setClosedFilters] = useState([]);\n const [sortInprogressTable, setSortInprogressTable] = useState([]);\n const [sortClosedTable, setSortClosedTable] = useState([]);\n\n function StatutInprogressDemandFilter({ column }: { column: any }) {\n const filterList = [\n { value: '', label: translate(`pages.demands.status.all`) },\n ...inprogressStatusList,\n ];\n const { filterValue = filterList[0], setFilter } = column;\n return (\n {\n setFilter(value);\n }}\n />\n );\n }\n function StatutClosedDemandFilter({ column }: { column: any }) {\n const filterList = [\n { value: '', label: translate(`pages.demands.status.all`) },\n ...closedStatusList,\n ];\n const { filterValue = filterList[0], setFilter } = column;\n return (\n {\n setFilter(value);\n }}\n />\n );\n }\n\n const TABLE_COLUMN = [\n {\n Header: translate('table.header.idDemand'),\n accessor: 'id',\n disableFilters: true,\n disableSortBy: true,\n },\n {\n Header: translate('table.header.container'),\n accessor: 'containerName',\n disableFilters: true,\n disableSortBy: true,\n },\n {\n Header: translate('table.header.materials'),\n accessor: 'materials',\n disableFilters: true,\n disableSortBy: true,\n },\n {\n Header: translate('table.header.date'),\n accessor: 'bookingDate',\n disableFilters: true,\n },\n ];\n\n const initialSortBy = [\n {\n id: 'bookingDate',\n desc: true,\n },\n ];\n\n const INPROGRESS_TABLE_CULUMN = [\n ...TABLE_COLUMN,\n {\n Header: translate('table.header.status'),\n accessor: 'status',\n Filter: StatutInprogressDemandFilter,\n disableSortBy: true,\n },\n {\n Header: translate('table.header.Actions'),\n accessor: 'controlButtons',\n disableFilters: true,\n disableSortBy: true,\n },\n ];\n\n const CLOSED_TABLE_COLUMN = [\n ...TABLE_COLUMN,\n {\n Header: translate('table.header.status'),\n accessor: 'status',\n Filter: StatutClosedDemandFilter,\n disableSortBy: true,\n },\n ];\n\n useEffect(() => {\n if (state?.sucessCreate) {\n setSuccessMessage('forms.externalDemand.successCreateStatus');\n setSucessCreate(true);\n new Promise((resolve) => setTimeout(resolve, 5000)).then((r) => {\n setSucessCreate(false);\n });\n history.replace({\n pathname: '/demandsExternal',\n state: {},\n });\n }\n }, []);\n\n async function loadDataInprogress() {\n setIsInprogressTableLoading(true);\n const statusFilter = inprogressFilters.find((f) => f.id === 'status');\n const statusFilterValue =\n statusFilter && statusFilter?.value.value !== ''\n ? [statusFilter?.value]\n : inprogressStatusList.map((s) => s.value);\n\n await new ContainerDemand({\n filters: {\n perPage: perPageInprogress,\n page: pageInprogress,\n idOrganizations: itemFiltersSelected.organization,\n idCompanies: itemFiltersSelected.plant,\n externalOperator: new UserId().get(),\n idStatus: statusFilterValue,\n orderByDate: sortInprogressTable['Date'],\n },\n })\n .getList()\n .then(({ data, total }) => {\n setInprogressTableData(data);\n setPgCountInprogress(Math.ceil(total / perPageInprogress));\n setIsInprogressTableLoading(false);\n })\n .catch((e) => {\n console.error(e);\n setIsInprogressTableLoading(false);\n });\n }\n\n async function loadDataClosed() {\n setIsClosedTableLoading(true);\n const statusFilter = closedFilters.find((f) => f.id === 'status');\n const statusFilterValue =\n statusFilter && statusFilter?.value.value != ''\n ? [statusFilter?.value]\n : closedStatusList.map((s) => s.value);\n\n await new ContainerDemand({\n filters: {\n perPage: perPageClosed,\n page: pageClosed,\n idOrganizations: itemFiltersSelected.organization,\n idCompanies: itemFiltersSelected.plant,\n externalOperator: new UserId().get(),\n idStatus: statusFilterValue,\n orderByDate: sortClosedTable['Date'],\n },\n })\n .getList()\n .then(({ data, total }) => {\n setClosedTableData(data);\n setPgCountClosed(Math.ceil(total / perPageClosed));\n setIsClosedTableLoading(false);\n })\n .catch((e) => {\n console.error(e);\n setIsClosedTableLoading(false);\n });\n }\n\n // Handler of change status\n const handleStatusChange = async (demand: any, statusLabel: string) => {\n const idStatus = StatusList.find((s) => s.name === statusLabel).id;\n setIsInprogressTableLoading(true);\n\n await new ContainerDemand()\n .update({\n data: {\n id: demand.id,\n idDemandStatus: idStatus,\n externalOperator: new UserId().get(),\n },\n })\n .then(({ data }) => {\n new User().sendDemandMail({\n data: {\n demandStatus: statusLabel,\n type: 'internal',\n operators: data.map((operator) => operator.idOperator),\n demand: demand.idDemand,\n },\n });\n })\n .then(() => {\n loadDataInprogress();\n loadDataClosed();\n setSucessUpdate(true);\n setSuccessMessage('forms.internalDemand.successUpdateStatus');\n new Promise((resolve) => setTimeout(resolve, 5000)).then((r) => {\n setSucessUpdate(false);\n });\n })\n .catch((e) => {\n setIsInprogressTableLoading(false);\n setFailureUpadate(true);\n new Promise((resolve) => setTimeout(resolve, 5000)).then((r) => {\n setFailureUpadate(false);\n });\n console.error(e);\n });\n };\n const getStatus = (demand: any, status: ContainerDemandStatusInstance) => {\n if (status.name === STATUS.InProgress || status.name === STATUS.Planned) {\n return (\n
\n {\n return handleStatusChange(demand, STATUS.Canceled);\n }}\n >\n {translate('pages.demands.status.Cancel')}\n \n
\n );\n }\n if (status.name === STATUS.NewDate) {\n return (\n
\n handleStatusChange(demand, STATUS.Planned)}\n >\n {translate('pages.demands.status.Accept')}\n \n handleStatusChange(demand, STATUS.Canceled)}\n >\n {translate('pages.demands.status.Refuse')}\n \n
\n );\n }\n };\n\n // Handler of table filters\n const handleInprogressFiltersChange = (filter: any[]) => {\n if (JSON.stringify(filter) !== JSON.stringify(inprogressFilters)) {\n setPageInprogress(1);\n setInprogressFilters(filter);\n }\n };\n const handleClosedFiltersChange = (filter: any[]) => {\n if (JSON.stringify(filter) !== JSON.stringify(closedFilters)) {\n setPageClosed(1);\n setClosedFilters(filter);\n }\n };\n\n useEffect(() => {\n async function loadStatus() {\n await new ContainerDemandStatus()\n .getList()\n .then(({ data }) => {\n const inprogressStatus: any[] = [];\n const closedStatus: any[] = [];\n data.map((status) => {\n if (INPROGRESS_STATUS.includes(status.name))\n inprogressStatus.push({\n value: status.id,\n label: translate(`pages.demands.status.${status.name}`),\n });\n else if (CLOSED_STATUS.includes(status.name))\n closedStatus.push({\n value: status.id,\n label: translate(`pages.demands.status.${status.name}`),\n });\n });\n setStatusList(data);\n setInprogressStatusList(inprogressStatus);\n setClosedStatusList(closedStatus);\n })\n .catch((e) => {\n console.error(e);\n });\n }\n\n try {\n setIsInprogressTableLoading(true);\n setIsClosedTableLoading(true);\n loadStatus();\n } catch (error) {\n console.error(error);\n }\n }, []);\n\n useEffect(() => {\n if (inprogressStatusList.length > 0) {\n loadDataInprogress();\n }\n }, [\n pageInprogress,\n perPageInprogress,\n inprogressStatusList,\n inprogressFilters,\n sortInprogressTable,\n itemFiltersSelected,\n ]);\n\n useEffect(() => {\n if (closedStatusList.length > 0) {\n loadDataClosed();\n }\n }, [\n pageClosed,\n perPageClosed,\n closedStatusList,\n closedFilters,\n sortClosedTable,\n itemFiltersSelected,\n ]);\n\n const formatedTableData = (demands: any[]) => {\n return demands.map((demand: any) => {\n return {\n id: demand.idDemand,\n idContainerDemand: demand.name,\n containerName: (\n
{demand.container.name}
\n ),\n materials: ,\n bookingDate: (\n
\n {demand.bookingDate\n ? `${new Date(demand.bookingDate).toLocaleDateString(\n navigator.language\n )}\n ${new Date(demand.bookingDate)\n .toISOString()\n .substring(11, 19)}`\n : ''}\n {' '}\n
\n ),\n status: (\n
\n {demand.status\n ? translate(`pages.demands.status.${demand.status.name}`)\n : ''}\n
\n ),\n controlButtons: getStatus(demand, demand.status),\n };\n });\n };\n\n return (\n \n \n
\n {\n history.push(`/demandsExternal/create`);\n }}\n >\n {translate('pages.demands.NewDemand')}\n \n
\n
\n {(successUpdate || sucessCreate) && (\n
\n \n {translate(`${successMessage}`)}\n \n
\n )}\n {failureUpdate && (\n
\n \n {translate(`forms.errorMessage`)}\n \n
\n )}\n \n
\n
\n\n \n
\n \n
\n
\n
\n );\n};\n","import { RouteProps } from 'react-router';\nimport {\n Consent,\n Login,\n ResetPasswordApply,\n ResetPasswordRequest,\n} from '../pages';\n\nexport const passwordRoutes: RouteProps[] = [\n {\n component: ResetPasswordRequest,\n path: '/reset-password',\n strict: true,\n exact: true,\n },\n {\n component: ResetPasswordApply,\n path: '/reset-password/:token',\n },\n {\n component: Login,\n path: '/login',\n },\n {\n component: Consent,\n path: '/consent',\n },\n];\n","import React from 'react';\nimport { ResetPasswordRequestForm } from '../../components/Form/Password';\nimport { CommonResetPassword } from './CommonResetPassword';\n\nexport const ResetPasswordRequest: React.FC = () => (\n \n \n \n);\n","import React from 'react';\nimport { ResetPasswordApplyForm } from '../../components/Form/Password';\nimport { CommonResetPassword } from './CommonResetPassword';\n\nexport const ResetPasswordApply: React.FC = () => (\n \n \n \n);\n","import React, { useContext } from 'react';\nimport { SzTypographie } from 'react-theme-components';\nimport { Login as LoginForm } from '../components/Form';\nimport './login.scss';\nimport { useNotLogged } from '../hooks';\nimport { LanguageContext } from '../contexts';\nimport { LayoutBase } from '../components/Layout';\n\nexport const Login: React.FC = () => {\n useNotLogged();\n const { translate } = useContext(LanguageContext);\n return (\n \n \n
\n
\n
\n \n {translate('pages.login.form.title')}\n \n \n
\n
\n
\n
\n
\n

\n {translate('pages.login.block.title')}\n

\n
\n

\n {translate('pages.login.block.description')}\n

\n
\n
\n
\n \n );\n};\n","import React, { useContext } from 'react';\nimport { LayoutBase } from '../components/Layout';\nimport { LanguageContext } from '../contexts';\nimport { ComponentWithTitle } from '../components/Common';\n\nexport const Consent: React.FC = () => {\n const { translate } = useContext(LanguageContext);\n return (\n \n \n
\n

{translate('pages.consent.body.p1')}

\n
\n

{translate('pages.consent.body.p2')}

\n
\n

\n {translate('pages.consent.body.p3.t1')}\n \n {translate('pages.consent.body.p3.l1')}\n \n {translate('pages.consent.body.p3.t2')}\n

\n
\n

{translate('pages.consent.body.p4')}

\n
\n

{translate('pages.consent.body.p5')}

\n
\n

{translate('pages.consent.body.p6')}

\n
\n

{translate('pages.consent.body.p7')}

\n
\n

\n {translate('pages.consent.body.p8.t1')}\n \n {translate('pages.consent.body.p3.l1')}\n \n {translate('pages.consent.body.p8.t2')}\n

\n
\n

\n {translate('pages.consent.body.p9.t1')}\n \n {translate('pages.consent.body.p9.l1')}\n \n .\n

\n

{translate('pages.consent.body.p10')}

\n
\n

\n {translate('pages.consent.body.p11.t1')}\n \n {translate('pages.consent.body.p11.l1')}\n \n .\n

\n
\n

{translate('pages.consent.body.p12')}

\n
\n
\n
\n
\n );\n};\n","/* eslint-disable @typescript-eslint/no-use-before-define */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport React, { useContext, useState, useEffect } from 'react';\nimport { Layout } from '../../components/Layout';\nimport { ComponentWithTitle } from '../../components/Common';\nimport { useLogged } from '../../hooks';\nimport { BaseStoreContext, LanguageContext } from '../../contexts';\nimport { useHistory } from 'react-router';\nimport {\n SzAlert,\n SzButton,\n SzDatePicker,\n SzSelect,\n} from 'react-theme-components';\nimport TimePicker from 'rc-time-picker';\nimport { Container, ContainerDemand } from '../../interfaces/providers';\nimport { Company, Organization, UserId } from '../../helpers';\nimport './Demand.scss';\n\nimport 'rc-time-picker/assets/index.css';\nimport moment from 'moment';\nimport { User } from '../../actions';\n\nexport const STATUS = {\n InProgress: 'In Progress',\n Planned: 'Planned',\n NewDate: 'New Date',\n Closed: 'Closed',\n Canceled: 'Canceled',\n NoReturn: 'No Return',\n};\n\nexport const CreateDemands: React.FC = () => {\n useLogged();\n const { itemFiltersSelected } = useContext(BaseStoreContext);\n const { translate } = useContext(LanguageContext);\n const { push } = useHistory();\n\n const [containerList, setContainerList] = useState([]);\n const [selectedContainer, setSelectedContainer] = useState({\n value: '',\n label: '',\n });\n const [isLoading, setIsLoading] = useState(false);\n const [isSelectLoading, setIsSelectLoading] = useState(false);\n const [bookingDate, setBookingDate] = useState(new Date());\n const [bookingTime, setBookingTime] = useState(\n moment()\n .add(75 - (moment().minutes() % 5), 'minutes')\n .startOf('minute')\n );\n const [failureUpdate, setFailureUpadate] = useState(false);\n const [failureMessage, setFailureMessage] = useState('');\n\n const handleSelectionChange = (option) => {\n if (option) {\n setSelectedContainer(option);\n }\n };\n\n // Handle create container command\n const handleCreateDemand = async () => {\n setIsLoading(true);\n let formatedBookingDate = `${moment(bookingDate).format(\n 'YYYY-MM-DD'\n )} ${bookingTime}`;\n if (moment(formatedBookingDate) < moment()) {\n setFailureUpadate(true);\n setFailureMessage(translate(`forms.externalDemand.invalidBookingDate`));\n new Promise((resolve) => setTimeout(resolve, 5000)).then((r) => {\n setFailureUpadate(false);\n });\n setIsLoading(false);\n return;\n }\n\n formatedBookingDate = `${moment(bookingDate).format('YYYY-MM-DD')} ${moment(\n bookingTime\n ).format('HH:mm:ss')}`;\n\n const data = {\n idContainer: selectedContainer?.value,\n CreatedBy: new UserId().get(),\n bookingDate: formatedBookingDate,\n };\n\n await new ContainerDemand()\n .create({\n data,\n })\n .then(({ data }) => {\n new User().sendDemandMail({\n data: {\n demandStatus: STATUS.InProgress,\n type: 'internal',\n operators: data.operators.map((operator) => operator.idOperator),\n bookingDate: formatedBookingDate,\n materials: data.materials.map((material) => material.materialName),\n container: data.containerName,\n company: new Company().getDecoded().name,\n organization: new Organization().getDecoded().name,\n demand: 0,\n },\n });\n })\n .then(() => {\n setIsLoading(false);\n push(`/demandsExternal`, { sucessCreate: true });\n })\n .catch((e) => {\n setFailureUpadate(true);\n setFailureMessage(translate(`forms.errorMessage`));\n new Promise((resolve) => setTimeout(resolve, 5000)).then((r) => {\n setFailureUpadate(false);\n });\n setIsLoading(false);\n console.error(e);\n });\n };\n\n useEffect(() => {\n async function loadContainers() {\n await new Container({\n filters: {\n idUser: new UserId().get(),\n idOrganizations: itemFiltersSelected.organization,\n idCompanies: itemFiltersSelected.plant,\n },\n })\n .getList()\n .then(({ data }) => {\n setIsSelectLoading(false);\n const options = data.map((e) => {\n return {\n value: e.id,\n label: e.name,\n };\n });\n setContainerList(options);\n })\n .catch((e) => {\n console.error(e);\n });\n }\n try {\n setIsSelectLoading(true);\n setSelectedContainer({ value: '', label: '' });\n loadContainers();\n } catch (error) {\n console.error(error);\n }\n }, [itemFiltersSelected]);\n\n return (\n \n \n
\n {failureUpdate && (\n
\n \n {failureMessage}\n \n
\n )}\n
\n {translate(`pages.newDemand.chooseContainerAndDate`)}\n
\n
\n \n
\n
\n
\n setBookingDate(v),\n classNameStartDate: 'col-12',\n startDate: bookingDate,\n }}\n />\n
\n
\n setBookingTime(value)}\n placeholder={translate(`pages.demands.chooseTime`)}\n popupClassName={'rc-time-picker-panel-customer'}\n placement={'bottomLeft'}\n minuteStep={5}\n />\n
\n
\n
\n {\n handleCreateDemand();\n }}\n loader={isLoading}\n isDisabled={selectedContainer.value === null}\n >\n {translate(`pages.demands.validate`)}\n \n
\n
\n
\n
\n );\n};\n","import 'core-js/stable';\nimport 'regenerator-runtime/runtime';\nimport React, { useContext, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n BrowserRouter,\n Route,\n RouteProps,\n Router,\n Switch,\n} from 'react-router-dom';\nimport * as serviceWorker from './serviceWorker';\nimport { createBrowserHistory, History } from 'history';\nimport './main.scss';\nimport {\n BaseStoreProvider,\n LanguageProvider,\n UserProvider,\n LanguageContext,\n} from './contexts';\nimport { AppInsightProvider } from './contexts/AppInsightContext';\nimport withTracker from './routes/withTracker.jsx';\nimport { ROLES, ROUTES } from './actions/BCM_Constant';\nimport CustomRoute from './routes/CustomRoute';\nimport {\n Account,\n Analysis,\n Catalog,\n CatalogItem,\n Contact,\n DemandsExternal,\n DemandsInternal,\n Welcome,\n} from './pages';\nimport { passwordRoutes } from './routes/passwordRoutes';\nimport { Movement } from './pages/Movement';\nimport { CreateDemands } from './pages/Demands/CreateDemand';\n\nconst history: History = createBrowserHistory();\n\ndeclare global {\n interface Window {\n dataLayer: any[];\n QSI: any;\n tarteaucitronForceLanguage: any;\n }\n}\n\nconst RoutingComponent: React.FC = () => (\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 {passwordRoutes.map(\n ({ component, ...route }: RouteProps, index: number) => (\n \n )\n )}\n \n \n);\n\nconst App: React.FC = () => {\n const { selectedLanguage } = useContext(LanguageContext);\n useEffect(() => {\n window.tarteaucitronForceLanguage = (\n selectedLanguage.value as string\n ).split('-')[0];\n }, [window]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nReactDOM.render(, document.getElementById('root'));\n\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: http://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}