{"version":3,"sources":["Pages/header.js","Container/Icons/iconDatabase.js","Container/Icons/iconStart.js","Container/Icons/iconFormular.js","Pages/01_MainMenu/mainMenu.js","Pages/02_Research/manuelSearch.js","Container/InfoButton/infoButton_App.js","Container/InfoButton/infoButton_Mil.js","Container/Icons/iconSelectMill.js","Pages/02_AHP/02_AHP_Beta/defaultContext.js","Container/InfoButton/infoButton_Filter.js","Pages/02_AHP/02_AHP_Beta/Container/articel_MillSelect.js","Container/InfoButton/infoButton_Gui.js","Pages/02_AHP/02_AHP_Beta/Container/articel_Guideline.js","Container/InfoButton/infoButton_Sce.js","Pages/02_AHP/02_AHP_Beta/Container/SliderScenarios/slider_default.js","Pages/02_AHP/02_AHP_Beta/Container/SliderScenarios/slider_energy.js","Pages/02_AHP/02_AHP_Beta/Container/SliderScenarios/slider_operationAndMaintenance.js","Pages/02_AHP/02_AHP_Beta/Container/SliderScenarios/slider_quality.js","Pages/02_AHP/02_AHP_Beta/Container/SliderScenarios/slider_qualityAndEfficiency.js","Pages/02_AHP/02_AHP_Beta/Container/SliderScenarios/slider_custom.js","Container/InfoButton/infoButton_ScenarioDeatils.js","Pages/02_AHP/02_AHP_Beta/Container/SliderScenarioDetail/slider+_default.js","Pages/02_AHP/02_AHP_Beta/Container/SliderScenarioDetail/slider+_custom.js","Pages/02_AHP/02_AHP_Beta/Container/articel_ScenarioDetailsCustom.js","Pages/02_AHP/02_AHP_Beta/Container/articel_ScenarioDetails.js","Pages/02_AHP/02_AHP_Beta/Container/articel_Scenario.js","Pages/02_AHP/02_AHP_Beta/Container/articel_TypeOfApp.js","Pages/02_AHP/02_AHP_Beta/Container/DataSummary/dataSummary.js","Pages/02_AHP/02_AHP_Beta/ahp_Alpha.js","Pages/nav.js","Pages/footer.js","App.js","registerServiceWorker.js","index.js"],"names":["Header","class","href","height","src","React","Component","useStyles","makeStyles","theme","root","margin","spacing","Icon3","props","d","IconFormular","classes","className","style","fontSize","Icon","SvgIcon","IconStart","Mainmenu","id","aria-hidden","ManuelSearch","useState","data_Fineness","setData_Fineness","data_Surface","setData_Surface","data_PSD","setData_PSD","data_Throughput","setData_Throughput","data_Energy","setData_Energy","data_finenessDescription","setData_finenessDescription","checked","classButton","rootCombobox","padding","display","useStylesButton","open","setOpen","options","setOptions","millInfo","setMillInfo","valueXAxes","setValueXAxes","inputValueXAxes","setInputValueXAxes","dateOfUpdate","valueYAxes","setValueYAxes","inputValueYAxes","setInputValueYAxes","countMill","setGetID","optionsXAxes","setOptionsXAxes","mill_name","loading","length","CustomSlider","width","withStyles","disabled","color","palette","primary","main","thumb","Slider","getDataFromDatabase","a","fetch","String","then","response","json","mills","tdata_Fineness","split","tdata_Surface","tdata_PSD","o","includes","push","user","localStorage","getItem","getDataFromDatabasebyName","name","nameFromURL","sParam","sURLVariables","window","location","search","substring","i","sParameterName","replace","GetURLParameter","source","description","operation_mode","circuit","material_hardness","mill_category","industry_sector","exists_picture","exists_picture_function","exists_report","mill_id","video_link","source_text","map","number","source_picture","source_picture_text","source_FunctionPicture","source_FunctionPicture_text","manufacturers","manufacturers_text","keywords","accuracyIndex","industrialScale","dateOfTrials","Date","trial_info","toLocaleDateString","weekday","year","month","day","GrindingTrial_id","GrindingTrial_mill_name","GrindingTrial_mill_name_Array","GrindingTrial_Material","GrindingTrial_feedSize","GrindingTrial_OperationMode","GrindingTrial_DevelopmentState","GrindingTrials_GrindingAid","autoCompleteReturn","Autocomplete","disableClearable","onOpen","onClose","getOptionSelected","option","value","getOptionLabel","defaultValue","finalChoosenTechnologie","onChange","event","renderInput","params","TextField","label","variant","InputProps","endAdornment","Fragment","CircularProgress","size","contentPicture","pathPicture","contentTrials","x","contentReportTrials","industrialScaleSlider","contentReturn","valign","labelsTrials","xdata","ydata","xLabel","yLabel","isDataAvailable","dataset","borderdash","bd","colour","ic","ii","y","GrindingTrials_GrindingAid_sign","tmpSplit","GrindingTrial_DevelopmentState_sign","Number","parseFloat","toPrecision","data","showLine","fill","borderDash","borderColor","pointBackgroundColor","pointBorderColor","pointHoverBackgroundColor","pointHoverBorderColor","labels","datasets","legend","position","scales","yAxes","scaleLabel","labelString","xAxes","tooltips","callbacks","title","tooltipItem","align","newValue","inputValue","onInputChange","newInputValue","pathReport","target","accuracyIndexSlider","trlDescription","trl_calc","valueLabelDisplay","marks","contentFunctionPicture","contentVideo","contentSource","contentSourcePicture","contentSourceFunctionPicture","contentManufacturers","contentKeywords","pathFunctionPicture","useEffect","active","Object","keys","mailSubject","InfoButtonApp","root1","flexWrap","root2","justifyContent","root3","inner","textAlign","backdrop","zIndex","drawer","InfoButtonMil","IconButton","onClick","Backdrop","transitionDuration","Paper","elevation","square","IconAllMillsSelected","IconAllMillsSelected2","theDefaultContext","createContext","root4Button","fullWidth","InfoButtonFilter","Button","ArticelMillSelect","useContext","selectMillReceivedValue","setSelectMillReceivedValue","millSelectRadioStatus","setMillSelectRadioStatus","setMillSelectionUserChoice","millSelectionUserChoice","setMillSelectionCountMill","millSelectionCountMill","finalValueTypeOfApp","setAllMillsWithoutFilters","allMillsWithoutFilters","setValue","setChecked","rootButton","marginTop","marginLeft","setKeys","millList","setMillList","millListNoDublicates","setMillListNoDublicates","millListAll","setMillListAll","idList","setIdList","nameList","setNameList","setCountMill","getId","idFromAllMills","setIdFromAllMills","nameFromAllMills","setnameFromAllMills","openListAll","setOpenListAll","Millname","millListAllStaticSTATE","millsAll","reduce","obj","set","Map","values","ArrayWithNoDublicatesforID","text01","content","AddTaskAllMills","countMillDetailsAll","ObjectToArray","FormControlLabel","control","Checkbox","countMillDetails","delete","undefined","float","t","e","preventDefault","filter","deleteTask","FormControl","component","FormLabel","RadioGroup","aria-label","onValue","Radio","InfoButtonGui","ArticelGuideline","InfoButtonSce","markQualtiy","markFeed","markOperation","markMaintenance","markEfficiency","markEnvironment","SliderCatDefault","valueQuality","setValueQualtiy","valueFeed","setValueFeed","valueOperation","setValueOperation","valueMaintenance","setValueMaintenance","valueEfficiency","setValueEfficiency","valueEnvironment","setValueEnvironment","Typography","gutterBottom","aria-labelledby","step","min","max","SliderCatEnergy","SliderCatOperationAndMaintenance","SliderCatQuality","SliderCatQualityAndEfficiency","inputStyle","border","outline","SliderCatCustom","ColorSumSlider","setCategoryQualityCustom","setCategoryFeedFlexCustom","setCategoryOperationCustom","setCategoryMaintenanceCustom","setCategoryEfficiencyCustom","setCategoryEnvironmentCustom","setLimitOfSliderCategorie","limitOfSliderCategorie","SumSlider","type","parseInt","valueLabelFormat","InfoButtonScenarioDetails","marks01","marks02","marks03","marks04","marks05","marks06","marks07","marks08","marks09","marks10","marks11","marks12","marks13","marks14","marks15","marks16","marks17","marks18","marks19","SliderCritDefault","valuePSD","setValuePSD","valueMaxFineness","setValueMaxFineness","valueDehydration","setValueDehydration","valueDrying","setValueDrying","valueMaxFeedSize","setValueMaxFeedSize","valueProductChangingTime","setValueProductChangingTime","valueUnderstandingOfProcess","setValueUnderstandingOfProcess","valueSensitivityOfProcess","setValueSensitivityOfProcess","valueControlabilityPersonnel","setValueControlabilityPersonnel","valueAvailableExperience","setValueAvailableExperience","valueThroughput","setValueThroughput","valueMaintenanceTime","setValueMaintenanceTime","valueComplexityOfMaintenance","setValueComplexityOfMaintenance","valueWearCosts","setValueWearCosts","valueEnergyDemand","setValueEnergyDemand","valueWaterDemand","setValueWaterDemand","valueDustEmissions","setValueDustEmissions","valueNoise","setValueNoise","valueEffectOfVibration","setValueEffectOfVibration","SliderCritCustom","SumSliderColorQuality","SumSliderColorFeed","SumSliderColorOperation","SumSliderColorMaintenance","SumSliderColorEfficiency","SumSliderColorEnvironment","setPsd","setMaxFineness","setDehydration","setDrying","setMaxFeedSize","setProductChangingTime","setUnderstandingOfProcess","setSensitivityOfProcess","setControlabilityPersonnel","setAvailableExperience","setThroughput","setMaintenanceTime","setComplexityOfMaintenance","setWearCosts","setEnergyDemand","setWaterDemand","setDustEmissions","setNoise","setEffectOfVibration","setLimitOfSliderCriteria","limitOfSliderCriteria","SumSliderQuality","SumSliderFeed","SumSliderOperation","SumSliderMaintenance","SumSliderEfficiency","SumSliderEnvironment","setStatusSliderColorQuality","setStatusSliderColorFeed","setStatusSliderColorOperation","setStatusSliderColorMaintenance","setStatusSliderColorEfficiency","setStatusSliderColorEnvironment","ArticelScenarioDetailsCustom","setCriteriaRadioScenario","criteriaRadioScenario","ArticelScenarioDetails","Scenarios","content2","setCategoryQuality","setCategoryFeedFlex","setCategoryOperation","setCategoryMaintenance","setCategoryEfficiency","setCategoryEnvironment","setCategoryRadioScenario","categoryRadioScenario","valueScenario","setValueScenario","TypeOfApplication","setFinalValueTypeOfApp","valueTypeOfApp","setValueTypeOfApp","DataSummaryFunction","toString","typeOfAppLabel","categoryQualityCustom","categoryFeedFlexCustom","categoryOperationCustom","categoryMaintenanceCustom","categoryEfficiencyCustom","categoryEnvironmentCustom","categoryQuality","categoryFeedFlex","categoryOperation","categoryMaintenance","categoryEfficiency","categoryEnvironment","psd","maxFineness","dehydration","drying","maxFeedSize","productChangingTime","understandingOfProcess","sensitivityOfProcess","controlabilityPersonnel","availableExperience","throughput","maintenanceTime","complexityOfMaintenance","wearCosts","energyDemand","waterDemand","dustEmissions","noise","effectOfVibration","FilterStatus","finalValueQuality","finalValueFeedFlex","finalValueOperation","finalValueMaintenance","finalValueEfficiency","finalValueEnvironment","finalValuePsd","finalValueMaxFineness","finalValueDehydration","finalValueDrying","finalValueMaxFeedSize","finalValueProductChangingTime","finalValueUnderstandingOfProcess","finalValueSensitivityOfProcess","finalValueControlabilityPersonnel","finalValueAvailableExperience","finalValueThroughput","finalValueMaintenanceTime","finalValueComplexityOfMaintenance","finalValueWearCosts","finalValueEnergyDemand","finalValueWaterDemand","finalValueDustEmissions","finalValueNoise","finalValueEffectOfVibration","finalScore","setFinalScore","finalList","setFinalList","finalMillsID","millSelek","setMillSelek","inspectMill","setInspectMill","averageScoreQuality","setAverageScoreQuality","averageScoreFeed","setAverageScoreFeed","averageScoreOperation","setAverageScoreOperation","averageScoreMaintenance","setAverageScoreMaintenance","averageScoreEfficiency","setAverageScoreEfficiency","averageScoreEnvironmImp","setAverageScoreEnvironmImp","axiosResponse","setAxiosResponse","loadAnalysis","setLoadAnalysis","analysisIsReadyToShow","setAnalysisIsReadyToShow","DisableButton","checkedF","state","setState","handleChange","contentLoadingAct","yyyymmddhhmm","dateIn","yyyy","getFullYear","mm","getMonth","dd","getDate","h","getHours","m","getMinutes","item","millname","result","ballMillComparison","quality","comparisonResult","verticalMillComparison","rollerPressMillComparison","hororMillComparison","toFixed","feed","operation","maintenance","efficiency","environmentalImpact","contentA","contentB","warntextMillSelection","triggerLoadingAct","alignItems","thickness","progress","valueBuffer","buffer","contenChartsandGraphics","setProgress","setBuffer","progressRef","useRef","current","timer","setInterval","clearInterval","textFinishedLoading","finalListAsObject","entries","elements","assign","acc","cur","linkToDB","diagramHeight","Math","ceil","startIcon","axios","require","JSON","stringify","typeOfApplication","scenarioStatus","comparisonMills","millSelectStatus","inputPresets","category","criteria","categoriesImportance","criteriaImportance","maximumWeights","thresholds","FileDownload","method","responseType","url","headers","currentdate","catch","error","triggerExcelFile","borderWidth","maxBarThickness","backgroundColor","aspectRatio","responsive","maintainAspectRatio","ticks","autoSkip","beginAtZero","suggestedMax","gridLines","offsetGridLines","stepSize","tickColor","text","categoryPercentage","minBarThickness","barThickness","minBarLength","scale","pointLabels","angleLines","suggestedMin","maxTicksLimit","triggerAxios","AHPalpha","Provider","Boolean","tabIndex","Nav","username","setUsername","password","setPassword","setUser","handleSubmit","setItem","alert","path","exact","onSubmit","placeholder","Footer","App","displayName","isLocalhost","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","console","log","baseUrl","document","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","basename","URL","process","origin","addEventListener","status","get","indexOf","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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P,MAA8BC,GAA9B,MACA,GACI3P,mBAAS,OADb,qBAAOwP,GAAP,MAAgCC,GAAhC,MAKA,GAA0DzP,mBACtD,6BADJ,qBAAO6d,GAAP,MAA8BD,GAA9B,MAGA,GAA0D5d,mBAAS,IAAnE,qBAAOkd,GAAP,MAA8BD,GAA9B,MACA,GAA4Djd,mBAAS,IAArE,qBAAOwW,GAAP,MAA+BD,GAA/B,MACA,GAA0DvW,mBAAS,IAAnE,qBAAOmc,GAAP,MAA8BD,GAA9B,MAIA,OACI,6BACI,0BAAMrc,GAAG,OAAOirB,SAAS,KACrB,yBAAKxrB,UAAU,YACX,kBAACsrB,EAAD,CACI3iB,MAAO,CAEH+H,sBACAiO,yBAGAJ,yBACAD,4BACAV,yBACAD,4BACAzG,0BACAD,6BACA4F,yBACAD,4BAGAqC,wBACAtI,2BACAuI,yBACAtI,4BACAuI,0BACAtI,6BACAuI,4BACAtI,+BACAuI,2BACAtI,8BACAuI,6BACAtI,gCAGAuI,kBACAvB,qBACAwB,mBACAvB,sBACAwB,oBACAvB,uBACAwB,sBACAvB,yBACAwB,qBACAvB,wBACAwB,sBACAvB,yBAGAwB,OACApE,UACAqE,eACApE,kBACAqE,eACApE,kBACAqE,UACApE,aACAqE,eACApE,kBACAqE,uBACApE,0BACAqE,0BACApE,6BACAqE,wBACApE,2BACAqE,2BACApE,8BACAqE,uBACApE,0BACAqE,cACApE,iBACAqE,mBACApE,sBACAqE,2BACApE,8BACAqE,aACApE,gBACAqE,gBACApE,mBACAqE,eACApE,kBACAqE,iBACApE,oBACAqE,SACApE,YACAqE,qBACApE,wBAGApM,2BACAD,8BACAJ,2BACAC,8BACAC,yBACAC,4BACAI,0BACAD,6BACAI,0BACAD,+BAIJ,kBAAC4D,GAAD,CAAkBhU,GAAG,cAGrB,kBAACme,GAAD,CAAmBne,GAAG,oBAGtB,kBAACud,GAAD,CAAWvd,GAAG,cAMd,kBAACyP,GAAD,CAAmBzP,GAAG,kBAMtB,kBAACue,GAAD,CAAqBve,GAAG,eC7LjC,SAASkrB,KAIxB,MAAgC/qB,mBAAS,IAAzC,mBAAOgrB,EAAP,KAAiBC,EAAjB,KACA,EAAgCjrB,mBAAS,IAAzC,mBAAOkrB,EAAP,KAAiBC,EAAjB,KACA,EAAwBnrB,qBAAxB,mBAAOkE,EAAP,KAAaknB,EAAb,KAGI9d,qBAAU,WACenJ,aAAaC,QAAQ,SAEtCgnB,EAAQ,UAEb,IAGP,IAAMC,EAAY,uCAAG,WAAMpY,GAAN,eAAA7P,EAAA,6DACjB6P,EAAEC,iBACIhP,EAAO,CAAC8mB,EAAS,IAAKE,GAFX,SAKM7nB,MAAM,aAAaC,OAAOY,IAC5CX,MAAK,SAAAC,GACF,OAAOA,EAASC,UAPP,mCAab2nB,EAAQ,QAERjnB,aAAamnB,QAAQ,QAAQ,GAfhB,+BAiBbF,EAAQ,IAjBK,kBAmBTG,MAAM,+BAnBG,4CAAH,sDA8Bd,OAAIrnB,EAEI,kBAAC,IAAD,KACI,kBAAC,IAAD,KACA,kBAAC,IAAD,CAAOsnB,KAAK,IAAIC,OAAK,EAACnY,UAAW1T,IACjC,kBAAC,IAAD,CAAO4rB,KAAK,sBAAsBC,OAAK,EAACnY,UAAWvT,IAC/C,kBAAC,IAAD,CAAOyrB,KAAK,cAAcC,OAAK,EAACnY,UAAWqX,KAC3C,kBAAC,IAAD,CAAOrX,UAAW1T,MAUrB,6BACL,6BACA,6BACA,6BACQ,6BACQ,6BAGA,0BAAMC,GAAG,UACL,yBAAKxB,MAAM,aACP,6BACA,6BACA,wBAAIA,MAAM,OACN,4BACI,8BAEJ,0BAAMqtB,SAAUL,GAEZ,kBAAC5iB,EAAA,EAAD,CACIiO,KAAK,OACLzO,MAAO+iB,EACPW,YAAY,WACZtjB,SAAU,gBAAGmE,EAAH,EAAGA,OAAH,OAAgBye,EAAYze,EAAOvE,UACjD,6BACA,kBAACQ,EAAA,EAAD,CACIiO,KAAK,WACLzO,MAAOijB,EACPS,YAAY,WACZtjB,SAAU,gBAAGmE,EAAH,EAAGA,OAAH,OAAgB2e,EAAY3e,EAAOvE,UAGjD,6BACA,6BAEA,kBAACoH,GAAA,EAAD,CAAQ1G,QAAQ,WAAW+N,KAAK,UAAhC,YAKJ,4BACI,8BACI,kBAAC,EAAD,MACA,uBAAGpY,KAAK,uDAAR,oBACqB,0BAAMwB,cAAY,UAEvC,sCApChB,mJAiDZ,6BACA,6BACA,6BACA,8B,IC7FL8rB,G,4JA/CX,WACI,OACI,4BAAQvtB,MAAM,eACV,yBAAKA,MAAM,aAEP,4BACQ,uBAAGC,KAAK,mDAAR,0BAG3B,6BAC2B,uBAAGA,KAAK,qCAAR,uBAKR,4BACI,2BAEI,6BAFJ,QAGS,6BAHT,wCAKI,6BALJ,qBAOI,6BAPJ,oBASI,6BATJ,UAWI,6BACA,6BAZJ,WAcI,6BAdJ,+BAegC,6BAfhC,+BAiBI,6BAjBJ,uBAmBI,6BACI,6BApBR,6E,GAjBHG,IAAMC,WCWNmtB,G,4JAGlB,WACK,OACI,6BACI,kBAAC,EAAD,MACA,kBAACd,GAAD,MACA,kBAAC,GAAD,W,GARiBrsB,aAAZmtB,GACVC,YAAcD,GAAIvnB,KCJ7B,IAAMynB,GAAclB,QACa,cAA7BnmB,OAAOC,SAASqnB,UAEiB,UAA7BtnB,OAAOC,SAASqnB,UAEhBtnB,OAAOC,SAASqnB,SAASC,MACrB,2DA6BZ,SAASC,GAAgBC,GACrBC,UAAUC,cACLC,SAASH,GACT5oB,MAAK,SAACgpB,GACHA,EAAaC,cAAgB,WACzB,IAAMC,EAAmBF,EAAaG,WACtCD,EAAiBE,cAAgB,WACE,cAA3BF,EAAiB5I,OACbuI,UAAUC,cAAcO,YAKxBC,QAAQC,IACJ,kDAYvB/D,OAAM,SAACC,GACJ6D,QAAQ7D,MAAM,4CAA6CA,MCjEvE,IAAM+D,GAAUC,SAASC,qBAAqB,QAAQ,GAAGC,aAAa,QAChEC,GAAcH,SAASI,eAAe,QAE5CC,IAASC,OAEL,kBAAC,IAAD,CAAeC,SAAUR,IACrB,kBAAC,GAAD,OAEJI,IDKW,WACX,GAA6C,kBAAmBf,UAAW,CAGvE,GADkB,IAAIoB,IAAIC,IAAwB/oB,OAAOC,UAC3C+oB,SAAWhpB,OAAOC,SAAS+oB,OAIrC,OAGJhpB,OAAOipB,iBAAiB,QAAQ,WAC5B,IAAMxB,EAAK,UAAMsB,IAAN,sBAEP1B,GA0ChB,SAAiCI,GAE7B9oB,MAAM8oB,GACD5oB,MAAK,SAACC,GAGqB,MAApBA,EAASoqB,SAEJ,IADLpqB,EAASqlB,QAAQgF,IAAI,gBAAgBC,QAAQ,cAI7C1B,UAAUC,cAAc0B,MAAMxqB,MAAK,SAACgpB,GAChCA,EAAayB,aAAazqB,MAAK,WAC3BmB,OAAOC,SAASspB,eAKxB/B,GAAgBC,MAGvBpD,OAAM,WACH8D,QAAQC,IACJ,oEA/DAoB,CAAwB/B,GAGxBD,GAAgBC,OCrBhCgC,K","file":"static/js/main.877a351d.chunk.js","sourcesContent":["import React from \"react\";\r\n//import Clock from \"../Container/clock\";\r\n//import IconSearch from \"../Container/Icons/iconDatabase\";\r\n//import IconStart from \"../Container/Icons/iconStart\";\r\n//import IconFormular from \"../Container/Icons/iconFormular\";\r\nclass Header extends React.Component {\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Header;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\nimport MailOutlineIcon from '@material-ui/icons/MailOutline';\r\nimport DvrIcon from '@material-ui/icons/Dvr';\r\n\r\n// Icon Quelle: https://material-ui.com/components/material-icons/\r\n// Seitenquelle: view-source:https://material-ui.com/components/material-icons/\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n \"& > svg\": {\r\n margin: theme.spacing(1),\r\n },\r\n },\r\n}));\r\n\r\nfunction Icon2(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction Icon3(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default function IconFormular() {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\n// Icon Quelle: https://material-ui.com/components/material-icons/\r\n// Seitenquelle: view-source:https://material-ui.com/components/material-icons/\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n \"& > svg\": {\r\n margin: theme.spacing(1),\r\n },\r\n },\r\n}));\r\n\r\nfunction Icon(props) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default function IconStart() {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\nimport MailOutlineIcon from '@material-ui/icons/MailOutline';\r\nimport DvrIcon from '@material-ui/icons/Dvr';\r\n\r\n// Icon Quelle: https://material-ui.com/components/material-icons/\r\n// Seitenquelle: view-source:https://material-ui.com/components/material-icons/\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n \"& > svg\": {\r\n margin: theme.spacing(1),\r\n },\r\n },\r\n}));\r\n\r\nfunction Icon2(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction Icon3(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default function IconFormular() {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport IconSearch from \"../../Container/Icons/iconDatabase\";\r\nimport IconStart from \"../../Container/Icons/iconStart\";\r\nimport IconFormular from \"../../Container/Icons/iconFormular\";\r\n\r\nexport default function Mainmenu() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\n\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\n//import { Button } from \"@material-ui/core\";\r\nimport { Scatter } from \"react-chartjs-2\";\r\nimport { withStyles, makeStyles } from \"@material-ui/core/styles\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport OndemandVideoIcon from '@material-ui/icons/OndemandVideo';\r\nimport IconFormular from \"../../Container/Icons/iconFormular\";\r\n \r\n\r\nimport Slider from \"@material-ui/core/Slider\";\r\n\r\n\r\n \r\n\r\n\r\n\r\nfunction ManuelSearch() {\r\n\r\n\r\n //const [isDBalive, setIsDBalive] = useState(false);\r\n //(async () => {\r\n\r\n\r\n // const isDBalive = await fetch(\"api/isDBalive\")\r\n // .then(response => {\r\n // return response.json();\r\n // })\r\n\r\n\r\n // setIsDBalive(isDBalive);\r\n //})();\r\n\r\n\r\n //console.log(\"isDBalive\" + isDBalive)\r\n\r\n // var data_Fineness = \"\";\r\n //// 'Spec. surface acc. to Blaine in cm²/g' \r\n //var data_Surface = \"\";\r\n //// 'Width of PSD'\r\n //var data_PSD = \"\";\r\n //// 'Throughput'\r\n\r\n //var data_Throughput = \"\";\r\n // var data_finenessDescription = \"\";\r\n //var data_Energy = \"\";\r\n\r\n const [data_Fineness, setData_Fineness] = useState(\"\");\r\n const [data_Surface, setData_Surface] = useState(\"\");\r\n const [data_PSD, setData_PSD] = useState(\"\");\r\n const [data_Throughput, setData_Throughput] = useState(\"\");\r\n const [data_Energy, setData_Energy] = useState(\"\");\r\n const [data_finenessDescription, setData_finenessDescription] = useState(\"\");\r\n\r\n\r\n const [value, setValue] = useState(\"all\"); // kann benutzt werden um zwischen Benutztereingabe und Hyperlink zu unterscheiden\r\n const [checked, setChecked] = useState(false);\r\n\r\n\r\n\r\n\r\n const handleChange = (event) => {\r\n setValue(event.target.value);\r\n };\r\n const handle\r\n = (event) => {\r\n setChecked(event.target.checked);\r\n };\r\n const stylesButtonAddList = {\r\n rootCombobox: {\r\n padding: \"0.5rem 0rem 1rem 0rem\", // Abstand nach: Höhre BreiteRechts Tiefe BreiteLinks\r\n display: \"inline-block\",\r\n // backgroundColor: \"#ecf01494\",\r\n },\r\n };\r\n\r\n const useStylesButton = makeStyles(stylesButtonAddList);\r\n const classButton = useStylesButton();\r\n const [open, setOpen] = useState(false);\r\n const [pointerIsURL, setPointerIsURL] = useState(true);\r\n const [options, setOptions] = useState([]);\r\n const [millInfo, setMillInfo] = useState([]);\r\n\r\n // const [millID, setMillID] = useState([]);\r\n\r\n // Autocomplete Combobox Axes Line Graph\r\n const [valueXAxes, setValueXAxes] = useState([]);\r\n const [inputValueXAxes, setInputValueXAxes] = useState([]);\r\n // const [dateOfUpdate, setDateOfUpdate] = useState([]);\r\n var dateOfUpdate = \"\";\r\n\r\n const [valueYAxes, setValueYAxes] = useState([]);\r\n // const [trl, setTrl] = useState([]);\r\n const [inputValueYAxes, setInputValueYAxes] = useState([]);\r\n\r\n const [countMill, setCountMill] = useState([]); // Ausgewählte Mühle aus Combobox\r\n const [getId, setGetID] = useState(options.id);\r\n\r\n //var optionsXAxes = ['Spec. energy demand', 'Fineness', 'Spec. surface acc. to Blaine in cm²/g', 'Width of PSD', 'Throughput'];\r\n\r\n const [optionsXAxes, setOptionsXAxes] = useState(['Spec. energy demand', 'Fineness', 'Spec. surface acc. to Blaine in cm²/g', 'Width of PSD', 'Throughput']);\r\n\r\n\r\n var mill_name = countMill;\r\n\r\n let finalChoosenTechnologie;\r\n const loading = open && options.length === 0;\r\n\r\n // TODO get Millname from Url\r\n {/*}\r\n let getURLCheck = window.location.search.substring(1);\r\n if (getURLCheck.includes(\"name\") && pointerIsURL) {\r\n //console.log(\"URL liefert einen Namen\");\r\n GetURLParameter();\r\n } else {\r\n //console.log(\"URL liefert KEINEN Namen\");\r\n finalChoosenTechnologie = mill_name;\r\n }\r\n */}\r\n\r\n\r\n\r\n\r\n const useStyles = makeStyles(theme => ({\r\n margin: {\r\n margin: theme.spacing(10),\r\n \"& .MuiSlider-thumb\": {\r\n height: 40,\r\n width: 40\r\n }\r\n }\r\n }));\r\n\r\n const CustomSlider = withStyles(theme => ({\r\n disabled: {\r\n color: theme.palette.primary.main\r\n },\r\n thumb: {\r\n // color: \"red\"\r\n }\r\n }))(Slider);\r\n\r\n\r\n\r\n\r\n function GetURLParameter(sParam) {\r\n var sPageURL = window.location.search.substring(1);\r\n var sURLVariables = sPageURL.split(\"&\");\r\n for (var i = 0; i < sURLVariables.length; i++) {\r\n var sParameterName = sURLVariables[i].split(\"=\");\r\n if (sParameterName[0] == sParam) {\r\n return sParameterName[1].replace(/%20/g, \" \");\r\n }\r\n }\r\n return null\r\n }\r\n function precise(x) {\r\n return Number.parseFloat(x).toPrecision(2);\r\n }\r\n\r\n\r\n async function getDataFromDatabase(id) {\r\n // let active = true;\r\n\r\n\r\n //console.log(\"try to load mill id: \" + id)\r\n const mills = await fetch(\"api/mills/\" + String(id))\r\n .then(response => {\r\n return response.json();\r\n })\r\n\r\n setMillInfo(mills);\r\n\r\n\r\n if (mills[\"name\"] != \"undefined\") {\r\n var tdata_Fineness = String(mills[\"grindingTrials_fineness\"]);\r\n var data_Fineness = tdata_Fineness.split(';');\r\n setData_Fineness(data_Fineness)\r\n var tdata_Surface = String(mills[\"grindingTrials_fineness_blaine\"]);\r\n var data_Surface = tdata_Surface.split(';');\r\n setData_Surface(data_Surface)\r\n\r\n var tdata_PSD = String(mills[\"grindingTrials_fineness_n\"]);\r\n var data_PSD = tdata_PSD.split(';');\r\n setData_PSD(data_PSD)\r\n\r\n var data_Throughput = String(mills[\"grindingTrials_throughput\"]).split(';');\r\n //var data_Throughput = tdata_Throughput.split(';');\r\n setData_finenessDescription(String(mills[\"grindingTrials_fineness_description\"]).split(';')[0]);\r\n\r\n setData_Throughput(data_Throughput)\r\n\r\n var data_Energy = String(mills[\"grindingTrials_energySystem\"]).split(';');\r\n setData_Energy(data_Energy)\r\n //var data_Energy = tdata_Energy.split(';');\r\n\r\n\r\n mill_name = millInfo[\"name\"];\r\n\r\n\r\n var o = [];\r\n\r\n if (data_Surface != \"undefined\" && data_Surface.length > 0 && !data_Surface.includes(\"nan\")) {\r\n o.push('Spec. surface acc. to Blaine in cm²/g');\r\n }\r\n\r\n if (data_Fineness != \"undefined\" && data_Fineness.length > 0 && !data_Fineness.includes(\"nan\")) {\r\n o.push('Fineness');\r\n }\r\n\r\n if (data_PSD != \"undefined\" && data_PSD.length > 0 && !data_PSD.includes(\"nan\")) {\r\n o.push('Width of PSD');\r\n }\r\n\r\n if (data_Throughput != \"undefined\" && data_Throughput.length > 0 && !data_Throughput.includes(\"nan\")) {\r\n o.push('Throughput');\r\n }\r\n\r\n if (data_Energy != \"undefined\" && data_Energy.length > 0 && !data_Energy.includes(\"nan\")) {\r\n o.push('Spec. energy demand');\r\n }\r\n\r\n\r\n setOptionsXAxes(o);\r\n\r\n setValueYAxes(o[0])\r\n setValueXAxes(o[1])\r\n\r\n\r\n\r\n\r\n\r\n }\r\n\r\n const user = localStorage.getItem(\"user\");\r\n fetch(\"api/counter_DB/\" + String(user))\r\n }\r\n\r\n\r\n\r\n async function getDataFromDatabasebyName(name) {\r\n // let active = true;\r\n\r\n const mills = await fetch(\"api/mill/\" + String(name))\r\n .then(response => {\r\n return response.json();\r\n })\r\n\r\n setMillInfo(mills);\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n if (millInfo == null || millInfo.length == 0) {\r\n\r\n var nameFromURL = GetURLParameter('name');\r\n if (nameFromURL != null && nameFromURL != \"\") {\r\n (async () => {\r\n await getDataFromDatabasebyName(nameFromURL);\r\n })();\r\n } else {\r\n\r\n (async () => {\r\n await getDataFromDatabase(1);\r\n })();\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n var mill_name = millInfo[\"name\"];\r\n\r\n var description = millInfo[\"description\"];\r\n var operation_mode = millInfo[\"operationMode\"];\r\n var circuit = millInfo[\"circuit\"];\r\n var material_hardness = millInfo[\"materialHardness\"];\r\n var mill_category = millInfo[\"category\"];\r\n var industry_sector = millInfo[\"industrySector\"];\r\n\r\n var exists_picture = millInfo[\"exists_picture\"];\r\n var exists_picture_function = millInfo[\"exists_picture_function\"];\r\n var exists_report = millInfo[\"exists_report\"];\r\n\r\n var mill_id = millInfo[\"id\"];\r\n var video_link = millInfo[\"videoLink\"];\r\n\r\n\r\n var source_text = String(millInfo[\"source\"]);\r\n var source;\r\n if (source_text != \"\") {\r\n const source_text_splited = source_text.split(\"#\");\r\n source = source_text_splited.map((number) =>
  • {number}
  • );\r\n }\r\n\r\n\r\n\r\n\r\n var source_picture_text = String(millInfo[\"sourcePicture\"]);\r\n var source_picture;\r\n if (source_picture_text != \"\") {\r\n const source_picture_text_splited = source_picture_text.split(\"#\");\r\n\r\n source_picture = source_picture_text_splited.map((number) =>
  • {number}
  • );\r\n }\r\n\r\n\r\n\r\n var source_FunctionPicture_text = String(millInfo[\"sourceFunction\"]);\r\n var source_FunctionPicture;\r\n if (source_FunctionPicture_text != \"\") {\r\n const source_FunctionPicture_text_splited = source_FunctionPicture_text.split(\"#\");\r\n source_FunctionPicture = source_FunctionPicture_text_splited.map((number) =>
  • {number}
  • );\r\n }\r\n\r\n\r\n\r\n var manufacturers_text = String(millInfo[\"manufaturers\"]);\r\n var manufacturers;\r\n if (manufacturers_text != \"\") {\r\n const manufacturers_text_splited = manufacturers_text.split(\"#\");\r\n manufacturers = manufacturers_text_splited.map((number) =>
  • {number}
  • );\r\n }\r\n\r\n\r\n var keywords_text = String(millInfo[\"keywords\"]);\r\n var keywords = keywords_text;\r\n\r\n\r\n\r\n var accuracyIndex = 0;\r\n\r\n if (millInfo[\"accuracyIndex\"] == \"based on grinding trials\") {\r\n accuracyIndex = 100;\r\n } else if (millInfo[\"accuracyIndex\"] == \"literature study\") {\r\n\r\n accuracyIndex = 66;\r\n\r\n } else if (millInfo[\"accuracyIndex\"] == \"expert estimation\") {\r\n\r\n accuracyIndex = 33;\r\n\r\n }\r\n\r\n\r\n // TRL\r\n var industrialScale = millInfo[\"trl\"];\r\n const optionsDate = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };\r\n\r\n var dateOfTrials = new Date(String(millInfo[\"grindingTrials_Date\"]).split(';')[0]);\r\n //console.log(\"dateOfTrials\" + String(millInfo[\"grindingTrials_Date\"]).split(';')[0])\r\n //new \r\n var trial_info_t = String(millInfo[\"grindingTrials_Conductor\"]).replace(\";\", \" \").replace(\";\", \" \");\r\n var trial_info = trial_info_t + \" \" + dateOfTrials.toLocaleDateString(\"en-GB\", optionsDate);\r\n\r\n var GrindingTrial_id = []; // TODO\r\n\r\n\r\n\r\n var GrindingTrial_mill_name = millInfo[\"grindingTrials_MillName\"];//['Argo', 'Argo', 'Argo', 'Argo', 'Argo', 'Argo'];\r\n if (GrindingTrial_mill_name != null && GrindingTrial_mill_name != \"\") {\r\n var GrindingTrial_mill_name_Array = GrindingTrial_mill_name.split(\";\")\r\n\r\n\r\n\r\n\r\n for (var i = 1; i <= GrindingTrial_mill_name_Array.length; i++) {\r\n if (GrindingTrial_mill_name_Array[i] != null && GrindingTrial_mill_name_Array != \"\") {\r\n GrindingTrial_id.push(i)\r\n }\r\n }\r\n }\r\n var GrindingTrial_Material = millInfo[\"grindingTrials_Material\"];//['Limestone', 'Limestone', 'Limestone', 'Limestone', 'Limestone', 'Limestone']\r\n var GrindingTrial_feedSize = millInfo[\"grindingTrials_feedSize\"];//[5, 5, 5, 5, 5, 5]\r\n var GrindingTrial_OperationMode = millInfo[\"grindingTrials_OperationMode\"];//[5, 5, 5, 5, 5, 5]\r\n var GrindingTrial_DevelopmentState = millInfo[\"grindingTrials_DevelopmentState\"];//['a', 'a', 'a', 'a', 'a', 'a']\r\n var GrindingTrials_GrindingAid = millInfo[\"grindingTrials_GrindingAid\"];\r\n\r\n\r\n\r\n // 'Spec. Energy demand'\r\n // var data_Energy = [[1.3, 2.1, 3.4, 4, 5, 6], [1.3, 2.1, 3.4, 4, 5, 6], [1.3, 2.1, 3.4, 4, 5, 6], [1.3, 2.1, 3.4, 4, 5, 6], [1.3, 2.1, 3.4, 4, 5, 6], [1.3, 2.1, 3.4, 4, 5, 6]];\r\n //var tdata_Energy = String(millInfo[\"grindingTrials_energySystem\"]);\r\n //var data_Energy = tdata_Energy.split(';');\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n // data_Energy.split(';');\r\n // 'Fineness'\r\n //var data_Fineness = [[1.3, 2.1, 3.4, 4, 5, 6], [1.3, 2.1, 3.4, 4, 5, 6], [1.3, 2.1, 3.4, 4, 5, 6], [1.3, 2.1, 3.4, 4, 5, 6], [1.3, 2.1, 3.4, 4, 5, 6], [1.3, 2.1, 3.4, 4, 5, 6]];\r\n //var tdata_Fineness = String(millInfo[\"grindingTrials_fineness\"]);\r\n //var data_Fineness = tdata_Fineness.split(';');\r\n //// 'Spec. surface acc. to Blaine in cm²/g'\r\n ////var data_Surface = [[12, 19, 3, 5, 2, 3], [1, 1, 1, 1, 1], [2, 2, 2, 2, 2], [2, 2, 2, 2, 2], [2, 2, 2, 2, 2], [2, 2, 2, 2, 2]];\r\n //var tdata_Surface = String(millInfo[\"grindingTrials_fineness_blaine\"]);\r\n //var data_Surface = tdata_Surface.split(';');\r\n //// 'Width of PSD'\r\n ////var data_PSD = [[12, 19, 3, 5, 2, 3], [1, 1, 1, 1, 1], [2, 2, 2, 2, 2], [2, 2, 2, 2, 2], [2, 2, 2, 2, 2], [2, 2, 2, 2, 2]];\r\n //var tdata_PSD = String(millInfo[\"grindingTrials_fineness_n\"]);\r\n //var data_PSD = tdata_PSD.split(';');\r\n //// 'Throughput'\r\n //// var data_Throughput = [[12, 19, 3, 5, 2, 3], [1, 1, 1, 1, 1], [2, 2, 2, 2, 2], [2, 2, 2, 2, 2], [2, 2, 2, 2, 2], [2, 2, 2, 2, 2]];\r\n //var tdata_Throughput = String(millInfo[\"grindingTrials_throughput\"]);\r\n //var data_Throughput = tdata_Throughput.split(';');\r\n //var data_finenessDescription = String(millInfo[\"grindingTrials_fineness_description\"]).split(';');\r\n\r\n\r\n\r\n // setDateOfUpdate(String(millInfo[\"updateDate\"]));\r\n // TODO\r\n if (String(millInfo[\"updateDate\"]) != \"null\") {\r\n dateOfUpdate = String(millInfo[\"updateDate\"]);\r\n }\r\n else {\r\n dateOfUpdate = \"07.07.2021\";\r\n }\r\n\r\n\r\n let autoCompleteReturn = (\r\n {\r\n setOpen(true);\r\n }}\r\n onClose={() => {\r\n setOpen(false);\r\n }}\r\n getOptionSelected={(option, value) => option.name === value.name}\r\n getOptionLabel={(option) => option.name}\r\n defaultValue={{ name: finalChoosenTechnologie }} // IMPORTANT: https://stackoverflow.com/questions/61213634/assigning-default-value-to-autocomplete-in-materialui-and-react-js\r\n options={options}\r\n loading={loading}\r\n onChange={(event, value) => {\r\n // setCountMill(value.name);\r\n // setMillID(value.id);\r\n // setGetID(value.id);\r\n // setPointerIsURL(false);\r\n getDataFromDatabase(value.id);\r\n // //console.log(\"open id\" +value.id)\r\n // var link = \"manuelSearch?name=\"+value.name\r\n // var win = window.open(link, '_self');\r\n // win.focus();\r\n }}\r\n renderInput={(params) => (\r\n \r\n {loading ? (\r\n \r\n ) : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n />\r\n );\r\n\r\n\r\n let contentPicture = \"\";\r\n if (exists_picture) {\r\n\r\n var pathPicture = \"/TechnologyInformation/\" + mill_id + \"/picture.jpg\";\r\n\r\n contentPicture = (\r\n \r\n )\r\n\r\n }\r\n\r\n\r\n\r\n\r\n let contentReturn = (\r\n
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n {contentPicture}\r\n \r\n
    \r\n

    {description}

    \r\n
      
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n

    Operation mode:

    \r\n
    \r\n

    {circuit}, {operation_mode}

    \r\n
    \r\n

    Material hardness:

    \r\n
    \r\n

    {material_hardness}

    \r\n
    \r\n

    Technology category:

    \r\n
    \r\n

    {mill_category}

    \r\n
    \r\n

    Industry sector:

    \r\n
    \r\n

    {industry_sector}

    \r\n
    \r\n
    \r\n );\r\n\r\n\r\n\r\n\r\n\r\n let contentTrials;\r\n //console.log(\"GrindingTrial_mill_name: \" + GrindingTrial_mill_name)\r\n if (trial_info != null && trial_info.length > 0 && millInfo != \"\" && GrindingTrial_mill_name != null) {\r\n\r\n var labelsTrials = [];\r\n var xdata = [];\r\n var ydata = [];\r\n\r\n\r\n //if (data_Surface != null && data_Surface.length > 0) {\r\n\r\n //}\r\n //if (data_Fineness != null && data_Fineness.length > 0) {\r\n\r\n //}\r\n //if (data_PSD != null && data_PSD.length > 0) {\r\n\r\n //}\r\n //if (data_Throughput != null && data_Throughput.length > 0) {\r\n\r\n //}\r\n //if (data_Energy != null && data_Energy.length > 0) {\r\n\r\n\r\n //} \r\n\r\n\r\n\r\n\r\n var xLabel = ['Spec. surface acc. to Blaine in cm²/g']\r\n var yLabel = ['Spec. energy demand in kWh/t']\r\n var isDataAvailable = \"\";\r\n // Select Data\r\n if (valueXAxes == \"Spec. energy demand\") {\r\n\r\n if (data_Energy != null && data_Energy.length > 0 && data_Energy != \"nan\") {\r\n xdata = data_Energy;\r\n xLabel = ['Spec. energy demand in kWh/t']\r\n isDataAvailable = \"\"\r\n\r\n } else {\r\n isDataAvailable = \"No data available\"\r\n }\r\n } else if (valueXAxes == \"Fineness\") {\r\n\r\n if (data_Fineness != null && data_Fineness.length > 0 && data_Fineness != \"nan\") {\r\n xdata = data_Fineness;\r\n xLabel = data_finenessDescription\r\n isDataAvailable = \"\"\r\n } else {\r\n isDataAvailable = \"No data available\"\r\n }\r\n } else if (valueXAxes == \"Width of PSD\") {\r\n if (data_PSD != null && data_PSD.length > 0 && data_PSD != \"nan\") {\r\n xdata = data_PSD;\r\n xLabel = ['RRSB n']\r\n isDataAvailable = \"\"\r\n } else {\r\n isDataAvailable = \"No data available\"\r\n }\r\n } else if (valueXAxes == \"Throughput\") {\r\n if (data_Throughput != null && data_Throughput.length > 0 && data_Throughput != \"nan\") {\r\n xdata = data_Throughput;\r\n xLabel = ['Throughput in t/h']\r\n isDataAvailable = \"\"\r\n } else {\r\n isDataAvailable = \"No data available\"\r\n }\r\n } else {\r\n if (data_Surface != null && data_Surface.length > 0 && data_Surface != \"nan\") {\r\n xdata = data_Surface;\r\n xLabel = ['Spec. surface acc. to Blaine in cm²/g']\r\n isDataAvailable = \"\"\r\n } else {\r\n isDataAvailable = \"No data available\"\r\n }\r\n }\r\n\r\n //console.log(\"data_Throughput\"+data_Throughput)\r\n\r\n if (valueYAxes == \"Spec. surface acc. to Blaine in cm²/g\") {\r\n ydata = data_Surface;\r\n yLabel = ['Spec. surface acc. to Blaine in cm²/g']\r\n } else if (valueYAxes == \"Fineness\") {\r\n ydata = data_Fineness;\r\n yLabel = ['D50 in µm']\r\n } else if (valueYAxes == \"Width of PSD\") {\r\n ydata = data_PSD;\r\n yLabel = ['RRSB n']\r\n } else if (valueYAxes == \"Throughput\") {\r\n ydata = data_Throughput;\r\n yLabel = ['Throughput in t/h']\r\n } else {\r\n\r\n ydata = data_Energy;\r\n yLabel = ['Spec. energy demand in kWh/t']\r\n }\r\n //console.log(valueXAxes)\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n var dataset = []\r\n var d = []\r\n\r\n var borderdash = [[0, 0], [10, 5], [2, 2]]\r\n var bd = '';\r\n var c = '';\r\n\r\n\r\n var colour = [\r\n 'rgb(0, 87, 157)',\r\n 'rgb(95, 82, 78)',\r\n 'rgb(250, 175, 20)',\r\n 'rgb(98, 132, 188)',\r\n 'rgb(255, 26, 0)',\r\n 'rgb(158, 141, 136)',\r\n 'rgb(0, 152, 135)',\r\n 'rgb(164, 184, 216)',\r\n 'rgb(193, 182, 179)',\r\n 'rgb(0, 0, 0)',\r\n ]\r\n\r\n var ic = -1;\r\n\r\n for (var i = 0; i < GrindingTrial_id.length; i++) {\r\n\r\n d = []\r\n\r\n\r\n // for (var ii = 0; ii < xdata.length; ii++) {\r\n // d.push({ x: xdata[i].map(x => +x), y: ydata[i].map(x => +x) });\r\n //}\r\n if (xdata[i] != null && xdata[i].length > 0) {\r\n\r\n for (var ii = 0; ii < xdata[i].length - 1; ii++) {\r\n d.push({ x: String(xdata[i]).split`,`.map(x => +x)[ii], y: String(ydata[i]).split`,`.map(x => +x)[ii] });\r\n }\r\n\r\n\r\n\r\n var GrindingTrials_GrindingAid_sign = \"\";\r\n if (GrindingTrials_GrindingAid.split(\";\")[i] == 1.0) {\r\n GrindingTrials_GrindingAid_sign = \"*\";\r\n }\r\n\r\n var tmpSplit = GrindingTrial_DevelopmentState.split(\";\")[i];\r\n var GrindingTrial_DevelopmentState_sign = \"a\";\r\n if (tmpSplit == 2) {\r\n GrindingTrial_DevelopmentState_sign = \"b\";\r\n } else if (tmpSplit == 3) {\r\n GrindingTrial_DevelopmentState_sign = \"c\";\r\n } else if (tmpSplit == 4) {\r\n GrindingTrial_DevelopmentState_sign = \"d\";\r\n }\r\n\r\n\r\n\r\n\r\n\r\n labelsTrials[i] = GrindingTrial_id[i] + ' - ' + GrindingTrial_mill_name.split(\";\")[i] + ': ' + GrindingTrial_Material.split(\";\")[i] + ', FeedD50% ' + precise(GrindingTrial_feedSize.split(\";\")[i]) + 'mm ' + GrindingTrial_OperationMode.split(\";\")[i] + ') ' + GrindingTrial_DevelopmentState_sign + ') ' + GrindingTrials_GrindingAid_sign;\r\n\r\n if (i <= colour.length) {\r\n bd = borderdash[0];\r\n\r\n } else if (i > colour.length) {\r\n bd = borderdash[1];\r\n\r\n } else if (i > colour.length * 2) {\r\n bd = borderdash[2];\r\n\r\n }\r\n\r\n\r\n if (ic > colour.length) {\r\n ic = 0;\r\n } else {\r\n ic = ic + 1;\r\n }\r\n\r\n\r\n dataset.push({\r\n label: labelsTrials[i],\r\n data: d,\r\n showLine: true,\r\n fill: false,\r\n\r\n borderDash: bd,\r\n borderColor: colour[ic],\r\n pointBackgroundColor: colour[ic],\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: colour[ic]\r\n })\r\n }\r\n }\r\n\r\n\r\n const data = {\r\n labels: \"\",\r\n datasets: [],\r\n };\r\n\r\n data.datasets = dataset;\r\n\r\n var dataAvailable = true;\r\n if (data.datasets.length == 0) {\r\n\r\n dataAvailable = false;\r\n\r\n } else {\r\n dataAvailable = true;\r\n }\r\n\r\n\r\n\r\n\r\n const options = {\r\n legend: {\r\n display: true,\r\n position: 'bottom',\r\n },\r\n scales: {\r\n yAxes: [{\r\n scaleLabel: {\r\n display: true,\r\n labelString: yLabel\r\n }\r\n }],\r\n xAxes: [{\r\n scaleLabel: {\r\n display: true,\r\n labelString: xLabel\r\n }\r\n }]\r\n\r\n },\r\n\r\n tooltips: {\r\n\r\n callbacks: {\r\n title: function (tooltipItem) {\r\n return yLabel + \" /\" + xLabel;\r\n },\r\n\r\n label: function (tooltipItem) {\r\n return Number(tooltipItem.yLabel) + \" / \" + Number(tooltipItem.xLabel);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n };\r\n\r\n // const optionsXAxes = ['Spec. energy demand', 'Fineness', 'Spec. surface acc. to Blaine in cm²/g', 'Width of PSD', 'Throughput'];\r\n\r\n\r\n\r\n\r\n contentTrials = (\r\n
    \r\n

    \r\n Results from grinding trials
    \r\n\r\n\r\n
    \r\n
    \r\n {\r\n setValueXAxes(newValue);\r\n }}\r\n inputValue={inputValueXAxes}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValueXAxes(newInputValue);\r\n }}\r\n id=\"controllable-states-demo\"\r\n\r\n options={optionsXAxes}\r\n style={{ width: 300 }}\r\n renderInput={(params) => }\r\n />\r\n
    \r\n
    \r\n {\r\n setValueYAxes(newValue);\r\n }}\r\n inputValue={inputValueYAxes}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValueYAxes(newInputValue);\r\n }}\r\n id=\"controllable-states-demo\"\r\n\r\n options={optionsXAxes}\r\n style={{ width: 300 }}\r\n renderInput={(params) => }\r\n />\r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n {isDataAvailable}\r\n \r\n\r\n\r\n
    \r\n
    \r\n\r\n Please note annotations:\r\n\r\n
    \r\n

    \r\n 0)
    \r\n 1)
    \r\n 2)
    \r\n 3)
    \r\n 4)
    \r\n 5)
    \r\n 6)
    \r\n

    \r\n
    \r\n\r\n

    \r\n Batch
    \r\n OC
    \r\n CC - Screen
    \r\n CC - Static Separator
    \r\n CC - Separator 1. generation
    \r\n CC - Separator 2. generation
    \r\n CC - Separator 3. generation

    \r\n OC = Open Circuit
    \r\n CC = Closed Circuit
    \r\n

    \r\n
    \r\n

    \r\n a)
    \r\n b)
    \r\n c)
    \r\n d)
    \r\n\r\n

    \r\n
    \r\n\r\n

    \r\n Laboratory
    \r\n \tSemi-Industrial / technical scale
    \r\n \tPrototype cement industry
    \r\n \tIndustrial production cement industry
    \r\n\r\n

    \r\n
    \r\n\r\n

    \r\n *Grinding aids used\r\n

    \r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n )\r\n }\r\n\r\n\r\n let contentReportTrials;\r\n\r\n if (exists_report) {\r\n\r\n var pathReport =\r\n \"/TechnologyInformation/\" + mill_id + \"/report_trial.pdf\";\r\n\r\n\r\n\r\n contentReportTrials = (\r\n

    \r\n
    \r\n Download short report
    \r\n Trials conducted by {trial_info}\r\n


    \r\n\r\n
    \r\n\r\n
    \r\n )\r\n }\r\n\r\n let industrialScaleSlider;\r\n\r\n\r\n var trl_calc = 100 / 8 * (industrialScale - 1);\r\n\r\n if (industrialScale > 0) {\r\n\r\n\r\n const marksScale = [\r\n {\r\n value: 0,\r\n label: \"1\",\r\n },\r\n {\r\n value: (1 * 100) / 8,\r\n label: \"2\",\r\n },\r\n {\r\n value: (2 * 100) / 8,\r\n label: \"3\",\r\n },\r\n {\r\n value: (3 * 100) / 8,\r\n label: \"4\",\r\n },\r\n {\r\n value: (4 * 100) / 8,\r\n label: \"5\",\r\n },\r\n {\r\n value: (5 * 100) / 8,\r\n label: \"6\",\r\n },\r\n {\r\n value: (6 * 100) / 8,\r\n label: \"7\",\r\n },\r\n {\r\n value: (7 * 100) / 8,\r\n label: \"8\",\r\n },\r\n {\r\n value: (8 * 100) / 8,\r\n label: \"9\",\r\n },\r\n ];\r\n\r\n var trlDescription;\r\n\r\n if (industrialScale == 1) {\r\n trlDescription = \"TRL 1 – Basic principles observed\";\r\n\r\n } else if (industrialScale == 2) {\r\n trlDescription = \"TRL 2 – Technology concept formulated\";\r\n\r\n } else if (industrialScale == 3) {\r\n trlDescription = \"TRL 3 – Experimental proof of concept\";\r\n\r\n } else if (industrialScale == 4) {\r\n trlDescription = \"TRL 4 – Technology validated in lab\";\r\n\r\n } else if (industrialScale == 5) {\r\n trlDescription =\r\n \"TRL 5 – Technology validated in relevant environment (industrially relevant environment in the case of key enabling technologies)\";\r\n\r\n } else if (industrialScale == 6) {\r\n trlDescription =\r\n \"TRL 6 – Technology demonstrated in relevant environment (industrially relevant environment in the case of key enabling technologies)\";\r\n\r\n } else if (industrialScale == 7) {\r\n trlDescription =\r\n \"TRL 7 – System prototype demonstration in operational environment\";\r\n\r\n } else if (industrialScale == 8) {\r\n trlDescription = \"TRL 8 – System complete and qualified\";\r\n\r\n } else if (industrialScale == 9) {\r\n trlDescription =\r\n \"TRL 9 – Actual system proven in operational environment (competitive manufacturing in the case of key enabling technologies; or in space)\";\r\n\r\n }\r\n\r\n trl_calc = 100 / 8 * (industrialScale - 1);\r\n\r\n\r\n industrialScaleSlider = (\r\n
    \r\n
    \r\n
    \r\n Technology Readyness Level (TRL EU)\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n\r\n
    \r\n {trlDescription}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n let accuracyIndexSlider;\r\n\r\n const marksAccuracy = [\r\n {\r\n value: 0,\r\n label: \"No data available\",\r\n },\r\n {\r\n value: 33,\r\n label: \"Expert estimation\",\r\n },\r\n {\r\n value: 66,\r\n label: \"Literature study\",\r\n },\r\n {\r\n value: 100,\r\n label: \"Grinding trials\",\r\n },\r\n ];\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n if (accuracyIndex) {\r\n accuracyIndexSlider = (\r\n
    \r\n
    \r\n
    \r\n Accuracy Index\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n var pathFunctionPicture =\r\n \"/TechnologyInformation/\" + mill_id + \"/function.jpg\";\r\n\r\n let contentFunctionPicture;\r\n if (exists_picture_function) {\r\n contentFunctionPicture = (\r\n
    \r\n

    \r\n Function principle

    \r\n
    \r\n \r\n
    \r\n

    \r\n
    \r\n );\r\n }\r\n\r\n let contentVideo;\r\n if (video_link != null && video_link.length > 0) {\r\n contentVideo = (\r\n
    \r\n
    Link to video (external)
    \r\n

    \r\n
    \r\n );\r\n }\r\n\r\n let contentSource;\r\n //console.log(\"source:\" + source)\r\n if (source != null && source.length > 0) {\r\n contentSource = (\r\n
    \r\n
    \r\n Source:\r\n
    \r\n {source}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n let contentSourcePicture;\r\n if (source_picture != null && source_picture.length > 0) {\r\n contentSourcePicture = (\r\n
    \r\n
    \r\n Source picture:\r\n
    \r\n {source_picture}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n let contentSourceFunctionPicture;\r\n if (source_FunctionPicture != null && source_FunctionPicture.length > 0) {\r\n contentSourceFunctionPicture = (\r\n
    \r\n
    \r\n Source function-picture:\r\n
    \r\n {source_FunctionPicture}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n let contentManufacturers;\r\n if (manufacturers != null && manufacturers.length > 0) {\r\n contentManufacturers = (\r\n
    \r\n
    \r\n Manufacturers:\r\n
    \r\n {manufacturers}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n\r\n\r\n\r\n useEffect(() => {\r\n let active = true;\r\n\r\n //if (!loading) {\r\n // return [];\r\n //}\r\n\r\n (async () => {\r\n\r\n const mills = await fetch(\"api/mills\")\r\n .then(response => {\r\n return response.json();\r\n })\r\n\r\n if (active) {\r\n setOptions(Object.keys(mills).map((id) => mills[id]));\r\n setGetID(Object.keys(mills).map((id) => mills[id]));\r\n }\r\n })();\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [loading]);\r\n\r\n var contentKeywords;\r\n if (keywords != null) {\r\n contentKeywords = (\r\n
    \r\n
    \r\n Keywords:\r\n
    \r\n {keywords}\r\n
    \r\n )\r\n }\r\n\r\n\r\n var mailSubject = \"mailto:fgt-support@ecra-online.org?subject=Ecra-FGT_Feedback \" + mill_name;\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n

    ECRA Technology Database

    \r\n
    \r\n {autoCompleteReturn}\r\n
    \r\n
    \r\n

    {mill_name}

    \r\n\r\n\r\n \r\n Feedback \r\n \r\n \r\n \r\n\r\n\r\n\r\n
    \r\n {contentReturn}\r\n {contentFunctionPicture}\r\n {contentTrials}\r\n {contentReportTrials}\r\n {industrialScaleSlider}\r\n {accuracyIndexSlider}\r\n {contentVideo}\r\n {contentSource}\r\n {contentSourcePicture}\r\n {contentSourceFunctionPicture}\r\n {contentManufacturers}\r\n {contentKeywords}\r\n
    \r\n
    \r\n Last update of data: {dateOfUpdate}\r\n
    \r\n
    \r\n );\r\n\r\n}\r\n\r\nexport default ManuelSearch;\r\n","import React from \"react\";\r\nimport \"../../SCSS/styleInfoButton.scss\";\r\n\r\n//Template: https://codepen.io/MrJonesOBA/pen/jEzwbJ\r\n\r\nfunction InfoButtonApp() {\r\n return (\r\n
    \r\n
    ?
    \r\n\r\n
    \r\n

    Help: Type of Application

    \r\n
    \r\n

    \r\n here select the type of application that\r\n best adapts to your machining material\r\n

    \r\n
    \r\n
    \r\n

    hover over me

    \r\n
    \r\n
    \r\n
    \r\n

    \r\n If you leave this area blank, all types of\r\n technology will be suggested\r\n

    \r\n
    \r\n
    \r\n

    \r\n \r\n Side descriptions for individual units will be\r\n available soon.\r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default InfoButtonApp;\r\n","import React, { useState } from \"react\";\r\nimport Backdrop from \"@material-ui/core/Backdrop\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { IconButton, Paper, Tab, Tabs } from \"@material-ui/core\";\r\nimport InfoButtonApp from \"./infoButton_App\";\r\nimport HelpOutlineIcon from \"@material-ui/icons/HelpOutline\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root1: {\r\n display: \"flex\",\r\n //width: \"40px\",\r\n margin: \"auto\",\r\n flexWrap: \"wrap\",\r\n \"& > *\": {\r\n width: theme.spacing(\"auto\"),\r\n height: theme.spacing(\"auto\"),\r\n },\r\n },\r\n root2: {\r\n justifyContent: \"center\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n \"& > *\": {\r\n width: theme.spacing(120),\r\n height: theme.spacing(\"auto\"),\r\n },\r\n },\r\n root3: {\r\n justifyContent: \"center\",\r\n },\r\n\r\n\r\n inner: {\r\n textAlign: \"justify\",\r\n justifyContent: \"center\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n width: \"90%\",\r\n },\r\n\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n}));\r\n\r\nexport default function InfoButtonMil() {\r\n const [value, setValue] = useState();\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue);\r\n };\r\n\r\n const classes = useStyles();\r\n const [open, setOpen] = useState(false);\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleToggle = () => {\r\n setOpen(!open);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n {/* */}\r\n
    \r\n \r\n
    \r\n

      Technology Selection:

    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n After all scenario settings have been defined, there are\r\n two options how to compare different comminution\r\n technologies. The first option is “Select all suitable technologies (Filters applied)”,\r\n means, that all suitable comminution technologies listed in\r\n ECRA’s Technology Database will be involved in the\r\n evaluation process. Please note, that all filed\r\n technologies in this case will be compared in relation\r\n to a cement-based reference, carefully defined by ECRA’s\r\n grinding experts.
    The second option “Choose \r\n individually (Inactive filters)” provides\r\n the possibility to select interesting technologies\r\n individually and to evaluate the defined selection in\r\n respect to either the cement-based reference or a\r\n self-selected technology type. The individual selection\r\n is supported via filter-function to automatically\r\n exclude technology types, which do not match the user’s\r\n interest. All resulting comminution technologies are\r\n displayed in the box for further selection.\r\n

    \r\n To start the evaluation based on the previous\r\n selections, please press the “Start evaluation” button below. The evaluation takes\r\n a few moments, results will be shown in a separate\r\n window.
    Please note that all chosen selections will be\r\n saved during one session and will be reset after logout.\r\n The results from evaluation can be converted to\r\n Microsoft EXCEL© and saved for further use. Published\r\n results should be cited using ECRA’s citation\r\n modalities.

    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n Problems with evaluation procedure? Please contact\r\n ECRA’s Technical Support: \r\n \r\n \r\n

    \r\n fgt-support@ecra-online.org\r\n

    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\n// Icon Quelle: https://material-ui.com/components/material-icons/\r\n// Seitenquelle: view-source:https://material-ui.com/components/material-icons/\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n \"& > svg\": {\r\n margin: theme.spacing(1),\r\n },\r\n },\r\n}));\r\n\r\nfunction IconAllMillsSelected(props) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\nfunction IconAllMillsSelected2(props) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default function IconStart() {\r\n const classes = useStyles();\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nconst theDefaultContext = React.createContext(null);\r\n\r\nexport default theDefaultContext;\r\n","import React, { useState } from \"react\";\r\nimport Backdrop from \"@material-ui/core/Backdrop\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { IconButton, Paper, Tab, Tabs } from \"@material-ui/core\";\r\nimport InfoButtonApp from \"./infoButton_App\";\r\nimport HelpOutlineIcon from \"@material-ui/icons/HelpOutline\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root1: {\r\n display: \"flex\",\r\n width: \"40px\",\r\n margin: \"auto\",\r\n flexWrap: \"wrap\",\r\n \"& > *\": {\r\n width: theme.spacing(\"auto\"),\r\n height: theme.spacing(\"auto\"),\r\n },\r\n },\r\n root2: {\r\n justifyContent: \"center\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n padding: \"5rem 4rem 4rem 4rem\",\r\n \"& > *\": {\r\n width: theme.spacing(120),\r\n height: theme.spacing(\"auto\"),\r\n },\r\n },\r\n root3: {\r\n justifyContent: \"center\",\r\n },\r\n root4Button: {\r\n fullWidth: \"true\",\r\n display: \"flex\",\r\n margin: \"auto\",\r\n flexWrap: \"wrap\",\r\n },\r\n\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n}));\r\n\r\nexport default function InfoButtonFilter() {\r\n const [value, setValue] = useState();\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue);\r\n };\r\n const classes = useStyles();\r\n const [open, setOpen] = useState(false);\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleToggle = () => {\r\n setOpen(!open);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n Which Filters are applied?\r\n \r\n\r\n \r\n {/* */}\r\n
    \r\n \r\n
    \r\n

    Which filters are applied?

    \r\n
    \r\n

    \r\n General Information: Filters are\r\n applied to exclude technology-types from the\r\n evaluation procedure, which to not fulfil the chosen\r\n ‘type of application’. The filters vary with the\r\n ‘type of application’ and are active, if ‘all\r\n suitable technologies’ is selected. For ‘choose\r\n technologies individually’, no filters are applied\r\n for the evaluation. In this case, the evaluation\r\n results need to be interpreted carefully.\r\n

    \r\n
    \r\n

    \r\n Crushing: Applied filters: Not yet\r\n implemented.\r\n

    \r\n
    \r\n

    \r\n Coarse grinding: Applied filters:\r\n If the ‘maximum feed size’ {\"<=\"} 5 mm or the\r\n ‘typical fineness’ {\">=\"} 5 mm a technology is\r\n excluded from evaluation.\r\n

    \r\n
    \r\n

    \r\n Fine grinding: Applied filters: If\r\n the ‘maximum feed size’ {\"<=\"} 5 mm or the ‘typical\r\n fineness’ {\">=\"} 90 µm a technology is excluded from\r\n evaluation.\r\n

    \r\n
    \r\n

    \r\n Ultra-fine grinding: Applied\r\n filters: If the ‘typical fineness’ {\">=\"} 8 µm a\r\n technology is excluded from evaluation.\r\n

    \r\n
    \r\n

    \r\n Raw material grinding: Applied\r\n filters: If the ‘maximum feed size’ {\"<=\"} 5 mm or\r\n the ‘typical fineness’ {\">=\"} 90 µm a technology is\r\n excluded from evaluation. The applied bonus for\r\n ‘drying’ has been increased.\r\n

    \r\n
    \r\n \r\n Press anywhere on this page to close this info\r\n window.\r\n \r\n
    \r\n
    \r\n\r\n {/* \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    */}\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useState, useContext } from \"react\";\r\nimport InfoButtonMil from \"../../../../Container/InfoButton/infoButton_Mil\";\r\nimport IconAllMillsSelected from \"../../../../Container/Icons/iconSelectMill\";\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormLabel from \"@material-ui/core/FormLabel\";\r\nimport theDefaultContext from \"../defaultContext\";\r\n\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport { Button } from \"@material-ui/core\";\r\n//import { event } from \"jquery\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n//import { useParams } from \"react-router\";\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport InfoButtonFilter from \"../../../../Container/InfoButton/infoButton_Filter\";\r\nimport {\r\n} from \"@material-ui/core\";\r\n\r\n//Original Template, Checkbox: https://material-ui.com/components/autocomplete/#checkboxes\r\n\r\n//How to get value from selected object in list: https://stackoverflow.com/questions/58666189/getting-the-value-in-the-react-material-ui-autocomplete\r\n\r\n//Lösungsansatz: https://www.codegrepper.com/code-examples/typescript/how+to+get+value+from+autocomplete+material+ui\r\n// https://hub.packtpub.com/implementing-autocompletion-in-a-react-material-ui-application-tutorial/\r\n\r\nexport default function ArticelMillSelect() {\r\n const { selectMillReceivedValue, setSelectMillReceivedValue } =\r\n useContext(theDefaultContext);\r\n const { millSelectRadioStatus, setMillSelectRadioStatus } =\r\n useContext(theDefaultContext);\r\n const { millSelectionUserChoice, setMillSelectionUserChoice } =\r\n useContext(theDefaultContext); // gibt FinalScore der ausgewählten Mühlen wieder\r\n const { millSelectionCountMill, setMillSelectionCountMill } =\r\n useContext(theDefaultContext); // Gibt Namen der ausgewählten Mühlen wieder\r\n const { finalValueTypeOfApp } = useContext(theDefaultContext);\r\n const { allMillsWithoutFilters, setAllMillsWithoutFilters } =\r\n useContext(theDefaultContext);\r\n\r\n const [value, setValue] = useState(\"all\");\r\n const [checked, setChecked] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n setValue(event.target.value);\r\n };\r\n\r\n const handleCheckbox = (event) => {\r\n setChecked(event.target.checked);\r\n };\r\n setAllMillsWithoutFilters(checked);\r\n\r\n const stylesButtonAddList = {\r\n //Button: \"Add to List\"\r\n rootButton: {\r\n marginTop: 25,\r\n marginLeft: 5,\r\n padding: \"0.9rem \",\r\n display: \"inline-block\",\r\n // backgroundColor: \"#ecf01494\",\r\n },\r\n rootCombobox: {\r\n padding: \"0.5rem 0rem 1rem 0rem\", // Abstand nach: Höhre BreiteRechts Tiefe BreiteLinks\r\n display: \"inline-block\",\r\n\r\n // backgroundColor: \"#ecf01494\",\r\n },\r\n };\r\n\r\n const useStylesButton = makeStyles(stylesButtonAddList);\r\n const classButton = useStylesButton();\r\n\r\n const [open, setOpen] = useState(false);\r\n const [keys, setKeys] = useState(0);\r\n\r\n const [options, setOptions] = useState([]);\r\n const [millList, setMillList] = useState([]);\r\n const [millListNoDublicates, setMillListNoDublicates] = useState([]);\r\n const [millListAll, setMillListAll] = useState([]);\r\n const [idList, setIdList] = useState([]);\r\n const [nameList, setNameList] = useState([]);\r\n const [countMill, setCountMill] = useState(options.name);\r\n const [getId, setGetID] = useState(options.id);\r\n const [idFromAllMills, setIdFromAllMills] = useState(options);\r\n const [nameFromAllMills, setnameFromAllMills] = useState(options);\r\n const [openListAll, setOpenListAll] = useState(options.name);\r\n //const [disableAddToDoButton, setDisableAddToDoButton] = useState(false);\r\n\r\n // const [statusFilterMillSelection, setStatusFilterMillSelection] =\r\n // useState(true);\r\n let statusFilterMillSelection = true;\r\n\r\n const loading = open && options.length === 0;\r\n\r\n const millListAllStatic = [\r\n // diese Variable dient nur für statische Werte für die Combobox (siehe dataSummary) und zur Orientierung,\r\n //in welchem Object-Format die Mühlen als Liste korrekt übertragen werden.\r\n { id: 48, Millname: \"Impact crusher (rotor)\", keys: 0 },\r\n { id: 48, Millname: \"Ball ring mill\", keys: 2 },\r\n { id: 11, Millname: \"Fan beater mill\", keys: 3 },\r\n { id: 6, Millname: \"EDS multishaft mill\", keys: 4 },\r\n { id: 14, Millname: \"Griffin mill\", keys: 5 },\r\n { id: 45, Millname: \"Beater mill\", keys: 6 },\r\n { id: 17, Millname: \"Hammer mill\", keys: 7 },\r\n { id: 40, Millname: \"Raymond mill\", keys: 8 },\r\n { id: 1, Millname: \"ARGO mill\", keys: 10 },\r\n { id: 61, Millname: \"Vibrating mill\", keys: 11 },\r\n { id: 42, Millname: \"Ring roller mill\", keys: 12 },\r\n { id: 12, Millname: \"Opposed jet mill\", keys: 13 },\r\n { id: 34, Millname: \"Planetary mill\", keys: 14 },\r\n { id: 27, Millname: \"Cyro grinding\", keys: 15 },\r\n { id: 32, Millname: \"Mortar mill\", keys: 16 },\r\n { id: 44, Millname: \"Slice mill\", keys: 17 },\r\n ];\r\n const [millListAllStaticSTATE, setMillListAllStaticSTATE] =\r\n useState(millListAllStatic);\r\n setMillSelectRadioStatus(value);\r\n\r\n useEffect(() => {\r\n (async () => {\r\n const response = await fetch(\"api/millsSC\");\r\n const millsAll = await response.json();\r\n\r\n setOptions(Object.keys(millsAll).map((id) => millsAll[id]));\r\n setOpenListAll(millsAll);\r\n })();\r\n }, [selectMillReceivedValue]);\r\n\r\n useEffect(() => {\r\n setMillListNoDublicates([\r\n ...millList\r\n .reduce((map, obj) => map.set(obj.Millname, obj), new Map())\r\n .values(),\r\n ]); //Dublikate verhindern. Damit keine Mühlennamen doppelt in der Liste auftauchen\r\n\r\n setMillSelectionUserChoice(ArrayWithNoDublicatesforID); /// only Array with ID //millListOnlyId\r\n }, [millList]);\r\n\r\n let AddTaskAllMills = () => {\r\n var countMillDetailsAll = {\r\n id: idFromAllMills, // ID\r\n Millname: nameFromAllMills, //Name aus SQL Liste\r\n };\r\n\r\n setMillListAll([...millListAll, countMillDetailsAll]);\r\n for (var i = 0; i >= 60; i++) {\r\n setIdFromAllMills(...idFromAllMills, openListAll[i].id);\r\n setnameFromAllMills(openListAll[i].name);\r\n //console.log(\r\n // \"setMillListAll wurde ausgelöst-> IdFromAllMills(article_MillSelect.js): \",\r\n // idFromAllMills\r\n // );\r\n }\r\n };\r\n\r\n /////// Methoden für manuelle Mill-Liste: ///////////\r\n const AddTask = () => {\r\n if (countMill !== null) {\r\n var countMillDetails = {\r\n id: getId, // ID\r\n Millname: countMill, //Name aus SQL Liste\r\n delete: false, // für Symbol; Mühle aus Liste entfernen\r\n keys: keys,\r\n };\r\n }\r\n\r\n if (countMill !== undefined) {\r\n setKeys(keys + 1);\r\n\r\n setMillList([...millList, countMillDetails]);\r\n setIdList([...idList, countMillDetails.id]);\r\n setNameList([...nameList, countMillDetails.Millname]);\r\n }\r\n };\r\n\r\n const deleteTask = (e, id) => {\r\n e.preventDefault();\r\n setMillList(millList.filter((t) => t.id != id)); //gelöschte Mühlen müssen auch aus dem Array gelöscht werden\r\n setMillListNoDublicates(millListNoDublicates.filter((t) => t.id != id));\r\n };\r\n\r\n const ObjectToArray = millList.map((value) => {\r\n return value.id;\r\n });\r\n\r\n let ArrayWithNoDublicatesforID = [];\r\n\r\n ArrayWithNoDublicatesforID = [\r\n ...ObjectToArray.reduce(\r\n (map, obj) => map.set(obj, obj),\r\n new Map()\r\n ).values(),\r\n ];\r\n\r\n if (millSelectRadioStatus === \"all\") {\r\n setMillSelectionCountMill(millListAllStaticSTATE);\r\n } else if (millSelectRadioStatus === \"individual\") {\r\n setMillSelectionCountMill(millList);\r\n }\r\n\r\n useEffect(() => {\r\n AddTaskAllMills();\r\n }, [millSelectRadioStatus]);\r\n\r\n useEffect(() => {\r\n let active = true;\r\n\r\n if (!loading) {\r\n return undefined;\r\n }\r\n\r\n (async () => {\r\n const response = await fetch(\"api/millsSC\");\r\n const mills = await response.json();\r\n\r\n if (active) {\r\n setOptions(Object.keys(mills).map((id) => mills[id]));\r\n setGetID(Object.keys(mills).map((id) => mills[id]));\r\n }\r\n })();\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [loading]);\r\n\r\n let text01;\r\n if (idList > [0]) {\r\n text01 = \"List of chosen comminution technologies\";\r\n } else {\r\n text01 = \"\";\r\n }\r\n\r\n let content;\r\n if (value === \"all\") {\r\n content = (\r\n
    \r\n

    \r\n Only suitable technologies are\r\n selected.\r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n );\r\n } else if (value === \"individual\") {\r\n content = (\r\n
    \r\n\r\n \r\n\r\n }\r\n label=\"Add all technologies\"\r\n /> \r\n\r\n\r\n \r\n {\r\n setOpen(true);\r\n }}\r\n onClose={() => {\r\n setOpen(false);\r\n }}\r\n getOptionSelected={(option, value) =>\r\n option.name === value.name\r\n }\r\n getOptionLabel={(option) => option.name}\r\n options={options}\r\n loading={loading}\r\n onChange={(event, value) => {\r\n setCountMill(value.name);\r\n setGetID(value.id);\r\n }}\r\n renderInput={(params) => (\r\n \r\n {loading ? (\r\n \r\n ) : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n \r\n \r\n Add to List\r\n \r\n \r\n
    \r\n

    {text01}

    \r\n
    \r\n {millListNoDublicates !== [] ? (\r\n
      \r\n {millListNoDublicates.map((t) => (\r\n \r\n\r\n
      \r\n {t.Millname}\r\n \r\n\r\n deleteTask(e, t.id)}\r\n >\r\n delete entry \r\n \r\n
      \r\n \r\n ))}\r\n
    \r\n ) : null}\r\n
    \r\n );\r\n }\r\n\r\n // //console.log(\"ObjectToArray: \", ObjectToArray);\r\n // //console.log(\"ArrayWithNoDublicatesforID: \", ArrayWithNoDublicatesforID);\r\n // //console.log(\"millSelectionUserChoice: \", millSelectionUserChoice);\r\n // //console.log(\"Status Filter: \", statusFilterMillSelection);\r\n // //console.log(\"millSelectRadioStatus: \", millSelectRadioStatus);\r\n\r\n return (\r\n
    \r\n
    \r\n

    Selection

    \r\n \r\n \r\n \r\n {/* Choose how you want to analyse: */}\r\n \r\n \r\n }\r\n label=\"Select all suitable technologies (Filters applied)\"\r\n />\r\n\r\n }\r\n label=\"Choose individually (Inactive filters)\"\r\n />\r\n \r\n \r\n
    \r\n {content}\r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport Backdrop from \"@material-ui/core/Backdrop\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { IconButton, Paper, Tab, Tabs } from \"@material-ui/core\";\r\nimport InfoButtonApp from \"./infoButton_App\";\r\nimport HelpOutlineIcon from \"@material-ui/icons/HelpOutline\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root1: {\r\n display: \"flex\",\r\n width: \"40px\",\r\n margin: \"auto\",\r\n flexWrap: \"wrap\",\r\n \"& > *\": {\r\n width: theme.spacing(\"auto\"),\r\n height: theme.spacing(\"auto\"),\r\n },\r\n },\r\n root2: {\r\n justifyContent: \"center\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n padding: \"5rem 4rem 4rem 4rem\",\r\n \"& > *\": {\r\n width: theme.spacing(120),\r\n height: theme.spacing(\"auto\"),\r\n },\r\n },\r\n root3: {\r\n justifyContent: \"center\",\r\n },\r\n\r\n inner: {\r\n textAlign: \"justify\",\r\n justifyContent: \"center\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n width: \"90%\",\r\n },\r\n\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n}));\r\n\r\nexport default function InfoButtonGui() {\r\n const [value, setValue] = useState();\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue);\r\n };\r\n const classes = useStyles();\r\n const [open, setOpen] = useState(false);\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleToggle = () => {\r\n setOpen(!open);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n {/* */}\r\n
    \r\n \r\n
    \r\n

    Guideline:

    \r\n
    \r\n

    \r\n

    \r\n
    \r\n Here you will find instructions and\r\n explanations for each topic.\r\n
    \r\n
    \r\n For more detailed infomation for each article click\r\n on the little (?) above.\r\n
    \r\n
    \r\n
    \r\n

    \r\n
    \r\n
    \r\n\r\n {/* \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    */}\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","//import { Button } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport InfoButtonGui from \"../../../../Container/InfoButton/infoButton_Gui\";\r\n\r\nexport default function ArticelGuideline() {\r\n return (\r\n
    \r\n
    \r\n

    User Guide

    \r\n \r\n

    \r\n {/* Old Version: \r\n Use Icon above to have a look at the instruction manual for each Article. */}\r\n Click on icon above to view the user guide for ECRA`s\r\n Technology-Evaluation-Tool.\r\n

    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport Backdrop from \"@material-ui/core/Backdrop\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { IconButton, Paper, Tab, Tabs } from \"@material-ui/core\";\r\nimport InfoButtonApp from \"./infoButton_App\";\r\nimport HelpOutlineIcon from \"@material-ui/icons/HelpOutline\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root1: {\r\n display: \"flex\",\r\n width: \"40px\",\r\n margin: \"auto\",\r\n flexWrap: \"wrap\",\r\n \"& > *\": {\r\n width: theme.spacing(\"auto\"),\r\n height: theme.spacing(\"auto\"),\r\n },\r\n },\r\n root2: {\r\n justifyContent: \"center\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n \"& > *\": {\r\n width: theme.spacing(120),\r\n height: theme.spacing(\"auto\"), \r\n },\r\n },\r\n root3: {\r\n justifyContent: \"center\",\r\n },\r\n\r\n inner: {\r\n textAlign: \"justify\",\r\n justifyContent: \"center\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n width: \"90%\",\r\n },\r\n\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n}));\r\n\r\nexport default function InfoButtonSce() {\r\n const [value, setValue] = useState();\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue);\r\n };\r\n const classes = useStyles();\r\n const [open, setOpen] = useState(false);\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleToggle = () => {\r\n setOpen(!open);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n {/* */}\r\n
    \r\n \r\n
    \r\n

      Scenarios:

    \r\n
    \r\n
    \r\n
    \r\n To evaluate various comminution technologies to a\r\n cement-based reference, ECRA’s grinding expert team has\r\n identified 6 different categories, which consist of\r\n ‘quality’, ‘feed / flexibility’, ‘operation’,\r\n ‘maintenance’, ‘efficiency’ and ‘environmental impact’.
    \r\n Each of the categories is subdivided into several\r\n different criteria to perform a more detailed\r\n evaluation. The categories and related criteria are\r\n described below. It should be noted, that CAPEX and OPEX\r\n are deliberately excluded from the evaluation procedure\r\n in order to avoid a too strong influence on the\r\n evaluation results due to economical related or\r\n cost-driven aspects. The implementation of the criterion\r\n ‘wear costs’ is the only exception regarding cost\r\n specific evaluation factors.

    \r\n To start an evaluation, it is necessary to define the\r\n importance for each category and the related subdivided\r\n criteria. The importance settings for each of the\r\n categories and criteria – expressed as percentage\r\n portion – can easily be chosen from default options like\r\n for example the ‘European standard setting’. In this\r\n case, no precise knowledge is necessary to run the\r\n evaluation procedure. As you decide for a predefined\r\n scenario (e.g. ‘European standard setting’), all\r\n categories and criteria are assigned to a default\r\n importance setting. Please note, that all carefully\r\n predefined options are the result of decisions made by\r\n ECRA’s grinding experts.

    \r\n However, if ‘customised setting’ is selected, the user\r\n is able to define individual importance settings to\r\n create an evaluation scenario based on personal\r\n experience and requirements. In this case, further\r\n information is given in the description of the\r\n ‘customised setting’ option to run a smooth evaluation.\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {/* \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    */}\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Slider from \"@material-ui/core/Slider\";\r\n\r\n// Slider-API from: https://material-ui.com/api/slider/\r\n\r\nvar markQualtiy = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 28, label: Pre },\r\n];\r\n\r\nvar markFeed = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 15, label: Pre },\r\n];\r\n\r\nvar markOperation = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 17, label: Pre },\r\n];\r\n\r\nvar markMaintenance = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 15, label: Pre },\r\n];\r\n\r\nvar markEfficiency = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 20, label: Pre },\r\n];\r\n\r\nvar markEnvironment = [\r\n { value: 0, label: \"0\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 5, label: Pre },\r\n];\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n width: 300,\r\n },\r\n});\r\n\r\nexport default function SliderCatDefault() {\r\n const classes = useStyles();\r\n const [valueQuality, setValueQualtiy] = useState(28);\r\n const [valueFeed, setValueFeed] = useState(15);\r\n const [valueOperation, setValueOperation] = useState(17);\r\n const [valueMaintenance, setValueMaintenance] = useState(15);\r\n const [valueEfficiency, setValueEfficiency] = useState(20);\r\n const [valueEnvironment, setValueEnvironment] = useState(5);\r\n\r\n const handleChangeQuality = (e, newValue) => {\r\n setValueQualtiy(newValue);\r\n };\r\n\r\n const handleChangeFeed = (e, newValue) => {\r\n setValueFeed(newValue);\r\n };\r\n\r\n const handleChangeOperation = (e, newValue) => {\r\n setValueOperation(newValue);\r\n };\r\n\r\n const handleChangeMaintenance = (e, newValue) => {\r\n setValueMaintenance(newValue);\r\n };\r\n\r\n const handleChangeEfficiency = (e, newValue) => {\r\n setValueEfficiency(newValue);\r\n };\r\n\r\n const handleChangeEnvironment = (e, newValue) => {\r\n setValueEnvironment(newValue);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n Quality: {valueQuality}\r\n \r\n \r\n\r\n \r\n Feed / Flexibility: {valueFeed}\r\n \r\n \r\n\r\n \r\n Operation: {valueOperation}\r\n \r\n \r\n \r\n Maintenance: {valueMaintenance}\r\n \r\n \r\n \r\n Efficiency: {valueEfficiency}\r\n \r\n \r\n \r\n Environmental Impact: {valueEnvironment}\r\n \r\n \r\n
    \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Slider from \"@material-ui/core/Slider\";\r\n\r\n// Slider-API from: https://material-ui.com/api/slider/\r\n\r\nvar markQualtiy = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 15, label: Pre },\r\n];\r\n\r\nvar markFeed = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 10, label: Pre },\r\n];\r\n\r\nvar markOperation = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 15, label: Pre },\r\n];\r\n\r\nvar markMaintenance = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 15, label: Pre },\r\n];\r\n\r\nvar markEfficiency = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 40, label: Pre },\r\n];\r\n\r\nvar markEnvironment = [\r\n { value: 0, label: \"0\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 5, label: Pre },\r\n];\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n width: 300,\r\n },\r\n});\r\n\r\nexport default function SliderCatEnergy() {\r\n const classes = useStyles();\r\n const [valueQuality, setValueQualtiy] = useState(15);\r\n const [valueFeed, setValueFeed] = useState(10);\r\n const [valueOperation, setValueOperation] = useState(15);\r\n const [valueMaintenance, setValueMaintenance] = useState(15);\r\n const [valueEfficiency, setValueEfficiency] = useState(40);\r\n const [valueEnvironment, setValueEnvironment] = useState(5);\r\n\r\n const handleChangeQuality = (e, newValue) => {\r\n setValueQualtiy(newValue);\r\n };\r\n\r\n const handleChangeFeed = (e, newValue) => {\r\n setValueFeed(newValue);\r\n };\r\n\r\n const handleChangeOperation = (e, newValue) => {\r\n setValueOperation(newValue);\r\n };\r\n\r\n const handleChangeMaintenance = (e, newValue) => {\r\n setValueMaintenance(newValue);\r\n };\r\n\r\n const handleChangeEfficiency = (e, newValue) => {\r\n setValueEfficiency(newValue);\r\n };\r\n\r\n const handleChangeEnvironment = (e, newValue) => {\r\n setValueEnvironment(newValue);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n Quality: {valueQuality}\r\n \r\n \r\n\r\n \r\n Feed / Flexibility: {valueFeed}\r\n \r\n \r\n\r\n \r\n Operation: {valueOperation}\r\n \r\n \r\n \r\n Maintenance: {valueMaintenance}\r\n \r\n \r\n \r\n Efficiency: {valueEfficiency}\r\n \r\n \r\n \r\n Environmental Impact: {valueEnvironment}\r\n \r\n \r\n
    \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Slider from \"@material-ui/core/Slider\";\r\n\r\n// Slider-API from: https://material-ui.com/api/slider/\r\n\r\nvar markQualtiy = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 15, label: Pre },\r\n];\r\n\r\nvar markFeed = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 10, label: Pre },\r\n];\r\n\r\nvar markOperation = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 30, label: Pre },\r\n];\r\n\r\nvar markMaintenance = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 25, label: Pre },\r\n];\r\n\r\nvar markEfficiency = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 15, label: Pre },\r\n];\r\n\r\nvar markEnvironment = [\r\n { value: 0, label: \"0\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 5, label: Pre },\r\n];\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n width: 300,\r\n },\r\n});\r\n\r\nexport default function SliderCatOperationAndMaintenance() {\r\n const classes = useStyles();\r\n const [valueQuality, setValueQualtiy] = useState(15);\r\n const [valueFeed, setValueFeed] = useState(10);\r\n const [valueOperation, setValueOperation] = useState(30);\r\n const [valueMaintenance, setValueMaintenance] = useState(25);\r\n const [valueEfficiency, setValueEfficiency] = useState(15);\r\n const [valueEnvironment, setValueEnvironment] = useState(5);\r\n\r\n const handleChangeQuality = (e, newValue) => {\r\n setValueQualtiy(newValue);\r\n };\r\n\r\n const handleChangeFeed = (e, newValue) => {\r\n setValueFeed(newValue);\r\n };\r\n\r\n const handleChangeOperation = (e, newValue) => {\r\n setValueOperation(newValue);\r\n };\r\n\r\n const handleChangeMaintenance = (e, newValue) => {\r\n setValueMaintenance(newValue);\r\n };\r\n\r\n const handleChangeEfficiency = (e, newValue) => {\r\n setValueEfficiency(newValue);\r\n };\r\n\r\n const handleChangeEnvironment = (e, newValue) => {\r\n setValueEnvironment(newValue);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n Quality: {valueQuality}\r\n \r\n \r\n\r\n \r\n Feed / Flexibility: {valueFeed}\r\n \r\n \r\n\r\n \r\n Operation: {valueOperation}\r\n \r\n \r\n \r\n Maintenance: {valueMaintenance}\r\n \r\n \r\n \r\n Efficiency: {valueEfficiency}\r\n \r\n \r\n \r\n Environmental Impact: {valueEnvironment}\r\n \r\n \r\n
    \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Slider from \"@material-ui/core/Slider\";\r\n\r\n// Slider-API from: https://material-ui.com/api/slider/\r\n\r\nvar markQualtiy = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50 },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 45, label: Pre },\r\n];\r\n\r\nvar markFeed = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 15, label: Pre },\r\n];\r\n\r\nvar markOperation = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 10, label: Pre },\r\n];\r\n\r\nvar markMaintenance = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 10, label: Pre },\r\n];\r\n\r\nvar markEfficiency = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 15, label: Pre },\r\n];\r\n\r\nvar markEnvironment = [\r\n { value: 0, label: \"0\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 5, label: Pre },\r\n];\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n width: 300,\r\n },\r\n});\r\n\r\nexport default function SliderCatQuality() {\r\n const classes = useStyles();\r\n const [valueQuality, setValueQualtiy] = useState(45);\r\n const [valueFeed, setValueFeed] = useState(15);\r\n const [valueOperation, setValueOperation] = useState(10);\r\n const [valueMaintenance, setValueMaintenance] = useState(10);\r\n const [valueEfficiency, setValueEfficiency] = useState(15);\r\n const [valueEnvironment, setValueEnvironment] = useState(5);\r\n\r\n const handleChangeQuality = (e, newValue) => {\r\n setValueQualtiy(newValue);\r\n };\r\n\r\n const handleChangeFeed = (e, newValue) => {\r\n setValueFeed(newValue);\r\n };\r\n\r\n const handleChangeOperation = (e, newValue) => {\r\n setValueOperation(newValue);\r\n };\r\n\r\n const handleChangeMaintenance = (e, newValue) => {\r\n setValueMaintenance(newValue);\r\n };\r\n\r\n const handleChangeEfficiency = (e, newValue) => {\r\n setValueEfficiency(newValue);\r\n };\r\n\r\n const handleChangeEnvironment = (e, newValue) => {\r\n setValueEnvironment(newValue);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n Quality: {valueQuality}\r\n \r\n \r\n\r\n \r\n Feed / Flexibility: {valueFeed}\r\n \r\n \r\n\r\n \r\n Operation: {valueOperation}\r\n \r\n \r\n \r\n Maintenance: {valueMaintenance}\r\n \r\n \r\n \r\n Efficiency: {valueEfficiency}\r\n \r\n \r\n \r\n Environmental Impact: {valueEnvironment}\r\n \r\n \r\n
    \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Slider from \"@material-ui/core/Slider\";\r\n\r\n// Slider-API from: https://material-ui.com/api/slider/\r\n\r\nvar markQualtiy = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50 },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 50, label: Pre },\r\n];\r\n\r\nvar markFeed = [\r\n { value: 0 },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 0, label: Pre },\r\n];\r\n\r\nvar markOperation = [\r\n { value: 0 },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 0, label: Pre },\r\n];\r\n\r\nvar markMaintenance = [\r\n { value: 0 },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 0, label: Pre },\r\n];\r\n\r\nvar markEfficiency = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50 },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 50, label: Pre },\r\n];\r\n\r\nvar markEnvironment = [\r\n { value: 0 },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 0, label: Pre },\r\n];\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n width: 300,\r\n },\r\n});\r\n\r\nexport default function SliderCatQualityAndEfficiency() {\r\n const classes = useStyles();\r\n const [valueQuality, setValueQualtiy] = useState(50);\r\n const [valueFeed, setValueFeed] = useState(0);\r\n const [valueOperation, setValueOperation] = useState(0);\r\n const [valueMaintenance, setValueMaintenance] = useState(0);\r\n const [valueEfficiency, setValueEfficiency] = useState(50);\r\n const [valueEnvironment, setValueEnvironment] = useState(0);\r\n\r\n const handleChangeQuality = (e, newValue) => {\r\n setValueQualtiy(newValue);\r\n };\r\n\r\n const handleChangeFeed = (e, newValue) => {\r\n setValueFeed(newValue);\r\n };\r\n\r\n const handleChangeOperation = (e, newValue) => {\r\n setValueOperation(newValue);\r\n };\r\n\r\n const handleChangeMaintenance = (e, newValue) => {\r\n setValueMaintenance(newValue);\r\n };\r\n\r\n const handleChangeEfficiency = (e, newValue) => {\r\n setValueEfficiency(newValue);\r\n };\r\n\r\n const handleChangeEnvironment = (e, newValue) => {\r\n setValueEnvironment(newValue);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n Quality: {valueQuality}\r\n \r\n \r\n\r\n \r\n Feed / Flexibility: {valueFeed}\r\n \r\n \r\n\r\n \r\n Operation: {valueOperation}\r\n \r\n \r\n \r\n Maintenance: {valueMaintenance}\r\n \r\n \r\n \r\n Efficiency: {valueEfficiency}\r\n \r\n \r\n \r\n Environmental Impact: {valueEnvironment}\r\n \r\n \r\n
    \r\n );\r\n}\r\n","import React, { useState, useContext } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Slider from \"@material-ui/core/Slider\";\r\n//import Button from \"@material-ui/core/Button\";\r\n\r\nimport theDefaultContext from \"../../defaultContext\";\r\n\r\nconst inputStyle = {\r\n color: \"blue\",\r\n border: \"none\",\r\n size: \"small\",\r\n margin: \"dense\",\r\n outline: \"none\",\r\n width: 50,\r\n};\r\n\r\n// Slider-API from: https://material-ui.com/api/slider/\r\nvar markQualtiy = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 28, label: Pre },\r\n];\r\n\r\nvar markFeed = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 15, label: Pre },\r\n];\r\n\r\nvar markOperation = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 17, label: Pre },\r\n];\r\n\r\nvar markMaintenance = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 15, label: Pre },\r\n];\r\n\r\nvar markEfficiency = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 20, label: Pre },\r\n];\r\n\r\nvar markEnvironment = [\r\n { value: 0, label: \"0\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 5, label: Pre },\r\n];\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n width: 300,\r\n },\r\n});\r\n\r\nexport default function SliderCatCustom() {\r\n //////////////////////////////////////////////////////////////////////////// Provider Werte:\r\n const { setCategoryQualityCustom } = useContext(theDefaultContext);\r\n const { setCategoryFeedFlexCustom } = useContext(theDefaultContext);\r\n const { setCategoryOperationCustom } = useContext(theDefaultContext);\r\n const { setCategoryMaintenanceCustom } = useContext(theDefaultContext);\r\n const { setCategoryEfficiencyCustom } = useContext(theDefaultContext);\r\n const { setCategoryEnvironmentCustom } = useContext(theDefaultContext);\r\n\r\n /////////////////////////////////////////////////////////////////////////// Slider Values für den Provider:\r\n const classes = useStyles();\r\n const [valueQuality, setValueQualtiy] = useState(28);\r\n const [valueFeed, setValueFeed] = useState(15);\r\n const [valueOperation, setValueOperation] = useState(17);\r\n const [valueMaintenance, setValueMaintenance] = useState(15);\r\n const [valueEfficiency, setValueEfficiency] = useState(20);\r\n const [valueEnvironment, setValueEnvironment] = useState(5);\r\n\r\n //////////////////////////////////// SwitchValue:\r\n const { limitOfSliderCategorie, setLimitOfSliderCategorie } =\r\n useContext(theDefaultContext);\r\n\r\n const handleChangeQuality = (e, newValue) => {\r\n setValueQualtiy(newValue);\r\n setCategoryQualityCustom(newValue / 100);\r\n };\r\n\r\n const handleChangeFeed = (e, newValue) => {\r\n setValueFeed(newValue);\r\n setCategoryFeedFlexCustom(newValue / 100);\r\n };\r\n\r\n const handleChangeOperation = (e, newValue) => {\r\n setValueOperation(newValue);\r\n setCategoryOperationCustom(newValue / 100);\r\n };\r\n\r\n const handleChangeMaintenance = (e, newValue) => {\r\n setValueMaintenance(newValue);\r\n setCategoryMaintenanceCustom(newValue / 100);\r\n };\r\n\r\n const handleChangeEfficiency = (e, newValue) => {\r\n setValueEfficiency(newValue);\r\n setCategoryEfficiencyCustom(newValue / 100);\r\n };\r\n\r\n const handleChangeEnvironment = (e, newValue) => {\r\n setValueEnvironment(newValue);\r\n setCategoryEnvironmentCustom(newValue / 100);\r\n };\r\n\r\n const SumSlider =\r\n valueQuality +\r\n valueFeed +\r\n valueOperation +\r\n valueMaintenance +\r\n valueEfficiency +\r\n valueEnvironment;\r\n\r\n let ColorSumSlider;\r\n if (SumSlider > 100) {\r\n ColorSumSlider = (\r\n
    \r\n {\" \"}\r\n Sum of Categories: {SumSlider} %{\" \"} (Categories must be normalised)\r\n
    \r\n );\r\n setLimitOfSliderCategorie(true);\r\n } else {\r\n ColorSumSlider = (\r\n
    \r\n Sum of Categories: {SumSlider} % (Categories must be normalised)\r\n
    \r\n );\r\n\r\n setLimitOfSliderCategorie(true);\r\n }\r\n if (SumSlider === 100) {\r\n ColorSumSlider = (\r\n
    \r\n {\" \"}\r\n Sum of categories: {SumSlider} %\r\n
    \r\n );\r\n setLimitOfSliderCategorie(false);\r\n }\r\n\r\n return (\r\n
    \r\n {/*

    Warning:

    \r\n

    Do not apply more or less than 100 %

    */}\r\n

    Please note:

    \r\n

    \r\n Values can be typed in by selecting the blue numbers next to\r\n your category.\r\n

    \r\n
    \r\n \r\n Quality:{\" \"}\r\n {\r\n setValueQualtiy(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n Feed / Flexibility:{\" \"}\r\n {\r\n setValueFeed(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n Operation:{\" \"}\r\n {\r\n setValueOperation(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n \r\n Maintenance:{\" \"}\r\n {\r\n setValueMaintenance(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n \r\n Efficiency:{\" \"}\r\n {\r\n setValueEfficiency(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n \r\n Environmental Impact:{\" \"}\r\n {\r\n setValueEnvironment(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n {ColorSumSlider}\r\n
    \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport Backdrop from \"@material-ui/core/Backdrop\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { IconButton, Paper, Tab, Tabs } from \"@material-ui/core\";\r\nimport InfoButtonApp from \"./infoButton_App\";\r\nimport HelpOutlineIcon from \"@material-ui/icons/HelpOutline\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root1: {\r\n display: \"flex\",\r\n width: \"40px\",\r\n margin: \"auto\",\r\n flexWrap: \"wrap\",\r\n \"& > *\": {\r\n width: theme.spacing(\"auto\"),\r\n height: theme.spacing(\"auto\"),\r\n },\r\n },\r\n root2: {\r\n justifyContent: \"center\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n \"& > *\": {\r\n width: theme.spacing(120),\r\n height: theme.spacing(\"auto\"),\r\n },\r\n },\r\n root3: {\r\n justifyContent: \"center\",\r\n },\r\n\r\n\r\n inner: {\r\n textAlign: \"justify\",\r\n justifyContent: \"center\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n width: \"90%\",\r\n },\r\n\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n}));\r\n\r\nexport default function InfoButtonScenarioDetails() {\r\n const [value, setValue] = useState();\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue);\r\n };\r\n const classes = useStyles();\r\n const [open, setOpen] = useState(false);\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleToggle = () => {\r\n setOpen(!open);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n {/* */}\r\n
    \r\n \r\n
    \r\n

      Scenario Details:

    \r\n
    \r\n\r\n
    \r\n
    \r\n As mentioned above, ECRA’s grinding expert team as\r\n identified 5 different categories in order to create a\r\n realistic evaluation procedure. The category ‘quality’\r\n and ‘feed / flexibility’ as well as their derived\r\n criteria are covering the most relevant product related\r\n specifications. Others like ‘operation’, ‘maintenance’,\r\n ‘efficiency’ as well as ‘environmental impact’ reflect\r\n process related aspects. To receive more detailed\r\n information on each criterion, please use the\r\n description therein.\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Slider from \"@material-ui/core/Slider\";\r\n\r\n// Templates from: https://material-ui.com/api/slider/\r\n// https://www.youtube.com/watch?v=6IYo0uBew1c\r\n\r\n//Quality\r\nconst marks01 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 35, label: Pre },\r\n];\r\nconst marks02 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 30, label: Pre },\r\n];\r\nconst marks03 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 20, label: Pre },\r\n];\r\nconst marks04 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 15, label: Pre },\r\n];\r\n\r\n//Feed / Flexibility\r\nconst marks05 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 60, label: Pre },\r\n];\r\nconst marks06 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 40, label: Pre },\r\n];\r\n\r\n//Operation\r\nconst marks07 = [\r\n { value: 0, label: \"0\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 5, label: Pre },\r\n];\r\nconst marks08 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 25, label: Pre },\r\n];\r\nconst marks09 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 20, label: Pre },\r\n];\r\nconst marks10 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 20, label: Pre },\r\n];\r\nconst marks11 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 30, label: Pre },\r\n];\r\n\r\n//Maintenance\r\nconst marks12 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 40, label: Pre },\r\n];\r\nconst marks13 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 20, label: Pre },\r\n];\r\nconst marks14 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 40, label: Pre },\r\n];\r\n\r\n//Efficiency\r\nconst marks15 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100 },\r\n { value: 95, label: Pre },\r\n];\r\nconst marks16 = [\r\n { value: 0 },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 5, label: Pre },\r\n];\r\n\r\n//Environmental Impact\r\nconst marks17 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 30, label: Pre },\r\n];\r\nconst marks18 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50 },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 50, label: Pre },\r\n];\r\nconst marks19 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 20, label: Pre },\r\n];\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n width: 300,\r\n },\r\n});\r\n\r\nexport default function SliderCritDefault() {\r\n const classes = useStyles();\r\n const [valuePSD, setValuePSD] = useState(35);\r\n const [valueMaxFineness, setValueMaxFineness] = useState(30);\r\n const [valueDehydration, setValueDehydration] = useState(20);\r\n const [valueDrying, setValueDrying] = useState(15);\r\n const [valueMaxFeedSize, setValueMaxFeedSize] = useState(60);\r\n const [valueProductChangingTime, setValueProductChangingTime] = useState(\r\n 40\r\n );\r\n const [\r\n valueUnderstandingOfProcess,\r\n setValueUnderstandingOfProcess,\r\n ] = useState(5);\r\n const [valueSensitivityOfProcess, setValueSensitivityOfProcess] = useState(\r\n 25\r\n );\r\n const [\r\n valueControlabilityPersonnel,\r\n setValueControlabilityPersonnel,\r\n ] = useState(20);\r\n const [valueAvailableExperience, setValueAvailableExperience] = useState(\r\n 20\r\n );\r\n const [valueThroughput, setValueThroughput] = useState(30);\r\n const [valueMaintenanceTime, setValueMaintenanceTime] = useState(40);\r\n const [\r\n valueComplexityOfMaintenance,\r\n setValueComplexityOfMaintenance,\r\n ] = useState(20);\r\n const [valueWearCosts, setValueWearCosts] = useState(40);\r\n const [valueEnergyDemand, setValueEnergyDemand] = useState(95);\r\n const [valueWaterDemand, setValueWaterDemand] = useState(5);\r\n const [valueDustEmissions, setValueDustEmissions] = useState(30);\r\n const [valueNoise, setValueNoise] = useState(50);\r\n const [valueEffectOfVibration, setValueEffectOfVibration] = useState(20);\r\n\r\n const handleChangePSD = (e, newValue) => {\r\n setValuePSD(newValue);\r\n };\r\n\r\n const handleChangeMaxFineness = (e, newValue) => {\r\n setValueMaxFineness(newValue);\r\n };\r\n\r\n const handleChangeDehydration = (e, newValue) => {\r\n setValueDehydration(newValue);\r\n };\r\n\r\n const handleChangeDrying = (e, newValue) => {\r\n setValueDrying(newValue);\r\n };\r\n\r\n const handleChangeMaxFeedSize = (e, newValue) => {\r\n setValueMaxFeedSize(newValue);\r\n };\r\n\r\n const handleChangeProductChangingTime = (e, newValue) => {\r\n setValueProductChangingTime(newValue);\r\n };\r\n\r\n const handleChangeUnderstandingOfProcess = (e, newValue) => {\r\n setValueUnderstandingOfProcess(newValue);\r\n };\r\n\r\n const handleChangeSensitivityOfProcess = (e, newValue) => {\r\n setValueSensitivityOfProcess(newValue);\r\n };\r\n\r\n const handleChangeControlabilityPersonnel = (e, newValue) => {\r\n setValueControlabilityPersonnel(newValue);\r\n };\r\n\r\n const handleChangeAvailableExperience = (e, newValue) => {\r\n setValueAvailableExperience(newValue);\r\n };\r\n\r\n const handleChangeThroughput = (e, newValue) => {\r\n setValueThroughput(newValue);\r\n };\r\n\r\n const handleChangeMaintenanceTime = (e, newValue) => {\r\n setValueMaintenanceTime(newValue);\r\n };\r\n\r\n const handleChangeComplexityOfMaintenance = (e, newValue) => {\r\n setValueComplexityOfMaintenance(newValue);\r\n };\r\n\r\n const handleChangeWearCosts = (e, newValue) => {\r\n setValueWearCosts(newValue);\r\n };\r\n\r\n const handleChangeEnergyDemand = (e, newValue) => {\r\n setValueEnergyDemand(newValue);\r\n };\r\n\r\n const handleChangeWaterDemand = (e, newValue) => {\r\n setValueWaterDemand(newValue);\r\n };\r\n\r\n const handleChangeDustEmissions = (e, newValue) => {\r\n setValueDustEmissions(newValue);\r\n };\r\n\r\n const handleChangeNoise = (e, newValue) => {\r\n setValueNoise(newValue);\r\n };\r\n\r\n const handleChangeEffectOfVibration = (e, newValue) => {\r\n setValueEffectOfVibration(newValue);\r\n };\r\n\r\n return (\r\n
    \r\n

    Quality

    \r\n \r\n Slope of Particle Size Distribution: {valuePSD}\r\n \r\n \r\n\r\n \r\n Maximum Fineness: {valueMaxFineness}\r\n \r\n \r\n\r\n \r\n Dehydration: {valueDehydration}\r\n \r\n \r\n \r\n Drying: {valueDrying}\r\n \r\n \r\n\r\n
    \r\n
    \r\n

    Feed / Flexibility

    \r\n\r\n \r\n Max. Feed Size: {valueMaxFeedSize}\r\n \r\n \r\n \r\n Product Changing Time: {valueProductChangingTime}\r\n \r\n \r\n\r\n
    \r\n
    \r\n

    Operation

    \r\n\r\n \r\n Understanding of Process: {valueUnderstandingOfProcess}\r\n \r\n \r\n \r\n Sensitivity of Process: {valueSensitivityOfProcess}\r\n \r\n \r\n \r\n Controlabillity/ Personnel: {valueControlabilityPersonnel}\r\n \r\n \r\n \r\n Available Experience: {valueAvailableExperience}\r\n \r\n \r\n \r\n Throughput: {valueThroughput}\r\n \r\n \r\n\r\n
    \r\n
    \r\n

    Maintenance

    \r\n\r\n \r\n Maintenance Time: {valueMaintenanceTime}\r\n \r\n \r\n \r\n Complexity of Maintenance: {valueComplexityOfMaintenance}\r\n \r\n \r\n \r\n Wear Costs: {valueWearCosts}\r\n \r\n \r\n\r\n
    \r\n
    \r\n

    Efficiency

    \r\n\r\n \r\n Energy Demand: {valueEnergyDemand}\r\n \r\n \r\n \r\n Water Demand: {valueWaterDemand}\r\n \r\n \r\n\r\n
    \r\n
    \r\n

    Environmental Impact

    \r\n\r\n \r\n Dust Emissions: {valueDustEmissions}\r\n \r\n \r\n \r\n Noise: {valueNoise}\r\n \r\n \r\n \r\n Effect of Vibration: {valueEffectOfVibration}\r\n \r\n \r\n

    Warning:

    \r\n

    \r\n Do not apply more or less than 100 % (Work in progress)\r\n

    \r\n
    \r\n );\r\n}\r\n","import React, { useState, useContext } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Slider from \"@material-ui/core/Slider\";\r\nimport theDefaultContext from \"../../defaultContext\";\r\n\r\nconst inputStyle = {\r\n color: \"blue\",\r\n border: \"none\",\r\n size: \"small\",\r\n margin: \"dense\",\r\n outline: \"none\",\r\n width: 50,\r\n};\r\n\r\n//Quality\r\nconst marks01 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 35, label: Pre },\r\n];\r\nconst marks02 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 30, label: Pre },\r\n];\r\nconst marks03 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 20, label: Pre },\r\n];\r\nconst marks04 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 15, label: Pre },\r\n];\r\n\r\n//Feed / Flexibility\r\nconst marks05 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 60, label: Pre },\r\n];\r\nconst marks06 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 40, label: Pre },\r\n];\r\n\r\n//Operation\r\nconst marks07 = [\r\n { value: 0, label: \"0\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 5, label: Pre },\r\n];\r\nconst marks08 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 25, label: Pre },\r\n];\r\nconst marks09 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 20, label: Pre },\r\n];\r\nconst marks10 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 20, label: Pre },\r\n];\r\nconst marks11 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 30, label: Pre },\r\n];\r\n\r\n//Maintenance\r\nconst marks12 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 40, label: Pre },\r\n];\r\nconst marks13 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 20, label: Pre },\r\n];\r\nconst marks14 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 40, label: Pre },\r\n];\r\n\r\n//Efficiency\r\nconst marks15 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100 },\r\n { value: 95, label: Pre },\r\n];\r\nconst marks16 = [\r\n { value: 0 },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 5, label: Pre },\r\n];\r\n\r\n//Environmental Impact\r\nconst marks17 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 30, label: Pre },\r\n];\r\nconst marks18 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25, label: \"25 %\" },\r\n { value: 50 },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 50, label: Pre },\r\n];\r\nconst marks19 = [\r\n { value: 0, label: \"0 %\" },\r\n { value: 25 },\r\n { value: 50, label: \"50 %\" },\r\n { value: 75, label: \"75 %\" },\r\n { value: 100, label: \"100 %\" },\r\n { value: 20, label: Pre },\r\n];\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n width: 300,\r\n },\r\n});\r\n\r\nexport default function SliderCritCustom() {\r\n /////////////////////////////////////////////////////////////////////////// Slider Values für den Provider:\r\n const { setPsd } = useContext(theDefaultContext);\r\n const { setMaxFineness } = useContext(theDefaultContext);\r\n const { setDehydration } = useContext(theDefaultContext);\r\n const { setDrying } = useContext(theDefaultContext);\r\n const { setMaxFeedSize } = useContext(theDefaultContext);\r\n const { setProductChangingTime } = useContext(theDefaultContext);\r\n const { setUnderstandingOfProcess } = useContext(theDefaultContext);\r\n const { setSensitivityOfProcess } = useContext(theDefaultContext);\r\n const { setControlabilityPersonnel } = useContext(theDefaultContext);\r\n const { setAvailableExperience } = useContext(theDefaultContext);\r\n const { setThroughput } = useContext(theDefaultContext);\r\n const { setMaintenanceTime } = useContext(theDefaultContext);\r\n const { setComplexityOfMaintenance } = useContext(theDefaultContext);\r\n const { setWearCosts } = useContext(theDefaultContext);\r\n const { setEnergyDemand } = useContext(theDefaultContext);\r\n const { setWaterDemand } = useContext(theDefaultContext);\r\n const { setDustEmissions } = useContext(theDefaultContext);\r\n const { setNoise } = useContext(theDefaultContext);\r\n const { setEffectOfVibration } = useContext(theDefaultContext);\r\n\r\n /////////////////////////////////////////////////////////////////////////// Slider Values für diese Funktion:\r\n const classes = useStyles();\r\n const [valuePSD, setValuePSD] = useState(35);\r\n const [valueMaxFineness, setValueMaxFineness] = useState(30);\r\n const [valueDehydration, setValueDehydration] = useState(20);\r\n const [valueDrying, setValueDrying] = useState(15);\r\n const [valueMaxFeedSize, setValueMaxFeedSize] = useState(60);\r\n const [valueProductChangingTime, setValueProductChangingTime] =\r\n useState(40);\r\n const [valueUnderstandingOfProcess, setValueUnderstandingOfProcess] =\r\n useState(5);\r\n const [valueSensitivityOfProcess, setValueSensitivityOfProcess] =\r\n useState(25);\r\n const [valueControlabilityPersonnel, setValueControlabilityPersonnel] =\r\n useState(20);\r\n const [valueAvailableExperience, setValueAvailableExperience] =\r\n useState(20);\r\n const [valueThroughput, setValueThroughput] = useState(30);\r\n const [valueMaintenanceTime, setValueMaintenanceTime] = useState(40);\r\n const [valueComplexityOfMaintenance, setValueComplexityOfMaintenance] =\r\n useState(20);\r\n const [valueWearCosts, setValueWearCosts] = useState(40);\r\n const [valueEnergyDemand, setValueEnergyDemand] = useState(95);\r\n const [valueWaterDemand, setValueWaterDemand] = useState(5);\r\n const [valueDustEmissions, setValueDustEmissions] = useState(30);\r\n const [valueNoise, setValueNoise] = useState(50);\r\n const [valueEffectOfVibration, setValueEffectOfVibration] = useState(20);\r\n\r\n //////////////////////////////////// SwitchValue:\r\n const { limitOfSliderCriteria, setLimitOfSliderCriteria } =\r\n useContext(theDefaultContext);\r\n\r\n //////////////////////////////////////////////////////////////////////////////////// HandleChange\r\n const handleChangePSD = (e, newValue) => {\r\n setValuePSD(newValue);\r\n setPsd(newValue / 100);\r\n };\r\n\r\n const handleChangeMaxFineness = (e, newValue) => {\r\n setValueMaxFineness(newValue);\r\n setMaxFineness(newValue / 100);\r\n };\r\n\r\n const handleChangeDehydration = (e, newValue) => {\r\n setValueDehydration(newValue);\r\n setDehydration(newValue / 100);\r\n };\r\n\r\n const handleChangeDrying = (e, newValue) => {\r\n setValueDrying(newValue);\r\n setDrying(newValue / 100);\r\n };\r\n\r\n const handleChangeMaxFeedSize = (e, newValue) => {\r\n setValueMaxFeedSize(newValue);\r\n setMaxFeedSize(newValue / 100);\r\n };\r\n\r\n const handleChangeProductChangingTime = (e, newValue) => {\r\n setValueProductChangingTime(newValue);\r\n setProductChangingTime(newValue / 100);\r\n };\r\n\r\n const handleChangeUnderstandingOfProcess = (e, newValue) => {\r\n setValueUnderstandingOfProcess(newValue);\r\n setUnderstandingOfProcess(newValue / 100);\r\n };\r\n\r\n const handleChangeSensitivityOfProcess = (e, newValue) => {\r\n setValueSensitivityOfProcess(newValue);\r\n setSensitivityOfProcess(newValue / 100);\r\n };\r\n\r\n const handleChangeControlabilityPersonnel = (e, newValue) => {\r\n setValueControlabilityPersonnel(newValue);\r\n setControlabilityPersonnel(newValue / 100);\r\n };\r\n\r\n const handleChangeAvailableExperience = (e, newValue) => {\r\n setValueAvailableExperience(newValue);\r\n setAvailableExperience(newValue / 100);\r\n };\r\n\r\n const handleChangeThroughput = (e, newValue) => {\r\n setValueThroughput(newValue);\r\n setThroughput(newValue / 100);\r\n };\r\n\r\n const handleChangeMaintenanceTime = (e, newValue) => {\r\n setValueMaintenanceTime(newValue);\r\n setMaintenanceTime(newValue / 100);\r\n };\r\n\r\n const handleChangeComplexityOfMaintenance = (e, newValue) => {\r\n setValueComplexityOfMaintenance(newValue);\r\n setComplexityOfMaintenance(newValue / 100);\r\n };\r\n\r\n const handleChangeWearCosts = (e, newValue) => {\r\n setValueWearCosts(newValue);\r\n setWearCosts(newValue / 100);\r\n };\r\n\r\n const handleChangeEnergyDemand = (e, newValue) => {\r\n setValueEnergyDemand(newValue);\r\n setEnergyDemand(newValue / 100);\r\n };\r\n\r\n const handleChangeWaterDemand = (e, newValue) => {\r\n setValueWaterDemand(newValue);\r\n setWaterDemand(newValue / 100);\r\n };\r\n\r\n const handleChangeDustEmissions = (e, newValue) => {\r\n setValueDustEmissions(newValue);\r\n setDustEmissions(newValue / 100);\r\n };\r\n\r\n const handleChangeNoise = (e, newValue) => {\r\n setValueNoise(newValue);\r\n setNoise(newValue / 100);\r\n };\r\n\r\n const handleChangeEffectOfVibration = (e, newValue) => {\r\n setValueEffectOfVibration(newValue);\r\n setEffectOfVibration(newValue / 100);\r\n };\r\n\r\n const SumSliderQuality =\r\n valuePSD + valueMaxFineness + valueDehydration + valueDrying;\r\n const SumSliderFeed = valueMaxFeedSize + valueProductChangingTime;\r\n const SumSliderOperation =\r\n valueUnderstandingOfProcess +\r\n valueSensitivityOfProcess +\r\n valueControlabilityPersonnel +\r\n valueAvailableExperience +\r\n valueThroughput;\r\n const SumSliderMaintenance =\r\n valueMaintenanceTime + valueComplexityOfMaintenance + valueWearCosts;\r\n const SumSliderEfficiency = valueEnergyDemand + valueWaterDemand;\r\n const SumSliderEnvironment =\r\n valueDustEmissions + valueNoise + valueEffectOfVibration;\r\n\r\n let statusWarningHigh =

    Please adapt your importances!

    ;\r\n let statusWarningLow =

    Please adapt your importances!

    ;\r\n\r\n let SumSliderColorQuality;\r\n let SumSliderColorFeed;\r\n let SumSliderColorOperation;\r\n let SumSliderColorMaintenance;\r\n let SumSliderColorEfficiency;\r\n let SumSliderColorEnvironment;\r\n\r\n let setStatusSliderColorQuality = true;\r\n let setStatusSliderColorFeed = true;\r\n let setStatusSliderColorOperation = true;\r\n let setStatusSliderColorMaintenance = true;\r\n let setStatusSliderColorEfficiency = true;\r\n let setStatusSliderColorEnvironment = true;\r\n\r\n if (SumSliderQuality > 100) {\r\n SumSliderColorQuality = (\r\n
    \r\n {\" \"}\r\n Sum of categories: {SumSliderQuality} % (Categories must be normalised)\r\n
    \r\n );\r\n setStatusSliderColorQuality = true;\r\n } else {\r\n SumSliderColorQuality = (\r\n
    \r\n Sum of categories: {SumSliderQuality} % (Categories must be normalised)\r\n
    \r\n );\r\n setStatusSliderColorQuality = true;\r\n }\r\n if (SumSliderQuality === 100) {\r\n SumSliderColorQuality = (\r\n
    \r\n {\" \"}\r\n Sum of categories: {SumSliderQuality} %\r\n
    \r\n );\r\n setStatusSliderColorQuality = false;\r\n }\r\n\r\n if (SumSliderFeed > 100) {\r\n SumSliderColorFeed = (\r\n
    \r\n {\" \"}\r\n Sum of categories: {SumSliderFeed} % (Categories must be normalised)\r\n
    \r\n );\r\n setStatusSliderColorFeed = true;\r\n } else {\r\n SumSliderColorFeed = (\r\n
    \r\n Sum of categories: {SumSliderFeed} % (Categories must be normalised)\r\n
    \r\n );\r\n setStatusSliderColorFeed = true;\r\n }\r\n if (SumSliderFeed === 100) {\r\n SumSliderColorFeed = (\r\n
    \r\n {\" \"}\r\n Sum of categories: {SumSliderFeed} %\r\n
    \r\n );\r\n setStatusSliderColorFeed = false;\r\n }\r\n\r\n if (SumSliderOperation > 100) {\r\n SumSliderColorOperation = (\r\n
    \r\n {\" \"}\r\n Sum of categories: {SumSliderOperation} % (Categories must be normalised)\r\n
    \r\n );\r\n setStatusSliderColorOperation = true;\r\n } else {\r\n SumSliderColorOperation = (\r\n
    \r\n Sum of categories: {SumSliderOperation} % (Categories must be normalised)\r\n
    \r\n );\r\n setStatusSliderColorOperation = true;\r\n }\r\n if (SumSliderOperation === 100) {\r\n SumSliderColorOperation = (\r\n
    \r\n {\" \"}\r\n Sum of categories: {SumSliderOperation} %{\" \"}\r\n
    \r\n );\r\n setStatusSliderColorOperation = false;\r\n }\r\n\r\n if (SumSliderMaintenance > 100) {\r\n SumSliderColorMaintenance = (\r\n
    \r\n {\" \"}\r\n Sum of categories: {SumSliderMaintenance} % (Categories must be normalised)\r\n
    \r\n );\r\n setStatusSliderColorMaintenance = true;\r\n } else {\r\n SumSliderColorMaintenance = (\r\n
    \r\n Sum of categories: {SumSliderMaintenance} % (Categories must be normalised)\r\n
    \r\n );\r\n setStatusSliderColorMaintenance = true;\r\n }\r\n if (SumSliderMaintenance === 100) {\r\n SumSliderColorMaintenance = (\r\n
    \r\n {\" \"}\r\n Sum of categories: {SumSliderMaintenance} %{\" \"}\r\n
    \r\n );\r\n setStatusSliderColorMaintenance = false;\r\n }\r\n\r\n if (SumSliderEfficiency > 100) {\r\n SumSliderColorEfficiency = (\r\n
    \r\n {\" \"}\r\n Sum of categories: {SumSliderEfficiency} % (Categories must be normalised)\r\n
    \r\n );\r\n setStatusSliderColorEfficiency = true;\r\n } else {\r\n SumSliderColorEfficiency = (\r\n
    \r\n Sum of categories: {SumSliderEfficiency} % (Categories must be normalised)\r\n
    \r\n );\r\n setStatusSliderColorEfficiency = true;\r\n }\r\n if (SumSliderEfficiency === 100) {\r\n SumSliderColorEfficiency = (\r\n
    \r\n {\" \"}\r\n Sum of categories: {SumSliderEfficiency} %{\" \"}\r\n
    \r\n );\r\n setStatusSliderColorEfficiency = false;\r\n }\r\n\r\n if (SumSliderEnvironment > 100) {\r\n SumSliderColorEnvironment = (\r\n
    \r\n {\" \"}\r\n Sum of categories: {SumSliderEnvironment} % (Categories must be normalised)\r\n
    \r\n );\r\n setStatusSliderColorEnvironment = true;\r\n } else {\r\n SumSliderColorEnvironment = (\r\n
    \r\n Sum of categories: {SumSliderEnvironment} % (Categories must be normalised)\r\n
    \r\n );\r\n setStatusSliderColorEnvironment = true;\r\n }\r\n if (SumSliderEnvironment === 100) {\r\n SumSliderColorEnvironment = (\r\n
    \r\n {\" \"}\r\n Sum of categories: {SumSliderEnvironment} %{\" \"}\r\n
    \r\n );\r\n setStatusSliderColorEnvironment = false;\r\n }\r\n\r\n if (\r\n setStatusSliderColorQuality ||\r\n setStatusSliderColorFeed ||\r\n setStatusSliderColorOperation ||\r\n setStatusSliderColorMaintenance ||\r\n setStatusSliderColorEfficiency ||\r\n setStatusSliderColorEnvironment === true\r\n ) {\r\n setLimitOfSliderCriteria(true);\r\n } else {\r\n setLimitOfSliderCriteria(false);\r\n }\r\n\r\n return (\r\n
    \r\n {/*

    Warning:

    \r\n

    Do not apply more or less than 100 %

    */}\r\n

    Please note:

    \r\n

    \r\n Values can be typed in by selecting the blue numbers next to\r\n your category.\r\n

    \r\n
    \r\n \r\n

    Quality

    \r\n \r\n Slope of Particle Size Distribution:\r\n {\r\n setValuePSD(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n Maximum Fineness:{\" \"}\r\n {\r\n setValueMaxFineness(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n Dehydration:{\" \"}\r\n {\r\n setValueDehydration(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n \r\n Drying:{\" \"}\r\n {\r\n setValueDrying(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n\r\n {SumSliderColorQuality}\r\n
    \r\n
    \r\n\r\n

    Feed / Flexibility

    \r\n \r\n Max. Feed Size:{\" \"}\r\n {\r\n setValueMaxFeedSize(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n \r\n Product Changing Time:{\" \"}\r\n {\r\n setValueProductChangingTime(\r\n parseInt(newValue.target.value)\r\n );\r\n }}\r\n />\r\n \r\n \r\n {SumSliderColorFeed}\r\n\r\n
    \r\n
    \r\n

    Operation

    \r\n\r\n \r\n Understanding of Process:{\" \"}\r\n {\r\n setValueUnderstandingOfProcess(\r\n parseInt(newValue.target.value)\r\n );\r\n }}\r\n />\r\n \r\n \r\n \r\n Sensitivity of Process:{\" \"}\r\n {\r\n setValueSensitivityOfProcess(\r\n parseInt(newValue.target.value)\r\n );\r\n }}\r\n />\r\n \r\n \r\n \r\n Controlabillity/ Personnel:{\" \"}\r\n {\r\n setValueControlabilityPersonnel(\r\n parseInt(newValue.target.value)\r\n );\r\n }}\r\n />\r\n \r\n \r\n \r\n Available Experience:{\" \"}\r\n {\r\n setValueAvailableExperience(\r\n parseInt(newValue.target.value)\r\n );\r\n }}\r\n />\r\n \r\n \r\n \r\n Throughput:{\" \"}\r\n {\r\n setValueAvailableExperience(\r\n parseInt(newValue.target.value)\r\n );\r\n }}\r\n />\r\n \r\n \r\n {SumSliderColorOperation}\r\n\r\n
    \r\n
    \r\n

    Maintenance

    \r\n\r\n \r\n Maintenance Time:{\" \"}\r\n {\r\n setValueMaintenanceTime(\r\n parseInt(newValue.target.value)\r\n );\r\n }}\r\n />\r\n \r\n \r\n \r\n Complexity of Maintenance:{\" \"}\r\n {\r\n setValueComplexityOfMaintenance(\r\n parseInt(newValue.target.value)\r\n );\r\n }}\r\n />\r\n \r\n \r\n \r\n Wear Costs:{\" \"}\r\n {\r\n setValueWearCosts(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n {SumSliderColorMaintenance}\r\n\r\n
    \r\n
    \r\n

    Efficiency

    \r\n\r\n \r\n Energy Demand:{\" \"}\r\n {\r\n setValueEnergyDemand(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n \r\n Water Demand:{\" \"}\r\n {\r\n setValueWaterDemand(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n {SumSliderColorEfficiency}\r\n\r\n
    \r\n
    \r\n

    Environmental Impact

    \r\n\r\n \r\n Dust Emissions:{\" \"}\r\n {\r\n setValueDustEmissions(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n \r\n Noise:{\" \"}\r\n {\r\n setValueNoise(parseInt(newValue.target.value));\r\n }}\r\n />\r\n \r\n \r\n \r\n Effect of Vibration:{\" \"}\r\n {\r\n setValueEffectOfVibration(\r\n parseInt(newValue.target.value)\r\n );\r\n }}\r\n />\r\n \r\n \r\n {SumSliderColorEnvironment}\r\n
    \r\n );\r\n}\r\n","import React, { useState, useContext } from \"react\";\r\nimport SliderCritDefault from \"./SliderScenarioDetail/slider+_default\";\r\nimport SliderCritCustom from \"./SliderScenarioDetail/slider+_custom\";\r\nimport { Checkbox } from \"@material-ui/core\";\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport theDefaultContext from \"../defaultContext\";\r\n\r\nexport default function ArticelScenarioDetailsCustom() {\r\n const { criteriaRadioScenario, setCriteriaRadioScenario } =\r\n useContext(theDefaultContext);\r\n const [checked, setChecked] = useState(false);\r\n\r\n setCriteriaRadioScenario(checked);\r\n\r\n const handleCheckbox = (event) => {\r\n setChecked(event.target.checked);\r\n };\r\n\r\n let content;\r\n if (checked === true) {\r\n content = (\r\n
    \r\n \r\n
    \r\n );\r\n } else {\r\n content = ;\r\n }\r\n\r\n return (\r\n
    \r\n\r\n }\r\n label=\"Customise (on your own responsibility)\"\r\n /> \r\n \r\n

    \r\n Be aware that in case of an inexperienced user this option can\r\n have a high impact on the analysis. Only change the values if\r\n you are conscious of the effects.\r\n
    \r\n In case do not hesitate to contact us.\r\n

    \r\n
    \r\n {content}\r\n
    \r\n );\r\n}\r\n","import { Checkbox } from \"@material-ui/core\";\r\nimport React, { useState } from \"react\";\r\nimport InfoButtonScenarioDetails from \"../../../../Container/InfoButton/infoButton_ScenarioDeatils\";\r\nimport ArticelScenarioDetailsCustom from \"./articel_ScenarioDetailsCustom\";\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n\r\nexport default function ArticelScenarioDetails() {\r\n const [checked, setChecked] = useState(false);\r\n\r\n const handleCheckbox = (event) => {\r\n setChecked(event.target.checked);\r\n };\r\n\r\n let content;\r\n if (checked === true) {\r\n content = (\r\n
    \r\n \r\n
    \r\n );\r\n } else {\r\n content = null;\r\n }\r\n\r\n return (\r\n
    \r\n {/*
    \r\n
    \r\n

    Scenario Details

    */}\r\n \r\n {/*

    \r\n If you want to see an overview of the predefined weighting of\r\n all categories and criteria:\r\n

    */}\r\n \r\n }\r\n label=\"Show details (overview of the predefined weighting of\r\n all categories and criteria) \"\r\n />\r\n \r\n {content}\r\n {/*
    \r\n
    */}\r\n
    \r\n );\r\n}\r\n","import React, { useState, useContext } from \"react\";\r\nimport InfoButtonSce from \"../../../../Container/InfoButton/infoButton_Sce\";\r\nimport SliderCatDefault from \"./SliderScenarios/slider_default\";\r\nimport SliderCatEnergy from \"./SliderScenarios/slider_energy\";\r\nimport SliderCatOperationAndMaintenance from \"./SliderScenarios/slider_operationAndMaintenance\";\r\nimport SliderCatQuality from \"./SliderScenarios/slider_quality\";\r\nimport SliderCatQualityAndEfficiency from \"./SliderScenarios/slider_qualityAndEfficiency\";\r\nimport SliderCatCustom from \"./SliderScenarios/slider_custom\";\r\nimport \"../../../../SCSS/styleText.scss\";\r\n\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormLabel from \"@material-ui/core/FormLabel\";\r\n\r\nimport theDefaultContext from \"../defaultContext\";\r\nimport ArticelScenarioDetails from \"./articel_ScenarioDetails\";\r\n\r\n// How to use Slider: https://www.youtube.com/watch?v=J0DyW5oEGKo&list=WL&index=28\r\n\r\nexport default function Scenarios() {\r\n //Provider alle Custom-Werte\r\n //const { categoryQualityCustom } = useContext(theDefaultContext);\r\n\r\n // Provider alle PresetKategorien\r\n const { setCategoryQuality } = useContext(theDefaultContext);\r\n const { setCategoryFeedFlex } = useContext(theDefaultContext);\r\n const { setCategoryOperation } = useContext(theDefaultContext);\r\n const { setCategoryMaintenance } = useContext(theDefaultContext);\r\n const { setCategoryEfficiency } = useContext(theDefaultContext);\r\n const { setCategoryEnvironment } = useContext(theDefaultContext);\r\n\r\n const { categoryRadioScenario, setCategoryRadioScenario } =\r\n useContext(theDefaultContext);\r\n\r\n // intern Variable:\r\n const [valueScenario, setValueScenario] = useState(\r\n \"European standard setting\"\r\n );\r\n\r\n const handleChange = (event) => {\r\n setValueScenario(event.target.value);\r\n };\r\n setCategoryRadioScenario(valueScenario);\r\n\r\n let content; // Wandelt Werte nach Entscheidung des users um und zeigt diese in einem Showcase\r\n let content2; // Infotext zu Art des Scenarios\r\n if (valueScenario === \"European standard setting\") {\r\n content = ;\r\n setCategoryQuality(0.28);\r\n setCategoryFeedFlex(0.15);\r\n setCategoryOperation(0.17);\r\n setCategoryMaintenance(0.15);\r\n setCategoryEfficiency(0.2);\r\n setCategoryEnvironment(0.05);\r\n } else if (valueScenario === \"Energy scenario\") {\r\n content = ;\r\n setCategoryQuality(0.15);\r\n setCategoryFeedFlex(0.1);\r\n setCategoryOperation(0.15);\r\n setCategoryMaintenance(0.15);\r\n setCategoryEfficiency(0.4);\r\n setCategoryEnvironment(0.05);\r\n } else if (valueScenario === \"Quality scenario\") {\r\n content = ;\r\n setCategoryQuality(0.45);\r\n setCategoryFeedFlex(0.15);\r\n setCategoryOperation(0.1);\r\n setCategoryMaintenance(0.1);\r\n setCategoryEfficiency(0.15);\r\n setCategoryEnvironment(0.05);\r\n } else if (valueScenario === \"Operation and maintenance scenario\") {\r\n content = ;\r\n setCategoryQuality(0.15);\r\n setCategoryFeedFlex(0.1);\r\n setCategoryOperation(0.3);\r\n setCategoryMaintenance(0.25);\r\n setCategoryEfficiency(0.15);\r\n setCategoryEnvironment(0.05);\r\n } else if (valueScenario === \"Quality and efficiency scenario\") {\r\n content = ;\r\n setCategoryQuality(0.5);\r\n setCategoryFeedFlex(0.0);\r\n setCategoryOperation(0.0);\r\n setCategoryMaintenance(0);\r\n setCategoryEfficiency(0.5);\r\n setCategoryEnvironment(0.0);\r\n } else if (valueScenario === \"Custom\") {\r\n content = ;\r\n } else {\r\n }\r\n\r\n if (valueScenario === \"European standard setting\") {\r\n content2 = (\r\n
    \r\n

    European standard setting:

    \r\n

    \r\n The ‘European standard setting’ has been proposed by the\r\n ECRA grinding experts. By selection of this setting type,\r\n the importance of all evaluation categories and criteria is\r\n predefined by the ECRA expert team to be in a good agreement\r\n with European market requirements (2020). Please note, that\r\n the selection of this setting predefines the importance of\r\n all categories and criteria.\r\n

    \r\n
    \r\n );\r\n } else if (valueScenario === \"Energy scenario\") {\r\n content2 = (\r\n
    \r\n

    Energy scenario:

    \r\n

    \r\n By using the ‚energy scenario‘, a focus is set on the\r\n category ‚efficiency‘ with an importance of 40 %. The\r\n importance of all remaining categories are in the range of 5\r\n to 15 %. This setting is used to identify technologies with\r\n a low specific energy and water demand for cement grinding.\r\n Please note, that the selection of this setting predefines\r\n the importance of all categories and criteria.{\" \"}\r\n

    \r\n
    \r\n );\r\n } else if (valueScenario === \"Quality scenario\") {\r\n content2 = (\r\n
    \r\n

    Quality scenario:

    \r\n

    \r\n To set the evaluation prioritisation on the category\r\n ‘quality’, the ‘quality scenario’ is predestined. The\r\n importance of ‘quality’ is set to 45 %, whereas all others\r\n vary between 5 to 15 %. This setting is used to identify\r\n technologies which provide an excellent product quality.\r\n Please note, that the selection of this setting predefines\r\n the importance of all categories and criteria.{\" \"}\r\n

    \r\n
    \r\n );\r\n } else if (valueScenario === \"Operation and maintenance scenario\") {\r\n content2 = (\r\n
    \r\n

    Operation and maintenance scenario:

    \r\n

    \r\n The ‘operation and maintenance scenario’ mainly focusses on\r\n the category ‘operation’ (30 % importance) and ‘maintenance’\r\n (25 % importance). With this option, it is possible to\r\n identify comminution devices with low maintenance effort,\r\n combined with good operation conditions. Please note, that\r\n the selection of this setting predefines the importance of\r\n all categories and criteria.{\" \"}\r\n

    \r\n
    \r\n );\r\n } else if (valueScenario === \"Quality and efficiency scenario\") {\r\n content2 = (\r\n
    \r\n

    Quality and efficiency scenario:

    \r\n

    \r\n In this scenario, the importance of ‘quality’ and\r\n ‘efficiency’ is set to 50 %, so that all other categories do\r\n not have any impact on the evaluation procedure. This\r\n scenario might be of interest, wherever the requirements of\r\n comminution are restricted to a fast, efficient production\r\n of high quality cement. Please note, that the selection of\r\n this setting predefines the importance of all categories and\r\n criteria.{\" \"}\r\n

    \r\n
    \r\n );\r\n } else if (valueScenario === \"Custom\") {\r\n content2 = (\r\n
    \r\n

    Customised setting:

    \r\n

    \r\n Please select this option to be able to set the category and\r\n criteria importance based on your own requirements and\r\n experiences.
    First, it is recommended to set the importance\r\n – expressed as percentage portion – of all categories, which\r\n in sum needs to add up to 100 %.
    Second, the subdivided\r\n criteria importance for each category needs to be defined\r\n and is also expressed as percentage portion.
    Analogous to\r\n the category importance, the percentage portion for the\r\n criteria needs to add up to 100 % within each category.\r\n Please note, that ECRA does not assume responsibility of the\r\n evaluation results based on individual user settings. If you\r\n consider publishing any results created by using this\r\n evaluation procedure, please follow the suggested citation\r\n modality.\r\n

    \r\n

    \r\n How to cite: Evaluation results have been created\r\n by individual user settings and do not necessarily comply\r\n with evaluation standards defined by ECRA’s grinding\r\n experts.\r\n

    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n

    Scenarios

    \r\n \r\n \r\n Type of Scenario:\r\n {\r\n setCategoryQuality(valueScenario);\r\n }}\r\n >\r\n }\r\n label=\"European standard setting\"\r\n />\r\n }\r\n label=\"Energy scenario\"\r\n />\r\n }\r\n label=\"Quality scenario\"\r\n />\r\n }\r\n label=\"Operation and maintenance scenario\"\r\n />\r\n }\r\n label=\"Quality and efficiency scenario\"\r\n />\r\n }\r\n label=\"Customised setting\"\r\n />\r\n \r\n \r\n {content2}\r\n
    \r\n {content}\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useState, useContext } from \"react\";\r\nimport InfoButtonApp from \"../../../../Container/InfoButton/infoButton_App\";\r\n\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormLabel from \"@material-ui/core/FormLabel\";\r\n\r\nimport theDefaultContext from \"../defaultContext\";\r\n\r\nexport default function TypeOfApplication() {\r\n const { setFinalValueTypeOfApp } = useContext(theDefaultContext);\r\n\r\n const [valueTypeOfApp, setValueTypeOfApp] = useState(\"SC_Fine\"); // Default Value\r\n\r\n const handleChange = (event) => {\r\n setValueTypeOfApp(event.target.value);\r\n };\r\n setFinalValueTypeOfApp(valueTypeOfApp);\r\n\r\n let content;\r\n if (valueTypeOfApp === \"SC_Fine\") {\r\n content = (\r\n
    \r\n

    Fine grinding:

    \r\n

    \r\n Typical application for cement grinding in a fineness-range\r\n between 90 µm and 6 µm (D50).\r\n

    \r\n
    \r\n );\r\n } else if (valueTypeOfApp === \"SC_Raw_material\") {\r\n content = (\r\n
    \r\n

    Raw material grinding:

    \r\n

    \r\n This option stands for common requirements for raw material\r\n grinding. This includes a focus on narrow ‘Particle size\r\n distributions’ (PSD).\r\n

    \r\n
    \r\n );\r\n } else if (valueTypeOfApp === \"SC_Coarse\") {\r\n content = (\r\n
    \r\n

    Coarse grinding:

    \r\n

    \r\n Option to choose for a needed fineness-range between 5 mm\r\n and 250 µm (D50). This setting might be of interest in case\r\n of pre-grinding devices.\r\n

    \r\n
    \r\n );\r\n } else if (valueTypeOfApp === \"SC_Crushing\") {\r\n content = (\r\n
    \r\n

    Crushing:

    \r\n

    \r\n This type of application is used for evaluating technologies\r\n suitable for crushing, where high throughputs and only a low\r\n amount of fines are of interest.\r\n

    \r\n
    \r\n );\r\n } else if (valueTypeOfApp === \"SC_Ultrafine\") {\r\n content = (\r\n
    \r\n

    Ultra-fine grinding:

    \r\n

    \r\n The option for ultra-fine grinding is implemented to\r\n evaluate technologies, which provide a fineness-range\r\n between 8 µm and 2 µm (D50).\r\n

    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n

    Type of Application

    \r\n
    \r\n {/* */}\r\n {/*

    \r\n BETA ~Work in progress \r\n

    */}\r\n \r\n \r\n Choose your comminution task:\r\n \r\n {\r\n setValueTypeOfApp(valueTypeOfApp);\r\n }}\r\n >\r\n {/*}\r\n label=\"Crushing\"\r\n />*/}\r\n }\r\n label=\"Coarse grinding\"\r\n />\r\n }\r\n label=\"Fine grinding\"\r\n />\r\n }\r\n label=\"Ultra-fine grinding\"\r\n />\r\n }\r\n label=\"Raw material grinding\"\r\n />\r\n \r\n \r\n {content}\r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useContext, useState, useEffect } from \"react\";\r\nimport theDefaultContext from \"../../defaultContext\";\r\nimport { Backdrop, Button, ButtonBase, Paper } from \"@material-ui/core\";\r\nimport { HorizontalBar, Bar, Radar } from \"react-chartjs-2\";\r\n//import Axios from \"axios\";\r\n//import Table from \"reactstrap/lib/Table\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n//import LinearProgress from \"@material-ui/core/LinearProgress\";\r\n//import IconDownloadSymbol from \"../../../../../Container/Icons/iconDownloadExcelFile\";\r\nimport CloudUploadIcon from \"@material-ui/icons/CloudUpload\";\r\n//import { isJSDocTemplateTag } from \"typescript\";\r\n//import fileDownload from \"js-file-download\";\r\nimport IconStart from \"../../../../../Container/Icons/iconStart\";\r\nimport IconSearch from \"../../../../../Container/Icons/iconDatabase\";\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\n\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel'; \r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n \"& > *\": {\r\n margin: theme.spacing(1),\r\n },\r\n color: \"#008000\",\r\n },\r\n root2: {\r\n justifyContent: \"center\",\r\n display: \"flex\",\r\n zIndex: 1,\r\n //position: \"absolute\", // löst Symbol von restlichen Layern\r\n flexWrap: \"wrap\",\r\n \"& > *\": {\r\n width: theme.spacing(60),\r\n height: theme.spacing(\"auto\"),\r\n },\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n}));\r\n\r\nexport default function DataSummaryFunction() {\r\n //manipulate Material UI CSS -> https://www.youtube.com/watch?v=rEHvPiLWSbQ\r\n const stylesLoadingChart = {\r\n rootLadebalken: {\r\n height: 80,\r\n backgroundColor: \"#ecf01494\",\r\n },\r\n\r\n rootStartButton: {\r\n //align: \"center\",\r\n fontSize: \"1.2rem\",\r\n backgroundColor: \"#F7F7F7\",\r\n padding: \"1rem 1rem 1rem 1rem\", // Abstand nach: Höhre BreiteRechts Tiefe BreiteLinks\r\n },\r\n };\r\n\r\n const stylesExcel = {\r\n root: {\r\n color: \"#008000\",\r\n },\r\n };\r\n const classes = useStyles();\r\n\r\n let normalise = false;\r\n // const useStylesLoadingChart = makeStyles(stylesLoadingChart);\r\n // const classesLoading = useStylesLoadingChart();\r\n\r\n const useStylesExcel = makeStyles(stylesExcel);\r\n //const classesExcel = useStylesExcel();\r\n\r\n //Radio-Button Type of Application\r\n const { finalValueTypeOfApp } = useContext(theDefaultContext);\r\n finalValueTypeOfApp.toString();\r\n let typeOfAppLabel = \"default\";\r\n if (finalValueTypeOfApp == \"SC_Raw_material\") {\r\n typeOfAppLabel = \"Raw material grinding\";\r\n } else if (finalValueTypeOfApp == \"SC_Crushing\") {\r\n typeOfAppLabel = \"Crushing\";\r\n } else if (finalValueTypeOfApp == \"SC_Coarse\") {\r\n typeOfAppLabel = \"Coarse grinding\";\r\n } else if (finalValueTypeOfApp == \"SC_Fine\") {\r\n typeOfAppLabel = \"Fine grinding\";\r\n } else if (finalValueTypeOfApp == \"SC_Ultrafine\") {\r\n typeOfAppLabel = \"Ultra-fine grinding\";\r\n }\r\n\r\n //Slider Alle Custom-Werte aus Scenarios\r\n const { categoryQualityCustom } = useContext(theDefaultContext);\r\n const { categoryFeedFlexCustom } = useContext(theDefaultContext);\r\n const { categoryOperationCustom } = useContext(theDefaultContext);\r\n const { categoryMaintenanceCustom } = useContext(theDefaultContext);\r\n const { categoryEfficiencyCustom } = useContext(theDefaultContext);\r\n const { categoryEnvironmentCustom } = useContext(theDefaultContext);\r\n\r\n //Slider alle PresetKategorien\r\n const { categoryQuality } = useContext(theDefaultContext);\r\n const { categoryFeedFlex } = useContext(theDefaultContext);\r\n const { categoryOperation } = useContext(theDefaultContext);\r\n const { categoryMaintenance } = useContext(theDefaultContext);\r\n const { categoryEfficiency } = useContext(theDefaultContext);\r\n const { categoryEnvironment } = useContext(theDefaultContext);\r\n\r\n //Slider alle Custom-Werte aus Scenario-Details\r\n const { psd } = useContext(theDefaultContext);\r\n const { maxFineness } = useContext(theDefaultContext);\r\n const { dehydration } = useContext(theDefaultContext);\r\n const { drying } = useContext(theDefaultContext);\r\n const { maxFeedSize } = useContext(theDefaultContext);\r\n const { productChangingTime } = useContext(theDefaultContext);\r\n const { understandingOfProcess } = useContext(theDefaultContext);\r\n const { sensitivityOfProcess } = useContext(theDefaultContext);\r\n const { controlabilityPersonnel } = useContext(theDefaultContext);\r\n const { availableExperience } = useContext(theDefaultContext);\r\n const { throughput } = useContext(theDefaultContext);\r\n const { maintenanceTime } = useContext(theDefaultContext);\r\n const { complexityOfMaintenance } = useContext(theDefaultContext);\r\n const { wearCosts } = useContext(theDefaultContext);\r\n const { energyDemand } = useContext(theDefaultContext);\r\n const { waterDemand } = useContext(theDefaultContext);\r\n const { dustEmissions } = useContext(theDefaultContext);\r\n const { noise } = useContext(theDefaultContext);\r\n const { effectOfVibration } = useContext(theDefaultContext);\r\n\r\n // Mill Selection\r\n const { millSelectionUserChoice } = useContext(theDefaultContext);\r\n // const { millSelectionCountMill } = useContext(theDefaultContext);\r\n // const { selectMillReceivedValue } = useContext(theDefaultContext);\r\n const { allMillsWithoutFilters, setAllMillsWithoutFilters } =\r\n useContext(theDefaultContext);\r\n\r\n // (SwitchValues) Variablen für Status der aktiven Benutzer-Auswahl für alle Artikel\r\n const { categoryRadioScenario } = useContext(theDefaultContext);\r\n const { criteriaRadioScenario } = useContext(theDefaultContext);\r\n const { limitOfSliderCategorie } = useContext(theDefaultContext);\r\n const { limitOfSliderCriteria } = useContext(theDefaultContext);\r\n const { millSelectRadioStatus } = useContext(theDefaultContext);\r\n \r\n let FilterStatus = \"default\";\r\n if (millSelectRadioStatus == \"all\") {\r\n FilterStatus = \"active filter\";\r\n } else {\r\n FilterStatus = \"inactive filter\";\r\n }\r\n\r\n\r\n\r\n\r\n // Finale Werte für Axios Formula (Konvertiere String in Float)\r\n //Categories:\r\n let finalValueQuality = parseFloat(categoryQuality);\r\n let finalValueFeedFlex = parseFloat(categoryFeedFlex);\r\n let finalValueOperation = parseFloat(categoryOperation);\r\n let finalValueMaintenance = parseFloat(categoryMaintenance);\r\n let finalValueEfficiency = parseFloat(categoryEfficiency);\r\n let finalValueEnvironment = parseFloat(categoryEnvironment);\r\n\r\n //Criterias:\r\n let finalValuePsd = parseFloat(psd);\r\n let finalValueMaxFineness = parseFloat(maxFineness);\r\n let finalValueDehydration = parseFloat(dehydration);\r\n let finalValueDrying = parseFloat(drying);\r\n let finalValueMaxFeedSize = parseFloat(maxFeedSize);\r\n let finalValueProductChangingTime = parseFloat(productChangingTime);\r\n let finalValueUnderstandingOfProcess = parseFloat(understandingOfProcess);\r\n let finalValueSensitivityOfProcess = parseFloat(sensitivityOfProcess);\r\n let finalValueControlabilityPersonnel = parseFloat(controlabilityPersonnel);\r\n let finalValueAvailableExperience = parseFloat(availableExperience);\r\n let finalValueThroughput = parseFloat(throughput);\r\n let finalValueMaintenanceTime = parseFloat(maintenanceTime);\r\n let finalValueComplexityOfMaintenance = parseFloat(complexityOfMaintenance);\r\n let finalValueWearCosts = parseFloat(wearCosts);\r\n let finalValueEnergyDemand = parseFloat(energyDemand);\r\n let finalValueWaterDemand = parseFloat(waterDemand);\r\n let finalValueDustEmissions = parseFloat(dustEmissions);\r\n let finalValueNoise = parseFloat(noise);\r\n let finalValueEffectOfVibration = parseFloat(effectOfVibration);\r\n\r\n // Mapping from Result for BarCharts\r\n const [finalScore, setFinalScore] = useState([]);\r\n const [finalList, setFinalList] = useState([]);\r\n const [options, setOptions] = useState([]);\r\n\r\n ///////////////////////////Variablen für ChartBars\r\n let finalMillsID = [];\r\n const [millSelek, setMillSelek] = useState(0);\r\n const [inspectMill, setInspectMill] = useState(\"\");\r\n //let finalInspectMill = inspectMill;\r\n\r\n // Avarage for all Category\r\n const [averageScoreQuality, setAverageScoreQuality] = useState([]);\r\n const [averageScoreFeed, setAverageScoreFeed] = useState([]);\r\n const [averageScoreOperation, setAverageScoreOperation] = useState([]);\r\n const [averageScoreMaintenance, setAverageScoreMaintenance] = useState([]);\r\n const [averageScoreEfficiency, setAverageScoreEfficiency] = useState([]);\r\n const [averageScoreEnvironmImp, setAverageScoreEnvironmImp] = useState([]);\r\n\r\n // const [resultBackend, setResultBackend] = useState(options.result); // einzelnes Element aus Array zuweisen\r\n const [axiosResponse, setAxiosResponse] = useState([]);\r\n const [loadAnalysis, setLoadAnalysis] = useState(false);\r\n const [analysisIsReadyToShow, setAnalysisIsReadyToShow] = useState(false);\r\n\r\n // const [count, setCount] = useState(0);\r\n var DisableButton = false;\r\n const [state, setState] = React.useState({\r\n checkedF: false, \r\n });\r\n //console.log(\"state.checkedF\" + state.checkedF)\r\n const handleChange = (event) => {\r\n setState({ ...state, [event.target.name]: event.target.checked });\r\n };\r\n\r\n\r\n\r\n\r\n // (SwitchValues_Methods) Methoden für Status der aktiven Benutzer-Auswahl für alle Artikel\r\n //Articel: Scenarios:\r\n if (categoryRadioScenario === \"Custom\") {\r\n finalValueQuality = categoryQualityCustom;\r\n finalValueFeedFlex = categoryFeedFlexCustom;\r\n finalValueOperation = categoryOperationCustom;\r\n finalValueMaintenance = categoryMaintenanceCustom;\r\n finalValueEfficiency = categoryEfficiencyCustom;\r\n finalValueEnvironment = categoryEnvironmentCustom;\r\n } else {\r\n finalValueQuality = categoryQuality;\r\n finalValueFeedFlex = categoryFeedFlex;\r\n finalValueOperation = categoryOperation;\r\n finalValueMaintenance = categoryMaintenance;\r\n finalValueEfficiency = categoryEfficiency;\r\n finalValueEnvironment = categoryEnvironment;\r\n }\r\n /////////////////////////////////////////////////////////////////////////////////////////FINAL VALUES:\r\n // Articel: Scenario-Details:\r\n if (criteriaRadioScenario === true) {\r\n finalValuePsd = psd;\r\n finalValueMaxFineness = maxFineness;\r\n finalValueDehydration = dehydration;\r\n finalValueDrying = drying;\r\n finalValueMaxFeedSize = maxFeedSize;\r\n finalValueProductChangingTime = productChangingTime;\r\n finalValueUnderstandingOfProcess = understandingOfProcess;\r\n finalValueSensitivityOfProcess = sensitivityOfProcess;\r\n finalValueControlabilityPersonnel = controlabilityPersonnel;\r\n finalValueAvailableExperience = availableExperience;\r\n finalValueThroughput = throughput;\r\n finalValueMaintenanceTime = maintenanceTime;\r\n finalValueComplexityOfMaintenance = complexityOfMaintenance;\r\n finalValueWearCosts = wearCosts;\r\n finalValueEnergyDemand = energyDemand;\r\n finalValueWaterDemand = waterDemand;\r\n finalValueDustEmissions = dustEmissions;\r\n finalValueNoise = noise;\r\n finalValueEffectOfVibration = effectOfVibration;\r\n } else {\r\n //manuell, da es nur eine Preset für Scenario Details gibt:\r\n finalValuePsd = 0.35;\r\n finalValueMaxFineness = 0.3;\r\n finalValueDehydration = 0.2;\r\n finalValueDrying = 0.15;\r\n finalValueMaxFeedSize = 0.6;\r\n finalValueProductChangingTime = 0.4;\r\n finalValueUnderstandingOfProcess = 0.05;\r\n finalValueSensitivityOfProcess = 0.25;\r\n finalValueControlabilityPersonnel = 0.2;\r\n finalValueAvailableExperience = 0.2;\r\n finalValueThroughput = 0.3;\r\n finalValueMaintenanceTime = 0.4;\r\n finalValueComplexityOfMaintenance = 0.2;\r\n finalValueWearCosts = 0.4;\r\n finalValueEnergyDemand = 0.95;\r\n finalValueWaterDemand = 0.05;\r\n finalValueDustEmissions = 0.3;\r\n finalValueNoise = 0.5;\r\n finalValueEffectOfVibration = 0.2;\r\n }\r\n\r\n // Logik, damit der Wert 0 in die Rechnung übernommen wird:\r\n if (finalValueQuality === 0) {\r\n finalValueQuality = 0.001;\r\n } else {\r\n }\r\n if (finalValueFeedFlex === 0) {\r\n finalValueFeedFlex = 0.001;\r\n } else {\r\n }\r\n if (finalValueOperation === 0) {\r\n finalValueOperation = 0.001;\r\n } else {\r\n }\r\n if (finalValueMaintenance === 0) {\r\n finalValueMaintenance = 0.001;\r\n } else {\r\n }\r\n if (finalValueEfficiency === 0) {\r\n finalValueEfficiency = 0.001;\r\n } else {\r\n }\r\n if (finalValueEnvironment === 0) {\r\n finalValueEnvironment = 0.001;\r\n } else {\r\n }\r\n\r\n if (finalValuePsd === 0) {\r\n finalValuePsd = 0.001;\r\n } else {\r\n }\r\n if (finalValueMaxFineness === 0) {\r\n finalValueMaxFineness = 0.001;\r\n } else {\r\n }\r\n if (finalValueDehydration === 0) {\r\n finalValueDehydration = 0.001;\r\n } else {\r\n }\r\n if (finalValueDrying === 0) {\r\n finalValueDrying = 0.001;\r\n } else {\r\n }\r\n if (finalValueMaxFeedSize === 0) {\r\n finalValueMaxFeedSize = 0.001;\r\n } else {\r\n }\r\n if (finalValueProductChangingTime === 0) {\r\n finalValueProductChangingTime = 0.001;\r\n } else {\r\n }\r\n if (finalValueUnderstandingOfProcess === 0) {\r\n finalValueUnderstandingOfProcess = 0.001;\r\n } else {\r\n }\r\n if (finalValueSensitivityOfProcess === 0) {\r\n finalValueSensitivityOfProcess = 0.001;\r\n } else {\r\n }\r\n if (finalValueControlabilityPersonnel === 0) {\r\n finalValueControlabilityPersonnel = 0.001;\r\n } else {\r\n }\r\n if (finalValueAvailableExperience === 0) {\r\n finalValueAvailableExperience = 0.001;\r\n } else {\r\n }\r\n if (finalValueThroughput === 0) {\r\n finalValueThroughput = 0.001;\r\n } else {\r\n }\r\n if (finalValueMaintenanceTime === 0) {\r\n finalValueMaintenanceTime = 0.001;\r\n } else {\r\n }\r\n if (finalValueComplexityOfMaintenance === 0) {\r\n finalValueComplexityOfMaintenance = 0.001;\r\n } else {\r\n }\r\n if (finalValueWearCosts === 0) {\r\n finalValueWearCosts = 0.001;\r\n } else {\r\n }\r\n if (finalValueEnergyDemand === 0) {\r\n finalValueEnergyDemand = 0.001;\r\n } else {\r\n }\r\n if (finalValueWaterDemand === 0) {\r\n finalValueWaterDemand = 0.001;\r\n } else {\r\n }\r\n if (finalValueDustEmissions === 0) {\r\n finalValueDustEmissions = 0.001;\r\n } else {\r\n }\r\n if (finalValueNoise === 0) {\r\n finalValueNoise = 0.001;\r\n } else {\r\n }\r\n if (finalValueEffectOfVibration === 0) {\r\n finalValueEffectOfVibration = 0.001;\r\n } else {\r\n }\r\n\r\n //Axios Formular:\r\n let triggerAxios = () => {\r\n setAnalysisIsReadyToShow(false);\r\n setInspectMill(\"undefined\")\r\n setFinalList([])\r\n const text = \"löse Funktion >>triggerAxios<< aus\";\r\n const axios = require(\"axios\");\r\n let data = JSON.stringify({\r\n typeOfApplication: finalValueTypeOfApp,\r\n scenarioStatus: categoryRadioScenario,\r\n comparisonMills: finalMillsID,\r\n millSelectStatus: millSelectRadioStatus,\r\n inputPresets: [\r\n {\r\n category: \"Quality\",\r\n criteria: \"KGV_SC\",\r\n categoriesImportance: finalValueQuality,\r\n criteriaImportance: finalValuePsd,\r\n maximumWeights: 7,\r\n thresholds: 5,\r\n },\r\n {\r\n category: \"Quality\",\r\n criteria: \"Feinheit_SC\",\r\n categoriesImportance: finalValueQuality,\r\n criteriaImportance: finalValueMaxFineness,\r\n maximumWeights: 8,\r\n thresholds: 3,\r\n },\r\n {\r\n category: \"Quality\",\r\n criteria: \"Dehydration_SC\",\r\n categoriesImportance: finalValueQuality,\r\n criteriaImportance: finalValueDehydration,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Quality\",\r\n criteria: \"Trocknen_SC\",\r\n categoriesImportance: finalValueQuality,\r\n criteriaImportance: finalValueDrying,\r\n maximumWeights: 7,\r\n thresholds: 3,\r\n },\r\n {\r\n category: \"Feed/Flexibility\",\r\n criteria: \"MaxAufgabekorngroesse_SC\",\r\n categoriesImportance: finalValueFeedFlex,\r\n criteriaImportance: finalValueMaxFeedSize,\r\n maximumWeights: 8,\r\n thresholds: 3,\r\n },\r\n {\r\n category: \"Feed/Flexibility\",\r\n criteria: \"Wechselzeit_SC\",\r\n categoriesImportance: finalValueFeedFlex,\r\n criteriaImportance: finalValueProductChangingTime,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Operation\",\r\n criteria: \"ProzessVerstaendniss_SC\",\r\n categoriesImportance: finalValueOperation,\r\n criteriaImportance: finalValueUnderstandingOfProcess,\r\n maximumWeights: 8,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Operation\",\r\n criteria: \"Sensibilitaet_SC\",\r\n categoriesImportance: finalValueOperation,\r\n criteriaImportance: finalValueSensitivityOfProcess,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Operation\",\r\n criteria: \"Kontrollierbarkeit_SC\",\r\n categoriesImportance: finalValueOperation,\r\n criteriaImportance: finalValueControlabilityPersonnel,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Operation\",\r\n criteria: \"Erfahrung_SC\",\r\n categoriesImportance: finalValueOperation,\r\n criteriaImportance: finalValueAvailableExperience,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Operation\",\r\n criteria: \"Durchsatz_SC\",\r\n categoriesImportance: finalValueOperation,\r\n criteriaImportance: finalValueThroughput,\r\n maximumWeights: 9,\r\n thresholds: 4,\r\n },\r\n {\r\n category: \"Maintenance\",\r\n criteria: \"Instandhaltungszeit_SC\",\r\n categoriesImportance: finalValueMaintenance,\r\n criteriaImportance: finalValueMaintenanceTime,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Maintenance\",\r\n criteria: \"Instandhaltung_SC\",\r\n categoriesImportance: finalValueMaintenance,\r\n criteriaImportance: finalValueComplexityOfMaintenance,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Maintenance\",\r\n criteria: \"Verschleisskosten_SC\",\r\n categoriesImportance: finalValueMaintenance,\r\n criteriaImportance: finalValueWearCosts,\r\n maximumWeights: 7,\r\n thresholds: 4,\r\n },\r\n {\r\n category: \"Efficiency\",\r\n criteria: \"Energiebedarf_SC\",\r\n categoriesImportance: finalValueEfficiency,\r\n criteriaImportance: finalValueEnergyDemand,\r\n maximumWeights: 8,\r\n thresholds: 3,\r\n },\r\n {\r\n category: \"Efficiency\",\r\n criteria: \"Wasserbedarf_SC\",\r\n categoriesImportance: finalValueEfficiency,\r\n criteriaImportance: finalValueWaterDemand,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Environmental_Impact\",\r\n criteria: \"Staubemissionen_SC\",\r\n categoriesImportance: finalValueEnvironment,\r\n criteriaImportance: finalValueDustEmissions,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Environmental_Impact\",\r\n criteria: \"Laerm_SC\",\r\n categoriesImportance: finalValueEnvironment,\r\n criteriaImportance: finalValueNoise,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Environmental_Impact\",\r\n criteria: \"Schwingungseinwirkung_SC\",\r\n categoriesImportance: finalValueEnvironment,\r\n criteriaImportance: finalValueEffectOfVibration,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n ],\r\n });\r\n let config = {\r\n method: \"post\",\r\n url: \"/api/mills/analyze/all\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n data: data,\r\n };\r\n axios(config)\r\n .then((response) => {\r\n ////console.log(JSON.stringify(response.data)); // zeig Werte der Backend Rechnung\r\n setAxiosResponse(response.data);\r\n setOptions(Object.keys(data).map((result) => data[result]));\r\n \r\n if (response.data !== null) { // TODO\r\n //console.log(\"response.data\" + response.data);\r\n setAnalysisIsReadyToShow(true);\r\n }\r\n })\r\n .catch((error) => {\r\n //console.log(error);\r\n });\r\n\r\n\r\n\r\n\r\n setInspectMill(finalList[0][0]);\r\n try {\r\n\r\n\r\n setFinalScore([axiosResponse.map((item) => item.finalScore)]); //item.finalScore\r\n setFinalList([axiosResponse.map((item) => item.millname)]);\r\n\r\n setAverageScoreQuality([\r\n axiosResponse.map(\r\n (item) =>\r\n (\r\n (item.result.ballMillComparison.quality\r\n .comparisonResult +\r\n item.result.verticalMillComparison.quality\r\n .comparisonResult +\r\n item.result.rollerPressMillComparison.quality\r\n .comparisonResult +\r\n item.result.hororMillComparison.quality\r\n .comparisonResult) /\r\n 4\r\n ).toFixed(1),\r\n 2\r\n ),\r\n ]);\r\n setAverageScoreFeed([\r\n axiosResponse.map(\r\n (item) =>\r\n (\r\n (item.result.ballMillComparison.feed.comparisonResult +\r\n item.result.verticalMillComparison.feed\r\n .comparisonResult +\r\n item.result.rollerPressMillComparison.feed\r\n .comparisonResult +\r\n item.result.hororMillComparison.feed\r\n .comparisonResult) /\r\n 4\r\n ).toFixed(1),\r\n 2\r\n ),\r\n ]);\r\n\r\n setAverageScoreOperation([\r\n axiosResponse.map(\r\n (item) =>\r\n (\r\n (item.result.ballMillComparison.operation\r\n .comparisonResult +\r\n item.result.verticalMillComparison.operation\r\n .comparisonResult +\r\n item.result.rollerPressMillComparison.operation\r\n .comparisonResult +\r\n item.result.hororMillComparison.operation\r\n .comparisonResult) /\r\n 4\r\n ).toFixed(1),\r\n 2\r\n ),\r\n ]);\r\n\r\n setAverageScoreMaintenance([\r\n axiosResponse.map(\r\n (item) =>\r\n (\r\n (item.result.ballMillComparison.maintenance\r\n .comparisonResult +\r\n item.result.verticalMillComparison.maintenance\r\n .comparisonResult +\r\n item.result.rollerPressMillComparison.maintenance\r\n .comparisonResult +\r\n item.result.hororMillComparison.maintenance\r\n .comparisonResult) /\r\n 4\r\n ).toFixed(1),\r\n 2\r\n ),\r\n ]);\r\n\r\n setAverageScoreEfficiency([\r\n axiosResponse.map(\r\n (item) =>\r\n (\r\n (item.result.ballMillComparison.efficiency\r\n .comparisonResult +\r\n item.result.verticalMillComparison.efficiency\r\n .comparisonResult +\r\n item.result.rollerPressMillComparison.efficiency\r\n .comparisonResult +\r\n item.result.hororMillComparison.efficiency\r\n .comparisonResult) /\r\n 4\r\n ).toFixed(1),\r\n 2\r\n ),\r\n ]);\r\n\r\n setAverageScoreEnvironmImp([\r\n axiosResponse.map(\r\n (item) =>\r\n (\r\n (item.result.ballMillComparison.environmentalImpact\r\n .comparisonResult +\r\n item.result.verticalMillComparison\r\n .environmentalImpact.comparisonResult +\r\n item.result.rollerPressMillComparison\r\n .environmentalImpact.comparisonResult +\r\n item.result.hororMillComparison.environmentalImpact\r\n .comparisonResult) /\r\n 4\r\n ).toFixed(1),\r\n 2\r\n ),\r\n ]);\r\n\r\n\r\n } catch {\r\n\r\n }\r\n };\r\n\r\n \r\n\r\n\r\n let triggerExcelFile = () => {\r\n //const text = \"löse Funktion >>triggerAxios<< aus\";\r\n const axios = require(\"axios\");\r\n let data = JSON.stringify({\r\n typeOfApplication: finalValueTypeOfApp,\r\n scenarioStatus: categoryRadioScenario,\r\n comparisonMills: finalMillsID,\r\n millSelectStatus: millSelectRadioStatus, \r\n inputPresets: [\r\n {\r\n category: \"Quality\",\r\n criteria: \"KGV_SC\",\r\n categoriesImportance: finalValueQuality,\r\n criteriaImportance: finalValuePsd,\r\n maximumWeights: 7,\r\n thresholds: 5,\r\n },\r\n {\r\n category: \"Quality\",\r\n criteria: \"Feinheit_SC\",\r\n categoriesImportance: finalValueQuality,\r\n criteriaImportance: finalValueMaxFineness,\r\n maximumWeights: 8,\r\n thresholds: 3,\r\n },\r\n {\r\n category: \"Quality\",\r\n criteria: \"Dehydration_SC\",\r\n categoriesImportance: finalValueQuality,\r\n criteriaImportance: finalValueDehydration,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Quality\",\r\n criteria: \"Trocknen_SC\",\r\n categoriesImportance: finalValueQuality,\r\n criteriaImportance: finalValueDrying,\r\n maximumWeights: 7,\r\n thresholds: 3,\r\n },\r\n {\r\n category: \"Feed/Flexibility\",\r\n criteria: \"MaxAufgabekorngroesse_SC\",\r\n categoriesImportance: finalValueFeedFlex,\r\n criteriaImportance: finalValueMaxFeedSize,\r\n maximumWeights: 8,\r\n thresholds: 3,\r\n },\r\n {\r\n category: \"Feed/Flexibility\",\r\n criteria: \"Wechselzeit_SC\",\r\n categoriesImportance: finalValueFeedFlex,\r\n criteriaImportance: finalValueProductChangingTime,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Operation\",\r\n criteria: \"ProzessVerstaendniss_SC\",\r\n categoriesImportance: finalValueOperation,\r\n criteriaImportance: finalValueUnderstandingOfProcess,\r\n maximumWeights: 8,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Operation\",\r\n criteria: \"Sensibilitaet_SC\",\r\n categoriesImportance: finalValueOperation,\r\n criteriaImportance: finalValueSensitivityOfProcess,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Operation\",\r\n criteria: \"Kontrollierbarkeit_SC\",\r\n categoriesImportance: finalValueOperation,\r\n criteriaImportance: finalValueControlabilityPersonnel,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Operation\",\r\n criteria: \"Erfahrung_SC\",\r\n categoriesImportance: finalValueOperation,\r\n criteriaImportance: finalValueAvailableExperience,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Operation\",\r\n criteria: \"Durchsatz_SC\",\r\n categoriesImportance: finalValueOperation,\r\n criteriaImportance: finalValueThroughput,\r\n maximumWeights: 9,\r\n thresholds: 4,\r\n },\r\n {\r\n category: \"Maintenance\",\r\n criteria: \"Instandhaltungszeit_SC\",\r\n categoriesImportance: finalValueMaintenance,\r\n criteriaImportance: finalValueMaintenanceTime,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Maintenance\",\r\n criteria: \"Instandhaltung_SC\",\r\n categoriesImportance: finalValueMaintenance,\r\n criteriaImportance: finalValueComplexityOfMaintenance,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Maintenance\",\r\n criteria: \"Verschleisskosten_SC\",\r\n categoriesImportance: finalValueMaintenance,\r\n criteriaImportance: finalValueWearCosts,\r\n maximumWeights: 7,\r\n thresholds: 4,\r\n },\r\n {\r\n category: \"Efficiency\",\r\n criteria: \"Energiebedarf_SC\",\r\n categoriesImportance: finalValueEfficiency,\r\n criteriaImportance: finalValueEnergyDemand,\r\n maximumWeights: 8,\r\n thresholds: 3,\r\n },\r\n {\r\n category: \"Efficiency\",\r\n criteria: \"Wasserbedarf_SC\",\r\n categoriesImportance: finalValueEfficiency,\r\n criteriaImportance: finalValueWaterDemand,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Environmental_Impact\",\r\n criteria: \"Staubemissionen_SC\",\r\n categoriesImportance: finalValueEnvironment,\r\n criteriaImportance: finalValueDustEmissions,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Environmental_Impact\",\r\n criteria: \"Laerm_SC\",\r\n categoriesImportance: finalValueEnvironment,\r\n criteriaImportance: finalValueNoise,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n {\r\n category: \"Environmental_Impact\",\r\n criteria: \"Schwingungseinwirkung_SC\",\r\n categoriesImportance: finalValueEnvironment,\r\n criteriaImportance: finalValueEffectOfVibration,\r\n maximumWeights: 7,\r\n thresholds: 1,\r\n },\r\n ],\r\n });\r\n const FileDownload = require(\"js-file-download\");\r\n let config = {\r\n method: \"post\",\r\n responseType: \"blob\",\r\n url: \"api/download\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n // \"Content-Disposition\": \"attachment;filename=ExcelReport.xls\",\r\n // \"Content-Type\": \"application/ms-excel\",\r\n },\r\n data: data,\r\n };\r\n axios(config)\r\n .then((response) => {\r\n //console.log(\"response.data\" + response.data.length);\r\n var currentdate = new Date(); \r\n FileDownload(response.data, [\"FGT_AHP_\" + yyyymmddhhmm(currentdate)+\"_\" + finalValueTypeOfApp+\"_\"+categoryRadioScenario+\".xlsx\"]);\r\n \r\n \r\n\r\n })\r\n .catch((error) => {\r\n //console.log(error);\r\n });\r\n };\r\n\r\n // Avarages Logic\r\n useEffect(() => {\r\n\r\n try {\r\n\r\n\r\n setFinalScore([axiosResponse.map((item) => item.finalScore)]); //item.finalScore\r\n setFinalList([axiosResponse.map((item) => item.millname)]);\r\n\r\n setAverageScoreQuality([\r\n axiosResponse.map(\r\n (item) =>\r\n (\r\n (item.result.ballMillComparison.quality\r\n .comparisonResult +\r\n item.result.verticalMillComparison.quality\r\n .comparisonResult +\r\n item.result.rollerPressMillComparison.quality\r\n .comparisonResult +\r\n item.result.hororMillComparison.quality\r\n .comparisonResult) /\r\n 4\r\n ).toFixed(1),\r\n 2\r\n ),\r\n ]);\r\n setAverageScoreFeed([\r\n axiosResponse.map(\r\n (item) =>\r\n (\r\n (item.result.ballMillComparison.feed.comparisonResult +\r\n item.result.verticalMillComparison.feed\r\n .comparisonResult +\r\n item.result.rollerPressMillComparison.feed\r\n .comparisonResult +\r\n item.result.hororMillComparison.feed\r\n .comparisonResult) /\r\n 4\r\n ).toFixed(1),\r\n 2\r\n ),\r\n ]);\r\n\r\n setAverageScoreOperation([\r\n axiosResponse.map(\r\n (item) =>\r\n (\r\n (item.result.ballMillComparison.operation\r\n .comparisonResult +\r\n item.result.verticalMillComparison.operation\r\n .comparisonResult +\r\n item.result.rollerPressMillComparison.operation\r\n .comparisonResult +\r\n item.result.hororMillComparison.operation\r\n .comparisonResult) /\r\n 4\r\n ).toFixed(1),\r\n 2\r\n ),\r\n ]);\r\n\r\n setAverageScoreMaintenance([\r\n axiosResponse.map(\r\n (item) =>\r\n (\r\n (item.result.ballMillComparison.maintenance\r\n .comparisonResult +\r\n item.result.verticalMillComparison.maintenance\r\n .comparisonResult +\r\n item.result.rollerPressMillComparison.maintenance\r\n .comparisonResult +\r\n item.result.hororMillComparison.maintenance\r\n .comparisonResult) /\r\n 4\r\n ).toFixed(1),\r\n 2\r\n ),\r\n ]);\r\n\r\n setAverageScoreEfficiency([\r\n axiosResponse.map(\r\n (item) =>\r\n (\r\n (item.result.ballMillComparison.efficiency\r\n .comparisonResult +\r\n item.result.verticalMillComparison.efficiency\r\n .comparisonResult +\r\n item.result.rollerPressMillComparison.efficiency\r\n .comparisonResult +\r\n item.result.hororMillComparison.efficiency\r\n .comparisonResult) /\r\n 4\r\n ).toFixed(1),\r\n 2\r\n ),\r\n ]);\r\n\r\n setAverageScoreEnvironmImp([\r\n axiosResponse.map(\r\n (item) =>\r\n (\r\n (item.result.ballMillComparison.environmentalImpact\r\n .comparisonResult +\r\n item.result.verticalMillComparison\r\n .environmentalImpact.comparisonResult +\r\n item.result.rollerPressMillComparison\r\n .environmentalImpact.comparisonResult +\r\n item.result.hororMillComparison.environmentalImpact\r\n .comparisonResult) /\r\n 4\r\n ).toFixed(1),\r\n 2\r\n ),\r\n ]);\r\n\r\n\r\n } catch {\r\n\r\n }\r\n\r\n\r\n }, [axiosResponse]);\r\n\r\n function yyyymmddhhmm(dateIn) {\r\n var yyyy = dateIn.getFullYear();\r\n var mm = dateIn.getMonth() + 1; // getMonth() is zero-based\r\n var dd = dateIn.getDate();\r\n var h = dateIn.getHours();\r\n if (h < 10) {\r\n h = [\"0\" + h];\r\n }\r\n var m = dateIn.getMinutes(); \r\n if (m < 10) {\r\n m = [\"0\" + m];\r\n }\r\n\r\n\r\n return String(10000 * yyyy + 100 * mm + dd+\"-\"+h+m); // Leading zeros for mm and dd\r\n }\r\n\r\n\r\n\r\n // Ladebalken für jede Berechnung\r\n let contentLoadingAct;\r\n const [open, setOpen] = useState(false);\r\n const triggerLoadingProzess = () => {\r\n setOpen(!open);\r\n };\r\n let triggerLoadingAct = () => {\r\n contentLoadingAct = (\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n

      Loading ...

    \r\n

    \r\n \r\n \r\n {\" \"}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n };\r\n\r\n // Continue Button ausblenden, wenn Werte aus Scenarios und Scenario-Details gößer als 100% sind\r\n let contentA;\r\n let contentB; \r\n \r\n \r\n // DisableButton = false;\r\n // if (categoryRadioScenario === \"Custom\") {\r\n\r\n if (limitOfSliderCriteria === true && limitOfSliderCategorie === true && categoryRadioScenario === \"Custom\") {\r\n contentA = (\r\n



    \r\n\r\n The sum of the categories and criterias in one or more category is not 100%.\r\n
    \r\n\r\n\r\n }\r\n label=\"Normalise scenario- and criteria-importance\"\r\n />\r\n

    \r\n );\r\n DisableButton = true;\r\n contentB =

    ;\r\n } else {\r\n\r\n DisableButton = false;\r\n\r\n if (limitOfSliderCategorie === true && categoryRadioScenario === \"Custom\") {\r\n contentA = (\r\n



    \r\n The sum of the categories is not 100%.\r\n
    \r\n\r\n\r\n }\r\n label=\"Normalise scenario-importance\"\r\n />
    \r\n

    \r\n );\r\n DisableButton = true;\r\n normalise = true;\r\n } else {\r\n contentA = (

    );\r\n DisableButton = false;\r\n normalise = false;\r\n //console.log(\"DisableButton\" + DisableButton);\r\n }\r\n //console.log(\"DisableButton\" + DisableButton)\r\n if (limitOfSliderCriteria === true && categoryRadioScenario === \"Custom\") {\r\n contentB = (\r\n



    \r\n The sum of the criterias in one or more category is not 100%.\r\n
    \r\n }\r\n label=\"Normalise criteria-importance\"\r\n />\r\n

    \r\n );\r\n DisableButton = true;\r\n normalise = true;\r\n } else {\r\n contentB = (

    );\r\n DisableButton = false;\r\n normalise = false;\r\n //console.log(\"DisableButton\" + DisableButton);\r\n }\r\n\r\n\r\n } \r\n\r\n // } \r\n \r\n // Switch Value für Artikel: Mill Selection.\r\n if (millSelectRadioStatus === \"all\" || allMillsWithoutFilters === true) {\r\n finalMillsID = [\r\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\r\n 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,\r\n 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,\r\n 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67\r\n ];\r\n } else if (\r\n millSelectRadioStatus === \"individual\" &&\r\n allMillsWithoutFilters === false\r\n ) {\r\n finalMillsID = millSelectionUserChoice;\r\n }\r\n\r\n let warntextMillSelection;\r\n if (millSelectRadioStatus === \"\") {\r\n DisableButton = true;\r\n warntextMillSelection =\r\n \"You have not selected a mill, please enter a mill in Articel >>Mill Selection<< for comparison\";\r\n } else {\r\n DisableButton = false;\r\n\r\n }\r\n\r\n // BarChart JS\r\n let scaleBarChart_Mini = {\r\n yAxes: [\r\n {\r\n ticks: {\r\n display: true,\r\n autoSkip: false,\r\n maxTicksLimit: 10,\r\n beginAtZero: true,\r\n suggestedMax: 100,\r\n },\r\n gridLines: {\r\n display: true,\r\n },\r\n },\r\n ],\r\n xAxes: [\r\n {\r\n categoryPercentage: 0.5, // Abstand zwischen den Balken -> Warum keine Auswirkung?\r\n gridLines: {\r\n display: false,\r\n offsetGridLines: false,\r\n },\r\n },\r\n ],\r\n };\r\n\r\n //Button Switch -> Show Graphics\r\n const [checked, setChecked] = useState(false);\r\n\r\n let triggerContenChartsandGraphics = () => {\r\n setChecked(true);\r\n if (checked === true) {\r\n contenChartsandGraphics =

    Hallo

    ;\r\n } else {\r\n contenChartsandGraphics = null;\r\n }\r\n };\r\n\r\n const [progress, setProgress] = useState(0);\r\n const [buffer, setBuffer] = useState(10);\r\n const progressRef = React.useRef(() => {});\r\n\r\n useEffect(() => {\r\n if (loadAnalysis == true) {\r\n progressRef.current = () => {\r\n if (progress > 100) {\r\n setProgress(0);\r\n setBuffer(10);\r\n }\r\n // else {\r\n // const diff = Math.random() * 10;\r\n // const diff2 = Math.random() * 10;\r\n // setProgress(progress + diff);\r\n // setBuffer(progress + diff + diff2);\r\n // }\r\n if (progress >= 100) {\r\n setLoadAnalysis(false);\r\n ////console.log(\"progress war bei 100\");\r\n }\r\n if (analysisIsReadyToShow == true) {\r\n ////console.log(\"Axios war schneller fertig\");\r\n setProgress(100);\r\n }\r\n };\r\n } else {\r\n progressRef.current = () => {};\r\n }\r\n // Falls das mal jemand weiterbearbeitet, sorry für das folgende...\r\n if ((limitOfSliderCriteria === true && limitOfSliderCategorie === true) || (limitOfSliderCriteria == \"\" && limitOfSliderCategorie == \"\") || (limitOfSliderCriteria == \"\" && limitOfSliderCategorie == true) || (limitOfSliderCriteria == true && limitOfSliderCategorie == \"\") || state.checkedF == true) {\r\n DisableButton = false;\r\n } else {\r\n DisableButton = true;\r\n }\r\n\r\n\r\n //console.log(\"DisableButton\" + DisableButton)\r\n\r\n //console.log(\"limitOfSliderCriteria\" + limitOfSliderCriteria)\r\n\r\n //console.log(\"limitOfSliderCategorie\" + limitOfSliderCategorie)\r\n\r\n });\r\n\r\n useEffect(() => {\r\n const timer = setInterval(() => {\r\n progressRef.current();\r\n }, 1400); // Dauer, bis der Ladebalken fertig ist\r\n\r\n return () => {\r\n clearInterval(timer);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n // UseEffect -> nur für console Log Ausgabe\r\n // //console.log(\"inspectMill\", inspectMill);\r\n // //console.log(\"AxiosResponse\", axiosResponse);\r\n // //console.log(\"AxiosResponse.millname\", axiosResponse.millname);\r\n }, [inspectMill, axiosResponse, options]);\r\n\r\n let contenChartsandGraphics; // gibt den gesamten Kontext an Grafik wieder\r\n\r\n let finalListAsObject = finalList.map((item) => {\r\n let objectArray = Object.entries(item);\r\n //Lösungsansatz aus:\r\n //https://stackoverflow.com/questions/42974735/create-object-from-array/42974762\r\n\r\n let objectMapping = objectArray.map(\r\n (elements) =>\r\n (elements = Object.assign(\r\n {},\r\n elements.reduce((acc, cur) => ({\r\n Millname: cur,\r\n keys: parseInt(acc),\r\n }))\r\n ))\r\n );\r\n\r\n return objectMapping;\r\n });\r\n\r\n\r\n //console.log(\"inspectMill\"+ inspectMill)\r\n if (finalListAsObject != null && finalListAsObject != \"\") {\r\n\r\n var linkToDB = \"\"\r\n //console.log(\" finalListAsObject\" + finalListAsObject[0][0][\"Millname\"])\r\n if (inspectMill == null || inspectMill == \"\" || inspectMill == \"undefined\") {\r\n var linkToDB = \"/technologydatabase?name=\" + finalListAsObject[0][0][\"Millname\"];\r\n\r\n }\r\n if (inspectMill != null && inspectMill != \"\" && inspectMill != \"undefined\") {\r\n var linkToDB = \"/technologydatabase?name=\" + inspectMill;\r\n }\r\n //console.log(\"inspectMill\" + inspectMill)\r\n\r\n }\r\n\r\n if (\r\n checked === true &&\r\n analysisIsReadyToShow === true &&\r\n loadAnalysis === false\r\n ) {\r\n\r\n var diagramHeight = Math.ceil(finalList[0].length * 10);\r\n\r\n if (finalList[0].length<10) {\r\n diagramHeight = 100;\r\n }\r\n \r\n\r\n\r\n contenChartsandGraphics = (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Final Ranking

    \r\n
    \r\n
    \r\n

    \r\n Total number of technologies involved in\r\n calculation: {finalList[0].length} out of 67\r\n

    \r\n

    \r\n Type of Application: {typeOfAppLabel} (\r\n {FilterStatus})\r\n

    \r\n {/* //finalValueTypeOfApp */}\r\n

    Scenario : {categoryRadioScenario}

    \r\n
    \r\n }\r\n onClick={() => {\r\n //setLoadAnalysis(true);\r\n // setProgress(0); //achtung du benötigst neuen Set für Loading ExcelFile nicht von Axios \"Start Button\"\r\n //setBuffer(10);\r\n triggerExcelFile();\r\n // triggerLoadingProzess();\r\n // triggerLoadingAct();\r\n }}\r\n >\r\n Download Excel File\r\n \r\n
    \r\n \r\n option.Millname.toString() //+ //console.log(\"\")\r\n }\r\n />\r\n

    \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n {\" \"}\r\n
    \r\n \r\n option.Millname\r\n } //option.Millname\r\n defaultValue={finalListAsObject[0][0]} \r\n onClick\r\n onChange={(event, value) => {\r\n setMillSelek(value.keys);\r\n setInspectMill(value.Millname);\r\n }}\r\n style={{ width: 300 }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n Go to Database\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n DisableButton = true;\r\n } else {\r\n contenChartsandGraphics =
    ;\r\n }\r\n\r\n if (loadAnalysis === true) {\r\n triggerLoadingAct();\r\n } else {\r\n }\r\n let textFinishedLoading;\r\n if (\r\n checked === true &&\r\n analysisIsReadyToShow === true &&\r\n loadAnalysis === false\r\n ) {\r\n textFinishedLoading =
    ;\r\n }\r\n\r\n\r\n\r\n var ButtonEvalText;\r\n ButtonEvalText = \"Start evaluation\";\r\n \r\n\r\n var disabledStyle;\r\n if (DisableButton == true) {\r\n disabledStyle = (\r\n { color: 'red' }\r\n )\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
      \r\n
    • \r\n

      \r\n\r\n
    • \r\n
      \r\n
      \r\n {/* {\r\n triggerContenChartsandGraphics();\r\n triggerAxios();\r\n setLoadAnalysis(true);\r\n setProgress(0);\r\n setBuffer(10);\r\n triggerLoadingProzess();\r\n triggerLoadingAct();\r\n }}\r\n >\r\n
        \r\n \r\n Start Evaluation\r\n
      \r\n */}\r\n \r\n \r\n {\r\n\r\n\r\n const user = \"xyz\";\r\n fetch(\"api/counter_AHP_Start/\" + String(user))\r\n\r\n \r\n if (DisableButton == false) {\r\n setFinalList([])\r\n finalListAsObject = [];\r\n setInspectMill(\"\")\r\n // //console.log(\"inspectMill2\" + inspectMill)\r\n triggerContenChartsandGraphics();\r\n triggerAxios();\r\n setLoadAnalysis(true);\r\n setProgress(0);\r\n setBuffer(10);\r\n triggerLoadingProzess();\r\n triggerLoadingAct();\r\n } \r\n\r\n }\r\n }\r\n >\r\n \r\n {ButtonEvalText}\r\n \r\n \r\n
    • \r\n
    • \r\n

      \r\n
    • \r\n
    \r\n

    {warntextMillSelection}

    \r\n {contentA}\r\n {contentB}\r\n
    \r\n
    \r\n {contentLoadingAct}\r\n \r\n {textFinishedLoading}\r\n \r\n
    \r\n
    \r\n {contenChartsandGraphics}\r\n
    \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport ArticelMillSelect from \"./Container/articel_MillSelect\";\r\nimport ArticelGuideline from \"./Container/articel_Guideline\";\r\nimport Scenarios from \"./Container/articel_Scenario\";\r\n//import ArticelScenarioDetails from \"./Container/articel_ScenarioDetails\";\r\nimport TypeOfApplication from \"./Container/articel_TypeOfApp\";\r\nimport DataSummaryFunction from \"./Container/DataSummary/dataSummary\";\r\nimport theDefaultContext from \"./defaultContext\";\r\n//import Filter from \"./Container/articel_Filter\";\r\n\r\n// Tutorial Provider : https://www.youtube.com/watch?v=eV97KXhmaLY\r\n\r\nexport default function AHPalpha() {\r\n const { Provider } = theDefaultContext;\r\n\r\n /////////////////////////////////////////////////////////////////[TYPE OF APPLICATION] Value of Radio-choice\r\n const [finalValueTypeOfApp, setFinalValueTypeOfApp] = useState(\"\");\r\n\r\n /////////////////////////////////////////////////////////////////[SZENARIOS] Slider aller PresetKategorien\r\n const [categoryQuality, setCategoryQuality] = useState(\"Provider Default\");\r\n const [categoryFeedFlex, setCategoryFeedFlex] =\r\n useState(\"Provider Default\");\r\n const [categoryOperation, setCategoryOperation] =\r\n useState(\"Provider Default\");\r\n const [categoryMaintenance, setCategoryMaintenance] =\r\n useState(\"Provider Default\");\r\n const [categoryEfficiency, setCategoryEfficiency] =\r\n useState(\"Provider Default\");\r\n const [categoryEnvironment, setCategoryEnvironment] =\r\n useState(\"Provider Default\");\r\n\r\n //////////////////////////////////////////////////////////// [SZENARIOS] Slider aller Custom-Werte\r\n const [categoryQualityCustom, setCategoryQualityCustom] = useState(0.28);\r\n const [categoryFeedFlexCustom, setCategoryFeedFlexCustom] = useState(0.15);\r\n const [categoryOperationCustom, setCategoryOperationCustom] =\r\n useState(0.17);\r\n const [categoryMaintenanceCustom, setCategoryMaintenanceCustom] =\r\n useState(0.15);\r\n const [categoryEfficiencyCustom, setCategoryEfficiencyCustom] =\r\n useState(0.2);\r\n const [categoryEnvironmentCustom, setCategoryEnvironmentCustom] =\r\n useState(0.05);\r\n\r\n ////////////////////////////////////////////////////////////////////[SZENARIO DETAILS] Slider Alle Custom-Werte\r\n const [psd, setPsd] = useState(0.35);\r\n const [maxFineness, setMaxFineness] = useState(0.3);\r\n const [dehydration, setDehydration] = useState(0.2);\r\n const [drying, setDrying] = useState(0.15);\r\n const [maxFeedSize, setMaxFeedSize] = useState(0.6);\r\n const [productChangingTime, setProductChangingTime] = useState(0.4);\r\n const [understandingOfProcess, setUnderstandingOfProcess] = useState(0.05);\r\n const [sensitivityOfProcess, setSensitivityOfProcess] = useState(0.25);\r\n const [controlabilityPersonnel, setControlabilityPersonnel] = useState(0.2);\r\n const [availableExperience, setAvailableExperience] = useState(0.2);\r\n const [throughput, setThroughput] = useState(0.3);\r\n const [maintenanceTime, setMaintenanceTime] = useState(0.4);\r\n const [complexityOfMaintenance, setComplexityOfMaintenance] = useState(0.2);\r\n const [wearCosts, setWearCosts] = useState(0.4);\r\n const [energyDemand, setEnergyDemand] = useState(0.95);\r\n const [waterDemand, setWaterDemand] = useState(0.05);\r\n const [dustEmissions, setDustEmissions] = useState(0.3);\r\n const [noise, setNoise] = useState(0.5);\r\n const [effectOfVibration, setEffectOfVibration] = useState(0.2);\r\n\r\n ///////////////////////////////////////////////////////////////////////[SZENARIO-DETAILS] Slider alle PresetKategorien\r\n // aktuell nur ein Preset vorhanden: \"European Standard\"\r\n\r\n //////////////////////////////////////////////////////////// [MILL SELECTION] Provider-Value\r\n const [millSelectionUserChoice, setMillSelectionUserChoice] = useState([0]);\r\n const [allMillsWithoutFilters, setAllMillsWithoutFilters] =\r\n useState(Boolean);\r\n const [millSelectionCountMill, setMillSelectionCountMill] = useState(\"\");\r\n const [millSelectRadioStatus, setMillSelectRadioStatus] = useState(\"all\");\r\n const [selectMillReceivedValue, setSelectMillReceivedValue] =\r\n useState(\"all\");\r\n\r\n //////////////////////////////////////////////////////////////////////////Alle SwitchValues\r\n\r\n const [categoryRadioScenario, setCategoryRadioScenario] = useState(\r\n \"European standard setting\"\r\n );\r\n const [criteriaRadioScenario, setCriteriaRadioScenario] = useState(\"\");\r\n const [limitOfSliderCategorie, setLimitOfSliderCategorie] = useState(\"\");\r\n const [limitOfSliderCriteria, setLimitOfSliderCriteria] = useState(\"\");\r\n\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n {/* How to */}\r\n \r\n\r\n {/*Type of Application*/}\r\n \r\n\r\n {/*Scenarios*/}\r\n \r\n\r\n {/*Scenario Details*/}\r\n {/* */}\r\n\r\n {/*Mill selection*/}\r\n \r\n\r\n {/* Mills filters */}\r\n {/* */}\r\n\r\n {/*DataSummary and Next-Button */}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\n//import axios from \"axios\";\r\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\"; \r\n//import StartScreen from \"./00_StartScreen/startScreen\";\r\n//import PrivacyStatement from \"./00_StartScreen/dataStatement\";\r\n//import LoginPre from \"./00_StartScreen/Login/loginpre\";\r\nimport Mainmenu from \"./01_MainMenu/mainMenu\";\r\n//import AddMill from \"./02_Add Mill/addMill\";\r\n//import Research from \"./02_Research/research\";\r\nimport ManuelSearch from \"./02_Research/manuelSearch\";\r\n//import KeySearch from \"./02_Research/keySearch\";\r\n//import GroupSearch from \"./02_Research/groupSearch\";\r\nimport AHPalpha from \"./02_AHP/02_AHP_Beta/ahp_Alpha\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport IconFormular from \"../Container/Icons/iconFormular\";\r\n//import { withRouter } from \"react-router\";\r\nimport Button from '@material-ui/core/Button';\r\n \r\nexport default function Nav() {\r\n\r\n\r\n\r\nconst [username, setUsername] = useState(\"\");\r\nconst [password, setPassword] = useState(\"\");\r\nconst [user, setUser] = useState()\r\n\r\n\r\n useEffect(() => {\r\n const loggedInUser = localStorage.getItem(\"user\"); \r\n if (loggedInUser) { \r\n setUser(\"true\");\r\n }\r\n }, []);\r\n\r\n\r\nconst handleSubmit = async e => {\r\n e.preventDefault();\r\n const user = [username+';'+ password ];\r\n\r\n // todo use md5\r\n const response = await fetch(\"api/login/\"+String(user))\r\n .then(response => {\r\n return response.json();\r\n })\r\n\r\n //console.log(response)\r\n\r\n if (response) {\r\n setUser(\"true\")\r\n // store the user in localStorage\r\n localStorage.setItem('user', true)\r\n } else {\r\n setUser(\"\")\r\n return (\r\n alert('Wrong username or password')\r\n );\r\n }\r\n\r\n // //console.log(response.data)\r\n};\r\n\r\n\r\n\r\n //console.log(user)\r\n// if there's a user show the message below\r\n if (user) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ); \r\n } else {\r\n {\r\n // if there's no user, show the login form\r\n return (\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n \r\n\r\n
      \r\n\r\n setUsername(target.value)} />\r\n
      \r\n setPassword(target.value)}\r\n />\r\n\r\n
      \r\n
      \r\n\r\n \r\n\r\n \r\n
      \r\n
    • \r\n
    • \r\n \r\n \r\n \r\n Contact ECRA team\r\n \r\n \r\n \r\n
    • \r\n
    \r\n \r\n To improve your browsing experience ECRA uses cookies. By using the login to this website you agree to store the login-information in cookies.\r\n\r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n );\r\n\r\n }\r\n }\r\n}\r\n","import React from \"react\";\r\n\r\nclass Footer extends React.Component {\r\n render() {\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n Data Privacy Statement\r\n \r\n
    \r\n \r\n Go to ECRA Homepage\r\n \r\n \r\n \r\n
      \r\n

      \r\n \r\n
      \r\n ECRA
      \r\n European Cement Research Academy GmbH\r\n
      \r\n Toulouser Allee 71\r\n
      \r\n 40476 Duesseldorf\r\n
      \r\n Germany\r\n
      \r\n
      \r\n Contact:\r\n
      \r\n Phone +49 (0) 211 23 98 38 0
      \r\n Fax +49 (0) 211 23 98 38 500\r\n
      \r\n info@ecra-online.org\r\n
      \r\n
      \r\n \r\n

      \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default Footer;\r\n","import React, { Component, useState } from \"react\";\r\n//import axios from \"axios\";\r\n//import { BrowserRouter as Router, Route } from \"react-router-dom\";\r\nimport \"./custom.css\";\r\nimport \"./SCSS/mainStyle.scss\";\r\nimport Header from \"./Pages/header\";\r\nimport Nav from \"./Pages/nav\";\r\nimport Footer from \"./Pages/footer\";\r\n//import AHPalpha from \"./Pages/02_AHP/02_AHP_Beta/ahp_Alpha\";\r\n\r\n//import Mainmenu from \"./Pages/01_MainMenu/mainMenu\";\r\n//import ManuelSearch from \"./Pages/02_Research/manuelSearch\"; \r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n );\r\n } \r\n}\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === \"localhost\" ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === \"[::1]\" ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener(\"load\", () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === \"installed\") {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log(\r\n \"New content is available; please refresh.\"\r\n );\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n //console.log(\"Content is cached for offline use.\");\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error(\"Error during service worker registration:\", error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get(\"content-type\").indexOf(\"javascript\") ===\r\n -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n \"No internet connection found. App is running in offline mode.\"\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if (\"serviceWorker\" in navigator) {\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport App from \"./App\";\r\nimport registerServiceWorker from \"./registerServiceWorker\";\r\nimport \"./custom.css\";\r\n\r\nconst baseUrl = document.getElementsByTagName(\"base\")[0].getAttribute(\"href\");\r\nconst rootElement = document.getElementById(\"root\");\r\n\r\nReactDOM.render(\r\n\r\n \r\n \r\n ,\r\n rootElement\r\n);\r\n\r\nregisterServiceWorker();\r\n"],"sourceRoot":""}