{"version":3,"sources":["../node_modules/react-semantic-ui-datepickers/dist/locales sync /^/.//.*/.json$","aws-exports.js","utils/API/utils/getDataPath.js","utils/API/utils/SortData.js","utils/API/powerplants/index.js","utils/data/dataToMWh.js","store/APIContext.jsx","store/PriceContext.jsx","store/DateContext.jsx","store/ThresholdContext.jsx","store/ComputedDataContext.jsx","store/CurrentCentralContext.jsx","components/selectors/ButtonDisplayHistoricData.jsx","components/selectors/GroupDatesSelector.jsx","components/NoDataFeedBack/LoadingData.jsx","components/NoDataFeedBack/NoSelected.jsx","components/Title.jsx","components/CustomStatistic.jsx","components/selectors/PowerplantSelector.jsx","components/inputs/PriceInput.jsx","components/inputs/ThresholdInput.jsx","utils/date/momentToString.js","components/inputs/DatePicker.jsx","components/SummaryDaily.jsx","components/Summary.jsx","constants/colors.js","constants/formats.js","utils/data/groupData.js","utils/charts/chartAnnotationsCleanings.js","utils/charts/chartAnnotationsRains.js","components/charts/powerChart.jsx","components/serviceNotAvailable/index.jsx","views/generation/index.jsx","utils/data/nextClean.js","assets/DangerIcon.jsx","assets/WarningIcon.jsx","assets/CheckIcon.jsx","assets/SunIcon.jsx","assets/RainIcon.jsx","views/dashboard/index.jsx","components/charts/soilingChart.jsx","views/soiling/index.jsx","utils/API/utils/init.js","utils/API/utils/get.js","hooks/API/usePredictionData.jsx","components/charts/MeteorologyChart.jsx","views/meteorology/index.jsx","store/LimitationsContext.jsx","components/charts/Predictions48h.jsx","store/SolarLimitationsContext.jsx","components/charts/SolarPredictions48h.jsx","utils/data/updateCentral.js","components/predictionsView/OperationalData/index.jsx","components/predictionsView/CenSolarFileRow/index.jsx","components/predictionsView/CenSolarReports/index.jsx","components/predictionsView/CenWindReports/index.jsx","components/charts/basicChart.jsx","components/predictionsView/Error/index.jsx","components/charts/Predictions240h.jsx","hooks/usePagination.js","components/predictionsView/Limitations/icons/Eye.jsx","components/predictionsView/Limitations/icons/Trash.jsx","components/predictionsView/Limitations/icons/Pencil.jsx","components/predictionsView/Limitations/icons/Power.jsx","components/predictionsView/Limitations/charts/UpdateLimitationChart.jsx","components/predictionsView/WindLimitations/modals/UpdateLimitation.jsx","components/predictionsView/Limitations/charts/CreateLimitationChart.jsx","components/predictionsView/WindLimitations/modals/CreateLimitation.jsx","components/predictionsView/WindLimitations/modals/DeleteLimitations.jsx","components/predictionsView/WindLimitations/modals/ViewLimitation.jsx","components/predictionsView/WindLimitations/tables/ActivatedTable.jsx","components/predictionsView/WindLimitations/modals/ActivateLimitation.jsx","components/predictionsView/WindLimitations/tables/DesactivatedTable.jsx","components/predictionsView/WindLimitations/tables/LogsTable.jsx","components/predictionsView/WindLimitations/WindLimitations.jsx","store/PredictionsContext.jsx","store/LimitationsProvider.jsx","hooks/useLimitationss.js","components/predictionsView/CoesReports/index.jsx","components/predictionsView/SolarLimitations/modals/UpdateLimitation.jsx","components/predictionsView/SolarLimitations/modals/CreateLimitation.jsx","components/predictionsView/SolarLimitations/modals/DeleteLimitations.jsx","components/predictionsView/SolarLimitations/modals/ViewLimitation.jsx","components/predictionsView/SolarLimitations/tables/ActivatedTable.jsx","components/predictionsView/SolarLimitations/modals/ActivateLimitation.jsx","components/predictionsView/SolarLimitations/tables/DesactivatedTable.jsx","components/predictionsView/SolarLimitations/tables/LogsTable.jsx","components/predictionsView/SolarLimitations/SolarLimitations.jsx","components/charts/SolarPredictions240h.jsx","components/predictionsView/CenaceReports/index.jsx","components/predictionsView/XmReports/index.jsx","components/predictionsView/CenHydroFileRow/index.jsx","components/predictionsView/CenHydroReports/index.jsx","views/prediction/index.jsx","hooks/API/usePredictions.jsx","store/PredictionsProvider.jsx","store/SolarLimitationsProvider.jsx","hooks/useSolarLimitations.js","App.jsx","constants/chart.js","utils/charts/index.js","index.jsx","lang.js","undraw_notify_re_65on.svg","components/serviceNotAvailable/undraw_notify_re_65on.svg","assets/logo-suncast.png"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","awsmobile","pathToData","basePath","_ref","type","resolution","year","month","day","hour","fillMonth","concat","padStart","fillHour","fillDay","sortData","data","length","sortedData","Array","index","init","user","queryStringParameters","arguments","undefined","headers","Authorization","idToken","jwtToken","accessToken","response","BasePath","process","get","_asyncToGenerator","_regeneratorRuntime","mark","_callee","path","sort","count","_yield$API$get","_args","wrap","_context","prev","next","abrupt","Auth","currentSession","sent","t0","API","t1","stop","_x","apply","getPowerplants","_ref2","_callee2","_yield$Auth$currentSe","payload","_yield$axios$get","powerplants","_yield$axios$get2","userData","userCentralIds","filteredPowerplants","_context2","axios","username","centralIds","filter","_ref3","includes","getPowerplantData","_getPowerplantDataFromTheApi","_callee4","params","_context4","_x3","_x4","deletePowerplantItem","_deletePowerplantItemMonth","_callee5","_ref4","pkey","skey","_skey$split","_skey$split2","_context5","split","_slicedToArray","del","join","_objectSpread","_x5","postCleaning","_postCleaningDataToTheApi","_callee6","centralId","start","end","_start$toArray$map","_start$toArray$map2","item","_context6","isBefore","toArray","i","toJSON","post","body","_x6","_x7","_x8","dataToMWh","APIContext","React","createContext","addDate","apiData","date","moment","utc","APIStore","children","_useCentrals","_useState","useState","_useState2","centralsIds","setCentralsIds","_useState3","_useState4","centralsMetaData","setCentralsMetadata","useEffect","centrals","reduce","p","n","_n$day_soiling","day_soiling","daySoiling","_n$fancy_name","fancy_name","fancyName","_n$nominal_power","nominal_power","nominalPower","_n$time_resolution","time_resolution","timeResolution","_defineProperty","getCentrals","useCentrals","_useState5","_useState6","centralsData","setCentralsData","resetCleanings","useCallback","cleanings","cleaning","getDataFromPowerplantAPI","_x2","_getDataFromPowerplantAPI","_callee3","_yield$Promise$all","_yield$Promise$all2","power","soiling","soilingPercent","_yield$Promise$all2$","_yield$Promise$all2$2","rain","_yield$Promise$all2$3","soilingSensor","_yield$Promise$all2$4","soilingSensor2","_context3","Promise","all","dates","_ref5","_setDataFromPowerplantAPI","setDataFromPowerplantAPI","createElement","Provider","value","PriceContext","displayName","PriceStore","set","DateContext","DateStore","ThresholdContext","ThresholdStore","ComputedDataContext","defaultInterval","format","LocalStore","_useContext","useContext","centralsMetaDataApi","centralsDataApi","values","metaData","a","b","localeCompare","_metaData$last_interv","last_interval","lastInterval","_metaData$full_interv","full_interval","fullInterval","_metaData$current_soi","current_soiling_rate","currentSoilingRate","_metaData$day_soiling","day_soiling_average_rate","daySoilingAverageRate","_metaData$last_cleani","last_cleaning_not_generation","notGeneratedLastCleaningMWh","toFixed","computedMetadata","current","ComputedDataStore","CurrentCentralContext","CurrentCentralStore","_useContext2","setDates","price","threshold","setData","filteredData","setFilteredData","_useState7","_useState8","notGenerated","setNotGenerated","_useState9","_useState10","daysToUmbral","setDaysToUmbral","_useState11","_useState12","setDaySoilingAverageRate","_useState13","_useState14","notGeneratedValorization","setNotGeneratedValorization","_data$data","_data$data$cleaning","_data$data$power","_data$data$soiling","_data$data$soilingPer","_data$data$rain","_data$data$soilingSen","_data$data$soilingSen2","isBetween","_ref6","_ref7","_ref8","notGeneratedLocal","sum","_ref9","_get$currentSoilingRa","defaultDate","ButtonDisplayHistoricData","_useContext$get","_useContext$get$lastI","_useContext$get$fullI","_useContext2$get","historical","setHistorical","Button","onClick","GroupDatesSelector","setFilter","Group","vertical","className","active","LoadingData","visible","Transition","unmountOnHide","animation","duration","Segment","Progress","percent","color","NoSelected","Header","as","Title","style","marginLeft","defaultProps","CustomStatistic","Statistic","size","title","usd","key","Value","NumberFormat","displayType","thousandSeparator","suffix","Label","PowerplantSelector","currentPowerplant","setCurrentPowerplant","text","htmlFor","Dropdown","name","onChange","options","placeholder","selection","loading","PriceInput","setPrice","energy_price","Form","Input","fluid","label","step","v","isNaN","handleChangePrice","min","width","icon","ThresholdInput","setThreshold","soiling_threshold","handleChangeThreshold","max","momentToString","reverse","DatePicker","setDate","_useContext2$get$last","_useContext2$get$full","handleChangeDate","_","_ref$value","SemanticDatepicker","locale","firstDayOfWeek","toDate","datePickerOnly","clearable","showOutsideDays","maxDate","event","SummaryDaily","_useContext$metaData","_useContext$metaData$","_useContext$metaData$2","Summary","_useContext$get$curre","rgba","R","G","B","A","colorGeneration","opacity","colorRain","colorCleaning","colorSoiling","colorSoilingSensor","colorThreshold","colorLowNubosity","colorMediumNubosity","colorHightNubosity","colorPrecipitation","colorTemperature","timeFormat","week","quarter","groupData","timeUnit","mean","groupOperation","meanBy","sumBy","groupedData","groupBy","formats","sortBy","items","minBy","round","chartAnnotationsCleanings","annotations","hidden","_ref$data","drawTime","xScaleID","yMin","yMax","xMin","xMax","backgroundColor","borderColor","borderWidth","class","chartAnnotationsRains","mode","scaleID","borderDash","borderDashOffset","rainLegend","rains","PowerChart","_ref$timeUnit","_ref$annotations","_ref$rains","chart","useRef","myChart","displayRain","setDisplayRain","displayCleaning","setDisplayCleaning","_myChart$current","destroy","ChartJs","labels","datasets","_toConsumableArray","legend","legendItem","datasetIndex","ci","meta","getDatasetMeta","update","maintainAspectRatio","scales","xAxes","gridLines","offsetGridLines","offset","yAxes","scaleLabel","display","labelString","annotation","processGroupedData","time","unit","ref","ServiceNotAvailable","service","central","src","ilustration","alt","CleaningsTable","_useContext$data$clea","_useContext$get$reset","_useContext$get$id","setStart","setEnd","setLoading","loadingButtons","setLoadingButtons","dateString","click","setClick","createCleaning","handleChange","d","setter","handleConfirm","_loadingButtons$split","_loadingButtons$split2","Confirm","open","content","onConfirm","onCancel","Icon","Table","celled","Row","HeaderCell","Body","_ref3$data","s","Cell","Footer","Date","minDate","disabled","Generation","apps","_useContext2$get2","_useContext2$get2$id","centralData","power_ht","Divider","horizontal","Grid","divided","Column","nextClean","currentSoiling","dayRateAverage","limit","parseFloat","DangerIcon","props","assign","viewBox","fill","height","WarningIcon","CheckIcon","SunIcon","RainIcon","Dashboard","_centralsIds$map","sortedCentralsMetaData","_central$services","services","soiling_service","entries","_central$daySoilingAv","_central$currentSoili","_central$notGenerated","_central$lastInterval","proximity","alignItems","proximityThreshold","_centralsData$key$rai","_centralsData$key","_centralsData$key$rai2","today","local","rainsDates","rainsForecast","isAfter","daysCount","diff","proximityRains","colSpan","colorSensor2","SoilingChart","_ref$projection","projection","_ref$dataSensor","dataSensor","_ref$dataSensor2","dataSensor2","lineTension","ticks","suggestedMax","processGroupedDataSensor","processGroupedDataSensor2","projectedData","updateAnnotations","enabled","Graph","_last","_useContext$get$daySo","_useContext$filteredD","baseDate","last","projectionData","Math","clone","add","Soiling","_currentPowerplant$id","_currentPowerplant$fa","slice","selectType","dataType","toLocalTime","tz","momentTz","getData","subtract","next10Days","startOf","endOf","usePredictionData","full","setFull","getSet","_yield$getData","filterData","h","Chart","_ref$title","_ref$color","_ref$dates","_ref$compressed","compressed","pointBackgroundColor","responsive","isoWeekday","tooltipFormat","canvas","parentNode","ChartNubosity","low","med","high","Meteorology","_useContext$get2","_useContext$get2$id","_usePredictionData","temperature","temperatureDates","_usePredictionData2","precipitation","precipitationDates","lowCloud","medCloud","highCloud","_usePredictionData6","irradiance","irradianceDates","_usePredictionData7","_usePredictionData7$d","windSpeed","windSpeedDates","_usePredictionData8","_usePredictionData8$d","pressureSurface","pressureDates","weather","relaxed","columns","LimitationsContext","currentCentral","limitationsCurve","_limitationsCurve$cur","finalCurve","SolarLimitationsContext","_limitationsCurve$cur2","updateCentral","fetch","method","JSON","stringify","status","OperationalData","permissions","curtailment","availability","beforeCurtailment","beforeAvailability","state","setState","success","description","error","limitation","message","header","messageState","setMessageState","then","json","operational_data","curtailment_setpoint","timeId","setTimeout","clearTimeout","target","parseInt","handleSubmit","res","preventDefault","onKeyDown","keyCode","onSubmit","Popup","trigger","inverted","basic","labelPosition","autoComplete","Message","margin","CenSolarFileRow","doc","generateFile","element","document","fileGet","Blob","href","URL","createObjectURL","download","appendChild","available","calculateDate","selectedDate","dateLimit","CenSolarReports","report4806","setReport4806","report4818","setReport4818","report24009","setReport24009","CEN_data","cen_name","Fragment","handleDate","CenWindReports","momentTZ","setHour","hourGroup","push","hourOptions","eolica12","setEolica12","eolica48","setEolica48","eolica240","setEolica240","rampas","setRampas","getHour","getClosest","encodeURIComponent","Select","defaultValue","handleHour","BasicChart","ErrorChart","_ref4$data","_ref4$timeUnit","_ref4$color","_ref4$title","_myChart$current2","setEmptyDates","startDate","endDate","_loop","dd","y","m","S","prevState","Predictions240h","limitations","stack","stacked","limitedPower","_data$index","usePagination","itemsPerPage","maxPageNumbersToShow","currentPage","setCurrentPage","nPage","ceil","lastIndex","firstIndex","records","prevPage","nextPage","setFirstPage","setLastPage","setPage","pageNumber","startPage","floor","endPage","adjustedStartPage","numbers","Eye","cursor","xmlns","Trash","handleShowDelete","handleShowConfirm","data-bs-toggle","data-bs-target","Pencil","setCurrentLimitation","Power","handleShow","UpdateLimitationChart","level","turbineNominalPower","windTurbineId","_ref$limitation","setValues","setMaxValue","Line","pointBorderColor","yAdjust","UpdateLimitation","_limitation$wind_turb","_currentCentral$wind_181","_currentCentral$wind_182","_windTurbineId$52","_currentCentral$wind_183","_currentCentral$wind_192","_windTurbineId$53","_currentCentral$wind_193","_windTurbineId$54","centralTurbines","categories","onUpdateLimitation","showModal","setShowModal","updating","setUpdating","_useForm","useForm","register","errors","formState","watch","setValue","reset","clearErrors","setWindTurbineId","wind_turbine_id","turbine","_currentCentral$wind_","_currentCentral$wind_2","wind_turbines","isDisabled","windTurbines","setWindTurbines","_limitation$wind_turb2","_limitation$wind_turb3","_limitation$data","_currentCentral$wind_5","_windTurbineId$","_currentCentral$wind_3","_currentCentral$wind_4","without_date_limit","end_date","full_day_limitation","frequency","_currentCentral$wind_6","_currentCentral$wind_7","_windTurbineId$2","_currentCentral$wind_8","_currentCentral$wind_9","_currentCentral$wind_10","_windTurbineId$3","_currentCentral$wind_11","_currentCentral$wind_12","_currentCentral$wind_13","_windTurbineId$4","_currentCentral$wind_14","_currentCentral$wind_15","_currentCentral$wind_16","_windTurbineId$5","_currentCentral$wind_17","_currentCentral$wind_18","_currentCentral$wind_19","_windTurbineId$6","_currentCentral$wind_20","_currentCentral$wind_21","_currentCentral$wind_22","_windTurbineId$7","_currentCentral$wind_23","_currentCentral$wind_24","_currentCentral$wind_25","_windTurbineId$8","_currentCentral$wind_26","_currentCentral$wind_27","_currentCentral$wind_28","_windTurbineId$9","_currentCentral$wind_29","_currentCentral$wind_30","_currentCentral$wind_31","_windTurbineId$10","_currentCentral$wind_32","_currentCentral$wind_33","_currentCentral$wind_34","_windTurbineId$11","_currentCentral$wind_35","_currentCentral$wind_36","_currentCentral$wind_37","_windTurbineId$12","_currentCentral$wind_38","_currentCentral$wind_39","_currentCentral$wind_40","_windTurbineId$13","_currentCentral$wind_41","_currentCentral$wind_42","_currentCentral$wind_43","_windTurbineId$14","_currentCentral$wind_44","_currentCentral$wind_45","_currentCentral$wind_46","_windTurbineId$15","_currentCentral$wind_47","_currentCentral$wind_48","_currentCentral$wind_49","_windTurbineId$16","_currentCentral$wind_50","_currentCentral$wind_51","_currentCentral$wind_52","_windTurbineId$17","_currentCentral$wind_53","_currentCentral$wind_54","_currentCentral$wind_55","_windTurbineId$18","_currentCentral$wind_56","_currentCentral$wind_57","_currentCentral$wind_58","_windTurbineId$19","_currentCentral$wind_59","_currentCentral$wind_60","_currentCentral$wind_61","_windTurbineId$20","_currentCentral$wind_62","_currentCentral$wind_63","_currentCentral$wind_64","_windTurbineId$21","_currentCentral$wind_65","_currentCentral$wind_66","_currentCentral$wind_67","_windTurbineId$22","_currentCentral$wind_68","_currentCentral$wind_69","_currentCentral$wind_70","_windTurbineId$23","_currentCentral$wind_71","_currentCentral$wind_72","_currentCentral$wind_73","_windTurbineId$24","_currentCentral$wind_74","_currentCentral$wind_75","_currentCentral$wind_76","_windTurbineId$25","_currentCentral$wind_77","_currentCentral$wind_78","_currentCentral$wind_79","_windTurbineId$26","_currentCentral$wind_80","_currentCentral$wind_81","_currentCentral$wind_82","_currentCentral$wind_83","_currentCentral$wind_84","_currentCentral$wind_85","_currentCentral$wind_86","_currentCentral$wind_87","_currentCentral$wind_88","_currentCentral$wind_89","_currentCentral$wind_90","_currentCentral$wind_91","_currentCentral$wind_92","_currentCentral$wind_93","_currentCentral$wind_94","_currentCentral$wind_95","_currentCentral$wind_96","_currentCentral$wind_97","_currentCentral$wind_98","_currentCentral$wind_99","_currentCentral$wind_100","_currentCentral$wind_101","_currentCentral$wind_102","_currentCentral$wind_103","_currentCentral$wind_104","_currentCentral$wind_105","_currentCentral$wind_106","_currentCentral$wind_107","_windTurbineId$27","_currentCentral$wind_108","_currentCentral$wind_109","_currentCentral$wind_110","_windTurbineId$28","_currentCentral$wind_111","_currentCentral$wind_112","_currentCentral$wind_113","_windTurbineId$29","_currentCentral$wind_114","_currentCentral$wind_115","_currentCentral$wind_116","_windTurbineId$30","_currentCentral$wind_117","_currentCentral$wind_118","_currentCentral$wind_119","_windTurbineId$31","_currentCentral$wind_120","_currentCentral$wind_121","_currentCentral$wind_122","_windTurbineId$32","_currentCentral$wind_123","_currentCentral$wind_124","_currentCentral$wind_125","_windTurbineId$33","_currentCentral$wind_126","_currentCentral$wind_127","_currentCentral$wind_128","_windTurbineId$34","_currentCentral$wind_129","_currentCentral$wind_130","_currentCentral$wind_131","_windTurbineId$35","_currentCentral$wind_132","_currentCentral$wind_133","_currentCentral$wind_134","_windTurbineId$36","_currentCentral$wind_135","_currentCentral$wind_136","_currentCentral$wind_137","_windTurbineId$37","_currentCentral$wind_138","_currentCentral$wind_139","_currentCentral$wind_140","_windTurbineId$38","_currentCentral$wind_141","_currentCentral$wind_142","_currentCentral$wind_143","_windTurbineId$39","_currentCentral$wind_144","_currentCentral$wind_145","_currentCentral$wind_146","_windTurbineId$40","_currentCentral$wind_147","_currentCentral$wind_148","_currentCentral$wind_149","_windTurbineId$41","_currentCentral$wind_150","_currentCentral$wind_151","_currentCentral$wind_152","_windTurbineId$42","_currentCentral$wind_153","_currentCentral$wind_154","_currentCentral$wind_155","_windTurbineId$43","_currentCentral$wind_156","_currentCentral$wind_157","_currentCentral$wind_158","_windTurbineId$44","_currentCentral$wind_159","_currentCentral$wind_160","_currentCentral$wind_161","_windTurbineId$45","_currentCentral$wind_162","_currentCentral$wind_163","_currentCentral$wind_164","_windTurbineId$46","_currentCentral$wind_165","_currentCentral$wind_166","_currentCentral$wind_167","_windTurbineId$47","_currentCentral$wind_168","_currentCentral$wind_169","_currentCentral$wind_170","_windTurbineId$48","_currentCentral$wind_171","_currentCentral$wind_172","_currentCentral$wind_173","_windTurbineId$49","_currentCentral$wind_174","_currentCentral$wind_175","_currentCentral$wind_176","_windTurbineId$50","_currentCentral$wind_177","_currentCentral$wind_178","_currentCentral$wind_179","_windTurbineId$51","_currentCentral$wind_180","getUser","_yield$Auth$currentAu","currentAuthenticatedUser","Modal","show","onHide","aria-labelledby","fullscreen","closeButton","modified_by","Col","md","controlId","Check","inline","checked","_currentCentral$wind_184","_currentCentral$wind_185","_currentCentral$wind_186","_currentCentral$wind_187","_currentCentral$wind_188","_currentCentral$wind_189","_windTurbines$","_currentCentral$wind_190","_event$","eventLength","windIdLength","_currentCentral$wind_191","closeMenuOnSelect","isMulti","Control","InputGroup","hasValidation","Text","aria-describedby","required","borderTop","_currentCentral$wind_194","_windTurbineId$55","_currentCentral$wind_195","_windTurbineId$56","padding","Alert","variant","isLoading","Spinner","aria-label","interns","category","externs","rows","role","aria-hidden","CreateLimitationChart","endValue","CreateLimitation","limitationLevel","turbineSelected","onChangeTurbineSelected","createdBy","setCreatedBy","creating","setCreating","powerplant_id","start_date","Intl","DateTimeFormat","resolvedOptions","timeZone","created_by","deleted","record_id","total","_currentCentral$nomin","_currentCentral$nomin2","_currentCentral$nomin3","_currentCentral$nomin4","_currentCentral$nomin5","_currentCentral$nomin6","_currentCentral$nomin7","_currentCentral$nomin8","_currentCentral$nomin9","_currentCentral$nomin10","_currentCentral$nomin11","_currentCentral$nomin12","_currentCentral$nomin13","_currentCentral$nomin14","_currentCentral$nomin15","_currentCentral$nomin16","_currentCentral$nomin17","_currentCentral$nomin18","_currentCentral$nomin19","_currentCentral$nomin20","_currentCentral$nomin21","_currentCentral$nomin22","_currentCentral$nomin23","_currentCentral$nomin24","_currentCentral$id","DeleteLimitations","showDelete","setShowDelete","handleCloseDelete","showConfirm","setShowConfirm","handleCloseConfirm","loadingEdit","setLoadingEdit","loadingDelete","setLoadingDelete","deleted_by","ViewLimitation","ActivatedTable","tableSelected","loadingLimitations","activatedLimitations","setActivatedLimitations","_usePagination","newActivatedLimitations","tabIndex","_limitation$wind_turb4","number","ActivateLimitation","setShow","activating","setActivating","handleClose","DesactivatedTable","desactivatedLimitations","setDesactivatedLimitations","newDesactivatedLimitations","LogsTable","logs","action","limitation_id","registered_at","WindLimitations","setTableSelected","onChangeLimitationLevel","textAlign","isSearchable","Tabs","activeKey","onSelect","table","Tab","eventKey","PredictionsContext","LimitationsProvider","_useLimitationss","predictions","setLimitationsCurve","setLogs","setTurbineSelected","setLimitationLevel","setLoadingLimitations","setCategories","setLimitations","_useState15","_useState16","currentLimitation","_useState17","_useState18","setCentralTurbines","downloadLimitations","getLogs","getLimitations","getCategories","categoriesResponse","categoriesByCentralType","central_type","startLoadingData","logsResponse","limitationsResponse","limitationsByCentralId","updateCurve","powerplantCurve","turbinesCurve","getLimitedPower","_objectSpread2","getPowerPlantCurve","queryParams","baseUrl","queryString","urlWithParams","URLSearchParams","toString","ok","getTurbinesCurve","_callee7","_context7","availablePower","_ref10","_predictions$index","_predictions$index2","_ref11","_predictions$index3","getCurves","_ref12","_callee8","_context8","_ref13","_callee9","_context9","_ref14","_callee10","promises","_context10","responses","forEach","_ref15","useLimitationss","CoesReports","forecastReport","setForecastReport","performanceReport","setPerformanceReport","getForecastReport","formatDate","replace","atob","fileContent","getPerformanceReport","_limitation$inverter_","_currentCentral$inver181","_currentCentral$inver182","_inverterId$52","_currentCentral$inver183","_currentCentral$inver192","_inverterId$53","_currentCentral$inver193","_inverterId$54","centralInverters","inverterId","setInverterId","inverter_id","inverter","_currentCentral$inver","_currentCentral$inver2","inverters","setInverters","_limitation$inverter_2","_limitation$inverter_3","_currentCentral$inver5","_inverterId$","_currentCentral$inver3","_currentCentral$inver4","_currentCentral$inver6","_currentCentral$inver7","_inverterId$2","_currentCentral$inver8","_currentCentral$inver9","_currentCentral$inver10","_inverterId$3","_currentCentral$inver11","_currentCentral$inver12","_currentCentral$inver13","_inverterId$4","_currentCentral$inver14","_currentCentral$inver15","_currentCentral$inver16","_inverterId$5","_currentCentral$inver17","_currentCentral$inver18","_currentCentral$inver19","_inverterId$6","_currentCentral$inver20","_currentCentral$inver21","_currentCentral$inver22","_inverterId$7","_currentCentral$inver23","_currentCentral$inver24","_currentCentral$inver25","_inverterId$8","_currentCentral$inver26","_currentCentral$inver27","_currentCentral$inver28","_inverterId$9","_currentCentral$inver29","_currentCentral$inver30","_currentCentral$inver31","_inverterId$10","_currentCentral$inver32","_currentCentral$inver33","_currentCentral$inver34","_inverterId$11","_currentCentral$inver35","_currentCentral$inver36","_currentCentral$inver37","_inverterId$12","_currentCentral$inver38","_currentCentral$inver39","_currentCentral$inver40","_inverterId$13","_currentCentral$inver41","_currentCentral$inver42","_currentCentral$inver43","_inverterId$14","_currentCentral$inver44","_currentCentral$inver45","_currentCentral$inver46","_inverterId$15","_currentCentral$inver47","_currentCentral$inver48","_currentCentral$inver49","_inverterId$16","_currentCentral$inver50","_currentCentral$inver51","_currentCentral$inver52","_inverterId$17","_currentCentral$inver53","_currentCentral$inver54","_currentCentral$inver55","_inverterId$18","_currentCentral$inver56","_currentCentral$inver57","_currentCentral$inver58","_inverterId$19","_currentCentral$inver59","_currentCentral$inver60","_currentCentral$inver61","_inverterId$20","_currentCentral$inver62","_currentCentral$inver63","_currentCentral$inver64","_inverterId$21","_currentCentral$inver65","_currentCentral$inver66","_currentCentral$inver67","_inverterId$22","_currentCentral$inver68","_currentCentral$inver69","_currentCentral$inver70","_inverterId$23","_currentCentral$inver71","_currentCentral$inver72","_currentCentral$inver73","_inverterId$24","_currentCentral$inver74","_currentCentral$inver75","_currentCentral$inver76","_inverterId$25","_currentCentral$inver77","_currentCentral$inver78","_currentCentral$inver79","_inverterId$26","_currentCentral$inver80","_currentCentral$inver81","_currentCentral$inver82","_currentCentral$inver83","_currentCentral$inver84","_currentCentral$inver85","_currentCentral$inver86","_currentCentral$inver87","_currentCentral$inver88","_currentCentral$inver89","_currentCentral$inver90","_currentCentral$inver91","_currentCentral$inver92","_currentCentral$inver93","_currentCentral$inver94","_currentCentral$inver95","_currentCentral$inver96","_currentCentral$inver97","_currentCentral$inver98","_currentCentral$inver99","_currentCentral$inver100","_currentCentral$inver101","_currentCentral$inver102","_currentCentral$inver103","_currentCentral$inver104","_currentCentral$inver105","_currentCentral$inver106","_currentCentral$inver107","_inverterId$27","_currentCentral$inver108","_currentCentral$inver109","_currentCentral$inver110","_inverterId$28","_currentCentral$inver111","_currentCentral$inver112","_currentCentral$inver113","_inverterId$29","_currentCentral$inver114","_currentCentral$inver115","_currentCentral$inver116","_inverterId$30","_currentCentral$inver117","_currentCentral$inver118","_currentCentral$inver119","_inverterId$31","_currentCentral$inver120","_currentCentral$inver121","_currentCentral$inver122","_inverterId$32","_currentCentral$inver123","_currentCentral$inver124","_currentCentral$inver125","_inverterId$33","_currentCentral$inver126","_currentCentral$inver127","_currentCentral$inver128","_inverterId$34","_currentCentral$inver129","_currentCentral$inver130","_currentCentral$inver131","_inverterId$35","_currentCentral$inver132","_currentCentral$inver133","_currentCentral$inver134","_inverterId$36","_currentCentral$inver135","_currentCentral$inver136","_currentCentral$inver137","_inverterId$37","_currentCentral$inver138","_currentCentral$inver139","_currentCentral$inver140","_inverterId$38","_currentCentral$inver141","_currentCentral$inver142","_currentCentral$inver143","_inverterId$39","_currentCentral$inver144","_currentCentral$inver145","_currentCentral$inver146","_inverterId$40","_currentCentral$inver147","_currentCentral$inver148","_currentCentral$inver149","_inverterId$41","_currentCentral$inver150","_currentCentral$inver151","_currentCentral$inver152","_inverterId$42","_currentCentral$inver153","_currentCentral$inver154","_currentCentral$inver155","_inverterId$43","_currentCentral$inver156","_currentCentral$inver157","_currentCentral$inver158","_inverterId$44","_currentCentral$inver159","_currentCentral$inver160","_currentCentral$inver161","_inverterId$45","_currentCentral$inver162","_currentCentral$inver163","_currentCentral$inver164","_inverterId$46","_currentCentral$inver165","_currentCentral$inver166","_currentCentral$inver167","_inverterId$47","_currentCentral$inver168","_currentCentral$inver169","_currentCentral$inver170","_inverterId$48","_currentCentral$inver171","_currentCentral$inver172","_currentCentral$inver173","_inverterId$49","_currentCentral$inver174","_currentCentral$inver175","_currentCentral$inver176","_inverterId$50","_currentCentral$inver177","_currentCentral$inver178","_currentCentral$inver179","_inverterId$51","_currentCentral$inver180","_currentCentral$inver184","_currentCentral$inver185","_currentCentral$inver186","_currentCentral$inver187","_currentCentral$inver188","_currentCentral$inver189","_inverters$","_currentCentral$inver190","inverterIdLength","_currentCentral$inver191","_currentCentral$inver194","_inverterId$55","_currentCentral$inver195","_inverterId$56","inverterSelected","_limitation$inverter_4","SolarLimitations","onChangeInverterSelected","SolarPredictions240h","processData","decodedData","byteArray","Uint8Array","charCodeAt","CenaceReports","mda","setMda","augc","setAugc","forecast","setForecast","setIrradiance","getMda","getAugc","getForecast","getIrradiance","XmReports","CenHydroFileRow","CenHydroReports","console","log","Prediction","_get$apps","_get$apps2","_get$apps3","userPermissions","setUserPermissions","solarLimitationsCurve","setClientId","_useContext5","_useContext5$get","_useContext5$get2","_useContext5$get2$id","regulator","_useContext5$get2$nom","nubosityDates","getUserData","_data$clientID","platform_permissions","clientID","_usePredictionData2$d","_usePredictionData3","_usePredictionData4","_usePredictionData4$d","_usePredictionData5","finalPressure","deltaPrecipitations","array","power_prediction","SolarPredictions48h","Predictions48h","hasOwnProperty","_getDataFromApi","PredictionsProvider","setPredictions","_centralsMetaData$cen","fecha","fechaUTC","api240Data","apiDate","apiHour","UTC","responseList","prevPredictions","usePredictions","SolarLimitationsProvider","_useSolarLimitations","setInverterSelected","setCentralInverters","invertersCurve","getInvertersCurve","useSolarLimitations","PricePaths","Set","ThresholdPaths","InputsHeader","areSoilingCentrals","pathname","useLocation","Sticky","SelectorPowerplantsPaths","has","DatePaths","HeaderMenu","modules","Menu","NavLink","exact","to","routeProps","activeClassName","Item","getBrowser","sBrowser","sUsrAg","navigator","userAgent","indexOf","getStage","appStage","App","_useContext4$get","setModules","setAreSoilingCentrals","countSoilingCentrals","connectionDate","full_date","getDate","nickname","template","hotjar","initialize","ReactGA","pageview","window","location","search","_currentPowerplant$tz","_currentPowerplant$cu","_currentPowerplant$no","_currentPowerplant$ap","Router","logo","Switch","Route","NoUserFeedback","justifyContent","maxWidth","withAuthenticator","setUser","Greetings","SignIn","ConfirmSignIn","VerifyContact","ForgotPassword","RequireNewPassword","Loading","scalesDefault","beginAtZero","displayFormats","distribution","Tooltip","positioners","chartElements","coordinates","defaults","global","tooltips","position","intersect","plugins","Amplify","configure","awsconfig","authScreenLabels","es","Hello","Change","I18n","setLanguage","putVocabularies","momentTimeZone","setDefault","ReactDOM","render","getElementById"],"mappings":"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","file":"static/js/main.086c5a79.chunk.js","sourcesContent":["var map = {\n\t\"./bg-BG.json\": 1044,\n\t\"./ca-ES.json\": 1045,\n\t\"./de-DE.json\": 1046,\n\t\"./en-US.json\": 431,\n\t\"./es-ES.json\": 1047,\n\t\"./fi-FI.json\": 1048,\n\t\"./fr-FR.json\": 1049,\n\t\"./he-IL.json\": 1050,\n\t\"./it-IT.json\": 1051,\n\t\"./ja-JP.json\": 1052,\n\t\"./no-NB.json\": 1053,\n\t\"./pl-PL.json\": 1054,\n\t\"./pt-BR.json\": 1055,\n\t\"./ru-RU.json\": 1056,\n\t\"./sv-SE.json\": 1057,\n\t\"./tr-TR.json\": 1058,\n\t\"./zh-CN.json\": 1059\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1043;","/* eslint-disable */\n// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.\n\nconst awsmobile = {\n \"aws_project_region\": \"us-east-1\",\n \"aws_cognito_identity_pool_id\": \"us-east-1:059ffe2e-8c98-4280-b28b-4b05f8eda5f7\",\n \"aws_cognito_region\": \"us-east-1\",\n \"aws_user_pools_id\": \"us-east-1_DQQqRwxAx\",\n \"aws_user_pools_web_client_id\": \"4i061n7sqmqq9bongvmv26g9dt\",\n \"oauth\": {},\n \"aws_cognito_username_attributes\": [],\n \"aws_cognito_social_providers\": [],\n \"aws_cognito_signup_attributes\": [\n \"EMAIL\",\n \"NAME\",\n \"NICKNAME\"\n ],\n \"aws_cognito_mfa_configuration\": \"OFF\",\n \"aws_cognito_mfa_types\": [\n \"SMS\"\n ],\n \"aws_cognito_password_protection_settings\": {\n \"passwordPolicyMinLength\": 8,\n \"passwordPolicyCharacters\": []\n },\n \"aws_cognito_verification_mechanisms\": [\n \"EMAIL\"\n ],\n \"Auth\": {\n \"identityPoolId\": \"us-east-1:059ffe2e-8c98-4280-b28b-4b05f8eda5f7\",\n \"region\": \"us-east-1\",\n \"userPoolId\": \"us-east-1_DQQqRwxAx\",\n \"userPoolWebClientId\": \"4i061n7sqmqq9bongvmv26g9dt\"\n },\n \"API\": {\n \"endpoints\": [\n {\n \"name\": \"API\",\n \"endpoint\": \"https://1xtdlsbzob.execute-api.us-east-1.amazonaws.com/v2\"\n }\n ]\n }\n};\n\n\nexport default awsmobile;\n","const pathToData = function pathToDataFromTheApi(basePath, id,\n {\n type, resolution, year, month, day, hour,\n }) {\n const fillMonth = month ? `${month}`.padStart(2, '0') : ''\n const fillHour = hour ? `${hour}`.padStart(2, '0') : ''\n const fillDay = day ? `${day}`.padStart(2, '0') : ''\n\n let path\n if (hour) {\n path = `${basePath}/${id}/${type}/${resolution}/${year}/${fillMonth}/${fillDay}/${fillHour}`\n } else if (day) {\n path = `${basePath}/${id}/${type}/${resolution}/${year}/${fillMonth}/${fillDay}`\n } else if (month) {\n path = `${basePath}/${id}/${type}/${resolution}/${year}/${fillMonth}`\n } else if (year) {\n path = `${basePath}/${id}/${type}/${resolution}/${year}`\n } else if (resolution) {\n path = `${basePath}/${id}/${type}/${resolution}`\n } else {\n path = `${basePath}/${id}/${type}`\n }\n return path\n}\n\nexport default pathToData\n","const sortData = function sortDataFromDataParamOfApi(data) {\n const keys = Object.keys(data)\n const { length } = keys\n const sortedData = new Array(length)\n for (let index = 0; index < length; index += 1) {\n sortedData[index] = data[keys[index]]\n }\n return sortedData\n}\n\nexport default sortData\n","import { API, Auth } from 'aws-amplify'\nimport axios from 'axios'\nimport pathToData from '../utils/getDataPath'\nimport sortData from '../utils/SortData'\n\nconst stage = process.env.REACT_APP_STAGE\nconst apiName = 'API'\nconst init = (user, queryStringParameters = {}) => ({ // OPTIONAL\n headers: {\n 'Content-Type': 'application/json',\n Authorization: user.idToken.jwtToken,\n accessToken: user.accessToken.jwtToken,\n }, // OPTIONAL\n response: true, // OPTIONAL\n queryStringParameters,\n})\nconst MAX_RETRY = 5\n\nconst BasePath = `/${stage}/powerplants`\nconst get = async (path, sort = true, count = 0) => {\n if (count === MAX_RETRY) return {}\n let user\n try {\n user = await Auth.currentSession()\n } catch (error) {\n return get(path, count + 1)\n }\n if (!user) {\n return {}\n }\n try {\n const { data } = await API.get(\n apiName,\n path,\n init(user),\n )\n return sort ? sortData(data) : data\n } catch (e) {\n return get(path, count + 1)\n }\n}\n\nconst getPowerplants = async () => {\n const { accessToken: { payload } } = await Auth.currentSession();\n const { data: powerplants } = await axios.get('https://lyemdmo7ub.execute-api.us-east-1.amazonaws.com/Prod/production');\n const { data: userData } = await axios.get(`https://3z7fxc2l2h.execute-api.us-east-1.amazonaws.com/Prod/users/${payload.username}`);\n const userCentralIds = userData.centralIds;\n\n const filteredPowerplants = powerplants.filter(({ id }) => {\n return userCentralIds.includes(id);\n });\n\n return filteredPowerplants;\n}\n\nconst getPowerplant = async function getPowerplantFromTheApi(id) {\n const path = `${BasePath}/${id}`\n return get(path, false)\n}\n\nconst getPowerplantData = async function getPowerplantDataFromTheApi(id, params) {\n const path = pathToData(BasePath, id, params)\n return get(path)\n}\nconst deletePowerplantItem = async function deletePowerplantItemMonth({ pkey, skey }) {\n const user = await Auth.currentSession()\n if (!user) return {}\n const id = pkey.split('powerplant-')[1]\n const [type, resolution, year, month, day] = skey.split('-')\n const response = await API.del(\n apiName,\n `${BasePath}/${id}/${skey.split('-').join('/')}`,\n {\n id,\n type,\n resolution,\n year,\n month,\n day,\n ...init(user),\n },\n )\n return response\n}\nconst postCleaning = async function postCleaningDataToTheApi(centralId, start, end) {\n if (!start || !end) return {}\n if (end.isBefore(start)) return {}\n const [year, month, day] = start.toArray().map((i, index) => `${index === 1 ? i + 1 : i}`.padStart(2, '0'))\n const item = {\n id: centralId,\n pkey: `powerplant-${centralId}`,\n skey: `cleaning-day-${year}-${month}-${day}`,\n type: 'cleaning',\n resolution: 'day',\n data: {\n start: start.toJSON().split('T')[0],\n end: end.toJSON().split('T')[0],\n },\n year,\n month,\n day,\n }\n const path = `/${stage}/powerplants/${centralId}/cleaning/day/${year}/${month}/${day}`\n const response = await API.post(\n apiName,\n path,\n { body: item },\n )\n return response\n}\n\nexport {\n getPowerplants, getPowerplant, getPowerplantData, postCleaning,\n deletePowerplantItem,\n}\nexport default getPowerplants\n","/**\n * for each item in data, de data atribute is divided by 1000\n * @author lileiva\n * @param {Array} data [{data:Number},{data:Number},{data:Number}]\n * @returns Array\n */\nconst dataToMWh = (data) => data.map((i) => ({ ...i, data: i.data / 1000 }))\nexport default dataToMWh\n","\nimport React, { useState, useEffect, useCallback } from 'react'\nimport PropTypes from 'prop-types'\nimport moment from 'moment'\nimport { getPowerplants, getPowerplantData } from 'utils/API/powerplants'\nimport { dataToMWh } from 'utils/data'\n\nconst APIContext = React.createContext({})\n\nexport default APIContext\n\nconst addDate = (apiData) => ({\n ...apiData,\n date: moment.utc(`${apiData.year + apiData.month + apiData.day}`, 'YYYYMMDD'),\n})\n\nconst useCentrals = () => {\n const [centralsIds, setCentralsIds] = useState([])\n const [centralsMetaData, setCentralsMetadata] = useState({})\n useEffect(() => {\n const getCentrals = async () => {\n const centrals = await getPowerplants()\n setCentralsIds(centrals.map(({ id }) => id))\n setCentralsMetadata(centrals.reduce((p, n) => {\n const {\n day_soiling: daySoiling = 0,\n fancy_name: fancyName = '',\n nominal_power: nominalPower = 0,\n time_resolution: timeResolution = 0,\n } = n\n return {\n ...p,\n [n.id]: {\n ...n,\n daySoiling,\n fancyName,\n nominalPower,\n timeResolution,\n },\n }\n }, {}))\n }\n getCentrals()\n }, [])\n return { centralsIds, centralsMetaData }\n}\n\nconst APIStore = ({ children }) => {\n const { centralsIds, centralsMetaData } = useCentrals()\n const [centralsData, setCentralsData] = useState({})\n\n const resetCleanings = useCallback(async (centralId) => {\n const cleanings = await getPowerplantData(centralId, { type: 'cleaning', resolution: 'day' })\n setCentralsData((prev) => ({\n ...prev,\n [centralId]: {\n ...prev[centralId],\n cleaning: cleanings.map(addDate),\n },\n }))\n }, [])\n useEffect(() => {\n async function getDataFromPowerplantAPI(centralId) {\n const [power, soiling, soilingPercent, cleaning = [],\n rain = [], soilingSensor = [], soilingSensor2 = []] = await Promise.all(\n ['power', 'soiling', 'soiling_percent', 'cleaning', 'rain', 'soiling_sensor', 'soiling_sensor2']\n .map((type) => getPowerplantData(centralId, { type, resolution: 'day' })),\n )\n return {\n power: dataToMWh(power.map(addDate)),\n soiling: dataToMWh(soiling.map(addDate)),\n soilingPercent: soilingPercent.map(addDate),\n soilingSensor: soilingSensor.map(addDate),\n soilingSensor2: soilingSensor2.map(addDate),\n cleaning: cleaning.map(addDate),\n rain: rain.map(addDate),\n dates: power.map(({ year, month, day }) => moment.utc(`${year + month + day}`, 'YYYYMMDD')),\n id: centralId,\n }\n }\n async function setDataFromPowerplantAPI() {\n const data = await Promise.all(\n centralsIds\n .map((centralId) => getDataFromPowerplantAPI(centralId)),\n )\n setCentralsData(centralsIds.reduce((prev, id, index) => ({\n ...prev,\n [id]: {\n ...data[index],\n },\n }), {}))\n }\n setDataFromPowerplantAPI()\n }, [centralsIds])\n return (\n \n {children}\n \n )\n}\nAPIStore.propTypes = { children: PropTypes.node.isRequired }\nexport { APIStore }\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\n\nconst PriceContext = React.createContext({})\nPriceContext.displayName = 'PriceContext'\nexport default PriceContext\n\nconst PriceStore = ({ children }) => {\n const [get, set] = useState(0)\n return (\n \n {children}\n \n )\n}\nPriceStore.propTypes = { children: PropTypes.node.isRequired }\nexport { PriceStore }\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport moment from 'moment'\n\nconst DateContext = React.createContext({})\nDateContext.displayName = 'DateContext'\nexport default DateContext\n\nconst DateStore = ({ children }) => {\n const [get, set] = useState({ start: moment.utc(), end: moment.utc() })\n return (\n \n {children}\n \n )\n}\nDateStore.propTypes = { children: PropTypes.node.isRequired }\nexport { DateStore }\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\n\nconst ThresholdContext = React.createContext({})\nThresholdContext.displayName = 'ThresholdContext'\nexport default ThresholdContext\n\nconst ThresholdStore = ({ children }) => {\n const [get, set] = useState(3)\n return (\n \n {children}\n \n )\n}\nThresholdStore.propTypes = { children: PropTypes.node.isRequired }\nexport { ThresholdStore }\n","import React, { useState, useContext, useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport moment from 'moment'\nimport APIContext, { APIStore } from './APIContext'\n\nconst ComputedDataContext = React.createContext({})\nComputedDataContext.displayName = 'ComputedDataContext'\n\nexport default ComputedDataContext\n\nconst defaultStart = moment.utc('2010-01-01').format('YYYY-MM-DD')\nconst defaultEnd = moment.utc().format('YYYY-MM-DD')\n\nconst defaultInterval = { start: defaultStart, end: defaultEnd }\n\nconst computedMetadata = (metaData) => {\n const {\n last_interval: lastInterval = defaultInterval,\n full_interval: fullInterval = defaultInterval,\n current_soiling_rate: currentSoilingRate = 0,\n day_soiling_average_rate: daySoilingAverageRate = 0,\n last_cleaning_not_generation: notGeneratedLastCleaningMWh = 0,\n } = metaData\n return {\n ...metaData,\n currentSoilingRate: +currentSoilingRate.toFixed(2),\n daySoilingAverageRate: +daySoilingAverageRate.toFixed(2),\n notGeneratedLastCleaningMWh: +(notGeneratedLastCleaningMWh / 1000).toFixed(2),\n lastInterval: { start: moment.utc(lastInterval.start, 'YYYY-MM-DD'), end: moment.utc(lastInterval.end, 'YYYY-MM-DD') },\n fullInterval: { start: moment.utc(fullInterval.start, 'YYYY-MM-DD'), end: moment.utc(fullInterval.end, 'YYYY-MM-DD') },\n }\n}\n\n\nconst LocalStore = ({ children }) => {\n const {\n centralsMetaData: centralsMetaDataApi,\n centralsData: centralsDataApi,\n resetCleanings,\n } = useContext(APIContext)\n const [centralsMetaData, setCentralsMetadata] = useState({})\n\n useEffect(() => {\n const CentralsData = Object.values(centralsDataApi)\n if (CentralsData.length === 0) return\n const metaData = Object.values(centralsMetaDataApi).sort((a, b) => {\n return a.fancy_name.localeCompare(b.fancy_name);\n });\n if (metaData.length === 0) return\n setCentralsMetadata(\n metaData\n .map((value) => computedMetadata(value))\n .reduce((prev, current) => ({\n ...prev,\n [current.id]: {\n ...current,\n resetCleanings: () => { resetCleanings(current.id) },\n },\n }), {}),\n )\n }, [centralsDataApi, centralsMetaDataApi, resetCleanings])\n return (\n \n {children}\n \n )\n}\nconst ComputedDataStore = ({ children }) => (\n \n \n { children }\n \n \n)\n\nLocalStore.propTypes = { children: PropTypes.node.isRequired }\nComputedDataStore.propTypes = { children: PropTypes.node.isRequired }\nexport { ComputedDataStore }\n","import React, { useState, useContext, useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport ComputedDataContext from './ComputedDataContext'\nimport DateContext from './DateContext'\nimport PriceContext from './PriceContext'\nimport ThresholdContext from './ThresholdContext'\nimport { soilingAverageRate } from './utils'\n\nconst CurrentCentralContext = React.createContext({})\nCurrentCentralContext.displayName = 'CurrentCentralContext'\nexport default CurrentCentralContext\n\nconst CurrentCentralStore = ({ children }) => {\n const { centralsData, centralsMetaData } = useContext(ComputedDataContext)\n const { get: dates, set: setDates } = useContext(DateContext)\n const { get: price } = useContext(PriceContext)\n const { get: threshold } = useContext(ThresholdContext)\n const [get, set] = useState({})\n const [data, setData] = useState({})\n const [filteredData, setFilteredData] = useState({})\n const [notGenerated, setNotGenerated] = useState(0)\n const [daysToUmbral, setDaysToUmbral] = useState(0)\n const [daySoilingAverageRate, setDaySoilingAverageRate] = useState(0)\n const [notGeneratedValorization, setNotGeneratedValorization] = useState(0)\n useEffect(() => {\n if (!get.id) return\n if (!centralsMetaData[get.id]) return\n if (!centralsData[get.id]) return\n\n if (data.id === get.id\n && centralsData[get.id].cleaning.length === data.cleaning.length\n ) return\n const { fullInterval } = centralsMetaData[get.id]\n setDates(fullInterval)\n setData({\n data: { ...centralsData[get.id] },\n ...centralsData[get.id],\n ...centralsMetaData[get.id],\n id: get.id,\n })\n }, [centralsData, centralsMetaData, data, data.id, get.id, setDates])\n useEffect(() => {\n if (!data.data) return\n const { start, end } = dates\n const {\n cleaning = [],\n power = [],\n soiling = [],\n soilingPercent = [],\n rain = [],\n soilingSensor = [],\n soilingSensor2 = [],\n } = data.data\n setFilteredData(\n {\n rain: rain.filter(({ date: d }) => d.isBetween(start, end, undefined, '(]')),\n soilingSensor: soilingSensor.filter(({ date: d }) => d.isBetween(start, end, undefined, '(]')),\n soilingSensor2: soilingSensor2.filter(({ date: d }) => d.isBetween(start, end, undefined, '(]')),\n cleaning: cleaning.filter(({ date: d }) => d.isBetween(start, end, undefined, '(]')),\n power: power.filter(({ date: d }) => d.isBetween(start, end, undefined, '(]')),\n soiling: soiling.filter(({ date: d }) => d.isBetween(start, end, undefined, '(]')),\n soilingPercent: soilingPercent.filter(({ date: d }) => d.isBetween(start, end, undefined, '(]')),\n },\n )\n }, [data.data, dates])\n\n\n useEffect(() => {\n if (!filteredData) return\n if (!filteredData.soiling) return\n const notGeneratedLocal = filteredData.soiling.reduce((sum, { data: d }) => {\n return sum + d;\n }, 0);\n setNotGenerated(notGeneratedLocal)\n }, [filteredData])\n\n\n // useEffect(() => {\n // if (!filteredData) return\n // if (!filteredData.soilingPercent) return\n\n // setDaySoilingAverageRate(soilingAverageRate(filteredData.soilingPercent))\n // }, [filteredData])\n\n useEffect(() => {\n if (!get) return\n if (!get.daySoilingAverageRate) return\n\n setDaySoilingAverageRate(get.daySoilingAverageRate)\n }, [get])\n\n useEffect(() => {\n setNotGeneratedValorization(notGenerated * price)\n }, [notGenerated, price])\n\n useEffect(() => {\n const { currentSoilingRate = undefined } = get\n if (!currentSoilingRate) return\n if (+threshold <= +currentSoilingRate) {\n setDaysToUmbral(0)\n return\n }\n setDaysToUmbral((threshold - currentSoilingRate) / daySoilingAverageRate)\n }, [daySoilingAverageRate, get, threshold])\n\n return (\n \n {children}\n \n )\n}\nCurrentCentralStore.propTypes = { children: PropTypes.node.isRequired }\nexport { CurrentCentralStore }\n","import React, { useState, useContext } from 'react'\nimport { Button } from 'semantic-ui-react'\nimport moment from 'moment'\nimport { DateContext, CurrentCentralContext } from 'store'\n\nconst defaultDate = {\n start: moment.utc(),\n end: moment.utc(),\n}\n\nconst ButtonDisplayHistoricData = () => {\n const {\n get: {\n lastInterval = defaultDate,\n fullInterval = defaultDate,\n },\n } = useContext(CurrentCentralContext)\n const { set, get: { start: current } = lastInterval } = useContext(DateContext)\n const [historical, setHistorical] = useState(current.format() === lastInterval.start.format())\n const handleChange = () => {\n if (historical) {\n set(fullInterval)\n } else {\n set(lastInterval)\n }\n setHistorical(!historical)\n }\n if (lastInterval.start.format() === current.format() && !historical) {\n setHistorical(true)\n }\n if (lastInterval.start.format() !== current.format() && historical) {\n setHistorical(false)\n }\n return (\n { handleChange() }}\n >\n {\n historical\n ? 'Mostrar datos historicos'\n : 'Mostrar datos desde última limpieza'\n }\n \n )\n}\n\nexport default ButtonDisplayHistoricData\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {\n Button,\n} from 'semantic-ui-react'\nimport 'components/utils.css'\nimport ButtonDisplayHistoricData from './ButtonDisplayHistoricData'\n\nconst GroupDatesSelector = ({ filter, setFilter }) => (\n \n \n \n \n \n \n \n \n)\nGroupDatesSelector.propTypes = {\n filter: PropTypes.string.isRequired,\n setFilter: PropTypes.func.isRequired,\n}\n\nexport default GroupDatesSelector\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {\n Segment, Transition, Progress,\n} from 'semantic-ui-react'\n\nconst LoadingData = ({ visible }) => {\n if (!visible) return
\n return (\n \n \n Cargando datos...\n \n \n \n )\n}\nLoadingData.propTypes = {\n visible: PropTypes.bool.isRequired,\n}\n\nexport default LoadingData\n","import React from 'react'\nimport {\n Segment, Header,\n} from 'semantic-ui-react'\n\nconst NoSelected = () => (\n \n
No ha seleccionado una central
\n
\n)\n\nexport default NoSelected\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {\n Segment, Header,\n} from 'semantic-ui-react'\n\nconst Title = ({ fancyName, children }) => (\n \n
\n {fancyName}\n {children}\n
\n
\n)\nTitle.propTypes = {\n fancyName: PropTypes.string.isRequired,\n children: PropTypes.element,\n}\nTitle.defaultProps = {\n children:
,\n}\n\nexport default Title\n","\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport {\n Segment, Statistic,\n} from 'semantic-ui-react'\nimport NumberFormat from 'react-number-format'\nimport './utils.css'\n\nconst CustomStatistic = ({\n data,\n}) => (\n \n \n {data.map(({ title, value, usd }) => (\n \n \n {!usd && (value)}\n {usd && (\n \n )}\n \n {title}\n \n ))}\n \n \n)\nCustomStatistic.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.string,\n value: PropTypes.string,\n usd: PropTypes.bool,\n })).isRequired,\n}\n\n// eslint-disable-next-line import/prefer-default-export\nexport default CustomStatistic\n","/* eslint-disable jsx-a11y/label-has-associated-control */\nimport React, { useContext, useEffect } from 'react'\nimport {\n Dropdown,\n} from 'semantic-ui-react'\nimport { CurrentCentralContext, ComputedDataContext } from 'store'\n\nconst metaDataToDropDown = (data) => data.map((item, index) => ({\n key: index,\n text: item.fancyName,\n value: item.id,\n}))\nconst PowerplantSelector = () => {\n const { centralsMetaData } = useContext(ComputedDataContext)\n const { get: currentPowerplant, set: setCurrentPowerplant } = useContext(CurrentCentralContext)\n useEffect(() => {\n if (Object.values(centralsMetaData).length === 0) return\n if (currentPowerplant.id) return\n setCurrentPowerplant(Object.values(centralsMetaData)[0])\n }, [centralsMetaData, currentPowerplant.id, setCurrentPowerplant])\n const handleChangeCentral = (e, { value }) => {\n setCurrentPowerplant(centralsMetaData[value])\n }\n const powerplants = metaDataToDropDown(Object.values(centralsMetaData))\n return (\n
\n \n \n
\n )\n}\nexport default PowerplantSelector\n","import React, { useContext, useEffect } from 'react'\nimport {\n Form,\n} from 'semantic-ui-react'\nimport { PriceContext } from 'store'\n\n// const updateEnergyPrice = async (id,property,value) => {\n// let data = { id, property, value }\n// const response = await fetch('https://mzo21kfc1h.execute-api.us-east-1.amazonaws.com/Prod/staging/edit',{\n// method: 'PUT',\n// body: JSON.stringify(data)\n// });\n// return response;\n// }\n\nconst PriceInput = ({currentPowerplant}) => {\n const { get: price, set: setPrice } = useContext(PriceContext)\n\n useEffect(()=> {\n setPrice(currentPowerplant?.energy_price || 50)\n },[currentPowerplant])\n\n const handleChangePrice = (e, { value }) => {\n if(!isNaN(value)){\n setPrice(+value)\n }\n }\n\n return (\n handleChangePrice(e, v)}\n min={0}\n width={8}\n icon=\"dollar sign\"\n />\n )\n}\n\nexport default PriceInput\n","import React, { useContext, useEffect } from 'react'\nimport {\n Form,\n} from 'semantic-ui-react'\nimport { ThresholdContext } from 'store'\n\nconst ThresholdInput = ({currentPowerplant}) => {\n const { get: threshold, set: setThreshold } = useContext(ThresholdContext)\n\n useEffect(()=> {\n setThreshold(currentPowerplant?.soiling_threshold || 3)\n },[currentPowerplant])\n\n // const updateThreshold = async (id,property,value) => {\n // let data = { id, property, value }\n // const response = await fetch('https://mzo21kfc1h.execute-api.us-east-1.amazonaws.com/Prod/staging/edit',{\n // method: 'PUT',\n // body: JSON.stringify(data)\n // });\n // return response;\n // }\n\n const handleChangeThreshold = (e, { value }) => {\n if(!isNaN(value)){\n setThreshold(+value)\n }\n }\n return (\n handleChangeThreshold(e, v)}\n min={0}\n max={100}\n icon=\"minus circle\"\n />\n )\n}\n\nexport default ThresholdInput\n","/**\n * Moment date\n * @typedef {Object} Moment\n */\n/**\n * parse a moment date to a string\n * @author lileiva\n * @example parseMomentDateToString(moment())\n * @returns 'DD-MM-YYYY'\n * @param {Moment} date\n */\nconst momentToString = (date) => date.toJSON().split('T')[0].split('-').reverse().join('-')\n\nexport default momentToString\n","import React, { useContext } from 'react'\nimport SemanticDatepicker from 'react-semantic-ui-datepickers'\nimport moment from 'moment'\nimport 'react-semantic-ui-datepickers/dist/react-semantic-ui-datepickers.css'\nimport 'components/utils.css'\nimport { DateContext, CurrentCentralContext } from 'store'\nimport momentToString from 'utils/date/momentToString'\n\nconst DatePicker = () => {\n const {\n get: dates = {\n start: moment.utc(),\n end: moment.utc(),\n }, set: setDate,\n } = useContext(DateContext)\n const {\n get: {\n lastInterval = { end: moment.utc() },\n fullInterval = { start: moment.utc() },\n },\n } = useContext(CurrentCentralContext)\n \n const handleChangeDate = (_, { value: start = undefined }) => {\n if (start) {\n setDate({\n start: moment.utc(start),\n end: lastInterval.end,\n })\n }\n }\n return (\n
\n {\n if (!data.value) {\n return handleChangeDate(event, {\n value: fullInterval.start,\n })\n }\n return handleChangeDate(event, data)\n }}\n />\n
\n )\n}\n\nexport default DatePicker\n","import React, { useContext } from 'react'\nimport { CurrentCentralContext } from 'store'\nimport CustomStatistic from './CustomStatistic'\n\nconst SummaryDaily = () => {\n const {\n metaData: {\n notGenerated = 0,\n notGeneratedValorization = 0,\n } = {},\n } = useContext(CurrentCentralContext)\n return (\n \n )\n}\n\nexport default SummaryDaily\n","import React, { useContext } from 'react'\nimport { CurrentCentralContext } from 'store'\nimport CustomStatistic from './CustomStatistic'\n\nconst Summary = () => {\n const {\n get: {\n currentSoilingRate = 0,\n } = {},\n metaData: {\n daySoilingAverageRate = '0',\n daysToUmbral = 0,\n } = {},\n } = useContext(CurrentCentralContext)\n return (\n 0\n ? `${daysToUmbral.toFixed(0)} Días`\n : 'Umbral alcanzado',\n },\n ]}\n />\n )\n}\nexport default Summary\n","\nconst rgba = (R = 0, G = 0, B = 0, A = 1) => `rgba(${R},${G},${B},${A})`\n\nconst colorGeneration = (opacity = 1) => rgba(255, 137, 94, opacity)\nconst colorRain = (opacity = 1) => rgba(0, 130, 254, opacity)\nconst colorCleaning = (opacity = 1) => rgba(150, 187, 124, opacity)\nconst colorSoiling = (opacity = 1) => rgba(101, 181, 184, opacity)\nconst colorSoilingSensor = (opacity = 1) => rgba(184, 133, 101, opacity)\nconst colorThreshold = (opacity = 1) => rgba(217, 83, 79, opacity)\nconst colorLowNubosity = (opacity = 1) => rgba(162, 159, 238, opacity)\nconst colorMediumNubosity = (opacity = 1) => rgba(92, 87, 235, opacity)\nconst colorHightNubosity = (opacity = 1) => rgba(23, 20, 107, opacity)\nconst colorPrecipitation = (opacity = 1) => rgba(129, 43, 138, opacity)\nconst colorTemperature = (opacity = 1) => rgba(255, 204, 94, opacity)\nconst colorUSD = (opacity = 1) => rgba(150, 187, 124, opacity)\n\n\nexport default {}\nexport {\n colorRain,\n colorGeneration,\n colorCleaning,\n colorSoiling,\n colorThreshold,\n colorLowNubosity,\n colorMediumNubosity,\n colorHightNubosity,\n colorPrecipitation,\n colorTemperature,\n colorUSD,\n colorSoilingSensor,\n}\n","/* eslint-disable import/prefer-default-export */\n/**\n * Time formats for group in chats\n */\nconst timeFormat = {\n day: 'YYMMDD',\n week: 'GGWW',\n month: 'YYMM',\n quarter: 'YYQ',\n year: 'YY',\n}\n\nexport { timeFormat }\n","import {\n groupBy, sumBy, map, minBy, sortBy, meanBy, round,\n} from 'lodash'\nimport { timeFormat as formats } from 'constants/formats'\n/**\n * @author lileiva\n * @param {} data all de data from de api = [ {data, date} ]\n * @param {} timeUnit day,week,month,year\n * @param {} mean default false\n * @returns {Array} array of objects {data, date}\n */\nconst groupData = (data, timeUnit, mean = false) => {\n const groupOperation = mean ? meanBy : sumBy\n const groupedData = groupBy(data, ({ date }) => date.format(formats[timeUnit]))\n return sortBy(map(groupedData, (items) => ({\n key: minBy(items, 'date').date.format(formats[timeUnit]),\n date: minBy(items, 'date').date,\n data: round(groupOperation(items, 'data'), 2),\n })), 'key')\n}\n\nexport default groupData\n","import moment from 'moment'\nimport { colorCleaning } from 'constants/colors'\n\nconst chartAnnotationsCleanings = (annotations, hidden) => annotations.map(\n ({ data: { start, end } }) => ({\n drawTime: 'beforeDatasetsDraw',\n type: 'box',\n xScaleID: 'x-axis-0',\n yMin: 0,\n yMax: null,\n xMin: moment.utc(start, 'YYYY-MM-DD'),\n xMax: moment.utc(end, 'YYYY-MM-DD'),\n backgroundColor: colorCleaning(hidden ? 0 : 0.5),\n borderColor: colorCleaning(hidden ? 0 : 1),\n borderWidth: 1,\n class: 'cleaning',\n }),\n)\n\nexport default chartAnnotationsCleanings\n","import moment from 'moment'\nimport { colorRain } from 'constants/colors'\n\nconst chartAnnotationsRains = (annotations, hidden) => annotations.map(({ date }) => ({\n drawTime: 'afterDraw', // overrides annotation.drawTime if set\n type: 'line',\n mode: 'vertical',\n scaleID: 'x-axis-0',\n value: moment.utc(date, 'YYYY-MM-DD'),\n borderDash: [5, 5],\n borderDashOffset: 5,\n borderColor: colorRain(hidden ? 0 : 1),\n borderWidth: 2,\n class: 'rain',\n}))\n\nexport default chartAnnotationsRains\n","import React, { useEffect, useRef, useState } from 'react'\nimport PropTypes from 'prop-types'\nimport ChartJs from 'chart.js'\nimport { colorGeneration, colorCleaning, colorRain } from 'constants/colors'\nimport moment from 'moment'\nimport groupData from 'utils/data/groupData'\nimport chartAnnotationsCleanings from 'utils/charts/chartAnnotationsCleanings'\nimport chartAnnotationsRains from 'utils/charts/chartAnnotationsRains'\n\nimport './chart.css'\n\nconst rainLegend = (rains) => {\n if (rains.length === 0) return []\n return [{\n label: 'Lluvias',\n data: [],\n type: 'line',\n backgroundColor: colorRain(1),\n }]\n}\n\n/**\n * @param props.data is the data to show divided in data.data and data.date\n */\nconst PowerChart = ({\n data = [], timeUnit = 'week', annotations = [], rains = [],\n}) => {\n const chart = useRef(null)\n const myChart = useRef()\n const [displayRain, setDisplayRain] = useState(true)\n const [displayCleaning, setDisplayCleaning] = useState(true)\n\n useEffect(() => {\n if (myChart?.current?.destroy) myChart.current.destroy()\n myChart.current = new ChartJs(chart.current, {\n type: 'bar',\n data: {\n labels: [],\n datasets: [{\n label: 'Energía [MWh]',\n data: [],\n backgroundColor: colorGeneration(0.8),\n }, {\n label: 'Limpiezas',\n data: [],\n type: 'line',\n backgroundColor: colorCleaning(1),\n },\n ...rainLegend(rains)],\n },\n options: {\n legend: {\n onClick(e, legendItem) {\n const index = legendItem.datasetIndex\n const ci = myChart.current\n const meta = ci.getDatasetMeta(index)\n\n // See controller.isDatasetVisible comment\n meta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null\n\n // We hid a dataset ... rerender the chart\n\n if (legendItem.datasetIndex === 1) {\n setDisplayCleaning((prev) => !prev)\n }\n if (legendItem.datasetIndex === 2) {\n setDisplayRain((prev) => !prev)\n }\n ci.update()\n },\n },\n maintainAspectRatio: false,\n scales: {\n xAxes: [{\n type: 'time',\n gridLines: {\n offsetGridLines: true,\n },\n offset: true,\n }],\n yAxes: [{\n scaleLabel: {\n display: true,\n labelString: 'Energía [MWh]',\n },\n }],\n },\n annotation: {\n annotations: [{ }],\n drawTime: 'beforeDraw', // (default)\n },\n },\n })\n }, [rains])\n useEffect(() => {\n const processGroupedData = groupData(data, timeUnit)\n myChart.current.data.labels = processGroupedData.map(({ date: itemDate }) => itemDate)\n myChart.current.data.datasets[0].data = processGroupedData.map(({ data: itemData }) => itemData)\n myChart.current.options.scales.xAxes[0].time.unit = timeUnit\n myChart.current.options.scales.xAxes[0].time.round = timeUnit\n myChart.current.update()\n }, [data, timeUnit])\n useEffect(() => {\n myChart.current.options.annotation.annotations = [\n ...displayCleaning\n ? chartAnnotationsCleanings(annotations) : chartAnnotationsCleanings(annotations, true),\n ...displayRain\n ? chartAnnotationsRains(rains) : chartAnnotationsRains(rains, true),\n ]\n myChart.current.update()\n }, [annotations, data, displayCleaning, displayRain, rains, timeUnit])\n\n return (
)\n}\nPowerChart.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.number,\n date: PropTypes.instanceOf(moment),\n })),\n annotations: PropTypes.arrayOf(\n PropTypes.shape({\n data: PropTypes.shape({\n start: PropTypes.string,\n end: PropTypes.string,\n }),\n }),\n ),\n rains: PropTypes.arrayOf(\n PropTypes.shape({\n date: PropTypes.object,\n }),\n ),\n timeUnit: PropTypes.string,\n}\nPowerChart.defaultProps = {\n data: [],\n annotations: [],\n timeUnit: 'week',\n rains: [],\n}\n\nexport default PowerChart\n","import React from 'react';\nimport ilustration from './undraw_notify_re_65on.svg';\nimport './index.css';\n\nconst ServiceNotAvailable = ( { service , central } ) => {\n return(\n
\n
\n

Herramienta no disponible

\n
\n
\n
\n \"\"\n

\n La herramienta de { service } no esta disponible para la central { central }. Para mas informacion acerca de la herramienta y sus características, puede escribirnos al correo comercial@suncast.cl.\n
\n
\n Si la herramienta { service } ya fue incluida en su plan, por favor escribanos al correo informatica@suncast.cl.\n
\n
\n Saludos cordiales, el equipo Suncast.\n

\n {/*

Contáctanos

*/}\n {/* \n \n */}\n
\n
\n )\n}\n\nexport default ServiceNotAvailable;","import React, {\n useEffect, useState, useContext,\n} from 'react'\nimport PropTypes from 'prop-types'\nimport {\n Grid, Segment, Divider, Table, Icon, Button, Confirm,\n} from 'semantic-ui-react'\nimport SemanticDatepicker from 'react-semantic-ui-datepickers'\nimport moment from 'moment'\nimport { CurrentCentralContext } from 'store'\n\nimport { postCleaning, deletePowerplantItem } from 'utils/API/powerplants'\nimport {\n NoSelected, Title, GroupDatesSelector,\n} from 'components'\nimport PowerChart from 'components/charts/powerChart'\nimport './power.css'\nimport ServiceNotAvailable from 'components/serviceNotAvailable'\n\n\nconst CleaningsTable = () => {\n const {\n data: { cleaning: cleanings = [] },\n get: { resetCleanings = async () => {}, id = '' } = {},\n } = useContext(CurrentCentralContext)\n const [start, setStart] = useState()\n const [end, setEnd] = useState()\n const [loading, setLoading] = useState(false)\n const [loadingButtons, setLoadingButtons] = useState('')\n const format = (dateString) => dateString.split('-').reverse().join('-')\n const [click, setClick] = useState(false)\n const createCleaning = async () => {\n setLoading(true)\n await postCleaning(id, start, end)\n await resetCleanings()\n }\n const handleChange = (e, d, index) => {\n const setter = index === 1 ? setStart : setEnd\n if (!d.value) {\n return setter(undefined)\n }\n return setter(moment.utc(d.value))\n }\n useEffect(() => {\n setLoading(false)\n setLoadingButtons('')\n }, [cleanings])\n const handleConfirm = async () => {\n setClick(false)\n if (loadingButtons === '') return\n const [pkey, skey] = loadingButtons.split('/')\n await deletePowerplantItem({ pkey, skey })\n resetCleanings()\n }\n return (\n
\n {\n setLoadingButtons('')\n setClick(false)\n }}\n />\n \n

\n Limpiezas\n {' '}\n \n

\n
\n \n \n \n Inicio\n Fin\n \n \n \n \n {\n cleanings.map(({ data: { start: s, end: e }, pkey, skey }) => (\n \n \n {format(s)}\n \n \n {format(e)}\n \n \n {\n setLoadingButtons(`${pkey}/${skey}`)\n setClick(true)\n }\n }\n >\n Eliminar\n \n \n \n ))\n }\n \n \n \n \n handleChange(event, data, 1)}\n />\n \n \n handleChange(event, data, 2)}\n />\n \n \n \n \n \n \n
\n
\n )\n}\n\n\nexport const Generation = ({ fancyName , apps }) => {\n const {\n get = {},\n get: { id: centralId = '' } = {},\n filteredData: centralData,\n } = useContext(CurrentCentralContext)\n const [filter, setFilter] = useState('week')\n if (!centralId) return ()\n return (\n \n { !apps.power_ht && \n \n }\n
\n \n <Divider horizontal />\n <div>\n <div>\n <Grid divided>\n <Grid.Row>\n <Grid.Column width={13}>\n <PowerChart\n data={centralData?.power}\n timeUnit={filter}\n annotations={centralData.cleaning}\n rains={centralData.rain}\n />\n <CleaningsTable />\n </Grid.Column>\n <Grid.Column width={2}>\n <GroupDatesSelector filter={filter} setFilter={setFilter} />\n </Grid.Column>\n </Grid.Row>\n </Grid>\n </div>\n </div>\n </div>\n </Segment>\n )\n}\n\nGeneration.propTypes = {\n fancyName: PropTypes.string.isRequired,\n}\nGeneration.defaultProps = {\n}\n\nexport default {\n routeProps: {\n path: '/Generacion',\n component: Generation,\n },\n name: 'Generación',\n}\n","/**\n * @author lileiva\n * @param {} currentSoiling actual soiling level [%]\n * @param {} dayRateAverage day increment by day (average) [%]\n * @param {} limit umbral\n * @returns {Number} days till the next clean\n */\nconst nextClean = (currentSoiling, dayRateAverage, limit) => {\n if (dayRateAverage <= 0 || limit === undefined) return 'No se puede determinar'\n if (limit <= currentSoiling) return 0\n return parseFloat(((limit - currentSoiling) / dayRateAverage).toFixed(0))\n}\nexport default nextClean\n","import * as React from \"react\";\n\nexport const DangerIcon = (props) => {\n return (\n <svg\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n height=\"1.2em\"\n width=\"1.2em\"\n {...props}\n >\n <path fill=\"white\" d=\"M240 304h32l6-160h-44l6 160z\" />\n <path fill=\"red\" d=\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm20 319.91h-40v-40h40zM272 304h-32l-6-160h44z\" />\n </svg>\n );\n};\n\n// icon:alert-circle-sharp | Ionicons https://ionicons.com/ | Ioni\n","import * as React from \"react\";\n\nexport const WarningIcon = (props) => {\n return (\n <svg\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n height=\"1.2em\"\n width=\"1.2em\"\n {...props}\n >\n <path fill=\"orange\" d=\"M449.07 399.08L278.64 82.58c-12.08-22.44-44.26-22.44-56.35 0L51.87 399.08A32 32 0 0080 446.25h340.89a32 32 0 0028.18-47.17zm-198.6-1.83a20 20 0 1120-20 20 20 0 01-20 20zm21.72-201.15l-5.74 122a16 16 0 01-32 0l-5.74-121.95a21.73 21.73 0 0121.5-22.69h.21a21.74 21.74 0 0121.73 22.7z\" />\n </svg>\n );\n}","import * as React from \"react\";\n\nexport const CheckIcon = (props) => {\n return (\n <svg\n viewBox=\"0 0 1024 1024\"\n fill=\"currentColor\"\n height=\"1.2em\"\n width=\"1.2em\"\n {...props}\n >\n <path fill=\"green\" d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\" />\n </svg>\n );\n}","// icon:sun-fill | Bootstrap https://icons.getbootstrap.com/ | Bootstrap\nimport * as React from \"react\";\n\nexport const SunIcon = (props) => {\n return (\n <svg\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n height=\"1.2em\"\n width=\"1.2em\"\n {...props}\n >\n <path fill=\"#ffc430\" d=\"M8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.5.5 0 01.5.5v2a.5.5 0 01-1 0v-2A.5.5 0 018 0zm0 13a.5.5 0 01.5.5v2a.5.5 0 01-1 0v-2A.5.5 0 018 13zm8-5a.5.5 0 01-.5.5h-2a.5.5 0 010-1h2a.5.5 0 01.5.5zM3 8a.5.5 0 01-.5.5h-2a.5.5 0 010-1h2A.5.5 0 013 8zm10.657-5.657a.5.5 0 010 .707l-1.414 1.415a.5.5 0 11-.707-.708l1.414-1.414a.5.5 0 01.707 0zm-9.193 9.193a.5.5 0 010 .707L3.05 13.657a.5.5 0 01-.707-.707l1.414-1.414a.5.5 0 01.707 0zm9.193 2.121a.5.5 0 01-.707 0l-1.414-1.414a.5.5 0 01.707-.707l1.414 1.414a.5.5 0 010 .707zM4.464 4.465a.5.5 0 01-.707 0L2.343 3.05a.5.5 0 11.707-.707l1.414 1.414a.5.5 0 010 .708z\" />\n </svg>\n );\n}","// icon:cloud-rain-fill | Bootstrap https://icons.getbootstrap.com/ | Bootstrap\nimport * as React from \"react\";\n\nexport const RainIcon = (props) => {\n return (\n <svg\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n height=\"1.2em\"\n width=\"1.2em\"\n {...props}\n >\n <path fill=\"#1f3269\" d=\"M4.158 12.025a.5.5 0 01.316.633l-.5 1.5a.5.5 0 11-.948-.316l.5-1.5a.5.5 0 01.632-.317zm3 0a.5.5 0 01.316.633l-1 3a.5.5 0 11-.948-.316l1-3a.5.5 0 01.632-.317zm3 0a.5.5 0 01.316.633l-.5 1.5a.5.5 0 11-.948-.316l.5-1.5a.5.5 0 01.632-.317zm3 0a.5.5 0 01.316.633l-1 3a.5.5 0 11-.948-.316l1-3a.5.5 0 01.632-.317zm.247-6.998a5.001 5.001 0 00-9.499-1.004A3.5 3.5 0 103.5 11H13a3 3 0 00.405-5.973z\" />\n </svg>\n );\n}\n","import React, { useContext } from 'react'\nimport PropTypes from 'prop-types'\nimport {\n Table,\n} from 'semantic-ui-react'\nimport moment from 'moment'\nimport { LoadingData } from 'components'\nimport NumberFormat from 'react-number-format'\nimport { ComputedDataContext } from 'store'\nimport nextClean from 'utils/data/nextClean'\nimport momentToString from 'utils/date/momentToString'\nimport './dashboard.css'\nimport sortBy from 'lodash/sortBy'\nimport { DangerIcon } from 'assets/DangerIcon'\nimport { WarningIcon } from 'assets/WarningIcon'\nimport { CheckIcon } from 'assets/CheckIcon'\nimport { SunIcon } from 'assets/SunIcon'\nimport { RainIcon } from 'assets/RainIcon'\nimport { APIContext } from 'store'\n\nexport const Dashboard = ({ threshold, price }) => {\n const { centralsMetaData, centralsData } = useContext(ComputedDataContext);\n const { centralsIds } = useContext(APIContext);\n const sortedCentralsMetaData = sortBy(centralsIds?.map( id => (centralsMetaData[id]))?.filter( central => (central?.services?.soiling_service === true)), [\n ({ current_soiling_rate, day_soiling_average_rate, soiling_threshold }) => nextClean(current_soiling_rate,\n day_soiling_average_rate, soiling_threshold), 'soiling_threshold'])\n\n return (\n <div>\n <div>\n <LoadingData visible={Object.entries(sortedCentralsMetaData).length === 0} />\n <Table celled>\n <Table.Header>\n <Table.Row>\n <Table.HeaderCell>Central</Table.HeaderCell>\n <Table.HeaderCell>Ensuciamiento actual (%)</Table.HeaderCell>\n <Table.HeaderCell>Cercanía al umbral (Días)</Table.HeaderCell>\n <Table.HeaderCell>Alerta de lluvia (Días)</Table.HeaderCell>\n <Table.HeaderCell>Tasa de ensuciamiento diaria (%)</Table.HeaderCell>\n <Table.HeaderCell>\n Energía no generada (MWh)*\n </Table.HeaderCell>\n <Table.HeaderCell>\n Energía no generada (USD)*\n </Table.HeaderCell>\n <Table.HeaderCell>\n Última limpieza\n </Table.HeaderCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {\n Object.values(sortedCentralsMetaData).map(\n (central) => {\n const {\n fancyName,\n daySoilingAverageRate = 0,\n currentSoilingRate = 0,\n notGeneratedLastCleaningMWh = 0,\n lastInterval: { start } = { start: moment.utc() },\n id: key,\n soiling_threshold,\n energy_price\n } = central\n\n const proximityThreshold = () => {\n let proximity = nextClean(currentSoilingRate, daySoilingAverageRate, soiling_threshold);\n // if(fancyName === \"Demo Eólica\"){\n // proximity = 7;\n // }\n\n // if(fancyName === \"Demo Soiling\"){\n // proximity = 8;\n // }\n if(proximity === 0) return <div style={{display: \"flex\", alignItems: \"center\"}}><DangerIcon/><p style={{marginLeft: '5px'}}>{proximity}</p></div>\n if(proximity <= 7) return <div style={{display: \"flex\", alignItems: \"center\"}}><WarningIcon/><p style={{marginLeft: '5px'}}>{proximity}</p></div>\n if(proximity > 7) return <div style={{display: \"flex\", alignItems: \"center\"}}><CheckIcon/><p style={{marginLeft: '5px'}}>{proximity}</p></div>\n\n return 'No se puede determinar';\n };\n\n const proximityRains = () => {\n const today = moment.utc().local();\n const rainsDates = centralsData?.[key]?.rain?.map(({date}) => (date)) ?? [];\n const rainsForecast = rainsDates?.filter((date) => (date.isAfter(today)));\n \n if(rainsForecast?.length > 0){\n const daysCount = rainsForecast[0].diff(today, 'days')\n return <div style={{display: \"flex\", alignItems: \"center\"}}><RainIcon/><p style={{marginLeft: '5px'}}>{`Lloverá en ${daysCount} días`}</p></div>\n }\n\n return <div style={{display: \"flex\", alignItems: \"center\"}}><SunIcon/><p style={{marginLeft: '5px'}}>{\"No hay alerta\"}</p></div>\n };\n\n return (\n <Table.Row\n key={key}\n >\n <Table.Cell>{fancyName}</Table.Cell>\n <Table.Cell>{currentSoilingRate.toFixed(2) }</Table.Cell>\n <Table.Cell>{proximityThreshold()}</Table.Cell>\n <Table.Cell>{proximityRains()}</Table.Cell>\n <Table.Cell>{daySoilingAverageRate }</Table.Cell>\n <Table.Cell>{notGeneratedLastCleaningMWh }</Table.Cell>\n <Table.Cell>\n <NumberFormat\n value={(+notGeneratedLastCleaningMWh * energy_price).toFixed(0) == '0' ? 1 : (+notGeneratedLastCleaningMWh * energy_price).toFixed(0)}\n displayType=\"text\"\n thousandSeparator\n suffix=\" USD\"\n />\n </Table.Cell>\n <Table.Cell>\n {momentToString(start)}\n </Table.Cell>\n </Table.Row>\n\n )\n },\n )\n }\n </Table.Body>\n <Table.Footer>\n <Table.Row>\n <Table.HeaderCell colSpan=\"8\">\n * Corresponde a los cálculos entre el último periodo de\n limpieza reportado por el cliente\n y el último dato obtenido\n </Table.HeaderCell>\n </Table.Row>\n </Table.Footer>\n </Table>\n </div>\n </div>\n )\n}\n\nDashboard.propTypes = {\n threshold: PropTypes.number.isRequired,\n price: PropTypes.number.isRequired,\n}\nDashboard.defaultProps = {\n}\n\nexport default {\n routeProps: {\n path: '/',\n component: Dashboard,\n },\n name: 'Dashboard',\n}\n","import React, {\n useEffect, useRef, useContext, useCallback, useState,\n} from 'react'\nimport PropTypes from 'prop-types'\nimport ChartJs from 'chart.js'\nimport {\n colorSoiling, colorThreshold, colorCleaning, colorRain, colorSoilingSensor,\n} from 'constants/colors'\nimport fill from 'lodash/fill'\nimport chartAnnotationsCleanings from 'utils/charts/chartAnnotationsCleanings'\nimport chartAnnotationsRains from 'utils/charts/chartAnnotationsRains'\nimport moment from 'moment'\nimport groupData from 'utils/data/groupData'\nimport {\n ThresholdContext,\n} from 'store'\nimport './chart.css'\n\nconst rainLegend = (rains) => {\n if (rains.length === 0) return []\n return [{\n label: 'Lluvias',\n data: [],\n type: 'line',\n backgroundColor: colorRain(1),\n }]\n}\n// const sensorLegend = (rains) => {\n// if (rains.length === 0) return []\n// return [{\n// label: 'Lluvias',\n// data: [],\n// type: 'line',\n// backgroundColor: colorRain(1),\n// }]\n// }\n\n// const sensorLegend2 = (rains) => {\n// if (rains.length === 0) return []\n// return [{\n// label: 'Lluvias',\n// data: [],\n// type: 'line',\n// backgroundColor: colorRain(1),\n// }]\n// }\n\n/**\n * @param props.data is the data to show divided in data.data and data.date\n */\n\nconst rgba = (R = 0, G = 0, B = 0, A = 1) => `rgba(${R},${G},${B},${A})`\n\nconst colorSensor2 = (opacity = 1) => rgba(107, 64, 37, opacity)\n\nconst SoilingChart = ({\n data = [], timeUnit = 'week', annotations = [], projection = [],\n dataSensor = [], dataSensor2 = [], rains = [],\n}) => {\n const { get: threshold } = useContext(ThresholdContext)\n const [displayRain, setDisplayRain] = useState(true)\n const [displayCleaning, setDisplayCleaning] = useState(true)\n const chart = useRef(null)\n\n const myChart = useRef()\n useEffect(() => {\n if (myChart?.current?.destroy) myChart.current.destroy()\n myChart.current = new ChartJs(chart.current, {\n type: 'bar',\n data: {\n labels: [],\n datasets: [{\n label: 'Ensuciamiento [%]',\n data: [],\n backgroundColor: colorSoiling(0.8),\n }, {\n label: 'Ensuciamiento Sensor 1[%]',\n hidden: true,\n data: [],\n backgroundColor: colorSoilingSensor(0.9),\n }, {\n label: 'Ensuciamiento Sensor 2[%]',\n hidden: true,\n data: [],\n backgroundColor: colorSensor2(0.9),\n }, {\n label: 'Proyección [%]',\n data: [],\n type: 'line',\n backgroundColor: 'indigo',\n borderColor: 'indigo',\n fill: false,\n lineTension: 0,\n }, {\n label: 'Limpiezas',\n data: [],\n type: 'line',\n backgroundColor: colorCleaning(1),\n },\n ...rainLegend(rains)],\n },\n options: {\n maintainAspectRatio: false,\n legend: {\n onClick(e, legendItem) {\n const index = legendItem.datasetIndex\n const ci = myChart.current\n const meta = ci.getDatasetMeta(index)\n\n // See controller.isDatasetVisible comment\n meta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null\n\n // We hid a dataset ... rerender the chart\n\n if (legendItem.datasetIndex === 4) {\n setDisplayCleaning((prev) => !prev)\n }\n if (legendItem.datasetIndex === 5) {\n setDisplayRain((prev) => !prev)\n }\n ci.update()\n },\n labels: {\n filter(item) {\n return item.text !== 'Ensuciamiento Sensor 1[%]' && item.text !== 'Ensuciamiento Sensor 2[%]'\n },\n },\n },\n scales: {\n xAxes: [{\n type: 'time',\n gridLines: {\n offsetGridLines: true,\n },\n offset: true,\n }],\n yAxes: [{\n scaleLabel: {\n display: true,\n labelString: 'Ensuaciamiento acumulado [%]',\n },\n ticks: {\n suggestedMax: 0,\n },\n }],\n },\n annotation: {\n annotations: [{ }],\n drawTime: 'afterDraw', // (default)\n },\n },\n })\n const filterFunction = (item) => {\n if (dataSensor.length < 1) return item.text !== 'Ensuciamiento Sensor 1[%]' && item.text !== 'Ensuciamiento Sensor 2[%]'\n return true\n }\n myChart.current.options.legend.labels.filter = filterFunction\n myChart.current.data.datasets[1].hidden = dataSensor.length === 0\n myChart.current.data.datasets[2].hidden = dataSensor2.length === 0\n myChart.current.update()\n myChart.current.update()\n }, [dataSensor.length, dataSensor2.length, rains])\n\n useEffect(() => {\n const processGroupedData = groupData(data, timeUnit, true)\n const processGroupedDataSensor = groupData(dataSensor, timeUnit, true)\n const processGroupedDataSensor2 = groupData(dataSensor2, timeUnit, true)\n const projectedData = groupData(projection, timeUnit, true)\n myChart.current.data.labels = [\n ...processGroupedData.map(({ date: itemDate }) => itemDate),\n ...projectedData.map(({ date: itemDate }) => itemDate),\n ]\n\n myChart.current.data.datasets[0].data = processGroupedData.map(({ data: itemData }) => itemData)\n myChart.current.data.datasets[1].data = processGroupedDataSensor.map(\n ({ data: itemData }) => itemData,\n )\n myChart.current.data.datasets[2].data = processGroupedDataSensor2.map(\n ({ data: itemData }) => itemData,\n )\n myChart.current.data.datasets[3].data = [\n ...fill(Array(processGroupedData.length), undefined),\n ...projectedData.map(({ data: itemData }) => itemData),\n ]\n\n myChart.current.options.scales.xAxes[0].time.unit = timeUnit\n myChart.current.options.scales.xAxes[0].time.round = timeUnit\n myChart.current.update()\n }, [data, dataSensor, dataSensor2, projection, timeUnit])\n const updateAnnotations = useCallback(() => {\n myChart.current.options.annotation.annotations = [\n ...displayCleaning\n ? chartAnnotationsCleanings(annotations) : chartAnnotationsCleanings(annotations, true),\n ...displayRain\n ? chartAnnotationsRains(rains) : chartAnnotationsRains(rains, true),\n ]\n }, [annotations, displayCleaning, displayRain, rains])\n useEffect(() => {\n updateAnnotations()\n myChart.current.options.annotation.annotations = [\n ...myChart.current.options.annotation.annotations,\n { /* line of threshold */\n drawTime: 'afterDraw', // overrides annotation.drawTime if set\n type: 'line',\n mode: 'horizontal',\n scaleID: 'y-axis-0',\n value: threshold,\n borderDash: [2, 2],\n borderDashOffset: 5,\n label: {\n backgroundColor: colorThreshold(1),\n content: 'Umbral de ensuciamiento',\n enabled: true,\n },\n borderColor: 'red',\n borderWidth: 2,\n },\n ]\n myChart.current.options.scales.yAxes[0].ticks.suggestedMax = threshold + 1\n myChart.current.update()\n }, [threshold, updateAnnotations])\n\n\n return (<div className=\"chart\"><canvas ref={chart} id=\"myChart\" /></div>)\n}\n\nSoilingChart.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.number,\n date: PropTypes.instanceOf(moment),\n })),\n dataSensor: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.number,\n date: PropTypes.instanceOf(moment),\n })),\n dataSensor2: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.number,\n date: PropTypes.instanceOf(moment),\n })),\n projection: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.number,\n date: PropTypes.instanceOf(moment),\n })),\n timeUnit: PropTypes.string,\n annotations: PropTypes.arrayOf(\n PropTypes.shape({\n data: PropTypes.shape({\n start: PropTypes.string,\n end: PropTypes.string,\n }),\n }),\n ),\n rains: PropTypes.arrayOf(\n PropTypes.shape({\n date: PropTypes.object,\n }),\n ),\n}\nSoilingChart.defaultProps = {\n data: [],\n dataSensor: [],\n dataSensor2: [],\n projection: [],\n annotations: [],\n rains: [],\n timeUnit: 'week',\n}\n\nexport default SoilingChart\n","import React, { useState, useContext } from 'react'\nimport PropTypes from 'prop-types'\nimport {\n Grid, Segment, Divider,\n} from 'semantic-ui-react'\nimport { CurrentCentralContext } from 'store'\nimport {\n NoSelected, Title, GroupDatesSelector,\n SummaryDaily,\n Summary,\n} from 'components'\nimport SoilingChart from 'components/charts/soilingChart'\n// import UsdChart from 'components/charts/usdChart'\nimport {\n max, min, fill, ceil, last,\n} from 'lodash'\nimport moment from 'moment'\nimport './power.css'\nimport ServiceNotAvailable from 'components/serviceNotAvailable'\n/**\n * max projected days\n */\nconst projectionLimitDays = 30\n// const accumulate = (array, usd = 1) => {\n// if (!array) return []\n// return array.reduce((prev, current, index) => {\n// if (index === 0) return [{ ...current }]\n// return [...prev, { ...current, data: current.data + prev[index - 1].data }]\n// }, []).map((item) => ({ ...item, data: usd * item.data }))\n// }\nconst Graph = ({\n fancyName,\n threshold,\n}) => {\n // const { get: price } = useContext(PriceContext)\n const {\n get: {\n daySoilingAverageRate = 0.00001, currentSoilingRate = 0,\n } = {},\n filteredData: centralData = {},\n } = useContext(CurrentCentralContext)\n const [filter, setFilter] = useState('week')\n const daysToUmbral = min([threshold <= currentSoilingRate ? 0\n : (threshold - currentSoilingRate) / max([daySoilingAverageRate, 0.00001]),\n projectionLimitDays])\n const baseDate = last(centralData?.soilingPercent || [])?.date || moment.utc()\n const projection = daysToUmbral !== 0\n ? fill(Array(Math.round(daysToUmbral)), { data: currentSoilingRate, date: baseDate }) : []\n const projectionData = projection.map(({ data, date }, index) => (\n { data: data + daySoilingAverageRate * (1+index), date: date.clone().add(1 + index, 'day') }\n ))\n return (\n <Segment>\n <Title fancyName={fancyName} />\n <Divider horizontal />\n <div>\n <div>\n <Grid divided>\n <Grid.Row>\n <Grid.Column width={13}>\n <Summary />\n <SummaryDaily />\n <SoilingChart\n data={centralData?.soilingPercent}\n dataSensor={centralData?.soilingSensor}\n dataSensor2={centralData?.soilingSensor2}\n timeUnit={filter}\n annotations={centralData.cleaning}\n rains={centralData.rain}\n projection={daySoilingAverageRate > 0 ? projectionData : []}\n />\n {/* <UsdChart\n data={centralData?.soiling}\n dataUSD={accumulate(centralData?.soiling, price)}\n timeUnit={filter}\n /> */}\n </Grid.Column>\n <Grid.Column width={2}>\n <GroupDatesSelector filter={filter} setFilter={setFilter} />\n </Grid.Column>\n </Grid.Row>\n </Grid>\n </div>\n </div>\n </Segment>\n )\n}\n\n\nexport const Soiling = ({\n fancyName,\n threshold,\n price,\n apps\n}) => {\n const { get: currentPowerplant = {} } = useContext(CurrentCentralContext)\n const { id: centralId = '', fancy_name = '' } = currentPowerplant\n\n // eslint-disable-next-line no-unused-vars\n\n if (centralId === '') return (<NoSelected />)\n\n\n return (\n <Segment className='segment-container'>\n { !apps.soiling && \n <ServiceNotAvailable service={'Ensuciamiento'} central={fancy_name} />\n }\n <div className={`${apps.soiling ? \"\" : \"service-container\"}`}>\n <Graph fancyName={fancyName} threshold={threshold} price={price} />\n </div>\n </Segment>\n )\n}\n\nSoiling.propTypes = {\n fancyName: PropTypes.string.isRequired,\n threshold: PropTypes.number.isRequired,\n price: PropTypes.number.isRequired,\n}\n\nGraph.propTypes = {\n fancyName: PropTypes.string.isRequired,\n threshold: PropTypes.number.isRequired,\n}\nSoiling.defaultProps = {\n}\n\n\nexport default {\n routeProps: {\n path: '/Ensuciamiento',\n component: Soiling,\n },\n name: 'Ensuciamiento',\n}\n","const init = (user, queryStringParameters = {}) => ({ // OPTIONAL\n headers: {\n 'Content-Type': 'application/json',\n Authorization: user.idToken.jwtToken,\n accessToken: user.accessToken.jwtToken,\n }, // OPTIONAL\n response: true, // OPTIONAL\n queryStringParameters,\n})\n\nexport default init\n","import { API, Auth } from 'aws-amplify'\nimport init from './init'\n\nconst stage = process.env.REACT_APP_STAGE\n\nconst MAX_RETRY = 5\nconst apiName = 'API'\nconst get = async (path, count = 0, last) => {\n if (count === MAX_RETRY) return {}\n let user\n try {\n user = await Auth.currentSession()\n } catch (error) {\n return get(path, count + 1)\n }\n if (!user) return {}\n try {\n const { data } = await API.get(\n apiName,\n `/${stage}/${path}`,\n init(user),\n )\n if (last) {\n return Object.values(data).length > 0 ? data.slice(-1) : {}\n }\n return Object.values(data).length > 0 ? data[0] : {}\n } catch (e) {\n return get(path, count + 1)\n }\n}\n\nexport default get\n","import { useState, useEffect, useCallback } from 'react';\nimport momentTz from 'moment-timezone';\nimport get from 'utils/API/utils/get';\n\nconst TEMPERATURE_SURFACE = 'tmp_2-htgl';\nconst PRECIPITATION = 'apcp_0-sfc';\nconst CLOUD_COVER_LOW = 'tcdc_0-lcy';\nconst CLOUD_COVER_MIDDLE = 'tcdc_0-mcy';\nconst CLOUD_COVER_HIGH = 'tcdc_0-hcy';\nconst DOWNWARD_SHORT_WAVE_RADIATION = 'dswrf_0-sfc';\nconst DOWNWARD_LONG_WAVE_RADIATION = 'dlwrf_0-sfc';\nconst UPWARD_SHORT_WAVE_RADIATION = 'uswrf_0-sfc';\nconst UPWARD_LONG_WAVE_RADIATION = 'ulwrf_0-sfc';\nconst WIND_SPEED = 'gust_0-sfc';\nconst PRESSURE_SURFACE = 'pres_0-sfc';\n\nconst selectType = (dataType) => {\n switch (dataType) {\n case 'temperature': return TEMPERATURE_SURFACE;\n case 'precipitation': return PRECIPITATION;\n case 'cloud_low': return CLOUD_COVER_LOW;\n case 'cloud_middle': return CLOUD_COVER_MIDDLE;\n case 'cloud_high': return CLOUD_COVER_HIGH;\n case 'downward_short': return DOWNWARD_SHORT_WAVE_RADIATION;\n case 'downward_long': return DOWNWARD_LONG_WAVE_RADIATION;\n case 'upward_short': return UPWARD_SHORT_WAVE_RADIATION;\n case 'upward_long': return UPWARD_LONG_WAVE_RADIATION;\n case 'wind_speed': return WIND_SPEED;\n case 'pressure_surface': return PRESSURE_SURFACE;\n default: return '';\n }\n};\n\nconst BasePath = 'powerplants';\n\n// Función para transformar fecha y hora UTC a la zona horaria local de la central\nconst toLocalTime = (date, hour, tz) => {\n return momentTz(`${date}T00:00:00Z`).tz(tz).add(hour, 'hours');\n};\n\n// Obtener datos de la API con ajuste de fecha\nconst getData = async (centralId, dataType, tz) => {\n let today = momentTz.utc(); // Momento actual en UTC\n if (+today.format('HH') < 8) {\n today = today.clone().subtract(1, 'days'); // Restar un día si es antes de las 8 AM UTC\n }\n const date = today.format('YYYY-MM-DD').split('-');\n const path = `${BasePath}/${centralId}/${selectType(dataType)}/day/${date[0]}/${date[1]}/${date[2]}`;\n return get(path);\n};\n\n// Verificar si una fecha en UTC convertida a local está dentro de los próximos 10 días\nconst next10Days = (date, tz) => {\n const start = momentTz.tz(tz).startOf('day'); // Inicio del día en zona horaria local\n const end = momentTz.tz(tz).add(10, 'days').endOf('day'); // Fin de los próximos 10 días\n return date.isBetween(start, end, undefined, '[]');\n};\n\n// Hook para obtener datos de predicción meteorológica\nconst usePredictionData = (centralId, dataType, tz) => {\n const [data, setData] = useState([]);\n const [dates, setDates] = useState([]);\n const [full, setFull] = useState([]);\n \n\n const getSet = useCallback(async () => {\n const { data: apiData, date } = await getData(centralId, dataType, tz);\n\n // Filtrar datos dentro del rango de los próximos 10 días en la zona horaria de la central\n const filterData = apiData.filter(({ hour: h }) => \n next10Days(toLocalTime(date, h, tz), tz)\n );\n\n setData(filterData.map(({ data: d }) => d.toFixed(2)));\n\n setDates(filterData.map(({ hour: h }) => {\n const dt = momentTz.tz(`${momentTz(`${date}`).add(h, 'hours').format(\"YYYY-MM-DD HH:mm\")}`, \"UTC\");\n const dateLocal = dt.clone().tz(tz);\n return dateLocal.format(\"YYYY-MM-DD HH:mm\");\n }));\n\n setFull(filterData.map(({ data: d, hour: h }) => ({\n data: d.toFixed(2),\n date: toLocalTime(date, h, tz),\n })));\n }, [centralId, dataType, tz]);\n\n useEffect(() => {\n if (centralId) getSet();\n }, [centralId, getSet]);\n\n return { data, dates, groupedData: full };\n};\n\nexport default usePredictionData;\n","import React, { useEffect, useRef } from 'react'\nimport PropTypes from 'prop-types'\nimport ChartJs from 'chart.js'\n\nconst Chart = ({\n data, title = '', color = 'orange', dates = [], compressed = false,\n}) => {\n const chart = useRef(null)\n const myChart = useRef()\n useEffect(() => {\n myChart.current = new ChartJs(chart.current, {\n type: 'line',\n data: {\n labels: [],\n datasets: [{\n label: title,\n data: [],\n backgroundColor: color,\n borderColor: color,\n pointBackgroundColor: color,\n }],\n },\n options: {\n responsive: true,\n maintainAspectRatio: false,\n scales: {\n xAxes: [{\n type: 'time',\n time: {\n isoWeekday: true,\n tooltipFormat: 'HH[:00] DD/MM/YYYY',\n unit: 'day',\n round: 'hour',\n },\n }],\n yAxes: [{\n scaleLabel: {\n display: true,\n labelString: title,\n },\n }],\n },\n annotation: {\n annotations: [{ }],\n drawTime: 'beforeDraw', // (default)\n },\n },\n })\n }, [color, title])\n useEffect(() => {\n myChart.current.data.datasets[0].data = data\n myChart.current.data.labels = dates\n myChart.current.update()\n }, [data, dates])\n useEffect(() => {\n if (compressed) {\n myChart.current.canvas.parentNode.style.height = '200px'\n myChart.current.update()\n }\n }, [compressed])\n\n return (<div className={`${compressed ? '' : 'chart'}`}><canvas ref={chart} /></div>)\n}\n\nChart.propTypes = {\n data: PropTypes.arrayOf(PropTypes.number),\n dates: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n color: PropTypes.string,\n compressed: PropTypes.bool,\n}\nChart.defaultProps = {\n dates: [],\n data: [],\n title: '',\n compressed: false,\n color: '',\n}\n\nexport default Chart\n","/* eslint-disable max-len */\nimport React, { useRef, useEffect, useContext } from 'react'\nimport PropTypes from 'prop-types'\nimport {\n Grid, Segment, Divider,\n} from 'semantic-ui-react'\nimport {\n Title,\n} from 'components'\nimport ChartJs from 'chart.js'\nimport usePredictionData from 'hooks/API/usePredictionData'\nimport NoSelected from 'components/NoDataFeedBack/NoSelected'\nimport {\n colorGeneration,\n colorTemperature,\n colorPrecipitation,\n colorLowNubosity,\n colorMediumNubosity,\n colorHightNubosity,\n} from 'constants/colors'\nimport { CurrentCentralContext } from 'store'\nimport ServiceNotAvailable from 'components/serviceNotAvailable/index'\nimport Chart from 'components/charts/MeteorologyChart'\n// import './index.css'\n// import ilustration from './undraw_notify_re_65on.svg';\n\n\nconst ChartNubosity = ({\n low, med, high, dates = [], compressed,\n}) => {\n const chart = useRef(null)\n const myChart = useRef()\n useEffect(() => {\n myChart.current = new ChartJs(chart.current, {\n type: 'line',\n data: {\n labels: [],\n datasets: [{\n label: 'Alta [%]',\n fill: true,\n data: [],\n borderColor: colorHightNubosity(1),\n pointBackgroundColor: colorHightNubosity(1),\n backgroundColor: colorHightNubosity(1),\n hidden: true,\n }, {\n label: 'Media [%]',\n fill: true,\n data: [],\n borderColor: colorMediumNubosity(1),\n pointBackgroundColor: colorMediumNubosity(1),\n backgroundColor: colorMediumNubosity(1),\n hidden: true,\n }, {\n label: 'Baja [%]',\n fill: true,\n data: [],\n borderColor: colorLowNubosity(1),\n pointBackgroundColor: colorLowNubosity(1),\n backgroundColor: colorLowNubosity(1),\n }],\n },\n options: {\n maintainAspectRatio: false,\n responsive: true,\n scales: {\n xAxes: [{\n type: 'time',\n gridLines: {\n offsetGridLines: false,\n },\n offset: false,\n time: {\n isoWeekday: true,\n tooltipFormat: 'HH[:00] DD/MM/YYYY',\n unit: 'day',\n round: 'hour',\n },\n }],\n yAxes: [{\n scaleLabel: {\n display: true,\n labelString: 'Nubosidad [%]',\n },\n }],\n },\n annotation: {\n annotations: [{ }],\n drawTime: 'afterDraw', // (default)\n },\n },\n })\n }, [])\n useEffect(() => {\n myChart.current.data.datasets[0].data = high\n myChart.current.data.datasets[1].data = med\n myChart.current.data.datasets[2].data = low\n myChart.current.data.labels = dates\n myChart.current.update()\n }, [dates, high, low, med])\n useEffect(() => {\n if (compressed) {\n myChart.current.canvas.parentNode.style.height = '200px'\n myChart.current.update()\n }\n }, [compressed])\n return (<div className=\"chart\"><canvas ref={chart} id=\"myChart\" /></div>)\n}\n\n\nChartNubosity.propTypes = {\n high: PropTypes.arrayOf(PropTypes.number).isRequired,\n med: PropTypes.arrayOf(PropTypes.number).isRequired,\n low: PropTypes.arrayOf(PropTypes.number).isRequired,\n dates: PropTypes.arrayOf(PropTypes.object).isRequired,\n compressed: PropTypes.bool,\n}\nChartNubosity.defaultProps = {\n compressed: false,\n}\n\n\nexport const Meteorology = ({ fancyName , apps }) => {\n const { get = {} , get: { id: centralId = null , type, tz } } = useContext(CurrentCentralContext)\n const { data: temperature, dates: temperatureDates } = usePredictionData(centralId, 'temperature', tz)\n const { data: precipitation, dates: precipitationDates } = usePredictionData(centralId, 'precipitation', tz)\n const { data: lowCloud } = usePredictionData(centralId, 'cloud_low', tz)\n const { data: medCloud } = usePredictionData(centralId, 'cloud_middle', tz)\n const { data: highCloud } = usePredictionData(centralId, 'cloud_high', tz)\n const { data: irradiance, dates: irradianceDates } = usePredictionData(centralId, 'downward_short',tz )\n\n const { data: windSpeed = [], dates: windSpeedDates } = usePredictionData(centralId, 'wind_speed', tz)\n const { data: pressureSurface = [], dates: pressureDates } = usePredictionData(centralId, 'pressure_surface',tz)\n\n if (!centralId) return (<NoSelected />)\n return (\n <Segment className='segment-container'>\n { !apps.weather && \n <ServiceNotAvailable service={'Meteorología'} central={get.fancy_name} />\n }\n <div className={`${apps.weather ? \"\" : \"service-container\"}`}>\n <Title fancyName={fancyName} />\n <Divider horizontal />\n\n <div>\n <div>\n <Grid relaxed columns={1}>\n <Grid.Column>\n { (type && type === 'solar') && <Chart compressed data={irradiance} dates={irradianceDates} title=\"Irradiancia [W/m^2]\" color={colorGeneration(1)} />}\n { (type && type === 'wind') && <Chart compressed data={windSpeed} dates={windSpeedDates} title=\"Velocidad del viento [m/s]\" color={colorMediumNubosity(1)} />}\n </Grid.Column>\n <Grid.Column>\n <Chart compressed data={precipitation} dates={precipitationDates} title=\"Precipitaciones [mm]\" color={colorPrecipitation(1)} />\n </Grid.Column>\n <Grid.Column>\n { (type && type === 'wind') && <Chart compressed data={pressureSurface.map((p) => (p / 101325))} dates={pressureDates} title=\"Presion [atm]\" color={colorGeneration(1)} />}\n </Grid.Column>\n </Grid>\n <Grid relaxed columns={1}>\n <Grid.Column>\n {(type && type === 'solar' || type === \"hydro-ror\") && <ChartNubosity compressed low={lowCloud} med={medCloud} high={highCloud} dates={temperatureDates} />}\n </Grid.Column>\n <Grid.Column>\n <Chart compressed data={temperature} dates={temperatureDates} title=\"Temperatura [ºC]\" color={colorTemperature(1)} />\n </Grid.Column>\n <Grid.Column>\n { (type && type === 'solar') && <Chart compressed data={windSpeed} dates={windSpeedDates} title=\"Velocidad del viento [m/s]\" color={colorMediumNubosity(1)} />}\n </Grid.Column>\n </Grid>\n </div>\n </div>\n </div>\n </Segment>\n )\n}\n\nMeteorology.propTypes = {\n fancyName: PropTypes.string.isRequired,\n}\n\nexport default {\n routeProps: {\n path: '/Meteorologia',\n component: Meteorology,\n },\n name: 'Meteorología',\n}\n","import { createContext } from 'react';\n\nexport const LimitationsContext = createContext();","import React, { useContext, useEffect, useRef } from 'react'\nimport PropTypes from 'prop-types'\nimport ChartJs from 'chart.js'\nimport { LimitationsContext } from 'store/LimitationsContext';\nimport { CurrentCentralContext } from 'store';\n\nconst Chart = ({\n data, title = '', color = 'orange', dates = [], nominalPower = 0, compressed = false,\n}) => {\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const { limitationsCurve } = useContext(LimitationsContext);\n const chart = useRef(null)\n const myChart = useRef()\n useEffect(() => {\n myChart.current = new ChartJs(chart.current, {\n type: 'line',\n data: {\n labels: [],\n datasets: [\n {\n label: 'Limitación [MW]',\n data: [],\n borderColor: '#FFCC5E',\n pointBackgroundColor: '#FFCC5E',\n fill: false,\n lineTension: 0\n },\n {\n label: title,\n data: [],\n backgroundColor: color,\n borderColor: color,\n pointBackgroundColor: color,\n },\n ],\n },\n options: {\n responsive: true,\n maintainAspectRatio: false,\n scales: {\n xAxes: [{\n type: 'time',\n time: {\n isoWeekday: true,\n tooltipFormat: 'HH[:00] DD/MM/YYYY',\n unit: 'day',\n round: 'hour',\n }\n }],\n yAxes: [\n {\n scaleLabel: {\n display: true,\n labelString: title,\n },\n },\n ],\n },\n annotation: {\n annotations: [{}],\n drawTime: 'beforeDraw', // (default)\n },\n },\n })\n }, [color, title])\n useEffect(() => {\n myChart.current.data.datasets[1].data = data\n myChart.current.data.labels = dates\n myChart.current.update()\n }, [data, dates])\n\n useEffect(() => {\n myChart.current.data.datasets[0].data = limitationsCurve[currentCentral?.id].finalCurve.slice(0, 48) ?? []\n myChart.current.update()\n }, [limitationsCurve, currentCentral])\n\n // useEffect(() => {\n // myChart.current.options.scales.yAxes[0].ticks.max = maxValue(nominalPower)\n // myChart.current.update()\n // }, [nominalPower])\n\n useEffect(() => {\n if (compressed) {\n myChart.current.canvas.parentNode.style.height = '200px'\n myChart.current.update()\n }\n }, [compressed])\n\n return (<div className={`${compressed ? '' : 'chart'}`}><canvas ref={chart} /></div>)\n}\n\nChart.propTypes = {\n data: PropTypes.arrayOf(PropTypes.number),\n dates: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n color: PropTypes.string,\n compressed: PropTypes.bool,\n}\nChart.defaultProps = {\n dates: [],\n data: [],\n title: '',\n compressed: false,\n color: '',\n}\n\nexport default Chart\n","import { createContext } from 'react';\n\nexport const SolarLimitationsContext = createContext();","import React, { useContext, useEffect, useRef } from 'react'\nimport PropTypes from 'prop-types'\nimport ChartJs from 'chart.js'\nimport { SolarLimitationsContext } from 'store/SolarLimitationsContext';\nimport { CurrentCentralContext } from 'store';\n\nconst Chart = ({\n data, title = '', color = 'orange', dates = [], nominalPower = 0, compressed = false,\n}) => {\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const { limitationsCurve } = useContext(SolarLimitationsContext);\n const chart = useRef(null)\n const myChart = useRef()\n useEffect(() => {\n myChart.current = new ChartJs(chart.current, {\n type: 'line',\n data: {\n labels: [],\n datasets: [\n {\n label: 'Limitación [MW]',\n data: [],\n borderColor: '#FFCC5E',\n pointBackgroundColor: '#FFCC5E',\n fill: false,\n lineTension: 0\n },\n {\n label: title,\n data: [],\n backgroundColor: color,\n borderColor: color,\n pointBackgroundColor: color,\n },\n ],\n },\n options: {\n responsive: true,\n maintainAspectRatio: false,\n scales: {\n xAxes: [{\n type: 'time',\n time: {\n isoWeekday: true,\n tooltipFormat: 'HH[:00] DD/MM/YYYY',\n unit: 'day',\n round: 'hour',\n }\n }],\n yAxes: [\n {\n scaleLabel: {\n display: true,\n labelString: title,\n },\n },\n ],\n },\n annotation: {\n annotations: [{}],\n drawTime: 'beforeDraw', // (default)\n },\n },\n })\n }, [color, title])\n useEffect(() => {\n myChart.current.data.datasets[1].data = data\n myChart.current.data.labels = dates\n myChart.current.update()\n }, [data, dates])\n\n useEffect(() => {\n myChart.current.data.datasets[0].data = limitationsCurve?.[currentCentral?.id]?.finalCurve.slice(0, 48) ?? []\n myChart.current.update()\n }, [limitationsCurve, currentCentral])\n\n // useEffect(() => {\n // myChart.current.options.scales.yAxes[0].ticks.max = maxValue(nominalPower)\n // myChart.current.update()\n // }, [nominalPower])\n\n useEffect(() => {\n if (compressed) {\n myChart.current.canvas.parentNode.style.height = '200px'\n myChart.current.update()\n }\n }, [compressed])\n\n return (<div className={`${compressed ? '' : 'chart'}`}><canvas ref={chart} /></div>)\n}\n\nChart.propTypes = {\n data: PropTypes.arrayOf(PropTypes.number),\n dates: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n color: PropTypes.string,\n compressed: PropTypes.bool,\n}\nChart.defaultProps = {\n dates: [],\n data: [],\n title: '',\n compressed: false,\n color: '',\n}\n\nexport default Chart\n","\nconst updateCentral = async (body) => {\n const stage = process.env.REACT_APP_STAGE\n try{\n const response = await fetch(`https://lyemdmo7ub.execute-api.us-east-1.amazonaws.com/Stage/${stage}`,{\n method: 'POST',\n body: JSON.stringify(body)\n })\n \n return response;\n }catch(e){\n return {\n status: 400\n }\n }\n}\n\nexport default updateCentral;","import React, { useEffect, useState } from 'react';\nimport './index.css';\nimport { Title } from 'components';\nimport { Input , Message , Icon, Popup } from 'semantic-ui-react';\nimport updateCentral from 'utils/data/updateCentral';\nconst stage = process.env.REACT_APP_STAGE\n\n// const getDate = () => {\n\n// const today = moment.utc().format('YYYY-MM-DD-H').split('-')\n \n// return {\n// year: today[0],\n// month: today[1],\n// day: today[2],\n// hour: today[3],\n// full_date: moment.utc().format('YYYY-MM-DD HH:mm')\n// }\n// }\n\n// const getStage = (appStage) => {\n// if(appStage=='production'){\n// return 'Prod'\n// }else{\n// return 'Stage'\n// }\n// }\n \n// const getBrowser = () => {\n// let sBrowser, sUsrAg = navigator.userAgent;\n \n// if(sUsrAg.indexOf(\"Chrome\") > -1) {\n// sBrowser = \"Google Chrome\";\n// } else if (sUsrAg.indexOf(\"Safari\") > -1) {\n// sBrowser = \"Apple Safari\";\n// } else if (sUsrAg.indexOf(\"Opera\") > -1) {\n// sBrowser = \"Opera\";\n// } else if (sUsrAg.indexOf(\"Firefox\") > -1) {\n// sBrowser = \"Mozilla Firefox\";\n// } else if (sUsrAg.indexOf(\"MSIE\") > -1) {\n// sBrowser = \"Microsoft Internet Explorer\";\n// }\n \n// return sBrowser;\n// }\n\nconst OperationalData = ({ central , permissions}) => {\n\n const [ data , setData ] = useState({})\n\n const [ state , setState ] = useState( { \n curtailment: 0,\n availability: 0,\n beforeCurtailment: 0,\n beforeAvailability: 0,\n nominalPower: 0\n });\n\n const [ messageState , setMessageState ] = useState( { \n success: false,\n description: true,\n error: false,\n limitation: false,\n availability: false,\n message: '',\n header: ''\n });\n\n useEffect( ( ) => {\n fetch(`https://lyemdmo7ub.execute-api.us-east-1.amazonaws.com/Stage/${stage}/${central.id}`)\n .then( response => response.json())\n .then( centralData => {\n\n const { operational_data } = centralData;\n setData(centralData)\n setState({\n curtailment: operational_data.curtailment_setpoint,\n availability: operational_data.availability,\n beforeCurtailment: operational_data.curtailment_setpoint,\n beforeAvailability: operational_data.availability,\n nominalPower: centralData.nominal_power\n })\n })\n },[central])\n\n useEffect( () => {\n const timeId = setTimeout(() => {\n\n if(messageState.error){\n setMessageState({\n ...messageState\n })\n }else{\n setMessageState({\n success: false,\n description: true,\n error: false,\n limitation: false,\n availability: false,\n message: '',\n header: ''\n })\n }\n }, 5000)\n \n return () => {\n clearTimeout(timeId);\n }\n\n }, [messageState] )\n\n const handleChange = ({target}) => {\n\n if(target.name === \"curtailment\" && ( parseInt(target.value) > data.nominal_power || parseInt(target.value) < 0)){\n setMessageState({\n ...messageState,\n success: false,\n description: false,\n error: true,\n limitation: true,\n availability: false,\n message: `Debe ingresar un valor entre 0 y ${data.nominal_power}`\n })\n }else if(target.name === \"availability\" && (parseInt(target.value) > 100 || parseInt(target.value) < 0 ) ){\n setMessageState({\n ...messageState,\n success: false,\n description: false,\n error: true,\n limitation: false,\n availability: true,\n message: 'Debe ingresar un valor entre 0 y 100'\n })\n }else{\n setState({\n ...state,\n [target.name] : parseInt(target.value) || 0\n })\n }\n }\n\n const handleCancelEnter = (e) => {\n if(e.keyCode === 13) {\n e.preventDefault();\n return false;\n }\n }\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n \n const res = await updateCentral({\n ...data,\n operational_data: {\n curtailment_setpoint: state.curtailment,\n availability: state.availability\n }\n })\n\n const { status } = res;\n\n if(status===200){\n\n // const getUser = async () => {\n\n // const user = await Auth.currentSession()\n \n // return user\n // }\n\n // getUser()\n // .then( user => {\n // const { idToken } = user;\n // const { payload } = idToken;\n // const { nickname } = payload;\n // return fetch(`https://gyjgglo391.execute-api.us-east-1.amazonaws.com/Prod/users/${nickname}`)\n // })\n // .then( data => data.json())\n // .then( data => {\n\n // let connectionDate = getDate()\n \n // let template = {\n // \"central\": central.name,\n // \"username\": data.pkey,\n // \"client\": data.clientID,\n // \"browser\": getBrowser(),\n // \"year\": connectionDate.year,\n // \"month\": connectionDate.month,\n // \"day\": connectionDate.day,\n // \"hour\": connectionDate.hour,\n // \"date\": connectionDate.full_date,\n // \"new_data\" : {\n // \"curtailment\": state.curtailment,\n // \"availability\": state.availability \n // },\n // \"previous_data\": {\n // \"curtailment\": state.beforeCurtailment,\n // \"availability\": state.beforeAvailability \n // }\n // }\n \n // fetch(`https://w6epd4jrni.execute-api.us-east-1.amazonaws.com/${getStage(stage)}/operational_data`, { method: \"POST\", body: JSON.stringify(template)})\n // })\n \n setMessageState({\n success: true,\n description: false,\n error: false,\n limitation: false,\n availability: false,\n message: `La informacion operacional de la central ${data.fancy_name} ha sido modificada exitosamente.`,\n header: 'Cambios realizados satisfactoriamente'\n })\n \n setData({\n ...data,\n operational_data: {\n curtailment_setpoint: state.curtailment,\n availability: state.availability\n }\n })\n setState({\n curtailment: state.curtailment,\n availability: state.availability,\n beforeCurtailment: state.curtailment,\n beforeAvailability: state.availability,\n nominalPower: central.nominal_power\n })\n\n\n \n\n }else{\n setMessageState({\n success: false,\n description: false,\n error: true,\n limitation: false,\n availability: false,\n message: `Ha ocurrido un problema al modificar la informacion operacional de la central ${data.fancy_name}, intentelo nuevamente.`,\n header: 'Error al actualizar los datos'\n })\n }\n }\n\n return(\n <form className=\"operational-data__form\" onKeyDown={handleCancelEnter} onSubmit={handleSubmit}>\n <Title fancyName=\"Información operacional\"/>\n <div className=\"operational-data__input-group\">\n <div>\n <label htmlFor=\"curtailment\">\n <span className=\"label-title\">Limitación</span>\n <Popup trigger={<Icon name='info circle' />} inverted>\n Potencia máxima (en kW) a la que está restringido el parque.\n </Popup>\n </label>\n <Input\n error={messageState.limitation && (true)}\n label={{ basic: true, content: 'kW'}}\n labelPosition='left'\n className=\"operational-data__input\" \n key=\"curtailment\" \n type=\"number\" \n name=\"curtailment\"\n autoComplete=\"false\"\n min={0}\n max={state.nominalPower}\n value={state.curtailment}\n onChange={handleChange}\n disabled={!permissions}\n />\n </div>\n\n <div>\n <label htmlFor=\"availability\">\n <span className=\"label-title\">Disponibilidad</span>\n <Popup trigger={<Icon name='info circle' />} inverted>\n Porcentaje del parque que se encuentra operativo.\n </Popup>\n </label>\n <Input\n error={messageState.availability}\n label={{ basic: true, content: '%'}}\n labelPosition='left'\n className=\"operational-data__input\" \n key=\"availability\" \n type=\"number\" \n name=\"availability\"\n autoComplete=\"false\"\n min={0}\n max={100}\n value={state.availability}\n onChange={handleChange}\n disabled={!permissions}\n />\n </div>\n\n {\n (state.curtailment !== state.beforeCurtailment || state.availability !== state.beforeAvailability) && \n (\n <button id=\"btn-save\" className=\"btn-save-enabled\" type=\"submit\">Guardar información</button>\n )\n }\n\n {\n (state.curtailment === state.beforeCurtailment && state.availability === state.beforeAvailability) && \n (\n <button id=\"btn-save\" className=\"btn-save-disabled\" type=\"submit\" disabled>Guardar información</button>\n )\n }\n \n </div>\n\n {\n (messageState.success || messageState.error ) && (\n <div>\n <Message\n success={messageState.success}\n error={messageState.error}\n className=\"animate__animated animate__fadeIn\"\n header={messageState.header}\n content={messageState.message}\n />\n </div>\n )\n }\n \n <hr style={{ margin: '20px' }} />\n </form>\n )\n}\n\nexport default OperationalData;","import React, { useCallback } from 'react';\nimport { Button, Grid, Icon } from 'semantic-ui-react';\n\nimport './index.css';\n\nconst CenSolarFileRow = ({ doc }) => {\n const generateFile = useCallback(\n () => {\n const element = document.createElement('a')\n const fileGet = new Blob([doc.data], { type: 'text/plain' })\n element.href = URL.createObjectURL(fileGet)\n element.download = doc.title\n document.body.appendChild(element)\n\n element.click()\n },\n [],\n )\n return (\n <Grid columns={4}>\n <Grid.Column className=\"hour\">{doc.type}</Grid.Column>\n <Grid.Column className=\"clock\">{doc.hour}</Grid.Column>\n <Grid.Column>\n <Icon\n size=\"large\"\n color={!doc.available ? 'grey' : 'green'}\n name={doc.available ? 'check circle' : 'hourglass start'}\n />\n </Grid.Column>\n <Grid.Column>\n <Button disabled={!doc.available} onClick={generateFile}> Descargar</Button>\n </Grid.Column>\n </Grid>\n )\n}\n\nexport default CenSolarFileRow;\n\n","import React, { useEffect, useState } from 'react';\nimport moment from 'moment'\nimport { Title } from 'components';\nimport SemanticDatepicker from 'react-semantic-ui-datepickers';\nimport CenSolarFileRow from '../CenSolarFileRow';\n\nimport './index.css';\nimport { Grid } from 'semantic-ui-react';\n\nconst calculateDate = (date) => {\n const selectedDate = moment(date).format('YYYY-MM-DD');\n const dateLimit = moment('2024-02-28').format('YYYY-MM-DD');\n\n if(moment(selectedDate).isBefore(dateLimit)) return '09';\n \n return '08';\n}\n\nconst CenSolarReports = ({ central }) => {\n\n const [ date , setDate ] = useState(moment.utc())\n const [ report4806 , setReport4806]= useState(false);\n const [ report4818 , setReport4818]= useState(false);\n const [ report24009 , setReport24009]= useState(false);\n\n const API = 'https://8jr3hed06e.execute-api.us-east-1.amazonaws.com/production';\n\n useEffect( () => {\n const { id , CEN_data } = central;\n const today = moment.utc(date.toDate()).format('YYYY-MM-DD').split('-');\n\n fetch(`${API}/cen/${id}/${CEN_data.cen_name}/solar-48h/${today[0]}/${today[1]}/${today[2]}/06/Solar-48h.csv`)\n .then( response => response.json())\n .then( data => {\n setReport4806({type: '48 Horas' , hour: '06:00', data: data.body , title: data.title, available: data.available})\n })\n\n fetch(`${API}/cen/${id}/${CEN_data.cen_name}/solar-48h/${today[0]}/${today[1]}/${today[2]}/18/Solar-48h.csv`)\n .then( response => response.json())\n .then( data => {\n setReport4818({type: '48 Horas' , hour: '18:00', data: data.body , title: data.title, available: data.available})\n })\n\n fetch(`${API}/cen/${id}/${CEN_data.cen_name}/solar-240h/${today[0]}/${today[1]}/${today[2]}/${calculateDate(date)}/Solar-240h.csv`)\n .then( response => response.json())\n .then( data => {\n setReport24009({type: '240 Horas' , hour: `${calculateDate(date) === '09' ? '09' : '08'}:00`, data: data.body , title: data.title, available: data.available} )\n })\n\n return () => {\n setReport4806(false)\n setReport4818(false)\n setReport24009(false)\n }\n },[date,central])\n\n const handleDate = (e , data) => {\n setDate(moment.utc(data.value))\n }\n\n return(\n <>\n <Title fancyName='Reportes CEN'/>\n <div className=\"asdasd\">\n <SemanticDatepicker\n className=\"asdasd\"\n key=\"picker\"\n locale=\"es-ES\"\n firstDayOfWeek={1}\n format=\"DD-MM-YYYY\"\n size=\"large\"\n value={date.toDate()}\n maxDate={moment.utc().toDate()}\n onChange={(event, data) => handleDate(event, data)}\n showOutsideDays\n clearable={false}\n datePickerOnly={false}\n />\n </div>\n <Grid columns={4} className=\"title-group\">\n <Grid.Column className=\"title-row\"><h3>Formato</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Hora</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Disponibilidad</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Descargas</h3></Grid.Column>\n </Grid>\n { report4806 !== false && <CenSolarFileRow key={4806} doc={report4806}/>} \n { report24009 !== false && <CenSolarFileRow key={24009} doc={report24009}/>} \n { report4818 !== false && <CenSolarFileRow key={4818} doc={report4818}/>} \n </>\n )\n}\n\nexport default CenSolarReports;","import React, { useEffect, useState } from 'react';\nimport moment from 'moment'\nimport momentTZ from 'moment-timezone'\nimport { Title } from 'components';\nimport CenSolarFileRow from '../CenSolarFileRow';\n\nimport './index.css';\nimport { Grid, Select } from 'semantic-ui-react';\nimport SemanticDatepicker from 'react-semantic-ui-datepickers';\n\nconst hourOptions = () => {\n let hourGroup = []\n\n for (let index = 0; index < 24; index++) {\n if(index<10) hourGroup.push({ key: index , value: index, text: `0${index}:00`})\n if(index>=10) hourGroup.push({ key: index , value: index, text: `${index}:00` })\n }\n\n return hourGroup;\n}\n\nconst calculateDate = (date) => {\n const selectedDate = moment(date).format('YYYY-MM-DD');\n const dateLimit = moment('2024-03-07').format('YYYY-MM-DD');\n\n if(moment(selectedDate).isBefore(dateLimit)) return '09';\n \n return '08';\n}\n\nconst CenWindReports = ({ central }) => {\n\n const [ date , setDate ] = useState(moment.utc())\n const [ hour , setHour] = useState(parseInt(momentTZ().tz(central.tz).format('HH')))\n const options = hourOptions();\n const [ eolica12 , setEolica12]= useState(false);\n const [ eolica48 , setEolica48 ]= useState(false);\n const [ eolica240 , setEolica240 ]= useState(false);\n const [ rampas , setRampas ]= useState(false);\n\n const API = 'https://8jr3hed06e.execute-api.us-east-1.amazonaws.com/production';\n\n const getHour = (hour) => {\n if(hour<10) return `0${hour}`\n if(hour>=10) return `${hour}`\n }\n\n const getClosest = (hour) => {\n if( hour >= 0 && hour < 6 ) return '00' \n if( hour >= 6 && hour < 12 ) return '06' \n if( hour >= 12 && hour < 18 ) return '12' \n if( hour >= 18 ) return '18' \n }\n\n useEffect( () => {\n\n const { id , CEN_data } = central;\n let day = moment.utc(date).format('DD');\n let month = moment.utc(date).format('MM');\n let year = moment.utc(date).format('YYYY');\n\n fetch(`${API}/cen/${id}/${encodeURIComponent(CEN_data.cen_name)}/eolica-12h/${year}/${month}/${day}/${getHour(hour)}/Eolica-12h.csv`)\n .then( response => response.json())\n .then( data => {\n setEolica12({type: '12 Horas' , hour: `${getHour(hour)}:00`, data: data.body , title: data.title, available: data.available})\n })\n\n fetch(`${API}/cen/${id}/${encodeURIComponent(CEN_data.cen_name)}/eolica-48h/${year}/${month}/${day}/${getClosest(hour)}/Eolica-48h.csv`)\n .then( response => response.json())\n .then( data => {\n setEolica48({type: '48 Horas' , hour: `${getClosest(hour)}:00`, data: data.body , title: data.title, available: data.available})\n })\n\n fetch(`${API}/cen/${id}/${encodeURIComponent(CEN_data.cen_name)}/eolica-240h/${year}/${month}/${day}/${calculateDate(date)}/Eolica-240h.csv`)\n .then( response => response.json())\n .then( data => {\n setEolica240({type: '240 Horas' ,hour: `${calculateDate(date) === '09' ? '09' : '08'}:00`, data: data.body , title: data.title, available: data.available} )\n })\n\n fetch(`${API}/cen/${id}/${encodeURIComponent(CEN_data.cen_name)}/rampas-12h/${year}/${month}/${day}/${getHour(hour)}/RampasEolicas-12h.csv`)\n .then( response => response.json())\n .then( data => {\n setRampas({type: 'Rampas' , hour: `${getHour(hour)}:00`, data: data.body , title: data.title, available: data.available} )\n })\n\n return () => {\n setEolica12(false)\n setEolica48(false)\n setEolica240(false)\n setRampas(false)\n }\n },[date,hour,central])\n\n const handleDate = (e , data) => {\n setDate(moment.utc(data.value))\n }\n\n const handleHour = (e , data) => {\n setHour(data.value)\n }\n\n return(\n <>\n <Title fancyName='Reportes CEN'/>\n <div className=\"date-control\">\n <SemanticDatepicker\n className=\"datepicker\"\n name=\"datepicker\"\n key=\"picker\"\n locale=\"es-ES\"\n firstDayOfWeek={1}\n format=\"DD-MM-YYYY\"\n size=\"small\"\n value={date.toDate()}\n maxDate={moment.utc().toDate()}\n onChange={(event, data) => handleDate(event, data)}\n showOutsideDays\n clearable={false}\n datePickerOnly={false}\n />\n <Select defaultValue={parseInt(momentTZ().tz(central.tz).format('HH'))} placeholder='Seleccionar hora' onChange={ (event,data) => handleHour(event,data)} options={options} />\n </div>\n\n <Grid columns={4} className=\"title-group\">\n <Grid.Column className=\"title-row\"><h3>Formato</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Hora</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Disponibilidad</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Descargas</h3></Grid.Column>\n </Grid>\n\n { eolica12 !== false && <CenSolarFileRow key={'eolica12'} doc={eolica12}/>} \n { eolica48 !== false && <CenSolarFileRow key={'eolica48'} doc={eolica48}/>} \n { eolica240 !== false && <CenSolarFileRow key={'eolica240'} doc={eolica240}/>} \n { rampas !== false && <CenSolarFileRow key={'rampas'} doc={rampas}/>} \n </>\n )\n}\n\nexport default CenWindReports;","import React, { useEffect, useRef } from 'react'\nimport PropTypes from 'prop-types'\nimport ChartJs from 'chart.js'\nimport moment from 'moment'\nimport groupData from 'utils/data/groupData'\n\n\nimport './chart.css'\n/**\n *\n * @param {array} data\n * @param {string} timeUnit\n * @param {func} color\n * @param {string} title\n */\nconst BasicChart = ({\n data = [],\n timeUnit = 'week',\n color = () => '#AAA',\n title = '',\n}) => {\n const chart = useRef(null)\n const myChart = useRef(null)\n\n useEffect(() => {\n if (myChart?.current?.destroy) myChart.current.destroy()\n myChart.current = new ChartJs(chart.current, {\n type: 'bar',\n data: {\n labels: [],\n datasets: [{\n label: title,\n data: [],\n backgroundColor: color(1),\n }],\n },\n options: {\n maintainAspectRatio: false,\n scales: {\n xAxes: [{\n type: 'time',\n gridLines: {\n offsetGridLines: true,\n },\n offset: true,\n }],\n yAxes: [{\n scaleLabel: {\n display: true,\n labelString: title,\n },\n }],\n },\n annotation: {\n annotations: [{ }],\n drawTime: 'beforeDraw', // (default)\n },\n },\n })\n }, [color, title])\n useEffect(() => {\n const processGroupedData = groupData(data, timeUnit)\n myChart.current.data.labels = processGroupedData.map(({ date: itemDate }) => itemDate)\n myChart.current.data.datasets[0].data = processGroupedData.map(({ data: itemData }) => itemData)\n myChart.current.options.scales.xAxes[0].time.unit = timeUnit\n myChart.current.options.scales.xAxes[0].time.round = timeUnit\n myChart.current.update()\n }, [data, timeUnit])\n\n return (<div className=\"chart\"><canvas ref={chart} id=\"myChart\" /></div>)\n}\nBasicChart.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.number,\n date: PropTypes.instanceOf(moment),\n })),\n color: PropTypes.func,\n title: PropTypes.string,\n timeUnit: PropTypes.string,\n}\nBasicChart.defaultProps = {\n data: [],\n timeUnit: 'week',\n color: () => '#AAA',\n title: '',\n}\n/**\n *\n * @param {array} data\n * @param {string} timeUnit\n * @param {func} color\n * @param {string} title\n */\nconst ErrorChart = ({\n data = [],\n timeUnit = 'week',\n color = () => '#AAA',\n title = '',\n}) => {\n const chart = useRef(null)\n const myChart = useRef(null)\n\n useEffect(() => {\n if (myChart?.current?.destroy) myChart.current.destroy()\n myChart.current = new ChartJs(chart.current, {\n type: 'bar',\n data: {\n labels: [],\n datasets: [{\n label: title,\n data: [],\n backgroundColor: color(1),\n }],\n },\n options: {\n maintainAspectRatio: false,\n scales: {\n xAxes: [{\n type: 'time',\n gridLines: {\n offsetGridLines: true,\n },\n offset: true,\n }],\n yAxes: [{\n scaleLabel: {\n display: true,\n labelString: title,\n },\n }],\n },\n annotation: {\n annotations: [{ }],\n drawTime: 'beforeDraw', // (default)\n },\n },\n })\n }, [color, title])\n useEffect(() => {\n const processGroupedData = groupData(data, timeUnit)\n myChart.current.data.labels = processGroupedData.map(({ date: itemDate }) => itemDate)\n myChart.current.data.datasets[0].data = processGroupedData.map(({ data: itemData }) => (itemData/24).toFixed(2))\n myChart.current.options.scales.xAxes[0].time.unit = timeUnit\n myChart.current.options.scales.xAxes[0].time.round = timeUnit\n myChart.current.update()\n }, [data, timeUnit])\n\n return (<div className=\"chart\"><canvas ref={chart} id=\"myChart\" /></div>)\n}\nBasicChart.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.number,\n date: PropTypes.instanceOf(moment),\n })),\n color: PropTypes.func,\n title: PropTypes.string,\n timeUnit: PropTypes.string,\n}\nBasicChart.defaultProps = {\n data: [],\n timeUnit: 'week',\n color: () => '#AAA',\n title: '',\n}\n\nexport { BasicChart , ErrorChart }\n","import moment from 'moment';\nimport React, { useEffect, useState } from 'react';\nimport { ErrorChart } from 'components/charts/basicChart'\n\nimport { Title } from 'components';\nimport {\n colorGeneration\n} from 'constants/colors'\nimport './index.css';\n\nconst URL_ERRORS = 'https://rd18wbt0x6.execute-api.us-east-1.amazonaws.com/Prod/error';\n\nconst Error = ( { central } ) => {\n\n const [ data , setData ] = useState([]);\n const [ emptyDates , setEmptyDates ] = useState([]);\n\n const [ maxDate , setMaxDate ] = useState(moment().utc().subtract(2,'d'));\n const [ startDate , setStartDate ] = useState(moment(maxDate).subtract(9,'d'));\n const [ endDate , setEndDate ] = useState(moment(maxDate));\n\n useEffect( () => {\n try{\n const daysCount = endDate.diff(startDate,'days')+1;\n\n setData([]);\n setEmptyDates([]);\n \n for (let index = 0; index < daysCount; index++) {\n fetch(`${URL_ERRORS}/${central}/AE/${moment(startDate).add(index,'d').format('YYYY-MM-DD')}-00/${moment(startDate).add(index,'d').format('YYYY-MM-DD')}-23`)\n .then( response => response.json())\n .then( response => {\n let total = 0;\n if(response.length>5){\n let dd = response.map(({ data: d, hour: h, year: y, day: day, month: m }) => {\n total += parseFloat(d.S)\n return {\n data: parseFloat((parseFloat(d.S)*100).toFixed(2)),\n date: moment(`${y.S}-${m.S}-${day.S}-${h.S}`, 'YYYY-MM-DD-HH'),\n }\n })\n setData( prevState => ([\n ...prevState,\n ...dd\n ]))\n }else{\n setEmptyDates( prevState => ([\n ...prevState,\n moment(startDate).add(index,'d').format('YYYY-MM-DD')\n ]))\n }\n })\n }\n }catch(e){\n throw new Error(e.message);\n }\n }, [ central ])\n \n return (\n <>\n <Title fancyName={'MAE Diario (Últimos 10 días)'}/>\n <ErrorChart data={data} title=\"MAE [%]\" timeUnit=\"day\" color={colorGeneration} />\n </>\n )\n}\n\nexport { Error }","import React, { useContext, useEffect, useRef } from 'react'\nimport PropTypes from 'prop-types'\nimport ChartJs from 'chart.js'\nimport moment from 'moment'\nimport groupData from 'utils/data/groupData'\n\n\nimport './chart.css'\nimport { LimitationsContext } from 'store/LimitationsContext'\nimport { CurrentCentralContext } from 'store'\n/**\n *\n * @param {array} data\n * @param {string} timeUnit\n * @param {func} color\n * @param {string} title\n */\nconst Predictions240h = ({\n data = [],\n timeUnit = 'week',\n color = () => '#AAA',\n title = '',\n}) => {\n const chart = useRef(null)\n const myChart = useRef(null);\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const { limitations, limitationsCurve } = useContext(LimitationsContext);\n\n useEffect(() => {\n if (myChart?.current?.destroy) myChart.current.destroy()\n myChart.current = new ChartJs(chart.current, {\n type: 'bar',\n data: {\n labels: [],\n datasets: [\n {\n label: title,\n data: [],\n backgroundColor: color(1),\n stack: 'Stack 0'\n },\n {\n label: 'Limitación [MWh]',\n data: [],\n backgroundColor: '#FFCC5E',\n borderColor: '#FFCC5E',\n pointBackgroundColor: '#FFCC5E',\n stack: 'Stack 0'\n },\n ],\n },\n options: {\n maintainAspectRatio: false,\n scales: {\n xAxes: [{\n type: 'time',\n gridLines: {\n offsetGridLines: true,\n },\n offset: true,\n stacked: true\n }],\n yAxes: [{\n scaleLabel: {\n display: true,\n labelString: title,\n },\n stacked: true\n }],\n },\n annotation: {\n annotations: [{}],\n drawTime: 'beforeDraw', // (default)\n },\n },\n })\n }, [color, title]);\n\n useEffect(() => {\n if (data.length > 0) {\n let limitedPower = limitationsCurve[currentCentral?.id].limitedPower ?? [];\n const processGroupedData = groupData(data.map(({ data: d, date: h }, index) => {\n if (d > limitedPower[index].data) {\n return { data: +limitedPower[index].data.toFixed(2), date: h };\n } else {\n return { data: +d.toFixed(2), date: h };\n }\n }), timeUnit)\n\n myChart.current.data.labels = processGroupedData.map(({ date: itemDate }) => itemDate)\n myChart.current.data.datasets[0].data = processGroupedData.map(({ data: itemData }) => itemData)\n myChart.current.options.scales.xAxes[0].time.unit = timeUnit\n myChart.current.options.scales.xAxes[0].time.round = timeUnit\n myChart.current.data.datasets[1].data = groupData(limitedPower.map(({ data: limitation }, index) => {\n if (limitation < data[index]?.data) {\n return { data: parseFloat((data[index].data - limitation).toFixed(2)), date: moment(limitedPower[index].date) };\n } else {\n return { data: 0, date: moment(limitedPower[index].date) };\n }\n }), timeUnit).map(data => (data.data))\n myChart.current.update()\n }\n\n\n }, [data, timeUnit, limitations])\n\n return (<div className=\"chart\"><canvas ref={chart} id=\"myChart\" /></div>)\n}\nPredictions240h.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.number,\n date: PropTypes.instanceOf(moment),\n })),\n color: PropTypes.func,\n title: PropTypes.string,\n timeUnit: PropTypes.string,\n}\nPredictions240h.defaultProps = {\n data: [],\n timeUnit: 'week',\n color: () => '#AAA',\n title: '',\n}\n/**\n *\n * @param {array} data\n * @param {string} timeUnit\n * @param {func} color\n * @param {string} title\n */\nconst ErrorChart = ({\n data = [],\n timeUnit = 'week',\n color = () => '#AAA',\n title = '',\n}) => {\n const chart = useRef(null)\n const myChart = useRef(null)\n\n useEffect(() => {\n if (myChart?.current?.destroy) myChart.current.destroy()\n myChart.current = new ChartJs(chart.current, {\n type: 'bar',\n data: {\n labels: [],\n datasets: [{\n label: title,\n data: [],\n backgroundColor: color(1),\n }],\n },\n options: {\n maintainAspectRatio: false,\n scales: {\n xAxes: [{\n type: 'time',\n gridLines: {\n offsetGridLines: true,\n },\n offset: true,\n }],\n yAxes: [{\n scaleLabel: {\n display: true,\n labelString: title,\n },\n }],\n },\n annotation: {\n annotations: [{}],\n drawTime: 'beforeDraw', // (default)\n },\n },\n })\n }, [color, title])\n useEffect(() => {\n const processGroupedData = groupData(data, timeUnit)\n myChart.current.data.labels = processGroupedData.map(({ date: itemDate }) => itemDate)\n myChart.current.data.datasets[0].data = processGroupedData.map(({ data: itemData }) => (itemData / 24).toFixed(2))\n myChart.current.options.scales.xAxes[0].time.unit = timeUnit\n myChart.current.options.scales.xAxes[0].time.round = timeUnit\n myChart.current.update()\n }, [data, timeUnit])\n\n return (<div className=\"chart\"><canvas ref={chart} id=\"myChart\" /></div>)\n}\nPredictions240h.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.number,\n date: PropTypes.instanceOf(moment),\n })),\n color: PropTypes.func,\n title: PropTypes.string,\n timeUnit: PropTypes.string,\n}\nPredictions240h.defaultProps = {\n data: [],\n timeUnit: 'week',\n color: () => '#AAA',\n title: '',\n}\n\nexport { Predictions240h, ErrorChart }\n","import { useState } from 'react';\n\nexport const usePagination = (itemsPerPage, data, maxPageNumbersToShow = 5) => {\n const [currentPage, setCurrentPage] = useState(1);\n const nPage = Math.ceil(data.length / itemsPerPage);\n\n const lastIndex = currentPage * itemsPerPage;\n const firstIndex = lastIndex - itemsPerPage;\n const records = data.slice(firstIndex, lastIndex);\n\n const prevPage = () => {\n if (currentPage > 1) setCurrentPage(currentPage - 1);\n }\n\n const nextPage = () => {\n if (currentPage < nPage) setCurrentPage(currentPage + 1);\n }\n\n const setFirstPage = () => {\n if(currentPage!==1) setCurrentPage(1);\n }\n\n const setLastPage = () => {\n if(currentPage!==nPage) setCurrentPage(nPage);\n }\n\n const setPage = (pageNumber) => {\n if (pageNumber >= 1 && pageNumber <= nPage) {\n setCurrentPage(pageNumber);\n }\n }\n\n // Lógica para mostrar un rango limitado de números de página\n const startPage = Math.max(1, currentPage - Math.floor(maxPageNumbersToShow / 2));\n const endPage = Math.min(nPage, startPage + maxPageNumbersToShow - 1);\n const adjustedStartPage = Math.max(1, endPage - maxPageNumbersToShow + 1);\n const numbers = [...Array(endPage - adjustedStartPage + 1).keys()].map(i => i + adjustedStartPage);\n\n return {\n currentPage,\n records,\n numbers, // Ahora es un rango dinámico de números de página\n nPage,\n prevPage,\n nextPage,\n setPage,\n setLastPage,\n setFirstPage\n };\n}\n","import React from 'react'\n\nexport const Eye = ({ onClick }) => {\n return (\n <svg onClick={onClick} style={{ cursor: 'pointer' }} xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" className=\"bi bi-eye\" viewBox=\"0 0 16 16\">\n <path d=\"M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8M1.173 8a13 13 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5s3.879 1.168 5.168 2.457A13 13 0 0 1 14.828 8q-.086.13-.195.288c-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5s-3.879-1.168-5.168-2.457A13 13 0 0 1 1.172 8z\" />\n <path d=\"M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0\" />\n </svg>\n )\n}\n","import React from 'react'\n\nexport const Trash = ({ limitation, handleShowDelete, handleShowConfirm }) => {\n return (\n <svg onClick={(e) => {\n if(limitation.active === false){\n handleShowConfirm();\n }else{\n handleShowDelete();\n }\n }} type=\"button\" data-bs-toggle=\"modal\" data-bs-target=\"#staticBackdrop\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" className=\"bi bi-trash\" viewBox=\"0 0 16 16\">\n <path d=\"M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0z\"/>\n <path d=\"M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1zM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4zM2.5 3h11V2h-11z\"/>\n </svg>\n )\n}\n","import React, { useContext } from 'react'\nimport { LimitationsContext } from 'store/LimitationsContext';\n\nexport const Pencil = ({ onClick, limitation }) => {\n const { setCurrentLimitation } = useContext(LimitationsContext);\n\n return (\n <svg onClick={() => {\n onClick();\n setCurrentLimitation(limitation);\n }} style={{ cursor: 'pointer' }} xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" className=\"mx-2 bi bi-pencil\" viewBox=\"0 0 16 16\">\n <path d=\"M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325\" />\n </svg>\n )\n}\n","import React from 'react'\n\nexport const Power = ({handleShow}) => {\n return (\n <svg onClick={ (e) => handleShow()} style={{cursor: 'pointer'}} xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" className=\"bi bi-power\" viewBox=\"0 0 16 16\">\n <path d=\"M7.5 1v7h1V1z\" />\n <path d=\"M3 8.812a5 5 0 0 1 2.578-4.375l-.485-.874A6 6 0 1 0 11 3.616l-.501.865A5 5 0 1 1 3 8.812\" />\n </svg>\n )\n}\n","import React, { useEffect, useMemo, useState } from 'react'\nimport { Line } from 'react-chartjs-2'\nimport 'chartjs-plugin-annotation'\n\nexport const UpdateLimitationChart = ({ central,nominalPower, level, windTurbineId, turbineNominalPower, limitation = {}}) => {\n\n const [values, setValues] = useState([])\n const [maxValue, setMaxValue] = useState(nominalPower)\n\n useEffect(() => {\n setValues(Object.values(limitation))\n }, [limitation])\n\n useEffect(() => {\n setMaxValue(nominalPower)\n }, [nominalPower])\n\n\n return (\n <Line\n type='line'\n data={\n {\n datasets: [\n {\n data: Object.values(limitation),\n label: 'Potencia [kW]',\n backgroundColor: '#B3D0EB',\n borderColor: '#B3D0EB',\n pointBorderColor: '#5f92c2',\n pointBackgroundColor: '#5f92c2'\n },\n ],\n labels: [\n '00:00',\n '01:00',\n '02:00',\n '03:00',\n '04:00',\n '05:00',\n '06:00',\n '07:00',\n '08:00',\n '09:00',\n '10:00',\n '11:00',\n '12:00',\n '13:00',\n '14:00',\n '15:00',\n '16:00',\n '17:00',\n '18:00',\n '19:00',\n '20:00',\n '21:00',\n '22:00',\n '23:00',\n ],\n }\n }\n options={\n {\n annotation: {\n annotations: [\n {\n type: 'line',\n mode: 'horizontal',\n scaleID: 'y-axis-0',\n value: (level === \"wind_turbine\" || level === \"inverter\") ? turbineNominalPower : nominalPower,\n borderDashOffset: 5,\n borderColor: '#5C57EB',\n borderWidth: 3,\n label: {\n backgroundColor: '#5C57EB',\n content: `Potencia nominal [kW]: ${(level === \"wind_turbine\" || level === \"inverter\") ? turbineNominalPower : nominalPower}`,\n enabled: true,\n yAdjust: 12\n },\n }\n ]\n },\n scales: {\n yAxes:\n [{\n scaleLabel: {\n display: true,\n labelString: 'kW',\n }\n }],\n xAxes:\n [{\n scaleLabel: {\n display: true,\n labelString: 'Hora',\n }\n }]\n\n }\n }\n }\n height={70}\n />\n )\n}","import React, { useContext, useEffect, useState } from 'react'\nimport { useForm } from 'react-hook-form';\nimport { Alert, Spinner, Button, Modal, Form, Col, Row, InputGroup } from 'react-bootstrap';\nimport { CurrentCentralContext } from 'store';\nimport { LimitationsContext } from 'store/LimitationsContext';\nimport { Pencil } from 'components/predictionsView/Limitations/icons';\nimport { UpdateLimitationChart } from 'components/predictionsView/Limitations/charts/UpdateLimitationChart';\nimport { Auth } from 'aws-amplify';\nimport Select from 'react-select';\n\nexport const UpdateLimitation = ({ limitation }) => {\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const { centralTurbines, categories, onUpdateLimitation } = useContext(LimitationsContext);\n const [showModal, setShowModal] = useState(false);\n const [updating, setUpdating] = useState(false);\n const { register, handleSubmit, formState: { errors }, watch, setValue, reset, clearErrors, formState } = useForm()\n const [windTurbineId, setWindTurbineId] = useState([])\n const [windTurbines, setWindTurbines] = useState(limitation?.wind_turbine_id?.map(turbine => (\n {\n value: turbine,\n label: `${currentCentral?.wind_turbines[turbine]?.fancy_name} - (${currentCentral?.wind_turbines[turbine]?.nominal_power} kW)`, \n isDisabled: false\n })).sort())\n\n useEffect(() => {\n if ('wind_turbines' in currentCentral && limitation) {\n setWindTurbineId(limitation?.wind_turbine_id?.map(turbine => ({value: turbine,label: `${currentCentral?.wind_turbines[turbine]?.fancy_name} - (${currentCentral?.wind_turbines[turbine]?.nominal_power} kW)` })) ?? []);\n reset({\n ...limitation,\n without_date_limit: limitation?.end_date === null ? true : false,\n full_day_limitation: limitation?.frequency === 'complete_day' ? limitation?.data?.[0] : limitation?.level === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power,\n }); // Resetea el formulario con los valores del item seleccionado\n } else {\n reset(); // Si no hay item seleccionado, resetea el formulario vacío\n }\n }, [showModal, currentCentral]);\n\n useEffect(()=>{\n if(windTurbineId.length>0){\n setWindTurbines(() => {\n return windTurbineId.map(({ value, label, isDisabled}) => (\n {\n value,\n label,\n })).sort()\n })\n }else{\n setWindTurbines([])\n clearErrors('full_day_limitation');\n clearErrors('data'); \n }\n },[windTurbineId])\n\n useEffect(() => {\n setValue('data', {\n '0': watch('full_day_limitation'),\n '1': watch('full_day_limitation'),\n '2': watch('full_day_limitation'),\n '3': watch('full_day_limitation'),\n '4': watch('full_day_limitation'),\n '5': watch('full_day_limitation'),\n '6': watch('full_day_limitation'),\n '7': watch('full_day_limitation'),\n '8': watch('full_day_limitation'),\n '9': watch('full_day_limitation'),\n '10': watch('full_day_limitation'),\n '11': watch('full_day_limitation'),\n '12': watch('full_day_limitation'),\n '13': watch('full_day_limitation'),\n '14': watch('full_day_limitation'),\n '15': watch('full_day_limitation'),\n '16': watch('full_day_limitation'),\n '17': watch('full_day_limitation'),\n '18': watch('full_day_limitation'),\n '19': watch('full_day_limitation'),\n '20': watch('full_day_limitation'),\n '21': watch('full_day_limitation'),\n '22': watch('full_day_limitation'),\n '23': watch('full_day_limitation'),\n })\n\n }, [watch('full_day_limitation')])\n\n useEffect(() => {\n if (watch('level') === 'wind_turbine') {\n setValue('full_day_limitation', currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power)\n setValue('data', {\n '0': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '1': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '2': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '3': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '4': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '5': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '6': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '7': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '8': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '9': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '10': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '11': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '12': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '13': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '14': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '15': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '16': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '17': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '18': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '19': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '20': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '21': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '22': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '23': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power\n });\n } else {\n setValue('full_day_limitation', currentCentral?.nominal_power)\n setValue('data', {\n '0': currentCentral?.nominal_power,\n '1': currentCentral?.nominal_power,\n '2': currentCentral?.nominal_power,\n '3': currentCentral?.nominal_power,\n '4': currentCentral?.nominal_power,\n '5': currentCentral?.nominal_power,\n '6': currentCentral?.nominal_power,\n '7': currentCentral?.nominal_power,\n '8': currentCentral?.nominal_power,\n '9': currentCentral?.nominal_power,\n '10': currentCentral?.nominal_power,\n '11': currentCentral?.nominal_power,\n '12': currentCentral?.nominal_power,\n '13': currentCentral?.nominal_power,\n '14': currentCentral?.nominal_power,\n '15': currentCentral?.nominal_power,\n '16': currentCentral?.nominal_power,\n '17': currentCentral?.nominal_power,\n '18': currentCentral?.nominal_power,\n '19': currentCentral?.nominal_power,\n '20': currentCentral?.nominal_power,\n '21': currentCentral?.nominal_power,\n '22': currentCentral?.nominal_power,\n '23': currentCentral?.nominal_power,\n })\n }\n clearErrors('full_day_limitation');\n clearErrors('data');\n }, [watch('level')])\n\n useEffect(() => {\n if(watch('level') === 'wind_turbine' && windTurbineId.length === 0){\n setValue('full_day_limitation', currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power)\n setValue('data', {\n '0': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '1': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '2': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '3': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '4': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '5': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '6': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '7': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '8': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '9': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '10': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '11': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '12': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '13': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '14': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '15': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '16': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '17': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '18': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '19': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '20': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '21': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '22': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '23': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power\n });\n }\n }, [windTurbineId])\n\n useEffect(() => {\n if (watch('frequency') === 'complete_day' && watch('level') === 'powerplant') {\n setValue('full_day_limitation', currentCentral?.nominal_power)\n setValue('data', {\n '0': currentCentral?.nominal_power,\n '1': currentCentral?.nominal_power,\n '2': currentCentral?.nominal_power,\n '3': currentCentral?.nominal_power,\n '4': currentCentral?.nominal_power,\n '5': currentCentral?.nominal_power,\n '6': currentCentral?.nominal_power,\n '7': currentCentral?.nominal_power,\n '8': currentCentral?.nominal_power,\n '9': currentCentral?.nominal_power,\n '10': currentCentral?.nominal_power,\n '11': currentCentral?.nominal_power,\n '12': currentCentral?.nominal_power,\n '13': currentCentral?.nominal_power,\n '14': currentCentral?.nominal_power,\n '15': currentCentral?.nominal_power,\n '16': currentCentral?.nominal_power,\n '17': currentCentral?.nominal_power,\n '18': currentCentral?.nominal_power,\n '19': currentCentral?.nominal_power,\n '20': currentCentral?.nominal_power,\n '21': currentCentral?.nominal_power,\n '22': currentCentral?.nominal_power,\n '23': currentCentral?.nominal_power,\n })\n } else if (watch('frequency') === 'complete_day' && watch('level') === 'wind_turbine') {\n setValue('full_day_limitation', currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power)\n setValue('data', {\n '0': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '1': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '2': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '3': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '4': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '5': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '6': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '7': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '8': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '9': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '10': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '11': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '12': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '13': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '14': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '15': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '16': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '17': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '18': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '19': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '20': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '21': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '22': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '23': currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power\n });\n }\n clearErrors('full_day_limitation');\n clearErrors('data');\n }, [watch('frequency')]);\n\n const getUser = async () => {\n const { username } = await Auth.currentAuthenticatedUser();\n return username;\n }\n\n return (\n <>\n <Pencil onClick={() => setShowModal(true)} limitation={limitation} />\n <Modal size=\"xl\" show={showModal} onHide={() => setShowModal(false)} aria-labelledby=\"example-modal-sizes-title-lg\" fullscreen={true}>\n <Modal.Header closeButton>\n <Modal.Title id=\"example-modal-sizes-title-lg\">\n Modificar limitación\n </Modal.Title>\n </Modal.Header>\n\n <Modal.Body style={{ backgroundColor: '#f5f5f5' }}>\n <Row className='pe-3'>\n <UpdateLimitationChart \n title='Potencia [kW]'\n central={currentCentral}\n nominalPower={currentCentral?.nominal_power}\n limitation={watch('data')}\n level={watch('level')}\n windTurbineId={windTurbineId}\n turbineNominalPower={currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power}\n />\n </Row>\n <Form className='pt-4 pe-4 px-4 pb-2 mt-5 border' onSubmit={handleSubmit(async (data) => {\n const username = await getUser();\n setUpdating(true);\n const response = await fetch('https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations', {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json' // Especifica el tipo de contenido\n },\n body: watch('level') === \"wind_turbine\" ? JSON.stringify({...data, wind_turbine_id: windTurbineId.map(({value})=> (value)), modified_by: username}) : JSON.stringify({...data, modified_by: username}),\n })\n\n if (response.status === 200) {\n await onUpdateLimitation();\n setUpdating(false);\n setShowModal(false);\n }\n\n })}>\n <h5>Configuración</h5>\n <Row className=\"mb-3\">\n <Form.Group as={Col} md=\"3\" controlId=\"validationCustom01\" className='border pt-3 px-3 mt-3'>\n <Form.Label>Limitación por</Form.Label>\n <div className=\"mb-3\">\n <Form.Check inline checked={watch('level') === 'powerplant'} label=\"Parque completo\" name=\"level\" type='radio' value=\"powerplant\" {...register('level')} />\n <Form.Check inline checked={watch('level') === 'wind_turbine'} label=\"Aerogenerador\" name=\"level\" type='radio' value=\"wind_turbine\" {...register('level')} />\n </div>\n </Form.Group>\n </Row>\n\n <Row>\n {\n watch('level') === 'wind_turbine' && (\n <>\n <div>\n <div className='d-flex justify-content-start'>\n <label className=\"form-check-label mx-2\">Seleccionar aerogenerador</label>\n </div>\n <Select\n options={centralTurbines?.map((turbine) => ({\n value: turbine,\n label: `${currentCentral?.wind_turbines[turbine]?.fancy_name} - (${currentCentral?.wind_turbines[turbine]?.nominal_power} kW)`,\n isDisabled: windTurbines.length === 0 ? false : currentCentral?.wind_turbines?.[turbine]?.nominal_power !== currentCentral?.wind_turbines?.[windTurbines?.[0]?.value]?.nominal_power\n })).sort()\n }\n onChange={(event) => {\n const eventLength = event.length;\n const windIdLength = windTurbineId.length;\n \n if(windIdLength === 0 && eventLength === 1){\n setValue('full_day_limitation',currentCentral?.wind_turbines[event?.[0]?.value]?.nominal_power)\n }else if(windIdLength === 1 && eventLength === 0){\n setValue('full_day_limitation',currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power)\n }\n setWindTurbineId(event);\n\n }}\n value={windTurbines}\n closeMenuOnSelect={false}\n isMulti\n />\n </div>\n </>\n )\n }\n </Row>\n\n <Row className=\"mb-3\">\n <Form.Group as={Col} md=\"5\" controlId=\"validationCustom01\" className='border pt-3 px-3'>\n <div className=\"mb-3 d-flex align-items-center\">\n <div>\n <Form.Label>Fecha desde</Form.Label>\n <Form.Control type='datetime-local' {...register('start_date')} />\n </div>\n <div className='mx-3'>\n <Form.Label>Fecha hasta</Form.Label>\n <Form.Control type='datetime-local' disabled={watch('without_date_limit')} {...register('end_date')} />\n </div>\n <div className='mx-3'>\n <Form.Check type={'checkbox'} label={'Sin fecha limite'} className='mt-4' {...register('without_date_limit')} />\n </div>\n </div>\n </Form.Group>\n </Row>\n\n <Row className='px-1 border' >\n <Row>\n <Row>\n <Form.Check type={'radio'} value=\"complete_day\" label={'Día completo'} className='mt-4 mx-3' {...register('frequency')} />\n </Row>\n <Form.Group as={Col} md=\"2\">\n <InputGroup className=\"mb-1\" hasValidation>\n <InputGroup.Text id=\"basic-addon1\">kW</InputGroup.Text>\n <Form.Control\n placeholder=\"Limitación\"\n type='number'\n aria-describedby=\"basic-addon1\"\n disabled={watch('frequency') === 'hourly'}\n className={`${errors.limitation ? 'border-danger' : ''}`}\n {...register('full_day_limitation', {\n required: {\n value: true,\n message: \"Debe ingresar un valor de limitación\"\n },\n min: {\n value: 0,\n message: \"La limitación no debe ser menor a 0\"\n },\n max: {\n value: watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power,\n message: `La limitación no puede ser mayor a ${watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power} kW`\n }\n })}\n />\n </InputGroup>\n </Form.Group>\n {errors.full_day_limitation &&\n <div className='pb-2'>\n <span className='text-danger mx-1'>\n {errors.full_day_limitation.message}\n </span>\n </div>\n }\n </Row>\n <hr style={{ color: '#dee2e6', borderTop: '3px solid #dee2e6' }} />\n <Row>\n <Form.Check type={'radio'} label={'Horaria'} value=\"hourly\" className='mx-3' {...register('frequency')} />\n </Row>\n <Row className='mt-2'>\n {\n [\n \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\",\n \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\", \"21\", \"22\", \"23\"\n ].map((hour, index) => (\n <>\n <Form.Group className='text-center' as={Col} md=\"1\" key={hour}>\n <Form.Label>{parseInt(hour) > 9 ? hour : `0${hour}`}:00</Form.Label>\n <InputGroup className=\"mb-3\">\n {index === 0 && <InputGroup.Text id=\"basic-addon1\" style={{ padding: '4px 6px' }}>kW</InputGroup.Text>}\n {index === 12 && <InputGroup.Text id=\"basic-addon1\" style={{ padding: '4px 6px' }}>kW</InputGroup.Text>}\n <Form.Control\n placeholder=\"Valor\"\n type='number'\n value={watch('frequency') === 'complete_day' ? watch('full_day_limitation') : watch(`data.${hour}`)}\n className='text-center'\n disabled={watch('frequency') === 'complete_day'}\n {...register(`data.${hour}`, {\n required: {\n value: true,\n message: `Debe ingresar un valor de limitación a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00`\n },\n min: {\n value: 0,\n message: `La limitación aplicada a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00 no debe ser menor a 0`\n },\n max: {\n value: watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power,\n message: `La limitación no puede ser mayor a ${watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power} kW`\n }\n })}\n />\n </InputGroup>\n </Form.Group>\n </>\n ))\n }\n\n {(errors.data && watch('frequency') === 'hourly') &&\n <div className='pb-2'>\n <div className='text-danger mx-1 col-3'>\n {\n Object.keys(errors.data).map(hour => (\n <div key={`error-${hour}`}>\n <Alert variant='danger' style={{ width: 'auto' }}>{errors.data[hour].message}</Alert>\n </div>\n ))\n }\n </div>\n </div>\n }\n </Row>\n </Row>\n\n <Row className=' mt-5 border pt-3 pe-3 px-2'>\n <Form.Group as={Col} md=\"2\">\n <Form.Label>Categoría</Form.Label>\n {\n categories.isLoading ? <Spinner /> : (\n <Form.Select aria-label=\"Default select example\" {...register('category')}>\n <optgroup label=\"Limitación interna\">\n {\n categories.data.interns.map(({ id, category, fancy_name }) => (\n <option value={category} key={id}>{fancy_name}</option>\n ))\n }\n </optgroup>\n <optgroup label=\"Limitación externa\">\n {\n categories.data.externs.map(({ id, category, fancy_name }) => (\n <option value={category} key={id}>{fancy_name}</option>\n ))\n }\n </optgroup>\n <option value=\"otra\">Otra</option>\n </Form.Select>\n )\n }\n </Form.Group>\n <Form.Group className=\"mb-3 mt-3\" controlId=\"exampleForm.ControlTextarea1\">\n <Form.Label>Descripción</Form.Label>\n <Form.Control as=\"textarea\" rows={3} {...register('description')} />\n </Form.Group>\n </Row>\n\n <Modal.Footer className='pt-4'>\n <Button className=\"btn btn-secondary\" onClick={e => setShowModal(false)}>\n Cancelar\n </Button>\n <Button className=\"btn btn-register\" type='submit' disabled={updating || (watch('level') === \"wind_turbine\" && windTurbineId?.length === 0)}>\n {updating && (\n <Spinner\n as=\"span\"\n animation=\"border\"\n size=\"sm\"\n role=\"status\"\n aria-hidden=\"true\"\n className='mx-2 me-2'\n />\n )}\n {updating ? 'Actualizando' : 'Actualizar'}\n </Button>\n </Modal.Footer>\n </Form>\n\n\n </Modal.Body>\n\n </Modal>\n </>\n )\n}\n","import React from 'react'\nimport { Line } from 'react-chartjs-2'\nimport 'chartjs-plugin-annotation'\n\nexport const CreateLimitationChart = ({ central, limitation, nominalPower, level, windTurbineId, turbineNominalPower}) => {\n \n\n return (\n <Line\n type='line'\n data={\n {\n datasets: [\n {\n data: Object.values(limitation),\n label: 'Potencia [kW]',\n backgroundColor: '#B3D0EB',\n borderColor: '#B3D0EB',\n pointBorderColor: '#5f92c2',\n pointBackgroundColor: '#5f92c2'\n },\n ],\n labels: [\n '00:00',\n '01:00',\n '02:00',\n '03:00',\n '04:00',\n '05:00',\n '06:00',\n '07:00',\n '08:00',\n '09:00',\n '10:00',\n '11:00',\n '12:00',\n '13:00',\n '14:00',\n '15:00',\n '16:00',\n '17:00',\n '18:00',\n '19:00',\n '20:00',\n '21:00',\n '22:00',\n '23:00',\n ],\n }\n }\n options={\n {\n annotation: {\n annotations: [\n {\n type: 'line',\n mode: 'horizontal',\n scaleID: 'y-axis-0',\n value: (level === \"wind_turbine\" || level === \"inverter\") ? turbineNominalPower : nominalPower,\n borderDashOffset: 5,\n borderColor: '#5C57EB',\n endValue: (level === \"wind_turbine\" || level === \"inverter\") ? turbineNominalPower : nominalPower,\n borderWidth: 3,\n label: {\n // yPadding: '100px',\n backgroundColor: '#5C57EB',\n content: `Potencia nominal [kW]: ${(level === \"wind_turbine\" || level === \"inverter\") ? turbineNominalPower : nominalPower}`,\n enabled: true,\n yAdjust: 12\n },\n }\n ]\n },\n scales: {\n yAxes:\n [{\n scaleLabel: {\n display: true,\n labelString: 'kW',\n }\n }],\n xAxes:\n [{\n scaleLabel: {\n display: true,\n labelString: 'Hora',\n }\n }]\n\n }\n }\n }\n height={70}\n />\n )\n}","import React, { useContext, useEffect, useState } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { Auth } from 'aws-amplify';\nimport Button from 'react-bootstrap/Button';\nimport Modal from 'react-bootstrap/Modal';\nimport Form from 'react-bootstrap/Form';\nimport Col from 'react-bootstrap/Col';\nimport Row from 'react-bootstrap/Row';\nimport InputGroup from 'react-bootstrap/InputGroup';\nimport { Alert, Spinner } from 'react-bootstrap';\nimport moment from 'moment'\nimport { CurrentCentralContext } from 'store';\nimport { LimitationsContext } from 'store/LimitationsContext';\nimport { CreateLimitationChart } from 'components/predictionsView/Limitations/charts/CreateLimitationChart';\nimport Select from 'react-select';\n\n\nexport const CreateLimitation = () => {\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const { limitations, categories, limitationLevel, turbineSelected, centralTurbines, onUpdateLimitation, onChangeTurbineSelected } = useContext(LimitationsContext)\n const [windTurbineId, setWindTurbineId] = useState([])\n const [showModal, setShowModal] = useState(false);\n const [createdBy, setCreatedBy] = useState('');\n const [creating, setCreating] = useState(false);\n const [windTurbines, setWindTurbines] = useState(centralTurbines.map(turbine => (\n {\n value: turbine,\n label: currentCentral?.wind_turbines[turbine]?.fancy_name, \n isDisabled: false\n })).sort())\n const { register, handleSubmit, formState: { errors }, watch, setValue, reset, clearErrors } = useForm();\n\n useEffect(() => {\n getUser().then(response => setCreatedBy(response));\n }, [])\n\n useEffect(()=>{\n if(windTurbineId.length>0){\n setWindTurbines(() => {\n return centralTurbines.map(turbine => (\n {\n value: turbine,\n label: `${currentCentral?.wind_turbines[turbine]?.fancy_name} - (${currentCentral?.wind_turbines[turbine]?.nominal_power} kW)`, \n isDisabled: currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power !== currentCentral?.wind_turbines[turbine]?.nominal_power\n })).sort()\n })\n setValue('full_day_limitation',currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power)\n }else{\n setWindTurbines(() => {\n return centralTurbines.map(turbine => (\n {\n value: turbine,\n label: `${currentCentral?.wind_turbines[turbine]?.fancy_name} - (${currentCentral?.wind_turbines[turbine]?.nominal_power} kW)`, \n isDisabled: false\n })).sort()\n })\n clearErrors('full_day_limitation');\n clearErrors('data'); \n }\n },[windTurbineId])\n\n useEffect(() => {\n if (showModal) {\n reset({\n powerplant_id: currentCentral.id,\n active: true,\n level: 'powerplant',\n frequency: 'complete_day',\n category: 'falla-tecnica',\n without_date_limit: false,\n full_day_limitation: currentCentral?.nominal_power,\n data: {\n '0': currentCentral?.nominal_power,\n '1': currentCentral?.nominal_power,\n '2': currentCentral?.nominal_power,\n '3': currentCentral?.nominal_power,\n '4': currentCentral?.nominal_power,\n '5': currentCentral?.nominal_power,\n '6': currentCentral?.nominal_power,\n '7': currentCentral?.nominal_power,\n '8': currentCentral?.nominal_power,\n '9': currentCentral?.nominal_power,\n '10': currentCentral?.nominal_power,\n '11': currentCentral?.nominal_power,\n '12': currentCentral?.nominal_power,\n '13': currentCentral?.nominal_power,\n '14': currentCentral?.nominal_power,\n '15': currentCentral?.nominal_power,\n '16': currentCentral?.nominal_power,\n '17': currentCentral?.nominal_power,\n '18': currentCentral?.nominal_power,\n '19': currentCentral?.nominal_power,\n '20': currentCentral?.nominal_power,\n '21': currentCentral?.nominal_power,\n '22': currentCentral?.nominal_power,\n '23': currentCentral?.nominal_power,\n },\n start_date: moment().tz(Intl.DateTimeFormat().resolvedOptions().timeZone || 'America/Santiago').format('YYYY-MM-DDTHH:mm'),\n end_date: moment().tz(Intl.DateTimeFormat().resolvedOptions().timeZone || 'America/Santiago').add(1, 'd').format('YYYY-MM-DDTHH:mm'),\n created_by: createdBy,\n deleted: false,\n record_id: limitations.total + 1\n })\n setWindTurbineId([])\n } else {\n setWindTurbineId([])\n reset();\n }\n }, [showModal])\n\n useEffect(() => {\n if (watch('frequency') === 'complete_day') {\n setValue('data', {\n '0': watch('full_day_limitation'),\n '1': watch('full_day_limitation'),\n '2': watch('full_day_limitation'),\n '3': watch('full_day_limitation'),\n '4': watch('full_day_limitation'),\n '5': watch('full_day_limitation'),\n '6': watch('full_day_limitation'),\n '7': watch('full_day_limitation'),\n '8': watch('full_day_limitation'),\n '9': watch('full_day_limitation'),\n '10': watch('full_day_limitation'),\n '11': watch('full_day_limitation'),\n '12': watch('full_day_limitation'),\n '13': watch('full_day_limitation'),\n '14': watch('full_day_limitation'),\n '15': watch('full_day_limitation'),\n '16': watch('full_day_limitation'),\n '17': watch('full_day_limitation'),\n '18': watch('full_day_limitation'),\n '19': watch('full_day_limitation'),\n '20': watch('full_day_limitation'),\n '21': watch('full_day_limitation'),\n '22': watch('full_day_limitation'),\n '23': watch('full_day_limitation'),\n })\n }\n\n clearErrors('data');\n clearErrors('full_day_limitation');\n }, [watch('frequency')]);\n\n useEffect(() => {\n setValue('data', {\n '0': watch('full_day_limitation'),\n '1': watch('full_day_limitation'),\n '2': watch('full_day_limitation'),\n '3': watch('full_day_limitation'),\n '4': watch('full_day_limitation'),\n '5': watch('full_day_limitation'),\n '6': watch('full_day_limitation'),\n '7': watch('full_day_limitation'),\n '8': watch('full_day_limitation'),\n '9': watch('full_day_limitation'),\n '10': watch('full_day_limitation'),\n '11': watch('full_day_limitation'),\n '12': watch('full_day_limitation'),\n '13': watch('full_day_limitation'),\n '14': watch('full_day_limitation'),\n '15': watch('full_day_limitation'),\n '16': watch('full_day_limitation'),\n '17': watch('full_day_limitation'),\n '18': watch('full_day_limitation'),\n '19': watch('full_day_limitation'),\n '20': watch('full_day_limitation'),\n '21': watch('full_day_limitation'),\n '22': watch('full_day_limitation'),\n '23': watch('full_day_limitation')\n });\n\n }, [watch('full_day_limitation')])\n\n useEffect(() => {\n setValue('data', {\n '0': currentCentral?.nominal_power ?? 0,\n '1': currentCentral?.nominal_power ?? 0,\n '2': currentCentral?.nominal_power ?? 0,\n '3': currentCentral?.nominal_power ?? 0,\n '4': currentCentral?.nominal_power ?? 0,\n '5': currentCentral?.nominal_power ?? 0,\n '6': currentCentral?.nominal_power ?? 0,\n '7': currentCentral?.nominal_power ?? 0,\n '8': currentCentral?.nominal_power ?? 0,\n '9': currentCentral?.nominal_power ?? 0,\n '10': currentCentral?.nominal_power ?? 0,\n '11': currentCentral?.nominal_power ?? 0,\n '12': currentCentral?.nominal_power ?? 0,\n '13': currentCentral?.nominal_power ?? 0,\n '14': currentCentral?.nominal_power ?? 0,\n '15': currentCentral?.nominal_power ?? 0,\n '16': currentCentral?.nominal_power ?? 0,\n '17': currentCentral?.nominal_power ?? 0,\n '18': currentCentral?.nominal_power ?? 0,\n '19': currentCentral?.nominal_power ?? 0,\n '20': currentCentral?.nominal_power ?? 0,\n '21': currentCentral?.nominal_power ?? 0,\n '22': currentCentral?.nominal_power ?? 0,\n '23': currentCentral?.nominal_power ?? 0,\n });\n setValue('powerplant_id', currentCentral?.id ?? '');\n }, [currentCentral])\n\n useEffect(() => {\n if (watch('level') === 'powerplant') setValue('full_day_limitation', currentCentral?.nominal_power)\n if (watch('level') === 'wind_turbine'){\n setValue('full_day_limitation', currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power);\n }\n }, [watch('level')])\n\n // useEffect(() => {\n // setValue('full_day_limitation', currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power)\n // }, [watch('wind_turbine_id')])\n\n useEffect(() => {\n if (watch('level') === 'wind_turbine') {\n setValue('full_day_limitation', currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power)\n setValue('data', {\n '0': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '1': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '2': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '3': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '4': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '5': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '6': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '7': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '8': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '9': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '10': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '11': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '12': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '13': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '14': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '15': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '16': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '17': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '18': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '19': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '20': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '21': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '22': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power,\n '23': currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power\n });\n clearErrors('full_day_limitation');\n clearErrors('data');\n }else{\n setWindTurbineId([])\n clearErrors('full_day_limitation');\n clearErrors('data');\n }\n }, [watch('level')])\n\n useEffect(() => {\n setValue('level', limitationLevel)\n }, [limitationLevel])\n\n const getUser = async () => {\n const { username } = await Auth.currentAuthenticatedUser();\n return username;\n }\n\n return (\n <div>\n <Button className='btn-register' onClick={() => setShowModal(true)}>Registrar limitación</Button>\n <Modal size=\"xl\" show={showModal} onHide={() => setShowModal(false)} aria-labelledby=\"example-modal-sizes-title-lg\" fullscreen={true}>\n <Modal.Header closeButton>\n <Modal.Title id=\"example-modal-sizes-title-lg\">\n Crear limitación\n </Modal.Title>\n </Modal.Header>\n\n <Modal.Body style={{ backgroundColor: '#f5f5f5' }}>\n <Row className='pe-3'>\n <CreateLimitationChart \n title='Potencia [kW]'\n central={currentCentral}\n nominalPower={currentCentral?.nominal_power}\n turbineNominalPower={currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power}\n limitation={watch('data')}\n level={watch('level')}\n windTurbineId={windTurbineId}\n />\n </Row>\n\n <Form className='pt-4 pe-4 px-4 pb-2 mt-5 border' onSubmit={handleSubmit(async (data) => {\n const f = watch('level') === \"wind_turbine\" ? JSON.stringify(data) : JSON.stringify({data: {...data, wind_turbine_id: windTurbineId}}) \n setCreating(true);\n const response = await fetch('https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json' // Especifica el tipo de contenido\n },\n body: watch('level') === \"wind_turbine\" ? JSON.stringify({...data, wind_turbine_id: windTurbineId.map(({value})=> (value)) }) : JSON.stringify(data)\n })\n\n if (response.status === 200) {\n await onUpdateLimitation();\n setCreating(false);\n setShowModal(false);\n }\n })}>\n <h5>Configuración</h5>\n <Row className=\"mb-3\">\n <Form.Group as={Col} md=\"3\" controlId=\"validationCustom01\" className='border pt-3 px-3 mt-3'>\n <Form.Label>Limitación por</Form.Label>\n <div className=\"mb-3\">\n <Form.Check inline checked={watch('level') === 'powerplant'} label=\"Parque completo\" name=\"level\" type='radio' value=\"powerplant\" {...register('level')} />\n <Form.Check inline checked={watch('level') === 'wind_turbine'} label=\"Aerogenerador\" name=\"level\" type='radio' value=\"wind_turbine\" {...register('level')} />\n </div>\n </Form.Group>\n </Row>\n\n <Row>\n {\n watch('level') === 'wind_turbine' && (\n <>\n <div>\n <div className='d-flex justify-content-start'>\n <label className=\"form-check-label mx-2\">Seleccionar Aerogeneradores</label>\n </div>\n <Select\n options={windTurbines}\n placeholder=\"Aerogeneradores\"\n isMulti\n closeMenuOnSelect={false}\n onChange={(e) => {\n setWindTurbineId(e)\n }}\n />\n </div>\n </>\n )\n }\n </Row>\n\n <Row className=\"mb-3\">\n <Form.Group as={Col} md=\"5\" controlId=\"validationCustom01\" className='border pt-3 px-3'>\n <div className=\"mb-3 d-flex align-items-center\">\n <div>\n <Form.Label>Fecha desde</Form.Label>\n <Form.Control type='datetime-local' {...register('start_date')} />\n </div>\n <div className='mx-3'>\n <Form.Label>Fecha hasta</Form.Label>\n <Form.Control type='datetime-local' disabled={watch('without_date_limit')} {...register('end_date')} />\n </div>\n <div className='mx-3'>\n <Form.Check type={'checkbox'} label={'Sin fecha limite'} className='mt-4' {...register('without_date_limit')} />\n </div>\n </div>\n </Form.Group>\n </Row>\n\n <Row className='px-1 border' >\n <Row>\n <Row>\n <Form.Check type={'radio'} value=\"complete_day\" label={'Día completo'} className='mt-4 mx-3' {...register('frequency')} />\n </Row>\n <Form.Group as={Col} md=\"2\">\n <InputGroup className=\"mb-1\" hasValidation>\n <InputGroup.Text id=\"basic-addon1\">kW</InputGroup.Text>\n <Form.Control\n placeholder=\"Limitación\"\n disabled={watch('frequency') === 'hourly'}\n type='number'\n aria-describedby=\"basic-addon1\"\n value={watch('full_day_limitation')}\n className={`${errors.full_day_limitation ? 'border-danger' : ''}`}\n {...register('full_day_limitation', {\n required: {\n value: true,\n message: \"Debe ingresar un valor de limitación\"\n },\n min: {\n value: 0,\n message: \"La limitación no debe ser menor a 0\"\n },\n max: {\n value: watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power,\n message: `La limitación no puede ser mayor a ${watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power} kW`\n }\n })}\n />\n </InputGroup>\n </Form.Group>\n {errors.full_day_limitation &&\n <div className='pb-2'>\n <span className='text-danger mx-1'>\n {errors.full_day_limitation.message}\n </span>\n </div>\n }\n </Row>\n <hr style={{ color: '#dee2e6', borderTop: '3px solid #dee2e6' }} />\n <Row>\n <Form.Check type={'radio'} label={'Horaria'} value=\"hourly\" className='mx-3' {...register('frequency')} />\n </Row>\n <Row className='mt-2'>\n {\n [\n \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\",\n \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\", \"21\", \"22\", \"23\"\n ].map((hour, index) => (\n <>\n <Form.Group className='text-center' as={Col} md=\"1\" key={hour}>\n <Form.Label>{parseInt(hour) > 9 ? hour : `0${hour}`}:00</Form.Label>\n <InputGroup className=\"mb-3\">\n {index === 0 && <InputGroup.Text id=\"basic-addon1\" style={{ padding: '4px 6px' }}>kW</InputGroup.Text>}\n {index === 12 && <InputGroup.Text id=\"basic-addon1\" style={{ padding: '4px 6px' }}>kW</InputGroup.Text>}\n <Form.Control\n placeholder=\"Valor\"\n type='number'\n value={watch('frequency') === 'complete_day' ? watch('full_day_limitation') : watch(`data.${hour}`)}\n className='text-center'\n disabled={watch('frequency') === 'complete_day'}\n {...register(`data.${hour}`, {\n required: {\n value: true,\n message: `Debe ingresar un valor de limitación a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00`\n },\n min: {\n value: 0,\n message: `La limitación aplicada a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00 no debe ser menor a 0`\n },\n max: {\n value: watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power,\n message: `La limitación no puede ser mayor a ${watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.wind_turbines[windTurbineId?.[0]?.value]?.nominal_power} kW`\n }\n })}\n />\n </InputGroup>\n </Form.Group>\n </>\n ))\n }\n {(errors.data && watch('frequency') === 'hourly') &&\n <div className='pb-2'>\n <div className='text-danger mx-1'>\n {\n Object.keys(errors.data).map(hour => (\n <div>\n <Alert variant='danger' style={{ width: 'auto' }}>{errors.data[hour].message}</Alert>\n </div>\n ))\n }\n </div>\n </div>\n }\n </Row>\n </Row>\n\n <Row className=' mt-5 border pt-3 pe-3 px-2'>\n <Form.Group as={Col} md=\"2\">\n <Form.Label>Categoría</Form.Label>\n {\n categories.isLoading ? <Spinner /> : (\n <Form.Select aria-label=\"Default select example\" {...register('category')}>\n <optgroup label=\"Limitación interna\">\n {\n categories.data.interns.map(({ id, category, fancy_name }) => (\n <option value={category} key={id}>{fancy_name}</option>\n ))\n }\n </optgroup>\n <optgroup label=\"Limitación externa\">\n {\n categories.data.externs.map(({ id, category, fancy_name }) => (\n <option value={category} key={id}>{fancy_name}</option>\n ))\n }\n </optgroup>\n <option value=\"otra\">Otra</option>\n </Form.Select>\n )\n }\n </Form.Group>\n <Form.Group className=\"mb-3 mt-3\" controlId=\"exampleForm.ControlTextarea1\">\n <Form.Label>Descripción</Form.Label>\n <Form.Control as=\"textarea\" rows={3} {...register('description')} />\n </Form.Group>\n </Row>\n\n <Modal.Footer className='pt-4'>\n <Button className=\"btn btn-secondary\" onClick={e => setShowModal(false)}>\n Cancelar\n </Button>\n <Button className=\"btn btn-register\" type='submit' disabled={creating || (watch('level') === \"wind_turbine\" && windTurbineId.length === 0)}>\n {creating && (\n <Spinner\n as=\"span\"\n animation=\"border\"\n size=\"sm\"\n role=\"status\"\n aria-hidden=\"true\"\n className='mx-2 me-2'\n />\n )}\n {creating === false ? 'Registrar' : 'Registrando'}\n </Button>\n </Modal.Footer>\n </Form>\n </Modal.Body>\n </Modal>\n </div>\n )\n}\n","import React, { useContext, useState } from 'react';\nimport Button from 'react-bootstrap/Button';\nimport Modal from 'react-bootstrap/Modal';\nimport { Trash } from 'components/predictionsView/Limitations/icons';\nimport { Spinner } from 'react-bootstrap';\nimport { LimitationsContext } from 'store/LimitationsContext';\nimport { Auth } from 'aws-amplify';\n\nexport const DeleteLimitations = ({ limitation }) => {\n const { onUpdateLimitation } = useContext(LimitationsContext);\n const [showDelete, setShowDelete] = useState(false);\n const handleCloseDelete = () => setShowDelete(false);\n const handleShowDelete = () => setShowDelete(true);\n\n const [showConfirm, setShowConfirm] = useState(false);\n const handleCloseConfirm = () => setShowConfirm(false);\n const handleShowConfirm = () => setShowConfirm(true);\n\n const [loadingEdit, setLoadingEdit] = useState(false);\n const [loadingDelete, setLoadingDelete] = useState(false);\n\n const getUser = async () => {\n const { username } = await Auth.currentAuthenticatedUser();\n return username;\n }\n\n return (\n <>\n <Trash\n limitation={limitation}\n handleShowDelete={handleShowDelete}\n handleShowConfirm={handleShowConfirm}\n />\n\n\n <Modal show={showDelete} onHide={handleCloseDelete}>\n <Modal.Header closeButton>\n <Modal.Title>Eliminar/{limitation.active ? 'desactivar' : 'activar'} limitación</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n Elija si desea {limitation.active ? 'desactivar' : 'activar'} o eliminar la limitación {limitation.record_id}\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"secondary\" disabled={loadingEdit} onClick={handleCloseDelete}>\n Cerrar\n </Button>\n {\n limitation.active === true && (\n <Button className=\"btn-register\" disabled={loadingEdit || loadingDelete} onClick={async (e) => {\n setLoadingEdit(true);\n const username = await getUser();\n const response = await fetch('https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations/active', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json' // Especifica el tipo de contenido\n },\n body: JSON.stringify({ ...limitation, modified_by: username })\n })\n\n if (response.status === 200) {\n setLoadingEdit(false);\n await onUpdateLimitation();\n handleCloseDelete();\n }\n }}>\n {loadingEdit && (\n <Spinner\n as=\"span\"\n animation=\"border\"\n size=\"sm\"\n role=\"status\"\n aria-hidden=\"true\"\n className='mx-2 me-2'\n />\n )}\n {limitation.active === true && loadingEdit === false && 'Desactivar'}\n {limitation.active === true && loadingEdit === true && 'Desactivando'}\n </Button>\n )\n }\n <Button variant=\"danger\" disabled={loadingEdit} onClick={(e) => {\n handleCloseDelete();\n handleShowConfirm();\n }}>\n Eliminar\n </Button>\n </Modal.Footer>\n </Modal>\n\n\n <Modal show={showConfirm} onHide={handleCloseConfirm}>\n <Modal.Header closeButton>\n <Modal.Title>Eliminar limitación</Modal.Title>\n </Modal.Header>\n <Modal.Body>¿Está seguro/a que desea eliminar la limitación {limitation.record_id}?</Modal.Body>\n <Modal.Footer>\n <Button variant=\"secondary\" disabled={loadingDelete} onClick={handleCloseConfirm}>\n Cancelar\n </Button>\n <Button variant=\"danger\" disabled={loadingDelete} onClick={async (e) => {\n setLoadingDelete(true);\n const username = await getUser();\n const response = await fetch('https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations/delete', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json' // Especifica el tipo de contenido\n },\n body: JSON.stringify({ ...limitation, deleted_by: username })\n })\n\n if (response.status === 200) {\n setLoadingDelete(false);\n await onUpdateLimitation();\n handleCloseConfirm();\n }\n }}>\n {loadingDelete && (\n <Spinner\n as=\"span\"\n animation=\"border\"\n size=\"sm\"\n role=\"status\"\n aria-hidden=\"true\"\n className='mx-2 me-2'\n />\n )}\n {loadingDelete ? 'Eliminando' : 'Eliminar'}\n </Button>\n </Modal.Footer>\n </Modal>\n </>\n );\n}","import React, { useContext, useEffect, useState } from 'react'\nimport Button from 'react-bootstrap/Button';\nimport Modal from 'react-bootstrap/Modal';\nimport Form from 'react-bootstrap/Form';\nimport Col from 'react-bootstrap/Col';\nimport Row from 'react-bootstrap/Row';\nimport InputGroup from 'react-bootstrap/InputGroup';\nimport { Alert, Spinner } from 'react-bootstrap';\nimport { Eye } from 'components/predictionsView/Limitations/icons';\nimport { CurrentCentralContext } from 'store';\nimport { useForm } from 'react-hook-form';\nimport { LimitationsContext } from 'store/LimitationsContext';\nimport { UpdateLimitationChart } from 'components/predictionsView/Limitations/charts/UpdateLimitationChart';\nimport Select from 'react-select';\n\nexport const ViewLimitation = ({ limitation }) => {\n const [showModal, setShowModal] = useState(false);\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const [windTurbineId, setWindTurbineId] = useState([])\n const { categories, centralTurbines } = useContext(LimitationsContext)\n const { register, handleSubmit, formState: { errors }, watch, setValue, reset, clearErrors } = useForm();\n\n useEffect(() => {\n if ('nominal_power' in currentCentral && limitation) {\n setWindTurbineId(limitation?.wind_turbine_id)\n reset({\n ...limitation,\n without_date_limit: limitation?.end_date === null ? true : false,\n full_day_limitation: limitation?.frequency === 'complete_day' ? limitation?.data[0] : limitation?.level === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.wind_turbines[limitation?.wind_turbine_id]?.nominal_power,\n })\n } else {\n reset();\n }\n }, [showModal, currentCentral])\n\n return (\n <>\n <Eye onClick={() => setShowModal(true)} />\n <Modal size=\"xl\" show={showModal} onHide={() => setShowModal(false)} aria-labelledby=\"example-modal-sizes-title-lg\" fullscreen={true}>\n <Modal.Header closeButton>\n <Modal.Title id=\"example-modal-sizes-title-lg\">\n Modificar limitación\n </Modal.Title>\n </Modal.Header>\n\n <Modal.Body style={{ backgroundColor: '#f5f5f5' }}>\n <Row className='pe-3'>\n <UpdateLimitationChart \n title='Potencia [kW]'\n central={currentCentral}\n nominalPower={currentCentral?.nominal_power}\n limitation={watch('data')}\n level={watch('level')}\n windTurbineId={windTurbineId}\n turbineNominalPower={currentCentral?.wind_turbines[limitation?.wind_turbine_id?.[0]]?.nominal_power ?? currentCentral?.wind_turbines[Object.keys(currentCentral?.wind_turbines)[0]]?.nominal_power}\n />\n </Row>\n <Form className='pt-4 pe-4 px-4 pb-2 mt-5 border'>\n <h5>Configuración</h5>\n <Row className=\"mb-3\">\n <Form.Group as={Col} md=\"3\" controlId=\"validationCustom01\" className='border pt-3 px-3 mt-3'>\n <Form.Label>Limitación por</Form.Label>\n <div className=\"mb-3\">\n <Form.Check disabled inline checked={watch('level') === 'powerplant'} label=\"Parque completo\" name=\"level\" type='radio' value=\"powerplant\" {...register('level')} />\n <Form.Check disabled inline checked={watch('level') === 'wind_turbine'} label=\"Aerogenerador\" name=\"level\" type='radio' value=\"wind_turbine\" {...register('level')} />\n </div>\n </Form.Group>\n </Row>\n\n <Row>\n {\n watch('level') === 'wind_turbine' && (\n <>\n <div>\n <div className='d-flex justify-content-start'>\n <label className=\"form-check-label mx-2\">Seleccionar aerogenerador</label>\n </div>\n <Select\n options={centralTurbines.map(turbine => ({value: turbine,label: `${currentCentral?.wind_turbines[turbine]?.fancy_name} - (${currentCentral?.wind_turbines[turbine]?.nominal_power} kW)` })).sort()}\n defaultValue={limitation?.wind_turbine_id.map(turbine => ({value: turbine,label: `${currentCentral?.wind_turbines[turbine]?.fancy_name} - (${currentCentral?.wind_turbines[turbine]?.nominal_power} kW)` })).sort()}\n isMulti\n isDisabled\n />\n </div>\n </>\n )\n }\n </Row>\n\n <Row className=\"mb-3\">\n <Form.Group as={Col} md=\"5\" controlId=\"validationCustom01\" className='border pt-3 px-3'>\n <div className=\"mb-3 d-flex align-items-center\">\n <div>\n <Form.Label>Fecha desde</Form.Label>\n <Form.Control disabled type='datetime-local' {...register('start_date')} />\n </div>\n <div className='mx-3'>\n <Form.Label>Fecha hasta</Form.Label>\n <Form.Control disabled type='datetime-local' {...register('end_date')} />\n </div>\n <div className='mx-3'>\n <Form.Check disabled type={'checkbox'} label={'Sin fecha limite'} className='mt-4' {...register('without_date_limit')} />\n </div>\n </div>\n </Form.Group>\n </Row>\n\n <Row className='px-1 border' >\n <Row>\n <Row>\n <Form.Check type={'radio'} disabled value=\"complete_day\" label={'Día completo'} className='mt-4 mx-3' {...register('frequency')} />\n </Row>\n <Form.Group as={Col} md=\"2\">\n <InputGroup className=\"mb-1\" hasValidation>\n <InputGroup.Text id=\"basic-addon1\">kW</InputGroup.Text>\n <Form.Control\n disabled\n placeholder=\"Limitación\"\n type='number'\n aria-describedby=\"basic-addon1\"\n className={`${errors.limitation ? 'border-danger' : ''}`}\n {...register('full_day_limitation', {\n required: {\n value: true,\n message: \"Debe ingresar un valor de limitación\"\n },\n min: {\n value: 0,\n message: \"La limitación no debe ser menor a 0\"\n },\n max: {\n value: watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.wind_turbines[watch('wind_turbine_id')]?.nominal_power,\n message: `La limitación no puede ser mayor a ${watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.wind_turbines[watch('wind_turbine_id')]?.nominal_power} kW`\n }\n })}\n />\n </InputGroup>\n </Form.Group>\n {errors.full_day_limitation &&\n <div className='pb-2'>\n <span className='text-danger mx-1'>\n {errors.full_day_limitation.message}\n </span>\n </div>\n }\n </Row>\n <hr style={{ color: '#dee2e6', borderTop: '3px solid #dee2e6' }} />\n <Row>\n <Form.Check disabled type={'radio'} label={'Horaria'} value=\"hourly\" className='mx-3' {...register('frequency')} />\n </Row>\n <Row className='mt-2'>\n {\n [\n \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\",\n \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\", \"21\", \"22\", \"23\"\n ].map((hour, index) => (\n <>\n <Form.Group className='text-center' as={Col} md=\"1\" key={hour}>\n <Form.Label>{parseInt(hour) > 9 ? hour : `0${hour}`}:00</Form.Label>\n <InputGroup className=\"mb-3\">\n {index === 0 && <InputGroup.Text id=\"basic-addon1\" style={{ padding: '4px 6px' }}>kW</InputGroup.Text>}\n {index === 12 && <InputGroup.Text id=\"basic-addon1\" style={{ padding: '4px 6px' }}>kW</InputGroup.Text>}\n <Form.Control\n placeholder=\"Valor\"\n type='number'\n value={watch('frequency') === 'complete_day' ? watch('full_day_limitation') : watch(`data.${hour}`)}\n className='text-center'\n disabled\n {...register(`data.${hour}`, {\n required: {\n value: true,\n message: `Debe ingresar un valor de limitación a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00`\n },\n min: {\n value: 0,\n message: `La limitación aplicada a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00 no debe ser menor a 0`\n },\n max: {\n value: watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.wind_turbines[watch('wind_turbine_id')]?.nominal_power,\n message: `La limitación aplicada a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00 no puede ser mayor a ${watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.wind_turbines[watch('wind_turbine_id')]?.nominal_power} kW`\n }\n })}\n />\n </InputGroup>\n </Form.Group>\n </>\n ))\n }\n\n {(errors.data && watch('frequency') === 'hourly') &&\n <div className='pb-2'>\n <div className='text-danger mx-1 col-3'>\n {\n Object.keys(errors.data).map(hour => (\n <div key={`error-${hour}`}>\n <Alert variant='danger' style={{ width: 'auto' }}>{errors.data[hour].message}</Alert>\n </div>\n ))\n }\n </div>\n </div>\n }\n </Row>\n </Row>\n\n <Row className=' mt-5 border pt-3 pe-3 px-2'>\n <Form.Group as={Col} md=\"2\">\n <Form.Label>Categoría</Form.Label>\n {\n categories.isLoading ? <Spinner /> : (\n <Form.Select disabled aria-label=\"Default select example\" {...register('category')}>\n <optgroup label=\"Limitación interna\">\n {\n categories.data.interns.map(({ id, category, fancy_name }) => (\n <option value={category} key={id}>{fancy_name}</option>\n ))\n }\n </optgroup>\n <optgroup label=\"Limitación externa\">\n {\n categories.data.externs.map(({ id, category, fancy_name }) => (\n <option value={category} key={id}>{fancy_name}</option>\n ))\n }\n </optgroup>\n <option value=\"otra\">Otra</option>\n </Form.Select>\n )\n }\n </Form.Group>\n <Form.Group className=\"mb-3 mt-3\" controlId=\"exampleForm.ControlTextarea1\">\n <Form.Label>Descripción</Form.Label>\n <Form.Control disabled as=\"textarea\" rows={3} {...register('description')} />\n </Form.Group>\n </Row>\n\n <Modal.Footer className='pt-4'>\n <Button className=\"btn btn-secondary\" onClick={e => setShowModal(false)}>\n Cerrar\n </Button>\n\n </Modal.Footer>\n </Form>\n\n\n </Modal.Body>\n\n </Modal>\n </>\n )\n}\n","import React, { useContext, useEffect, useState } from 'react'\nimport moment from 'moment';\nimport { Button, Spinner } from 'react-bootstrap';\nimport { LimitationsContext } from 'store/LimitationsContext';\nimport { usePagination } from 'hooks/usePagination';\nimport { CurrentCentralContext } from 'store';\nimport { UpdateLimitation } from '../modals/UpdateLimitation';\nimport { CreateLimitation } from '../modals/CreateLimitation';\nimport { DeleteLimitations } from '../modals/DeleteLimitations';\nimport { ViewLimitation } from '../modals/ViewLimitation';\n\n\nexport const ActivatedTable = ({ tableSelected }) => {\n const { limitations, centralTurbines, limitationLevel, loadingLimitations, turbineSelected } = useContext(LimitationsContext);\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const [activatedLimitations, setActivatedLimitations] = useState(limitations.data)\n const { setFirstPage, setLastPage, currentPage, numbers, records, nPage, prevPage, nextPage, setPage } = usePagination(5, activatedLimitations.filter(({ active, deleted }) => (active === true && deleted === false)));\n\n useEffect(() => {\n const newActivatedLimitations = limitations.data.filter(({ wind_turbine_id, level }) => {\n if (limitationLevel === 'powerplant') return level === 'powerplant'\n if (limitationLevel === 'wind_turbine' && turbineSelected === 'all') return (wind_turbine_id !== undefined)\n if (limitationLevel === 'wind_turbine' && turbineSelected !== 'all') return (wind_turbine_id?.includes(turbineSelected ))\n })\n setActivatedLimitations(newActivatedLimitations);\n }, [limitations, limitationLevel, turbineSelected])\n\n useEffect(() => {\n if (numbers >= 1) {\n setPage(1)\n }\n }, [tableSelected]);\n\n useEffect(() => {\n setPage(1);\n }, [limitations])\n\n return (\n <>\n <div className=\"tab-pane fade show active\" id=\"nav-home\" role=\"tabpanel\" aria-labelledby=\"nav-home-tab\" tabIndex=\"0\">\n {\n loadingLimitations\n ? (\n <div className='d-flex flex-column justify-content-center align-items-center mt-4 mb-4'>\n <Spinner className='mb-2' />\n <p>Cargando limitaciones</p>\n </div>\n )\n : (\n <table className='table mb-3 table-striped border'>\n <thead>\n <tr>\n <th>ID</th>\n <th>Categoría</th>\n {limitationLevel === 'wind_turbine' && (\n <th>Aerogenerador</th>\n )}\n <th>Fecha desde</th>\n <th>Fecha hasta</th>\n <th>Acciones</th>\n </tr>\n </thead>\n <tbody className='w-100'>\n {records.map((limitation) => (\n <tr key={`limitation-n${limitation.record_id}`}>\n <td>{limitation.record_id}</td>\n <td>{limitation.category}</td>\n {\n limitationLevel === 'wind_turbine' && (\n <td>\n {\n limitation?.wind_turbine_id?.length <= 1\n ? currentCentral?.wind_turbines?.[limitation?.wind_turbine_id?.[0]]?.fancy_name \n : `${currentCentral?.wind_turbines?.[limitation?.wind_turbine_id?.[0]]?.fancy_name} (+${limitation?.wind_turbine_id?.length-1})`\n }\n </td>\n )\n }\n <td>{moment(limitation.start_date).format('YYYY-MM-DD HH:mm')}</td>\n <td>{limitation.end_date === null ? 'Sin fecha límite' : moment(limitation.end_date).format('YYYY-MM-DD HH:mm')}</td>\n <td>\n <ViewLimitation limitation={limitation} />\n <UpdateLimitation limitation={limitation} />\n <DeleteLimitations limitation={limitation} />\n </td>\n </tr>\n ))}\n\n </tbody>\n </table>\n )\n }\n\n <div className='d-flex justify-content-between align-items-center pb-3 pt-1'>\n <CreateLimitation />\n <ul className=\"pagination m-0 mx-1 btn-group btn-group-toggle\">\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register me-1`} disabled={currentPage === 1 ? 'disabled' : ''} onClick={setFirstPage}>{'<<'}</button>\n </li>\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register me-1`} disabled={currentPage === 1 ? 'disabled' : ''} onClick={prevPage}>{'<'}</button>\n </li>\n {\n numbers.map((number, i) => (\n <li className={`page-item ${currentPage === number ? 'active' : ''}`} key={`page-${i}`}>\n <button className={`btn btn-secondary mx-1`} disabled={currentPage === number} onClick={(e) => setPage(number)}>{number}</button>\n </li>\n ))\n }\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register mx-1`} disabled={(currentPage === nPage || numbers.length === 0) ? 'disabled' : ''} onClick={nextPage}>{'>'}</button>\n <button style={{color: 'white'}} className={`btn btn-register mx-1`} disabled={(currentPage === nPage || numbers.length === 0) ? 'disabled' : ''} onClick={setLastPage}>{'>>'}</button>\n </li>\n </ul>\n </div>\n </div>\n </>\n )\n}\n","import React, { useContext, useState } from 'react'\nimport { LimitationsContext } from 'store/LimitationsContext';\nimport { Button, Modal, Spinner } from 'react-bootstrap';\nimport { Power } from 'components/predictionsView/Limitations/icons';\nimport { Auth } from 'aws-amplify';\n\nexport const ActivateLimitation = ({ limitation }) => {\n const { onUpdateLimitation } = useContext(LimitationsContext)\n const [show, setShow] = useState(false);\n const [activating, setActivating] = useState(false);\n\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n\n const getUser = async () => {\n const { username } = await Auth.currentAuthenticatedUser();\n return username;\n }\n\n return (\n <>\n <Power handleShow={handleShow} />\n <Modal show={show} onHide={handleClose}>\n <Modal.Header closeButton>\n <Modal.Title>Activar limitación</Modal.Title>\n </Modal.Header>\n <Modal.Body>¿Está seguro/a que desea activar la limitación {limitation.record_id}?</Modal.Body>\n <Modal.Footer>\n <Button variant=\"secondary\" onClick={handleClose} disabled={activating}>\n Cancelar\n </Button>\n <Button className='btn-register' disabled={activating} onClick={async (e) => {\n setActivating(true);\n let username = await getUser();\n const response = await fetch('https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations/active', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json' // Especifica el tipo de contenido\n },\n body: JSON.stringify({ ...limitation, modified_by: username })\n })\n\n if (response.status === 200) {\n setActivating(false);\n await onUpdateLimitation();\n setShow();\n }\n }}>\n {activating && (\n <Spinner\n as=\"span\"\n animation=\"border\"\n size=\"sm\"\n role=\"status\"\n aria-hidden=\"true\"\n className='mx-2 me-2'\n />\n )}\n {activating ? 'Activando' : 'Activar'}\n </Button>\n </Modal.Footer>\n </Modal>\n </>\n )\n}\n","import React, { useContext, useEffect, useMemo, useState } from 'react'\nimport moment from 'moment';\nimport { Spinner } from 'react-bootstrap';\nimport { LimitationsContext } from 'store/LimitationsContext';\nimport { usePagination } from 'hooks/usePagination';\n\nimport { CurrentCentralContext } from 'store';\nimport { DeleteLimitations } from '../modals/DeleteLimitations';\nimport { UpdateLimitation } from '../modals/UpdateLimitation';\nimport { CreateLimitation } from '../modals/CreateLimitation';\nimport { ActivateLimitation } from '../modals/ActivateLimitation';\n\n\nexport const DesactivatedTable = ({ tableSelected }) => {\n const { limitations, centralTurbines, limitationLevel, loadingLimitations, turbineSelected } = useContext(LimitationsContext);\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const [desactivatedLimitations, setDesactivatedLimitations] = useState(limitations.data)\n const { setFirstPage, setLastPage, currentPage, numbers, records, nPage, prevPage, nextPage, setPage } = usePagination(5, desactivatedLimitations.filter(({ active, deleted }) => (active === false && deleted === false)))\n\n useEffect(() => {\n const newDesactivatedLimitations = limitations.data.filter(({ wind_turbine_id, level }) => {\n if (limitationLevel === 'powerplant') return level === 'powerplant'\n if (limitationLevel === 'wind_turbine' && turbineSelected === 'all') return (wind_turbine_id !== undefined)\n if (limitationLevel === 'wind_turbine' && turbineSelected !== 'all') return (wind_turbine_id?.includes(turbineSelected ))\n })\n setDesactivatedLimitations(newDesactivatedLimitations);\n }, [limitations, limitationLevel, turbineSelected])\n\n useEffect(() => {\n if (numbers >= 1) {\n setPage(1)\n }\n }, [tableSelected]);\n\n useEffect(() => {\n setPage(1);\n }, [limitations])\n\n return (\n <>\n <div className=\"tab-pane fade show active\" id=\"nav-home\" role=\"tabpanel\" aria-labelledby=\"nav-home-tab\" tabIndex=\"0\">\n {\n loadingLimitations\n ? (\n <div className='d-flex flex-column justify-content-center align-items-center mt-4 mb-4'>\n <Spinner className='mb-2' />\n <p>Cargando limitaciones</p>\n </div>\n )\n : (\n <table className='table mb-3 table-striped border'>\n <thead>\n <tr>\n <th>ID</th>\n <th>Categoría</th>\n {limitationLevel === 'wind_turbine' && (\n <th>Aerogenerador</th>\n )}\n <th>Fecha desde</th>\n <th>Fecha hasta</th>\n <th>Acciones</th>\n </tr>\n </thead>\n <tbody className='w-100'>\n {records.map((limitation) => (\n <tr>\n <td>{limitation.record_id}</td>\n <td>{limitation.category}</td>\n {\n limitationLevel === 'wind_turbine' && (\n <td>\n {\n limitation?.wind_turbine_id?.length <= 1\n ? currentCentral?.wind_turbines?.[limitation?.wind_turbine_id?.[0]]?.fancy_name \n : `${currentCentral?.wind_turbines?.[limitation?.wind_turbine_id?.[0]]?.fancy_name} (+${limitation?.wind_turbine_id?.length-1})`\n }\n </td>\n )\n }\n <td>{moment(limitation.start_date).format('YYYY-MM-DD HH:mm')}</td>\n <td>{limitation.end_date === null ? 'Sin fecha límite' : moment(limitation.end_date).format('YYYY-MM-DD HH:mm')}</td>\n <td>\n <ActivateLimitation limitation={limitation} />\n <UpdateLimitation limitation={limitation} />\n <DeleteLimitations limitation={limitation} />\n </td>\n </tr>\n ))}\n\n </tbody>\n </table>\n )\n }\n <div className='d-flex justify-content-between align-items-center pb-3 pt-1'>\n <CreateLimitation />\n <ul className=\"pagination m-0 mx-1 btn-group btn-group-toggle\">\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register me-1`} disabled={currentPage === 1 ? 'disabled' : ''} onClick={setFirstPage}>{'<<'}</button>\n </li>\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register me-1`} disabled={currentPage === 1 ? 'disabled' : ''} onClick={prevPage}>{'<'}</button>\n </li>\n {\n numbers.map((number, i) => (\n <li className={`page-item ${currentPage === number ? 'active' : ''}`} key={`page-${i}`}>\n <button className={`btn btn-secondary mx-1`} disabled={currentPage === number} onClick={(e) => setPage(number)}>{number}</button>\n </li>\n ))\n }\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register mx-1`} disabled={(currentPage === nPage || numbers.length === 0) ? 'disabled' : ''} onClick={nextPage}>{'>'}</button>\n <button style={{color: 'white'}} className={`btn btn-register mx-1`} disabled={(currentPage === nPage || numbers.length === 0) ? 'disabled' : ''} onClick={setLastPage}>{'>>'}</button>\n </li>\n </ul>\n </div>\n </div >\n </>\n )\n}\n","import { usePagination } from 'hooks/usePagination';\nimport React, { useContext, useEffect } from 'react'\nimport { Spinner } from 'react-bootstrap';\nimport { LimitationsContext } from 'store/LimitationsContext'\nimport { CreateLimitation } from '../modals/CreateLimitation';\n\nexport const LogsTable = ({ tableSelected }) => {\n const { logs } = useContext(LimitationsContext);\n const { setFirstPage, setLastPage, currentPage, numbers, records, nPage, prevPage, nextPage, setPage } = usePagination(5, logs.data);\n\n useEffect(() => {\n if (numbers >= 1) {\n setPage(1)\n }\n }, [tableSelected]);\n\n useEffect(() => {\n setPage(1);\n }, [logs])\n\n return (\n <>\n <div className=\"tab-pane fade show active\" id=\"nav-home\" role=\"tabpanel\" aria-labelledby=\"nav-home-tab\" tabIndex=\"0\">\n\n {\n logs.isLoading\n ? (\n <div className='d-flex flex-column justify-content-center align-items-center mt-4 mb-4'>\n <Spinner className='mb-2' />\n <p>Cargando registro de actividad</p>\n </div>\n )\n : <table className='table mb-3 table-striped border'>\n <thead>\n <tr>\n <th>Fecha</th><th>Acción</th><th>ID</th><th>Usuario</th>\n </tr>\n </thead>\n <tbody>\n {records.map(({ powerplant_id: id, action, username, limitation_id, registered_at }) => {\n return (\n <tr>\n <td>{registered_at}</td>\n {action === 'create' && <td>Crear</td>}\n {action === 'delete' && <td>Eliminar</td>}\n {action === 'update' && <td>Modificar</td>}\n {action === 'activate' && <td>Activar</td>}\n {action === 'desactivate' && <td>Desactivar</td>}\n <td>{limitation_id}</td>\n <td>{username}</td>\n </tr>\n )\n })}\n </tbody>\n </table>\n }\n\n\n <div className='d-flex justify-content-between align-items-center pb-3 pt-1'>\n <CreateLimitation />\n <ul className=\"pagination m-0 mx-1 btn-group btn-group-toggle\">\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register me-1`} disabled={currentPage === 1 ? 'disabled' : ''} onClick={setFirstPage}>{'<<'}</button>\n </li>\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register me-1`} disabled={currentPage === 1 ? 'disabled' : ''} onClick={prevPage}>{'<'}</button>\n </li>\n {\n numbers.map((number, i) => (\n <li className={`page-item ${currentPage === number ? 'active' : ''}`} key={`page-${i}`}>\n <button className={`btn btn-secondary mx-1`} disabled={currentPage === number} onClick={(e) => setPage(number)}>{number}</button>\n </li>\n ))\n }\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register mx-1`} disabled={(currentPage === nPage || numbers.length === 0) ? 'disabled' : ''} onClick={nextPage}>{'>'}</button>\n <button style={{color: 'white'}} className={`btn btn-register mx-1`} disabled={(currentPage === nPage || numbers.length === 0) ? 'disabled' : ''} onClick={setLastPage}>{'>>'}</button>\n </li>\n </ul>\n </div>\n\n </div>\n </>\n )\n}\n","import React, { useContext, useState } from 'react'\nimport { Tab, Tabs } from 'react-bootstrap';\nimport { LimitationsContext } from 'store/LimitationsContext'\nimport { CurrentCentralContext } from 'store';\nimport Title from 'components/Title'\nimport { ActivatedTable } from './tables/ActivatedTable';\nimport { DesactivatedTable } from './tables/DesactivatedTable';\nimport { LogsTable } from './tables/LogsTable';\nimport Select from 'react-select';\n\nexport const WindLimitations = () => {\n const [tableSelected, setTableSelected] = useState('activated');\n const { limitations, onChangeLimitationLevel, onChangeTurbineSelected, centralTurbines, turbineSelected, loadingLimitations, limitationLevel } = useContext(LimitationsContext);\n const { get: currentCentral } = useContext(CurrentCentralContext);\n\n return (\n <>\n <section className='title mt-3'>\n <Title fancyName='Registro de indisponibilidades' />\n </section>\n\n <div className='container-sm informacion-operacional pt-1 mt-3 pb-3 mb-5 border'>\n <div className='w-100 border mb-3 p-2 mt-3 d-flex flex-column align-items-start'>\n <label className='pb-2'>Filtrar por</label>\n <div className='d-flex'>\n <div className=\"form-check form-check-inline\">\n <input className=\"form-check-input\" type=\"radio\" name=\"inlineRadioOptions\" id=\"inlineRadio1\" checked={limitationLevel === 'powerplant'} value=\"option1\" onChange={(e) => onChangeLimitationLevel('powerplant')} />\n <label className=\"form-check-label\" htmlFor=\"inlineRadio1\">Parque completo</label>\n </div>\n <div className=\"form-check form-check-inline\">\n <input disabled={!'wind_turbines' in currentCentral} className=\"form-check-input\" type=\"radio\" name=\"inlineRadioOptions\" id=\"inlineRadio2\" checked={limitationLevel === 'wind_turbine'} value=\"option2\" onChange={(e) => onChangeLimitationLevel('wind_turbine')} />\n <label className=\"form-check-label\" htmlFor=\"inlineRadio2\">Aerogenerador</label>\n </div>\n </div>\n </div>\n\n {\n (!loadingLimitations && limitationLevel === 'wind_turbine' && 'wind_turbines' in currentCentral) && (\n <>\n <div>\n <div className='d-flex justify-content-start'>\n <label className=\"form-check-label mx-2\">Seleccionar aerogenerador</label>\n </div>\n </div>\n\n <div style={{textAlign: 'left'}}>\n\n <Select\n options={[\n {value:'all', label: 'Todos los Aerogeneradores'},\n ...centralTurbines.sort((a,b)=> ( a.localeCompare(b))).map((turbine) => ({value: turbine,label: currentCentral?.wind_turbines[turbine]?.fancy_name }))\n ]}\n defaultValue={{value:'all', label: 'Todos los Aerogeneradores'}}\n onChange={({value}) => onChangeTurbineSelected(value)}\n isSearchable\n />\n </div>\n </>\n )\n }\n\n <Tabs\n id=\"controlled-tab-example\"\n activeKey={tableSelected}\n onSelect={(table) => setTableSelected(table)}\n >\n <Tab eventKey=\"activated\" title=\"Activas\">\n <ActivatedTable tableSelected={tableSelected} />\n </Tab>\n <Tab eventKey=\"desactivated\" title=\"Inactivas\">\n <DesactivatedTable tableSelected={tableSelected} />\n </Tab>\n <Tab eventKey=\"logs\" title=\"Registro de actividad\">\n <LogsTable tableSelected={tableSelected} />\n </Tab>\n </Tabs>\n\n </div>\n </>\n )\n\n}\n","import { createContext } from 'react';\n\nexport const PredictionsContext = createContext();","import React, { useContext, useEffect } from 'react';\nimport { LimitationsContext } from './LimitationsContext';\nimport CurrentCentralContext from './CurrentCentralContext';\nimport { useLimitationss } from 'hooks/useLimitationss';\n\nexport const LimitationsProvider = ({ children }) => {\n const {\n logs,\n categories,\n limitations,\n getLimitedPower,\n centralTurbines,\n turbineSelected,\n limitationLevel,\n startLoadingData,\n limitationsCurve,\n currentLimitation,\n loadingLimitations,\n onUpdateLimitation,\n setCurrentLimitation,\n onChangeLimitationLevel,\n onChangeTurbineSelected\n } = useLimitationss(Intl.DateTimeFormat().resolvedOptions().timeZone);\n\n return (\n <LimitationsContext.Provider\n value={{\n logs,\n categories,\n limitations,\n getLimitedPower,\n centralTurbines,\n turbineSelected,\n limitationLevel,\n startLoadingData,\n limitationsCurve,\n currentLimitation,\n loadingLimitations,\n onUpdateLimitation,\n setCurrentLimitation,\n onChangeLimitationLevel,\n onChangeTurbineSelected\n }}\n >\n {children}\n </LimitationsContext.Provider>\n )\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport moment from 'moment';\nimport { CurrentCentralContext } from 'store';\nimport { APIContext } from 'store';\nimport { PredictionsContext } from 'store/PredictionsContext';\n\nexport const useLimitationss = (tz) => {\n const { centralsIds, centralsMetaData } = useContext(APIContext);\n const { predictions } = useContext(PredictionsContext);\n const [limitationsCurve, setLimitationsCurve] = useState({ loading: true });\n\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const [logs, setLogs] = useState({ data: [], isLoading: true });\n const [turbineSelected, setTurbineSelected] = useState('all');\n const [limitationLevel, setLimitationLevel] = useState('powerplant');\n const [loadingLimitations, setLoadingLimitations] = useState(true);\n const [categories, setCategories] = useState({\n data: {\n interns: [],\n externs: []\n },\n isLoading: true\n });\n const [limitations, setLimitations] = useState({\n data: [],\n total: 0\n });\n const [currentLimitation, setCurrentLimitation] = useState(null);\n const [centralTurbines, setCentralTurbines] = useState([])\n\n useEffect(() => {\n if (predictions.loading == false) {\n downloadLimitations();\n };\n }, [predictions.loading]);\n\n useEffect(() => {\n if (currentCentral && 'wind_turbines' in currentCentral) {\n setLoadingLimitations(true);\n getLogs().then(response => setLogs({ data: [], isLoading: true }))\n setCentralTurbines(Object.keys(currentCentral.wind_turbines).sort());\n getLimitations(currentCentral.id).then(response => {\n // if (turbineSelected !== 'all') setTurbineSelected('all')\n setLimitations({\n data: response,\n total: response.length,\n })\n setLoadingLimitations(false);\n });\n // getLimitationCurve();\n getLogs().then(response => setLogs({ isLoading: false, data: response }))\n getCategories().then(categoriesResponse => {\n const categoriesByCentralType = categoriesResponse.filter(category => {\n return category.central_type === currentCentral.type || category.central_type === 'all';\n })\n\n let interns = categoriesByCentralType.filter(category => (category.type === 'intern')).sort();\n let externs = categoriesByCentralType.filter(category => (category.type === 'extern')).sort();\n\n setCategories({\n data: {\n interns: interns,\n externs: externs\n },\n isLoading: false\n });\n })\n }\n }, [currentCentral])\n\n const startLoadingData = async () => {\n if (currentCentral && 'wind_turbines' in currentCentral) {\n setLimitations({ ...limitations });\n setLogs({ ...logs, isLoading: true });\n setCategories({ ...categories, isLoading: true });\n const logsResponse = await getLogs();\n const categoriesResponse = await getCategories();\n const limitationsResponse = await getLimitations(currentCentral.id);\n\n setCentralTurbines(Object.keys(currentCentral.wind_turbines).sort());\n setLogs({ ...logs, data: logsResponse, isLoading: false });\n\n const categoriesByCentralType = categoriesResponse.filter(category => {\n return category.central_type === currentCentral.type || category.central_type === 'all';\n })\n\n let interns = categoriesByCentralType.filter(category => (category.type === 'intern')).sort();\n let externs = categoriesByCentralType.filter(category => (category.type === 'extern')).sort();\n\n setCategories({\n data: {\n interns: interns,\n externs: externs\n },\n isLoading: false\n });\n\n setLimitations({\n data: limitationsResponse,\n total: limitationsResponse.length\n })\n setLoadingLimitations(false);\n }\n }\n\n const getLimitations = async (centralId) => {\n const response = await fetch('https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations');\n const limitations = await response.json();\n\n if (limitations.length > 0) {\n const limitationsByCentralId = limitations.filter(({ powerplant_id }) => {\n return powerplant_id === centralId\n });\n\n return limitationsByCentralId\n }\n return []\n }\n\n const onUpdateLimitation = async () => {\n setLimitationsCurve((prevState) => ({\n ...prevState,\n loading: true\n }));\n\n setLoadingLimitations(true)\n setLogs({ ...logs, isLoading: true });\n const logsResponse = await getLogs();\n const limitationsResponse = await getLimitations(currentCentral.id);\n setLogs({ ...logs, data: logsResponse, isLoading: false });\n setLimitations({\n data: limitationsResponse,\n total: limitationsResponse.length\n })\n setLoadingLimitations(false);\n updateCurve(currentCentral.id).then(({ powerplantCurve, turbinesCurve, centralId }) => {\n const finalCurve = powerplantCurve.map((hour, index) => {\n return {\n data: Math.min(hour.data, turbinesCurve[index].data),\n date: hour.date\n }\n })\n\n const limitedPower = getLimitedPower(centralId, predictions[centralId], turbinesCurve, powerplantCurve)\n\n setLimitationsCurve((prevState) => ({\n ...prevState,\n [centralId]: {\n finalCurve: finalCurve.map(limitation => (limitation.data / 1000)),\n limitedPower,\n },\n loading: false\n }))\n });\n setTurbineSelected('all');\n }\n\n const onChangeLimitationLevel = (level) => {\n setLimitationLevel(level);\n }\n\n const onChangeTurbineSelected = (turbine) => {\n setTurbineSelected(turbine);\n }\n\n const getCategories = async () => {\n\n const response = await fetch('https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/categories');\n const categories = await response.json();\n return categories;\n }\n\n const getLogs = async () => {\n const response = await fetch(`https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/logs/${currentCentral.id}/${encodeURIComponent(tz)}`);\n const logs = await response.json();\n return logs;\n }\n\n const getPowerPlantCurve = async (centralId) => {\n let queryParams = {\n start_date: moment().format('YYYY-MM-DD'),\n end_date: moment().add(9, 'd').format('YYYY-MM-DD')\n };\n\n let baseUrl = `https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations-by-dates/${centralId}`\n let queryString = new URLSearchParams(queryParams).toString();\n let urlWithParams = `${baseUrl}?${queryString}`;\n\n try {\n const response = await fetch(urlWithParams);\n if (!response.ok) {\n throw new Error('Error in obtaining constraint data for prediction graphs');\n }\n\n const data = await response.json();\n return data;\n } catch (err) {\n return [];\n }\n }\n\n const getTurbinesCurve = async (centralId) => {\n let queryParams = {\n start_date: moment().format('YYYY-MM-DD'),\n end_date: moment().add(9, 'd').format('YYYY-MM-DD')\n };\n\n let baseUrl = `https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations/turbine/${centralId}`\n let queryString = new URLSearchParams(queryParams).toString();\n let urlWithParams = `${baseUrl}?${queryString}`;\n\n try {\n const response = await fetch(urlWithParams);\n if (!response.ok) {\n throw new Error('Error in obtaining constraint data for prediction graphs');\n }\n\n const data = await response.json();\n return data;\n } catch (err) {\n return []\n }\n }\n\n const getLimitedPower = (centralId, predictions, turbinesCurve, powerplantCurve) => {\n if (predictions.length > 0) {\n\n const availablePower = turbinesCurve.map(({ data, hour }, index) => {\n return {\n hour: predictions[index]?.date,\n data: ((data / centralsMetaData[centralId].nominal_power) * (predictions[index]?.data * 1000)) / 1000\n }\n });\n\n const limitedPower = powerplantCurve.map(({ data, hour }, index) => {\n return {\n data: parseFloat(Math.min(data / 1000, availablePower[index].data).toFixed(2)),\n date: moment(predictions[index]?.date).format('YYYY-MM-DD HH:mm')\n }\n })\n\n return limitedPower;\n }\n\n return []\n }\n\n const getCurves = async (centralId) => {\n const powerplantCurve = await getPowerPlantCurve(centralId);\n const turbinesCurve = await getTurbinesCurve(centralId);\n\n return { powerplantCurve, turbinesCurve, centralId };\n }\n\n const updateCurve = async (centralId) => {\n const response = await getCurves(centralId);\n return response;\n }\n\n const downloadLimitations = async () => {\n let promises = [];\n\n for (let key in centralsIds) {\n let centralId = centralsIds[key];\n let central = centralsMetaData[centralId];\n\n if ('wind_turbines' in central) {\n\n if (!(centralId in limitationsCurve) && centralId in predictions) {\n promises.push(getCurves(centralId));\n }\n }\n }\n\n Promise.all(promises).then(responses => {\n responses.forEach(({ powerplantCurve, turbinesCurve, centralId }) => {\n\n const finalCurve = powerplantCurve.map((hour, index) => {\n return {\n data: Math.min(hour.data, turbinesCurve[index].data),\n date: hour.date\n }\n })\n\n const limitedPower = getLimitedPower(centralId, predictions[centralId], turbinesCurve, powerplantCurve)\n\n setLimitationsCurve((prevState) => ({\n ...prevState,\n [centralId]: {\n finalCurve: finalCurve.map(limitation => (limitation.data / 1000)),\n limitedPower\n }\n }))\n })\n\n setLimitationsCurve((prevState) => ({\n ...prevState,\n loading: false\n }))\n })\n }\n\n return {\n logs,\n categories,\n limitations,\n getLimitedPower,\n limitationLevel,\n centralTurbines,\n turbineSelected,\n limitationsCurve,\n startLoadingData,\n currentLimitation,\n onUpdateLimitation,\n loadingLimitations,\n setCurrentLimitation,\n onChangeLimitationLevel,\n onChangeTurbineSelected\n }\n}\n","import React, { useEffect, useState } from 'react';\nimport moment from 'moment';\nimport momentTZ from 'moment-timezone';\nimport { Title } from 'components';\nimport CenSolarFileRow from '../CenSolarFileRow';\n\nimport './index.css';\nimport { Grid, Select } from 'semantic-ui-react';\nimport SemanticDatepicker from 'react-semantic-ui-datepickers';\n\nconst hourOptions = () => {\n let hourGroup = []\n\n for (let index = 0; index < 24; index++) {\n if (index < 10) {\n hourGroup.push({ key: `0${index}:00`, value: `0${index}-00`, text: `0${index}:00` })\n hourGroup.push({ key: `0${index}:30`, value: `0${index}-30`, text: `0${index}:30` })\n }\n if (index >= 10) {\n hourGroup.push({ key: `${index}:00`, value: `${index}-00`, text: `${index}:00` })\n hourGroup.push({ key: `${index}:30`, value: `${index}-30`, text: `${index}:30` })\n }\n }\n\n return hourGroup;\n}\n\n\n\nexport const CoesReports = () => {\n const [date, setDate] = useState(momentTZ().tz('America/Lima'))\n const [hour, setHour] = useState('00-00')\n const [forecastReport, setForecastReport] = useState(false)\n const [performanceReport, setPerformanceReport] = useState(false)\n const options = hourOptions();\n\n const getForecastReport = async () => {\n const formatDate = moment(date).format('YYYY-MM-DD')\n const URL = `https://pj7y2vu1pk.execute-api.us-east-1.amazonaws.com/Prod/coes/forecast?date=${formatDate}&hour=${hour}`;\n const response = await fetch(URL)\n const data = await response.json()\n setForecastReport({ type: 'Forecast', hour: hour.replace('-', ':'), data: atob(data.fileContent), title: data.title, available: data.available })\n }\n\n const getPerformanceReport = async () => {\n const formatDate = moment(date).format('YYYY-MM-DD')\n const URL = `https://pj7y2vu1pk.execute-api.us-east-1.amazonaws.com/Prod/coes/performance?date=${formatDate}`;\n const response = await fetch(URL)\n const data = await response.json()\n setPerformanceReport({ type: 'Performance', hour: '02:30', data: atob(data.fileContent), title: data.title, available: data.available })\n }\n\n useEffect(() => {\n const formatDate = moment(date).format('YYYY-MM-DD')\n getForecastReport();\n getPerformanceReport()\n return () => {\n setForecastReport(false)\n setPerformanceReport(false)\n }\n }, [date, hour])\n\n const handleDate = (e, data) => {\n setDate(moment.utc(data.value))\n }\n\n const handleHour = (e, data) => {\n setHour(data.value)\n }\n\n return (\n <>\n <Title fancyName='Reportes COES' />\n <div className=\"date-control\">\n <SemanticDatepicker\n className=\"datepicker\"\n name=\"datepicker\"\n key=\"picker\"\n locale=\"es-ES\"\n firstDayOfWeek={1}\n format=\"DD-MM-YYYY\"\n size=\"small\"\n value={date.toDate()}\n maxDate={moment.utc().toDate()}\n onChange={(event, data) => handleDate(event, data)}\n showOutsideDays\n clearable={false}\n datePickerOnly={false}\n />\n <Select defaultValue={'00-00'} placeholder='Seleccionar hora' onChange={(event, data) => handleHour(event, data)} options={options} />\n </div>\n\n <Grid columns={4} className=\"title-group\">\n <Grid.Column className=\"title-row\"><h3>Formato</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Hora</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Disponibilidad</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Descargas</h3></Grid.Column>\n </Grid>\n\n {forecastReport !== false && <CenSolarFileRow key={'forecastReport'} doc={forecastReport} />}\n {performanceReport !== false && <CenSolarFileRow key={'performanceReport'} doc={performanceReport} />}\n {/* {eolica48 !== false && <CenSolarFileRow key={'eolica48'} doc={eolica48} />}\n {eolica240 !== false && <CenSolarFileRow key={'eolica240'} doc={eolica240} />}\n {rampas !== false && <CenSolarFileRow key={'rampas'} doc={rampas} />} */}\n </>\n )\n}","import React, { useContext, useEffect, useState } from 'react'\nimport { useForm } from 'react-hook-form';\nimport { Alert, Spinner, Button, Modal, Form, Col, Row, InputGroup } from 'react-bootstrap';\nimport { CurrentCentralContext } from 'store';\nimport { SolarLimitationsContext } from 'store/SolarLimitationsContext';\nimport { Pencil } from 'components/predictionsView/Limitations/icons';\nimport { UpdateLimitationChart } from 'components/predictionsView/Limitations/charts/UpdateLimitationChart';\nimport { Auth } from 'aws-amplify';\nimport Select from 'react-select';\n\nexport const UpdateLimitation = ({ limitation }) => {\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const { centralInverters, categories, onUpdateLimitation } = useContext(SolarLimitationsContext);\n const [showModal, setShowModal] = useState(false);\n const [updating, setUpdating] = useState(false);\n const { register, handleSubmit, formState: { errors }, watch, setValue, reset, clearErrors, formState } = useForm()\n const [inverterId, setInverterId] = useState([])\n const [inverters, setInverters] = useState(limitation?.inverter_id?.map(inverter => (\n {\n value: inverter,\n label: `${currentCentral?.inverters[inverter]?.fancy_name} - (${currentCentral?.inverters[inverter]?.nominal_power} kW)`, \n isDisabled: false\n })).sort())\n\n useEffect(() => {\n if ('inverters' in currentCentral && limitation) {\n setInverterId(limitation?.inverter_id?.map(inverter => ({value: inverter,label: `${currentCentral?.inverters[inverter]?.fancy_name} - (${currentCentral?.inverters[inverter]?.nominal_power} kW)` })) ?? []);\n reset({\n ...limitation,\n without_date_limit: limitation?.end_date === null ? true : false,\n full_day_limitation: limitation?.frequency === 'complete_day' ? limitation?.data?.[0] : limitation?.level === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power,\n }); // Resetea el formulario con los valores del item seleccionado\n } else {\n reset(); // Si no hay item seleccionado, resetea el formulario vacío\n }\n }, [showModal, currentCentral]);\n\n useEffect(()=>{\n if(inverterId.length>0){\n setInverters(() => {\n return inverterId.map(({ value, label, isDisabled}) => (\n {\n value,\n label,\n })).sort()\n })\n }else{\n setInverters([])\n clearErrors('full_day_limitation');\n clearErrors('data'); \n }\n },[inverterId])\n\n useEffect(() => {\n setValue('data', {\n '0': watch('full_day_limitation'),\n '1': watch('full_day_limitation'),\n '2': watch('full_day_limitation'),\n '3': watch('full_day_limitation'),\n '4': watch('full_day_limitation'),\n '5': watch('full_day_limitation'),\n '6': watch('full_day_limitation'),\n '7': watch('full_day_limitation'),\n '8': watch('full_day_limitation'),\n '9': watch('full_day_limitation'),\n '10': watch('full_day_limitation'),\n '11': watch('full_day_limitation'),\n '12': watch('full_day_limitation'),\n '13': watch('full_day_limitation'),\n '14': watch('full_day_limitation'),\n '15': watch('full_day_limitation'),\n '16': watch('full_day_limitation'),\n '17': watch('full_day_limitation'),\n '18': watch('full_day_limitation'),\n '19': watch('full_day_limitation'),\n '20': watch('full_day_limitation'),\n '21': watch('full_day_limitation'),\n '22': watch('full_day_limitation'),\n '23': watch('full_day_limitation'),\n })\n\n }, [watch('full_day_limitation')])\n\n useEffect(() => {\n if (watch('level') === 'inverter') {\n setValue('full_day_limitation', currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power)\n setValue('data', {\n '0': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '1': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '2': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '3': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '4': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '5': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '6': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '7': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '8': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '9': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '10': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '11': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '12': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '13': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '14': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '15': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '16': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '17': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '18': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '19': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '20': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '21': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '22': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '23': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power\n });\n } else {\n setValue('full_day_limitation', currentCentral?.nominal_power)\n setValue('data', {\n '0': currentCentral?.nominal_power,\n '1': currentCentral?.nominal_power,\n '2': currentCentral?.nominal_power,\n '3': currentCentral?.nominal_power,\n '4': currentCentral?.nominal_power,\n '5': currentCentral?.nominal_power,\n '6': currentCentral?.nominal_power,\n '7': currentCentral?.nominal_power,\n '8': currentCentral?.nominal_power,\n '9': currentCentral?.nominal_power,\n '10': currentCentral?.nominal_power,\n '11': currentCentral?.nominal_power,\n '12': currentCentral?.nominal_power,\n '13': currentCentral?.nominal_power,\n '14': currentCentral?.nominal_power,\n '15': currentCentral?.nominal_power,\n '16': currentCentral?.nominal_power,\n '17': currentCentral?.nominal_power,\n '18': currentCentral?.nominal_power,\n '19': currentCentral?.nominal_power,\n '20': currentCentral?.nominal_power,\n '21': currentCentral?.nominal_power,\n '22': currentCentral?.nominal_power,\n '23': currentCentral?.nominal_power,\n })\n }\n clearErrors('full_day_limitation');\n clearErrors('data');\n }, [watch('level')])\n\n useEffect(() => {\n if(watch('level') === 'inverter' && inverterId.length === 0){\n setValue('full_day_limitation', currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power)\n setValue('data', {\n '0': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '1': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '2': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '3': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '4': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '5': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '6': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '7': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '8': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '9': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '10': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '11': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '12': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '13': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '14': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '15': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '16': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '17': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '18': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '19': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '20': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '21': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '22': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '23': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power\n });\n } \n }, [inverterId])\n\n useEffect(() => {\n if (watch('frequency') === 'complete_day' && watch('level') === 'powerplant') {\n setValue('full_day_limitation', currentCentral?.nominal_power)\n setValue('data', {\n '0': currentCentral?.nominal_power,\n '1': currentCentral?.nominal_power,\n '2': currentCentral?.nominal_power,\n '3': currentCentral?.nominal_power,\n '4': currentCentral?.nominal_power,\n '5': currentCentral?.nominal_power,\n '6': currentCentral?.nominal_power,\n '7': currentCentral?.nominal_power,\n '8': currentCentral?.nominal_power,\n '9': currentCentral?.nominal_power,\n '10': currentCentral?.nominal_power,\n '11': currentCentral?.nominal_power,\n '12': currentCentral?.nominal_power,\n '13': currentCentral?.nominal_power,\n '14': currentCentral?.nominal_power,\n '15': currentCentral?.nominal_power,\n '16': currentCentral?.nominal_power,\n '17': currentCentral?.nominal_power,\n '18': currentCentral?.nominal_power,\n '19': currentCentral?.nominal_power,\n '20': currentCentral?.nominal_power,\n '21': currentCentral?.nominal_power,\n '22': currentCentral?.nominal_power,\n '23': currentCentral?.nominal_power,\n })\n } else if (watch('frequency') === 'complete_day' && watch('level') === 'inverter') {\n setValue('full_day_limitation', currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power)\n setValue('data', {\n '0': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '1': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '2': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '3': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '4': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '5': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '6': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '7': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '8': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '9': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '10': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '11': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '12': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '13': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '14': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '15': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '16': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '17': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '18': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '19': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '20': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '21': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '22': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '23': currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power\n });\n }\n clearErrors('full_day_limitation');\n clearErrors('data');\n }, [watch('frequency')]);\n\n const getUser = async () => {\n const { username } = await Auth.currentAuthenticatedUser();\n return username;\n }\n\n return (\n <>\n <Pencil onClick={() => setShowModal(true)} limitation={limitation} />\n <Modal size=\"xl\" show={showModal} onHide={() => setShowModal(false)} aria-labelledby=\"example-modal-sizes-title-lg\" fullscreen={true}>\n <Modal.Header closeButton>\n <Modal.Title id=\"example-modal-sizes-title-lg\">\n Modificar limitación\n </Modal.Title>\n </Modal.Header>\n\n <Modal.Body style={{ backgroundColor: '#f5f5f5' }}>\n <Row className='pe-3'>\n <UpdateLimitationChart \n title='Potencia [kW]'\n central={currentCentral}\n nominalPower={currentCentral?.nominal_power}\n limitation={watch('data')}\n level={watch('level')}\n windTurbineId={inverterId}\n turbineNominalPower={currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power}\n />\n </Row>\n <Form className='pt-4 pe-4 px-4 pb-2 mt-5 border' onSubmit={handleSubmit(async (data) => {\n const username = await getUser();\n setUpdating(true);\n const response = await fetch('https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations', {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json' // Especifica el tipo de contenido\n },\n body: watch('level') === \"inverter\" ? JSON.stringify({...data, inverter_id: inverterId.map(({value})=> (value)), modified_by: username}) : JSON.stringify({...data, modified_by: username}),\n })\n\n if (response.status === 200) {\n await onUpdateLimitation();\n setUpdating(false);\n setShowModal(false);\n }\n\n })}>\n <h5>Configuración</h5>\n <Row className=\"mb-3\">\n <Form.Group as={Col} md=\"3\" controlId=\"validationCustom01\" className='border pt-3 px-3 mt-3'>\n <Form.Label>Limitación por</Form.Label>\n <div className=\"mb-3\">\n <Form.Check inline checked={watch('level') === 'powerplant'} label=\"Parque completo\" name=\"level\" type='radio' value=\"powerplant\" {...register('level')} />\n <Form.Check inline checked={watch('level') === 'inverter'} label=\"Inversor\" name=\"level\" type='radio' value=\"inverter\" {...register('level')} />\n </div>\n </Form.Group>\n </Row>\n\n <Row>\n {\n watch('level') === 'inverter' && (\n <>\n <div>\n <div className='d-flex justify-content-start'>\n <label className=\"form-check-label mx-2\">Seleccionar inversor</label>\n </div>\n <Select\n options={centralInverters?.map((inverter) => ({\n value: inverter,\n label: `${currentCentral?.inverters[inverter]?.fancy_name} - (${currentCentral?.inverters[inverter]?.nominal_power} kW)`,\n isDisabled: inverters.length === 0 ? false : currentCentral?.inverters?.[inverter]?.nominal_power !== currentCentral?.inverters?.[inverters?.[0]?.value]?.nominal_power\n })).sort()\n }\n onChange={(event) => {\n const eventLength = event.length;\n const inverterIdLength = inverterId.length;\n \n if(inverterIdLength === 0 && eventLength === 1){\n setValue('full_day_limitation',currentCentral?.inverters[event?.[0]?.value]?.nominal_power)\n }else if(inverterIdLength === 1 && eventLength === 0){\n setValue('full_day_limitation',currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power)\n }\n setInverterId(event)\n\n }}\n value={inverters}\n closeMenuOnSelect={false}\n isMulti\n />\n </div>\n </>\n )\n }\n </Row>\n\n <Row className=\"mb-3\">\n <Form.Group as={Col} md=\"5\" controlId=\"validationCustom01\" className='border pt-3 px-3'>\n <div className=\"mb-3 d-flex align-items-center\">\n <div>\n <Form.Label>Fecha desde</Form.Label>\n <Form.Control type='datetime-local' {...register('start_date')} />\n </div>\n <div className='mx-3'>\n <Form.Label>Fecha hasta</Form.Label>\n <Form.Control type='datetime-local' disabled={watch('without_date_limit')} {...register('end_date')} />\n </div>\n <div className='mx-3'>\n <Form.Check type={'checkbox'} label={'Sin fecha limite'} className='mt-4' {...register('without_date_limit')} />\n </div>\n </div>\n </Form.Group>\n </Row>\n\n <Row className='px-1 border' >\n <Row>\n <Row>\n <Form.Check type={'radio'} value=\"complete_day\" label={'Día completo'} className='mt-4 mx-3' {...register('frequency')} />\n </Row>\n <Form.Group as={Col} md=\"2\">\n <InputGroup className=\"mb-1\" hasValidation>\n <InputGroup.Text id=\"basic-addon1\">kW</InputGroup.Text>\n <Form.Control\n placeholder=\"Limitación\"\n type='number'\n aria-describedby=\"basic-addon1\"\n disabled={watch('frequency') === 'hourly'}\n // value={watch('full_day_limitation')}\n className={`${errors.limitation ? 'border-danger' : ''}`}\n {...register('full_day_limitation', {\n required: {\n value: true,\n message: \"Debe ingresar un valor de limitación\"\n },\n min: {\n value: 0,\n message: \"La limitación no debe ser menor a 0\"\n },\n max: {\n value: watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power,\n message: `La limitación no puede ser mayor a ${watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power} kW`\n }\n })}\n />\n </InputGroup>\n </Form.Group>\n {errors.full_day_limitation &&\n <div className='pb-2'>\n <span className='text-danger mx-1'>\n {errors.full_day_limitation.message}\n </span>\n </div>\n }\n </Row>\n <hr style={{ color: '#dee2e6', borderTop: '3px solid #dee2e6' }} />\n <Row>\n <Form.Check type={'radio'} label={'Horaria'} value=\"hourly\" className='mx-3' {...register('frequency')} />\n </Row>\n <Row className='mt-2'>\n {\n [\n \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\",\n \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\", \"21\", \"22\", \"23\"\n ].map((hour, index) => (\n <>\n <Form.Group className='text-center' as={Col} md=\"1\" key={hour}>\n <Form.Label>{parseInt(hour) > 9 ? hour : `0${hour}`}:00</Form.Label>\n <InputGroup className=\"mb-3\">\n {index === 0 && <InputGroup.Text id=\"basic-addon1\" style={{ padding: '4px 6px' }}>kW</InputGroup.Text>}\n {index === 12 && <InputGroup.Text id=\"basic-addon1\" style={{ padding: '4px 6px' }}>kW</InputGroup.Text>}\n <Form.Control\n placeholder=\"Valor\"\n type='number'\n value={watch('frequency') === 'complete_day' ? watch('full_day_limitation') : watch(`data.${hour}`)}\n className='text-center'\n disabled={watch('frequency') === 'complete_day'}\n {...register(`data.${hour}`, {\n required: {\n value: true,\n message: `Debe ingresar un valor de limitación a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00`\n },\n min: {\n value: 0,\n message: `La limitación aplicada a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00 no debe ser menor a 0`\n },\n max: {\n value: watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power,\n message: `La limitación aplicada a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00 no puede ser mayor a ${watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power} kW`\n }\n })}\n />\n </InputGroup>\n </Form.Group>\n </>\n ))\n }\n\n {(errors.data && watch('frequency') === 'hourly') &&\n <div className='pb-2'>\n <div className='text-danger mx-1 col-3'>\n {\n Object.keys(errors.data).map(hour => (\n <div key={`error-${hour}`}>\n <Alert variant='danger' style={{ width: 'auto' }}>{errors.data[hour].message}</Alert>\n </div>\n ))\n }\n </div>\n </div>\n }\n </Row>\n </Row>\n\n <Row className=' mt-5 border pt-3 pe-3 px-2'>\n <Form.Group as={Col} md=\"2\">\n <Form.Label>Categoría</Form.Label>\n {\n categories.isLoading ? <Spinner /> : (\n <Form.Select aria-label=\"Default select example\" {...register('category')}>\n <optgroup label=\"Limitación interna\">\n {\n categories.data.interns.map(({ id, category, fancy_name }) => (\n <option value={category} key={id}>{fancy_name}</option>\n ))\n }\n </optgroup>\n <optgroup label=\"Limitación externa\">\n {\n categories.data.externs.map(({ id, category, fancy_name }) => (\n <option value={category} key={id}>{fancy_name}</option>\n ))\n }\n </optgroup>\n <option value=\"otra\">Otra</option>\n </Form.Select>\n )\n }\n </Form.Group>\n <Form.Group className=\"mb-3 mt-3\" controlId=\"exampleForm.ControlTextarea1\">\n <Form.Label>Descripción</Form.Label>\n <Form.Control as=\"textarea\" rows={3} {...register('description')} />\n </Form.Group>\n </Row>\n\n <Modal.Footer className='pt-4'>\n <Button className=\"btn btn-secondary\" onClick={e => setShowModal(false)}>\n Cancelar\n </Button>\n <Button className=\"btn btn-register\" type='submit' disabled={updating || (watch('level') === \"inverter\" && inverterId?.length === 0)}>\n {updating && (\n <Spinner\n as=\"span\"\n animation=\"border\"\n size=\"sm\"\n role=\"status\"\n aria-hidden=\"true\"\n className='mx-2 me-2'\n />\n )}\n {updating ? 'Actualizando' : 'Actualizar'}\n </Button>\n </Modal.Footer>\n </Form>\n\n\n </Modal.Body>\n\n </Modal>\n </>\n )\n}\n","import React, { useContext, useEffect, useState } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { Auth } from 'aws-amplify';\nimport Button from 'react-bootstrap/Button';\nimport Modal from 'react-bootstrap/Modal';\nimport Form from 'react-bootstrap/Form';\nimport Col from 'react-bootstrap/Col';\nimport Row from 'react-bootstrap/Row';\nimport InputGroup from 'react-bootstrap/InputGroup';\nimport { Alert, Spinner } from 'react-bootstrap';\nimport moment from 'moment'\nimport { CurrentCentralContext } from 'store';\nimport { SolarLimitationsContext } from 'store/SolarLimitationsContext';\nimport { CreateLimitationChart } from 'components/predictionsView/Limitations/charts/CreateLimitationChart';\nimport Select from 'react-select';\n\n\nexport const CreateLimitation = () => {\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const { limitations, categories, limitationLevel, inverterSelected, centralInverters, onUpdateLimitation } = useContext(SolarLimitationsContext)\n const [inverterId, setInverterId] = useState([])\n const [showModal, setShowModal] = useState(false);\n const [createdBy, setCreatedBy] = useState('');\n const [creating, setCreating] = useState(false);\n const [inverters, setInverters] = useState(centralInverters.map(inverter => (\n {\n value: inverter,\n label: currentCentral?.inverters[inverter]?.fancy_name, \n isDisabled: false\n })).sort())\n const { register, handleSubmit, formState: { errors }, watch, setValue, reset, clearErrors } = useForm();\n\n useEffect(() => {\n getUser().then(response => setCreatedBy(response));\n }, [])\n\n useEffect(()=>{\n if(inverterId.length>0){\n setInverters(() => {\n return centralInverters.map(inverter => (\n {\n value: inverter,\n label: `${currentCentral?.inverters[inverter]?.fancy_name} - (${currentCentral?.inverters[inverter]?.nominal_power} kW)`, \n isDisabled: currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power !== currentCentral?.inverters[inverter]?.nominal_power\n })).sort()\n })\n setValue('full_day_limitation',currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power)\n }else{\n setInverters(() => {\n return centralInverters.map(inverter => (\n {\n value: inverter,\n label: `${currentCentral?.inverters[inverter]?.fancy_name} - (${currentCentral?.inverters[inverter]?.nominal_power} kW)`, \n isDisabled: false\n })).sort()\n })\n clearErrors('full_day_limitation');\n clearErrors('data'); \n }\n },[inverterId])\n\n useEffect(() => {\n if (showModal) {\n reset({\n powerplant_id: currentCentral.id,\n active: true,\n level: 'powerplant',\n frequency: 'complete_day',\n category: 'falla-tecnica',\n without_date_limit: false,\n full_day_limitation: currentCentral?.nominal_power,\n data: {\n '0': currentCentral?.nominal_power,\n '1': currentCentral?.nominal_power,\n '2': currentCentral?.nominal_power,\n '3': currentCentral?.nominal_power,\n '4': currentCentral?.nominal_power,\n '5': currentCentral?.nominal_power,\n '6': currentCentral?.nominal_power,\n '7': currentCentral?.nominal_power,\n '8': currentCentral?.nominal_power,\n '9': currentCentral?.nominal_power,\n '10': currentCentral?.nominal_power,\n '11': currentCentral?.nominal_power,\n '12': currentCentral?.nominal_power,\n '13': currentCentral?.nominal_power,\n '14': currentCentral?.nominal_power,\n '15': currentCentral?.nominal_power,\n '16': currentCentral?.nominal_power,\n '17': currentCentral?.nominal_power,\n '18': currentCentral?.nominal_power,\n '19': currentCentral?.nominal_power,\n '20': currentCentral?.nominal_power,\n '21': currentCentral?.nominal_power,\n '22': currentCentral?.nominal_power,\n '23': currentCentral?.nominal_power,\n },\n start_date: moment().tz(Intl.DateTimeFormat().resolvedOptions().timeZone || 'America/Santiago').format('YYYY-MM-DDTHH:mm'),\n end_date: moment().tz(Intl.DateTimeFormat().resolvedOptions().timeZone || 'America/Santiago').add(1, 'd').format('YYYY-MM-DDTHH:mm'),\n created_by: createdBy,\n deleted: false,\n record_id: limitations.total + 1\n })\n setInverterId([])\n } else {\n setInverterId([])\n reset();\n }\n }, [showModal])\n\n useEffect(() => {\n if (watch('frequency') === 'complete_day') {\n setValue('data', {\n '0': watch('full_day_limitation'),\n '1': watch('full_day_limitation'),\n '2': watch('full_day_limitation'),\n '3': watch('full_day_limitation'),\n '4': watch('full_day_limitation'),\n '5': watch('full_day_limitation'),\n '6': watch('full_day_limitation'),\n '7': watch('full_day_limitation'),\n '8': watch('full_day_limitation'),\n '9': watch('full_day_limitation'),\n '10': watch('full_day_limitation'),\n '11': watch('full_day_limitation'),\n '12': watch('full_day_limitation'),\n '13': watch('full_day_limitation'),\n '14': watch('full_day_limitation'),\n '15': watch('full_day_limitation'),\n '16': watch('full_day_limitation'),\n '17': watch('full_day_limitation'),\n '18': watch('full_day_limitation'),\n '19': watch('full_day_limitation'),\n '20': watch('full_day_limitation'),\n '21': watch('full_day_limitation'),\n '22': watch('full_day_limitation'),\n '23': watch('full_day_limitation'),\n })\n }\n\n clearErrors('data');\n clearErrors('full_day_limitation');\n }, [watch('frequency')]);\n\n useEffect(() => {\n setValue('data', {\n '0': watch('full_day_limitation'),\n '1': watch('full_day_limitation'),\n '2': watch('full_day_limitation'),\n '3': watch('full_day_limitation'),\n '4': watch('full_day_limitation'),\n '5': watch('full_day_limitation'),\n '6': watch('full_day_limitation'),\n '7': watch('full_day_limitation'),\n '8': watch('full_day_limitation'),\n '9': watch('full_day_limitation'),\n '10': watch('full_day_limitation'),\n '11': watch('full_day_limitation'),\n '12': watch('full_day_limitation'),\n '13': watch('full_day_limitation'),\n '14': watch('full_day_limitation'),\n '15': watch('full_day_limitation'),\n '16': watch('full_day_limitation'),\n '17': watch('full_day_limitation'),\n '18': watch('full_day_limitation'),\n '19': watch('full_day_limitation'),\n '20': watch('full_day_limitation'),\n '21': watch('full_day_limitation'),\n '22': watch('full_day_limitation'),\n '23': watch('full_day_limitation')\n });\n\n }, [watch('full_day_limitation')])\n\n useEffect(() => {\n setValue('data', {\n '0': currentCentral?.nominal_power ?? 0,\n '1': currentCentral?.nominal_power ?? 0,\n '2': currentCentral?.nominal_power ?? 0,\n '3': currentCentral?.nominal_power ?? 0,\n '4': currentCentral?.nominal_power ?? 0,\n '5': currentCentral?.nominal_power ?? 0,\n '6': currentCentral?.nominal_power ?? 0,\n '7': currentCentral?.nominal_power ?? 0,\n '8': currentCentral?.nominal_power ?? 0,\n '9': currentCentral?.nominal_power ?? 0,\n '10': currentCentral?.nominal_power ?? 0,\n '11': currentCentral?.nominal_power ?? 0,\n '12': currentCentral?.nominal_power ?? 0,\n '13': currentCentral?.nominal_power ?? 0,\n '14': currentCentral?.nominal_power ?? 0,\n '15': currentCentral?.nominal_power ?? 0,\n '16': currentCentral?.nominal_power ?? 0,\n '17': currentCentral?.nominal_power ?? 0,\n '18': currentCentral?.nominal_power ?? 0,\n '19': currentCentral?.nominal_power ?? 0,\n '20': currentCentral?.nominal_power ?? 0,\n '21': currentCentral?.nominal_power ?? 0,\n '22': currentCentral?.nominal_power ?? 0,\n '23': currentCentral?.nominal_power ?? 0,\n });\n setValue('powerplant_id', currentCentral?.id ?? '');\n }, [currentCentral])\n\n useEffect(() => {\n if (watch('level') === 'powerplant') setValue('full_day_limitation', currentCentral?.nominal_power)\n if (watch('level') === 'inverter'){\n setValue('full_day_limitation', currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power);\n }\n }, [watch('level')])\n\n useEffect(() => {\n if (watch('level') === 'inverter') {\n setValue('full_day_limitation', currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power)\n setValue('data', {\n '0': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '1': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '2': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '3': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '4': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '5': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '6': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '7': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '8': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '9': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '10': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '11': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '12': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '13': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '14': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '15': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '16': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '17': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '18': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '19': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '20': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '21': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '22': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n '23': currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power\n });\n clearErrors('full_day_limitation');\n clearErrors('data');\n }else{\n setInverterId([])\n clearErrors('full_day_limitation');\n clearErrors('data');\n }\n }, [watch('level')])\n\n useEffect(() => {\n setValue('level', limitationLevel)\n }, [limitationLevel])\n\n const getUser = async () => {\n const { username } = await Auth.currentAuthenticatedUser();\n return username;\n }\n\n return (\n <div>\n <Button className='btn-register' onClick={() => setShowModal(true)}>Registrar limitación</Button>\n <Modal size=\"xl\" show={showModal} onHide={() => setShowModal(false)} aria-labelledby=\"example-modal-sizes-title-lg\" fullscreen={true}>\n <Modal.Header closeButton>\n <Modal.Title id=\"example-modal-sizes-title-lg\">\n Crear limitación\n </Modal.Title>\n </Modal.Header>\n\n <Modal.Body style={{ backgroundColor: '#f5f5f5' }}>\n <Row className='pe-3'>\n <CreateLimitationChart \n title='Potencia [kW]'\n central={currentCentral}\n nominalPower={currentCentral?.nominal_power}\n turbineNominalPower={currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power}\n limitation={watch('data')}\n level={watch('level')}\n windTurbineId={inverterId}\n />\n </Row>\n\n <Form className='pt-4 pe-4 px-4 pb-2 mt-5 border' onSubmit={handleSubmit(async (data) => {\n const f = watch('level') === \"inverter\" ? JSON.stringify(data) : JSON.stringify({data: {...data, inverter_id: inverterId}}) \n setCreating(true);\n const response = await fetch('https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json' // Especifica el tipo de contenido\n },\n body: watch('level') === \"inverter\" ? JSON.stringify({...data, inverter_id: inverterId.map(({value})=> (value)) }) : JSON.stringify(data)\n })\n\n if (response.status === 200) {\n await onUpdateLimitation();\n setCreating(false);\n setShowModal(false);\n }\n })}>\n <h5>Configuración</h5>\n <Row className=\"mb-3\">\n <Form.Group as={Col} md=\"3\" controlId=\"validationCustom01\" className='border pt-3 px-3 mt-3'>\n <Form.Label>Limitación por</Form.Label>\n <div className=\"mb-3\">\n <Form.Check inline checked={watch('level') === 'powerplant'} label=\"Parque completo\" name=\"level\" type='radio' value=\"powerplant\" {...register('level')} />\n <Form.Check inline checked={watch('level') === 'inverter'} label=\"Inversor\" name=\"level\" type='radio' value=\"inverter\" {...register('level')} />\n </div>\n </Form.Group>\n </Row>\n\n <Row>\n {\n watch('level') === 'inverter' && (\n <>\n <div>\n <div className='d-flex justify-content-start'>\n <label className=\"form-check-label mx-2\">Seleccionar Inversores</label>\n </div>\n <Select\n options={inverters}\n placeholder=\"Inversores\"\n isMulti\n closeMenuOnSelect={false}\n onChange={(e) => {\n setInverterId(e)\n }}\n />\n </div>\n </>\n )\n }\n </Row>\n\n <Row className=\"mb-3\">\n <Form.Group as={Col} md=\"5\" controlId=\"validationCustom01\" className='border pt-3 px-3'>\n <div className=\"mb-3 d-flex align-items-center\">\n <div>\n <Form.Label>Fecha desde</Form.Label>\n <Form.Control type='datetime-local' {...register('start_date')} />\n </div>\n <div className='mx-3'>\n <Form.Label>Fecha hasta</Form.Label>\n <Form.Control type='datetime-local' disabled={watch('without_date_limit')} {...register('end_date')} />\n </div>\n <div className='mx-3'>\n <Form.Check type={'checkbox'} label={'Sin fecha limite'} className='mt-4' {...register('without_date_limit')} />\n </div>\n </div>\n </Form.Group>\n </Row>\n\n <Row className='px-1 border' >\n <Row>\n <Row>\n <Form.Check type={'radio'} value=\"complete_day\" label={'Día completo'} className='mt-4 mx-3' {...register('frequency')} />\n </Row>\n <Form.Group as={Col} md=\"2\">\n <InputGroup className=\"mb-1\" hasValidation>\n <InputGroup.Text id=\"basic-addon1\">kW</InputGroup.Text>\n <Form.Control\n placeholder=\"Limitación\"\n disabled={watch('frequency') === 'hourly'}\n type='number'\n aria-describedby=\"basic-addon1\"\n value={watch('full_day_limitation')}\n className={`${errors.full_day_limitation ? 'border-danger' : ''}`}\n {...register('full_day_limitation', {\n required: {\n value: true,\n message: \"Debe ingresar un valor de limitación\"\n },\n min: {\n value: 0,\n message: \"La limitación no debe ser menor a 0\"\n },\n max: {\n value: watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power,\n message: `La limitación no puede ser mayor a ${watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power} kW`\n }\n })}\n />\n </InputGroup>\n </Form.Group>\n {errors.full_day_limitation &&\n <div className='pb-2'>\n <span className='text-danger mx-1'>\n {errors.full_day_limitation.message}\n </span>\n </div>\n }\n </Row>\n <hr style={{ color: '#dee2e6', borderTop: '3px solid #dee2e6' }} />\n <Row>\n <Form.Check type={'radio'} label={'Horaria'} value=\"hourly\" className='mx-3' {...register('frequency')} />\n </Row>\n <Row className='mt-2'>\n {\n [\n \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\",\n \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\", \"21\", \"22\", \"23\"\n ].map((hour, index) => (\n <>\n <Form.Group className='text-center' as={Col} md=\"1\" key={hour}>\n <Form.Label>{parseInt(hour) > 9 ? hour : `0${hour}`}:00</Form.Label>\n <InputGroup className=\"mb-3\">\n {index === 0 && <InputGroup.Text id=\"basic-addon1\" style={{ padding: '4px 6px' }}>kW</InputGroup.Text>}\n {index === 12 && <InputGroup.Text id=\"basic-addon1\" style={{ padding: '4px 6px' }}>kW</InputGroup.Text>}\n <Form.Control\n placeholder=\"Valor\"\n type='number'\n value={watch('frequency') === 'complete_day' ? watch('full_day_limitation') : watch(`data.${hour}`)}\n className='text-center'\n disabled={watch('frequency') === 'complete_day'}\n {...register(`data.${hour}`, {\n required: {\n value: true,\n message: `Debe ingresar un valor de limitación a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00`\n },\n min: {\n value: 0,\n message: `La limitación aplicada a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00 no debe ser menor a 0`\n },\n max: {\n value: watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power,\n message: `La limitación aplicada a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00 no puede ser mayor a ${watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.inverters[inverterId?.[0]?.value]?.nominal_power} kW`\n }\n })}\n />\n </InputGroup>\n </Form.Group>\n </>\n ))\n }\n {(errors.data && watch('frequency') === 'hourly') &&\n <div className='pb-2'>\n <div className='text-danger mx-1'>\n {\n Object.keys(errors.data).map(hour => (\n <div>\n <Alert variant='danger' style={{ width: 'auto' }}>{errors.data[hour].message}</Alert>\n </div>\n ))\n }\n </div>\n </div>\n }\n </Row>\n </Row>\n\n <Row className=' mt-5 border pt-3 pe-3 px-2'>\n <Form.Group as={Col} md=\"2\">\n <Form.Label>Categoría</Form.Label>\n {\n categories.isLoading ? <Spinner /> : (\n <Form.Select aria-label=\"Default select example\" {...register('category')}>\n <optgroup label=\"Limitación interna\">\n {\n categories.data.interns.map(({ id, category, fancy_name }) => (\n <option value={category} key={id}>{fancy_name}</option>\n ))\n }\n </optgroup>\n <optgroup label=\"Limitación externa\">\n {\n categories.data.externs.map(({ id, category, fancy_name }) => (\n <option value={category} key={id}>{fancy_name}</option>\n ))\n }\n </optgroup>\n <option value=\"otra\">Otra</option>\n </Form.Select>\n )\n }\n </Form.Group>\n <Form.Group className=\"mb-3 mt-3\" controlId=\"exampleForm.ControlTextarea1\">\n <Form.Label>Descripción</Form.Label>\n <Form.Control as=\"textarea\" rows={3} {...register('description')} />\n </Form.Group>\n </Row>\n\n <Modal.Footer className='pt-4'>\n <Button className=\"btn btn-secondary\" onClick={e => setShowModal(false)}>\n Cancelar\n </Button>\n <Button className=\"btn btn-register\" type='submit' disabled={creating || (watch('level') === \"inverter\" && inverterId.length === 0)}>\n {creating && (\n <Spinner\n as=\"span\"\n animation=\"border\"\n size=\"sm\"\n role=\"status\"\n aria-hidden=\"true\"\n className='mx-2 me-2'\n />\n )}\n {creating === false ? 'Registrar' : 'Registrando'}\n </Button>\n </Modal.Footer>\n </Form>\n </Modal.Body>\n </Modal>\n </div>\n )\n}\n","import React, { useContext, useState } from 'react';\nimport Button from 'react-bootstrap/Button';\nimport Modal from 'react-bootstrap/Modal';\nimport { Trash } from 'components/predictionsView/Limitations/icons';\nimport { Spinner } from 'react-bootstrap';\nimport { SolarLimitationsContext } from 'store/SolarLimitationsContext';\nimport { Auth } from 'aws-amplify';\n\nexport const DeleteLimitations = ({ limitation }) => {\n const { onUpdateLimitation } = useContext(SolarLimitationsContext);\n const [showDelete, setShowDelete] = useState(false);\n const handleCloseDelete = () => setShowDelete(false);\n const handleShowDelete = () => setShowDelete(true);\n\n const [showConfirm, setShowConfirm] = useState(false);\n const handleCloseConfirm = () => setShowConfirm(false);\n const handleShowConfirm = () => setShowConfirm(true);\n\n const [loadingEdit, setLoadingEdit] = useState(false);\n const [loadingDelete, setLoadingDelete] = useState(false);\n\n const getUser = async () => {\n const { username } = await Auth.currentAuthenticatedUser();\n return username;\n }\n\n return (\n <>\n <Trash\n limitation={limitation}\n handleShowDelete={handleShowDelete}\n handleShowConfirm={handleShowConfirm}\n />\n\n\n <Modal show={showDelete} onHide={handleCloseDelete}>\n <Modal.Header closeButton>\n <Modal.Title>Eliminar/{limitation.active ? 'desactivar' : 'activar'} limitación</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n Elija si desea {limitation.active ? 'desactivar' : 'activar'} o eliminar la limitación {limitation.record_id}\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"secondary\" disabled={loadingEdit} onClick={handleCloseDelete}>\n Cerrar\n </Button>\n {\n limitation.active === true && (\n <Button className=\"btn-register\" disabled={loadingEdit || loadingDelete} onClick={async (e) => {\n setLoadingEdit(true);\n const username = await getUser();\n const response = await fetch('https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations/active', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json' // Especifica el tipo de contenido\n },\n body: JSON.stringify({ ...limitation, modified_by: username })\n })\n\n if (response.status === 200) {\n setLoadingEdit(false);\n await onUpdateLimitation();\n handleCloseDelete();\n }\n }}>\n {loadingEdit && (\n <Spinner\n as=\"span\"\n animation=\"border\"\n size=\"sm\"\n role=\"status\"\n aria-hidden=\"true\"\n className='mx-2 me-2'\n />\n )}\n {limitation.active === true && loadingEdit === false && 'Desactivar'}\n {limitation.active === true && loadingEdit === true && 'Desactivando'}\n </Button>\n )\n }\n <Button variant=\"danger\" disabled={loadingEdit} onClick={(e) => {\n handleCloseDelete();\n handleShowConfirm();\n }}>\n Eliminar\n </Button>\n </Modal.Footer>\n </Modal>\n\n\n <Modal show={showConfirm} onHide={handleCloseConfirm}>\n <Modal.Header closeButton>\n <Modal.Title>Eliminar limitación</Modal.Title>\n </Modal.Header>\n <Modal.Body>¿Está seguro/a que desea eliminar la limitación {limitation.record_id}?</Modal.Body>\n <Modal.Footer>\n <Button variant=\"secondary\" disabled={loadingDelete} onClick={handleCloseConfirm}>\n Cancelar\n </Button>\n <Button variant=\"danger\" disabled={loadingDelete} onClick={async (e) => {\n setLoadingDelete(true);\n const username = await getUser();\n const response = await fetch('https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations/delete', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json' // Especifica el tipo de contenido\n },\n body: JSON.stringify({ ...limitation, deleted_by: username })\n })\n\n if (response.status === 200) {\n setLoadingDelete(false);\n await onUpdateLimitation();\n handleCloseConfirm();\n }\n }}>\n {loadingDelete && (\n <Spinner\n as=\"span\"\n animation=\"border\"\n size=\"sm\"\n role=\"status\"\n aria-hidden=\"true\"\n className='mx-2 me-2'\n />\n )}\n {loadingDelete ? 'Eliminando' : 'Eliminar'}\n </Button>\n </Modal.Footer>\n </Modal>\n </>\n );\n}","import React, { useContext, useEffect, useState } from 'react'\nimport Button from 'react-bootstrap/Button';\nimport Modal from 'react-bootstrap/Modal';\nimport Form from 'react-bootstrap/Form';\nimport Col from 'react-bootstrap/Col';\nimport Row from 'react-bootstrap/Row';\nimport InputGroup from 'react-bootstrap/InputGroup';\nimport { Alert, Spinner } from 'react-bootstrap';\nimport { Eye } from 'components/predictionsView/Limitations/icons';\nimport { CurrentCentralContext } from 'store';\nimport { useForm } from 'react-hook-form';\nimport { SolarLimitationsContext } from 'store/SolarLimitationsContext';\nimport { UpdateLimitationChart } from 'components/predictionsView/Limitations/charts/UpdateLimitationChart';\nimport Select from 'react-select';\n\nexport const ViewLimitation = ({ limitation }) => {\n const [showModal, setShowModal] = useState(false);\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const [inverterId, setInverterId] = useState([])\n const { categories, centralInverters } = useContext(SolarLimitationsContext)\n const { register, handleSubmit, formState: { errors }, watch, setValue, reset, clearErrors } = useForm();\n\n useEffect(() => {\n if ('nominal_power' in currentCentral && limitation) {\n setInverterId(limitation?.inverter_id)\n reset({\n ...limitation,\n without_date_limit: limitation?.end_date === null ? true : false,\n full_day_limitation: limitation?.frequency === 'complete_day' ? limitation?.data[0] : limitation?.level === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n })\n } else {\n reset();\n }\n }, [showModal, currentCentral])\n\n return (\n <>\n <Eye onClick={() => setShowModal(true)} />\n <Modal size=\"xl\" show={showModal} onHide={() => setShowModal(false)} aria-labelledby=\"example-modal-sizes-title-lg\" fullscreen={true}>\n <Modal.Header closeButton>\n <Modal.Title id=\"example-modal-sizes-title-lg\">\n Modificar limitación\n </Modal.Title>\n </Modal.Header>\n\n <Modal.Body style={{ backgroundColor: '#f5f5f5' }}>\n <Row className='pe-3'>\n <UpdateLimitationChart \n title='Potencia [kW]'\n central={currentCentral}\n nominalPower={currentCentral?.nominal_power}\n limitation={watch('data')}\n level={watch('level')}\n windTurbineId={inverterId}\n turbineNominalPower={currentCentral?.inverters[limitation?.inverter_id?.[0]]?.nominal_power ?? currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power}\n />\n </Row>\n <Form className='pt-4 pe-4 px-4 pb-2 mt-5 border'>\n <h5>Configuración</h5>\n <Row className=\"mb-3\">\n <Form.Group as={Col} md=\"3\" controlId=\"validationCustom01\" className='border pt-3 px-3 mt-3'>\n <Form.Label>Limitación por</Form.Label>\n <div className=\"mb-3\">\n <Form.Check disabled inline checked={watch('level') === 'powerplant'} label=\"Parque completo\" name=\"level\" type='radio' value=\"powerplant\" {...register('level')} />\n <Form.Check disabled inline checked={watch('level') === 'inverter'} label=\"Inversor\" name=\"level\" type='radio' value=\"inverter\" {...register('level')} />\n </div>\n </Form.Group>\n </Row>\n\n <Row>\n {\n watch('level') === 'inverter' && (\n <>\n <div>\n <div className='d-flex justify-content-start'>\n <label className=\"form-check-label mx-2\">Seleccionar inversor</label>\n </div>\n <Select\n options={centralInverters.map(inverter => ({value: inverter,label: `${currentCentral?.inverters[inverter]?.fancy_name} - (${currentCentral?.inverters[inverter]?.nominal_power} kW)` })).sort()}\n defaultValue={limitation?.inverter_id.map(inverter => ({value: inverter,label: `${currentCentral?.inverters[inverter]?.fancy_name} - (${currentCentral?.inverters[inverter]?.nominal_power} kW)` })).sort()}\n isMulti\n isDisabled\n />\n </div>\n </>\n )\n }\n </Row>\n\n <Row className=\"mb-3\">\n <Form.Group as={Col} md=\"5\" controlId=\"validationCustom01\" className='border pt-3 px-3'>\n <div className=\"mb-3 d-flex align-items-center\">\n <div>\n <Form.Label>Fecha desde</Form.Label>\n <Form.Control disabled type='datetime-local' {...register('start_date')} />\n </div>\n <div className='mx-3'>\n <Form.Label>Fecha hasta</Form.Label>\n <Form.Control disabled type='datetime-local' {...register('end_date')} />\n </div>\n <div className='mx-3'>\n <Form.Check disabled type={'checkbox'} label={'Sin fecha limite'} className='mt-4' {...register('without_date_limit')} />\n </div>\n </div>\n </Form.Group>\n </Row>\n\n <Row className='px-1 border' >\n <Row>\n <Row>\n <Form.Check type={'radio'} disabled value=\"complete_day\" label={'Día completo'} className='mt-4 mx-3' {...register('frequency')} />\n </Row>\n <Form.Group as={Col} md=\"2\">\n <InputGroup className=\"mb-1\" hasValidation>\n <InputGroup.Text id=\"basic-addon1\">kW</InputGroup.Text>\n <Form.Control\n disabled\n placeholder=\"Limitación\"\n type='number'\n aria-describedby=\"basic-addon1\"\n className={`${errors.limitation ? 'border-danger' : ''}`}\n {...register('full_day_limitation', {\n required: {\n value: true,\n message: \"Debe ingresar un valor de limitación\"\n },\n min: {\n value: 0,\n message: \"La limitación no debe ser menor a 0\"\n },\n max: {\n value: watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n message: `La limitación no puede ser mayor a ${watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power} kW`\n }\n })}\n />\n </InputGroup>\n </Form.Group>\n {errors.full_day_limitation &&\n <div className='pb-2'>\n <span className='text-danger mx-1'>\n {errors.full_day_limitation.message}\n </span>\n </div>\n }\n </Row>\n <hr style={{ color: '#dee2e6', borderTop: '3px solid #dee2e6' }} />\n <Row>\n <Form.Check disabled type={'radio'} label={'Horaria'} value=\"hourly\" className='mx-3' {...register('frequency')} />\n </Row>\n <Row className='mt-2'>\n {\n [\n \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\",\n \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\", \"21\", \"22\", \"23\"\n ].map((hour, index) => (\n <>\n <Form.Group className='text-center' as={Col} md=\"1\" key={hour}>\n <Form.Label>{parseInt(hour) > 9 ? hour : `0${hour}`}:00</Form.Label>\n <InputGroup className=\"mb-3\">\n {index === 0 && <InputGroup.Text id=\"basic-addon1\" style={{ padding: '4px 6px' }}>kW</InputGroup.Text>}\n {index === 12 && <InputGroup.Text id=\"basic-addon1\" style={{ padding: '4px 6px' }}>kW</InputGroup.Text>}\n <Form.Control\n placeholder=\"Valor\"\n type='number'\n value={watch('frequency') === 'complete_day' ? watch('full_day_limitation') : watch(`data.${hour}`)}\n className='text-center'\n disabled\n {...register(`data.${hour}`, {\n required: {\n value: true,\n message: `Debe ingresar un valor de limitación a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00`\n },\n min: {\n value: 0,\n message: `La limitación aplicada a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00 no debe ser menor a 0`\n },\n max: {\n value: watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power,\n message: `La limitación aplicada a las ${parseInt(hour) > 9 ? hour : `0${hour}`}:00 no puede ser mayor a ${watch('level') === 'powerplant' ? currentCentral?.nominal_power : currentCentral?.inverters[Object.keys(currentCentral?.inverters)[0]]?.nominal_power} kW`\n }\n })}\n />\n </InputGroup>\n </Form.Group>\n </>\n ))\n }\n\n {(errors.data && watch('frequency') === 'hourly') &&\n <div className='pb-2'>\n <div className='text-danger mx-1 col-3'>\n {\n Object.keys(errors.data).map(hour => (\n <div key={`error-${hour}`}>\n <Alert variant='danger' style={{ width: 'auto' }}>{errors.data[hour].message}</Alert>\n </div>\n ))\n }\n </div>\n </div>\n }\n </Row>\n </Row>\n\n <Row className=' mt-5 border pt-3 pe-3 px-2'>\n <Form.Group as={Col} md=\"2\">\n <Form.Label>Categoría</Form.Label>\n {\n categories.isLoading ? <Spinner /> : (\n <Form.Select disabled aria-label=\"Default select example\" {...register('category')}>\n <optgroup label=\"Limitación interna\">\n {\n categories.data.interns.map(({ id, category, fancy_name }) => (\n <option value={category} key={id}>{fancy_name}</option>\n ))\n }\n </optgroup>\n <optgroup label=\"Limitación externa\">\n {\n categories.data.externs.map(({ id, category, fancy_name }) => (\n <option value={category} key={id}>{fancy_name}</option>\n ))\n }\n </optgroup>\n <option value=\"otra\">Otra</option>\n </Form.Select>\n )\n }\n </Form.Group>\n <Form.Group className=\"mb-3 mt-3\" controlId=\"exampleForm.ControlTextarea1\">\n <Form.Label>Descripción</Form.Label>\n <Form.Control disabled as=\"textarea\" rows={3} {...register('description')} />\n </Form.Group>\n </Row>\n\n <Modal.Footer className='pt-4'>\n <Button className=\"btn btn-secondary\" onClick={e => setShowModal(false)}>\n Cerrar\n </Button>\n\n </Modal.Footer>\n </Form>\n\n\n </Modal.Body>\n\n </Modal>\n </>\n )\n}\n","import React, { useContext, useEffect, useState } from 'react'\nimport moment from 'moment';\nimport { Button, Spinner } from 'react-bootstrap';\nimport { SolarLimitationsContext } from 'store/SolarLimitationsContext';\nimport { usePagination } from 'hooks/usePagination';\nimport { CurrentCentralContext } from 'store';\nimport { UpdateLimitation } from '../modals/UpdateLimitation';\nimport { CreateLimitation } from '../modals/CreateLimitation';\nimport { DeleteLimitations } from '../modals/DeleteLimitations';\nimport { ViewLimitation } from '../modals/ViewLimitation';\n\n\nexport const ActivatedTable = ({ tableSelected }) => {\n const { limitations, centralTurbines, limitationLevel, loadingLimitations, inverterSelected } = useContext(SolarLimitationsContext);\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const [activatedLimitations, setActivatedLimitations] = useState(limitations.data)\n const { setFirstPage, setLastPage, currentPage, numbers, records, nPage, prevPage, nextPage, setPage } = usePagination(5, activatedLimitations.filter(({ active, deleted }) => (active === true && deleted === false)));\n\n useEffect(() => {\n const newActivatedLimitations = limitations.data.filter(({ inverter_id, level }) => {\n if (limitationLevel === 'powerplant') return level === 'powerplant'\n if (limitationLevel === 'inverter' && inverterSelected === 'all') return (inverter_id !== undefined)\n if (limitationLevel === 'inverter' && inverterSelected !== 'all') return (inverter_id?.includes(inverterSelected ))\n })\n setActivatedLimitations(newActivatedLimitations);\n }, [limitations, limitationLevel, inverterSelected])\n\n useEffect(() => {\n if (numbers >= 1) {\n setPage(1)\n }\n }, [tableSelected]);\n\n useEffect(() => {\n setPage(1);\n }, [limitations])\n\n return (\n <>\n <div className=\"tab-pane fade show active\" id=\"nav-home\" role=\"tabpanel\" aria-labelledby=\"nav-home-tab\" tabIndex=\"0\">\n {\n loadingLimitations\n ? (\n <div className='d-flex flex-column justify-content-center align-items-center mt-4 mb-4'>\n <Spinner className='mb-2' />\n <p>Cargando limitaciones</p>\n </div>\n )\n : (\n <table className='table mb-3 table-striped border'>\n <thead>\n <tr>\n <th>ID</th>\n <th>Categoría</th>\n {limitationLevel === 'inverter' && (\n <th>Inversores</th>\n )}\n <th>Fecha desde</th>\n <th>Fecha hasta</th>\n <th>Acciones</th>\n </tr>\n </thead>\n <tbody className='w-100'>\n {records.map((limitation) => (\n <tr key={`limitation-n${limitation.record_id}`}>\n <td>{limitation.record_id}</td>\n <td>{limitation.category}</td>\n {\n limitationLevel === 'inverter' && (\n <td>\n {\n limitation?.inverter_id?.length <= 1\n ? currentCentral?.inverters?.[limitation?.inverter_id?.[0]]?.fancy_name \n : `${currentCentral?.inverters?.[limitation?.inverter_id?.[0]]?.fancy_name} (+${limitation?.inverter_id?.length-1})`\n }\n </td>\n )\n }\n <td>{moment(limitation.start_date).format('YYYY-MM-DD HH:mm')}</td>\n <td>{limitation.end_date === null ? 'Sin fecha límite' : moment(limitation.end_date).format('YYYY-MM-DD HH:mm')}</td>\n <td>\n <ViewLimitation limitation={limitation} />\n <UpdateLimitation limitation={limitation} />\n <DeleteLimitations limitation={limitation} />\n </td>\n </tr>\n ))}\n\n </tbody>\n </table>\n )\n }\n\n <div className='d-flex justify-content-between align-items-center pb-3 pt-1'>\n <CreateLimitation />\n <ul className=\"pagination m-0 mx-1 btn-group btn-group-toggle\">\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register me-1`} disabled={currentPage === 1 ? 'disabled' : ''} onClick={setFirstPage}>{'<<'}</button>\n </li>\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register me-1`} disabled={currentPage === 1 ? 'disabled' : ''} onClick={prevPage}>{'<'}</button>\n </li>\n {\n numbers.map((number, i) => (\n <li className={`page-item ${currentPage === number ? 'active' : ''}`} key={`page-${i}`}>\n <button className={`btn btn-secondary mx-1`} disabled={currentPage === number} onClick={(e) => setPage(number)}>{number}</button>\n </li>\n ))\n }\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register mx-1`} disabled={(currentPage === nPage || numbers.length === 0) ? 'disabled' : ''} onClick={nextPage}>{'>'}</button>\n <button style={{color: 'white'}} className={`btn btn-register mx-1`} disabled={(currentPage === nPage || numbers.length === 0) ? 'disabled' : ''} onClick={setLastPage}>{'>>'}</button>\n </li>\n </ul>\n </div>\n </div>\n </>\n )\n}\n","import React, { useContext, useState } from 'react'\nimport { SolarLimitationsContext } from 'store/SolarLimitationsContext';\nimport { Button, Modal, Spinner } from 'react-bootstrap';\nimport { Power } from 'components/predictionsView/Limitations/icons';\nimport { Auth } from 'aws-amplify';\n\nexport const ActivateLimitation = ({ limitation }) => {\n const { onUpdateLimitation } = useContext(SolarLimitationsContext)\n const [show, setShow] = useState(false);\n const [activating, setActivating] = useState(false);\n\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n\n const getUser = async () => {\n const { username } = await Auth.currentAuthenticatedUser();\n return username;\n }\n\n return (\n <>\n <Power handleShow={handleShow} />\n <Modal show={show} onHide={handleClose}>\n <Modal.Header closeButton>\n <Modal.Title>Activar limitación</Modal.Title>\n </Modal.Header>\n <Modal.Body>¿Está seguro/a que desea activar la limitación {limitation.record_id}?</Modal.Body>\n <Modal.Footer>\n <Button variant=\"secondary\" onClick={handleClose} disabled={activating}>\n Cancelar\n </Button>\n <Button className='btn-register' disabled={activating} onClick={async (e) => {\n setActivating(true);\n let username = await getUser();\n const response = await fetch('https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations/active', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json' // Especifica el tipo de contenido\n },\n body: JSON.stringify({ ...limitation, modified_by: username })\n })\n\n if (response.status === 200) {\n setActivating(false);\n await onUpdateLimitation();\n setShow();\n }\n }}>\n {activating && (\n <Spinner\n as=\"span\"\n animation=\"border\"\n size=\"sm\"\n role=\"status\"\n aria-hidden=\"true\"\n className='mx-2 me-2'\n />\n )}\n {activating ? 'Activando' : 'Activar'}\n </Button>\n </Modal.Footer>\n </Modal>\n </>\n )\n}\n","import React, { useContext, useEffect, useMemo, useState } from 'react'\nimport moment from 'moment';\nimport { Spinner } from 'react-bootstrap';\nimport { SolarLimitationsContext } from 'store/SolarLimitationsContext';\nimport { usePagination } from 'hooks/usePagination';\n\nimport { CurrentCentralContext } from 'store';\nimport { DeleteLimitations } from '../modals/DeleteLimitations';\nimport { UpdateLimitation } from '../modals/UpdateLimitation';\nimport { CreateLimitation } from '../modals/CreateLimitation';\nimport { ActivateLimitation } from '../modals/ActivateLimitation';\n\n\nexport const DesactivatedTable = ({ tableSelected }) => {\n const { limitations, centralTurbines, limitationLevel, loadingLimitations, inverterSelected } = useContext(SolarLimitationsContext);\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const [desactivatedLimitations, setDesactivatedLimitations] = useState(limitations.data)\n const { setFirstPage, setLastPage, currentPage, numbers, records, nPage, prevPage, nextPage, setPage } = usePagination(5, desactivatedLimitations.filter(({ active, deleted }) => (active === false && deleted === false)))\n\n useEffect(() => {\n const newDesactivatedLimitations = limitations.data.filter(({ inverter_id, level }) => {\n if (limitationLevel === 'powerplant') return level === 'powerplant'\n if (limitationLevel === 'inverter' && inverterSelected === 'all') return (inverter_id !== undefined)\n if (limitationLevel === 'inverter' && inverterSelected !== 'all') return (inverter_id?.includes(inverterSelected ))\n })\n setDesactivatedLimitations(newDesactivatedLimitations);\n }, [limitations, limitationLevel, inverterSelected])\n\n useEffect(() => {\n if (numbers >= 1) {\n setPage(1)\n }\n }, [tableSelected]);\n\n useEffect(() => {\n setPage(1);\n }, [limitations])\n\n return (\n <>\n <div className=\"tab-pane fade show active\" id=\"nav-home\" role=\"tabpanel\" aria-labelledby=\"nav-home-tab\" tabIndex=\"0\">\n {\n loadingLimitations\n ? (\n <div className='d-flex flex-column justify-content-center align-items-center mt-4 mb-4'>\n <Spinner className='mb-2' />\n <p>Cargando limitaciones</p>\n </div>\n )\n : (\n <table className='table mb-3 table-striped border'>\n <thead>\n <tr>\n <th>ID</th>\n <th>Categoría</th>\n {limitationLevel === 'inverter' && (\n <th>Inversor</th>\n )}\n <th>Fecha desde</th>\n <th>Fecha hasta</th>\n <th>Acciones</th>\n </tr>\n </thead>\n <tbody className='w-100'>\n {records.map((limitation) => (\n <tr>\n <td>{limitation.record_id}</td>\n <td>{limitation.category}</td>\n {\n limitationLevel === 'inverter' && (\n <td>\n {\n limitation?.inverter_id?.length <= 1\n ? currentCentral?.inverters?.[limitation?.inverter_id?.[0]]?.fancy_name \n : `${currentCentral?.inverters?.[limitation?.inverter_id?.[0]]?.fancy_name} (+${limitation?.inverter_id?.length-1})`\n }\n </td>\n )\n }\n <td>{moment(limitation.start_date).format('YYYY-MM-DD HH:mm')}</td>\n <td>{limitation.end_date === null ? 'Sin fecha límite' : moment(limitation.end_date).format('YYYY-MM-DD HH:mm')}</td>\n <td>\n <ActivateLimitation limitation={limitation} />\n <UpdateLimitation limitation={limitation} />\n <DeleteLimitations limitation={limitation} />\n </td>\n </tr>\n ))}\n\n </tbody>\n </table>\n )\n }\n <div className='d-flex justify-content-between align-items-center pb-3 pt-1'>\n <CreateLimitation />\n <ul className=\"pagination m-0 mx-1 btn-group btn-group-toggle\">\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register me-1`} disabled={currentPage === 1 ? 'disabled' : ''} onClick={setFirstPage}>{'<<'}</button>\n </li>\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register me-1`} disabled={currentPage === 1 ? 'disabled' : ''} onClick={prevPage}>{'<'}</button>\n </li>\n {\n numbers.map((number, i) => (\n <li className={`page-item ${currentPage === number ? 'active' : ''}`} key={`page-${i}`}>\n <button className={`btn btn-secondary mx-1`} disabled={currentPage === number} onClick={(e) => setPage(number)}>{number}</button>\n </li>\n ))\n }\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register mx-1`} disabled={(currentPage === nPage || numbers.length === 0) ? 'disabled' : ''} onClick={nextPage}>{'>'}</button>\n <button style={{color: 'white'}} className={`btn btn-register mx-1`} disabled={(currentPage === nPage || numbers.length === 0) ? 'disabled' : ''} onClick={setLastPage}>{'>>'}</button>\n </li>\n </ul>\n </div>\n </div >\n </>\n )\n}\n","import { usePagination } from 'hooks/usePagination';\nimport React, { useContext, useEffect } from 'react'\nimport { Spinner } from 'react-bootstrap';\nimport { SolarLimitationsContext } from 'store/SolarLimitationsContext'\nimport { CreateLimitation } from '../modals/CreateLimitation';\n\nexport const LogsTable = ({ tableSelected }) => {\n const { logs } = useContext(SolarLimitationsContext);\n const { setFirstPage, setLastPage, currentPage, numbers, records, nPage, prevPage, nextPage, setPage } = usePagination(5, logs.data);\n\n useEffect(() => {\n if (numbers >= 1) {\n setPage(1)\n }\n }, [tableSelected]);\n\n useEffect(() => {\n setPage(1);\n }, [logs])\n\n return (\n <>\n <div className=\"tab-pane fade show active\" id=\"nav-home\" role=\"tabpanel\" aria-labelledby=\"nav-home-tab\" tabIndex=\"0\">\n\n {\n logs.isLoading\n ? (\n <div className='d-flex flex-column justify-content-center align-items-center mt-4 mb-4'>\n <Spinner className='mb-2' />\n <p>Cargando registro de actividad</p>\n </div>\n )\n : <table className='table mb-3 table-striped border'>\n <thead>\n <tr>\n <th>Fecha</th><th>Acción</th><th>ID</th><th>Usuario</th>\n </tr>\n </thead>\n <tbody>\n {records.map(({ powerplant_id: id, action, username, limitation_id, registered_at }) => {\n return (\n <tr>\n <td>{registered_at}</td>\n {action === 'create' && <td>Crear</td>}\n {action === 'delete' && <td>Eliminar</td>}\n {action === 'update' && <td>Modificar</td>}\n {action === 'activate' && <td>Activar</td>}\n {action === 'desactivate' && <td>Desactivar</td>}\n <td>{limitation_id}</td>\n <td>{username}</td>\n </tr>\n )\n })}\n </tbody>\n </table>\n }\n\n\n <div className='d-flex justify-content-between align-items-center pb-3 pt-1'>\n <CreateLimitation />\n <ul className=\"pagination m-0 mx-1 btn-group btn-group-toggle\">\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register me-1`} disabled={currentPage === 1 ? 'disabled' : ''} onClick={setFirstPage}>{'<<'}</button>\n </li>\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register me-1`} disabled={currentPage === 1 ? 'disabled' : ''} onClick={prevPage}>{'<'}</button>\n </li>\n {\n numbers.map((number, i) => (\n <li className={`page-item ${currentPage === number ? 'active' : ''}`} key={`page-${i}`}>\n <button className={`btn btn-secondary mx-1`} disabled={currentPage === number} onClick={(e) => setPage(number)}>{number}</button>\n </li>\n ))\n }\n <li className={`page-item`}>\n <button style={{color: 'white'}} className={`btn btn-register mx-1`} disabled={(currentPage === nPage || numbers.length === 0) ? 'disabled' : ''} onClick={nextPage}>{'>'}</button>\n <button style={{color: 'white'}} className={`btn btn-register mx-1`} disabled={(currentPage === nPage || numbers.length === 0) ? 'disabled' : ''} onClick={setLastPage}>{'>>'}</button>\n </li>\n </ul>\n </div>\n\n </div>\n </>\n )\n}\n","import React, { useContext, useState } from 'react'\nimport { Tab, Tabs } from 'react-bootstrap';\nimport { CurrentCentralContext } from 'store';\nimport Title from 'components/Title'\nimport { ActivatedTable } from './tables/ActivatedTable';\nimport { DesactivatedTable } from './tables/DesactivatedTable';\nimport { LogsTable } from './tables/LogsTable';\nimport Select from 'react-select';\nimport { SolarLimitationsContext } from 'store/SolarLimitationsContext';\n\nexport const SolarLimitations = () => {\n const [tableSelected, setTableSelected] = useState('activated');\n const { onChangeLimitationLevel, onChangeInverterSelected, centralInverters, inverterSelected, loadingLimitations, limitationLevel } = useContext(SolarLimitationsContext);\n const { get: currentCentral } = useContext(CurrentCentralContext);\n\n return (\n <>\n <section className='title mt-3'>\n <Title fancyName='Registro de indisponibilidades' />\n </section>\n\n <div className='container-sm informacion-operacional pt-1 mt-3 pb-3 mb-5 border'>\n <div className='w-100 border mb-3 p-2 mt-3 d-flex flex-column align-items-start'>\n <label className='pb-2'>Filtrar por</label>\n <div className='d-flex'>\n <div className=\"form-check form-check-inline\">\n <input className=\"form-check-input\" type=\"radio\" name=\"inlineRadioOptions\" id=\"inlineRadio1\" checked={limitationLevel === 'powerplant'} value=\"option1\" onChange={(e) => onChangeLimitationLevel('powerplant')} />\n <label className=\"form-check-label\" htmlFor=\"inlineRadio1\">Parque completo</label>\n </div>\n <div className=\"form-check form-check-inline\">\n <input disabled={!'inverters' in currentCentral} className=\"form-check-input\" type=\"radio\" name=\"inlineRadioOptions\" id=\"inlineRadio2\" checked={limitationLevel === 'inverter'} value=\"option2\" onChange={(e) => onChangeLimitationLevel('inverter')} />\n <label className=\"form-check-label\" htmlFor=\"inlineRadio2\">Inversores</label>\n </div>\n </div>\n </div>\n\n {\n (!loadingLimitations && limitationLevel === 'inverter' && 'inverters' in currentCentral) && (\n <>\n <div>\n <div className='d-flex justify-content-start'>\n <label className=\"form-check-label mx-2\">Seleccionar inversor</label>\n </div>\n </div>\n\n <div style={{textAlign: 'left'}}>\n\n <Select\n options={[\n {value:'all', label: 'Todos los Inversores'},\n ...centralInverters.sort((a,b)=> ( a.localeCompare(b))).map((inverter) => ({value: inverter,label: currentCentral?.inverters[inverter]?.fancy_name }))\n ]}\n defaultValue={{value:'all', label: 'Todos los Inversores'}}\n onChange={({value}) => onChangeInverterSelected(value)}\n isSearchable\n />\n </div>\n </>\n )\n }\n\n <Tabs\n id=\"controlled-tab-example\"\n activeKey={tableSelected}\n onSelect={(table) => setTableSelected(table)}\n >\n <Tab eventKey=\"activated\" title=\"Activas\">\n <ActivatedTable tableSelected={tableSelected} />\n </Tab>\n <Tab eventKey=\"desactivated\" title=\"Inactivas\">\n <DesactivatedTable tableSelected={tableSelected} />\n </Tab>\n <Tab eventKey=\"logs\" title=\"Registro de actividad\">\n <LogsTable tableSelected={tableSelected} />\n </Tab>\n </Tabs>\n\n </div>\n </>\n )\n\n}\n","import React, { useContext, useEffect, useRef } from 'react'\nimport PropTypes from 'prop-types'\nimport ChartJs from 'chart.js'\nimport moment from 'moment'\nimport groupData from 'utils/data/groupData'\n\n\nimport './chart.css'\nimport { SolarLimitationsContext } from 'store/SolarLimitationsContext'\nimport { CurrentCentralContext } from 'store'\n/**\n *\n * @param {array} data\n * @param {string} timeUnit\n * @param {func} color\n * @param {string} title\n */\nconst SolarPredictions240h = ({\n data = [],\n timeUnit = 'week',\n color = () => '#AAA',\n title = '',\n}) => {\n const chart = useRef(null)\n const myChart = useRef(null);\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const { limitations, limitationsCurve } = useContext(SolarLimitationsContext);\n\n useEffect(() => {\n if (myChart?.current?.destroy) myChart.current.destroy()\n myChart.current = new ChartJs(chart.current, {\n type: 'bar',\n data: {\n labels: [],\n datasets: [\n {\n label: title,\n data: [],\n backgroundColor: color(1),\n stack: 'Stack 0'\n },\n {\n label: 'Limitación [MWh]',\n data: [],\n backgroundColor: '#FFCC5E',\n borderColor: '#FFCC5E',\n pointBackgroundColor: '#FFCC5E',\n stack: 'Stack 0'\n },\n ],\n },\n options: {\n maintainAspectRatio: false,\n scales: {\n xAxes: [{\n type: 'time',\n gridLines: {\n offsetGridLines: true,\n },\n offset: true,\n stacked: true\n }],\n yAxes: [{\n scaleLabel: {\n display: true,\n labelString: title,\n },\n stacked: true\n }],\n },\n annotation: {\n annotations: [{}],\n drawTime: 'beforeDraw', // (default)\n },\n },\n })\n }, [color, title]);\n\n useEffect(() => {\n if (data.length > 0) {\n let limitedPower = limitationsCurve[currentCentral?.id].limitedPower ?? [];\n const processGroupedData = groupData(data.map(({ data: d, date: h }, index) => {\n if (d > limitedPower[index].data) {\n return { data: +limitedPower[index].data.toFixed(2), date: h };\n } else {\n return { data: +d.toFixed(2), date: h };\n }\n }), timeUnit)\n\n myChart.current.data.labels = processGroupedData.map(({ date: itemDate }) => itemDate)\n myChart.current.data.datasets[0].data = processGroupedData.map(({ data: itemData }) => itemData)\n myChart.current.options.scales.xAxes[0].time.unit = timeUnit\n myChart.current.options.scales.xAxes[0].time.round = timeUnit\n myChart.current.data.datasets[1].data = groupData(limitedPower.map(({ data: limitation }, index) => {\n if (limitation < data[index]?.data) {\n return { data: parseFloat((data[index].data - limitation).toFixed(2)), date: moment(limitedPower[index].date) };\n } else {\n return { data: 0, date: moment(limitedPower[index].date) };\n }\n }), timeUnit).map(data => (data.data))\n myChart.current.update()\n }\n\n\n }, [data, timeUnit, limitations])\n\n return (<div className=\"chart\"><canvas ref={chart} id=\"myChart\" /></div>)\n}\nSolarPredictions240h.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.number,\n date: PropTypes.instanceOf(moment),\n })),\n color: PropTypes.func,\n title: PropTypes.string,\n timeUnit: PropTypes.string,\n}\nSolarPredictions240h.defaultProps = {\n data: [],\n timeUnit: 'week',\n color: () => '#AAA',\n title: '',\n}\n/**\n *\n * @param {array} data\n * @param {string} timeUnit\n * @param {func} color\n * @param {string} title\n */\nconst ErrorChart = ({\n data = [],\n timeUnit = 'week',\n color = () => '#AAA',\n title = '',\n}) => {\n const chart = useRef(null)\n const myChart = useRef(null)\n\n useEffect(() => {\n if (myChart?.current?.destroy) myChart.current.destroy()\n myChart.current = new ChartJs(chart.current, {\n type: 'bar',\n data: {\n labels: [],\n datasets: [{\n label: title,\n data: [],\n backgroundColor: color(1),\n }],\n },\n options: {\n maintainAspectRatio: false,\n scales: {\n xAxes: [{\n type: 'time',\n gridLines: {\n offsetGridLines: true,\n },\n offset: true,\n }],\n yAxes: [{\n scaleLabel: {\n display: true,\n labelString: title,\n },\n }],\n },\n annotation: {\n annotations: [{}],\n drawTime: 'beforeDraw', // (default)\n },\n },\n })\n }, [color, title])\n useEffect(() => {\n const processGroupedData = groupData(data, timeUnit)\n myChart.current.data.labels = processGroupedData.map(({ date: itemDate }) => itemDate)\n myChart.current.data.datasets[0].data = processGroupedData.map(({ data: itemData }) => (itemData / 24).toFixed(2))\n myChart.current.options.scales.xAxes[0].time.unit = timeUnit\n myChart.current.options.scales.xAxes[0].time.round = timeUnit\n myChart.current.update()\n }, [data, timeUnit])\n\n return (<div className=\"chart\"><canvas ref={chart} id=\"myChart\" /></div>)\n}\nSolarPredictions240h.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.number,\n date: PropTypes.instanceOf(moment),\n })),\n color: PropTypes.func,\n title: PropTypes.string,\n timeUnit: PropTypes.string,\n}\nSolarPredictions240h.defaultProps = {\n data: [],\n timeUnit: 'week',\n color: () => '#AAA',\n title: '',\n}\n\nexport { SolarPredictions240h, ErrorChart }\n","import React, { useEffect, useState, useContext} from 'react';\nimport moment from 'moment';\nimport momentTZ from 'moment-timezone';\nimport { Title } from 'components';\nimport CenSolarFileRow from '../CenSolarFileRow';\n\nimport './index.css';\nimport { Grid, Select } from 'semantic-ui-react';\nimport SemanticDatepicker from 'react-semantic-ui-datepickers';\nimport { CurrentCentralContext } from 'store';\n\nconst processData = (data) => {\n const decodedData = atob(data.fileContent); // Decodifica la cadena base64\n const byteArray = new Uint8Array(decodedData.length);\n for (let i = 0; i < decodedData.length; i++) {\n byteArray[i] = decodedData.charCodeAt(i);\n }\n // Crear un Blob con los datos decodificados\n const blob = new Blob([byteArray], {\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n });\n\n return blob\n}\n\nexport const CenaceReports = () => {\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const [date, setDate] = useState(moment())\n const [mda, setMda] = useState(false)\n const [augc, setAugc] = useState(false)\n const [forecast, setForecast] = useState(false)\n const [irradiance, setIrradiance] = useState(false)\n\n const getMda = async () => {\n const formatDate = moment(date).format('YYYY-MM-DD')\n const URL = `https://pj7y2vu1pk.execute-api.us-east-1.amazonaws.com/Prod/cenace/mda?date=${formatDate}&powerplant_id=${currentCentral?.id}`;\n const response = await fetch(URL)\n const data = await response.json()\n setMda({ type: 'MDA', hour: '08:00', data: processData(data), title: data.title, available: data.available })\n }\n\n const getAugc = async () => {\n const formatDate = moment(date).format('YYYY-MM-DD')\n const URL = `https://pj7y2vu1pk.execute-api.us-east-1.amazonaws.com/Prod/cenace/augc?date=${formatDate}&powerplant_id=${currentCentral?.id}`;\n const response = await fetch(URL)\n const data = await response.json()\n setAugc({ type: 'AUGC', hour: '15:00', data: processData(data), title: data.title, available: data.available })\n }\n\n const getForecast = async () => {\n const formatDate = moment(date).format('YYYY-MM-DD')\n const URL = `https://pj7y2vu1pk.execute-api.us-east-1.amazonaws.com/Prod/cenace/forecast?date=${formatDate}&powerplant_id=${currentCentral?.id}`;\n const response = await fetch(URL)\n const data = await response.json()\n setForecast({ type: 'Pronóstico 8 días', hour: '08:00', data: processData(data), title: data.title, available: data.available })\n }\n\n const getIrradiance = async () => {\n const formatDate = moment(date).format('YYYY-MM-DD')\n const URL = `https://pj7y2vu1pk.execute-api.us-east-1.amazonaws.com/Prod/cenace/irradiance?date=${formatDate}&powerplant_id=${currentCentral?.id}`;\n const response = await fetch(URL)\n const data = await response.json()\n setIrradiance({ type: 'Radiación', hour: '08:00', data: processData(data), title: data.title, available: data.available })\n }\n\n useEffect(() => {\n getMda();\n getAugc();\n getForecast();\n getIrradiance();\n return () => {\n setMda(false);\n setAugc(false);\n setForecast(false);\n setIrradiance(false);\n }\n }, [date])\n\n const handleDate = (e, data) => {\n setDate(moment.utc(data.value))\n }\n\n return (\n <>\n <Title fancyName='Reportes CENACE' />\n <div className=\"date-control\">\n <SemanticDatepicker\n className=\"datepicker\"\n name=\"datepicker\"\n key=\"picker\"\n locale=\"es-ES\"\n firstDayOfWeek={1}\n format=\"DD-MM-YYYY\"\n size=\"small\"\n value={date.toDate()}\n maxDate={moment.utc().add('d',1).toDate()}\n onChange={(event, data) => handleDate(event, data)}\n showOutsideDays\n clearable={false}\n datePickerOnly={false}\n />\n {/* <Select defaultValue={'00-00'} placeholder='Seleccionar hora' onChange={(event, data) => handleHour(event, data)} options={options} /> */}\n </div>\n\n <Grid columns={4} className=\"title-group\">\n <Grid.Column className=\"title-row\"><h3>Formato</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Hora</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Disponibilidad</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Descargas</h3></Grid.Column>\n </Grid>\n\n {mda !== false && <CenSolarFileRow key={'mdaReport'} doc={mda} />}\n {augc !== false && <CenSolarFileRow key={'augcReport'} doc={augc} />}\n {forecast !== false && <CenSolarFileRow key={'forecastReport'} doc={forecast} />}\n {irradiance !== false && <CenSolarFileRow key={'irradianceReport'} doc={irradiance} />}\n </>\n )\n}","import React, { useEffect, useState, useContext} from 'react';\nimport moment from 'moment';\nimport momentTZ from 'moment-timezone';\nimport { Title } from 'components';\nimport CenSolarFileRow from '../CenSolarFileRow';\n\nimport './index.css';\nimport { Grid, Select } from 'semantic-ui-react';\nimport SemanticDatepicker from 'react-semantic-ui-datepickers';\nimport { CurrentCentralContext } from 'store';\n\nconst processData = (data) => {\n const decodedData = atob(data.fileContent); // Decodifica la cadena base64\n const byteArray = new Uint8Array(decodedData.length);\n for (let i = 0; i < decodedData.length; i++) {\n byteArray[i] = decodedData.charCodeAt(i);\n }\n // Crear un Blob con los datos decodificados\n const blob = new Blob([byteArray], {\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n });\n\n return blob\n}\n\nexport const XmReports = () => {\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const [date, setDate] = useState(moment());\n const [forecast, setForecast] = useState(false);\n\n const getForecast = async () => {\n const formatDate = moment(date).format('YYYY-MM-DD')\n const URL = `https://pj7y2vu1pk.execute-api.us-east-1.amazonaws.com/Prod/xm/forecast?date=${formatDate}&powerplant_id=${currentCentral?.id}`;\n const response = await fetch(URL)\n const data = await response.json()\n setForecast({ type: 'Pronóstico de energía', hour: '08:00', data: processData(data), title: data.title, available: data.available })\n }\n\n useEffect(() => {\n getForecast();\n return () => {\n setForecast(false);\n }\n }, [date])\n\n const handleDate = (e, data) => {\n setDate(moment.utc(data.value))\n }\n\n return (\n <>\n <Title fancyName='Reportes CENACE' />\n <div className=\"date-control\">\n <SemanticDatepicker\n className=\"datepicker\"\n name=\"datepicker\"\n key=\"picker\"\n locale=\"es-ES\"\n firstDayOfWeek={1}\n format=\"DD-MM-YYYY\"\n size=\"small\"\n value={date.toDate()}\n maxDate={moment.utc().add('d',1).toDate()}\n onChange={(event, data) => handleDate(event, data)}\n showOutsideDays\n clearable={false}\n datePickerOnly={false}\n />\n {/* <Select defaultValue={'00-00'} placeholder='Seleccionar hora' onChange={(event, data) => handleHour(event, data)} options={options} /> */}\n </div>\n\n <Grid columns={4} className=\"title-group\">\n <Grid.Column className=\"title-row\"><h3>Formato</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Hora</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Disponibilidad</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Descargas</h3></Grid.Column>\n </Grid>\n\n {forecast !== false && <CenSolarFileRow key={'forecastReport'} doc={forecast} />}\n </>\n )\n}","import React, { useCallback } from 'react';\nimport { Button, Grid, Icon } from 'semantic-ui-react';\n\nimport './index.css';\n\nconst CenHydroFileRow = ({ doc }) => {\n const generateFile = useCallback(\n () => {\n const element = document.createElement('a')\n const fileGet = new Blob([doc.data], { type: 'text/plain' })\n element.href = URL.createObjectURL(fileGet)\n element.download = doc.title\n document.body.appendChild(element)\n\n element.click()\n },\n [],\n )\n return (\n <Grid columns={4}>\n <Grid.Column className=\"hour\">{doc.type}</Grid.Column>\n <Grid.Column className=\"clock\">{doc.hour}</Grid.Column>\n <Grid.Column>\n <Icon\n size=\"large\"\n color={!doc.available ? 'grey' : 'green'}\n name={doc.available ? 'check circle' : 'hourglass start'}\n />\n </Grid.Column>\n <Grid.Column>\n <Button disabled={!doc.available} onClick={generateFile}> Descargar</Button>\n </Grid.Column>\n </Grid>\n )\n}\n\nexport default CenHydroFileRow;\n\n","import React, { useEffect, useState } from 'react';\nimport moment from 'moment'\nimport { Title } from 'components';\nimport SemanticDatepicker from 'react-semantic-ui-datepickers';\n\nimport './index.css';\nimport { Grid } from 'semantic-ui-react';\nimport CenHydroFileRow from '../CenHydroFileRow';\n\nconst calculateDate = (date) => {\n const selectedDate = moment(date).format('YYYY-MM-DD');\n const dateLimit = moment('2024-02-28').format('YYYY-MM-DD');\n\n if(moment(selectedDate).isBefore(dateLimit)) return '09';\n \n return '08';\n}\n\nconst CenHydroReports = ({ central }) => {\n\n const [ date , setDate ] = useState(moment.utc())\n const [ report24009 , setReport24009]= useState(false);\n\n const API = 'https://8jr3hed06e.execute-api.us-east-1.amazonaws.com/production';\n\n useEffect( () => {\n const { id , CEN_data } = central;\n const today = moment.utc(date.toDate()).format('YYYY-MM-DD').split('-');\n\n fetch(`${API}/cen/${id}/${CEN_data.cen_name}/pasadas-240h/${today[0]}/${today[1]}/${today[2]}/${calculateDate(date)}/Pasadas-240h.csv`)\n .then( response => response.json())\n .then( data => {\n setReport24009({type: '240 Horas' , hour: `${calculateDate(date) === '09' ? '09' : '08'}:00`, data: data.body , title: data.title, available: data.available} )\n })\n\n return () => {\n setReport24009(false)\n }\n },[date,central])\n\n const handleDate = (e , data) => {\n console.log(typeof(data.value))\n setDate(moment.utc(data.value))\n }\n\n return(\n <>\n <Title fancyName='Reportes CEN'/>\n <div className=\"asdasd\">\n <SemanticDatepicker\n className=\"asdasd\"\n key=\"picker\"\n locale=\"es-ES\"\n firstDayOfWeek={1}\n format=\"DD-MM-YYYY\"\n size=\"large\"\n value={date.toDate()}\n maxDate={moment.utc().toDate()}\n onChange={(event, data) => handleDate(event, data)}\n showOutsideDays\n clearable={false}\n datePickerOnly={false}\n />\n </div>\n <Grid columns={4} className=\"title-group\">\n <Grid.Column className=\"title-row\"><h3>Formato</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Hora</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Disponibilidad</h3></Grid.Column>\n <Grid.Column className=\"title-row\"><h3>Descargas</h3></Grid.Column>\n </Grid>\n { report24009 !== false && <CenHydroFileRow key={24009} doc={report24009}/>} \n </>\n )\n}\n\nexport default CenHydroReports;","import React, { useContext, useEffect, useMemo } from 'react'\nimport moment from 'moment-timezone'\nimport PropTypes from 'prop-types'\nimport {\n Grid, Segment, Divider\n} from 'semantic-ui-react'\nimport {\n LoadingData,\n Title,\n} from 'components'\nimport usePredictionData from 'hooks/API/usePredictionData'\nimport useForecastData from 'hooks/API/useForecastData'\nimport Chart from 'components/charts/MeteorologyChart'\nimport Predictions48h from 'components/charts/Predictions48h'\nimport SolarPredictions48h from 'components/charts/SolarPredictions48h'\nimport NoSelected from 'components/NoDataFeedBack/NoSelected'\nimport 'react-semantic-ui-datepickers/dist/react-semantic-ui-datepickers.css'\nimport { CurrentCentralContext } from 'store'\nimport {\n colorGeneration,\n colorPrecipitation,\n colorLowNubosity,\n colorMediumNubosity,\n colorTemperature\n} from 'constants/colors'\nimport ChartJs from 'chart.js'\n\nimport './prediction.css'\nimport OperationalData from '../../components/predictionsView/OperationalData'\nimport CenSolarReports from '../../components/predictionsView/CenSolarReports'\nimport CenWindReports from '../../components/predictionsView/CenWindReports'\nimport CenaceSolarReports from '../../components/predictionsView/CenaceSolarReports'\nimport ServiceNotAvailable from 'components/serviceNotAvailable'\nimport { Error } from '../../components/predictionsView/Error'\n\nimport { Auth } from 'aws-amplify'\nimport { useCallback, useState } from 'react'\nimport { Predictions240h } from 'components/charts/Predictions240h'\nimport { BasicChart } from 'components/charts/basicChart'\nimport { WindLimitations } from 'components/predictionsView/WindLimitations/WindLimitations'\nimport { LimitationsContext } from 'store/LimitationsContext'\nimport { LimitationsProvider } from 'store/LimitationsProvider'\nimport { CoesReports } from 'components/predictionsView/CoesReports'\nimport { PredictionsContext } from 'store/PredictionsContext'\nimport { SolarLimitations } from 'components/predictionsView/SolarLimitations/SolarLimitations'\nimport { SolarPredictions240h } from 'components/charts/SolarPredictions240h'\nimport { SolarLimitationsContext } from 'store/SolarLimitationsContext'\nimport { CenaceReports } from 'components/predictionsView/CenaceReports'\nimport { XmReports } from 'components/predictionsView/XmReports'\nimport CenHydroReports from 'components/predictionsView/CenHydroReports'\n\n\nconst ResultsChart = ({ text, number, color }) => {\n const chart = React.useRef(null)\n const myChart = React.useRef(null)\n React.useEffect(() => {\n if (myChart?.current?.destroy) myChart.current.destroy()\n myChart.current = new ChartJs(chart.current, {\n type: 'doughnut',\n data: {\n datasets: [{\n data: [100 - number, number],\n backgroundColor: [\n '#dcdcdc',\n color,\n ],\n }],\n labels: [\n '',\n '',\n ],\n },\n options: {\n scales: {\n xAxes: [{\n display: false,\n }],\n yAxes: [{\n display: false,\n }],\n },\n legend: {\n display: false,\n },\n aspectRatio: 1,\n events: [],\n onHover: () => { },\n onClick: () => { },\n },\n })\n myChart.current.canvas.parentNode.style.height = '50px'\n myChart.current.canvas.parentNode.style.width = '50px'\n myChart.current.update()\n }, [color, number])\n return (\n <Grid relaxed columns={3}>\n <Grid.Column>\n <div className=\"hour center-text\">\n {text}\n </div>\n </Grid.Column>\n <Grid.Column>\n <div className=\"hour center-text\">\n {`${number} %`}\n </div>\n </Grid.Column>\n <Grid.Column className=\"hour\">\n <div className=\"chart\">\n <canvas ref={chart} id=\"myChart\" />\n </div>\n </Grid.Column>\n </Grid>\n\n )\n}\nResultsChart.propTypes = {\n text: PropTypes.string.isRequired,\n color: PropTypes.string.isRequired,\n number: PropTypes.number.isRequired,\n}\n\n\nconst today = moment.utc().format('YYYY-MM-DD').split('-')\nexport const Prediction = ({ fancyName, apps, tz }) => {\n const [userPermissions, setUserPermissions] = useState(false);\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const { limitationsCurve } = useContext(LimitationsContext);\n const { limitationsCurve: solarLimitationsCurve } = useContext(SolarLimitationsContext);\n const { predictions } = useContext(PredictionsContext);\n const [clientId, setClientId] = useState('');\n const { get = {}, get: { id: centralId = null, type, regulator, nominal_power = 0 } } = useContext(CurrentCentralContext)\n const { data: lowCloud, dates: nubosityDates } = usePredictionData(centralId, 'cloud_low', tz)\n const getUserData = useCallback(async () => {\n const { username } = await Auth.currentAuthenticatedUser()\n fetch(`https://gyjgglo391.execute-api.us-east-1.amazonaws.com/Stage/users/${username}`)\n .then(data => data.json())\n .then(data => {\n const { platform_permissions } = data;\n const { operational_data } = platform_permissions\n setUserPermissions(operational_data)\n setClientId(data?.clientID ?? '')\n })\n })\n const { data: windSpeed = [], dates: windSpeedDates } = usePredictionData(centralId, 'wind_speed', tz)\n const { data: irradiance, dates: irradianceDates } = usePredictionData(centralId, 'downward_short', tz)\n const { data: pressureSurface = [], dates: pressureDates } = usePredictionData(centralId, 'pressure_surface', tz)\n const { data: precipitation, dates: precipitationDates } = usePredictionData(centralId, 'precipitation', tz)\n const { data: temperature, dates: temperatureDates } = usePredictionData(centralId, 'temperature', tz)\n\n\n React.useEffect(() => {\n getUserData()\n })\n getUserData()\n const finalPressure = pressureSurface.map(p => (p / 101325)).slice(0, 48);\n\n const deltaPrecipitations = precipitation.map((item, index, array) => {\n if (index === 0) return 0\n return +(item - array[index - 1]).toFixed(1)\n })\n if (!centralId) return (<NoSelected />)\n if (predictions.loading || limitationsCurve.loading || solarLimitationsCurve.loading) return (<LoadingData visible={true}/>)\n\n\n return (\n\n <Segment className='segment-container'>\n {!apps.power_prediction &&\n <ServiceNotAvailable service={'Predicción'} central={get.fancy_name} />\n }\n <div className={`${apps.power_prediction ? \"\" : \"service-container\"}`}>\n <Title fancyName={fancyName} />\n <Divider horizontal />\n\n <div>\n <Grid relaxed columns={2}>\n <Grid.Column>\n\n <Title fancyName='Pronóstico 48 horas' />\n {\n get && get?.apps?.availability\n ? (get?.type === \"solar\")\n ? (<SolarPredictions48h data={predictions[currentCentral?.id].slice(0,48).map( ({data}) => data)} dates={predictions[currentCentral?.id].slice(0,48).map( ({date}) => date)} nominalPower={nominal_power} title=\"Energía [MWh]\" color={colorGeneration(1)} />)\n : (<Predictions48h data={predictions[currentCentral?.id].slice(0,48).map( ({data}) => data)} dates={predictions[currentCentral?.id].slice(0,48).map( ({date}) => date)} nominalPower={nominal_power} title=\"Energía [MWh]\" color={colorGeneration(1)} />)\n : (<Chart data={predictions[currentCentral?.id].slice(0,48).map( ({data}) => data)} dates={predictions[currentCentral?.id].slice(0,48).map( ({date}) => date)}title=\"Energía [MWh]\" color={colorGeneration(1)} />)\n }\n\n {\n get && get?.apps?.availability\n ? (get?.type === \"solar\")\n ? (<SolarLimitations />)\n : (<WindLimitations />)\n : (<OperationalData central={get} permissions={userPermissions} />)\n }\n\n {(type && type === 'wind') && <Chart compressed data={windSpeed.slice(0, 48)} dates={windSpeedDates.slice(0, 48)} title=\"Velocidad del viento [m/s]\" color={colorMediumNubosity(1)} />}\n {(type && type === 'solar') && <Chart compressed data={irradiance.slice(0, 48)} dates={irradianceDates.slice(0, 48)} title=\"Irradiancia [W/m^2]\" color={colorGeneration(1)} />}\n <Chart compressed data={deltaPrecipitations.slice(0, 48)} dates={precipitationDates.slice(0, 48)} title=\"Precipitaciones [mm]\" color={colorPrecipitation(1)} />\n {(type && type === 'wind') && <Chart compressed data={finalPressure} dates={pressureDates.slice(0, 48)} title=\"Presión [atm]\" color={colorGeneration(1)} />}\n {(type && type === 'solar' || type == \"hydro-ror\") && <Chart compressed data={lowCloud.slice(0, 48)} dates={nubosityDates.slice(0, 48)} title=\"Nubosidad baja [%]\" color={colorLowNubosity(1)} />}\n {(type && type === \"hydro-ror\") && <Chart compressed data={temperature.slice(0, 48)} dates={temperatureDates.slice(0, 48)} title=\"Temperatura [°C]\" color={colorTemperature(1)} />}\n </Grid.Column>\n <Grid.Column>\n <Title fancyName='Pronóstico 10 días' />\n {\n get && get?.apps?.availability\n ? (get?.type === \"solar\")\n ? (<SolarPredictions240h title=\"Energía [MWh]\" data={predictions[currentCentral?.id]} timeUnit=\"day\" color={colorGeneration} />)\n : (<Predictions240h title=\"Energía [MWh]\" data={predictions[currentCentral?.id]} timeUnit=\"day\" color={colorGeneration} />)\n : (<BasicChart title=\"Energía [MWh]\" data={predictions[currentCentral?.id]} timeUnit=\"day\" color={colorGeneration} />)\n }\n\n {(get && get.hasOwnProperty('CEN_data') && regulator === 'CEN' && type === 'solar') && <CenSolarReports date={moment.utc().format('YYYY-MM-DD').split('-')} central={get} />}\n {(get && get.hasOwnProperty('CEN_data') && regulator === 'CEN' && type === 'wind') && <CenWindReports central={get} />}\n {(get && get.hasOwnProperty('CEN_data') && regulator === 'CEN' && type === 'hydro-ror') && <CenHydroReports central={get} />}\n {regulator === 'COES' && <CoesReports />}\n {regulator === 'CENACE' && <CenaceReports />}\n {regulator === 'XM' && <XmReports />}\n <hr style={{ margin: '20px' }} />\n <Error central={centralId} tz={tz} />\n </Grid.Column>\n </Grid>\n </div>\n\n </div>\n </Segment>\n )\n}\n\n\n/* \n Validar servicio de reportes\n*/\n\nPrediction.propTypes = {\n fancyName: PropTypes.string.isRequired,\n}\nexport default {\n routeProps: {\n path: '/Prediccion',\n component: Prediction,\n },\n name: 'Predicción',\n}\n","import { useState, useContext, useEffect, useCallback } from \"react\";\nimport get from \"utils/API/utils/get\";\nimport moment from \"moment\";\nimport momentTz from \"moment-timezone\";\nimport { APIContext } from \"store\";\nimport { CurrentCentralContext } from \"store\";\n\nconst getData = async function getDataFromApi(centralId, dataType, date) {\n const path = `powerplants/${centralId}/prediction_240/hour/${date[0]}/${date[1]}/${date[2]}`;\n console.log({path});\n return get(path, 0, true);\n};\n\nexport const usePredictions = () => {\n const { centralsIds, centralsMetaData } = useContext(APIContext);\n const [predictions, setPredictions] = useState({ loading: true });\n\n /**\n * 🔹 `useCallback` evita la recreación de `getSet` en cada render.\n * 🔹 Se ejecuta cuando `tz` cambia, asegurando precisión.\n */\n const getSet = useCallback(async (centralId) => {\n let tz = centralsMetaData[centralId]?.tz;\n \n try {\n // 1️⃣ Obtener la fecha en Madrid y fijar la hora a 00:00:00\n const fecha = momentTz.tz(tz).startOf(\"day\");\n\n // 2️⃣ Convertir la fecha a UTC\n const fechaUTC = fecha.clone().utc();\n\n // 3️⃣ Obtener la fecha en formato YYYY-MM-DD para la API\n const today = fechaUTC.format(\"YYYY-MM-DD\").split(\"-\");\n\n const { data: api240Data, date: apiDate, hour: apiHour, UTC } = await getData(centralId, \"240\", today);\n\n if (!api240Data) {\n return { api240Data: [], id: centralId };\n } else {\n return {\n api240Data: api240Data.map(({ data: d, hour: h }) => ({\n data: +d.toFixed(2),\n date: moment.utc(`${apiDate} ${apiHour}`, \"YYYY-MM-DD HH\").add(h + UTC, \"hours\"),\n })),\n id: centralId,\n };\n }\n } catch (error) {\n console.error(`Error al obtener predicciones para central ${centralId}:`, error);\n return { api240Data: [], id: centralId };\n }\n }, [centralsMetaData]); // 🔥 Se recalcula solo cuando `tz` cambia\n\n useEffect(() => {\n let promises = [];\n if (centralsIds.length > 0) {\n for (let key in centralsIds) {\n let id = centralsIds[key];\n if (!(id in predictions)) {\n promises.push(getSet(id));\n }\n }\n\n Promise.all(promises).then((responseList) => {\n responseList.forEach(({ api240Data, id }) => {\n setPredictions((prevPredictions) => ({\n ...prevPredictions,\n [id]: api240Data,\n }));\n });\n\n setPredictions((prevPredictions) => ({\n ...prevPredictions,\n loading: false,\n }));\n });\n }\n }, [centralsIds, getSet]); // 🔥 Ahora se ejecuta cuando cambia `getSet` (es decir, cuando cambia `tz`)\n\n return {\n predictions,\n };\n};\n","import React from 'react';\nimport { usePredictions } from \"hooks/API/usePredictions\";\nimport { PredictionsContext } from \"./PredictionsContext\";\n\nexport const PredictionsProvider = ({ children }) => {\n const { predictions} = usePredictions();\n\n return (\n <PredictionsContext.Provider value={{predictions}}>\n {children}\n </PredictionsContext.Provider>\n )\n}\n","import React, { useContext, useEffect } from 'react';\nimport { SolarLimitationsContext } from './SolarLimitationsContext';\nimport CurrentCentralContext from './CurrentCentralContext';\nimport { useSolarLimitations } from 'hooks/useSolarLimitations';\n\nexport const SolarLimitationsProvider = ({ children }) => {\n const {\n logs,\n categories,\n limitations,\n getLimitedPower,\n centralInverters,\n inverterSelected,\n limitationLevel,\n startLoadingData,\n limitationsCurve,\n currentLimitation,\n loadingLimitations,\n onUpdateLimitation,\n setCurrentLimitation,\n onChangeLimitationLevel,\n onChangeInverterSelected\n } = useSolarLimitations(Intl.DateTimeFormat().resolvedOptions().timeZone);\n\n return (\n <SolarLimitationsContext.Provider\n value={{\n logs,\n categories,\n limitations,\n getLimitedPower,\n centralInverters,\n inverterSelected,\n limitationLevel,\n startLoadingData,\n limitationsCurve,\n currentLimitation,\n loadingLimitations,\n onUpdateLimitation,\n setCurrentLimitation,\n onChangeLimitationLevel,\n onChangeInverterSelected\n }}\n >\n {children}\n </SolarLimitationsContext.Provider>\n )\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport moment from 'moment';\nimport { CurrentCentralContext } from 'store';\nimport { APIContext } from 'store';\nimport { PredictionsContext } from 'store/PredictionsContext';\n\nexport const useSolarLimitations = (tz) => {\n const { centralsIds, centralsMetaData } = useContext(APIContext);\n const { predictions } = useContext(PredictionsContext);\n const [limitationsCurve, setLimitationsCurve] = useState({ loading: true });\n\n const { get: currentCentral } = useContext(CurrentCentralContext);\n const [logs, setLogs] = useState({ data: [], isLoading: true });\n const [inverterSelected, setInverterSelected] = useState('all');\n const [limitationLevel, setLimitationLevel] = useState('powerplant');\n const [loadingLimitations, setLoadingLimitations] = useState(true);\n const [categories, setCategories] = useState({\n data: {\n interns: [],\n externs: []\n },\n isLoading: true\n });\n const [limitations, setLimitations] = useState({\n data: [],\n total: 0\n });\n const [currentLimitation, setCurrentLimitation] = useState(null);\n const [centralInverters, setCentralInverters] = useState([])\n\n useEffect(() => {\n if (predictions.loading == false) {\n downloadLimitations();\n };\n }, [predictions.loading]);\n\n useEffect(() => {\n if (currentCentral && 'inverters' in currentCentral) {\n setLoadingLimitations(true);\n getLogs().then(response => setLogs({ data: [], isLoading: true }))\n setCentralInverters(Object.keys(currentCentral.inverters).sort());\n getLimitations(currentCentral.id).then(response => {\n setLimitations({\n data: response,\n total: response.length,\n })\n setLoadingLimitations(false);\n });\n // getLimitationCurve();\n getLogs().then(response => setLogs({ isLoading: false, data: response }))\n getCategories().then(categoriesResponse => {\n const categoriesByCentralType = categoriesResponse.filter(category => {\n return category.central_type === currentCentral.type || category.central_type === 'all';\n })\n\n let interns = categoriesByCentralType.filter(category => (category.type === 'intern')).sort();\n let externs = categoriesByCentralType.filter(category => (category.type === 'extern')).sort();\n\n setCategories({\n data: {\n interns: interns,\n externs: externs\n },\n isLoading: false\n });\n })\n }\n }, [currentCentral])\n\n const startLoadingData = async () => {\n if (currentCentral && 'inverters' in currentCentral) {\n setLimitations({ ...limitations });\n setLogs({ ...logs, isLoading: true });\n setCategories({ ...categories, isLoading: true });\n const logsResponse = await getLogs();\n const categoriesResponse = await getCategories();\n const limitationsResponse = await getLimitations(currentCentral.id);\n\n setCentralInverters(Object.keys(currentCentral.inverters).sort());\n setLogs({ ...logs, data: logsResponse, isLoading: false });\n\n const categoriesByCentralType = categoriesResponse.filter(category => {\n return category.central_type === currentCentral.type || category.central_type === 'all';\n })\n\n let interns = categoriesByCentralType.filter(category => (category.type === 'intern')).sort();\n let externs = categoriesByCentralType.filter(category => (category.type === 'extern')).sort();\n\n setCategories({\n data: {\n interns: interns,\n externs: externs\n },\n isLoading: false\n });\n\n setLimitations({\n data: limitationsResponse,\n total: limitationsResponse.length\n })\n setLoadingLimitations(false);\n }\n }\n\n const getLimitations = async (centralId) => {\n const response = await fetch('https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations');\n const limitations = await response.json();\n\n if (limitations.length > 0) {\n const limitationsByCentralId = limitations.filter(({ powerplant_id }) => {\n return powerplant_id === centralId\n });\n\n return limitationsByCentralId\n }\n return []\n }\n\n const onUpdateLimitation = async () => {\n setLimitationsCurve((prevState) => ({\n ...prevState,\n loading: true\n }));\n\n setLoadingLimitations(true)\n setLogs({ ...logs, isLoading: true });\n const logsResponse = await getLogs();\n const limitationsResponse = await getLimitations(currentCentral.id);\n setLogs({ ...logs, data: logsResponse, isLoading: false });\n setLimitations({\n data: limitationsResponse,\n total: limitationsResponse.length\n })\n setLoadingLimitations(false);\n updateCurve(currentCentral.id).then(({ powerplantCurve, invertersCurve, centralId }) => {\n const finalCurve = powerplantCurve.map((hour, index) => {\n return {\n data: Math.min(hour.data, invertersCurve[index].data),\n date: hour.date\n }\n })\n\n const limitedPower = getLimitedPower(centralId, predictions[centralId], invertersCurve, powerplantCurve)\n\n setLimitationsCurve((prevState) => ({\n ...prevState,\n [centralId]: {\n finalCurve: finalCurve.map(limitation => (limitation.data / 1000)),\n limitedPower,\n },\n loading: false\n }))\n });\n setInverterSelected('all');\n }\n\n const onChangeLimitationLevel = (level) => {\n setLimitationLevel(level);\n }\n\n const onChangeInverterSelected = (inverter) => {\n setInverterSelected(inverter);\n }\n\n const getCategories = async () => {\n\n const response = await fetch('https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/categories');\n const categories = await response.json();\n return categories;\n }\n\n const getLogs = async () => {\n const response = await fetch(`https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/logs/${currentCentral.id}/${encodeURIComponent(tz)}`);\n const logs = await response.json();\n return logs;\n }\n\n const getPowerPlantCurve = async (centralId) => {\n let queryParams = {\n start_date: moment().format('YYYY-MM-DD'),\n end_date: moment().add(9, 'd').format('YYYY-MM-DD')\n };\n\n let baseUrl = `https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations-by-dates/${centralId}`\n let queryString = new URLSearchParams(queryParams).toString();\n let urlWithParams = `${baseUrl}?${queryString}`;\n\n try {\n const response = await fetch(urlWithParams);\n if (!response.ok) {\n throw new Error('Error in obtaining constraint data for prediction graphs');\n }\n\n const data = await response.json();\n return data;\n } catch (err) {\n return [];\n }\n }\n\n const getInvertersCurve = async (centralId) => {\n let queryParams = {\n start_date: moment().format('YYYY-MM-DD'),\n end_date: moment().add(9, 'd').format('YYYY-MM-DD')\n };\n\n let baseUrl = `https://no8eorzhx1.execute-api.us-east-1.amazonaws.com/Prod/limitations/inverter/${centralId}`\n let queryString = new URLSearchParams(queryParams).toString();\n let urlWithParams = `${baseUrl}?${queryString}`;\n\n try {\n const response = await fetch(urlWithParams);\n if (!response.ok) {\n throw new Error('Error in obtaining constraint data for prediction graphs');\n }\n\n const data = await response.json();\n return data;\n } catch (err) {\n return []\n }\n }\n\n const getLimitedPower = (centralId, predictions, invertersCurve, powerplantCurve) => {\n if (predictions.length > 0) {\n\n const availablePower = invertersCurve.map(({ data, hour }, index) => {\n return {\n hour: predictions[index]?.date,\n data: ((data / centralsMetaData[centralId].nominal_power) * (predictions[index]?.data * 1000)) / 1000\n }\n });\n\n const limitedPower = powerplantCurve.map(({ data, hour }, index) => {\n return {\n data: parseFloat(Math.min(data / 1000, availablePower[index].data).toFixed(2)),\n date: moment(predictions[index]?.date).format('YYYY-MM-DD HH:mm')\n }\n })\n\n return limitedPower;\n }\n\n return []\n }\n\n const getCurves = async (centralId) => {\n const powerplantCurve = await getPowerPlantCurve(centralId);\n const invertersCurve = await getInvertersCurve(centralId);\n\n return { powerplantCurve, invertersCurve, centralId };\n }\n\n const updateCurve = async (centralId) => {\n const response = await getCurves(centralId);\n return response;\n }\n\n const downloadLimitations = async () => {\n let promises = [];\n\n for (let key in centralsIds) {\n let centralId = centralsIds[key];\n let central = centralsMetaData[centralId];\n\n if ('inverters' in central) {\n\n if (!(centralId in limitationsCurve) && centralId in predictions) {\n promises.push(getCurves(centralId));\n }\n }\n }\n\n Promise.all(promises).then(responses => {\n responses.forEach(({ powerplantCurve, invertersCurve, centralId }) => {\n\n const finalCurve = powerplantCurve.map((hour, index) => {\n return {\n data: Math.min(hour.data, invertersCurve[index].data),\n date: hour.date\n }\n })\n\n const limitedPower = getLimitedPower(centralId, predictions[centralId], invertersCurve, powerplantCurve)\n\n setLimitationsCurve((prevState) => ({\n ...prevState,\n [centralId]: {\n finalCurve: finalCurve.map(limitation => (limitation.data / 1000)),\n limitedPower\n }\n }))\n })\n\n setLimitationsCurve((prevState) => ({\n ...prevState,\n loading: false\n }))\n })\n }\n\n return {\n logs,\n categories,\n limitations,\n getLimitedPower,\n limitationLevel,\n centralInverters,\n inverterSelected,\n limitationsCurve,\n startLoadingData,\n currentLimitation,\n onUpdateLimitation,\n loadingLimitations,\n setCurrentLimitation,\n onChangeLimitationLevel,\n onChangeInverterSelected\n }\n}\n","import React, { useContext, useEffect, useState } from 'react'\nimport ilustration from './undraw_notify_re_65on.svg';\nimport {\n BrowserRouter as Router, Route, NavLink, Switch, useLocation,\n} from 'react-router-dom'\nimport {\n Menu, Form, Sticky, Divider,\n} from 'semantic-ui-react'\nimport { hotjar } from 'react-hotjar'\nimport ReactGA from 'react-ga'\nimport { Auth } from 'aws-amplify';\nimport {\n withAuthenticator,\n Greetings,\n SignIn,\n ConfirmSignIn,\n VerifyContact,\n ForgotPassword,\n RequireNewPassword,\n Loading,\n} from 'aws-amplify-react'\nimport {\n PowerplantSelector, PriceInput, ThresholdInput, DatePicker,\n} from 'components'\nimport {\n PriceContext, ThresholdContext, CurrentCentralContext,\n PriceStore, DateStore, ThresholdStore, CurrentCentralStore, ComputedDataStore,\n} from 'store'\nimport { Generation } from './views/generation'\nimport { Dashboard } from './views/dashboard'\nimport { Soiling } from './views/soiling'\nimport { Meteorology } from './views/meteorology'\nimport { Prediction } from './views/prediction'\nimport logo from './assets/logo-suncast.png'\nimport './App.css'\nimport 'semantic-ui-css/semantic.min.css'\nimport { LimitationsProvider } from 'store/LimitationsProvider'\nimport ServiceNotAvailable from 'components/serviceNotAvailable'\nimport { PredictionsProvider } from 'store/PredictionsProvider';\nimport { SolarLimitationsProvider } from 'store/SolarLimitationsProvider';\nimport { APIContext } from 'store';\nimport moment from 'moment';\n\nconst PricePaths = new Set(['/Ensuciamiento'])\nconst DatePaths = (areSoilingCentrals) => areSoilingCentrals ? new Set(['/Ensuciamiento', '/Generacion']) : new Set(['/Ensuciamiento', '/']) \nconst SelectorPowerplantsPaths = (areSoilingCentrals) => areSoilingCentrals ? new Set(['/Ensuciamiento', '/Meteorologia', '/Generacion', '/Prediccion']) : new Set(['/Ensuciamiento', '/Meteorologia', '/', '/Prediccion'])\nconst ThresholdPaths = new Set(['/Ensuciamiento'])\n\nconst InputsHeader = ({ currentPowerplant, areSoilingCentrals}) => {\n const { pathname } = useLocation()\n return (\n <Sticky className=\"inputs\">\n <Form>\n <Form.Group>\n {SelectorPowerplantsPaths(areSoilingCentrals).has(pathname) && (<PowerplantSelector />)}\n {DatePaths(areSoilingCentrals).has(pathname) && (<DatePicker />)}\n {PricePaths.has(pathname) && (<PriceInput currentPowerplant={currentPowerplant} />)}\n {ThresholdPaths.has(pathname) && (<ThresholdInput currentPowerplant={currentPowerplant} />)}\n </Form.Group>\n </Form>\n <Divider />\n </Sticky>\n )\n}\n\nconst HeaderMenu = ({modules}) => {\n const { pathname } = useLocation()\n return (\n <Menu className=\"App-nav\">\n {modules.map((module) => (\n // with a name, and routes\n <NavLink\n exact\n to={module.routeProps.path}\n key={module.name}\n activeClassName=\"active\"\n className=\"text-decoration-none\"\n >\n <Menu.Item\n name={module.name}\n className={module.routeProps.path === pathname ? 'active' : ''}\n >\n {module.name}\n </Menu.Item>\n </NavLink>\n ))}\n </Menu>\n )\n}\n\nconst getBrowser = () => {\n let sBrowser, sUsrAg = navigator.userAgent;\n \n if(sUsrAg.indexOf(\"Chrome\") > -1) {\n sBrowser = \"Google Chrome\";\n } else if (sUsrAg.indexOf(\"Safari\") > -1) {\n sBrowser = \"Apple Safari\";\n } else if (sUsrAg.indexOf(\"Opera\") > -1) {\n sBrowser = \"Opera\";\n } else if (sUsrAg.indexOf(\"Firefox\") > -1) {\n sBrowser = \"Mozilla Firefox\";\n } else if (sUsrAg.indexOf(\"MSIE\") > -1) {\n sBrowser = \"Microsoft Internet Explorer\";\n }\n \n return sBrowser;\n}\n\nconst getStage = (appStage) => {\n if(appStage=='production'){\n return 'Prod'\n }else{\n return 'Stage'\n }\n}\n\nconst getDate = () => {\n\n const today = moment.utc().format('YYYY-MM-DD').split('-')\n\n return {\n year: today[0],\n month: today[1],\n day: today[2],\n full_date: moment.utc().format('YYYY-MM-DD HH:mm')\n }\n}\n\nfunction App() {\n const { centralsIds, centralsMetaData} = useContext(APIContext);\n const { get: price } = useContext(PriceContext)\n const { get: threshold } = useContext(ThresholdContext)\n const { get: currentPowerplant = {} } = useContext(CurrentCentralContext)\n const [modules, setModules] = useState([\n {name: \"Generación\", routeProps: { path: \"/\"}},\n {name: \"Meteorología\", routeProps: { path: \"/Meteorologia\"}},\n {name: \"Ensuciamiento\", routeProps: { path: \"/Ensuciamiento\"}},\n {name: \"Predicción\", routeProps: { path: \"/Prediccion\"}},\n ])\n const [areSoilingCentrals, setAreSoilingCentrals] = useState(false)\n\n useEffect(()=> {\n if(Object.keys(centralsMetaData).length > 1){\n const countSoilingCentrals = centralsIds?.map( id => (centralsMetaData[id]))?.filter( central => (central?.services?.soiling_service === true));\n\n if(countSoilingCentrals?.length > 0){\n setModules([\n {name: \"Dashboard\", routeProps: { path: \"/\"}},\n {name: \"Generación\", routeProps: { path: \"/Generacion\"}},\n {name: \"Meteorología\", routeProps: { path: \"/Meteorologia\"}},\n {name: \"Ensuciamiento\", routeProps: { path: \"/Ensuciamiento\"}},\n {name: \"Predicción\", routeProps: { path: \"/Prediccion\"}},\n ]);\n setAreSoilingCentrals(true);\n }\n }\n },[centralsMetaData]);\n\n useEffect( () => {\n\n const connectionDate = getDate();\n\n const getUser = async () => {\n\n const user = await Auth.currentSession()\n\n return user\n }\n\n getUser()\n .then( user => {\n const { idToken } = user;\n const { payload } = idToken;\n const nickname = payload[\"cognito:username\"]\n return fetch(`https://gyjgglo391.execute-api.us-east-1.amazonaws.com/Prod/users/${nickname}`)\n })\n .then( data => data.json())\n .then( data => {\n console.log(getStage(process.env.REACT_APP_STAGE))\n let template = {\n \"application\": \"Platform\",\n \"user\": data.pkey,\n \"client\": data.clientID,\n \"browser\": getBrowser(),\n \"year\": connectionDate.year,\n \"month\": connectionDate.month,\n \"day\": connectionDate.day,\n \"connection_date\": connectionDate.full_date\n }\n\n fetch(`https://4egk65v693.execute-api.us-east-1.amazonaws.com/${getStage(process.env.REACT_APP_STAGE)}/connection`, { method: \"POST\", body: JSON.stringify(template)})\n .then(response => response.json())\n .then(response => console.log(response))\n })\n }, [] )\n\n hotjar.initialize(1750677, 6)\n ReactGA.initialize('UA-133370693-3')\n ReactGA.pageview(window.location.pathname + window.location.search)\n const {\n fancyName = '',\n tz = '',\n currentSoilingRate = '0',\n nominalPower = '0',\n id: centralId = '',\n apps = {\n power_ht: false,\n power_prediction: false,\n soiling: false,\n weather: false\n }\n\n } = currentPowerplant\n\n return (\n <Router>\n <div className=\"App\">\n <header className=\"App-header\">\n <img src={logo} className=\"App-logo\" alt=\"logo\" />\n <HeaderMenu modules={modules}/>\n </header>\n <div className=\"App-content\">\n <InputsHeader currentPowerplant={currentPowerplant} areSoilingCentrals={areSoilingCentrals} />\n <Switch>\n {areSoilingCentrals ? (\n <>\n <Route exact path=\"/\" key=\"Dashboard\">\n <Dashboard\n apps={apps}\n centralId={centralId}\n fancyName={fancyName}\n currentSoilingRate={+currentSoilingRate}\n nominalPower={+nominalPower}\n threshold={+threshold}\n price={+price}\n tz={tz}\n />\n </Route>\n <Route path=\"/Generacion\" key=\"Generación\">\n <Generation\n apps={apps}\n centralId={centralId}\n fancyName={fancyName}\n currentSoilingRate={+currentSoilingRate}\n nominalPower={+nominalPower}\n threshold={+threshold}\n price={+price}\n tz={tz}\n />\n </Route>\n <Route path=\"/Meteorologia\" key=\"Meteorología\">\n <Meteorology\n apps={apps}\n centralId={centralId}\n fancyName={fancyName}\n currentSoilingRate={+currentSoilingRate}\n nominalPower={+nominalPower}\n threshold={+threshold}\n price={+price}\n tz={tz}\n />\n </Route>\n <Route path=\"/Ensuciamiento\" key=\"Ensuciamiento\">\n <Soiling\n apps={apps}\n centralId={centralId}\n fancyName={fancyName}\n currentSoilingRate={+currentSoilingRate}\n nominalPower={+nominalPower}\n threshold={+threshold}\n price={+price}\n tz={tz}\n />\n </Route>\n <Route path=\"/Prediccion\" key=\"Predicción\">\n <Prediction\n apps={apps}\n centralId={centralId}\n fancyName={fancyName}\n currentSoilingRate={+currentSoilingRate}\n nominalPower={+nominalPower}\n threshold={+threshold}\n price={+price}\n tz={tz}\n />\n </Route>\n </>\n ) : (\n <>\n <Route exact path=\"/\" key=\"Generación\">\n <Generation\n apps={apps}\n centralId={centralId}\n fancyName={fancyName}\n currentSoilingRate={+currentSoilingRate}\n nominalPower={+nominalPower}\n threshold={+threshold}\n price={+price}\n tz={tz}\n />\n </Route>\n <Route path=\"/Meteorologia\" key=\"Meteorología\">\n <Meteorology\n apps={apps}\n centralId={centralId}\n fancyName={fancyName}\n currentSoilingRate={+currentSoilingRate}\n nominalPower={+nominalPower}\n threshold={+threshold}\n price={+price}\n tz={tz}\n />\n </Route>\n <Route path=\"/Ensuciamiento\" key=\"Ensuciamiento\">\n <Soiling\n apps={apps}\n centralId={centralId}\n fancyName={fancyName}\n currentSoilingRate={+currentSoilingRate}\n nominalPower={+nominalPower}\n threshold={+threshold}\n price={+price}\n tz={tz}\n />\n </Route>\n <Route path=\"/Prediccion\" key=\"Predicción\">\n <Prediction\n apps={apps}\n centralId={centralId}\n fancyName={fancyName}\n currentSoilingRate={+currentSoilingRate}\n nominalPower={+nominalPower}\n threshold={+threshold}\n price={+price}\n tz={tz}\n />\n </Route>\n </>\n )}\n </Switch>\n </div>\n </div>\n </Router>\n )\n}\n\nconst NotUserInfo = () => {\n return (\n <div className='not-user-info'>\n <div className='sna-dialog'>\n <div className='sna-dialog-content__title'>\n <h1>Ha ocurrido un problema</h1>\n </div>\n <hr />\n <div className='sna-dialog-content'>\n <img src={ilustration} alt=\"\" />\n <p className='sna-dialog-content__paragraph'>\n La herramienta de no esta disponible para la central. Para mas informacion acerca de la herramienta y sus características, puede escribirnos al correo comercial@suncast.cl.\n <br />\n <br />\n Si la herramienta ya fue incluida en su plan, por favor escribanos al correo informatica@suncast.cl.\n <br />\n <br />\n Saludos cordiales, el equipo Suncast.\n </p>\n {/* <h1 className='cuadro-content__contact'>Contáctanos</h1> */}\n {/* <a href=\"#\">\n <button className='btn-meeting'>Agendar reunión</button>\n </a> */}\n </div>\n </div>\n </div>\n )\n}\n\nconst NoUserFeedback = () => {\n return (\n <div style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '70vh'\n }}>\n <div style={{\n maxWidth: '600px'\n }}>\n <h1 style={{ textAlign: 'center' }}>Ha ocurrido un problema</h1>\n <br />\n <p style={{\n textAlign: 'center'\n }}>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quia voluptate exercitationem eligendi explicabo maxime nostrum nisi ullam commodi totam dolorem, suscipit quaerat dolore ratione quod, culpa quis necessitatibus aperiam accusamus.</p>\n </div>\n </div>\n )\n}\n\nconst Context = () => {\n const [user, setUser] = useState(undefined);\n\n const getUser = async () => {\n const userData = await Auth.currentSession();\n return userData;\n }\n\n useEffect(() => {\n getUser().then(({ accessToken }) => {\n const { payload: { username } } = accessToken;\n setUser(username);\n })\n }, []);\n\n if (user === undefined || user === null) {\n return (\n <ThresholdStore>\n <PriceStore>\n <DateStore>\n <ComputedDataStore>\n <CurrentCentralStore>\n <PredictionsProvider>\n <LimitationsProvider>\n <SolarLimitationsProvider>\n <NoUserFeedback />\n </SolarLimitationsProvider>\n </LimitationsProvider>\n </PredictionsProvider>\n </CurrentCentralStore>\n </ComputedDataStore>\n </DateStore>\n </PriceStore>\n </ThresholdStore>\n )\n }\n\n return (\n <ThresholdStore>\n <PriceStore>\n <DateStore>\n <ComputedDataStore>\n <CurrentCentralStore>\n <PredictionsProvider>\n <LimitationsProvider>\n <SolarLimitationsProvider>\n <App />\n </SolarLimitationsProvider>\n </LimitationsProvider>\n </PredictionsProvider>\n </CurrentCentralStore>\n </ComputedDataStore>\n </DateStore>\n </PriceStore>\n </ThresholdStore>\n )\n}\nexport default withAuthenticator(\n Context,\n true, [\n <Greetings />,\n <SignIn />,\n <ConfirmSignIn />,\n <VerifyContact />,\n <ForgotPassword />,\n <RequireNewPassword />,\n <Loading />,\n],\n)\n","const scalesDefault = {\n yAxes: [{\n type: 'linear',\n ticks: {\n beginAtZero: true,\n min: 0,\n },\n min: 0,\n }],\n xAxes: [{\n type: 'time',\n time: {\n displayFormats: {\n year: 'YYYY',\n quarter: '[Q]Q YYYY',\n month: 'MMM YYYY',\n week: 'DD MMM',\n day: 'DD MMM',\n hour: 'HH:00',\n },\n isoWeekday: true,\n tooltipFormat: 'DD/MM/YY',\n },\n distribution: 'series',\n gridLines: {\n offsetGridLines: true,\n },\n offset: true,\n }],\n}\n\nexport default scalesDefault\n","import Chart from 'chart.js'\nimport annotations from 'chartjs-plugin-annotation'\nimport scalesDefault from 'constants/chart'\n\n\n/* this is a set up of chat js */\nChart.Tooltip.positioners.cursor = (chartElements, coordinates) => coordinates\nChart.defaults.global.scales = {\n ...scalesDefault,\n}\nChart.defaults.global.tooltips = {\n ...Chart.defaults.global.tooltips,\n position: 'cursor',\n mode: 'index',\n intersect: false,\n}\nChart.defaults.global.tooltips.mode = 'index'\nChart.defaults.global.tooltips.position = 'cursor'\nChart.defaults.global.tooltips.intersect = false\n\nChart.plugins.register({\n annotations,\n})\n\nexport default Chart\n","import React, { useState } from 'react'\nimport ReactDOM from 'react-dom'\nimport moment from 'moment'\nimport momentTimeZone from 'moment-timezone'\nimport Amplify, { I18n } from 'aws-amplify'\nimport awsconfig from './aws-exports'\nimport { login } from './lang'\nimport 'moment/locale/es'\nimport App from './App'\nimport 'utils/charts'\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport './index.css'\nimport { LimitationsProvider } from 'store/LimitationsProvider'\n// or 'aws-amplify-react-native'\nAmplify.configure(awsconfig) // All the parent knows is that it has modules ...\nconst authScreenLabels = login;\n\nI18n.setLanguage('es')\nI18n.putVocabularies(authScreenLabels)\n\nmoment.locale('es')\nmomentTimeZone.tz.setDefault('UTC')\n// localStorage.clear();\nReactDOM.render(<App />, document.getElementById('root'))\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\n","export default {}\n\nconst login = {\n es: {\n 'Sign In': 'Ingresar',\n 'Forget your password? ': '¿Olvidó su contraseña?',\n 'Sign in to your account': 'Ingresar a la plataforma',\n 'Reset password': 'Cambiar contraseña',\n Hello: 'Bienvenido ',\n Change: 'Cambiar',\n 'Enter your username': 'Ingresa tu nombre de usuario',\n 'Enter your password': 'Ingresa tu contraseña',\n 'Resend Code': 'Reenviar codigo',\n },\n}\nexport { login }\n","module.exports = __webpack_public_path__ + \"static/media/undraw_notify_re_65on.cf5a37ba.svg\";","module.exports = __webpack_public_path__ + \"static/media/undraw_notify_re_65on.cf5a37ba.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo-suncast.2f88aa37.png\";"],"sourceRoot":""}