{"version":3,"sources":["webpack://[name]/webpack/universalModuleDefinition","webpack://[name]/webpack/bootstrap","webpack://[name]/./src/core/pages/system/monitoring/monitoring.module.scss","webpack://[name]/./src/core/pages/system/monitoringConfig/config.module.scss","webpack://[name]/./src/core/pages/system/api/api.module.scss","webpack://[name]/./src/components/TDatetime.tsx","webpack://[name]/./src/core/pages/core/coreMap/coreMap.module.scss","webpack://[name]/./src/components/borderName.tsx","webpack://[name]/./src/components/downloadButton.module.scss","webpack://[name]/./src/core/pages/core/scheduledExchanges/row.tsx","webpack://[name]/./src/core/pages/core/allocationConstraint/row.tsx","webpack://[name]/./src/core/pages/core/atc/row.tsx","webpack://[name]/./src/core/pages/core/borderDataOverview/row.tsx","webpack://[name]/./src/core/pages/core/congestionIncome/row.tsx","webpack://[name]/./src/core/pages/core/coreMarketGraph/content.tsx","webpack://[name]/./src/core/pages/core/coreMarketView/content.tsx","webpack://[name]/./src/core/pages/core/cra/row.tsx","webpack://[name]/./src/core/pages/core/d2cf/row.tsx","webpack://[name]/./src/core/pages/core/intradayAtc/row.tsx","webpack://[name]/./src/core/pages/core/intradayNtc/row.tsx","webpack://[name]/./src/core/pages/core/lta/row.tsx","webpack://[name]/./src/core/pages/core/ltn/row.tsx","webpack://[name]/./src/core/pages/core/maxExchanges/row.tsx","webpack://[name]/./src/core/pages/core/maxNetPos/row.tsx","webpack://[name]/./src/core/pages/core/netPos/row.tsx","webpack://[name]/./src/core/pages/core/priceSpread/row.tsx","webpack://[name]/./src/core/pages/core/finalComputation/row.tsx","webpack://[name]/./src/core/pages/core/preFinalComputation/row.tsx","webpack://[name]/./src/core/pages/core/referenceNetPosition/row.tsx","webpack://[name]/./src/core/pages/core/refprog/row.tsx","webpack://[name]/./src/core/pages/core/shadowAuctionAtc/row.tsx","webpack://[name]/./src/core/pages/core/shadowPrices/row.tsx","webpack://[name]/./src/core/pages/core/validationReductions/row.tsx","webpack://[name]/./src/core/pages/core/initialComputation/row.tsx","webpack://[name]/./src/core/pages/core/bexRestrictions/row.tsx","webpack://[name]/./src/components/checkIcon.tsx","webpack://[name]/./src/components/busyOverlay.module.scss","webpack://[name]/./src/components/doubleBounce.module.scss","webpack://[name]/./src/components/jaoLogo.module.scss","webpack://[name]/./src/components/title.module.scss","webpack://[name]/./src/core/pages/navigation.module.scss","webpack://[name]/./src/components/multiselect.module.scss","webpack://[name]/./src/components/menuItem.module.scss","webpack://[name]/./src/components/timePicker.module.scss","webpack://[name]/./src/components/jaoLogoMenu.module.scss","webpack://[name]/./src/core/infrastructure/http/index.ts","webpack://[name]/./src/components/sheetDataPart.module.scss","webpack://[name]/./src/core/pages/system/jaoLogin/login.module.scss","webpack://[name]/./src/components/select.module.scss","webpack://[name]/./src/components/searchForApi/search.module.scss","webpack://[name]/./src/core/pages/core/borderDataOverview/borderDataOverview.module.scss","webpack://[name]/./src/components/contentPart.module.scss","webpack://[name]/./src/core/pages/core/coreMarketGraph/coreMarketGraph.module.scss","webpack://[name]/./src/core/pages/core/coreMarketView/coreMarketView.module.scss","webpack://[name]/./src/components/search/search.module.scss","webpack://[name]/./src/components/doubleBounce.tsx","webpack://[name]/./src/components/busyOverlay.tsx","webpack://[name]/./src/components/jaoLogo.tsx","webpack://[name]/./src/components/title.tsx","webpack://[name]/./src/components/notFound.tsx","webpack://[name]/./src/components/multiselect.tsx","webpack://[name]/./src/components/menuItem.tsx","webpack://[name]/./src/components/timePicker.tsx","webpack://[name]/./src/components/jaoLogoMenu.tsx","webpack://[name]/./src/core/pages/navigation.tsx","webpack://[name]/./src/components/sheetDataPart.tsx","webpack://[name]/./src/components/downloadButton.tsx","webpack://[name]/./src/components/sheetHeader.tsx","webpack://[name]/./src/components/TDate.tsx","webpack://[name]/./src/core/pages/system/monitoring/row.tsx","webpack://[name]/./src/core/pages/system/monitoring/list.tsx","webpack://[name]/./src/core/pages/system/monitoring/index.tsx","webpack://[name]/./src/core/pages/pageList.tsx","webpack://[name]/./src/core/pages/system/monitoringFailed/row.tsx","webpack://[name]/./src/core/pages/system/monitoringFailed/list.tsx","webpack://[name]/./src/core/pages/system/monitoringFailed/index.tsx","webpack://[name]/./src/core/pages/system/monitoringConfig/selectField.tsx","webpack://[name]/./src/core/pages/system/monitoringConfig/editableRow.tsx","webpack://[name]/./src/core/pages/system/monitoringConfig/readonlyRow.tsx","webpack://[name]/./src/core/pages/system/monitoringConfig/row.tsx","webpack://[name]/./src/core/pages/system/monitoringConfig/list.tsx","webpack://[name]/./src/core/pages/system/monitoringConfig/index.tsx","webpack://[name]/./src/core/pages/system/jaoLogin/index.tsx","webpack://[name]/./src/core/pages/system/home/index.tsx","webpack://[name]/./src/components/select.tsx","webpack://[name]/./src/core/pages/system/api/tab_curl.tsx","webpack://[name]/./src/components/searchForApi/inputField.tsx","webpack://[name]/./src/components/searchForApi/searchOption.tsx","webpack://[name]/./src/components/searchForApi/index.tsx","webpack://[name]/./src/core/pages/system/api/tab_tryout.tsx","webpack://[name]/./src/core/pages/system/api/tab_request.tsx","webpack://[name]/./src/core/pages/system/api/tab_response.tsx","webpack://[name]/./src/core/pages/system/api/index.tsx","webpack://[name]/./src/core/pages/core/scheduledExchanges/list.tsx","webpack://[name]/./src/core/pages/core/scheduledExchanges/index.tsx","webpack://[name]/./src/core/pages/core/alphaFactor/row.tsx","webpack://[name]/./src/core/pages/core/alphaFactor/list.tsx","webpack://[name]/./src/core/pages/core/alphaFactor/index.tsx","webpack://[name]/./src/core/pages/core/allocationConstraint/list.tsx","webpack://[name]/./src/core/pages/core/allocationConstraint/index.tsx","webpack://[name]/./src/core/pages/core/atc/list.tsx","webpack://[name]/./src/core/pages/core/atc/index.tsx","webpack://[name]/./src/core/pages/core/borderDataOverview/list.tsx","webpack://[name]/./src/core/pages/core/borderDataOverview/index.tsx","webpack://[name]/./src/core/pages/core/congestionIncome/list.tsx","webpack://[name]/./src/core/pages/core/congestionIncome/index.tsx","webpack://[name]/./src/core/pages/core/coreMap/country.tsx","webpack://[name]/./src/core/pages/core/coreMap/horizontalExchange.tsx","webpack://[name]/./src/core/pages/core/coreMap/verticalExchange.tsx","webpack://[name]/./src/core/pages/core/coreMap/content.tsx","webpack://[name]/./src/components/contentPart.tsx","webpack://[name]/./src/core/pages/core/coreMap/index.tsx","webpack://[name]/./src/core/pages/core/coreMarketGraph/index.tsx","webpack://[name]/./src/core/pages/core/coreMarketView/index.tsx","webpack://[name]/./src/core/pages/core/cra/list.tsx","webpack://[name]/./src/core/pages/core/cra/index.tsx","webpack://[name]/./src/core/pages/core/d2cf/list.tsx","webpack://[name]/./src/core/pages/core/d2cf/index.tsx","webpack://[name]/./src/core/pages/core/intradayAtc/list.tsx","webpack://[name]/./src/core/pages/core/intradayAtc/index.tsx","webpack://[name]/./src/core/pages/core/intradayNtc/list.tsx","webpack://[name]/./src/core/pages/core/intradayNtc/index.tsx","webpack://[name]/./src/core/pages/core/lta/list.tsx","webpack://[name]/./src/core/pages/core/lta/index.tsx","webpack://[name]/./src/core/pages/core/ltn/list.tsx","webpack://[name]/./src/core/pages/core/ltn/index.tsx","webpack://[name]/./src/core/pages/core/maxExchanges/list.tsx","webpack://[name]/./src/core/pages/core/maxExchanges/index.tsx","webpack://[name]/./src/core/pages/core/maxNetPos/list.tsx","webpack://[name]/./src/core/pages/core/maxNetPos/index.tsx","webpack://[name]/./src/core/pages/core/netPos/list.tsx","webpack://[name]/./src/core/pages/core/netPos/index.tsx","webpack://[name]/./src/core/pages/core/pra/row.tsx","webpack://[name]/./src/core/pages/core/pra/list.tsx","webpack://[name]/./src/core/pages/core/pra/index.tsx","webpack://[name]/./src/core/pages/core/priceSpread/list.tsx","webpack://[name]/./src/core/pages/core/priceSpread/index.tsx","webpack://[name]/./src/core/pages/core/finalComputation/list.tsx","webpack://[name]/./src/components/pagination.tsx","webpack://[name]/./src/components/search/inputField.tsx","webpack://[name]/./src/components/search/searchOption.tsx","webpack://[name]/./src/components/search/index.tsx","webpack://[name]/./src/utils.ts","webpack://[name]/./src/core/pages/core/finalComputation/index.tsx","webpack://[name]/./src/core/pages/core/preFinalComputation/list.tsx","webpack://[name]/./src/core/pages/core/preFinalComputation/index.tsx","webpack://[name]/./src/core/pages/core/referenceNetPosition/list.tsx","webpack://[name]/./src/core/pages/core/referenceNetPosition/index.tsx","webpack://[name]/./src/core/pages/core/refprog/list.tsx","webpack://[name]/./src/core/pages/core/refprog/index.tsx","webpack://[name]/./src/core/pages/core/shadowAuctionAtc/list.tsx","webpack://[name]/./src/core/pages/core/shadowAuctionAtc/index.tsx","webpack://[name]/./src/core/pages/core/shadowPrices/list.tsx","webpack://[name]/./src/core/pages/core/shadowPrices/index.tsx","webpack://[name]/./src/core/pages/core/spanningDefaultFBP/row.tsx","webpack://[name]/./src/core/pages/core/spanningDefaultFBP/list.tsx","webpack://[name]/./src/core/pages/core/spanningDefaultFBP/index.tsx","webpack://[name]/./src/core/pages/core/validationReductions/list.tsx","webpack://[name]/./src/core/pages/core/validationReductions/index.tsx","webpack://[name]/./src/core/pages/core/initialComputation/list.tsx","webpack://[name]/./src/core/pages/core/initialComputation/index.tsx","webpack://[name]/./src/core/pages/core/bexRestrictions/list.tsx","webpack://[name]/./src/core/pages/core/bexRestrictions/index.tsx","webpack://[name]/./src/core/app.tsx","webpack://[name]/./src/core/infrastructure/shell/index.tsx","webpack://[name]/./src/core/main.tsx","webpack://[name]/./src/i18n.ts"],"names":["root","factory","exports","module","define","amd","window","webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","oldJsonpFunction","slice","rowSpan","date","left","className","localCweDate","Date","toLocaleString","timeZone","style","whiteSpace","display","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","text","disabled","dangerouslySetInnerHTML","__html","replace","Row","dto","borders","dateTimeUtc","map","border","id","eval","toUpperCase","atcData","qtyData","psData","ciData","ltnData","sAtcData","iAtcData","hasAtcData","toString","includes","hasQtyData","hasPsData","hasCiData","hasLtnData","hasSAtcData","hasIAtcData","filter","f","toISOString","hubs","tsos","hub","tso","index","List","maxNetPosData","maxExchangeData","scrollPosition","dtoBorders","graph","paired","margin","top","right","bottom","xScale","type","yScale","min","max","stacked","reverse","axisBottom","orient","tickSize","tickPadding","axisLeft","enableGridX","colors","scheme","enablePoints","isInteractive","enableCrosshair","legends","anchor","direction","justify","translateX","translateY","itemsSpacing","itemDirection","itemWidth","itemHeight","itemOpacity","symbolSize","symbolShape","symbolBorderColor","drawExchangeGraph","position","width","height","textAlign","b","startsWith","sort","a","localeCompare","x","y","flexWrap","h","reduce","arr","concat","translated","applicationState","selectedHubs","isDisplayed","h1","h2","filteredBorders","selectedBorders","hubToHubPosition","addHubToHubExchange","addHubToHubPosition","hubToHubExchange","hubToHubPos","initialPtdfData","tradesFeasable","errorMessage","hubToHubResponse","setHubToHubResponse","loadingHubToHubResponse","setLoadingHubToHubResponse","hubResponse","setHubResponse","loadingHubResponse","setLoadingHubResponse","showPopup","setShowPopup","setPopupHubResponse","getHubTotal","total","endsWith","loadHubToHubResponse","apiPost","route","apiService","query","Utc","selectedDate","hub_ALBE","hub_ALDE","hub_AT","hub_BE","hub_CZ","hub_DE","hub_FR","hub_HR","hub_HU","hub_NL","hub_PL","hub_RO","hub_SI","hub_SK","senderId","response","ok","loadHubResponse","handlehubToHubExchangeChange","e","commit","float","parseFloat","handleHubToHubExchangeChange","handleHubToHubPosChange","handleHubToHubPositionChange","oppositeBorder","split","sumAlegro","toFixed","sumOthers","lightBox","hidden","onClick","popup","icon","closeButton","whiteBanner","firstColumn","secondColumn","paddingRight","thirdColumn","small","grayBanner","table","validator","inbetween","firstLastRightInput","valid","wrong","error","borderLabel","firstLeftInput","onChange","target","onBlur","onKeyDown","keyCode","currentTarget","blur","readOnly","firstRightInput","spacer","reason","colSpan","cnecTso","cnecName","bordersWithoutDelta","bordersWithDelta","Fragment","contingencies","cneName","cneEic","hubFrom","hubTo","substationFrom","substationTo","elementType","fmaxType","contTso","contName","branchName","branchEic","checked","presolved","ram","imax","u","fmax","frm","frefInit","fnrao","fref","fcore","fall","fuaf","amr","minRamFactor","justification","minRamTarget","ltaMargin","cva","iva","ftotalLtn","fltn","number","cnecEic","shadowPrice","f0core","f0all","maxZ2ZPtdf","isReturnedBranch","ivaShare","overloadedTso","overloadedName","overloadedEic","overloadedFromUct","overloadedToUct","fromUct","toUct","comment","fallbackApplied","color","cancelToken","CancelToken","source","FormattedErrorMessage","isCancel","message","errorDetail","syncPost","headers","userToken","post","status","apiCancel","cancel","token","apiGet","url","logError","applicationRoot","code","reference","apiDownload","undefined","alert","download","downloadUrl","responseB","URL","createObjectURL","Blob","link","document","createElement","href","setAttribute","fileName","body","appendChild","click","removeChild","apiTryGet","Canceled","statusText","config","apiTryPost","spinner","doubleBounce1","doubleBounce2","overlay","logo","classes","title","withTranslation","padding","background","enabled","open","state","setState","search","setSearch","interceptEvent","event","preventDefault","stopPropagation","handleChange","item","clickedOnOption","handleClose","blurTimeout","handleBlur","clearTimeout","setTimeout","handleMouseDown","classNameInput","textField","xxx","classNameActionMenu","actionmenu","classNameDropDown","dropdownmenu","classNameSearch","displayedItems","selectedItems","selected","tag","onFocus","placeholder","subButton","onMouseDown","toLowerCase","dropdownitem","notselected","to","activeClassName","active","menuItem","menuIcon","dateSteps","availableHours","hour","setHours","useEffect","rootDate","setCweTimeForDate","getCweTimeForDisplayPurposes","getTwoDigits","val","getHourRange","utcDate","dst","setUTCHours","getUTCHours","list","newDate","getDay","Error","loadAllHours","isHourDisabled","toUTCString","pageList","pages","availableDates","setAvailableDates","pathname","horizons","filteredHorizons","horizon","selectedHorizon","path","http","getRootUtcTime","Page","gridTemplateRows","backgroundColor","zIndex","subTitle","environment","marginLeft","arrow","arrowLeft","setFullYear","setDate","handleDateChange","arrowRight","locale","placeholderText","isClearable","fixedHeight","todayButton","dateFormat","showYearPicker","convertCweHourToUtcDate","highlightDates","isHubEnabled","handleHubChange","isBorderEnabled","handleBorderChange","gridTemplateColumns","gap","isSelected","handleHorizonChange","borderRadius","lineHeight","cursor","textDecoration","marginTop","fontSize","fontWeight","userRole","overflowY","overflow","marginRight","paddingLeft","menu","webUrl","props","setScrollPosition","noDataMessage","dataRows","flex","onScroll","scrollTop","scrollLeft","cloneElement","children","isLoading","loading","nodata","pageConfig","formats","startDate","setStartDate","endDate","setEndDate","showWait","setShowPleaseWait","setError","applyFilter","setApplyFilter","CweDateInput","ref","cweDate","cweString","parameter","pageButton","getUntilFor1Hour","getUntilFor1Day","marginBottom","customInput","selectsStart","showTimeSelect","timeFormat","timeIntervals","timeCaption","selectsEnd","keys","htmlFor","popupButton","fileType","apiType","apiUrl","FromUtc","ToUtc","FileType","Filter","JSON","stringify","res","showDownload","downloadFormats","showTestData","disclaimer","verticalAlign","businessDayUtc","page","pending","received","expected","spanning","followUpActionInitiated","Math","findIndex","parameters","parameterOrder","indexOf","sortParameters","getDefaultToDateTime","setData","setLoading","handleInputAvailablilityChange","selectableTabs","TDatetime","values","selectField","files","setEditDto","tableName","backupFileType","spanningFile","deadline","deleteConfig","editConfig","editDefault","cancelEditConfig","isEdit","setEdit","editDto","actions","emptyDto","addConfig","isAddition","setAddition","addIcon","initialLists","setPages","setFiles","filetypes","userName","setUserName","password","setPassword","container","onSubmit","userMail","changeToken","guestToken","submitButton","username","location","reload","Trans","defaults","components","italic","bold","paragraph","selectedItem","method","overflowWrap","multiselectRef","option","reset","setReset","setValue","current","resetSelectedValues","paddingTop","createRef","options","onSelect","v","onRemove","showCheckbox","closeOnSelect","showArrow","avoidHighlightFirstOption","displayValue","setOptionValue","searchFields","searchOptions","setSearchOptions","newFilter","onClosing","getElementsByClassName","onOpen","trigger","collapsible","searchLabel","collapsibleArrow","field","borderTop","getElementById","selectedEndpoint","jsonStyle","size","duration","numberOfRows","setResponse","toUtc","setToUtc","skip","setSkip","take","setTake","setMethod","getQueryRequest","parametersSearch","parse","forEach","Skip","Take","getQueryString","encodeURIComponent","join","Line","textTransform","UtcDateInput","handleNumChange","numStr","setNum","num","parseInt","isNaN","setSeconds","filterFields","start","resp","head","round","getTime","doRequest","doRequestPost","theme","main","string","boolean","apis","setEndpoint","selectedTab","setSelectedTab","apiList","baseUrl","protocol","host","marginDiv","maxWidth","selectableBorder","json","keysInDto","some","alphaFactor","dates","k","self","selectedBorder","setSelectedBorder","setAtcData","setQtyData","setPsData","setCiData","setLtnData","setSAtcData","setIAtcData","setDates","titleTop","selectedTsos","dtoKeys","elementHeight","cardStyle","elementWidth","row","col","country","gridColumn","gridRow","horizontalExchange","horizontalLabel","minHeight","in","floor","out","verticalExchange","verticalLabel","arrowUp","arrowDown","maxNetPosHour","maxExchangeHour","maxNL","minNL","maxBE","minBE","maxFR","minFR","maxDE","minDE","maxPL","minPL","maxCZ","minCZ","maxAT","minAT","maxSI","minSI","maxSK","minSK","maxHU","minHU","maxHR","minHR","maxRO","minRO","border_NL_DE","border_DE_NL","border_NL_BE","border_BE_NL","border_BE_DE","border_DE_BE","border_BE_FR","border_FR_BE","border_FR_DE","border_DE_FR","border_DE_PL","border_PL_DE","border_DE_CZ","border_CZ_DE","border_DE_AT","border_AT_DE","border_PL_CZ","border_CZ_PL","border_CZ_SK","border_SK_CZ","border_CZ_AT","border_AT_CZ","border_AT_HU","border_HU_AT","border_AT_SI","border_SI_AT","border_PL_SK","border_SK_PL","border_SK_HU","border_HU_SK","border_SI_HU","border_HU_SI","border_HU_RO","border_RO_HU","border_HU_HR","border_HR_HU","border_SI_HR","border_HR_SI","containerRef","offsetWidth","setZoom","zoom","scrollWidth","offsetHeight","scrollHeight","setMaxNetPosData","maxExchangesData","setMaxExchangesData","loadedDate","setLoadedDate","initialized","setSelectedHubs","selectableHubs","newList","dtoHubKeys","dtoBorderKeys","filteredData","maxRows","dtoHubs","dtoTsos","keyss","deltaBorderNames","lastRequestTime","setLastRequestTime","requestTime","availableBorders","baseline","afterNrao","pageCount","currentPage","realCount","onPageClick","containerClassName","forcePage","onPageChange","scrollTo","breakClassName","pageClassName","previousClassName","nextClassName","pageLinkClassName","previousLinkClassName","nextLinkClassName","breakLabel","disabledClassName","nextLabel","previousLabel","marginPagesDisplayed","pageRangeDisplayed","default_tsos","default_hubs","totalRows","totalRowsWithFilter","makePageChange","pageNumber","setPageNumber","makeRequest","rows","pageSize","initialData","page_config","filterFields_FinalComputation","lastModifiedOn","appliedFilter","contingency","messages","rejected","ceil","filterFields_PreFinalComputation","availableDtoHubs","initialResponse","searchText","setSearchText","count","computation","filterFields_InitialComputation","getDateFromUrl","queryString","cweDateString","exec","utcDateString","handleTokenChange","localStorage","setItem","borderEnabled","hubEnabled","availableColumns","special","selectedHub","assign","ptdfHubs","copy","setCweTime","minute","hourLocalTime","localDate","oppositeCWETime","diff","setTime","correctUtcDate","nextDay","nextDayHourOneCWETime","interceptors","use","Promise","reject","role","bearerToken","getYearUtcTime","getUntilFor1Year","hubExchange","component","componentDidMount","pathName","this","stateSavedOn","getItem","savedSelectedDate","savedSelectedBorders","savedBorders","savedSelectedHubs","savedHubs","dateInUrl","history","pushState","loadNamespaces","allBorderTranslations","getResourceBundle","allHubTranslations","allTsoTranslations","render","flexDirection","fallback","exact","el","configuration","frontEndUrl","bundleNames","scriptsRoot","common","requestVerificationToken","isInitialized","init","fallbackLng","defaultNS","debug","keySeparator","interpolation","escapeValue","formatSeparator","react","wait","backend","loadPath","crossDomain","basename"],"mappings":"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","file":"core.bundle.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"core\"] = factory();\n\telse\n\t\troot[\"core\"] = factory();\n})(window, function() {\nreturn "," \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp_name_\"] = window[\"webpackJsonp_name_\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([435,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectableTabs\":\"selectableTabs_3AaYtsaBXZ\",\"selected\":\"selected_ktPVqVBtu_\",\"expected\":\"expected_2jt73Ah4O0\",\"pending\":\"pending_3VBru3uUH2\",\"received\":\"received_3qNxCfe3vX\",\"spanning\":\"spanning_2dj43WNuzs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"actions\":\"actions_2a4Or-_48i\",\"addIcon\":\"addIcon_17iR4fr_0Q\",\"selectField\":\"selectField_23Gz9pSWDK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"json\":\"json_3aGO_WwOvO\",\"selectableBorder\":\"selectableBorder_2_dZn9Xtd6\",\"selected\":\"selected_3lTWMVgYfM\",\"marginDiv\":\"marginDiv_HtsbPlEZ8h\",\"maxWidth\":\"maxWidth_1_FNebYVCe\",\"get\":\"get_JQUlcVMEpo\",\"post\":\"post_28vw9l8HPH\",\"parameter\":\"parameter_2HeuMWXQIe\",\"loading\":\"loading_2-sbqmdMY6\",\"tabButton\":\"tabButton_2Ayy3E7VRl\",\"button\":\"button_2dBov5IrhC\",\"pageButton\":\"pageButton_1raOLFrJmb\"};","import * as React from \"react\";\r\n\r\ninterface Props {\r\n rowSpan: number;\r\n date: Date;\r\n left?: number;\r\n className?: string;\r\n}\r\n\r\nconst TDatetime = ({ rowSpan, date, left, className }: Props) => {\r\n\r\n // If you change the timezone on your local computer, it should still show CWE times\r\n // a day should start at 00:00:00 (UTC 23:00 or 22:00 DST)\r\n\r\n //This logic is also in app.tsx getCweTimeForDisplayPurposes(date);\r\n const localCweDate = new Date(date.toLocaleString('en-US', { timeZone: 'Europe/Brussels' }));\r\n\r\n return \r\n \r\n {localCweDate.getFullYear() + \"-\" + (\"0\" + (localCweDate.getMonth() + 1)).slice(-2) + \"-\" + (\"0\" + (localCweDate.getDate())).slice(-2)}\r\n \r\n {(\"0\" + (localCweDate.getHours())).slice(-2) + \":\" + (\"0\" + (localCweDate.getMinutes())).slice(-2) + \":\" + (\"0\" + (localCweDate.getSeconds())).slice(-2)}\r\n ;\r\n}\r\nexport default TDatetime;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"country\":\"country_3pKjC4QT2Q\",\"title\":\"title_GiUoq6Qp5U\",\"horizontalExchange\":\"horizontalExchange_1eLYpwoAhs\",\"horizontalLabel\":\"horizontalLabel_1my5s6Mb25\",\"arrowLeft\":\"arrowLeft_3MZCxrYyzQ\",\"arrowRight\":\"arrowRight_2KrW3RMSzS\",\"verticalExchange\":\"verticalExchange_1ufPdfnDvj\",\"verticalLabel\":\"verticalLabel_35dwiYnH2a\",\"arrowUp\":\"arrowUp_1_lpVZGP-x\",\"arrowDown\":\"arrowDown_3C2DPb3XTU\"};","import * as React from \"react\";\r\ninterface Props {\r\n text: string;\r\n disabled?: boolean;\r\n}\r\n\r\nconst BorderName = ({ text, disabled }: Props) =>\r\n $1`) }} />;\r\n\r\nexport default BorderName;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"title_1gzQlYvpjf\",\"closeButton\":\"closeButton_2S9H7cs59E\",\"pageButton\":\"pageButton_2v8L4ZwcM-\",\"popupButton\":\"popupButton_3BqLP8Bdjc\",\"hidden\":\"hidden_nlxSyj_yGR\",\"lightBox\":\"lightBox_3e_hjsv3Go\",\"popup\":\"popup_2OH3IZQGQn\"};","import * as React from \"react\";\r\n\r\nimport { ScheduledExchangesDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: ScheduledExchangesDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {borders.map((border) => {eval(\"dto.border_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { AllocationConstraintDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: AllocationConstraintDto;\r\n left: number;\r\n borders: string[];\r\n}\r\n\r\nconst Row = ({ dto, left, borders }: OwnProps) =>\r\n \r\n \r\n {\r\n borders.map(border =>\r\n <>\r\n \r\n {eval(`dto.limitDown_${border}`)}\r\n \r\n \r\n {eval(`dto.limitUp_${border}`)}\r\n \r\n )\r\n }\r\n \r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { AtcDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: AtcDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {borders.map((border) => {eval(\"dto.border_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { AtcDto, ScheduledExchangesDto, PriceSpreadDto, CongestionIncomeDto, LtnDto, ShadowAuctionAtcDto, IntradayAtcDto } from \"core/backend/data\";\r\nimport TDatetime from \"components/TDatetime\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n border: string;\r\n date: Date;\r\n left: number;\r\n atcData: AtcDto[];\r\n qtyData: ScheduledExchangesDto[];\r\n psData: PriceSpreadDto[];\r\n ciData: CongestionIncomeDto[];\r\n ltnData: LtnDto[];\r\n sAtcData: ShadowAuctionAtcDto[];\r\n iAtcData: IntradayAtcDto[];\r\n}\r\n\r\n\r\nconst Row = ({ border, date, atcData, qtyData, psData, ciData, ltnData, sAtcData, iAtcData, left }: OwnProps) => {\r\n const hasAtcData = keys().map(m => m.toString()).includes(\"border_\" + border.toUpperCase());\r\n const hasQtyData = keys().map(m => m.toString()).includes(\"border_\" + border.toUpperCase());\r\n const hasPsData = keys().map(m => m.toString()).includes(\"border_\" + border.toUpperCase());\r\n const hasCiData = keys().map(m => m.toString()).includes(\"border_\" + border.toUpperCase());\r\n const hasLtnData = keys().map(m => m.toString()).includes(\"border_\" + border.toUpperCase());\r\n const hasSAtcData = keys().map(m => m.toString()).includes(\"border_\" + border.toUpperCase());\r\n const hasIAtcData = keys().map(m => m.toString()).includes(\"initial_\" + border.toUpperCase());\r\n return \r\n \r\n {hasAtcData && {atcData.length === 0 ? \"...\" : atcData.filter(f => f.dateTimeUtc.replace(\":00Z\", \":00.000Z\") === date.toISOString()).map(m => eval(\"m.border_\" + border.toUpperCase()))[0]}}\r\n {hasQtyData && {qtyData.length === 0 ? \"...\" : qtyData.filter(f => f.dateTimeUtc.replace(\":00Z\", \":00.000Z\") === date.toISOString()).map(m => eval(\"m.border_\" + border.toUpperCase()))[0]}}\r\n {hasPsData && {psData.length === 0 ? \"...\" : psData.filter(f => f.dateTimeUtc.replace(\":00Z\", \":00.000Z\") === date.toISOString()).map(m => eval(\"m.border_\" + border.toUpperCase()))[0]}}\r\n {hasCiData && {ciData.length === 0 ? \"...\" : ciData.filter(f => f.dateTimeUtc.replace(\":00Z\", \":00.000Z\") === date.toISOString()).map(m => eval(\"m.border_\" + border.toUpperCase()))[0]}}\r\n {hasLtnData && {ltnData.length === 0 ? \"...\" : ltnData.filter(f => f.dateTimeUtc.replace(\":00Z\", \":00.000Z\") === date.toISOString()).map(m => eval(\"m.border_\" + border.toUpperCase()))[0]}}\r\n {hasSAtcData && {sAtcData.length === 0 ? \"...\" : sAtcData.filter(f => f.dateTimeUtc.replace(\":00Z\", \":00.000Z\") === date.toISOString()).map(m => eval(\"m.border_\" + border.toUpperCase()))[0]}}\r\n {hasIAtcData && {iAtcData.length === 0 ? \"...\" : iAtcData.filter(f => f.dateTimeUtc.replace(\":00Z\", \":00.000Z\") === date.toISOString()).map(m => eval(\"m.initial_\" + border.toUpperCase()))[0]}}\r\n ;\r\n}\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { CongestionIncomeDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n dto: CongestionIncomeDto;\r\n hubs: MultiSelectItem[];\r\n tsos: MultiSelectItem[];\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, hubs, tsos, borders, left }: OwnProps) =>\r\n \r\n \r\n {hubs.length == 0 ? : hubs.map((hub) => {eval(\"dto.grossHub_\" + hub.id)})}\r\n {tsos.length == 0 ? : tsos.map((tso, index) => {eval(\"dto.grossTso_\" + tso.id)})}\r\n {hubs.length == 0 ? : hubs.map((hub) => {eval(\"dto.netHub_\" + hub.id)})}\r\n {tsos.length == 0 ? : tsos.map((tso, index) => {eval(\"dto.netTso_\" + tso.id)})}\r\n {borders.length == 0 ? : borders.map((border, index) => {eval(\"dto.grossBorder_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import { default as React } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport { MaxNetPosDto, MaxExchangesDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { ResponsiveLine, Serie } from \"@nivo/line\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { col: number, row: number };\r\n maxNetPosData: MaxNetPosDto[];\r\n maxExchangeData: MaxExchangesDto[];\r\n hubs: MultiSelectItem[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, maxNetPosData, maxExchangeData, scrollPosition, hubs, borders }: OwnProps & WithTranslation) => {\r\n // const keysInDto = keys();\r\n const dtoBorders = borders;//.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n const graph = (paired: boolean, data: Serie[]) => (\r\n \r\n );\r\n const drawExchangeGraph = (hub: string) => {\r\n return
\r\n
Max bilateral exchanges from {hub} (MW)
\r\n {graph(false,\r\n dtoBorders\r\n .filter(b => b.id.startsWith(hub + \"_\"))\r\n .sort((a, b) => b.id.localeCompare(a.id)) // descending\r\n .map(b => {\r\n return {\r\n id: \"Max \" + b.text,\r\n data: maxExchangeData\r\n .map((m) => { return { x: new Date(m.dateTimeUtc).getHours() + 1, y: eval(\"m.border_\" + b.id) }; })\r\n };\r\n })\r\n )}\r\n
;\r\n };\r\n\r\n return (\r\n
\r\n {hubs.filter(f => f.id != \"ALBE\" && f.id != \"ALDE\").map(h => drawExchangeGraph(h.id))}\r\n
\r\n
Min/Max net positions (MW)
\r\n {graph(true, hubs\r\n .sort((a, b) => b.id.localeCompare(a.id)) // descending\r\n .reduce((arr: Serie[], h) => {\r\n return arr.concat([\r\n { id: \"Max \" + h.id, data: maxNetPosData.map((m) => { return { x: new Date(m.dateTimeUtc).getHours() + 1, y: eval(\"m.max\" + h.id) }; }) },\r\n { id: \"Min \" + h.id, data: maxNetPosData.map((m) => { return { x: new Date(m.dateTimeUtc).getHours() + 1, y: eval(\"m.min\" + h.id) }; }) },\r\n ], []);\r\n }, []))}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","const s = require(\"./coreMarketView.module.scss\");\r\n\r\nimport { default as React, useEffect, useState } from \"react\";\r\n\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport { MaxNetPosDto, MaxExchangesDto, CheckVolumeDto, GetCheckVolumeResponse } from \"core/backend/data\";\r\nimport classNames from \"classnames\";\r\nimport BorderName from \"components/borderName\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport classnames from \"classnames\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faWindowClose } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { col: number, row: number };\r\n maxNetPosData?: MaxNetPosDto;\r\n maxExchangeData?: MaxExchangesDto;\r\n applicationState: ApplicationState;\r\n}\r\n\r\nconst List = ({ t, applicationState, maxNetPosData, maxExchangeData, scrollPosition }: OwnProps & WithTranslation) => {\r\n\r\n const hubs = applicationState.selectedHubs\r\n .filter(h => h.isDisplayed)\r\n .sort((h1, h2) => h1.id < h2.id ? -1 : 1);\r\n const filteredBorders = applicationState.selectedBorders.filter(h => h.isDisplayed);\r\n\r\n if (applicationState.hubToHubPosition[\"AT\"] == null) {\r\n applicationState.addHubToHubExchange(filteredBorders.filter(x => [\"AT_CZ\", \"AT_HU\", \"AT_SI\", \"BE_FR\", \"CZ_PL\", \"CZ_SK\", \"DE_AT\", \"DE_BE_DC\", \"DE_BE\", \"DE_CZ\", \"DE_FR\", \"DE_NL\", \"HR_HU\", \"HR_SI\", \"HU_RO\", \"HU_SI\", \"HU_SK\", \"NL_BE\", \"PL_DE\", \"PL_SK\"].includes(x.id)));\r\n applicationState.addHubToHubPosition(hubs);\r\n }\r\n const hubToHubExchange = applicationState.hubToHubExchange;\r\n const hubToHubPos = applicationState.hubToHubPosition;\r\n\r\n const initialPtdfData: CheckVolumeDto = { id: 0, dateTimeUtc: \"\", tradesFeasable: false, errorMessage: \"\" };\r\n const [hubToHubResponse, setHubToHubResponse] = useState(initialPtdfData);\r\n const [loadingHubToHubResponse, setLoadingHubToHubResponse] = useState(false);\r\n const [hubResponse, setHubResponse] = useState(initialPtdfData);\r\n const [loadingHubResponse, setLoadingHubResponse] = useState(false);\r\n const [showPopup, setShowPopup] = useState(false);\r\n\r\n const setPopupHubResponse = (data: CheckVolumeDto) => {\r\n setHubResponse(data);\r\n //setShowPopup(data.errorMessage !== \"\");\r\n };\r\n\r\n const getHubTotal = (hub: string) => filteredBorders\r\n .reduce((total, border) => {\r\n if (border.id.startsWith(hub + \"_\")) {\r\n return total + (hubToHubExchange[border.id]?.value ?? 0);\r\n } else if (border.id.endsWith(\"_\" + hub)) {\r\n return total - (hubToHubExchange[border.id]?.value ?? 0);\r\n } else {\r\n return total;\r\n }\r\n }, 0);\r\n\r\n const loadHubToHubResponse = async () => {\r\n setLoadingHubToHubResponse(true);\r\n const response = await httpService.apiPost({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/checkVolume\",\r\n query: {\r\n Utc: applicationState.selectedDate.toISOString(),\r\n hub_ALBE: getHubTotal(\"ALBE\"),\r\n hub_ALDE: getHubTotal(\"ALDE\"),\r\n hub_AT: getHubTotal(\"AT\"),\r\n hub_BE: getHubTotal(\"BE\"),\r\n hub_CZ: getHubTotal(\"CZ\"),\r\n hub_DE: getHubTotal(\"DE\"),\r\n hub_FR: getHubTotal(\"FR\"),\r\n hub_HR: getHubTotal(\"HR\"),\r\n hub_HU: getHubTotal(\"HU\"),\r\n hub_NL: getHubTotal(\"NL\"),\r\n hub_PL: getHubTotal(\"PL\"),\r\n hub_RO: getHubTotal(\"RO\"),\r\n hub_SI: getHubTotal(\"SI\"),\r\n hub_SK: getHubTotal(\"SK\"),\r\n },\r\n senderId: \"MarketView\"\r\n })();\r\n\r\n if (response.ok) {\r\n setHubToHubResponse(response.data.data);\r\n } else {\r\n setHubToHubResponse(initialPtdfData);\r\n }\r\n setLoadingHubToHubResponse(false);\r\n };\r\n\r\n const loadHubResponse = async () => {\r\n setLoadingHubResponse(true);\r\n const response = await httpService.apiPost({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/checkVolume\",\r\n query: {\r\n Utc: applicationState.selectedDate.toISOString(),\r\n hub_ALBE: (hubToHubPos[\"ALBE\"]?.value ?? 0),\r\n hub_ALDE: (hubToHubPos[\"ALDE\"]?.value ?? 0),\r\n hub_AT: (hubToHubPos[\"AT\"]?.value ?? 0),\r\n hub_BE: (hubToHubPos[\"BE\"]?.value ?? 0),\r\n hub_CZ: (hubToHubPos[\"CZ\"]?.value ?? 0),\r\n hub_DE: (hubToHubPos[\"DE\"]?.value ?? 0),\r\n hub_FR: (hubToHubPos[\"FR\"]?.value ?? 0),\r\n hub_HR: (hubToHubPos[\"HR\"]?.value ?? 0),\r\n hub_HU: (hubToHubPos[\"HU\"]?.value ?? 0),\r\n hub_NL: (hubToHubPos[\"NL\"]?.value ?? 0),\r\n hub_PL: (hubToHubPos[\"PL\"]?.value ?? 0),\r\n hub_RO: (hubToHubPos[\"RO\"]?.value ?? 0),\r\n hub_SI: (hubToHubPos[\"SI\"]?.value ?? 0),\r\n hub_SK: (hubToHubPos[\"SK\"]?.value ?? 0),\r\n },\r\n senderId: \"MarketView\"\r\n })();\r\n\r\n if (response.ok) {\r\n setPopupHubResponse(response.data.data);\r\n } else {\r\n setPopupHubResponse(initialPtdfData);\r\n }\r\n setLoadingHubResponse(false);\r\n };\r\n\r\n const handlehubToHubExchangeChange = (id: string, e: string, commit: boolean) => {\r\n const float = parseFloat(e);\r\n applicationState.handleHubToHubExchangeChange(id, commit ? float.toString() : e, []);\r\n setHubToHubResponse(initialPtdfData);\r\n\r\n /*if (commit) {\r\n (async function runAsync() {\r\n await loadHubToHubResponse();\r\n })();\r\n }*/\r\n };\r\n\r\n const handleHubToHubPosChange = (id: string, e: string, commit: boolean) => {\r\n const float = parseFloat(e);\r\n applicationState.handleHubToHubPositionChange(id, commit ? float.toString() : e);\r\n setPopupHubResponse(initialPtdfData);\r\n\r\n /*if (commit) {\r\n (async function runAsync() {\r\n await loadHubResponse();\r\n })();\r\n }*/\r\n };\r\n\r\n useEffect(() => {\r\n setHubToHubResponse(initialPtdfData);\r\n setPopupHubResponse(initialPtdfData);\r\n }, [applicationState.selectedDate]);\r\n\r\n const oppositeBorder = (border: string) => {\r\n const split = border.split(\"_\");\r\n if (split.length === 2) return split[1] + \"_\" + split[0];\r\n if (split.length === 3) return split[1] + \"_\" + split[0] + \"_\" + split[2];\r\n return \"\";\r\n }\r\n\r\n const sumAlegro = parseFloat(hubs.filter(h => h.id === \"ALBE\" || h.id === \"ALDE\").reduce((total, hub) => total + hubToHubPos[hub.id]?.value ?? 0, 0).toFixed(5));\r\n const sumOthers = parseFloat(hubs.filter(h => h.id !== \"ALBE\" && h.id !== \"ALDE\").reduce((total, hub) => total + hubToHubPos[hub.id]?.value ?? 0, 0).toFixed(5));\r\n\r\n return (\r\n
\r\n
{ setShowPopup(false); }} />\r\n
\r\n { setShowPopup(false); }} />\r\n
\r\n {hubResponse.errorMessage}\r\n
\r\n
\r\n
\r\n
\r\n

1

Check volume

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

2

Max volume

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Here you can check the simultaneous execution of trading volumes of the market involved in the Core Market Coupling
\r\n
\r\n
\r\n
Here you can find the maximal trade volumes (MWh/h) which can be physically transported between two Hubs under the condition that no other trade is executed between other Hubs
\r\n
\r\n
\r\n
\r\n
Hub-to-Hub
Exchanges
\r\n
\r\n \r\n \r\n \r\n \r\n {filteredBorders.filter(x => hubToHubExchange[x.id] != null).map((border) => \r\n \r\n \r\n )}\r\n \r\n
Hub-to-HubTest 1
\r\n {loadingHubToHubResponse\r\n ?
Checking...
\r\n : hubToHubResponse.id === 0\r\n ?
{\r\n (async function runAsync() {\r\n await loadHubToHubResponse();\r\n })();\r\n }}>Click here to test.
\r\n : (hubToHubResponse.errorMessage ?? \"\") == \"\"\r\n ? hubToHubResponse.tradesFeasable\r\n ?
Trades feasible
\r\n :
Constrained Transmission System
\r\n :
{hubToHubResponse.errorMessage}
\r\n }\r\n
handlehubToHubExchangeChange(border.id, e.target.value, false)}\r\n onBlur={(e) => handlehubToHubExchangeChange(border.id, e.target.value, true)}\r\n onKeyDown={(e) => { if (e.keyCode === 13) e.currentTarget.blur(); }} />
\r\n
\r\n
\r\n \r\n \r\n \r\n {filteredBorders.filter(x => hubToHubExchange[x.id] != null).map((border) => \r\n \r\n \r\n \r\n )}\r\n \r\n
Direction ►◄ Direction
\r\n
\r\n
\r\n
\r\n
\r\n
Hub-to-Hub
Positions
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {hubs.map((hub) => \r\n \r\n \r\n )}\r\n \r\n
Hub positionsTest 1Test 2
\r\n {sumAlegro !== 0\r\n ?
KO
\r\n : sumOthers !== 0\r\n ?
KO
\r\n :
OK
\r\n }\r\n
\r\n {loadingHubResponse\r\n ?
Checking...
\r\n : hubResponse.id === 0\r\n ?
{\r\n (async function runAsync() {\r\n await loadHubResponse();\r\n })();\r\n }}>Click here to test.
\r\n : (hubResponse.errorMessage ?? \"\") == \"\"\r\n ? hubResponse.tradesFeasable\r\n ?
Trades feasible
\r\n :
Constrained Transmission System
\r\n :
{hubResponse.errorMessage}
\r\n\r\n }\r\n
{t(\"common_hubs:\" + hub.id)} handleHubToHubPosChange(hub.id, e.target.value, false)}\r\n onBlur={(e) => handleHubToHubPosChange(hub.id, e.target.value, true)}\r\n onKeyDown={(e) => { if (e.keyCode === 13) e.currentTarget.blur(); }} />
\r\n
\r\n
\r\n \r\n \r\n \r\n {hubs.map((hub) =>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
ExportImport
{t(\"common_hubs:\" + hub.id)}
\r\n
\r\n
\r\n
 
\r\n
\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","import * as React from \"react\";\r\n\r\nimport { CraDto } from \"core/backend/data\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: CraDto;\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, left }: OwnProps) =>\r\n \r\n \r\n {(dto.reason ?? \"\") != \"\"\r\n ? {dto.reason}\r\n : <>\r\n {dto.cnecTso}\r\n {dto.cnecName}\r\n {\r\n [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\r\n .map(i => \r\n {eval(\"dto.cra\" + i + \"Name\")}\r\n {eval(\"dto.cra\" + i + \"Baseline\")}\r\n {eval(\"dto.cra\" + i + \"AfterNrao\")}\r\n )\r\n }\r\n \r\n }\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { D2CFDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: D2CFDto;\r\n hubs: MultiSelectItem[];\r\n tsos: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, hubs, tsos, left }: OwnProps) =>\r\n \r\n \r\n {hubs.length == 0 ? : hubs.map((hub, index) => {eval(\"dto.verticalLoad_\" + hub.id.toUpperCase())})}\r\n {hubs.length == 0 ? : hubs.map((hub, index) => {eval(\"dto.generation_\" + hub.id.toUpperCase())})}\r\n {hubs.length == 0 ? : hubs.map((hub, index) => {eval(\"dto.coreNetPosition_\" + hub.id.toUpperCase())})}\r\n {tsos.length == 0 ? : tsos.map((tso, index) => \r\n {eval(\"dto.verticalLoad_\" + tso.id)}\r\n {eval(\"dto.generation_\" + tso.id)}\r\n {eval(\"dto.coreNetPosition_\" + tso.id)}\r\n )}\r\n ;\r\n\r\nexport default Row;","import { default as React, useContext } from \"react\";\r\n\r\nimport { IntradayAtcDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: IntradayAtcDto;\r\n bordersWithoutDelta: MultiSelectItem[];\r\n left: number;\r\n bordersWithDelta: MultiSelectItem[]\r\n}\r\n\r\nconst Row = ({ dto, bordersWithoutDelta, left, bordersWithDelta }: OwnProps) =>\r\n \r\n \r\n {bordersWithDelta.map((border) => \r\n {eval(\"dto.initial_\" + border.id.toUpperCase())}\r\n {eval(\"dto.delta_\" + border.id.toUpperCase())}\r\n )}\r\n {bordersWithoutDelta.map((border) => {eval(\"dto.initial_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import { default as React, useContext } from \"react\";\r\n\r\nimport { IntradayNtcDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n dto: IntradayNtcDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\nconst bordersWithDelta = keys().filter(f => f.startsWith(\"delta_\"));\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {borders.map((border) => \r\n {eval(\"dto.initial_\" + border.id.toUpperCase())}\r\n )}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { LtaDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: LtaDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {borders.map((border) => {eval(\"dto.border_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { LtnDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: LtnDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {borders.map((border) => {eval(\"dto.border_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { MaxExchangesDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: MaxExchangesDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {borders.map((border) => {eval(\"dto.border_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { MaxNetPosDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: MaxNetPosDto;\r\n hubs: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, hubs, left }: OwnProps) =>\r\n \r\n \r\n {hubs.map((hub) => {eval(\"dto.min\" + hub.id.toUpperCase())})}\r\n {hubs.map((hub) => {eval(\"dto.max\" + hub.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { NetPosDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: NetPosDto;\r\n hubs: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, hubs, left }: OwnProps) =>\r\n \r\n \r\n {hubs.map((hub) => {eval(\"dto.hub_\" + hub.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { PriceSpreadDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: PriceSpreadDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {borders.map((border) => {eval(\"dto.border_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { FinalComputationDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\nimport CheckIcon from \"components/checkIcon\";\r\n\r\ninterface OwnProps {\r\n dto: FinalComputationDto;\r\n hubs: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, hubs, left }: OwnProps) =>\r\n <>\r\n \r\n \r\n {dto.tso}\r\n {dto.cneName}\r\n {dto.cneEic}\r\n {dto.direction}\r\n {dto.hubFrom}\r\n {dto.hubTo}\r\n {dto.substationFrom}\r\n {dto.substationTo}\r\n {dto.elementType}\r\n {dto.fmaxType}\r\n\r\n {dto.contTso}\r\n {dto.contName}\r\n {dto.contingencies[0].branchName}\r\n {dto.contingencies[0].branchEic}\r\n {dto.contingencies[0].hubFrom}\r\n {dto.contingencies[0].hubTo}\r\n {dto.contingencies[0].substationFrom}\r\n {dto.contingencies[0].substationTo}\r\n {dto.contingencies[0].elementType}\r\n\r\n \r\n {dto.ram}\r\n {dto.imax}\r\n {dto.u}\r\n {dto.fmax}\r\n {dto.frm}\r\n {dto.frefInit}\r\n {dto.fnrao}\r\n {dto.fref}\r\n {dto.fcore}\r\n {dto.fall}\r\n {dto.fuaf}\r\n {dto.amr}\r\n {dto.minRamFactor}\r\n {dto.justification}\r\n {(dto.minRamTarget * 100).toFixed(1)}\r\n {dto.ltaMargin}\r\n {dto.cva}\r\n {dto.iva}\r\n {dto.ftotalLtn}\r\n {dto.fltn}\r\n\r\n {hubs.map((hub) => {eval(\"dto.ptdf_\" + hub.id.toUpperCase())})}\r\n \r\n {\r\n dto.contingencies.slice(1).map((c) =>\r\n \r\n Additional branch #{c.number}:\r\n {c.branchName}\r\n {c.branchEic}\r\n {c.hubFrom}\r\n {c.hubTo}\r\n {c.substationFrom}\r\n {c.substationTo}\r\n {c.elementType}\r\n \r\n )\r\n }\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { PreFinalComputationDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\nimport CheckIcon from \"components/checkIcon\";\r\n\r\ninterface OwnProps {\r\n dto: PreFinalComputationDto;\r\n hubs: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, hubs, left }: OwnProps) =>\r\n <>\r\n \r\n \r\n {dto.tso}\r\n {dto.cneName}\r\n {dto.cneEic}\r\n {dto.direction}\r\n {dto.hubFrom}\r\n {dto.hubTo}\r\n {dto.substationFrom}\r\n {dto.substationTo}\r\n {dto.elementType}\r\n {dto.fmaxType}\r\n\r\n {dto.contTso}\r\n {dto.contName}\r\n {dto.contingencies[0].branchName}\r\n {dto.contingencies[0].branchEic}\r\n {dto.contingencies[0].hubFrom}\r\n {dto.contingencies[0].hubTo}\r\n {dto.contingencies[0].substationFrom}\r\n {dto.contingencies[0].substationTo}\r\n {dto.contingencies[0].elementType}\r\n\r\n \r\n {dto.ram}\r\n {dto.imax}\r\n {dto.u}\r\n {dto.fmax}\r\n {dto.frm}\r\n {dto.frefInit}\r\n {dto.fnrao}\r\n {dto.fref}\r\n {dto.fcore}\r\n {dto.fall}\r\n {dto.fuaf}\r\n {dto.amr}\r\n {dto.minRamFactor}\r\n {dto.justification}\r\n {(dto.minRamTarget * 100).toFixed(1)}\r\n {dto.ltaMargin}\r\n {dto.cva}\r\n {dto.iva}\r\n {dto.ftotalLtn}\r\n\r\n {hubs.map((hub) => {eval(\"dto.ptdf_\" + hub.id.toUpperCase())})}\r\n \r\n {\r\n dto.contingencies.slice(1).map((c) =>\r\n \r\n Additional branch #{c.number}:\r\n {c.branchName}\r\n {c.branchEic}\r\n {c.hubFrom}\r\n {c.hubTo}\r\n {c.substationFrom}\r\n {c.substationTo}\r\n {c.elementType}\r\n \r\n )\r\n }\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { ReferenceNetPositionDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: ReferenceNetPositionDto;\r\n hubs: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, hubs, left }: OwnProps) =>\r\n \r\n \r\n {hubs.map((hub, index) => {eval(\"dto.globalNetPosition_\" + hub.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { RefprogDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: RefprogDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {borders.map((border) => {eval(\"dto.border_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { ShadowAuctionAtcDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: ShadowAuctionAtcDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {borders.map((border) => {eval(\"dto.border_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { ShadowPricesDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: ShadowPricesDto;\r\n left: number;\r\n hubs: MultiSelectItem[];\r\n}\r\n\r\nconst Row = ({ dto, left, hubs }: OwnProps) =>\r\n <>\r\n \r\n \r\n {dto.tso}\r\n {dto.cnecName}\r\n {dto.cnecEic}\r\n {dto.direction}\r\n {dto.contName}\r\n {dto.branchEic}\r\n\r\n {dto.shadowPrice}\r\n {dto.ram}\r\n {dto.imax}\r\n {dto.fmax}\r\n {dto.frm}\r\n {dto.fref}\r\n {dto.f0core}\r\n {dto.f0all}\r\n {dto.fuaf}\r\n {dto.amr}\r\n {dto.ltaMargin}\r\n {dto.cva}\r\n {dto.iva}\r\n {dto.ftotalLtn}\r\n {dto.minRamFactor}\r\n\r\n {dto.maxZ2ZPtdf}\r\n {dto.hubFrom}\r\n {dto.hubTo}\r\n {hubs.map((hub) => {eval(\"dto.hub_\" + hub.id.toUpperCase())})}\r\n \r\n \r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { ValidationReductionsDto } from \"core/backend/data\";\r\nimport TDatetime from \"components/TDatetime\";\r\nimport CheckIcon from \"components/checkIcon\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\n\r\ninterface OwnProps {\r\n dto: ValidationReductionsDto;\r\n hubs: MultiSelectItem[];\r\n left: number;\r\n}\r\nconst Row = ({ dto, hubs, left }: OwnProps) => {\r\n const rowSpan = dto.contingencies.length == 0 ? 1 : dto.contingencies.length;\r\n return <>\r\n \r\n \r\n {dto.tso}\r\n {dto.cnecName}\r\n {dto.direction}\r\n \r\n {dto.iva}\r\n {dto.ivaShare}\r\n {dto.justification}\r\n\r\n {dto.overloadedTso}\r\n {dto.overloadedName}\r\n {dto.overloadedEic}\r\n {dto.overloadedFromUct}\r\n {dto.overloadedToUct}\r\n\r\n {dto.contingencies.length > 0 && \"#1:\"}\r\n {dto.contingencies.length > 0 && dto.contingencies[0].name}\r\n {dto.contingencies.length > 0 && dto.contingencies[0].tso}\r\n {dto.contingencies.length > 0 && dto.contingencies[0].fromUct}\r\n {dto.contingencies.length > 0 && dto.contingencies[0].toUct}\r\n\r\n {hubs.map((hub, i) => {eval(\"dto.coreNp_\" + hub.id.toUpperCase())})}\r\n \r\n {dto.comment}\r\n\r\n \r\n \r\n {\r\n dto.contingencies.slice(1).map((c) =>\r\n \r\n #{c.number}:\r\n {c.name}\r\n {c.tso}\r\n {c.fromUct}\r\n {c.toUct}\r\n \r\n )\r\n }\r\n \r\n};\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { InitialComputationDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\nimport CheckIcon from \"components/checkIcon\";\r\n\r\ninterface OwnProps {\r\n dto: InitialComputationDto;\r\n hubs: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, hubs, left }: OwnProps) =>\r\n <>\r\n \r\n \r\n {dto.tso}\r\n {dto.cneName}\r\n {dto.cneEic}\r\n {dto.direction}\r\n {dto.hubFrom}\r\n {dto.hubTo}\r\n {dto.substationFrom}\r\n {dto.substationTo}\r\n {dto.elementType}\r\n {dto.fmaxType}\r\n\r\n {dto.contTso}\r\n {dto.contName}\r\n {dto.contingencies[0].branchName}\r\n {dto.contingencies[0].branchEic}\r\n {dto.contingencies[0].hubFrom}\r\n {dto.contingencies[0].hubTo}\r\n {dto.contingencies[0].substationFrom}\r\n {dto.contingencies[0].substationTo}\r\n {dto.contingencies[0].elementType}\r\n\r\n \r\n {dto.ram}\r\n {dto.imax}\r\n {dto.u}\r\n {dto.fmax}\r\n {dto.frm}\r\n {dto.frefInit}\r\n {dto.fnrao}\r\n {dto.fref}\r\n {dto.fcore}\r\n {dto.fall}\r\n {dto.fuaf}\r\n {dto.amr}\r\n {dto.ltaMargin}\r\n {dto.cva}\r\n {dto.iva}\r\n {dto.ftotalLtn}\r\n\r\n {hubs.map((hub) => {eval(\"dto.ptdf_\" + hub.id.toUpperCase())})}\r\n \r\n {\r\n dto.contingencies.slice(1).map((c) =>\r\n \r\n Additional branch #{c.number}:\r\n {c.branchName}\r\n {c.branchEic}\r\n {c.hubFrom}\r\n {c.hubTo}\r\n {c.substationFrom}\r\n {c.substationTo}\r\n {c.elementType}\r\n \r\n )\r\n }\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { BexRestrictionsDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: BexRestrictionsDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {borders.map((border) => {eval(\"dto.border_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\nimport { faCheck, faTimes } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\ninterface Props {\r\n checked?: boolean;\r\n}\r\n\r\nconst CheckIcon = ({ checked }: Props) =>\r\n (checked !== null && checked !== undefined)\r\n ? (checked\r\n ? \r\n : )\r\n : null;\r\n\r\nexport default CheckIcon;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"overlay\":\"overlay_3Hna1EgB0K\",\"fadeIn\":\"fadeIn_3AcqNH7gkx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"spinner\":\"spinner_Xwie1TqXnz\",\"doubleBounce1\":\"doubleBounce1_3HzIIdgyTW\",\"doubleBounce2\":\"doubleBounce2_1np4Zi8o_8\",\"sk-bounce\":\"sk-bounce_-YL5G76OLh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"logo\":\"logo_1hqbmu0Ljo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"title_iBC7vrOnaY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"logo\":\"logo_4r9d4PUFrI\",\"subTitle\":\"subTitle_Fle9mEoblk\",\"arrow\":\"arrow_1a5KnzYvib\",\"arrowLeft\":\"arrowLeft_3zmqhiPLm-\",\"arrowRight\":\"arrowRight_3nzEzyW6u2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"actionmenu\":\"actionmenu_1dSjlB-lqS\",\"dropdownmenu\":\"dropdownmenu_WwuUddl0Lq\",\"xxx\":\"xxx_3L1STGjWpF\",\"dropdownitem\":\"dropdownitem_3I3avQWgbm\",\"selected\":\"selected_1UGjcQTD4D\",\"notselected\":\"notselected_2UWRTwjjTq\",\"hidden\":\"hidden_3EO-E-jbMc\",\"tag\":\"tag_3_G6NnzpBf\",\"textField\":\"textField_17ZjCg7yE8\",\"search\":\"search_18m2t3ENkO\",\"disabled\":\"disabled_3h8pDkGmJD\",\"button\":\"button_3oRwA5qQnc\",\"subButton\":\"subButton_3HOtTkB0x6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuItem\":\"menuItem_2baN04_isw\",\"menuIcon\":\"menuIcon_1v3AMujvZc\",\"active\":\"active_2IqszgbN8n\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropdownmenu\":\"dropdownmenu_jrk-jnuTZB\",\"dropdownitem\":\"dropdownitem_16l1b46sKM\",\"selected\":\"selected_TwuxRwfDuB\",\"hidden\":\"hidden_2wQmqeJVy8\",\"textField\":\"textField_2Kvf_mNig6\",\"disabled\":\"disabled_2EjE1y-rPD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"logo\":\"logo_3FsPEFAIAi\"};","import axios, { AxiosResponse } from \"axios\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport * as queryString from \"querystring\";\r\nimport { Response, ApiGet, ApiPost } from \"./model\";\r\n\r\nlet cancelToken = axios.CancelToken.source();\r\n\r\nfunction FormattedErrorMessage(error: any) {\r\n\r\n const errorMessage: string = axios.isCancel(error) ? \"The request was cancelled.\"\r\n : error.message === \"Request failed with status code 500\" ? error.response?.data?.message ?? \"There was an internal error at JAO, please try again.\"\r\n : error.message === \"Network Error\" ? \"JAO is deploying a new version of PuTo or your internet connection is lost, please try again.\"\r\n : error.message;\r\n //Automatically called: logError(message.applicationState.applicationRoot, error.response.status, error.response.data);\r\n return {\r\n ok: false,\r\n error: errorMessage,\r\n errorDetail: error.response?.data?.message ?? \"\",\r\n data: {} as TResponse,\r\n };\r\n}\r\nexport const apiCancel = () => {\r\n cancelToken && cancelToken.cancel('Operation canceled due to new request.');\r\n cancelToken = axios.CancelToken.source();\r\n}\r\n\r\nexport const apiDownload = (message: ApiGet) => async () : Promise => {\r\n try {\r\n cancelToken && cancelToken.cancel('Operation canceled due to new request.');\r\n cancelToken = axios.CancelToken.source();\r\n const headers ={ \"Authorization\": \"Bearer \" + message.applicationState.userToken };\r\n const url = message.route + ((message.query) ? \"?\" + queryString.stringify(message.query as { [name: string]: any }) : \"\");\r\n const response = await axios.get(url, {headers, cancelToken: cancelToken.token });\r\n \r\n if (response === undefined) alert(\"Error 2234\");\r\n if (response.data === undefined) alert(\"Error 2235\");\r\n\r\n let download = response?.data?.downloadUrl;\r\n let showDownloadProgress = false;\r\n if (showDownloadProgress) {\r\n let responseB = await axios({\r\n url: response?.data?.downloadUrl,\r\n onDownloadProgress: (ev) => { console.log(ev); },\r\n method: 'GET',\r\n responseType: 'blob', // important\r\n });\r\n if (responseB === undefined) alert(\"Error 2236\");\r\n download = window.URL.createObjectURL(new Blob([responseB.data]));\r\n } \r\n\r\n const link = document.createElement(\"a\");\r\n link.href = download;\r\n link.setAttribute(\"download\", response?.data?.fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n //TODO Detect that the download has been initiated \r\n return \"\";\r\n } catch (e) {\r\n return FormattedErrorMessage(e).error;\r\n }\r\n};\r\nexport const apiTryGet = (message: ApiGet) => async (): Promise> => {\r\n try {\r\n cancelToken && cancelToken.cancel('Operation canceled due to new request.');\r\n cancelToken = axios.CancelToken.source();\r\n const headers ={ \"Authorization\": \"Bearer \" + message.applicationState.userToken };\r\n const url = message.route + ((message.query) ? \"?\" + message.query:\"\"); //queryString.stringify(message.query as { [name: string]: any }) : \"\");\r\n return await axios.get(url, { headers, cancelToken: cancelToken.token });\r\n } catch (e) {\r\n let error = (e as any);\r\n if (axios.isCancel(error)) return { data: { Canceled:\"This request was canceled\"}, status: 0, headers: {}, statusText: \"Canceled\", config: {} };\r\n return error.response;\r\n }\r\n};\r\nexport const apiTryPost = (message: ApiPost) => async (): Promise> => {\r\n try {\r\n cancelToken && cancelToken.cancel('Operation canceled due to new request.');\r\n cancelToken = axios.CancelToken.source();\r\n const headers ={ \"Authorization\": \"Bearer \" + message.applicationState.userToken };\r\n return await axios.post(message.route, message.query, {headers, cancelToken: cancelToken.token });\r\n } catch (e) {\r\n let error = (e as any);\r\n if (axios.isCancel(error)) return { data: { Canceled:\"This request was canceled\"}, status: 0, headers: {}, statusText: \"Canceled\", config: {} };\r\n return error.response;\r\n }\r\n};\r\n\r\n\r\nexport const apiGet = (message: ApiGet) => async (): Promise> => {\r\n\r\n try {\r\n cancelToken && cancelToken.cancel('Operation canceled due to new request.');\r\n cancelToken = axios.CancelToken.source();\r\n const headers ={ \"Authorization\": \"Bearer \" + message.applicationState.userToken };\r\n const url = message.route + ((message.query) ? \"?\" + queryString.stringify(message.query as { [name: string]: any }) : \"\");\r\n const response = await axios.get(url, {headers, cancelToken: cancelToken.token });\r\n return {\r\n ok: response.status === 200,\r\n data: response.data,\r\n };\r\n } catch (e) {\r\n return FormattedErrorMessage(e);\r\n } finally {\r\n\r\n }\r\n};\r\n\r\nexport const apiPost = (message: ApiPost) => async (): Promise => {\r\n try {\r\n cancelToken && cancelToken.cancel('Operation canceled due to new request.');\r\n cancelToken = axios.CancelToken.source();\r\n const headers ={ \"Authorization\": \"Bearer \" + message.applicationState.userToken };\r\n const response = await axios.post(message.route, message.query, { headers, cancelToken: cancelToken.token });\r\n return {\r\n ok: response.status === 200,\r\n data: response.data,\r\n };\r\n } catch (e) {\r\n return FormattedErrorMessage(e);\r\n } finally {\r\n\r\n }\r\n};\r\n\r\n\r\nexport const syncPost = (message: ApiPost) => async (): Promise => {\r\n try {\r\n const headers ={ \"Authorization\": \"Bearer \" + message.applicationState.userToken };\r\n const response = await axios.post(message.route, message.query, { headers });\r\n return {\r\n ok: response.status === 200,\r\n data: response.data,\r\n };\r\n } catch (e) {\r\n return FormattedErrorMessage(e);\r\n } finally {\r\n\r\n }\r\n};\r\n\r\nexport const logError = (applicationRoot: string, code: string, error: string) => {\r\n const url = applicationRoot + \"reportClientError\";\r\n\r\n try {\r\n axios.post(url, { reference: code, message: error });\r\n }catch (e) {\r\n let error = (e as any);\r\n // too bad we could not log error, but not necesairy to notify user about this\r\n }\r\n};\r\n\r\n\r\nexport default {\r\n syncPost: syncPost,\r\n apiCancel: apiCancel,\r\n apiPost: apiPost,\r\n apiGet: apiGet,\r\n logError: logError,\r\n apiDownload: apiDownload,\r\n apiTryGet: apiTryGet,\r\n apiTryPost: apiTryPost,\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"nodata\":\"nodata_lP27Mf1gCb\",\"error\":\"error_1-AyIZ8GR5\",\"loading\":\"loading_2d2LIQyFKj\",\"verticalScrollbarContainer\":\"verticalScrollbarContainer_tcMcdBQ5D0\",\"topArrow\":\"topArrow_104ZkJaPoj\",\"bottomArrow\":\"bottomArrow_3XMr4b32_z\",\"verticalScrollbar\":\"verticalScrollbar_12-ZxJs9SL\",\"horizontalScrollbarContainer\":\"horizontalScrollbarContainer_2Gzhvua6tY\",\"leftArrow\":\"leftArrow_27JQ1uc0Rl\",\"rightArrow\":\"rightArrow_1ps9QgiaJx\",\"horizontalScrollbar\":\"horizontalScrollbar_PbnRXfU0QZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"container_sst04BB_41\",\"submitButton\":\"submitButton_LHtm1Q_AOh\",\"title\":\"title_37Vavgggc4\",\"error\":\"error_1K-2ATG9Ry\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropdownmenu\":\"dropdownmenu_Hp65Zcokzy\",\"xxx\":\"xxx_3IkNp36YTl\",\"dropdownitem\":\"dropdownitem_3dtFowSomw\",\"selected\":\"selected_34B6_0whe9\",\"hidden\":\"hidden_2Ayl8HwWSL\",\"tag\":\"tag_2ruLB0iaNf\",\"textField\":\"textField_1rGxwdzibP\",\"search\":\"search_11j4q3dcf5\",\"disabled\":\"disabled_3q-b3Vd__W\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"collapsibleArrow\":\"collapsibleArrow_IaTFwZj350\",\"collapsible\":\"collapsible_2SRzh-Ttys\",\"searchLabel\":\"searchLabel_2D14xrkAXp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectableBorder\":\"selectableBorder_-wEBpQf0EC\",\"selected\":\"selected_3l3bowiFsW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"nodata\":\"nodata_1jJXhugnx2\",\"error\":\"error_29H-XFy8tr\",\"loading\":\"loading_TT5KgPwOs1\",\"verticalScrollbarContainer\":\"verticalScrollbarContainer_2ilaT8eugN\",\"topArrow\":\"topArrow_2uQXIdpUSg\",\"bottomArrow\":\"bottomArrow_1I8zqoNL7D\",\"verticalScrollbar\":\"verticalScrollbar_1jIa4cObut\",\"horizontalScrollbarContainer\":\"horizontalScrollbarContainer_XhpC9Qp_yM\",\"leftArrow\":\"leftArrow_1KhZyhnm-L\",\"rightArrow\":\"rightArrow_1qshXKsVIo\",\"horizontalScrollbar\":\"horizontalScrollbar_-ReT6Trx9A\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectableHubs\":\"selectableHubs_3C3geW4Ata\",\"selected\":\"selected_Ask3VMlzxf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"hidden\":\"hidden_2sfVHYQ6Yo\",\"lightBox\":\"lightBox_2nkI_qrR5c\",\"popup\":\"popup_SaJ3ostOos\",\"closeButton\":\"closeButton_3ob9i2PtbB\",\"popupButton\":\"popupButton_CQtwFsc6JH\",\"spacer\":\"spacer_3Dh4_TlUPb\",\"small\":\"small_2zOcU7xhlN\",\"grayBanner\":\"grayBanner_1ECUScyjtW\",\"firstColumn\":\"firstColumn_FQrb-PGBKK\",\"secondColumn\":\"secondColumn_10HUIsd8aa\",\"thirdColumn\":\"thirdColumn_1v4zgU0fCO\",\"table\":\"table_2_rSDz67u9\",\"borderLabel\":\"borderLabel_9r7Po4A5EQ\",\"firstLeftInput\":\"firstLeftInput_3I8QwCxG1_\",\"lastLeftInput\":\"lastLeftInput_2mHXWWOYEA\",\"firstRightInput\":\"firstRightInput_J2d2ME7pIK\",\"lastRightInput\":\"lastRightInput_1Oz35YgTL1\",\"validator\":\"validator_1NIyvzMPUv\",\"inbetween\":\"inbetween_oAnpkEf1dc\",\"valid\":\"valid_1CelbCL4HT\",\"wrong\":\"wrong_o6mZwS0Bku\",\"error\":\"error_17U7mWombw\",\"firstLastRightInput\":\"firstLastRightInput_12BruFx5v4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"collapsibleArrow\":\"collapsibleArrow_3SPQbRx1fV\",\"collapsible\":\"collapsible_2vcMcsg9Nt\",\"searchLabel\":\"searchLabel_1hbOhxHWWU\"};","const s = require(\"./doubleBounce.module.scss\");\r\n\r\nimport * as React from \"react\";\r\n\r\nconst DoubleBounce = () =>\r\n
\r\n
\r\n
\r\n
;\r\n\r\nexport default DoubleBounce;","const s = require(\"./busyOverlay.module.scss\");\r\n\r\nimport * as React from \"react\";\r\n\r\nimport DoubleBounce from \"./doubleBounce\";\r\n\r\nconst BusyOverlay = () =>\r\n
\r\n \r\n
;\r\n\r\nexport default BusyOverlay;","const s = require(\"./jaoLogo.module.scss\");\r\n\r\nimport * as React from \"react\";\r\n\r\nconst JaoLogo = () =>\r\n
;\r\n\r\nexport default JaoLogo;","const s = require(\"./title.module.scss\");\r\n\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\n\r\ninterface TitleProps {\r\n text: string;\r\n className?: string;\r\n}\r\n\r\nconst Title = ({ text, className }: TitleProps) => {\r\n const classes = classnames(\r\n className,\r\n s.title\r\n );\r\n return {text};\r\n};\r\n\r\nexport default Title;","import * as React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\n\r\nimport JaoLogo from \"components/jaoLogo\";\r\nimport Title from \"components/title\";\r\n\r\ntype NotFoundProps = WithTranslation;\r\n\r\nconst NotFound = ({ t }: NotFoundProps) =>\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n </div>\r\n </div>\r\n </div>;\r\n\r\nexport default withTranslation()(NotFound);","const s = require(\"./multiselect.module.scss\");\r\nimport { faSquare as square, faCheckSquare as checksquare } from \"@fortawesome/free-solid-svg-icons\"; //fontawesome.com\r\nimport { faSquare, faCheckSquare } from \"@fortawesome/free-regular-svg-icons\"; //fontawesome.com\r\nimport { default as React, useState } from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nexport interface MultiSelectItem {\r\n id: string;\r\n text: string;\r\n selected: boolean;\r\n isDisplayed: boolean;\r\n}\r\ninterface Props {\r\n data: MultiSelectItem[];\r\n enabled: boolean;\r\n}\r\n\r\ninterface DispatchProps {\r\n onChange: (item: MultiSelectItem, special: string) => void;\r\n}\r\ninterface State {\r\n open: boolean;\r\n}\r\n\r\nconst MultiSelect = ({ data, enabled, onChange }: Props & DispatchProps) => {\r\n const initialState: State = { open: false };\r\n const [state, setState] = useState(initialState);\r\n const [search, setSearch] = useState(\"\");\r\n\r\n const interceptEvent = (event: any) => {\r\n if (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n };\r\n const renderListItem = (item: MultiSelectItem) => {\r\n const className = classnames(s.dropdownitem, item.selected ? s.selected : s.notselected);\r\n return (<a key={item.id} className={className} onClick={(e) => { handleChange(e, item); }} onMouseDown={handleMouseDown} onBlur={handleBlur} href=\"#\">{item.text}</a>);\r\n };\r\n const renderTags = (item: MultiSelectItem) => {\r\n return (<span key={item.id} className={s.tag}>{item.text}</span>);\r\n };\r\n const handleChange = (event: any, item: MultiSelectItem) => {\r\n clickedOnOption = false;\r\n interceptEvent(event);\r\n onChange(item, \"\");\r\n };\r\n const handleClose = (event: any) => {\r\n interceptEvent(event);\r\n if (!clickedOnOption) {\r\n setState({ open: false });\r\n }\r\n clickedOnOption = false;\r\n };\r\n let clickedOnOption: Boolean = false;\r\n let blurTimeout: any = undefined;\r\n const handleBlur = () => {\r\n clearTimeout(blurTimeout);\r\n blurTimeout = setTimeout(handleClose, 0);\r\n };\r\n const toggleOpenClose = (event: any) => {\r\n interceptEvent(event);\r\n setState({ open: !state.open });\r\n if (state.open) {\r\n return setState({ open: false });\r\n }\r\n setSearch(\"\");\r\n };\r\n const handleMouseDown = () => {\r\n clickedOnOption = true;\r\n };\r\n\r\n const classNameInput = classnames(s.textField, \"inputBorder\", enabled ? s.enabled : s.disabled, state.open ? s.xxx : \"\");\r\n const classNameActionMenu = classnames(s.actionmenu, state.open ? \"\" : s.hidden);\r\n const classNameDropDown = classnames(s.dropdownmenu, state.open ? \"\" : s.hidden);\r\n const classNameSearch = classnames(\"inputBorder\", s.search, state.open ? \"\" : s.hidden);\r\n\r\n const displayedItems = data.filter(f => f.isDisplayed);\r\n const selectedItems = displayedItems.filter(f => f.selected);\r\n\r\n const selectAll = () => onChange(data[0], \"ALL\");\r\n const selectNone = () => onChange(data[0], \"NONE\");\r\n\r\n return (<div>\r\n <button className={classNameInput} onClick={toggleOpenClose} onBlur={handleBlur}>\r\n {displayedItems === undefined ? \"None available\"\r\n : displayedItems.length === 0 ? \"None available\"\r\n : selectedItems.length === 0 ? \"None\"\r\n : selectedItems.length === displayedItems.length ? \"All\"\r\n : selectedItems.length > 2 ? <span>{selectedItems.length} selected</span>\r\n : selectedItems.map(renderTags)}\r\n </button>\r\n <input type=\"text\"\r\n onFocus={handleMouseDown}\r\n onBlur={handleBlur}\r\n className={classNameSearch}\r\n placeholder=\"search...\"\r\n value={search}\r\n onChange={(e) => setSearch(e.currentTarget.value)} />\r\n <div className={classNameActionMenu}>\r\n <a className={s.subButton} onClick={() => selectNone()} onMouseDown={handleMouseDown} onBlur={handleBlur} href=\"#\"><FontAwesomeIcon icon={selectedItems.length === 0 ? square : faSquare} /> None</a>\r\n  - \r\n <a className={s.subButton} onClick={() => selectAll()} onMouseDown={handleMouseDown} onBlur={handleBlur} href=\"#\"><FontAwesomeIcon icon={selectedItems.length === displayedItems.length ? checksquare : faCheckSquare} /> All</a></div>\r\n <div className={classNameDropDown}>\r\n {/*<a className={classnames(s.dropdownitem, selectedItems.length === 0 ? s.selected : s.notselected)} onClick={() => selectedItems.length === 0 ? selectAll() : selectNone()} onMouseDown={handleMouseDown} onBlur={handleBlur} href=\"#\">None</a>*/}\r\n {\r\n displayedItems && displayedItems\r\n .filter((d) => d.text.toLowerCase().includes(search.toLowerCase()))\r\n .map(renderListItem)\r\n }\r\n </div>\r\n </div>);\r\n};\r\n\r\nexport default MultiSelect;","const s = require(\"./menuItem.module.scss\");\r\n\r\nimport * as React from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { IconDefinition } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { Link, NavLink } from \"react-router-dom\";\r\nimport classnames from \"classnames\";\r\n\r\ninterface MenuItemProps {\r\n route: string;\r\n title: string;\r\n icon?: IconDefinition;\r\n style?: React.CSSProperties;\r\n}\r\n\r\nconst MenuItem = ({ route, title, icon, style }: MenuItemProps) =>\r\n <NavLink to={route} activeClassName={s.active} className={icon === undefined ? s.menuItem : classnames(s.menuItem, s.menuIcon)}>\r\n {icon && <FontAwesomeIcon icon={icon} />}\r\n <span style={style}>{title}</span>\r\n </NavLink>;\r\n\r\nexport default MenuItem;","const s = require(\"./timePicker.module.scss\");\r\n\r\nimport { default as React, useState } from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { ApplicationState } from \"core/app\";\r\n\r\nexport interface TimePickerItem {\r\n date: Date;\r\n text: string;\r\n}\r\ninterface Props {\r\n selectedDate: Date;\r\n dateSteps: string;\r\n\r\n applicationState: ApplicationState;\r\n}\r\n\r\ninterface DispatchProps {\r\n onChange: (date: Date) => void;\r\n}\r\ninterface State {\r\n open: boolean;\r\n}\r\n\r\nconst TimePicker = ({ applicationState, dateSteps, selectedDate, onChange }: Props & DispatchProps) => {\r\n const enabled = dateSteps.startsWith(\"H\");\r\n const initialState: State = { open: false };\r\n const [state, setState] = useState(initialState);\r\n const availableHours = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]\r\n .filter(hour => dateSteps == \"H\" //no filter, all 24 hours\r\n || (dateSteps == \"H16+\" && hour >= 16)\r\n || (dateSteps == \"H12+\" && hour >= 12)\r\n )\r\n const [isCnecInfo, setIsCnecInfo] = useState(false);\r\n const cnecDisabledBefore = new Date(selectedDate).setHours(16, 0, 0);\r\n\r\n const interceptEvent = (event: any) => {\r\n if (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n };\r\n\r\n const renderListItem = (item: TimePickerItem) => {\r\n // XXX: LIQ-341: IBWT Cnec info grey out hours before 16:00, 17:00\r\n const isHourDisabled = !availableHours.includes(item.date.getHours());\r\n const className = classnames(s.dropdownitem\r\n , selectedDate.toUTCString() === item.date.toUTCString() ? s.selected : s.notselected\r\n , isHourDisabled ? \"text-disabled\" : \"\");\r\n return (<a key={item.text} className={className} onClick={(e) => !isHourDisabled && handleChange(e, item)} onMouseDown={handleMouseDown} onBlur={handleBlur} href=\"#\">\r\n {item.text}\r\n </a>);\r\n };\r\n const handleChange = (event: any, item: TimePickerItem) => {\r\n clickedOnOption = false;\r\n interceptEvent(event);\r\n onChange(item.date);\r\n setState({ open: false });\r\n };\r\n const handleClose = (event: any) => {\r\n interceptEvent(event);\r\n if (!clickedOnOption) {\r\n setState({ open: false });\r\n }\r\n clickedOnOption = false;\r\n };\r\n let clickedOnOption: Boolean = false;\r\n let blurTimeout: any = undefined;\r\n const handleBlur = () => {\r\n clearTimeout(blurTimeout);\r\n blurTimeout = setTimeout(handleClose, 0);\r\n };\r\n const toggleOpenClose = (event: any) => {\r\n interceptEvent(event);\r\n setState({ open: !state.open });\r\n if (state.open) {\r\n return setState({ open: false });\r\n }\r\n };\r\n const handleMouseDown = () => {\r\n clickedOnOption = true;\r\n };\r\n\r\n React.useEffect(() => {\r\n if (availableHours.length > 0 && !availableHours.includes(selectedDate.getHours())) {\r\n onChange(new Date(selectedDate.setHours(availableHours[0], 0, 0)));\r\n }\r\n }, [selectedDate, availableHours]);\r\n\r\n const classNameInput = classnames(s.textField, \"inputBorder\", enabled ? s.enabled : s.disabled);\r\n const classNameDropDown = classnames(s.dropdownmenu, state.open ? \"\" : s.hidden);\r\n\r\n const rootDate = applicationState.setCweTimeForDate(applicationState.getCweTimeForDisplayPurposes(selectedDate), 0, 0); //CWE Time 00:00\r\n\r\n const getTwoDigits = (val: number) => (val > 9 ? \"\" : \"0\") + val;\r\n const dayLightSaveCheck = (utcDate: Date, localCweDateForDisplay: Date) => {\r\n if (localCweDateForDisplay.getHours() !== 2) return \"\";\r\n return (applicationState.getCweTimeForDisplayPurposes(new Date(new Date(utcDate).setUTCHours(utcDate.getUTCHours() - 1))).getHours() === 2) ? \"+\" : \"\";\r\n }\r\n const getHourRange = (date: Date) => {\r\n var localCweDate = applicationState.getCweTimeForDisplayPurposes(date);\r\n var dst = dayLightSaveCheck(date, localCweDate);\r\n return dst + getTwoDigits(localCweDate.getHours()) + \":00\" + \" - \" + getTwoDigits(localCweDate.getHours() + 1) + \":00\" + dst;\r\n }\r\n const loadAllHours = () => {\r\n const list: TimePickerItem[] = [];\r\n let newDate = rootDate;\r\n let i = 1;\r\n while (applicationState.getCweTimeForDisplayPurposes(newDate).getDay() === applicationState.getCweTimeForDisplayPurposes(rootDate).getDay()) {\r\n list.push({ date: newDate, text: getHourRange(newDate) });\r\n newDate = new Date(new Date(rootDate).setUTCHours(rootDate.getUTCHours() + i++));\r\n if (i > 30) { throw Error(\"There is an issue with the TimePicker\"); }\r\n }\r\n return list;\r\n };\r\n\r\n return (<div>\r\n <button className={classNameInput} onClick={toggleOpenClose} onBlur={handleBlur}>\r\n {getHourRange(selectedDate)}\r\n </button>\r\n\r\n <div className={classNameDropDown}>\r\n {\r\n loadAllHours().map(renderListItem)\r\n }\r\n </div>\r\n </div>);\r\n}\r\n\r\nexport default TimePicker;","const s = require(\"./jaoLogoMenu.module.scss\");\r\n\r\nimport * as React from \"react\";\r\n\r\nconst JaoLogo = () =>\r\n <div className={s.logo}></div>;\r\n\r\nexport default JaoLogo;","const s = require(\"./navigation.module.scss\");\r\n\r\nimport * as React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { faHome, faEye, faCloud, faCog, faUser } from \"@fortawesome/free-solid-svg-icons\"; //fontawesome.com\r\nimport MultiSelect from \"components/multiselect\";\r\nimport MenuItem from \"components/menuItem\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport TimePicker from \"components/timePicker\";\r\nimport ReactDatePicker, { registerLocale } from \"react-datepicker\";\r\nimport gb from \"date-fns/locale/en-GB\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport classNames from \"classnames\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { GetAvailableDatesResponse } from \"core/backend/data\";\r\nimport { NavLink, useHistory, useLocation } from \"react-router-dom\";\r\nimport JaoLogoMenu from \"components/jaoLogoMenu\";\r\n\r\nregisterLocale(\"en-GB\", gb);\r\n\r\ninterface StateProps {\r\n applicationState: ApplicationState;\r\n}\r\ninterface Horizon {\r\n id: string;\r\n text: string;\r\n}\r\n\r\ntype NavigationProps = StateProps & WithTranslation;\r\nconst Navigation = ({ t, applicationState }: NavigationProps) => {\r\n const pageList = applicationState.pages.map(p => p.config);\r\n const initialDates: string[] = []\r\n const [availableDates, setAvailableDates] = useState(initialDates);\r\n const { pathname } = useLocation();\r\n const horizons: Horizon[] = [];\r\n const filteredHorizons = horizons.filter(h => h.id == applicationState.horizon);\r\n const selectedHorizon = horizons.length == 0 ? null : filteredHorizons.length == 1 ? filteredHorizons[0] : horizons[0];\r\n\r\n useEffect(() => {\r\n let path = pathname.replace(\"/\", \"\").replace(\"/\", \"\").replace(\"/\", \"\");\r\n if (path === \"\") return;\r\n\r\n (async function runAsync() {\r\n const response = await httpService.syncPost<GetAvailableDatesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/availableDates\",\r\n query: {\r\n Utc: applicationState.getRootUtcTime().toISOString(),\r\n Page: path\r\n },\r\n senderId: \"navigation\"\r\n })();\r\n\r\n if (response.ok && response.data != null) {\r\n setAvailableDates(response.data.availableDates);\r\n }\r\n })();\r\n }, [pathname]);\r\n return (\r\n <div className=\"sidebar\"\r\n style={{ display: \"grid\", gridTemplateRows: \"auto auto auto auto auto auto auto auto minmax(0,1fr)\", height: \"100vh\", backgroundColor: \"white\", padding: \"0.5rem 1rem\", zIndex: 5 }}>\r\n <a aria-current=\"page\" className={s.logo} href=\"/\"><JaoLogoMenu />{t(\"common:appNameTitle\")}</a>\r\n <NavLink to=\"/\" className={s.subTitle}>{t(\"menu:title\" + applicationState.environment)}</NavLink>\r\n <div style={{ marginLeft: \"20px\" }}>\r\n <div className=\"inputlabel\">{t(\"common:date\")}</div>\r\n {applicationState.dateSteps != \"\" && <div style={{ position: \"absolute\", left: \"35px\" }} className={classNames(s.arrow, s.arrowLeft)}\r\n onClick={() => {\r\n let newDate = new Date(applicationState.selectedDate);\r\n if (applicationState.dateSteps == \"Y\") newDate.setFullYear(newDate.getFullYear() - 1);\r\n if (applicationState.dateSteps != \"Y\") newDate.setDate(newDate.getDate() - 1);\r\n applicationState.handleDateChange(newDate);\r\n }}></div>}\r\n {applicationState.dateSteps != \"\" && <div style={{ position: \"absolute\", left: \"210px\" }} className={classNames(s.arrow, s.arrowRight)}\r\n onClick={() => {\r\n let newDate = new Date(applicationState.selectedDate);\r\n if (applicationState.dateSteps == \"Y\") newDate.setFullYear(newDate.getFullYear() + 1);\r\n if (applicationState.dateSteps != \"Y\") newDate.setDate(newDate.getDate() + 1);\r\n applicationState.handleDateChange(newDate);\r\n }}></div>}\r\n <ReactDatePicker className={classNames(\"inputBorder\", applicationState.dateSteps != \"\" ? \"\" : \"disabled\")} locale=\"en-GB\" placeholderText=\"Weeks start on Monday\" isClearable={false} fixedHeight todayButton=\"Today\"\r\n dateFormat={applicationState.dateSteps == \"Y\" ? \"yyyy\" : \"yyyy-MM-dd\"}\r\n showYearPicker={applicationState.dateSteps == \"Y\"}\r\n selected={applicationState.getCweTimeForDisplayPurposes(applicationState.selectedDate)}\r\n onChange={(date: Date) => date && applicationState.handleDateChange(applicationState.convertCweHourToUtcDate(date))}\r\n highlightDates={availableDates.map(d => new Date(d))}\r\n />\r\n </div>\r\n <div style={{ marginLeft: \"20px\" }}>\r\n <div className=\"inputlabel\">{t(\"common:hour\")} (CET)</div>\r\n {applicationState.dateSteps.startsWith(\"H\") && <div style={{ position: \"absolute\", left: \"35px\" }} className={classNames(s.arrow, s.arrowLeft)}\r\n onClick={() => {\r\n let newDate = new Date(applicationState.selectedDate.setUTCHours(applicationState.selectedDate.getUTCHours() - 1));\r\n if (applicationState.dateSteps == \"H12+\" && newDate.getHours() < 12) newDate.setHours(-1);\r\n if (applicationState.dateSteps == \"H16+\" && newDate.getHours() < 16) newDate.setHours(-1);\r\n applicationState.handleDateChange(newDate);\r\n }}></div>}\r\n {applicationState.dateSteps.startsWith(\"H\") && <div style={{ position: \"absolute\", left: \"210px\" }} className={classNames(s.arrow, s.arrowRight)}\r\n onClick={() => {\r\n let newDate = new Date(applicationState.selectedDate.setUTCHours(applicationState.selectedDate.getUTCHours() + 1));\r\n if (applicationState.dateSteps == \"H12+\" && newDate.getHours() < 12) newDate.setHours(12);\r\n if (applicationState.dateSteps == \"H16+\" && newDate.getHours() < 16) newDate.setHours(16);\r\n applicationState.handleDateChange(newDate);\r\n }}></div>}\r\n <TimePicker applicationState={applicationState} dateSteps={applicationState.dateSteps} selectedDate={applicationState.selectedDate} onChange={applicationState.handleDateChange} />\r\n </div>\r\n <div style={{ marginLeft: \"20px\" }}>\r\n <div className=\"inputlabel\">{t(\"common:hub\")}</div>\r\n <MultiSelect enabled={applicationState.isHubEnabled} data={applicationState.selectedHubs} onChange={applicationState.handleHubChange} />\r\n </div>\r\n <div style={{ marginLeft: \"20px\" }}>\r\n <div className=\"inputlabel\">{t(\"common:border\")}</div>\r\n <MultiSelect enabled={applicationState.isBorderEnabled} data={applicationState.selectedBorders} onChange={applicationState.handleBorderChange} />\r\n </div>\r\n <div style={{ marginLeft: \"20px\", display: horizons.length == 0 ? \"none\" : \"block\" }}>\r\n <div className=\"inputlabel\">Horizon</div>\r\n <div style={{ display: \"grid\", gridTemplateColumns: \"auto auto auto\", gap: \"5px\", width: \"150px\" }}>\r\n {horizons.map(item => {\r\n const isSelected = selectedHorizon == item;\r\n return <NavLink key={item.id}\r\n onClick={() => applicationState.handleHorizonChange(item.id)}\r\n to={pathname.replace(\"ID1\", item.id).replace(\"ID2\", item.id).replace(\"ID3\", item.id)}\r\n style={{\r\n border: \"1px solid #cbd1d8\", borderRadius: \"3px\", height: \"30px\"\r\n , backgroundColor: isSelected ? \"#a60045\" : \"white\"\r\n , color: isSelected ? \"white\" : \"black\"\r\n , textAlign: \"center\"\r\n , lineHeight: \"30px\"\r\n , cursor: \"pointer\"\r\n , textDecoration: \"none\"\r\n }} >\r\n {item.text}\r\n </NavLink>\r\n })}\r\n </div>\r\n </div>\r\n <div style={{ display: \"flex\", marginLeft: \"-20px\", marginTop: \"1rem\" }}>\r\n <MenuItem route=\"/home\" icon={faHome} title={t(\"menu:menuHome\")} style={{ fontSize: \"120%\", fontWeight: \"bold\" }} />\r\n <MenuItem route=\"/monitoring\" icon={faEye} title=\"\" style={{ fontSize: \"120%\", fontWeight: \"bold\" }} />\r\n <MenuItem route=\"/api\" icon={faCloud} title=\"\" style={{ fontSize: \"120%\", fontWeight: \"bold\" }} />\r\n {applicationState.userRole === \"JaoUser\" || applicationState.userRole === \"JaoAdmin\" || applicationState.userRole === \"Licquid\" ?\r\n <> <MenuItem route=\"/jaoLogin\" icon={faUser} title=\"\" style={{ fontSize: \"120%\", fontWeight: \"bold\" }} />\r\n </> : \"\"}\r\n </div>\r\n <div style={{ margin: \"0\", overflowY: \"auto\", overflow: \"auto\", marginRight: \"-1rem\", marginLeft: \"-1rem\", paddingLeft: \"1rem\" }}>\r\n <div className=\"animation_vertical_shown\">\r\n {\r\n pageList.filter(p => p.menu != \"\")\r\n .map(p => <MenuItem key={p.webUrl} route={\"/\" + p.webUrl} title={t(p.menu)} />)\r\n }\r\n </div>\r\n </div>\r\n </div>);\r\n};\r\n\r\nconst translated = withTranslation()(Navigation);\r\n\r\nexport default translated;","const s = require(\"./sheetDataPart.module.scss\");\r\n\r\nimport { default as React, useState, useRef, useContext } from \"react\";\r\nimport { faExclamationTriangle } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nconst SheetDataPart = (props: any) => {\r\n\r\n const [scrollPosition, setScrollPosition] = useState({ top: 0, left: 0 });\r\n const onScroll = (e: React.UIEvent<HTMLDivElement, UIEvent>) => {\r\n setScrollPosition({ top: e.currentTarget.scrollTop, left: e.currentTarget.scrollLeft });\r\n };\r\n\r\n const noDataMessage = props.noDataMessage ?? \"No data available\";\r\n const dataRows = props.dataRows != null ? props.dataRows : !props.data ? -1 : props.data.length;\r\n\r\n return <div className=\"xx\" style={{ flex: \"1\", position: \"relative\", overflow: \"auto\" }} onScroll={onScroll}>\r\n <div className=\"shadow-sm bg-white rounded\" style={{ display: \"inline-block\", margin: \"1rem\" }}>\r\n {React.cloneElement(props.children, { scrollPosition: scrollPosition })}\r\n {props.isLoading && <div className={s.loading} style={{ top: scrollPosition.top + \"px\", left: scrollPosition.left + \"px\" }}></div>}\r\n {!props.isLoading && props.error === \"\" && dataRows === 0 && <div className={s.nodata} style={{ left: scrollPosition.left + \"px\" }}>{noDataMessage}</div>}\r\n {!props.isLoading && props.error !== \"\" && <div className={s.error} style={{ left: scrollPosition.left + \"px\" }}><FontAwesomeIcon icon={faExclamationTriangle} /> {props.error} {props.message}</div>}\r\n {!props.isLoading && props.error === \"\" && dataRows === -1 && <div className={s.error} style={{ left: scrollPosition.left + \"px\" }}><FontAwesomeIcon icon={faExclamationTriangle} /> {\"Wrong data packet received\"}</div>}\r\n </div>\r\n </div>;\r\n};\r\nexport default SheetDataPart;","const s = require(\"./downloadButton.module.scss\");\r\n\r\nimport { default as React, useState, forwardRef } from \"react\";\r\nimport classnames from \"classnames\";\r\nimport ReactDatePicker from \"react-datepicker\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faWindowClose } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\n\r\ninterface State {\r\n applicationState: ApplicationState;\r\n pageConfig: PageList;\r\n formats: string[];\r\n search?: any;\r\n}\r\n\r\nconst DownloadButton = ({ applicationState, pageConfig, formats, search, t }: State & WithTranslation) => {\r\n const [startDate, setStartDate] = useState(new Date());\r\n const [endDate, setEndDate] = useState(new Date());\r\n const [showPopup, setShowPopup] = useState(false);\r\n const [showWait, setShowPleaseWait] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [applyFilter, setApplyFilter] = useState(false);\r\n\r\n const download = (fileType: string) => {\r\n (async function runAsync() {\r\n\r\n setShowPleaseWait(true);\r\n let res = await httpService.apiDownload({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + pageConfig.apiType + \"/\" + pageConfig.apiUrl + \"/download\",\r\n query: { FromUtc: startDate.toISOString(), ToUtc: endDate.toISOString(), FileType: fileType, Filter: applyFilter ? JSON.stringify(search) : \"\" },\r\n senderId: pageConfig.apiUrl\r\n })();\r\n if (res == \"\") {\r\n setError(\"\");\r\n setShowPleaseWait(false);\r\n setShowPopup(false);\r\n } else {\r\n setError(res);\r\n setShowPleaseWait(false);\r\n }\r\n })();\r\n };\r\n const CweDateInput = forwardRef((a: any, ref) => {\r\n const cweDate = new Date(a.value);// applicationState.getCweTimeForDisplayPurposes(new Date(a.value));\r\n const cweString = cweDate.getFullYear() + \"-\" + (\"0\" + (cweDate.getMonth() + 1)).slice(-2) + \"-\" + (\"0\" + (cweDate.getDate())).slice(-2)\r\n + \" \" + (\"0\" + (cweDate.getHours())).slice(-2) + \":\" + (\"0\" + (cweDate.getMinutes())).slice(-2);\r\n return <input className={classnames(s.parameter, \"inputBorder\")} type=\"text\" value={cweString} onClick={a.onClick} readOnly />;\r\n });\r\n\r\n return <>\r\n <button className={s.pageButton} onClick={() => {\r\n if (applicationState.dateSteps.startsWith(\"H\")) {\r\n setStartDate(new Date(applicationState.selectedDate));\r\n setEndDate(applicationState.getUntilFor1Hour());\r\n }\r\n else {\r\n setStartDate(applicationState.getRootUtcTime());\r\n setEndDate(applicationState.getUntilFor1Day());\r\n }\r\n setShowPopup(true);\r\n }}>{t(\"common:download\")}</button>\r\n\r\n <div className={classnames(s.lightBox, showPopup ? \"\" : s.hidden)} onClick={() => { if (!showWait) { setShowPopup(false); } }} />\r\n <div className={classnames(s.popup, \"shadow\", showPopup && showWait ? \"\" : s.hidden)}>\r\n <h3 className={s.title}>{t(\"common:download\")}</h3>\r\n <div style={{ marginTop: \"50px\", marginBottom: \"50px\" }}>{t(\"common:pleaseWait\")}</div>\r\n </div>\r\n <div className={classnames(s.popup, \"shadow\", showPopup && !showWait ? \"\" : s.hidden)}>\r\n <h3 className={s.title}>{t(\"common:download\")}</h3>\r\n\r\n <FontAwesomeIcon icon={faWindowClose} className={s.closeButton} onClick={() => { if (!showWait) { setShowPopup(false); } }} />\r\n <div className=\"inputlabel\">{t(\"common:fromDateTime\")}</div>\r\n <ReactDatePicker\r\n className=\"inputBorder\"\r\n locale=\"en-GB\"\r\n dateFormat=\"yyyy-MM-dd HH:mm\"\r\n showYearPicker={applicationState.dateSteps == \"Y\"}\r\n customInput={<CweDateInput />}\r\n isClearable={false}\r\n fixedHeight\r\n todayButton=\"Today\"\r\n selected={applicationState.getCweTimeForDisplayPurposes(startDate)}\r\n onChange={(date: Date) => date && setStartDate(applicationState.convertCweHourToUtcDate(date))}\r\n selectsStart\r\n startDate={applicationState.getCweTimeForDisplayPurposes(startDate)}\r\n endDate={applicationState.getCweTimeForDisplayPurposes(endDate)}\r\n //highlightDates={availableDates.map(d => new Date(d))}\r\n showTimeSelect\r\n timeFormat=\"HH:mm\"\r\n timeIntervals={60}\r\n timeCaption=\"Hour\"\r\n />\r\n <div className=\"inputlabel\">{t(\"common:toDateTime\")}</div>\r\n <ReactDatePicker\r\n className=\"inputBorder\"\r\n locale=\"en-GB\"\r\n dateFormat=\"yyyy-MM-dd HH:mm\"\r\n showYearPicker={applicationState.dateSteps == \"Y\"}\r\n customInput={<CweDateInput />}\r\n isClearable={false}\r\n fixedHeight\r\n todayButton=\"Today\"\r\n selected={applicationState.getCweTimeForDisplayPurposes(endDate)}\r\n onChange={(date: Date) => date && setEndDate(applicationState.convertCweHourToUtcDate(date))}\r\n selectsEnd\r\n startDate={applicationState.getCweTimeForDisplayPurposes(startDate)}\r\n endDate={applicationState.getCweTimeForDisplayPurposes(endDate)}\r\n //highlightDates={availableDates.map(d => new Date(d))}\r\n showTimeSelect\r\n timeFormat=\"HH:mm\"\r\n timeIntervals={60}\r\n timeCaption=\"Hour\"\r\n />\r\n\r\n <div style={{ color: \"red\", marginTop: \"16px\", marginBottom: \"16px\" }}>{error}</div>\r\n\r\n {search && Object.keys(search).length !== 0 &&\r\n <div>\r\n <input id=\"filter\" type=\"checkbox\" checked={applyFilter} onChange={e => setApplyFilter(e.target.checked)}/>\r\n <label htmlFor=\"filter\" >{t(\"common:applyFilter\")}</label>\r\n </div>}\r\n \r\n <div>\r\n <div>{formats.map(f => <button key={f} className={s.popupButton} onClick={() => download(f)}>{f.toUpperCase()}</button>)}</div>\r\n <span>{t(\"common:downloadAs\")}</span>\r\n </div>\r\n </div>\r\n </>;\r\n};\r\n\r\nconst translated = withTranslation()(DownloadButton);\r\nexport default translated;","// const s = require(\"./sheetHeader.module.scss\");\r\n\r\nimport { default as React } from \"react\";\r\nimport DownloadButton from \"components/downloadButton\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faInfoCircle } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface State {\r\n applicationState: ApplicationState;\r\n title: string;\r\n senderId?: string;\r\n showDownload: boolean;\r\n showTestData?: boolean;\r\n disclaimer?: string;\r\n search?: any;\r\n children?: any;\r\n pageConfig: PageList;\r\n downloadFormats?: string[];\r\n}\r\n\r\nconst SheetHeader = (props: State) => { //{ applicationState, title, pageConfig, showDownload }: State\r\n return <header className=\"sheetHeader\" style={{ display: \"block\", backgroundColor: \"white\", zIndex: 4 }}>\r\n {props.showDownload && <DownloadButton applicationState={props.applicationState} pageConfig={props.pageConfig} formats={props.downloadFormats || [\"xml\", \"csv\"]} search={props.search} />}\r\n {props.children /* Explanatory note, or other buttons on top */}\r\n <h3 className=\"mr-auto\" style={{ color: \"#A60045\", padding: \"30px\", margin: \"0\" }}>{props.title}</h3>\r\n {props.showTestData && <h4 className=\"mr-auto\" style={{ color: \"#aaa\", paddingLeft: \"30px\", margin: \"0\", marginTop: \"-33px\", position: \"absolute\" }}>Test data.\r\n <a href=\"/core\" style={{ fontSize: \"14pt\" }}>Full Disclaimer</a>\r\n </h4>\r\n }\r\n {props.disclaimer && <div style={{ background: \"lightyellow\", paddingLeft: \"15px\", paddingRight: \"10px\", color: \"darkorange\" }}>\r\n <FontAwesomeIcon icon={faInfoCircle} style={{ fontSize: \"17x\", verticalAlign: \"middle\", margin: \"-6px 6px 0 6px\" }} />\r\n {props.disclaimer}\r\n </div>\r\n }\r\n </header>;\r\n};\r\nexport default SheetHeader;","import * as React from \"react\";\r\n\r\ninterface Props {\r\n rowSpan: number;\r\n date: Date;\r\n left?: number;\r\n className?: string;\r\n}\r\n\r\nconst TDate = ({ rowSpan, date, left, className }: Props) => {\r\n\r\n // If you change the timezone on your local computer, it should still show CWE times\r\n // a day should start at 00:00:00 (UTC 23:00 or 22:00 DST)\r\n\r\n //This logic is also in app.tsx getCweTimeForDisplayPurposes(date);\r\n var localCweDate = new Date(date.toLocaleString('en-US', { timeZone: 'Europe/Brussels' }));\r\n\r\n return <td rowSpan={rowSpan} className={(left ? \"fixedColumn\" : \"\") + \" \" + className} style={{ whiteSpace: \"nowrap\", left: left + \"px\" }}>\r\n {localCweDate.getFullYear() + \"-\" + (\"0\" + (localCweDate.getMonth() + 1)).slice(-2) + \"-\" + (\"0\" + (localCweDate.getDate())).slice(-2)}\r\n </td>;\r\n}\r\nexport default TDate;","const s = require(\"./monitoring.module.scss\");\r\nimport * as React from \"react\";\r\n\r\nimport TDate from \"components/TDate\";\r\nimport { MonitoringDto } from \"core/backend/common\";\r\nimport CheckIcon from \"components/checkIcon\";\r\n\r\ninterface OwnProps {\r\n dto: MonitoringDto;\r\n left: number;\r\n}\r\nconst Row = ({ dto, left }: OwnProps) =>\r\n <tr className=\"small\">\r\n <TDate rowSpan={1} date={new Date(dto.businessDayUtc)} left={left} />\r\n <td className=\"alignLeft\">{dto.page}</td>\r\n <td className={dto.status === \"Pending\" ? s.pending :\r\n dto.status === \"Received\" ? s.received :\r\n dto.status === \"Expected\" ? s.expected : s.spanning}>{dto.status}</td>\r\n <td><CheckIcon checked={dto.followUpActionInitiated} /></td>\r\n </tr>\r\n\r\nexport default Row;","import { default as React } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { MonitoringDto } from \"core/backend/common\";\r\nimport { ApplicationState } from \"core/app\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: MonitoringDto[];\r\n applicationState: ApplicationState;\r\n}\r\n\r\nconst List = ({ t, applicationState, data, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\tconst pageList = applicationState.pages.map(p => p.config);\r\n \r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoring:page\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoring:status\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoring:followUpAction\")}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.sort((a, b) =>\r\n pageList.findIndex(x => t(x.menu).toLowerCase() == a.page.toLowerCase() || t(x.title).toLowerCase() == a.page.toLowerCase()) <=\r\n pageList.findIndex(x => t(x.menu).toLowerCase() == b.page.toLowerCase() || t(x.title).toLowerCase() == b.page.toLowerCase()) ? -1 : 1\r\n ).map((d) => <Row key={d.id} dto={d} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"monitoring\")(List);\r\n\r\nexport default translated;","const s = require(\"./monitoring.module.scss\");\r\n\r\nimport { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { MonitoringDto, GetMonitoringDataResponse, GetMonitoringDataQuery } from \"core/backend/common\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport List from \"./list\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { faCog } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { PageList, sortParameters } from \"core/pages/pageList\";\r\n\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\nexport const senderId = \"monitoring\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"monitoring\",\r\n webUrl: \"monitoring\",\r\n menu: \"\", //no menu link should be created for this page\r\n apiType: \"system\",\r\n title: \"menu:titleMonitoring\",\r\n response: JSON.stringify(keys<GetMonitoringDataResponse>()),\r\n dto: JSON.stringify(keys<MonitoringDto>()),\r\n parameters: JSON.stringify(sortParameters(keys<GetMonitoringDataQuery>())),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: MonitoringDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<MonitoringDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetMonitoringDataResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: page_config.getDefaultToDateTime(applicationState).toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} downloadFormats={['csv']} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n {\r\n applicationState.userRole === \"Licquid\"\r\n || applicationState.userRole === \"JaoUser\"\r\n || applicationState.userRole === \"JaoAdmin\"\r\n ? <div className=\"subHeader\">\r\n <NavLink to={\"/monitoring\"} activeClassName={s.selected} className={s.selectableTabs}>Overview per BusinessDay</NavLink>\r\n <NavLink to={\"/monitoringFailed\"} activeClassName={s.selected} className={s.selectableTabs}>Failed Files</NavLink>\r\n <NavLink to={\"/monitoringConfig\"} activeClassName={s.selected} className={s.selectableTabs}><FontAwesomeIcon icon={faCog} /> Configure</NavLink>\r\n </div>\r\n : \"\"\r\n }\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} applicationState={applicationState} />\r\n </SheetDataPart>\r\n </>\r\n\r\n );\r\n}\r\n\r\nexport default withTranslation(\"monitoring\")(Page);\r\n","import { ApplicationState } from \"core/app\";\r\nimport * as monitoring from \"./system/monitoring\";\r\n\r\nexport interface PageList {\r\n apiUrl: string;\r\n webUrl: string,\r\n menu: string,\r\n title: string;\r\n apiType: string;\r\n response: string;\r\n dto: string;\r\n parameters: string;\r\n dateSteps: string;\r\n getDefaultToDateTime(applicationState: ApplicationState): Date;\r\n filterFields?: FilterField[];\r\n}\r\nexport interface FilterField {\r\n title: string;\r\n parameter: string;\r\n type: string;\r\n options?: FilterOption[];\r\n}\r\nexport interface FilterOption {\r\n title: string;\r\n value: string;\r\n}\r\n\r\n\r\n\r\nexport function sortParameters(list: string[]): string[] {\r\n const parameterOrder = [\"fromUtc\", \"toUtc\", \"skip\", \"take\", \"filter\"];\r\n return list.sort((a, b) => {\r\n if (parameterOrder.indexOf(a) === -1 && parameterOrder.indexOf(b) === -1) return (a < b) ? -1 : (a > b) ? 1 : 0;\r\n if (!parameterOrder.includes(a)) return 1; //if not in the parameterOrder, move down\r\n if (!parameterOrder.includes(b)) return -1; //if not in the parameterOrder, move down\r\n if (parameterOrder.indexOf(a) < parameterOrder.indexOf(b)) return -1;\r\n if (parameterOrder.indexOf(b) < parameterOrder.indexOf(a)) return 1;\r\n return 0;\r\n });\r\n};","const s = require(\"../monitoring/monitoring.module.scss\");\r\nimport * as React from \"react\";\r\n\r\nimport TDatetime from \"components/TDatetime\";\r\nimport { MonitoringFailedDto } from \"core/backend/common\";\r\n\r\ninterface OwnProps {\r\n dto: MonitoringFailedDto;\r\n left: number;\r\n}\r\nconst Row = ({ dto, left }: OwnProps) =>\r\n <tr className=\"small\">\r\n <TDatetime rowSpan={1} date={new Date(dto.businessDayUtc)} left={left} />\r\n <td className=\"alignLeft\">{dto.fileName}</td>\r\n <td className=\"alignLeft\">{dto.error}</td>\r\n </tr>\r\n\r\nexport default Row;","import { default as React } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { MonitoringFailedDto } from \"core/backend/common\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: MonitoringFailedDto[];\r\n}\r\n\r\nconst List = ({ t, data, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoring:fileName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoring:error\")}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data.map((d) => <Row key={d.id} dto={d} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"monitoring\")(List);\r\n\r\nexport default translated;","const s = require(\"../monitoring/monitoring.module.scss\");\r\n\r\nimport { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { MonitoringFailedDto, GetMonitoringFailedDataResponse, ApiResponse } from \"core/backend/common\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport List from \"./list\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faCog } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\nexport const senderId = \"monitoringFailed\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"\",\r\n webUrl: \"monitoringFailed\",\r\n menu: \"\", //no menu link should be created for this page\r\n apiType: \"system\",\r\n title: \"menu:titleMonitoring\",\r\n response: \"\",\r\n dto: \"\",\r\n parameters: \"\",\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: MonitoringFailedDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(\"D\", false, false, keys<MonitoringFailedDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetMonitoringFailedDataResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/system/monitoringFailed\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: page_config.getDefaultToDateTime(applicationState).toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n //<SheetDataPart ... noDataMessage={\"All expected files arrived for \" + applicationState.selectedDate.toLocaleDateString(\"en-CA\")}>\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} downloadFormats={['csv']} applicationState={applicationState} title={t(\"menu:titleMonitoring\")} pageConfig={page_config} />\r\n {\r\n applicationState.userRole === \"Licquid\"\r\n || applicationState.userRole === \"JaoUser\"\r\n || applicationState.userRole === \"JaoAdmin\"\r\n ? <div className=\"subHeader\">\r\n <NavLink to={\"/monitoring\"} activeClassName={s.selected} className={s.selectableTabs}>Overview per BusinessDay</NavLink>\r\n <NavLink to={\"/monitoringFailed\"} activeClassName={s.selected} className={s.selectableTabs}>Failed Files</NavLink>\r\n <NavLink to={\"/monitoringConfig\"} activeClassName={s.selected} className={s.selectableTabs}><FontAwesomeIcon icon={faCog} /> Configure</NavLink>\r\n </div>\r\n : \"\"\r\n }\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} />\r\n </SheetDataPart>\r\n </>\r\n\r\n );\r\n}\r\n\r\nexport default withTranslation(\"monitoring\")(Page);\r\n","const s = require(\"./config.module.scss\");\r\nimport { default as React } from \"react\";\r\nimport { withTranslation } from \"react-i18next\";\r\n\r\ninterface OwnProps {\r\n values: string[];\r\n selected: string;\r\n onChange: (s: string) => void;\r\n}\r\n\r\nconst SelectField = ({ selected, values, onChange }: OwnProps) => (\r\n <select className={s.selectField} onChange={e => onChange(e.target.value)} value={selected}>\r\n {values.concat(\"\").map(x => <option value={x} key={x}>{x}</option>)}\r\n </select>\r\n);\r\n\r\nexport default withTranslation()(SelectField);","const s = require(\"./config.module.scss\");\r\nimport { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\n\r\nimport { MonitoringConfigDto } from \"core/backend/common\";\r\nimport SelectField from \"./selectField\";\r\n\r\ninterface OwnProps {\r\n dto: MonitoringConfigDto;\r\n pages: string[];\r\n files: string[];\r\n setEditDto: (dto: MonitoringConfigDto) => void;\r\n}\r\n\r\nconst EditableRow = ({ t, dto, pages, files, setEditDto }: OwnProps & WithTranslation) => {\r\n\r\n return (\r\n <>\r\n <td className=\"alignLeft\">\r\n <SelectField values={pages.map(p => t(p))} selected={dto.page} onChange={s => setEditDto({ ...dto, page: s })} />\r\n </td>\r\n <td className=\"alignLeft\">{dto.tableName}</td>\r\n <td>\r\n <SelectField values={files} selected={dto.fileType} onChange={s => setEditDto({ ...dto, fileType: s })} />\r\n </td>\r\n <td>\r\n <SelectField values={files} selected={dto.backupFileType} onChange={s => setEditDto({ ...dto, backupFileType: s })} />\r\n </td>\r\n <td className=\"alignLeft\">\r\n <SelectField values={files} selected={dto.spanningFile} onChange={s => setEditDto({ ...dto, spanningFile: s })} />\r\n </td>\r\n <td className=\"alignLeft\">\r\n <input type=\"text\" style={{ width: \"100%\" }} value={dto.deadline} onChange={e => setEditDto({ ...dto, deadline: e.target.value })} />\r\n </td>\r\n <td>\r\n <input type=\"checkbox\" checked={dto.active} onChange={e => setEditDto({ ...dto, active: e.currentTarget.checked })} />\r\n </td>\r\n </>\r\n );\r\n}\r\n\r\nexport default withTranslation()(EditableRow);","const s = require(\"./config.module.scss\");\r\nimport { default as React, useEffect, useState } from \"react\";\r\n\r\nimport { MonitoringConfigDto } from \"core/backend/common\";\r\nimport CheckIcon from \"components/checkIcon\";\r\n\r\ninterface OwnProps {\r\n dto: MonitoringConfigDto;\r\n}\r\n\r\nconst ReadonlyRow = ({ dto }: OwnProps) => (\r\n <>\r\n <td className=\"alignLeft\">{dto.page}</td>\r\n <td className=\"alignLeft\">{dto.tableName}</td>\r\n <td className=\"alignLeft\">{dto.fileType}</td>\r\n <td className=\"alignLeft\">{dto.backupFileType}</td>\r\n <td className=\"alignLeft\">{dto.spanningFile}</td>\r\n <td className=\"alignLeft\">{dto.deadline}</td>\r\n <td><CheckIcon checked={dto.active} /></td>\r\n </>\r\n);\r\n\r\nexport default ReadonlyRow;","const s = require(\"./config.module.scss\");\r\nimport { default as React, useEffect, useState } from \"react\";\r\n\r\nimport { MonitoringConfigDto } from \"core/backend/common\";\r\nimport CheckIcon from \"components/checkIcon\";\r\nimport { faTrash, faEdit, faSave, faTimes } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport EditableRow from \"./editableRow\";\r\nimport ReadonlyRow from \"./readonlyRow\";\r\n\r\ninterface OwnProps {\r\n dto: MonitoringConfigDto;\r\n deleteConfig?: (id: number) => void;\r\n editConfig: (dto: MonitoringConfigDto) => void;\r\n cancelEditConfig?: () => void;\r\n pages: string[];\r\n files: string[];\r\n editDefault?: boolean;\r\n readOnly: boolean;\r\n}\r\n\r\n\r\nconst Row = ({ dto, deleteConfig, editConfig, pages, files, editDefault, cancelEditConfig, readOnly }: OwnProps) => {\r\n\r\n const [isEdit, setEdit] = useState(editDefault);\r\n const [editDto, setEditDto] = useState(dto);\r\n\r\n return (\r\n dto &&\r\n <tr className=\"small\">\r\n {isEdit ? <EditableRow dto={editDto} pages={pages} files={files} setEditDto={setEditDto} /> : <ReadonlyRow dto={dto} />}\r\n\r\n <td className={s.actions}>\r\n {readOnly\r\n ? <></>\r\n : isEdit\r\n ? <><FontAwesomeIcon icon={faSave} style={{ marginRight: \"10px\" }} onClick={e => { setEdit(false); editConfig(editDto); }} /> <FontAwesomeIcon icon={faTimes} onClick={e => { setEdit(false); setEditDto(dto); if (cancelEditConfig) cancelEditConfig(); }} /></>\r\n : <><FontAwesomeIcon icon={faEdit} style={{ marginRight: \"10px\" }} onClick={e => setEdit(true)} /> <FontAwesomeIcon icon={faTrash} onClick={e => deleteConfig && deleteConfig(dto.id)} /></>}\r\n </td>\r\n </tr>);\r\n}\r\n\r\nexport default Row;","const s = require(\"./config.module.scss\");\r\n\r\nimport { default as React, useState } from \"react\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { MonitoringConfigDto } from \"core/backend/common\";\r\nimport { faPlusSquare } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\n\r\nconst emptyDto: MonitoringConfigDto = { id: 0, page: \"\", tableName: \"\", fileType: \"\", backupFileType: \"\", spanningFile: \"\", deadline: \"\", active: false };\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: MonitoringConfigDto[];\r\n deleteConfig: (id: number) => void;\r\n editConfig: (dto: MonitoringConfigDto) => void;\r\n addConfig: (dto: MonitoringConfigDto) => void;\r\n pages: string[];\r\n files: string[];\r\n readOnly: boolean;\r\n}\r\n\r\nconst List = ({ t, data, scrollPosition, deleteConfig, editConfig, addConfig, pages, files, readOnly }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const [isAddition, setAddition] = useState(false);\r\n const [editDto, setEditDto] = useState(emptyDto);\r\n\r\n return (\r\n <>\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoringConfig:page\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoringConfig:table\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoringConfig:fileType\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoringConfig:backupFileType\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoringConfig:spanningFile\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoringConfig:deadline\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoringConfig:active\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"comonitoringConfignfiguration:actions\")}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} deleteConfig={deleteConfig} editConfig={editConfig} pages={pages} files={files} readOnly={readOnly} />)\r\n }\r\n {\r\n isAddition ? <Row key={emptyDto.id} dto={emptyDto} editDefault={true} cancelEditConfig={() => setAddition(false)} editConfig={x => { setAddition(false); addConfig(x) }} pages={pages} files={files} readOnly={readOnly} /> : null\r\n }\r\n </tbody>\r\n </table>\r\n {readOnly === false &&\r\n <div className={s.addIcon}>\r\n <FontAwesomeIcon icon={faPlusSquare} onClick={e => setAddition(true)} />\r\n </div>\r\n }\r\n </>\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","const s = require(\"../monitoring/monitoring.module.scss\");\r\n\r\nimport { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { MonitoringConfigDto, GetMonitorConfigDataResponse, InsertMonitorConfigDataResponse } from \"core/backend/common\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport List from \"./list\";\r\nimport { ApiResponse } from \"core/backend/data\";\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport { faCog } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\nexport const senderId = \"config\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"\",\r\n webUrl: \"monitoringConfig\",\r\n menu: \"\", //no menu link should be created for this page\r\n apiType: \"system\",\r\n title: \"menu:titleMonitoring\",\r\n response: JSON.stringify(keys<GetMonitorConfigDataResponse>()),\r\n dto: JSON.stringify(keys<MonitoringConfigDto>()),\r\n parameters: \"\",\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const pageList = applicationState.pages.map(p => p.config);\r\n const initialLists: string[] = [];\r\n const initialData: MonitoringConfigDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [pages, setPages] = useState(initialLists);\r\n const [files, setFiles] = useState(initialLists);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n const deleteConfig = async (id: number) => {\r\n setLoading(true);\r\n const response = await httpService.apiPost<ApiResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/system/monitoringConfig/delete\",\r\n query: { id: id },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(data.filter(d => d.id !== id));\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n }\r\n\r\n const editConfig = async (dto: MonitoringConfigDto) => {\r\n setLoading(true);\r\n const response = await httpService.apiPost<ApiResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/system/monitoringConfig/update\",\r\n query: { id: dto.id, page: dto.page, fileType: dto.fileType, backupFileType: dto.backupFileType, spanningFile: dto.spanningFile, deadline: dto.deadline, active: dto.active },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(data.map(d => { if (d.id === dto.id) return dto; else return d; }));\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n }\r\n\r\n const addConfig = async (dto: MonitoringConfigDto) => {\r\n setLoading(true);\r\n const response = await httpService.apiPost<InsertMonitorConfigDataResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/system/monitoringConfig/insert\",\r\n query: { page: dto.page, fileType: dto.fileType, backupFileType: dto.backupFileType, spanningFile: dto.spanningFile, deadline: dto.deadline, active: dto.active },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(data.concat(response.data.data));\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n }\r\n\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(\"D\", false, false, keys<MonitoringConfigDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetMonitorConfigDataResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/system/monitoringConfig\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setFiles(response.data.filetypes);\r\n setPages(pageList.map(p => p.menu));\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n //<SheetDataPart ... noDataMessage={\"All expected files arrived for \" + applicationState.selectedDate.toLocaleDateString(\"en-CA\")}>\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} downloadFormats={['csv']} applicationState={applicationState} title={t(\"menu:titleConfig\")} pageConfig={page_config} />\r\n {\r\n applicationState.userRole === \"Licquid\"\r\n || applicationState.userRole === \"JaoUser\"\r\n || applicationState.userRole === \"JaoAdmin\"\r\n ? <div className=\"subHeader\">\r\n <NavLink to={\"/monitoring\"} activeClassName={s.selected} className={s.selectableTabs}>Overview per BusinessDay</NavLink>\r\n <NavLink to={\"/monitoringFailed\"} activeClassName={s.selected} className={s.selectableTabs}>Failed Files</NavLink>\r\n <NavLink to={\"/monitoringConfig\"} activeClassName={s.selected} className={s.selectableTabs}><FontAwesomeIcon icon={faCog} /> Configure</NavLink>\r\n </div>\r\n : \"\"\r\n }\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} deleteConfig={deleteConfig} editConfig={editConfig} addConfig={addConfig} pages={pages} files={files} readOnly={applicationState.userRole !== \"Licquid\" && applicationState.userRole !== \"JaoAdmin\"} />\r\n </SheetDataPart>\r\n </>\r\n\r\n );\r\n}\r\n\r\nexport default withTranslation()(Page);\r\n","const s = require(\"./login.module.scss\");\r\n\r\nimport { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport {PageList} from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"\",\r\n webUrl: \"jaoLogin\",\r\n menu: \"\", //no menu link should be created for this page\r\n apiType: \"system\",\r\n title: \"menu:titleMonitoring\",\r\n response: \"\",\r\n dto: \"\",\r\n parameters: \"\",\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const [userName, setUserName] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [error, setError] = useState(\"\");\r\n\r\n const doLogon = () => {\r\n if (password == null || password === \"\" || password === \"empty\") {\r\n setError(\"Password cannot be empty.\");\r\n return;\r\n }\r\n (async function runAsync() {\r\n const response = await httpService.apiPost({\r\n applicationState: applicationState,\r\n route: applicationState.applicationRoot + \"systemLogin\",\r\n query: { username: userName, password: password },\r\n senderId: \"login\"\r\n })();\r\n\r\n if (response.ok) {\r\n if (response.data.message) {\r\n setError(response.data.message);\r\n } else {\r\n setPassword(\"\");\r\n window.location.reload(); //refresh the page, so user data will be visible\r\n }\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n })();\r\n }\r\n const doLogoff = () => {\r\n setUserName(applicationState.userMail);\r\n (async function runAsync() {\r\n const response = await httpService.apiPost({\r\n applicationState: applicationState,\r\n route: applicationState.applicationRoot + \"systemLogoff\",\r\n senderId: \"login\"\r\n })();\r\n\r\n if (response.ok) {\r\n applicationState.changeToken(\"\", \"Guest\", applicationState.guestToken);\r\n setError(\"\");\r\n setPassword(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n })();\r\n }\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(\"\", false, false, []);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return applicationState.userRole === \"JaoUser\" || applicationState.userRole === \"JaoAdmin\" || applicationState.userRole === \"Licquid\" ?\r\n (\r\n <div style={{ flex: \"1\", position: \"relative\", overflow: \"auto\" }}>\r\n <h3 className={s.title}>{t(\"login:profile\")}</h3>\r\n <form className={s.container} id=\"logoffForm\" onSubmit={e => { e.preventDefault(); doLogoff(); return false; }}>\r\n <label htmlFor=\"user\" style={{ marginBottom: \"0px\" }}>{t(\"login:user\")}</label>\r\n <input type=\"text\" name=\"user\" value={applicationState.userMail} disabled />\r\n <br />\r\n\r\n <label htmlFor=\"role\" style={{ marginBottom: \"0px\" }}>{t(\"login:role\")}</label>\r\n <input type=\"text\" name=\"role\" value={applicationState.userRole} disabled />\r\n <br />\r\n\r\n <input type=\"submit\" className={s.submitButton} value=\"Log Off\" />\r\n\r\n {error || (<div className={s.error}>{error}</div>)}\r\n </form>\r\n </div >\r\n )\r\n : (\r\n <div style={{ flex: \"1\", position: \"relative\", overflow: \"auto\" }}>\r\n <h3 className={s.title}>{t(\"login:login\")}</h3>\r\n <form className={s.container} id=\"loginForm\" onSubmit={e => { e.preventDefault(); doLogon(); return false; }}>\r\n <label htmlFor=\"user\" style={{ marginBottom: \"0px\" }}>{t(\"login:user\")}</label>\r\n <input type=\"text\" name=\"user\" value={userName} onChange={e => setUserName(e.currentTarget.value)} />\r\n <br />\r\n\r\n <label htmlFor=\"password\" style={{ marginBottom: \"0px\" }}>{t(\"login:password\")}</label>\r\n <input type=\"password\" name=\"password\" value={password} onChange={e => setPassword(e.currentTarget.value)} />\r\n <br />\r\n\r\n <input type=\"submit\" className={s.submitButton} value=\"Log On\" />\r\n\r\n {error || (<div className={s.error}>{error}</div>)}\r\n </form>\r\n </div >\r\n );\r\n}\r\n\r\nexport default withTranslation(\"login\")(Page);\r\n","const s = require(\"../../../../components/downloadButton.module.scss\");\r\nimport { default as React, useEffect } from \"react\";\r\nimport { Trans, withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { ApplicationState } from \"core/app\";\r\n\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faBook, faInfoCircle } from \"@fortawesome/free-solid-svg-icons\"; //fontawesome.com\r\nimport JaoLogo from \"components/jaoLogo\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"\",\r\n webUrl: \"home\",\r\n menu: \"\", //no menu link should be created for this page\r\n apiType: \"system\",\r\n title: \"menu:titleHome\",\r\n response: \"\",\r\n dto: \"\",\r\n parameters: \"\",\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(\"\", false, false, []);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n //CORE_PublicationHandbook = Redirect in web.config\r\n return (\r\n <div style={{ flex: \"1\", position: \"relative\", overflow: \"auto\" }}>\r\n <a href=\"CORE_PublicationHandbook\" target=\"_blank\" style={{ float: \"right\", margin: \"2rem 0 2rem 2rem\", color: \"#88a4bf\", textDecoration: \"underline\" }}>\r\n Publication handbook <FontAwesomeIcon icon={faInfoCircle} style={{ fontSize: \"30px\", verticalAlign: \"middle\", margin: \"-6px 6px 0 6px\" }} />\r\n </a>\r\n <JaoLogo />\r\n <div className=\"shadow-sm bg-white rounded m-3\" style={{ padding: \"20px\" }}>\r\n <br />\r\n <h3>{t(\"page_home:welcomeTitle\")}</h3>\r\n <Trans\r\n defaults={t(\"page_home:text\" + applicationState.environment)}\r\n components={{ italic: <i />, bold: <strong />, paragraph: <p /> }}\r\n />\r\n </div>\r\n </div >\r\n );\r\n}\r\n\r\nexport default withTranslation(\"page_home\")(Page);\r\n","const s = require(\"./select.module.scss\");\r\n\r\nimport { default as React, useState } from \"react\";\r\nimport classnames from \"classnames\";\r\n\r\nexport interface SelectItem {\r\n id: string;\r\n text: string;\r\n}\r\ninterface Props {\r\n data: SelectItem[];\r\n enabled: boolean;\r\n selectedItem: SelectItem;\r\n}\r\n\r\ninterface DispatchProps {\r\n onChange: (item: SelectItem) => void;\r\n}\r\ninterface State {\r\n open: boolean;\r\n}\r\n\r\nconst Select = ({ data, enabled, selectedItem, onChange }: Props & DispatchProps) => {\r\n const initialState: State = { open: false };\r\n const [state, setState] = useState(initialState);\r\n const [search, setSearch] = useState(\"\");\r\n\r\n const interceptEvent = (event: any) => {\r\n if (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n };\r\n const renderListItem = (item: SelectItem) => {\r\n const className = classnames(s.dropdownitem, item.id === selectedItem.id ? s.selected : s.notselected);\r\n return (<a key={item.id} className={className} onClick={(e) => { handleChange(e, item); }} onMouseDown={handleMouseDown} onBlur={handleBlur} href=\"#\">{item.text}</a>);\r\n };\r\n\r\n const handleChange = (event: any, item: SelectItem) => {\r\n clickedOnOption = false;\r\n interceptEvent(event);\r\n onChange(item);\r\n handleClose(event);\r\n };\r\n const handleClose = (event: any) => {\r\n interceptEvent(event);\r\n if (!clickedOnOption) {\r\n setState({ open: false });\r\n }\r\n clickedOnOption = false;\r\n };\r\n let clickedOnOption: Boolean = false;\r\n let blurTimeout: any = undefined;\r\n const handleBlur = () => {\r\n clearTimeout(blurTimeout);\r\n blurTimeout = setTimeout(handleClose, 0);\r\n };\r\n const toggleOpenClose = (event: any) => {\r\n interceptEvent(event);\r\n setState({ open: !state.open });\r\n if (state.open) {\r\n return setState({ open: false });\r\n }\r\n setSearch(\"\");\r\n };\r\n const handleMouseDown = () => {\r\n clickedOnOption = true;\r\n };\r\n\r\n const classNameInput = classnames(s.textField, \"inputBorder\", enabled ? s.enabled : s.disabled, state.open ? s.xxx : \"\");\r\n const classNameDropDown = classnames(s.dropdownmenu, state.open ? \"\" : s.hidden);\r\n const classNameSearch = classnames(\"inputBorder\", s.search, state.open ? \"\" : s.hidden);\r\n\r\n const selectedItems = data.filter((f) => { return f.id === selectedItem.id; });\r\n\r\n return (<div>\r\n <button className={classNameInput} onClick={toggleOpenClose} onBlur={handleBlur}>\r\n {data === undefined ? \"None available\"\r\n : data.length === 0 ? \"None available\"\r\n : selectedItems.length === 0 ? \"\"\r\n : selectedItems[0].text}\r\n </button>\r\n <input type=\"text\"\r\n onFocus={handleMouseDown}\r\n onBlur={handleBlur}\r\n className={classNameSearch}\r\n placeholder=\"search...\"\r\n value={search}\r\n onChange={(e) => setSearch(e.currentTarget.value)} />\r\n <div className={classNameDropDown}>\r\n {\r\n data && data.filter((d) => d.text.toLowerCase().includes(search.toLowerCase())).map(renderListItem)\r\n }\r\n </div>\r\n </div>);\r\n};\r\n\r\nexport default Select;","const s = require(\"./api.module.scss\");\r\n\r\nimport { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport * as queryString from \"querystring\";\r\n\r\ninterface OwnState {\r\n url: string;\r\n applicationState: ApplicationState;\r\n method: string;\r\n data: any;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, url, applicationState, method, data }: PageProps) => {\r\n\r\n return <div style={{ overflowWrap: \"break-word\" }}>\r\n {method == \"POST\" ?\r\n <div>\r\n <div className=\"inputlabel\">Curl</div>\r\n curl -X POST \"{url}\"\r\n ^<br />\r\n {/*-H \"Authorization: Bearer {(applicationState.userRole === \"Guest\" ? \"***Enter Your Personal Token Here***\" : applicationState.userToken)}\"\r\n ^<br />*/}\r\n -H \"Content-Type: application/json;charset=UTF-8\"\r\n ^<br />\r\n -d \"{JSON.stringify(data).replace(/\\\"/g, \"\\\\\\\"\")}\"\r\n </div>\r\n :\r\n <div>\r\n <div className=\"inputlabel\">Curl</div>\r\n curl -X {method} \"{url}{data}\"\r\n {/*^<br />\r\n -H \"Authorization: Bearer {(applicationState.userRole === \"Guest\" ? \"***Enter Your Personal Token Here***\" : applicationState.userToken)}\"*/}\r\n </div>\r\n }</div>;\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React } from \"react\";\r\nimport { SearchField } from \"components/search\";\r\nimport Multiselect from 'multiselect-react-dropdown';\r\n\r\ninterface OwnState {\r\n option: SearchField;\r\n setValue: (value: any) => void;\r\n reset: boolean;\r\n setReset: (value: boolean) => void;\r\n}\r\n\r\ntype SearchProps = OwnState;\r\n\r\nconst InputField = ({ option, reset, setReset, setValue }: SearchProps) => {\r\n\r\n let multiselectRef: any;\r\n React.useEffect(() => {\r\n if (reset && multiselectRef && multiselectRef.current) {\r\n multiselectRef.current.resetSelectedValues();\r\n setReset(false);\r\n }\r\n }, [reset]);\r\n\r\n switch (option.type) {\r\n case \"bool\":\r\n return (\r\n <div style={{ paddingTop: \"5px\" }}>\r\n <input type=\"radio\" id=\"true\" value=\"true\" name={option.parameter} onClick={e => setValue(true)} />\r\n <label htmlFor=\"true\">True</label>\r\n <input type=\"radio\" id=\"false\" value=\"false\" name={option.parameter} onClick={e => setValue(false)} />\r\n <label htmlFor=\"false\">False</label>\r\n <input type=\"radio\" id=\"unset\" value=\"unset\" name={option.parameter} onClick={e => setValue(null)} />\r\n <label htmlFor=\"unset\">Unset</label>\r\n </div>\r\n )\r\n case \"multiselect\": {\r\n multiselectRef = React.createRef<Multiselect>();\r\n return (\r\n <Multiselect\r\n ref={multiselectRef}\r\n options={option?.options}\r\n onSelect={(list, v) => setValue(list.map((l: { value: any; }) => l.value))}\r\n onRemove={(list, v) => setValue(list.map((l: { value: any; }) => l.value))}\r\n showCheckbox={true}\r\n closeOnSelect={false}\r\n showArrow={true}\r\n avoidHighlightFirstOption={true}\r\n displayValue=\"title\"\r\n style={{\r\n 'chips': {\r\n 'fontSize': '8px',\r\n 'background': '#88a4bf'\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n default:\r\n return <input type=\"text\" onChange={e => setValue(e.currentTarget.value)} style={{ width: '100%' }} />\r\n }\r\n};\r\n\r\nexport default InputField;\r\n","import { default as React } from \"react\";\r\nimport { SearchField } from \"components/search\";\r\nimport InputField from \"./inputField\";\r\n\r\ninterface OwnState {\r\n option: SearchField;\r\n setOptionValue: (option: string, value: any) => void;\r\n reset: boolean;\r\n setReset: (value: boolean) => void;\r\n}\r\n\r\ntype SearchProps = OwnState;\r\n\r\nconst SearchOption = ({ option, reset, setReset, setOptionValue }: SearchProps) => {\r\n\r\n return <tr>\r\n <td style={{ paddingRight: '10px' }}>{option.title}</td>\r\n <td>\r\n <InputField\r\n option={option}\r\n reset={reset}\r\n setReset={setReset}\r\n setValue={(v: any) => setOptionValue(option.parameter, v)} />\r\n </td>\r\n </tr>\r\n};\r\n\r\nexport default SearchOption;\r\n","import { default as React, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport SearchOption from \"./searchOption\";\r\nimport Collapsible from 'react-collapsible';\r\nconst s = require(\"./search.module.scss\");\r\n\r\n\r\ninterface OwnState {\r\n search: (params: any) => void;\r\n isLoading: boolean;\r\n /*filter: { totalRows: number, totalRowsWithFilter: number, maxRows: number };*/\r\n searchFields?: SearchField[];\r\n}\r\nexport interface SearchField {\r\n title: string;\r\n parameter: string;\r\n type: string;\r\n options?: Option[];\r\n defaultValue?: any;\r\n}\r\nexport interface Option {\r\n title: string;\r\n value: any;\r\n}\r\n\r\ntype SearchProps = OwnState & WithTranslation;\r\n\r\nconst SearchField = ({ search, isLoading, /*filter,*/ searchFields, t }: SearchProps) => {\r\n\r\n const [searchOptions, setSearchOptions] = useState({});\r\n const [reset, setReset] = useState(false);\r\n\r\n const setOptionValue = (option: string, value: any) => {\r\n const newFilter = {\r\n ...searchOptions,\r\n [option]: value\r\n };\r\n setSearchOptions(newFilter);\r\n search(newFilter);\r\n }\r\n\r\n const resetFilter = () => {\r\n (document.getElementById(\"searchForm\") as HTMLFormElement).reset();\r\n setReset(true);\r\n setSearchOptions({});\r\n search({});\r\n }\r\n\r\n return (\r\n searchFields == undefined || searchFields == null || searchFields.length == 0 ? <></>\r\n : <div style={{ backgroundColor: \"#f5f5f5\", marginTop: \"10px\" }}>\r\n <Collapsible\r\n onClosing={() => (document.getElementsByClassName('Collapsible__contentOuter')[0] as HTMLElement).style.overflow = 'hidden'}\r\n onOpen={() => (document.getElementsByClassName('Collapsible__contentOuter')[0] as HTMLElement).style.overflow = 'inherit'}\r\n trigger={\r\n <div className={s.collapsible}>\r\n <span className={s.searchLabel}>{t(\"common:filter\")}</span>\r\n <i className={s.collapsibleArrow}></i>\r\n </div>\r\n }>\r\n <div className=\"inputlabel\" style={{ display: \"inline-block\" }}>\r\n <form id=\"searchForm\" onSubmit={e => e.preventDefault()}>\r\n <table><tbody>\r\n {\r\n searchFields.map(field =>\r\n <SearchOption\r\n key={field.parameter}\r\n option={field}\r\n reset={reset}\r\n setReset={setReset}\r\n setOptionValue={setOptionValue} />)\r\n }\r\n <tr style={{ borderTop: '1px solid #757575' }}>\r\n <td>\r\n <button style={{ marginBottom: \"3px\" }} onClick={() => resetFilter()}>\r\n {t(\"common:reset\").toString()}\r\n </button>\r\n </td>\r\n </tr>\r\n </tbody></table>\r\n </form>\r\n </div>\r\n\r\n </Collapsible>\r\n </div>\r\n );\r\n};\r\n\r\nexport default withTranslation()(SearchField);\r\n","const s = require(\"./api.module.scss\");\r\n\r\nimport { default as React, useEffect, useContext, useState, forwardRef } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { GetAvailableDatesResponse, Query } from \"core/backend/data\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport JSONPretty from \"react-json-pretty\";\r\nimport classNames from \"classnames\";\r\nimport * as queryString from \"querystring\";\r\nimport Tab_curl from \"./tab_curl\";\r\nimport ReactDatePicker, { registerLocale } from \"react-datepicker\";\r\nimport Search from \"components/search\";\r\nimport SearchForApi from \"components/searchForApi\";\r\nimport { PageItemProps } from \"react-bootstrap\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n url: string;\r\n selectedEndpoint: PageList;\r\n jsonStyle: any;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState, url, selectedEndpoint, jsonStyle }: PageProps) => {\r\n\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [response, setResponse] = useState({ status: \"\", headers: \"\", data: \"\", size: 0, duration: 0, numberOfRows: 0 });\r\n const [toUtc, setToUtc] = useState(selectedEndpoint.getDefaultToDateTime(applicationState));\r\n const [skip, setSkip] = useState(0);\r\n const [take, setTake] = useState(10);\r\n const [search, setSearch] = useState({});\r\n const [method, setMethod] = useState(\"\");\r\n const initialDates: string[] = []\r\n const [availableDates, setAvailableDates] = useState([]);\r\n\r\n const getQueryRequest = (): any => {\r\n let parametersSearch: any = {};\r\n JSON.parse(selectedEndpoint.parameters).forEach((p: string) => {\r\n if (p.toLowerCase() === \"fromutc\") parametersSearch.FromUtc = applicationState.selectedDate.toISOString();\r\n else if (p.toLowerCase() === \"toutc\") parametersSearch.ToUtc = toUtc.toISOString();\r\n else if (p.toLowerCase() === \"filter\") parametersSearch.Filter = (search)\r\n else if (p.toLowerCase() === \"skip\") parametersSearch.Skip = skip;\r\n else if (p.toLowerCase() === \"take\") parametersSearch.Take = take;\r\n });\r\n return parametersSearch;\r\n };\r\n const createQueryString = (data: any) => {\r\n return Object.keys(data).map(key => {\r\n let val = data[key]\r\n if (val !== null && typeof val === 'object') val = createQueryString(val)\r\n return `${key}=${encodeURIComponent(`${val}`.replace(/\\s/g, '_'))}`\r\n }).join('&')\r\n }\r\n const createQueryStringNestedIntoJson = (data: any) => {\r\n return Object.keys(data).map(key => {\r\n let val = data[key]\r\n if (val !== null && typeof val === 'object') val = JSON.stringify(val);\r\n return `${key}=${encodeURIComponent(`${val}`.replace(/\\s/g, '_'))}`\r\n }).join('&')\r\n }\r\n\r\n const getQueryString = (): string => {\r\n return createQueryStringNestedIntoJson(getQueryRequest());\r\n }\r\n\r\n useEffect(() => {\r\n setResponse({ status: \"\", headers: \"\", data: \"\", size: 0, duration: 0, numberOfRows: 0 });\r\n setMethod(\"\");\r\n setToUtc(selectedEndpoint.getDefaultToDateTime(applicationState));\r\n (async function runAsync() {\r\n const path = selectedEndpoint.apiUrl;\r\n const response = await httpService.apiPost<GetAvailableDatesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/availableDates\",\r\n query: {\r\n Utc: applicationState.getRootUtcTime().toISOString(),\r\n Page: path\r\n },\r\n senderId: \"navigation\"\r\n })();\r\n\r\n if (response.ok && response.data != null) {\r\n setAvailableDates(response.data.availableDates);\r\n }\r\n })();\r\n }, [selectedEndpoint]);\r\n\r\n const Line = ({ title }: any) => <div style={{ background: \"#eef1f6\", height: \"60px\", margin: \"20px -16px\", padding: \"30px 0 0 10px\", color: \"gray\", fontWeight: \"bold\", textTransform: \"uppercase\" }}>{title}</div>;\r\n\r\n const UtcDateInput = forwardRef((a: any, ref) => (<input className={classNames(s.parameter, \"inputBorder\")} type=\"text\" value={new Date(a.value).toISOString()} onClick={a.onClick} readOnly />));\r\n const handleNumChange = (numStr: string, setNum: any, min: number, max: number): void => {\r\n let num = parseInt(numStr);\r\n setNum((isNaN(num) || num < min) ? min : (num < max) ? num : max);\r\n }\r\n const doRequest = (async function runAsync() {\r\n\r\n applicationState.handleInputAvailablilityChange(selectedEndpoint.dateSteps, false, false, []);\r\n setLoading(true);\r\n setMethod(\"GET\");\r\n const start = new Date();\r\n const resp = await httpService.apiTryGet({\r\n applicationState,\r\n route: applicationState.apiService + \"/\" + selectedEndpoint.apiType + \"/\" + selectedEndpoint.apiUrl,\r\n query: getQueryString(),\r\n senderId: \"api\"\r\n })();\r\n // if (resp.data.appliedFilter != null) resp.data.appliedFilter = JSON.parse(resp.data.appliedFilter);\r\n const head = JSON.stringify(resp.headers);\r\n const body = JSON.stringify(resp.data);\r\n setResponse({\r\n status: resp.status.toString() + \" (\" + resp.statusText + \")\",\r\n headers: head,\r\n data: body,\r\n size: Math.round((head.length + body.length) / 10) / 100,\r\n duration: (new Date().getTime() - start.getTime()) / 1000,\r\n numberOfRows: resp.data.data?.length\r\n });\r\n setLoading(false);\r\n });\r\n\r\n const doRequestPost = (async function runAsync() {\r\n\r\n applicationState.handleInputAvailablilityChange(selectedEndpoint.dateSteps, false, false, []);\r\n setLoading(true);\r\n setMethod(\"POST\");\r\n\r\n const start = new Date();\r\n const resp = await httpService.apiTryPost({\r\n applicationState,\r\n route: applicationState.apiService + \"/\" + selectedEndpoint.apiType + \"/\" + selectedEndpoint.apiUrl,\r\n query: getQueryRequest(),\r\n senderId: \"api\"\r\n })();\r\n // if (resp.data.appliedFilter != null) resp.data.appliedFilter = JSON.parse(resp.data.appliedFilter);\r\n const head = JSON.stringify(resp.headers);\r\n const body = JSON.stringify(resp.data);\r\n setResponse({\r\n status: resp.status.toString() + \" (\" + resp.statusText + \")\",\r\n headers: head,\r\n data: body,\r\n size: Math.round((head.length + body.length) / 10) / 100,\r\n duration: (new Date().getTime() - start.getTime()) / 1000,\r\n numberOfRows: resp.data.data?.length\r\n });\r\n setLoading(false);\r\n });\r\n\r\n return (\r\n <div>\r\n {JSON.parse(selectedEndpoint.parameters).map((p: string) =>\r\n <React.Fragment key={p}>\r\n {(p === \"utc\") ?\r\n <>\r\n <div className=\"inputlabel\">UTC</div>\r\n <ReactDatePicker\r\n className={classNames(\"inputBorder\", selectedEndpoint.dateSteps != \"\" ? \"\" : \"disabled\")}\r\n locale=\"en-GB\"\r\n placeholderText=\"Weeks start on Monday\"\r\n dateFormat=\"yyyy-MM-dd HH:mm:ss\"\r\n showYearPicker={selectedEndpoint.dateSteps == \"Y\"}\r\n customInput={<UtcDateInput />}\r\n isClearable={false}\r\n fixedHeight\r\n todayButton=\"Today\"\r\n selected={applicationState.selectedDate}\r\n onChange={applicationState.handleDateChange}\r\n highlightDates={availableDates.map(d => new Date(d))}\r\n showTimeSelect\r\n timeFormat=\"HH:mm\"\r\n timeIntervals={60}\r\n timeCaption=\"Hour\"\r\n />\r\n </>\r\n\r\n : (p === \"fromUtc\") ?\r\n <>\r\n <div className=\"inputlabel\">From UTC</div>\r\n <ReactDatePicker\r\n id=\"fromUtc\"\r\n className={classNames(\"inputBorder\", selectedEndpoint.dateSteps != \"\" ? \"\" : \"disabled\")}\r\n locale=\"en-GB\"\r\n placeholderText=\"Weeks start on Monday\"\r\n dateFormat=\"yyyy-MM-dd HH:mm:ss\"\r\n showYearPicker={selectedEndpoint.dateSteps == \"Y\"}\r\n customInput={<UtcDateInput />}\r\n isClearable={false}\r\n fixedHeight\r\n todayButton=\"Today\"\r\n selected={applicationState.selectedDate}\r\n onChange={applicationState.handleDateChange}\r\n startDate={applicationState.selectedDate}\r\n endDate={new Date(new Date(toUtc).setSeconds(toUtc.getSeconds() - 1))}\r\n highlightDates={availableDates.map(d => new Date(d))}\r\n showTimeSelect\r\n timeFormat=\"HH:mm\"\r\n timeIntervals={60}\r\n timeCaption=\"Hour\"\r\n />\r\n </>\r\n\r\n : (p === \"toUtc\") ?\r\n <>\r\n <div className=\"inputlabel\">To UTC (exclusive)</div>\r\n <ReactDatePicker\r\n id=\"toUtc\"\r\n className={classNames(\"inputBorder\", selectedEndpoint.dateSteps != \"\" ? \"\" : \"disabled\")}\r\n locale=\"en-GB\"\r\n placeholderText=\"Weeks start on Monday\"\r\n dateFormat=\"yyyy-MM-dd HH:mm:ss\"\r\n showYearPicker={selectedEndpoint.dateSteps == \"Y\"}\r\n customInput={<UtcDateInput />}\r\n isClearable={false}\r\n fixedHeight\r\n todayButton=\"Today\"\r\n selected={toUtc}\r\n onChange={(v: Date) => setToUtc(v)}\r\n startDate={applicationState.selectedDate}\r\n endDate={new Date(new Date(toUtc).setSeconds(toUtc.getSeconds() - 1))}\r\n highlightDates={availableDates.map(d => new Date(d))}\r\n showTimeSelect\r\n timeFormat=\"HH:mm\"\r\n timeIntervals={60}\r\n timeCaption=\"Hour\"\r\n />\r\n </>\r\n\r\n : (p === \"skip\") ?\r\n <>\r\n <div className=\"inputlabel\">Skip</div>\r\n <input className={classNames(s.parameter, \"inputBorder\")} type=\"text\" value={skip} onChange={e => handleNumChange(e.currentTarget.value, setSkip, 0, 100000000)} />\r\n </>\r\n : (p === \"take\") ?\r\n <>\r\n <div className=\"inputlabel\">Take (max 100 in this test-tool)</div>\r\n <input className={classNames(s.parameter, \"inputBorder\")} type=\"text\" value={take} onChange={e => handleNumChange(e.currentTarget.value, setTake, 1, 100)} />\r\n </>\r\n : \"\"}\r\n </React.Fragment>\r\n )}\r\n\r\n <SearchForApi\r\n isLoading={isLoading}\r\n searchFields={selectedEndpoint.filterFields}\r\n search={s => { setSearch(s); }} />\r\n\r\n <div className=\"inputlabel\">Invoke</div>\r\n <div>\r\n <div className={classNames(s.pageButton)} onClick={() => doRequest()}>GET</div>\r\n <div className={classNames(s.pageButton)} onClick={() => doRequestPost()}>POST</div>\r\n </div>\r\n {method != \"\" && <>\r\n <Line title=\"REQUEST\" />\r\n <div className=\"inputlabel\">Request Method</div>\r\n {method}\r\n {method == \"GET\" && <>\r\n <div className=\"inputlabel\">Requested url + Querystring</div>\r\n {url + getQueryString()}\r\n </>}\r\n {method == \"POST\" && <>\r\n <div className=\"inputlabel\">Requested url</div>\r\n {url}\r\n </>}\r\n\r\n {/*<div className=\"inputlabel\">Request headers</div>\r\n <JSONPretty data={{ Authorization: \"Bearer \" + (applicationState.userRole === \"Guest\" ? \"***Enter Your Personal Token Here***\" : applicationState.userToken) }} theme={jsonStyle}></JSONPretty>*/}\r\n <div className=\"inputlabel\">Requested body {method == \"GET\" && \"(as querystring)\"}</div>\r\n <JSONPretty data={getQueryRequest()} theme={jsonStyle}></JSONPretty>\r\n <Line title=\"RESPONSE\" />\r\n {applicationState.userRole === \"Licquid\" && <>\r\n <div className=\"inputlabel\">Duration</div>\r\n {response.duration} seconds\r\n <div className=\"inputlabel\">Response size</div>\r\n {response.size} kb\r\n <div className=\"inputlabel\">Number Of Rows</div>\r\n {response.numberOfRows} rows\r\n </>}\r\n {/*<div className=\"inputlabel\">Response headers</div>\r\n <JSONPretty data={response.headers} theme={jsonStyle}></JSONPretty>*/}\r\n {\r\n isLoading ? <div className={s.loading} onClick={() => httpService.apiCancel()}></div>\r\n : <>\r\n <div className=\"inputlabel\">Response content</div>\r\n <JSONPretty data={response.data} theme={jsonStyle}></JSONPretty>\r\n </>\r\n }\r\n <Line title=\"CURL\" />\r\n <Tab_curl method={method} url={url}\r\n data={method == \"GET\" ? getQueryString() : getQueryRequest()}\r\n applicationState={applicationState} />\r\n </>}\r\n </div>\r\n );\r\n};\r\n\r\n\r\nexport default withTranslation()(Page);\r\n","const s = require(\"./api.module.scss\");\r\n\r\nimport { default as React } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport JSONPretty from \"react-json-pretty\";\r\nimport { PageList, FilterField } from \"core/pages/pageList\";\r\n\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n jsonStyle: any;\r\n selectedEndpoint: PageList;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState, selectedEndpoint, jsonStyle }: PageProps) => {\r\n\r\n return (\r\n\r\n <div>\r\n {/*<div className=\"inputlabel\">Request headers</div>\r\n <JSONPretty data={{ Authorization: \"Bearer \" + (applicationState.userRole === \"Guest\" ? \"***Enter Your Personal Token Here)***\" : applicationState.userToken) }} theme={jsonStyle}></JSONPretty>*/}\r\n <div className=\"inputlabel\">Request parameters</div>\r\n <JSONPretty data={selectedEndpoint.parameters} theme={jsonStyle}></JSONPretty>\r\n {selectedEndpoint.filterFields != null && selectedEndpoint.filterFields.length > 0 && <> <div className=\"inputlabel\">Filter</div>\r\n <JSONPretty data={selectedEndpoint.filterFields.map((f: FilterField) => f.parameter + \": \" + f.type.replace(\"text\", \"string\").replace(\"multiselect\", \"string[]\"))} theme={jsonStyle}></JSONPretty>\r\n </>}\r\n </div >\r\n );\r\n};\r\n\r\n\r\nexport default withTranslation()(Page);\r\n","const s = require(\"./api.module.scss\");\r\n\r\nimport { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport JSONPretty from \"react-json-pretty\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n selectedEndpoint: any;\r\n jsonStyle: any;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState, selectedEndpoint, jsonStyle }: PageProps) => {\r\n return (\r\n <div>\r\n <div className=\"inputlabel\">Response</div>\r\n <JSONPretty data={selectedEndpoint.response} theme={jsonStyle}></JSONPretty>\r\n <div className=\"inputlabel\">Structure of \"Data\"</div>\r\n <JSONPretty data={selectedEndpoint.dto} theme={jsonStyle}></JSONPretty>\r\n </div>\r\n );\r\n};\r\n\r\n\r\nexport default withTranslation()(Page);\r\n","const s = require(\"./api.module.scss\");\r\n\r\nimport { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport classNames from \"classnames\";\r\nimport Select, { SelectItem } from \"components/select\";\r\nimport Tab_tryout from \"./tab_tryout\";\r\nimport Tab_request from \"./tab_request\";\r\nimport Tab_response from \"./tab_response\";\r\nimport { PageList } from \"core/pages/pageList\"\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"\",\r\n webUrl: \"api\",\r\n menu: \"\", //no menu link should be created for this page\r\n apiType: \"\",\r\n title: \"menu:titleApi\",\r\n response: \"\",\r\n dto: \"\",\r\n parameters: \"\",\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n useEffect(() => {\r\n applicationState.handleInputAvailablilityChange(\"\", false, false, []);\r\n }, []);\r\n\r\n const jsonStyle = {\r\n main: \"line-height:1.3;color:#000;overflow-wrap:break-word;white-space:pre-wrap;\",\r\n error: \"line-height:1.3;color:#a11;\",\r\n key: \"color:#a11;\",\r\n string: \"color:#000;\",\r\n value: \"color:#164;\",\r\n boolean: \"color:#219;\",\r\n };\r\n\r\n const pageList = applicationState.pages.map(p => p.config);\r\n const apis = pageList.filter(a => a.apiUrl != \"\").filter(a => a.apiUrl != \"ID1_\").filter(a => a.apiUrl != \"ID2_\").filter(a => a.apiUrl != \"ID3_\").sort((a, b) =>\r\n pageList.findIndex(x => x.apiUrl.toLowerCase() == a.apiUrl.toLowerCase()) < pageList.findIndex(x => x.apiUrl.toLowerCase() == b.apiUrl.toLowerCase()) ? -1 : 1\r\n );\r\n const [selectedEndpoint, setEndpoint] = useState(apis[0]);\r\n const [selectedTab, setSelectedTab] = useState(\"request\");\r\n\r\n const apiList = apis.map(a => { return { id: a.apiUrl, text: t(a.title) }; });\r\n\r\n const baseUrl = window.location.protocol + \"//\" + location.host + applicationState.apiService + \"/\";\r\n const handleEndpointChange = (item: SelectItem) => { setEndpoint(apis.filter(a => a.apiUrl === item.id)[0]); };\r\n return (\r\n <>\r\n <SheetHeader showDownload={false} applicationState={applicationState} title={t(\"menu:titleApi\")} pageConfig={page_config} />\r\n\r\n <div className=\"shadow-sm bg-white rounded\" style={{ position: \"relative\", margin: \"1rem\" }} >\r\n <div className={s.marginDiv}>\r\n <div className=\"inputlabel\">Endpoint</div>\r\n <Select enabled={true} data={apiList} onChange={handleEndpointChange} selectedItem={{ id: selectedEndpoint.apiUrl, text: t(selectedEndpoint.title) }} />\r\n <div className=\"inputlabel\">Url</div>\r\n <input className={classNames(s.maxWidth, \"inputBorder\")} type=\"text\" value={baseUrl + selectedEndpoint.apiType + \"/\" + selectedEndpoint.apiUrl} readOnly />\r\n </div>\r\n\r\n <div className=\"subHeader\">\r\n <div className={classNames(s.selectableBorder, \"request\" === selectedTab ? s.selected : \"\")} onClick={() => setSelectedTab(\"request\")}>Request</div>\r\n <div className={classNames(s.selectableBorder, \"response\" === selectedTab ? s.selected : \"\")} onClick={() => setSelectedTab(\"response\")}>Response</div>\r\n <div className={classNames(s.selectableBorder, \"tryout\" === selectedTab ? s.selected : \"\")} onClick={() => setSelectedTab(\"tryout\")}>Try it out</div>\r\n </div>\r\n <div className={s.json}>\r\n {\"request\" === selectedTab ? <Tab_request applicationState={applicationState} selectedEndpoint={selectedEndpoint} jsonStyle={jsonStyle} /> : \"\"}\r\n {\"response\" === selectedTab ? <Tab_response applicationState={applicationState} selectedEndpoint={selectedEndpoint} jsonStyle={jsonStyle} /> : \"\"}\r\n {\"tryout\" === selectedTab ? <Tab_tryout url={baseUrl + selectedEndpoint.apiType + \"/\" + selectedEndpoint.apiUrl + \"?\"} applicationState={applicationState} selectedEndpoint={selectedEndpoint} jsonStyle={jsonStyle} /> : \"\"}\r\n </div>\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { ScheduledExchangesDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport BorderName from \"components/borderName\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: ScheduledExchangesDto[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, borders, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<ScheduledExchangesDto>();\r\n const dtoBorders = borders.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {dtoBorders.map((border) => <th key={border.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}><BorderName text={t(\"common_hubs:\" + border.text)} /></th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} borders={dtoBorders} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { ScheduledExchangesDto, GetScheduledExchangesResponse, GetScheduledExchangesQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"scheduledExchanges\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"scheduledExchanges\",\r\n webUrl: \"scheduledExchanges\",\r\n menu: \"menu:menuScheduledExchanges\",\r\n title: \"menu:titleScheduledExchanges\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetScheduledExchangesResponse>()),\r\n dto: JSON.stringify(keys<ScheduledExchangesDto>()),\r\n parameters: JSON.stringify(keys<GetScheduledExchangesQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: ScheduledExchangesDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<ScheduledExchangesDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetScheduledExchangesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} borders={applicationState.selectedBorders.filter((f) => f.selected)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import * as React from \"react\";\r\n\r\nimport { AlphaFactorDto } from \"core/backend/data\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: AlphaFactorDto;\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, left }: OwnProps) =>\r\n <tr>\r\n <TDatetime rowSpan={1} date={new Date(dto.dateTimeUtc)} left={left} />\r\n <td>{dto.alphaFactor}</td>\r\n </tr>;\r\n\r\nexport default Row;","import { default as React, useContext } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { AlphaFactorDto } from \"core/backend/data\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: AlphaFactorDto[];\r\n}\r\n\r\nconst List = ({ t, data, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_AlphaFactor:alpha\")}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_AlphaFactor\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { AlphaFactorDto, GetAlphaFactorResponse, GetAlphaFactorQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"alphaFactor\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"alphaFactor\",\r\n webUrl: \"alphaFactor\",\r\n menu: \"menu:menuAlphaFactor\",\r\n title: \"menu:titleAlphaFactor\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetAlphaFactorResponse>()),\r\n dto: JSON.stringify(keys<AlphaFactorDto>()),\r\n parameters: JSON.stringify(keys<GetAlphaFactorQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: AlphaFactorDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<AlphaFactorDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetAlphaFactorResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation(\"page_AlphaFactor\")(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { AllocationConstraintDto } from \"core/backend/data\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: AllocationConstraintDto[];\r\n}\r\n\r\nconst List = ({ t, data, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n const borders = [\"BE\", \"PL\"];\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}></th>\r\n {borders.map(border =>\r\n <th key={border} colSpan={2} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{border}</th>\r\n )}\r\n </tr>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {borders.map(b =>\r\n <React.Fragment key={b}>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_allocationConstraint:import\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_allocationConstraint:export\")}</th>\r\n </React.Fragment>\r\n )}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} left={left} borders={borders} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_allocationConstraint\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { AllocationConstraintDto, GetAllocationConstraintQuery, GetAllocationConstraintResponse } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"allocationConstraint\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"allocationConstraint\",\r\n webUrl: \"allocationConstraint\",\r\n menu: \"menu:menuAllocationConstraint\",\r\n title: \"menu:titleAllocationConstraint\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetAllocationConstraintResponse>()),\r\n dto: JSON.stringify(keys<AllocationConstraintDto>()),\r\n parameters: JSON.stringify(keys<GetAllocationConstraintQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: AllocationConstraintDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<AllocationConstraintDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetAllocationConstraintResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl, query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { AtcDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport BorderName from \"components/borderName\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: AtcDto[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, borders, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<AtcDto>();\r\n const dtoBorders = borders.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {dtoBorders.map((border) => <th key={border.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} borders={dtoBorders} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { AtcDto, GetAtcQuery, GetAtcResponse } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"atc\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"atc\",\r\n webUrl: \"atc\",\r\n menu: \"menu:menuATCs\",\r\n title: \"menu:titleATCs\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetAtcResponse>()),\r\n dto: JSON.stringify(keys<AtcDto>()),\r\n parameters: JSON.stringify(keys<GetAtcQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const selectedBorders = applicationState.selectedBorders.filter((f) => f.selected);\r\n const initialData: AtcDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<AtcDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetAtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} disclaimer={t(\"common:disclaimerATCs\")} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} borders={selectedBorders} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { AtcDto, ScheduledExchangesDto, PriceSpreadDto, CongestionIncomeDto, LtnDto, ShadowAuctionAtcDto, IntradayAtcDto } from \"core/backend/data\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n border: string;\r\n dates: Date[];\r\n atcData: AtcDto[];\r\n qtyData: ScheduledExchangesDto[];\r\n psData: PriceSpreadDto[];\r\n ciData: CongestionIncomeDto[];\r\n ltnData: LtnDto[];\r\n sAtcData: ShadowAuctionAtcDto[];\r\n iAtcData: IntradayAtcDto[];\r\n}\r\n\r\nconst List = ({ t, border, dates, atcData, qtyData, psData, ciData, ltnData, sAtcData, iAtcData, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const hasAtcData = keys<AtcDto>().map(m => m.toString()).includes(\"border_\" + border.toUpperCase());\r\n const hasQtyData = keys<ScheduledExchangesDto>().map(m => m.toString()).includes(\"border_\" + border.toUpperCase());\r\n const hasPsData = keys<PriceSpreadDto>().map(m => m.toString()).includes(\"border_\" + border.toUpperCase());\r\n const hasCiData = keys<CongestionIncomeDto>().map(m => m.toString()).includes(\"border_\" + border.toUpperCase());\r\n const hasLtnData = keys<LtnDto>().map(m => m.toString()).includes(\"border_\" + border.toUpperCase());\r\n const hasSAtcData = keys<ShadowAuctionAtcDto>().map(m => m.toString()).includes(\"border_\" + border.toUpperCase());\r\n const hasIAtcData = keys<IntradayAtcDto>().map(m => m.toString()).includes(\"initial_\" + border.toUpperCase());\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {hasAtcData && <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_borderDataOverview:Atc\")}</th>}\r\n {hasQtyData && <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_borderDataOverview:Sec\")}</th>}\r\n {hasPsData && <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_borderDataOverview:Ps\")}</th>}\r\n {hasCiData && <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_borderDataOverview:Ci\")}</th>}\r\n {hasLtnData && <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_borderDataOverview:Ltn\")}</th>}\r\n {hasSAtcData && <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_borderDataOverview:SaAtc\")}</th>}\r\n {hasIAtcData && <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_borderDataOverview:IAtc\")}</th>}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n dates\r\n && atcData.length + qtyData.length + psData.length + ciData.length + ltnData.length + sAtcData.length + iAtcData.length > 0\r\n && dates.map((d) => <Row key={d.toISOString()} border={border} date={d} left={left} atcData={atcData} qtyData={qtyData} psData={psData} ciData={ciData} ltnData={ltnData} sAtcData={sAtcData} iAtcData={iAtcData} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_borderDataOverview\")(List);\r\n\r\nexport default translated;","const s = require(\"./borderDataOverview.module.scss\");\r\n\r\nimport { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { GetAtcResponse, GetScheduledExchangesResponse, GetPriceSpreadResponse, GetCongestionIncomeResponse, GetLtnResponse, GetShadowAuctionAtcResponse, GetIntradayAtcResponse, AtcDto, ScheduledExchangesDto, PriceSpreadDto, CongestionIncomeDto, LtnDto, IntradayAtcDto, ShadowAuctionAtcDto } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport BorderName from \"components/borderName\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport classNames from \"classnames\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"borderDataOverview\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"\",\r\n webUrl: \"borderDataOverview\",\r\n menu: \"menu:menuBorderDataOverview\",\r\n title: \"menu:titleBorderDataOverview\",\r\n apiType: \"data\",\r\n response: \"\",\r\n dto: \"\",\r\n parameters: \"\",\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const keysInDto: string[] =\r\n keys<ScheduledExchangesDto>().filter(k => k.startsWith(\"border_\")).map(k => k.toString()) //specify type\r\n .concat(keys<AtcDto>().filter(k => k.startsWith(\"border_\")))\r\n .concat(keys<PriceSpreadDto>().filter(k => k.startsWith(\"border_\")))\r\n .concat(keys<CongestionIncomeDto>().filter(k => k.startsWith(\"border_\")))\r\n .concat(keys<LtnDto>().filter(k => k.startsWith(\"border_\")))\r\n .concat(keys<ShadowAuctionAtcDto>().filter(k => k.startsWith(\"border_\")))\r\n .concat(keys<IntradayAtcDto>().filter(k => k.startsWith(\"initial_\")).map(k => k.replace(\"initial_\", \"border_\")))\r\n .filter((value, index, self) => self.indexOf(value) === index) // =distinct\r\n .sort();\r\n const dtoBorders = applicationState.selectedBorders.filter(f => f.selected && f.isDisplayed);\r\n const [selectedBorder, setSelectedBorder] = useState(dtoBorders.length == 0 ? \"\" : dtoBorders[0].id);\r\n\r\n const initialAtcData: AtcDto[] = [];\r\n const initialQTYData: ScheduledExchangesDto[] = [];\r\n const initialPsData: PriceSpreadDto[] = [];\r\n const initialCiData: CongestionIncomeDto[] = [];\r\n const initialLtnData: LtnDto[] = [];\r\n const initialSAtcData: ShadowAuctionAtcDto[] = [];\r\n const initialIAtcData: IntradayAtcDto[] = [];\r\n const initialDates: Date[] = [];\r\n\r\n const [atcData, setAtcData] = useState(initialAtcData);\r\n const [qtyData, setQtyData] = useState(initialQTYData);\r\n const [psData, setPsData] = useState(initialPsData);\r\n const [ciData, setCiData] = useState(initialCiData);\r\n const [ltnData, setLtnData] = useState(initialLtnData);\r\n const [sAtcData, setSAtcData] = useState(initialSAtcData);\r\n const [iAtcData, setIAtcData] = useState(initialIAtcData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [dates, setDates] = useState(initialDates);\r\n\r\n const loadAtc = async () => {\r\n const response = await httpService.apiPost<GetAtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/atc\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setAtcData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n };\r\n const loadQty = async () => {\r\n const response = await httpService.apiPost<GetScheduledExchangesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/scheduledExchanges\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setQtyData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n };\r\n const loadPriceSpread = async () => {\r\n const response = await httpService.apiPost<GetPriceSpreadResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/priceSpread\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setPsData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n };\r\n const loadCongestionIncome = async () => {\r\n const response = await httpService.apiPost<GetCongestionIncomeResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/congestionIncome\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setCiData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n };\r\n const loadLtn = async () => {\r\n const response = await httpService.apiPost<GetLtnResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/ltn\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setLtnData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n };\r\n const loadSAtc = async () => {\r\n const response = await httpService.apiPost<GetShadowAuctionAtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/shadowAuctionAtc\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setSAtcData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n };\r\n const loadIAtc = async () => {\r\n const response = await httpService.apiPost<GetIntradayAtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/intradayAtc\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setIAtcData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keysInDto);\r\n setLoading(true);\r\n setAtcData([]);\r\n setQtyData([]);\r\n setPsData([]);\r\n setCiData([]);\r\n setLtnData([]);\r\n setSAtcData([]);\r\n setIAtcData([]);\r\n\r\n const rootDate = applicationState.getRootUtcTime();\r\n let date = rootDate;\r\n let xxx: Date[] = [];\r\n while (rootDate.getDate() === date.getDate()) {\r\n xxx = [...xxx, new Date(date)];\r\n date = new Date(date.setHours(date.getHours() + 1));\r\n }\r\n setDates(xxx);\r\n\r\n //we cannot use Promis.All to request both data at the same time because of IP LIMIT\r\n //await Promise.all([\r\n await loadAtc();\r\n await loadQty();\r\n await loadPriceSpread();\r\n await loadCongestionIncome();\r\n await loadLtn();\r\n await loadSAtc();\r\n await loadIAtc();\r\n //]);\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={false} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <div className=\"subHeader\">\r\n {dtoBorders.map(b => <div className={classNames(s.selectableBorder, b.id === selectedBorder ? s.selected : \"\")} key={b.id} onClick={() => setSelectedBorder(b.id)}><BorderName text={b.text} /></div>)}\r\n </div>\r\n <SheetDataPart isLoading={isLoading} dataRows={atcData.length + qtyData.length + psData.length + ciData.length + ltnData.length + sAtcData.length + iAtcData.length} error={error}>\r\n <List border={selectedBorder} dates={dates} atcData={atcData} qtyData={qtyData} psData={psData} ciData={ciData} ltnData={ltnData} sAtcData={sAtcData} iAtcData={iAtcData} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation(\"page_borderDataOverview\")(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { CongestionIncomeDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport BorderName from \"components/borderName\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: CongestionIncomeDto[];\r\n hubs: MultiSelectItem[];\r\n tsos: MultiSelectItem[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, hubs, tsos, borders, scrollPosition }: OwnProps & WithTranslation) => {\r\n const titleTop = Math.max(0, (scrollPosition?.top || 0) - 16);\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn fixedHeader\" style={{ top: titleTop + \"px\", left: left + \"px\" }}></th>\r\n <th colSpan={hubs.length} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"page_congestionIncome:GrossHUB\")}</th>\r\n <th colSpan={tsos.length} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"page_congestionIncome:GrossTSO\")}</th>\r\n <th colSpan={hubs.length} className=\"tableTitles fixedHeader lineLeft\" style={{ top: titleTop + \"px\" }}>{t(\"page_congestionIncome:NetHUB\")}</th>\r\n <th colSpan={tsos.length} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"page_congestionIncome:NetTSO\")}</th>\r\n <th colSpan={borders.length} className=\"tableTitles fixedHeader lineLeft\" style={{ top: titleTop + \"px\" }}>{t(\"page_congestionIncome:GrossExternalBorder\")}</th>\r\n </tr>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {hubs.length == 0 ? <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>Check your filter</th> : hubs.map((hub) => <th key={hub.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"common_hubs:\" + hub.id)}</th>)}\r\n {tsos.length == 0 ? <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>Check your filter</th> : tsos.map((tso, index) => <th key={tso.id} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}>{t(\"common_tsos:\" + tso.id)}</th>)}\r\n {hubs.length == 0 ? <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>Check your filter</th> : hubs.map((hub, index) => <th key={hub.id} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}>{t(\"common_hubs:\" + hub.id)}</th>)}\r\n {tsos.length == 0 ? <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>Check your filter</th> : tsos.map((tso, index) => <th key={tso.id} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}>{t(\"common_tsos:\" + tso.id)}</th>)}\r\n {borders.length == 0 ? <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>Check your filter</th> : borders.map((border, index) => <th key={border.id} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} hubs={hubs} tsos={tsos} borders={borders} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_congestionIncome\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { CongestionIncomeDto, GetCongestionIncomeQuery, GetCongestionIncomeResponse } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"congestionIncome\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"congestionIncome\",\r\n webUrl: \"congestionIncome\",\r\n menu: \"menu:menuCongestionIncome\",\r\n title: \"menu:titleCongestionIncome\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetCongestionIncomeResponse>()),\r\n dto: JSON.stringify(keys<CongestionIncomeDto>()),\r\n parameters: JSON.stringify(keys<GetCongestionIncomeQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const selectedHubs = applicationState.selectedHubs.filter((f) => f.selected && f.isDisplayed);\r\n const selectedTsos = applicationState.selectedTsos.filter((f) => f.selected && f.isDisplayed);\r\n const selectedBorders = applicationState.selectedBorders.filter((f) => f.selected && f.isDisplayed);\r\n\r\n const initialData: CongestionIncomeDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n const dtoKeys = keys<CongestionIncomeDto>().filter(f => f.startsWith(\"gross\"))\r\n .map(k => k.replace(\"grossHub_\", \"hub_\")\r\n .replace(\"grossTso_\", \"tso_\")\r\n .replace(\"grossBorder_\", \"border_\"));\r\n\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, true, dtoKeys);\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetCongestionIncomeResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: page_config.getDefaultToDateTime(applicationState).toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} hubs={selectedHubs} tsos={selectedTsos} borders={selectedBorders} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation(\"page_congestionIncome\")(Page);\r\n","const s = require(\"./coreMap.module.scss\");\r\n\r\nimport { default as React } from \"react\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport classNames from \"classnames\";\r\nimport { CardStyle } from \"./content\";\r\n\r\ninterface OwnProps {\r\n row: number;\r\n col: number;\r\n height: number;\r\n width: number;\r\n code: string;\r\n max: number;\r\n min: number;\r\n cardStyle: CardStyle;\r\n}\r\n\r\nconst Country = (props: OwnProps & WithTranslation) => {\r\n\r\n const elementHeight = props.cardStyle.elementHeight;\r\n const elementWidth = props.cardStyle.elementWidth;\r\n const margin = props.cardStyle.margin;\r\n\r\n const top = (props.row - 1) * (elementHeight + margin);\r\n const left = (props.col - 1) * (elementWidth + margin);\r\n const width = (props.width * (elementWidth + margin)) - margin;\r\n const height = (props.height * (elementHeight + margin)) - margin;\r\n return (\r\n <div className={classNames(\"shadow-sm\", \"bg-white\", \"rounded\", s.country)} style={{\r\n /*left: left + \"px\",\r\n top: top + \"px\",\r\n width: width + \"px\",\r\n height: height + \"px\"*/\r\n gridColumn: props.col + \" / span \" + props.width,\r\n gridRow: props.row + \" / span \" + props.height,\r\n }}>\r\n <div className={s.title}>{props.t(\"common_country:\" + props.code)}</div>\r\n <table className={s.table}>\r\n <tbody>\r\n <tr><th>{props.t(\"page_coreMap:export\")}</th><td className=\"alignRight\">{props.max}</td></tr>\r\n <tr><th>{props.t(\"page_coreMap:import\")}</th><td className=\"alignRight\">{props.min}</td></tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_coreMap\")(Country);\r\n\r\nexport default translated;","const s = require(\"./coreMap.module.scss\");\r\n\r\nimport { default as React } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport { CardStyle } from \"./content\";\r\n\r\ninterface OwnProps {\r\n row: number;\r\n col: number;\r\n out: number;\r\n in: number;\r\n cardStyle: CardStyle;\r\n}\r\n\r\nconst HorizontalExchange = (props: OwnProps) => {\r\n const elementHeight = props.cardStyle.elementHeight;\r\n const elementWidth = props.cardStyle.elementWidth;\r\n const margin = props.cardStyle.margin;\r\n\r\n const height = 26;\r\n const width = 80;\r\n const top = ((props.row - 0.5) * elementHeight) + ((props.row - 1) * margin) - height;\r\n const left = (props.col * (elementWidth + margin)) - ((width + margin) / 2);\r\n return (\r\n <div className={s.horizontalExchange} style={{\r\n /*left: left + \"px\",\r\n top: top + \"px\",\r\n width: width + \"px\",*/\r\n gridColumn: props.col,\r\n gridRow: props.row,\r\n\r\n }}>\r\n <div className={classNames(s.horizontalLabel, s.arrowLeft)} style={{ minHeight: height + \"px\" }}>{(props.in && Math.floor(props.in)) ?? \"-\"}</div>\r\n <div className={classNames(s.horizontalLabel, s.arrowRight)} style={{ minHeight: height + \"px\" }}>{(props.out && Math.floor(props.out)) ?? \"-\"}</div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default HorizontalExchange;","const s = require(\"./coreMap.module.scss\");\r\n\r\nimport { default as React } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport { CardStyle } from \"./content\";\r\n\r\ninterface OwnProps {\r\n row: number;\r\n col: number;\r\n out: number;\r\n in: number;\r\n cardStyle: CardStyle;\r\n}\r\n\r\nconst VerticalExchange = (props: OwnProps) => {\r\n const elementHeight = props.cardStyle.elementHeight;\r\n const elementWidth = props.cardStyle.elementWidth;\r\n const margin = props.cardStyle.margin;\r\n\r\n const width = 80;\r\n const height = 30;\r\n const top = (props.row * (elementHeight + margin)) - (height + (margin / 2));\r\n const left = ((props.col - 0.5) * elementWidth) + ((props.col - 1) * margin) - (width / 2);\r\n return (\r\n <div className={s.verticalExchange} style={{\r\n /* left: left + \"px\",\r\n top: top + \"px\",\r\n width: width + \"px\",*/\r\n gridColumn: props.col,\r\n gridRow: props.row,\r\n }}>\r\n <div className={classNames(s.verticalLabel, s.arrowUp)} style={{ minHeight: height + \"px\", }}>{(props.in && Math.floor(props.in)) ?? \"-\"}</div>\r\n <div className={classNames(s.verticalLabel, s.arrowDown)} style={{ minHeight: height + \"px\" }}>{(props.out && Math.floor(props.out)) ?? \"-\"}</div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default VerticalExchange;","import { default as React } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport { MaxNetPosDto, MaxExchangesDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport Country from \"./country\";\r\nimport HorizontalExchange from \"./horizontalExchange\";\r\nimport VerticalExchange from \"./verticalExchange\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { col: number, row: number };\r\n maxNetPosHour: MaxNetPosDto;\r\n maxExchangeHour: MaxExchangesDto;\r\n hubs: MultiSelectItem[];\r\n}\r\nexport interface CardStyle {\r\n elementWidth: number;\r\n elementHeight: number;\r\n margin: number;\r\n}\r\n\r\nconst List = ({ t, maxNetPosHour, maxExchangeHour, scrollPosition }: OwnProps & WithTranslation) => {\r\n\r\n const cardStyle: CardStyle = { elementWidth: 250, elementHeight: 200, margin: 10 };\r\n return (\r\n <div style={{\r\n display: \"grid\",\r\n margin: \"1rem\",\r\n gridTemplateColumns: \"250px 250px 250px 250px 250px\",\r\n gridTemplateRows: \"200px 200px 200px 200px 200px\",\r\n gap: \"10px\",\r\n }} >\r\n <Country cardStyle={cardStyle} row={1} col={1} height={1} width={1} code=\"NL\" max={maxNetPosHour && maxNetPosHour.maxNL} min={maxNetPosHour && maxNetPosHour.minNL} />\r\n <Country cardStyle={cardStyle} row={2} col={1} height={1} width={1} code=\"BE\" max={maxNetPosHour && maxNetPosHour.maxBE} min={maxNetPosHour && maxNetPosHour.minBE} />\r\n <Country cardStyle={cardStyle} row={3} col={1} height={1} width={1} code=\"FR\" max={maxNetPosHour && maxNetPosHour.maxFR} min={maxNetPosHour && maxNetPosHour.minFR} />\r\n <Country cardStyle={cardStyle} row={1} col={2} height={3} width={1} code=\"DE\" max={maxNetPosHour && maxNetPosHour.maxDE} min={maxNetPosHour && maxNetPosHour.minDE} />\r\n <Country cardStyle={cardStyle} row={1} col={3} height={1} width={2} code=\"PL\" max={maxNetPosHour && maxNetPosHour.maxPL} min={maxNetPosHour && maxNetPosHour.minPL} />\r\n <Country cardStyle={cardStyle} row={2} col={3} height={1} width={1} code=\"CZ\" max={maxNetPosHour && maxNetPosHour.maxCZ} min={maxNetPosHour && maxNetPosHour.minCZ} />\r\n <Country cardStyle={cardStyle} row={3} col={3} height={1} width={1} code=\"AT\" max={maxNetPosHour && maxNetPosHour.maxAT} min={maxNetPosHour && maxNetPosHour.minAT} />\r\n <Country cardStyle={cardStyle} row={4} col={3} height={2} width={1} code=\"SI\" max={maxNetPosHour && maxNetPosHour.maxSI} min={maxNetPosHour && maxNetPosHour.minSI} />\r\n <Country cardStyle={cardStyle} row={2} col={4} height={1} width={1} code=\"SK\" max={maxNetPosHour && maxNetPosHour.maxSK} min={maxNetPosHour && maxNetPosHour.minSK} />\r\n <Country cardStyle={cardStyle} row={3} col={4} height={2} width={1} code=\"HU\" max={maxNetPosHour && maxNetPosHour.maxHU} min={maxNetPosHour && maxNetPosHour.minHU} />\r\n <Country cardStyle={cardStyle} row={5} col={4} height={1} width={1} code=\"HR\" max={maxNetPosHour && maxNetPosHour.maxHR} min={maxNetPosHour && maxNetPosHour.minHR} />\r\n <Country cardStyle={cardStyle} row={3} col={5} height={1} width={1} code=\"RO\" max={maxNetPosHour && maxNetPosHour.maxRO} min={maxNetPosHour && maxNetPosHour.minRO} />\r\n <HorizontalExchange cardStyle={cardStyle} row={1} col={1} out={maxExchangeHour && maxExchangeHour.border_NL_DE} in={maxExchangeHour && maxExchangeHour.border_DE_NL} />\r\n <VerticalExchange cardStyle={cardStyle} row={1} col={1} out={maxExchangeHour && maxExchangeHour.border_NL_BE} in={maxExchangeHour && maxExchangeHour.border_BE_NL} />\r\n <HorizontalExchange cardStyle={cardStyle} row={2} col={1} out={maxExchangeHour && maxExchangeHour.border_BE_DE} in={maxExchangeHour && maxExchangeHour.border_DE_BE} />\r\n <VerticalExchange cardStyle={cardStyle} row={2} col={1} out={maxExchangeHour && maxExchangeHour.border_BE_FR} in={maxExchangeHour && maxExchangeHour.border_FR_BE} />\r\n <HorizontalExchange cardStyle={cardStyle} row={3} col={1} out={maxExchangeHour && maxExchangeHour.border_FR_DE} in={maxExchangeHour && maxExchangeHour.border_DE_FR} />\r\n <HorizontalExchange cardStyle={cardStyle} row={1} col={2} out={maxExchangeHour && maxExchangeHour.border_DE_PL} in={maxExchangeHour && maxExchangeHour.border_PL_DE} />\r\n <HorizontalExchange cardStyle={cardStyle} row={2} col={2} out={maxExchangeHour && maxExchangeHour.border_DE_CZ} in={maxExchangeHour && maxExchangeHour.border_CZ_DE} />\r\n <HorizontalExchange cardStyle={cardStyle} row={3} col={2} out={maxExchangeHour && maxExchangeHour.border_DE_AT} in={maxExchangeHour && maxExchangeHour.border_AT_DE} />\r\n <VerticalExchange cardStyle={cardStyle} row={1} col={3} out={maxExchangeHour && maxExchangeHour.border_PL_CZ} in={maxExchangeHour && maxExchangeHour.border_CZ_PL} />\r\n <HorizontalExchange cardStyle={cardStyle} row={2} col={3} out={maxExchangeHour && maxExchangeHour.border_CZ_SK} in={maxExchangeHour && maxExchangeHour.border_SK_CZ} />\r\n <VerticalExchange cardStyle={cardStyle} row={2} col={3} out={maxExchangeHour && maxExchangeHour.border_CZ_AT} in={maxExchangeHour && maxExchangeHour.border_AT_CZ} />\r\n <HorizontalExchange cardStyle={cardStyle} row={3} col={3} out={maxExchangeHour && maxExchangeHour.border_AT_HU} in={maxExchangeHour && maxExchangeHour.border_HU_AT} />\r\n <VerticalExchange cardStyle={cardStyle} row={3} col={3} out={maxExchangeHour && maxExchangeHour.border_AT_SI} in={maxExchangeHour && maxExchangeHour.border_SI_AT} />\r\n <VerticalExchange cardStyle={cardStyle} row={1} col={4} out={maxExchangeHour && maxExchangeHour.border_PL_SK} in={maxExchangeHour && maxExchangeHour.border_SK_PL} />\r\n <VerticalExchange cardStyle={cardStyle} row={2} col={4} out={maxExchangeHour && maxExchangeHour.border_SK_HU} in={maxExchangeHour && maxExchangeHour.border_HU_SK} />\r\n <HorizontalExchange cardStyle={cardStyle} row={4} col={3} out={maxExchangeHour && maxExchangeHour.border_SI_HU} in={maxExchangeHour && maxExchangeHour.border_HU_SI} />\r\n <HorizontalExchange cardStyle={cardStyle} row={3} col={4} out={maxExchangeHour && maxExchangeHour.border_HU_RO} in={maxExchangeHour && maxExchangeHour.border_RO_HU} />\r\n <VerticalExchange cardStyle={cardStyle} row={4} col={4} out={maxExchangeHour && maxExchangeHour.border_HU_HR} in={maxExchangeHour && maxExchangeHour.border_HR_HU} />\r\n <HorizontalExchange cardStyle={cardStyle} row={5} col={3} out={maxExchangeHour && maxExchangeHour.border_SI_HR} in={maxExchangeHour && maxExchangeHour.border_HR_SI} />\r\n </div>\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","const s = require(\"./contentPart.module.scss\");\r\n\r\nimport { default as React, useState, useRef, useContext, useLayoutEffect, CSSProperties } from \"react\";\r\nimport { faExclamationTriangle } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nconst ContentPart = (props: any) => {\r\n\r\n const containerRef: any = useRef(null);\r\n useLayoutEffect(() => {\r\n //calculate optimal zoom:\r\n if (!props.isLoading && containerRef.current.offsetWidth > 0) {\r\n setZoom(Math.max(0.5, Math.min(containerRef.current.offsetWidth * zoom / containerRef.current.scrollWidth,\r\n containerRef.current.offsetHeight * zoom / containerRef.current.scrollHeight)));\r\n }\r\n }, [props.isLoading]);\r\n const [zoom, setZoom] = useState(1);\r\n const style: CSSProperties = { border: \"1px solid gray\", textAlign: \"center\", cursor: \"pointer\" };\r\n\r\n return <div ref={containerRef} className=\"xx\" style={{ flex: \"1\", position: \"relative\", overflow: \"auto\" }} >\r\n <div className={\"noSelect\"} style={{ position: \"fixed\", top: \"10px\", right: \"10px\", zIndex: 5, display: \"grid\", gap: \"3px\", gridTemplateColumns: \"1fr 1fr 1fr\", width: \"100px\", height: \"25px\", }}>\r\n <a style={style} onClick={() => setZoom(Math.max(0.5, zoom - 0.1))}>-</a>\r\n <a style={style} onClick={() => setZoom(1)}>{Math.round(zoom * 10) / 10}</a>\r\n <a style={style} onClick={() => setZoom(Math.min(1.5, zoom + 0.1))}>+</a>\r\n </div>\r\n <div style={{ zoom: zoom }}>\r\n {props.isLoading && <div className={s.loading} ></div>}\r\n {!props.isLoading && props.error !== \"\" && <div className={s.error} ><FontAwesomeIcon icon={faExclamationTriangle} /> {props.error}</div>}\r\n {!props.isLoading && props.error === \"\" && !props.data && <div className={s.error} ><FontAwesomeIcon icon={faExclamationTriangle} /> {\"Wrong data packet received\"}</div>}\r\n {props.children && React.cloneElement(props.children, {})}\r\n </div>\r\n </div>;\r\n};\r\nexport default ContentPart;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport Content from \"./content\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { MaxNetPosDto, GetMaxNetPosResponse, MaxExchangesDto, GetMaxExchangesResponse } from \"core/backend/data\";\r\nimport ContentPart from \"components/contentPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"coreMap\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"\",\r\n webUrl: \"coreMap\",\r\n menu: \"menu:menuCoreMap\",\r\n title: \"menu:titleCoreMap\",\r\n apiType: \"data\",\r\n response: \"\",\r\n dto: \"\",\r\n parameters: \"\",\r\n dateSteps: \"H\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Hour()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const selectedHubs = applicationState.selectedHubs.filter((f) => f.selected);\r\n const initialMaxNetPosData: MaxNetPosDto[] = [];\r\n const [maxNetPosData, setMaxNetPosData] = useState(initialMaxNetPosData);\r\n const initialMaxExchangesData: MaxExchangesDto[] = [];\r\n const [maxExchangesData, setMaxExchangesData] = useState(initialMaxExchangesData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [loadedDate, setLoadedDate] = useState(new Date(0));\r\n\r\n const loadMaxNetPos = async () => {\r\n const response = await httpService.apiPost<GetMaxNetPosResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/maxNetPos\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setMaxNetPosData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n };\r\n const loadMaxExchanges = async () => {\r\n const response = await httpService.apiPost<GetMaxExchangesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/maxExchanges\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setMaxExchangesData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n };\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, []);\r\n setLoading(true);\r\n const date = applicationState.getRootUtcTime();\r\n if (loadedDate !== date) {\r\n setMaxNetPosData([]);\r\n setMaxExchangesData([]);\r\n //we cannot use Promis.All to request both data at the same time because of IP LIMIT\r\n /*await Promise.all([\r\n loadMaxNetPos(),\r\n loadMaxExchanges()\r\n ]);*/\r\n await loadMaxNetPos();\r\n await loadMaxExchanges();\r\n setLoadedDate(date);\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={false} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <ContentPart isLoading={isLoading} data={[]} error={error}>\r\n <Content\r\n maxNetPosHour={maxNetPosData.filter(f => new Date(f.dateTimeUtc).toISOString() === applicationState.selectedDate.toISOString())[0]}\r\n maxExchangeHour={maxExchangesData.filter(f => new Date(f.dateTimeUtc).toISOString() === applicationState.selectedDate.toISOString())[0]}\r\n hubs={selectedHubs} />\r\n </ContentPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","const s = require(\"./coreMarketGraph.module.scss\");\r\n\r\nimport { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport Content from \"./content\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { MaxNetPosDto, GetMaxNetPosResponse, MaxExchangesDto, GetMaxExchangesResponse } from \"core/backend/data\";\r\nimport ContentPart from \"components/contentPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport classNames from \"classnames\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"coreMarketGraph\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"\",\r\n webUrl: \"coreMarketGraph\",\r\n menu: \"menu:menuCoreMarketGraphs\",\r\n title: \"menu:titleCoreMarketGraphs\",\r\n apiType: \"data\",\r\n response: \"\",\r\n dto: \"\",\r\n parameters: \"\",\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n if (!applicationState.initialized) return <div />;\r\n\r\n const borders: string[] = keys<MaxExchangesDto>();\r\n const hubs: string[] = keys<MaxNetPosDto>().filter(f => f.startsWith(\"min\")).map(f => f.replace(\"min\", \"hub_\"));\r\n\r\n const selectedBorders = applicationState.selectedBorders.filter((f) => f.selected && f.isDisplayed);\r\n\r\n const initialMaxNetPosData: MaxNetPosDto[] = [];\r\n const [maxNetPosData, setMaxNetPosData] = useState(initialMaxNetPosData);\r\n const initialMaxExchangesData: MaxExchangesDto[] = [];\r\n const [maxExchangesData, setMaxExchangesData] = useState(initialMaxExchangesData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [selectedHubs, setSelectedHubs] = useState(\r\n hubs.map(f => f.replace(\"hub_\", \"\"))\r\n .filter(f => !f.startsWith(\"AL\"))// remove albe alde\r\n .map(h => {\r\n const x: MultiSelectItem = { id: h, text: h, isDisplayed: true, selected: true };\r\n return x;\r\n }).sort((a, b) => a.id.localeCompare(b.id))// ascending\r\n );\r\n\r\n const loadMaxNetPos = async () => {\r\n const response = await httpService.apiPost<GetMaxNetPosResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/maxNetPos\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setMaxNetPosData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n };\r\n const loadMaxExchanges = async () => {\r\n const response = await httpService.apiPost<GetMaxExchangesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/maxExchanges\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setMaxExchangesData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n };\r\n const setSelected = (id: string) => {\r\n const newList = selectedHubs.map((item) => {\r\n if (item.id.startsWith(id)) {\r\n const updatedItem = {\r\n ...item,\r\n selected: !item.selected\r\n };\r\n return updatedItem;\r\n }\r\n return item;\r\n });\r\n setSelectedHubs(newList);\r\n };\r\n const clearSelection = () => {\r\n const newList = selectedHubs.map((item) => {\r\n const updatedItem = {\r\n ...item,\r\n selected: false\r\n };\r\n return updatedItem;\r\n });\r\n setSelectedHubs(newList);\r\n };\r\n\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, borders.concat(hubs));\r\n setLoading(true);\r\n setMaxNetPosData([]);\r\n setMaxExchangesData([]);\r\n //we cannot use Promis.All to request both data at the same time because of IP LIMIT\r\n /*await Promise.all([\r\n loadMaxNetPos(),\r\n loadMaxExchanges()\r\n ]);*/\r\n await loadMaxNetPos();\r\n await loadMaxExchanges();\r\n\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={false} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <div className=\"subHeader\">\r\n <div className={classNames(s.selectableHubs, selectedHubs.filter(h => h.selected).length === 0 ? s.selected : \"\")} onClick={() => clearSelection()}>{t(\"common:none\")}</div>\r\n {selectedHubs.map(b => <div className={classNames(s.selectableHubs, b.selected ? s.selected : \"\")} key={b.id} onClick={() => setSelected(b.id)}>{t(\"common_hubs:\" + b.id)}</div>)}\r\n </div>\r\n <ContentPart isLoading={isLoading} data={[]} error={error}>\r\n <Content maxNetPosData={maxNetPosData} maxExchangeData={maxExchangesData} hubs={selectedHubs.filter(h => h.selected)} borders={selectedBorders} />\r\n </ContentPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport Content from \"./content\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { MaxNetPosDto, GetMaxNetPosResponse, MaxExchangesDto, GetMaxExchangesResponse, GetCheckVolumeQuery } from \"core/backend/data\";\r\nimport ContentPart from \"components/contentPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"coreMarketView\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"\",\r\n webUrl: \"coreMarketView\",\r\n menu: \"menu:menuCoreMarketView\",\r\n title: \"menu:titleCoreMarketView\",\r\n apiType: \"data\",\r\n response: \"\",\r\n dto: \"\",\r\n parameters: \"\",\r\n dateSteps: \"H\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Hour()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n if (!applicationState.initialized) return <div />;\r\n\r\n const initialMaxNetPosData: MaxNetPosDto[] = [];\r\n const [maxNetPosData, setMaxNetPosData] = useState(initialMaxNetPosData);\r\n const initialMaxExchangesData: MaxExchangesDto[] = [];\r\n const [maxExchangesData, setMaxExchangesData] = useState(initialMaxExchangesData);\r\n const [isLoading, setLoading] = useState(true);\r\n const [error, setError] = useState(\"\");\r\n const [loadedDate, setLoadedDate] = useState(\"\");\r\n\r\n\r\n const loadMaxNetPos = async () => {\r\n const response = await httpService.apiPost<GetMaxNetPosResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/maxNetPos\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setMaxNetPosData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n };\r\n const loadMaxExchanges = async () => {\r\n const response = await httpService.apiPost<GetMaxExchangesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/maxExchanges\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setMaxExchangesData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n };\r\n\r\n const dtoHubKeys: string[] = keys<GetCheckVolumeQuery>()\r\n .filter(f => f.startsWith(\"hub_\"));\r\n\r\n const dtoBorderKeys: string[] = keys<MaxExchangesDto>()\r\n .filter(f => f.startsWith(\"border_\"));\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, dtoHubKeys.concat(dtoBorderKeys));\r\n //setLoading(true);\r\n const date = applicationState.getRootUtcTime().toISOString();\r\n if (loadedDate !== date) {\r\n setMaxNetPosData([]);\r\n setMaxExchangesData([]);\r\n //we cannot use Promis.All to request both data at the same time because of IP LIMIT\r\n /*await Promise.all([\r\n loadMaxNetPos(),\r\n loadMaxExchanges(),\r\n ]);*/\r\n await loadMaxNetPos();\r\n await loadMaxExchanges();\r\n\r\n setLoadedDate(date);\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n const abc = {} as MaxNetPosDto;\r\n return (\r\n <>\r\n <SheetHeader showDownload={false} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <ContentPart isLoading={isLoading} data={[]} error={error}>\r\n <Content applicationState={applicationState}\r\n maxNetPosData={maxNetPosData.filter(f => new Date(f.dateTimeUtc).toISOString() === applicationState.selectedDate.toISOString())[0] || undefined}\r\n maxExchangeData={maxExchangesData.filter(f => new Date(f.dateTimeUtc).toISOString() === applicationState.selectedDate.toISOString())[0] || undefined}\r\n />\r\n </ContentPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { CraDto } from \"core/backend/data\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: CraDto[];\r\n}\r\n\r\nconst List = ({ t, data, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}></th>\r\n <th colSpan={2} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}></th>\r\n {\r\n [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\r\n .map(i => <th key={i} colSpan={3} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cra:cra\") + i + \" \" + t(\"page_cra:information\")}</th>)\r\n }\r\n </tr>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cra:cnecTso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cra:cnecName\")}</th>\r\n {\r\n [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\r\n .map((i) => <React.Fragment key={i}>\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"page_cra:name\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cra:baseline\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cra:afterNrao\")}</th>\r\n </React.Fragment>)\r\n }\r\n\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_cra\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { CraDto, GetCraQuery, GetCraResponse } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"cra\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"cra\",\r\n webUrl: \"cra\",\r\n menu: \"menu:menuRemedialActionCurative\",\r\n title: \"menu:titleRemedialActionCurative\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetCraResponse>()),\r\n dto: JSON.stringify(keys<CraDto>()),\r\n parameters: JSON.stringify(keys<GetCraQuery>()),\r\n dateSteps: \"H\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Hour()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: CraDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [search, setSearch] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<CraDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetCraResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.selectedDate.toISOString(),\r\n ToUtc: applicationState.getUntilFor1Hour().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n setLoading(false);\r\n } else if ((response.cancel || false) === false) {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n setLoading(false);\r\n }\r\n })();\r\n }, [applicationState.selectedDate, search]);\r\n\r\n const filteredData = data.filter((r: any) => {\r\n for (let name in r) if (r[name].toString().includes(search)) return true;\r\n return false;\r\n });\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <div className=\"subHeader\">\r\n <div style={{ display: \"inline-block\" }}>\r\n <div className=\"inputlabel\">{t(\"page_Search\")}</div>\r\n <input className=\"inputTable\" type=\"text\" value={search} onChange={(e) => setSearch(e.currentTarget.value)} />\r\n </div>\r\n <div style={{ display: \"inline-block\", marginLeft: \"20px\" }}>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"page_Total Rows\") + \": \" + data.length}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"page_Search Rows\") + \": \" + filteredData.length}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"page_Shown Rows\") + \": \" + Math.min(applicationState.maxRows, filteredData.length)}</div>\r\n </div>\r\n </div>\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={filteredData.slice(0, applicationState.maxRows)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation(\"page_cra\")(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { D2CFDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: D2CFDto[];\r\n hubs: MultiSelectItem[];\r\n tsos: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, hubs, tsos, scrollPosition }: OwnProps & WithTranslation) => {\r\n const titleTop = Math.max(0, (scrollPosition?.top || 0) - 16);\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<D2CFDto>();\r\n const dtoHubs = hubs.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n const dtoTsos = tsos.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn fixedHeader\" style={{ top: titleTop + \"px\", left: left + \"px\" }}></th>\r\n <th colSpan={dtoHubs.length * 3} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"page_d2cf:hub\")}</th>\r\n <th colSpan={dtoTsos.length * 3} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"page_d2cf:tso\")}</th>\r\n </tr>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}></th>\r\n <th colSpan={dtoHubs.length} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_d2cf:VerticalLoad\")}</th>\r\n <th colSpan={dtoHubs.length} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_d2cf:Generation\")}</th>\r\n <th colSpan={dtoHubs.length} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_d2cf:CoreNetPosition\")}</th>\r\n {dtoTsos.map((tso, index) => <React.Fragment key={tso.id} >\r\n <th className={classNames(\"fixedHeader\", index === 0 ? \"lineLeft\" : \"lineLeftLight\")} style={{ top: top + \"px\" }}>{t(\"page_d2cf:VertLoad\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_d2cf:Gen\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_d2cf:Cnp\")}</th>\r\n </React.Fragment>)}\r\n </tr>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {dtoHubs.length == 0 ? <th className=\"fixedHeader lineLeftLight\" style={{ top: top + \"px\" }} colSpan={3}>Check your filter</th> : <></>}\r\n {dtoHubs.map((hub, index) => <th key={hub.id + 1} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeftLight\" : \"\")} style={{ top: top + \"px\" }}>{t(\"common_hubs:\" + hub.id)}</th>)}\r\n {dtoHubs.map((hub, index) => <th key={hub.id + 2} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeftLight\" : \"\")} style={{ top: top + \"px\" }}>{t(\"common_hubs:\" + hub.id)}</th>)}\r\n {dtoHubs.map((hub, index) => <th key={hub.id + 3} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeftLight\" : \"\")} style={{ top: top + \"px\" }}>{t(\"common_hubs:\" + hub.id)}</th>)}\r\n {dtoTsos.length == 0 ? <th className=\"fixedHeader lineLeftLight\" style={{ top: top + \"px\" }} colSpan={3}>Check your filter</th> : dtoTsos.map((tso, index) => <th key={tso.id} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeft\" : \"lineLeftLight\")} style={{ top: top + \"px\" }} colSpan={3}>{t(\"common_tsos:\" + tso.id)}</th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} hubs={dtoHubs} tsos={dtoTsos} left={left} />)\r\n }\r\n </tbody>\r\n </table >\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_d2cf\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { D2CFDto, GetD2CFQuery, GetD2CFResponse } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"d2CF\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"d2CF\",\r\n webUrl: \"d2CF\",\r\n menu: \"menu:menuD2CF\",\r\n title: \"menu:titleD2CF\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetD2CFResponse>()),\r\n dto: JSON.stringify(keys<D2CFDto>()),\r\n parameters: JSON.stringify(keys<GetD2CFQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const keyss = keys<D2CFDto>()\r\n .filter(f => f.startsWith(\"verticalLoad_\"))\r\n .map(m => m.replace(\"verticalLoad_\", \"\"))\r\n .map(m => (m.length == 2 ? \"hub_\" : \"tso_\") + m);\r\n\r\n const selectedHubs = applicationState.selectedHubs.filter((f) => f.isDisplayed && f.selected);\r\n const selectedTsos = applicationState.selectedTsos.filter((f) => f.isDisplayed && f.selected);\r\n\r\n const initialData: D2CFDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, true, keyss);\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetD2CFResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/d2CF\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data}\r\n hubs={selectedHubs.sort((h1, h2) => h1.id < h2.id ? -1 : 1)}\r\n tsos={selectedTsos.sort((h1, h2) => h1.id < h2.id ? -1 : 1)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation(\"page_d2cf\")(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { IntradayAtcDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport BorderName from \"components/borderName\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: IntradayAtcDto[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, borders, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const deltaBorderNames = keys<IntradayAtcDto>().filter(f => f.startsWith(\"delta_\")).map(m => m.replace(\"delta_\", \"\"))\r\n const bordersWithDelta = borders.filter(f => deltaBorderNames.includes(f.id));\r\n const bordersWithoutDelta = borders.filter(f => !deltaBorderNames.includes(f.id));\r\n\r\n return (\r\n <>\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}></th>\r\n <th colSpan={(bordersWithDelta.length * 2)} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_intradayAtc:Cwe\")}</th>\r\n <th colSpan={bordersWithoutDelta.length} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_intradayAtc:Cee\")}</th>\r\n </tr>\r\n <tr>\r\n <th className=\"fixedDateColumn fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}></th>\r\n {bordersWithDelta.map((border) => <th colSpan={2} key={border.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n {bordersWithoutDelta.map((border) => <th colSpan={1} key={border.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n </tr>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {bordersWithDelta.map((border) => <React.Fragment key={border.id}>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_intradayAtc:Initial\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_intradayAtc:Delta\")}</th>\r\n </React.Fragment>)}\r\n {bordersWithoutDelta.map((border) => <th key={border.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_intradayAtc:Initial\")}</th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} bordersWithoutDelta={bordersWithoutDelta} left={left} bordersWithDelta={bordersWithDelta} />)\r\n }\r\n </tbody>\r\n </table>\r\n </>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_intradayAtc\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { IntradayAtcDto, GetIntradayAtcResponse, GetIntradayAtcQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"intradayAtc\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"intradayAtc\",\r\n webUrl: \"intradayAtc\",\r\n menu: \"menu:menuIntradayATC\",\r\n title: \"menu:titleIntradayAtc\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetIntradayAtcResponse>()),\r\n dto: JSON.stringify(keys<IntradayAtcDto>()),\r\n parameters: JSON.stringify(keys<GetIntradayAtcQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: IntradayAtcDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false,\r\n keys<IntradayAtcDto>().filter(f => f.startsWith(\"initial_\"))\r\n .map(m => m.replace(\"initial_\", \"border_\")));\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetIntradayAtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: page_config.getDefaultToDateTime(applicationState).toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} disclaimer={t(\"common:disclaimerIntradayAtc\")} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} borders={applicationState.selectedBorders.filter((f) => f.selected && f.isDisplayed)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation(\"page_intradayAtc\")(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { IntradayNtcDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport BorderName from \"components/borderName\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: IntradayNtcDto[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, borders, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n return (\r\n <>\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th rowSpan={2} className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {borders.map((border) => <th key={border.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n </tr>\r\n <tr>\r\n {borders.map((border) =>\r\n <React.Fragment key={border.id}>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_intradayNtc:Initial\")}</th>\r\n </React.Fragment>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} borders={borders} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n </>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_intradayNtc\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { IntradayNtcDto, GetIntradayNtcResponse, GetIntradayNtcQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"intradayNtc\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"intradayNtc\",\r\n webUrl: \"intradayNtc\",\r\n menu: \"menu:menuIntradayNTC\",\r\n title: \"menu:titleIntradayNtc\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetIntradayNtcResponse>()),\r\n dto: JSON.stringify(keys<IntradayNtcDto>()),\r\n parameters: JSON.stringify(keys<GetIntradayNtcQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: IntradayNtcDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false,\r\n keys<IntradayNtcDto>().filter(f => f.startsWith(\"initial_\"))\r\n .map(m => m.replace(\"initial_\", \"border_\")));\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetIntradayNtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} borders={applicationState.selectedBorders.filter((f) => f.selected && f.isDisplayed)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation(\"page_intradayNtc\")(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { LtaDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport BorderName from \"components/borderName\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: LtaDto[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, borders, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<LtaDto>();\r\n const dtoBorders = borders.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {dtoBorders.map((border) => <th key={border.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} borders={dtoBorders} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { LtaDto, GetLtaResponse, GetLtaQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"lta\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"lta\",\r\n webUrl: \"lta\",\r\n menu: \"menu:menuLTA\",\r\n title: \"menu:titleLTA\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetLtaResponse>()),\r\n dto: JSON.stringify(keys<LtaDto>()),\r\n parameters: JSON.stringify(keys<GetLtaQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialResponse: any = {};\r\n const [lastRequestTime, setLastRequestTime] = useState(new Date());\r\n const [response, setResponse] = useState(initialResponse);\r\n \r\n const initialData: LtaDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n let requestTime = new Date();\r\n setLastRequestTime(requestTime);\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<LtaDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetLtaResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n response.requestTime = requestTime;\r\n setResponse(response);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n useEffect(() => {\r\n if (lastRequestTime == response.requestTime) {\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n } else { /*we ignore this response, as it was not the last requested*alert(lastRequestTime + \" vs \" + response.requestTime);*/ }\r\n }, [response]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} borders={applicationState.selectedBorders.filter((f) => f.selected)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { LtnDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport BorderName from \"components/borderName\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: LtnDto[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, borders, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<LtnDto>();\r\n const dtoBorders = borders.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {dtoBorders.map((border) => <th key={border.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} borders={dtoBorders} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { LtnDto, GetLtnResponse, GetLtnQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"ltn\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"ltn\",\r\n webUrl: \"ltn\",\r\n menu: \"menu:menuLTN\",\r\n title: \"menu:titleLTN\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetLtnResponse>()),\r\n dto: JSON.stringify(keys<LtnDto>()),\r\n parameters: JSON.stringify(keys<GetLtnQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: LtnDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n const availableBorders = applicationState.getCweTimeForDisplayPurposes(applicationState.selectedDate).getFullYear() >= 2023\r\n //AFTER 2023-01-01 -> only show HR<>SI\r\n ? keys<LtnDto>().filter((f) => f.startsWith(\"border_\") && (f == \"border_HR_SI\" || f == \"border_SI_HR\"))\r\n //BEFORE 2023-01-01 -> show all selected borders\r\n : keys<LtnDto>().filter((f) => f.startsWith(\"border_\"));\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, availableBorders);\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetLtnResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} borders={applicationState.selectedBorders.filter((f) => f.selected && f.isDisplayed)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { MaxExchangesDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport BorderName from \"components/borderName\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: MaxExchangesDto[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, borders, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n const keysInDto = keys<MaxExchangesDto>();\r\n const dtoBorders = borders.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {dtoBorders.map((border) => <th key={border.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} borders={dtoBorders} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { MaxExchangesDto, GetMaxExchangesResponse, GetMaxExchangesQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"maxExchanges\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"maxExchanges\",\r\n webUrl: \"maxExchanges\",\r\n menu: \"menu:menuMaxExchangesMaxBex\",\r\n title: \"menu:titleMaxExchangesMaxBex\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetMaxExchangesResponse>()),\r\n dto: JSON.stringify(keys<MaxExchangesDto>()),\r\n parameters: JSON.stringify(keys<GetMaxExchangesQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: MaxExchangesDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<MaxExchangesDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetMaxExchangesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} borders={applicationState.selectedBorders.filter((f) => f.selected)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { MaxNetPosDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: MaxNetPosDto[];\r\n hubs: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, hubs, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<MaxNetPosDto>();\r\n const dtoHubs = hubs.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {dtoHubs.map((hub) => <th key={hub.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_maxNetPos:Min\") + t(\"common_hubs:\" + hub.id)}</th>)}\r\n {dtoHubs.map((hub) => <th key={hub.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_maxNetPos:Max\") + t(\"common_hubs:\" + hub.id)}</th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} hubs={dtoHubs} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_maxNetPos\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { MaxNetPosDto, GetMaxNetPosResponse, GetMaxNetPosQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"maxNetPos\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"maxNetPos\",\r\n webUrl: \"maxNetPos\",\r\n menu: \"menu:menuMaxNetPos\",\r\n title: \"menu:titleMaxNetPos\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetMaxNetPosResponse>()),\r\n dto: JSON.stringify(keys<MaxNetPosDto>()),\r\n parameters: JSON.stringify(keys<GetMaxNetPosQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const selectedHubs = applicationState.selectedHubs.filter((f) => f.selected);\r\n const initialData: MaxNetPosDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, true, keys<MaxNetPosDto>().map(d => d.replace(\"min\", \"hub_\")));\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetMaxNetPosResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} hubs={selectedHubs} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation(\"page_maxNetPos\")(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { NetPosDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: NetPosDto[];\r\n hubs: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, hubs, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<NetPosDto>();\r\n const dtoHubs = hubs.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {dtoHubs.map((hub) => <th key={hub.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"common_hubs:\" + hub.id)}</th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} hubs={dtoHubs} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { NetPosDto, GetNetPosResponse, GetNetPosQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"netPos\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"netPos\",\r\n webUrl: \"netPos\",\r\n menu: \"menu:menuNetPosition\",\r\n title: \"menu:titleNetPosition\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetNetPosResponse>()),\r\n dto: JSON.stringify(keys<NetPosDto>()),\r\n parameters: JSON.stringify(keys<GetNetPosQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const selectedHubs = applicationState.selectedHubs.filter((f) => f.selected);\r\n const initialData: NetPosDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, true, keys<NetPosDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetNetPosResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} disclaimer={t(\"common:disclaimerNetPosition\")} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} hubs={selectedHubs} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import * as React from \"react\";\r\n\r\nimport { PraDto } from \"core/backend/data\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: PraDto;\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, left }: OwnProps) =>\r\n <tr>\r\n <TDatetime rowSpan={1} date={new Date(dto.dateTimeUtc)} left={left} />\r\n {(dto.reason ?? \"\") != \"\"\r\n ? <td colSpan={4} style={{ textAlign: \"left\" }}>{dto.reason}</td>\r\n : <>\r\n <td>{dto.name}{dto.reason}</td>\r\n <td>{dto.tso}</td>\r\n <td className=\"lineLeft\">{dto.baseline}</td>\r\n <td>{dto.afterNrao}</td>\r\n </>\r\n }\r\n </tr>;\r\n\r\nexport default Row;","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { PraDto } from \"core/backend/data\";\r\nimport classNames from 'classnames';\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: PraDto[];\r\n}\r\n\r\nconst List = ({ t, data, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}></th>\r\n <th colSpan={2} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_pra:praInformation\")}</th>\r\n <th colSpan={2} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_pra:parameters\")}</th>\r\n </tr>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_pra:pRaName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_pra:tso\")}</th>\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"page_pra:baseline\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_pra:afterNrao\")}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_pra\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { PraDto, GetPraResponse, GetPraQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"pra\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"pra\",\r\n webUrl: \"pra\",\r\n menu: \"menu:menuRemedialActionPreventive\",\r\n title: \"menu:titleRemedialActionPreventive\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetPraResponse>()),\r\n dto: JSON.stringify(keys<PraDto>()),\r\n parameters: JSON.stringify(keys<GetPraQuery>()),\r\n dateSteps: \"H\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Hour()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: PraDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [search, setSearch] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<PraDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetPraResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.selectedDate.toISOString(),\r\n ToUtc: applicationState.getUntilFor1Hour().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n setLoading(false);\r\n } else if ((response.cancel || false) === false) {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n setLoading(false);\r\n }\r\n })();\r\n }, [applicationState.selectedDate, search]);\r\n\r\n const filteredData = data.filter((r: any) => {\r\n for (let name in r) if (r[name].toString().includes(search)) return true;\r\n return false;\r\n });\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <div className=\"subHeader\">\r\n <div style={{ display: \"inline-block\" }}>\r\n <div className=\"inputlabel\">{t(\"page_Search\")}</div>\r\n <input className=\"inputTable\" type=\"text\" value={search} onChange={(e) => setSearch(e.currentTarget.value)} />\r\n </div>\r\n <div style={{ display: \"inline-block\", marginLeft: \"20px\" }}>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"page_Total Rows\") + \": \" + data.length}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"page_Search Rows\") + \": \" + filteredData.length}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"page_Shown Rows\") + \": \" + Math.min(applicationState.maxRows, filteredData.length)}</div>\r\n </div>\r\n </div><SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={filteredData.slice(0, applicationState.maxRows)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation(\"page_pra\")(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { PriceSpreadDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport BorderName from \"components/borderName\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: PriceSpreadDto[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, borders, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<PriceSpreadDto>();\r\n const dtoBorders = borders.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {dtoBorders.map((border) => <th key={border.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} borders={dtoBorders} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { PriceSpreadDto, GetPriceSpreadResponse, GetPriceSpreadQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"priceSpread\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"priceSpread\",\r\n webUrl: \"priceSpread\",\r\n menu: \"menu:menuPriceSpread\",\r\n title: \"menu:titlePriceSpread\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetPriceSpreadResponse>()),\r\n dto: JSON.stringify(keys<PriceSpreadDto>()),\r\n parameters: JSON.stringify(keys<GetPriceSpreadQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: PriceSpreadDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<PriceSpreadDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetPriceSpreadResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} borders={applicationState.selectedBorders.filter((f) => f.selected)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { FinalComputationDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: FinalComputationDto[];\r\n hubs: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, hubs, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<FinalComputationDto>();\r\n const dtoHubs = hubs.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}></th>\r\n <th colSpan={10} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:infoCnec\")}</th>\r\n <th colSpan={9} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:infoContingency\")}</th>\r\n <th colSpan={21 + (dtoHubs.length)} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:detailRam\")}</th>\r\n </tr>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:cneName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:cneEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:direction\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:hubTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:substationFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:substationTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:elementType\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fmaxType\")}</th>\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"page_cnec:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:contingencyName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:branchName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:branchEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:hubTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:substationFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:substationTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:elementType\")}</th>\r\n\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"page_cnec:presolved\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:ram\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:imax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:u\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"page_cnec:fmax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:frm\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:frefinit\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fnrao\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fref\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fcore\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fall\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fuaf\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:amr\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"page_cnec:Ramr\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"page_cnec:RamrJustification\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"page_cnec:minRamTarget\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:ltaMargin\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:cva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:iva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:ftotalLtn\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fltn\")}</th>\r\n\r\n {dtoHubs.map((hub) => <th key={hub.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:ptdf\") + t(\"common_hubs:\" + hub.id)}</th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} hubs={dtoHubs} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_cnec\")(List);\r\n\r\nexport default translated;","import { default as React } from \"react\";\r\nimport ReactPaginate from 'react-paginate';\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\n\r\ninterface OwnProps {\r\n currentPage: number;\r\n pageCount: number;\r\n realCount: number;\r\n onPageClick: (n: number) => void;\r\n}\r\n\r\nconst scrollPosition=document.getElementsByClassName(\"xx\"); \r\nconst Pagination = ({ pageCount, currentPage, realCount, onPageClick, t }: OwnProps & WithTranslation) =>\r\n (pageCount > 0 || realCount > pageCount) ?\r\n <nav aria-label=\"Page navigation example\" style={{ display: \"flex\" }}>\r\n <ReactPaginate\r\n containerClassName=\"pagination p-0 m-2 ml-3\"\r\n pageCount={pageCount}\r\n forcePage={currentPage}\r\n onPageChange={(n) => {onPageClick(n.selected);scrollPosition[0].scrollTo(0,0)}}\r\n breakClassName=\"page-item\"\r\n pageClassName=\"page-item\"\r\n previousClassName=\"page-item\"\r\n nextClassName=\"page-item\"\r\n pageLinkClassName=\"page-link\"\r\n previousLinkClassName=\"page-link\"\r\n nextLinkClassName=\"page-link\"\r\n breakLabel={<a className=\"page-link\">...</a>}\r\n activeClassName=\"active\"\r\n disabledClassName=\"disabled\"\r\n nextLabel={t(\"common:next\")}\r\n previousLabel={t(\"common:previous\")}\r\n marginPagesDisplayed={2}\r\n pageRangeDisplayed={8}\r\n />\r\n {(realCount > pageCount) && (pageCount == currentPage + 1) && <span style={{ marginTop: \"15px\" }}></span>}\r\n </nav>\r\n : null;\r\n\r\nexport default withTranslation()(Pagination);","import { default as React } from \"react\";\r\nimport { SearchField } from \"components/search\";\r\nimport Multiselect from 'multiselect-react-dropdown';\r\n\r\ninterface OwnState {\r\n option: SearchField;\r\n setValue: (value: any) => void;\r\n reset: boolean;\r\n setReset: (value: boolean) => void;\r\n}\r\n\r\ntype SearchProps = OwnState;\r\n\r\nconst InputField = ({ option, reset, setReset, setValue }: SearchProps) => {\r\n\r\n let multiselectRef: any;\r\n React.useEffect(() => {\r\n if (reset && multiselectRef && multiselectRef.current) {\r\n multiselectRef.current.resetSelectedValues();\r\n setReset(false);\r\n }\r\n }, [reset]);\r\n\r\n switch (option.type) {\r\n case \"bool\":\r\n return (\r\n <div style={{ paddingTop: \"5px\" }}>\r\n <input type=\"radio\" id=\"true\" value=\"true\" name={option.parameter} onClick={e => setValue(true)} />\r\n <label htmlFor=\"true\">True</label>\r\n <input type=\"radio\" id=\"false\" value=\"false\" name={option.parameter} onClick={e => setValue(false)} />\r\n <label htmlFor=\"false\">False</label>\r\n <input type=\"radio\" id=\"unset\" value=\"unset\" name={option.parameter} onClick={e => setValue(null)} />\r\n <label htmlFor=\"unset\">Unset</label>\r\n </div>\r\n )\r\n case \"multiselect\": {\r\n multiselectRef = React.createRef<Multiselect>();\r\n return (\r\n <Multiselect\r\n ref={multiselectRef}\r\n options={option?.options}\r\n onSelect={(list, v) => setValue(list.map((l: { value: any; }) => l.value))}\r\n onRemove={(list, v) => setValue(list.map((l: { value: any; }) => l.value))}\r\n showCheckbox={true}\r\n closeOnSelect={false}\r\n showArrow={true}\r\n avoidHighlightFirstOption={true}\r\n displayValue=\"title\"\r\n style={{\r\n 'chips': {\r\n 'fontSize': '8px',\r\n 'background': '#88a4bf'\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n default:\r\n return <input type=\"text\" onChange={e => setValue(e.currentTarget.value)} style={{ width: '100%' }} />\r\n }\r\n};\r\n\r\nexport default InputField;\r\n","import { default as React } from \"react\";\r\nimport { SearchField } from \"components/search\";\r\nimport InputField from \"./inputField\";\r\n\r\ninterface OwnState {\r\n option: SearchField;\r\n setOptionValue: (option: string, value: any) => void;\r\n reset: boolean;\r\n setReset: (value: boolean) => void;\r\n}\r\n\r\ntype SearchProps = OwnState;\r\n\r\nconst SearchOption = ({ option, reset, setReset, setOptionValue }: SearchProps) => {\r\n\r\n return <tr>\r\n <td style={{ paddingRight: '10px' }}>{option.title}</td>\r\n <td>\r\n <InputField\r\n option={option}\r\n reset={reset}\r\n setReset={setReset}\r\n setValue={(v: any) => setOptionValue(option.parameter, v)} />\r\n </td>\r\n </tr>\r\n};\r\n\r\nexport default SearchOption;\r\n","import { default as React, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport SearchOption from \"./searchOption\";\r\nimport Collapsible from 'react-collapsible';\r\nimport { FilterOption } from \"core/pages/pageList\";\r\nconst s = require(\"./search.module.scss\");\r\n\r\nexport const default_tsos: FilterOption[] = [\r\n { title: \"50Hertz\", value: \"10XDE-VE-TRANSMK\" },\r\n { title: \"Amprion\", value: \"10XDE-RWENET---W\" },\r\n { title: \"Apg\", value: \"10XAT-APG------Z\" },\r\n { title: \"Ceps\", value: \"10XCZ-CEPS-GRIDE\" },\r\n { title: \"Eles\", value: \"10XSI-ELES-----1\" },\r\n { title: \"Elia\", value: \"10X1001A1001A094\" },\r\n { title: \"Hops\", value: \"10XHR-HEP-OPS--A\" },\r\n { title: \"Mavir\", value: \"10X1001A1001A329\" },\r\n { title: \"Pse\", value: \"10XPL-TSO------P\" },\r\n { title: \"Rte\", value: \"10XFR-RTE------Q\" },\r\n { title: \"Seps\", value: \"10XSK-SEPS-GRIDB\" },\r\n { title: \"TennetBv\", value: \"10X1001A1001A361\" },\r\n { title: \"TransnetBw\", value: \"10XDE-ENBW--TNGX\" },\r\n { title: \"TennetGmbh\", value: \"10XDE-EON-NETZ-C\" },\r\n { title: \"Transelectrica\", value: \"10XRO-TEL------2\" }\r\n];\r\n\r\nexport const default_hubs: FilterOption[] = [\r\n { title: \"AT\", value: \"10YAT-APG------L\" },\r\n { title: \"BE\", value: \"10YBE----------2\" },\r\n { title: \"CZ\", value: \"10YCZ-CEPS-----N\" },\r\n { title: \"DE\", value: \"10YCB-GERMANY--8\" },\r\n { title: \"FR\", value: \"10YFR-RTE------C\" },\r\n { title: \"HU\", value: \"10YHU-MAVIR----U\" },\r\n { title: \"HR\", value: \"10YHR-HEP------M\" },\r\n { title: \"NL\", value: \"10YNL----------L\" },\r\n { title: \"PL\", value: \"10YPL-AREA-----S\" },\r\n { title: \"RO\", value: \"10YRO-TEL------P\" },\r\n { title: \"SI\", value: \"10YSI-ELES-----O\" },\r\n { title: \"SK\", value: \"10YSK-SEPS-----K\" }\r\n\r\n];\r\n\r\ninterface OwnState {\r\n search: (params: any) => void;\r\n isLoading: boolean;\r\n filter: { totalRows: number, totalRowsWithFilter: number, maxRows: number };\r\n searchFields?: SearchField[];\r\n}\r\nexport interface SearchField {\r\n title: string;\r\n parameter: string;\r\n type: string;\r\n options?: Option[];\r\n defaultValue?: any;\r\n}\r\nexport interface Option {\r\n title: string;\r\n value: any;\r\n}\r\n\r\ntype SearchProps = OwnState & WithTranslation;\r\n\r\nconst SearchField = ({ search, isLoading, filter, searchFields, t }: SearchProps) => {\r\n\r\n const [searchOptions, setSearchOptions] = useState({});\r\n const [reset, setReset] = useState(false);\r\n\r\n const setOptionValue = (option: string, value: any) => {\r\n setSearchOptions({\r\n ...searchOptions,\r\n [option]: value\r\n });\r\n }\r\n\r\n const resetFilter = () => {\r\n (document.getElementById(\"searchForm\") as HTMLFormElement).reset();\r\n setReset(true);\r\n setSearchOptions({});\r\n search({});\r\n }\r\n\r\n return (\r\n searchFields == undefined || searchFields == null || searchFields.length == 0 ? <></>\r\n :\r\n <Collapsible\r\n onClosing={() => (document.getElementsByClassName('Collapsible__contentOuter')[0] as HTMLElement).style.overflow = 'hidden'}\r\n onOpen={() => (document.getElementsByClassName('Collapsible__contentOuter')[0] as HTMLElement).style.overflow = 'inherit'}\r\n trigger={\r\n <div className={s.collapsible}>\r\n <span className={s.searchLabel}>{t(\"common:search\")}</span>\r\n <i className={s.collapsibleArrow}></i>\r\n </div>\r\n }>\r\n <div className=\"inputlabel\" style={{ display: \"inline-block\" }}>\r\n <form id=\"searchForm\" onSubmit={e => e.preventDefault()}>\r\n <table><tbody>\r\n {\r\n searchFields.map(field =>\r\n <SearchOption\r\n key={field.parameter}\r\n option={field}\r\n reset={reset}\r\n setReset={setReset}\r\n setOptionValue={setOptionValue} />)\r\n }\r\n <tr style={{ borderTop: '1px solid #757575' }}>\r\n <td>\r\n <button style={{ marginBottom: \"3px\" }} onClick={() => resetFilter()}>\r\n {t(\"common:reset\").toString()}\r\n </button>\r\n <br />\r\n <button onClick={() => { search(searchOptions) }}>\r\n {t(\"common:search\")}\r\n </button>\r\n </td>\r\n <td style={{ paddingTop: '5px' }}>\r\n <div style={{ display: \"inline-block\", marginLeft: \"20px\" }}>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{isLoading ? t(\"common:loading\") : t(\"common:totalWithoutFilter\") + \": \" + filter.totalRows}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{isLoading ? \"\" : t(\"common:totalWithFilter\") + \": \" + filter.totalRowsWithFilter}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{isLoading ? \"\" : t(\"common:displayedRows\") + \": \" + Math.min(filter.maxRows, filter.totalRowsWithFilter)}</div>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody></table>\r\n </form>\r\n </div>\r\n </Collapsible>\r\n );\r\n};\r\n\r\nexport default withTranslation()(SearchField);\r\n","import httpService from \"core/infrastructure/http\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\n\r\n\r\nexport const mapUpTo = <T>(n: number, fn: (idx: number) => T) => {\r\n var arr = [];\r\n for (var i = 0; i < n; i++) {\r\n arr.push(fn(i));\r\n }\r\n return arr;\r\n};\r\n\r\nexport const makePageChange = (pageNumber: number, applicationState: ApplicationState, data: any, setPageNumber: (num: number) => void, makeRequest: (skip: number, take: number) => void) => {\r\n setPageNumber(pageNumber);\r\n const rows = applicationState.maxRows * pageNumber;\r\n if (data.skip > rows || rows >= data.take) {\r\n let skip = Math.floor(pageNumber / 10) * applicationState.pageSize;\r\n makeRequest(skip, skip + applicationState.pageSize);\r\n }\r\n}\r\n\r\nexport const makeRequest = async <T> (skip: number, take: number, applicationState: ApplicationState, initialData: T, search: any, senderId: string, page_config: PageList, setLoading: (loading: boolean) => void, setError: (error: string) => void, setData: (data: T) => void) => {\r\n setLoading(true);\r\n setData(initialData);\r\n const response = await httpService.apiPost<T>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.selectedDate.toISOString(),\r\n ToUtc: page_config.getDefaultToDateTime(applicationState).toISOString(),\r\n Filter: search,\r\n Skip: skip,\r\n Take: take\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || \"An unknown error occured.\"); //TODO\r\n }\r\n setLoading(false);\r\n}\r\n\r\nexport const handleMultiSelectChange = (selectedItems: MultiSelectItem[], itemKey: string, selectedItem: MultiSelectItem, special: string) => {\r\n const newList = selectedItems.map((item) => {\r\n if (special === \"ALL\") {\r\n return { ...item, selected: true };\r\n }\r\n if (special === \"NONE\") {\r\n return { ...item, selected: false };\r\n }\r\n if (item.id === selectedItem.id) {\r\n return { ...item, selected: !item.selected };\r\n }\r\n return item;\r\n });\r\n localStorage.setItem(itemKey, JSON.stringify(newList));\r\n localStorage.setItem('lastSavedOn', new Date().toISOString());\r\n return newList;\r\n}\r\n\r\nexport const filterSelectedItems = (selectedItems: MultiSelectItem[], availableColumns: string[], itemKey: string, itemMap: (item: MultiSelectItem) => any) => {\r\n return [\r\n ...selectedItems,\r\n ...availableColumns\r\n .filter((value, index, self) => self.indexOf(value) === index) // =distinct\r\n .filter(k => k.toLowerCase().startsWith(itemKey) && selectedItems.filter(s => s.id.toLowerCase() === k.toLowerCase().replace(itemKey, \"\")).length === 0)\r\n .map((key) => {\r\n return {\r\n isDisplayed: false,\r\n id: key.toLowerCase().replace(itemKey, \"\").toUpperCase(),\r\n text: key.toLowerCase().replace(itemKey, \"\").toUpperCase(),\r\n selected: true\r\n };\r\n })\r\n ].map((item) => itemMap(item)).sort((a, b) => a.id.localeCompare(b.id)) \r\n}\r\n\r\nexport function mapTranslations(allTranslations: any): MultiSelectItem[] {\r\n return Object.keys(allTranslations).map((k) => {\r\n return {\r\n id: k,\r\n text: allTranslations[k],\r\n selected: true,\r\n isDisplayed: true\r\n };\r\n })\r\n}\r\n","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { FinalComputationDto, GetFinalComputationQuery, GetFinalComputationResponse } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport Pagination from \"components/pagination\";\r\nimport SearchField, { default_hubs, default_tsos } from \"components/search\"\r\nimport { FilterField, PageList } from \"core/pages/pageList\";\r\nimport {makePageChange, makeRequest} from \"utils\";\r\n\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"finalComputation\";\r\nconst pageSize = 1000;\r\n\r\nexport const filterFields_FinalComputation: FilterField[] = [\r\n { title: \"CnecName\", parameter: \"CnecName\", type: \"text\" },\r\n { title: \"Tso\", parameter: \"Tso\", type: \"multiselect\", options: default_tsos },\r\n { title: \"HubFrom\", parameter: \"HubFrom\", type: \"multiselect\", options: default_hubs },\r\n { title: \"HubTo\", parameter: \"HubTo\", type: \"multiselect\", options: default_hubs },\r\n { title: \"Contingency\", parameter: \"Contingency\", type: \"text\" },\r\n { title: \"Presolved\", parameter: \"Presolved\", type: \"bool\" }];\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"finalComputation\",\r\n webUrl: \"finalComputation\",\r\n menu: \"menu:menuFinalComputation\",\r\n title: \"menu:titleFinalComputation\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetFinalComputationResponse>()),\r\n dto: JSON.stringify(keys<FinalComputationDto>()),\r\n parameters: JSON.stringify(keys<GetFinalComputationQuery>()),\r\n dateSteps: \"H\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Hour(),\r\n filterFields: filterFields_FinalComputation\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialResponse: any = {};\r\n const [lastRequestTime, setLastRequestTime] = useState(new Date());\r\n const [response, setResponse] = useState(initialResponse); \r\n \r\n const initialData: GetFinalComputationResponse = { data: [], totalRows: 0, totalRowsWithFilter: 0, lastModifiedOn: \"\", appliedFilter: { cnecName: \"\", tso: [], hubFrom: [], hubTo: [], contingency: \"\", presolved: true }, messages: [], rejected: false, skip: 0, take: 0 };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [search, setSearch] = useState({});\r\n const keysInDto = keys<FinalComputationDto>().filter((x) => x.startsWith(\"ptdf_\")).map(x => x.replace(\"ptdf_\", \"hub_\"));\r\n const [pageNumber, setPageNumber] = useState(0);\r\n\r\n function handlePageChange(pageNumber: number) {\r\n makePageChange(pageNumber, applicationState, data, setPageNumber, (skip, take) => makeRequest(skip, take, applicationState, initialData, search, senderId, page_config, setLoading, setError, setData));\r\n }\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keysInDto);\r\n makeRequest<GetFinalComputationResponse>(0, applicationState.pageSize, applicationState, initialData, search, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate, search]);\r\n\r\n useEffect(() => {\r\n if (lastRequestTime == response.requestTime) {\r\n if (response.ok) {\r\n setData(response.data);\r\n setError(\"\");\r\n setLoading(false);\r\n } else if ((response.cancel || false) === false) {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n setLoading(false);\r\n }\r\n } else { /*we ignore this response, as it was not the last requested*alert(lastRequestTime + \" vs \" + response.requestTime);*/ }\r\n }, [response]);\r\n\r\n\r\n const pageCount = Math.ceil(data.totalRowsWithFilter / applicationState.maxRows);\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} search={search} />\r\n <div className=\"subHeader\">\r\n <SearchField\r\n isLoading={isLoading}\r\n searchFields={filterFields_FinalComputation}\r\n search={s => { setSearch(s); setPageNumber(0); }}\r\n filter={{ totalRows: data.totalRows, totalRowsWithFilter: data.totalRowsWithFilter, maxRows: applicationState.maxRows }} />\r\n </div>\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List\r\n data={data.data.slice((pageNumber % 10) * applicationState.maxRows, ((pageNumber % 10) + 1) * applicationState.maxRows)}\r\n hubs={applicationState.selectedHubs.filter(h => h.selected && h.isDisplayed)}\r\n />\r\n </SheetDataPart>\r\n <Pagination\r\n currentPage={pageNumber}\r\n onPageClick={handlePageChange}\r\n pageCount={pageCount}\r\n realCount={data.totalRowsWithFilter}\r\n />\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { PreFinalComputationDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: PreFinalComputationDto[];\r\n hubs: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, hubs, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<PreFinalComputationDto>();\r\n const dtoHubs = hubs.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}></th>\r\n <th colSpan={10} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:infoCnec\")}</th>\r\n <th colSpan={9} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:infoContingency\")}</th>\r\n <th colSpan={20 + (dtoHubs.length)} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:detailRam\")}</th>\r\n </tr>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:cneName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:cneEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:direction\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:hubTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:substationFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:substationTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:elementType\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fmaxType\")}</th>\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"page_cnec:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:contingencyName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:branchName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:branchEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:hubTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:substationFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:substationTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:elementType\")}</th>\r\n\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"page_cnec:presolved\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:ram\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:imax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:u\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"page_cnec:fmax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:frm\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:frefinit\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fnrao\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fref\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fcore\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fall\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fuaf\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:amr\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"page_cnec:Ramr\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"page_cnec:RamrJustification\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"page_cnec:minRamTarget\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:ltaMargin\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:cva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:iva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:ftotalLtn\")}</th>\r\n\r\n {dtoHubs.map((hub) => <th key={hub.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:ptdf\") + t(\"common_hubs:\" + hub.id)}</th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} hubs={dtoHubs} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_cnec\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport { PreFinalComputationDto, GetPreFinalComputationResponse, GetPreFinalComputationQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport Pagination from \"components/pagination\";\r\nimport SearchField, { default_hubs, default_tsos } from \"components/search\"\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport {makePageChange, makeRequest} from \"utils\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"preFinalComputation\";\r\n\r\nexport const filterFields_PreFinalComputation = [\r\n { title: \"CnecName\", parameter: \"CnecName\", type: \"text\" },\r\n { title: \"Tso\", parameter: \"Tso\", type: \"multiselect\", options: default_tsos },\r\n { title: \"HubFrom\", parameter: \"HubFrom\", type: \"multiselect\", options: default_hubs },\r\n { title: \"HubTo\", parameter: \"HubTo\", type: \"multiselect\", options: default_hubs },\r\n { title: \"Contingency\", parameter: \"Contingency\", type: \"text\" },\r\n { title: \"Presolved\", parameter: \"Presolved\", type: \"bool\" }];\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"preFinalComputation\",\r\n webUrl: \"preFinalComputation\",\r\n menu: \"menu:menuPreFinalComputation\",\r\n title: \"menu:titlePreFinalComputation\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetPreFinalComputationResponse>()),\r\n dto: JSON.stringify(keys<PreFinalComputationDto>()),\r\n parameters: JSON.stringify(keys<GetPreFinalComputationQuery>()),\r\n dateSteps: \"H\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Hour(),\r\n filterFields: filterFields_PreFinalComputation\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: GetPreFinalComputationResponse = { data: [], totalRows: 0, totalRowsWithFilter: 0, lastModifiedOn: \"\", appliedFilter: { cnecName: \"\", tso: [], hubFrom: [], hubTo: [], contingency: \"\", presolved: false }, messages: [], rejected: false };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [search, setSearch] = useState({});\r\n const keysInDto = keys<PreFinalComputationDto>();\r\n const [pageNumber, setPageNumber] = useState(0);\r\n\r\n \r\n function handlePageChange(pageNumber: number) {\r\n makePageChange(pageNumber, applicationState, data, setPageNumber, (skip, take) => makeRequest(skip, take, applicationState, initialData, search, senderId, page_config, setLoading, setError, setData));\r\n }\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keysInDto.map(d => d.replace(\"ptdfNtcs_IT_\", \"hub_\").replace(\"ptdfRefs_\", \"border_\")).concat([\"hub_IT\"]));\r\n makeRequest<GetPreFinalComputationResponse>(0, applicationState.pageSize, applicationState, initialData, search, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate, search]);\r\n\r\n\r\n\r\n const pageCount = Math.ceil(data.totalRowsWithFilter / applicationState.maxRows);\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <div className=\"subHeader\">\r\n <SearchField\r\n isLoading={isLoading}\r\n searchFields={filterFields_PreFinalComputation}\r\n search={s => { setSearch(s); setPageNumber(0); }}\r\n filter={{ totalRows: data.totalRows, totalRowsWithFilter: data.totalRowsWithFilter, maxRows: applicationState.maxRows }} />\r\n </div>\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List\r\n data={data.data.slice((pageNumber % 10) * applicationState.maxRows, ((pageNumber % 10) + 1) * applicationState.maxRows)}\r\n hubs={applicationState.selectedHubs.filter(h => keysInDto.some((key) => key === \"ptdf_\" + h.id.toUpperCase()))}\r\n />\r\n </SheetDataPart>\r\n <Pagination\r\n currentPage={pageNumber}\r\n onPageClick={handlePageChange}\r\n pageCount={pageCount}\r\n realCount={data.totalRowsWithFilter}\r\n />\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { ReferenceNetPositionDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: ReferenceNetPositionDto[];\r\n hubs: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, hubs, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<ReferenceNetPositionDto>();\r\n const dtoHubs = hubs.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {dtoHubs.map((hub, index) => <th key={hub.id + 1} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeftLight\" : \"\")} style={{ top: top + \"px\" }}>{t(\"common_hubs:\" + hub.id)}</th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} hubs={dtoHubs} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { ReferenceNetPositionDto, GetReferenceNetPositionResponse, GetReferenceNetPositionQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"referenceNetPosition\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"referenceNetPosition\",\r\n webUrl: \"referenceNetPosition\",\r\n menu: \"menu:menuReferenceNetPosition\",\r\n title: \"menu:titleReferenceNetPosition\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetReferenceNetPositionResponse>()),\r\n dto: JSON.stringify(keys<ReferenceNetPositionDto>()),\r\n parameters: JSON.stringify(keys<GetReferenceNetPositionQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const selectedHubs = applicationState.selectedHubs.filter((f) => f.selected);\r\n const initialData: ReferenceNetPositionDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n const availableDtoHubs = keys<ReferenceNetPositionDto>()\r\n .filter(f => f.startsWith(\"globalNetPosition_\"))\r\n .map(m => m.replace(\"globalNetPosition_\", \"hub_\"));\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, true, availableDtoHubs);\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetReferenceNetPositionResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/referenceNetPosition\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} hubs={selectedHubs} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { RefprogDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport BorderName from \"components/borderName\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: RefprogDto[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, borders, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<RefprogDto>();\r\n const dtoBorders = borders.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {dtoBorders.map((border) => <th key={border.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} borders={dtoBorders} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { RefprogDto, GetRefprogResponse, GetRefprogQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"refprog\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"refprog\",\r\n webUrl: \"refprog\",\r\n menu: \"menu:menuRefprog\",\r\n title: \"menu:titleRefprog\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetRefprogResponse>()),\r\n dto: JSON.stringify(keys<RefprogDto>()),\r\n parameters: JSON.stringify(keys<GetRefprogQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: RefprogDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<RefprogDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetRefprogResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} borders={applicationState.selectedBorders.filter((f) => f.selected)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { ShadowAuctionAtcDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport BorderName from \"components/borderName\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: ShadowAuctionAtcDto[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, borders, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<ShadowAuctionAtcDto>();\r\n const dtoBorders = borders.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {dtoBorders.map((border) => <th key={border.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} borders={dtoBorders} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { ShadowAuctionAtcDto, GetShadowAuctionAtcResponse, GetShadowAuctionAtcQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"shadowAuctionAtc\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"shadowAuctionAtc\",\r\n webUrl: \"shadowAuctionAtc\",\r\n menu: \"menu:menuShadowAuctionATC\",\r\n title: \"menu:titleShadowAuctionATC\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetShadowAuctionAtcResponse>()),\r\n dto: JSON.stringify(keys<ShadowAuctionAtcDto>()),\r\n parameters: JSON.stringify(keys<GetShadowAuctionAtcQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: ShadowAuctionAtcDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<ShadowAuctionAtcDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetShadowAuctionAtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <nav style={{ backgroundColor: \"#FAFAFD\" }}></nav>\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} borders={applicationState.selectedBorders.filter((f) => f.selected)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { ShadowPricesDto } from \"core/backend/data\";\r\nimport classNames from \"classnames\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport BorderName from \"components/borderName\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: ShadowPricesDto[];\r\n hubs: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, hubs, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<ShadowPricesDto>();\r\n const dtoHubs = hubs.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}></th>\r\n <th colSpan={22} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:infoCnec\")}</th>\r\n <th colSpan={hubs.length} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:ptdfs\")}</th>\r\n </tr>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:cneName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:cneEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:direction\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:contName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:branchEic\")}</th>\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:shadowPrice\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:ram\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:imax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"page_shadowPrices:fmax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:frm\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:fref\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:f0core\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:f0all\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:fuaf\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:amr\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:ltaMargin\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:cva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:iva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:ftotalLtn\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:minRamFactor\")}</th>\r\n\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:maxZ2ZPtdf\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_shadowPrices:hubTo\")}</th>\r\n {dtoHubs.map((hub) => <th key={hub.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{hub.id}</th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} left={left} hubs={dtoHubs} />)\r\n }\r\n </tbody>\r\n </table>\r\n )\r\n}\r\n\r\nconst translated = withTranslation(\"page_shadowPrices\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { ShadowPricesDto, GetShadowPricesResponse, GetShadowPricesQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"shadowPrices\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"shadowPrices\",\r\n webUrl: \"shadowPrices\",\r\n menu: \"menu:menuShadowPrices\",\r\n title: \"menu:titleShadowPrices\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetShadowPricesResponse>()),\r\n dto: JSON.stringify(keys<ShadowPricesDto>()),\r\n parameters: JSON.stringify(keys<GetShadowPricesQuery>()),\r\n dateSteps: \"H\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Hour()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialResponse: GetShadowPricesResponse = { data: [], totalRows: 0, totalRowsWithFilter: 0, lastModifiedOn: \"\", appliedFilter: \"\", messages: [], rejected: false };\r\n const [response, setResponse] = useState(initialResponse);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [search, setSearch] = useState(\"\");\r\n const [searchText, setSearchText] = useState(\"\");\r\n const keysInDto = keys<ShadowPricesDto>().filter(f => f.startsWith(\"hub_\"));\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, true, keysInDto);\r\n setLoading(true);\r\n setResponse(initialResponse);\r\n const response = await httpService.apiPost<GetShadowPricesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.selectedDate.toISOString(),\r\n ToUtc: applicationState.getUntilFor1Hour().toISOString(),\r\n Filter: search, Skip: 0, Take: 1000\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setResponse(response.data);\r\n setError(\"\");\r\n setLoading(false);\r\n } else if ((response.cancel || false) === false) {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n setLoading(false);\r\n }\r\n })();\r\n }, [applicationState.selectedDate, search]);\r\n\r\n const filteredData = response.data.filter(function (r: any) {\r\n return true;\r\n if (search === null) return true;\r\n if (search === \"\") return true;\r\n // @ts-ignore: Object is possibly 'null'.\r\n if (this.count > 50) return false;\r\n for (let name in r) if ((r[name] ?? \"\").toString().includes(search)) {\r\n // @ts-ignore: Object is possibly 'null'.\r\n this!.count++;\r\n return true;\r\n }\r\n return false;\r\n }, { count: 0 });\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <div className=\"subHeader\">\r\n <div style={{ display: \"inline-block\" }}>\r\n <div className=\"inputlabel\">{t(\"page_Search\")}</div>\r\n <input className=\"inputTable\" type=\"text\" value={searchText}\r\n onChange={(e) => setSearchText(e.currentTarget.value)}\r\n onBlur={(e) => { setSearch(e.currentTarget.value); }}\r\n onKeyDown={(e) => { if (e.keyCode === 13) e.currentTarget.blur(); }} />\r\n </div>\r\n <div style={{ display: \"inline-block\", marginLeft: \"20px\" }}>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"common:totalWithoutFilter\") + \": \" + response.totalRows}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"common:totalWithFilter\") + \": \" + response.totalRowsWithFilter}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"common:displayedRows\") + \": \" + Math.min(applicationState.maxRows, response.totalRowsWithFilter)}</div>\r\n </div>\r\n </div>\r\n <SheetDataPart isLoading={isLoading} data={response.data} error={error}>\r\n <List data={filteredData.slice(0, applicationState.maxRows)} hubs={applicationState.selectedHubs.filter((f) => f.selected && f.isDisplayed)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation(\"page_shadowPrices\")(Page);\r\n","import * as React from \"react\";\r\n\r\nimport { SpanningDefaultFBPDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: SpanningDefaultFBPDto;\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, left }: OwnProps) =>\r\n <tr>\r\n <TDatetime rowSpan={1} date={new Date(dto.dateTimeUtc)} left={left} />\r\n <td>{dto.computation}</td>\r\n <td>{dto.type}</td>\r\n </tr>;\r\n\r\nexport default Row;","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { SpanningDefaultFBPDto } from \"core/backend/data\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: SpanningDefaultFBPDto[];\r\n}\r\n\r\nconst List = ({ t, data, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_spanningDefaultFBP:computation\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_spanningDefaultFBP:type\")}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_spanningDefaultFBP\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { SpanningDefaultFBPDto, GetSpanningDefaultFBPResponse, GetSpanningDefaultFBPQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"spanningDefaultFBP\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"spanningDefaultFBP\",\r\n webUrl: \"spanningDefaultFBP\",\r\n menu: \"menu:menuSpanningDefaultFBParameter\",\r\n title: \"menu:titleSpanningDefaultFBParameter\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetSpanningDefaultFBPResponse>()),\r\n dto: JSON.stringify(keys<SpanningDefaultFBPDto>()),\r\n parameters: JSON.stringify(keys<GetSpanningDefaultFBPQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: SpanningDefaultFBPDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<SpanningDefaultFBPDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetSpanningDefaultFBPResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation(\"page_spanningDefaultFBP\")(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { ValidationReductionsDto } from \"core/backend/data\";\r\nimport classNames from \"classnames\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: ValidationReductionsDto[];\r\n hubs: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, hubs, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<ValidationReductionsDto>();\r\n const dtoHubs = hubs.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}></th>\r\n <th colSpan={7} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:cnecWithIva\")}</th>\r\n <th colSpan={10} className=\"tableTitles fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:violatedLimits\")}</th>\r\n <th colSpan={1 + (dtoHubs.length)} className=\"tableTitles fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:circumstance\")}</th>\r\n <th colSpan={1} className=\"tableTitles fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:fallback\")}</th>\r\n </tr>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:cnecName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:direction\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:returnedBranch\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:iva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:ivaShare\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:justification\")}</th>\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"page_validationReductions:overloadedTso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:overloadedCnec\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:overloadedEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:overloadedFromUct\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:overloadedToUct\")}</th>\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"page_validationReductions:contingencyNr\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:contingencyName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:contingencyTso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:contingencyFromUct\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_validationReductions:contingencyToUct\")}</th>\r\n\r\n {dtoHubs.map((hub, i) => <th key={hub.id} className={classNames(\"fixedHeader\", i == 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}>{t(\"page_validationReductions:coreNp\") + t(\"common_hubs:\" + hub.id)}</th>)}\r\n \r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"page_validationReductions:comment\")}</th>\r\n \r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"page_validationReductions:fallbackApplied\")}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} hubs={dtoHubs} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_validationReductions\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport { ValidationReductionsDto, GetValidationReductionsResponse, GetValidationReductionsQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport Pagination from \"components/pagination\";\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport {makePageChange, makeRequest} from \"utils\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"validationReductions\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"validationReductions\",\r\n webUrl: \"validationReductions\",\r\n menu: \"menu:menuValidationReductions\",\r\n title: \"menu:titleValidationReductions\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetValidationReductionsResponse>()),\r\n dto: JSON.stringify(keys<ValidationReductionsDto>()),\r\n parameters: JSON.stringify(keys<GetValidationReductionsQuery>()),\r\n dateSteps: \"H\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: GetValidationReductionsResponse = { data: [], totalRows: 0, skip: 0, take: 0, messages: [], rejected: false, lastModifiedOn: \"\" };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const keysInDto = keys<ValidationReductionsDto>();\r\n const [pageNumber, setPageNumber] = useState(0);\r\n\r\n\r\n function handlePageChange(pageNumber: number) {\r\n makePageChange(pageNumber, applicationState, data, setPageNumber, (skip, take) => makeRequest(skip, take, applicationState, initialData, null, senderId, page_config, setLoading, setError, setData));\r\n }\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keysInDto.filter(k => k.startsWith(\"coreNp_\")).map(h => h.replace(\"coreNp_\", \"hub_\")));\r\n makeRequest<GetValidationReductionsResponse>(0, applicationState.pageSize, applicationState, initialData, null, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n\r\n const pageCount = Math.ceil(data.totalRows / applicationState.maxRows);\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List\r\n data={data.data.slice((pageNumber % 10) * applicationState.maxRows, ((pageNumber % 10) + 1) * applicationState.maxRows)} \r\n hubs={applicationState.selectedHubs.filter(h => h.isDisplayed && h.selected)} />\r\n </SheetDataPart>\r\n <Pagination\r\n currentPage={pageNumber}\r\n onPageClick={handlePageChange}\r\n pageCount={pageCount}\r\n realCount={data.totalRows}\r\n />\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation(\"page_validationReductions\")(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { InitialComputationDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: InitialComputationDto[];\r\n hubs: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, hubs, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<InitialComputationDto>();\r\n const dtoHubs = hubs;\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}></th>\r\n <th colSpan={10} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:infoCnec\")}</th>\r\n <th colSpan={9} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:infoContingency\")}</th>\r\n <th colSpan={20 + (dtoHubs.length)} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:detailRam\")}</th>\r\n </tr>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:cneName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:cneEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:direction\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:hubTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:substationFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:substationTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:elementType\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fmaxType\")}</th>\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"page_cnec:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:contingencyName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:branchName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:branchEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:hubTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:substationFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:substationTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:elementType\")}</th>\r\n\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"page_cnec:presolved\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:ram\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:imax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:u\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"page_cnec:fmax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:frm\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:frefinit\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fnrao\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fref\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fcore\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fall\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:fuaf\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:amr\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:ltaMargin\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:cva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:iva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:ftotalLtn\")}</th>\r\n\r\n {dtoHubs.map((hub) => <th key={hub.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"page_cnec:ptdf\") + t(\"common_hubs:\" + hub.id)}</th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} hubs={dtoHubs} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"page_cnec\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport { InitialComputationDto, GetInitialComputationResponse, GetInitialComputationQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport Pagination from \"components/pagination\";\r\nimport SearchField, { default_hubs, default_tsos } from \"components/search\"\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport {makePageChange, makeRequest} from \"utils\";\r\n\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"initialComputation\";\r\n\r\nexport const filterFields_InitialComputation = [\r\n { title: \"CnecName\", parameter: \"CnecName\", type: \"text\" },\r\n { title: \"Tso\", parameter: \"Tso\", type: \"multiselect\", options: default_tsos },\r\n { title: \"HubFrom\", parameter: \"HubFrom\", type: \"multiselect\", options: default_hubs },\r\n { title: \"HubTo\", parameter: \"HubTo\", type: \"multiselect\", options: default_hubs },\r\n { title: \"Contingency\", parameter: \"Contingency\", type: \"text\" },\r\n { title: \"Presolved\", parameter: \"Presolved\", type: \"bool\" }];\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"initialComputation\",\r\n webUrl: \"initialComputation\",\r\n menu: \"menu:menuInitialComputation\",\r\n title: \"menu:titleInitialComputation\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetInitialComputationResponse>()),\r\n dto: JSON.stringify(keys<InitialComputationDto>()),\r\n parameters: JSON.stringify(keys<GetInitialComputationQuery>()),\r\n dateSteps: \"H\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Hour(),\r\n filterFields: filterFields_InitialComputation\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: GetInitialComputationResponse = { data: [], totalRows: 0, skip: 0, take: 0, totalRowsWithFilter: 0, lastModifiedOn: \"\", appliedFilter: { cnecName: \"\", tso: [], hubFrom: [], hubTo: [], contingency: \"\", presolved: false }, messages: [], rejected: false };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [search, setSearch] = useState({});\r\n const keysInDto = keys<InitialComputationDto>().filter(f => f.startsWith(\"ptdf_\")).map(m => m.replace(\"ptdf_\", \"hub_\"));\r\n const [pageNumber, setPageNumber] = useState(0);\r\n\r\n\r\n function handlePageChange(pageNumber: number) {\r\n makePageChange(pageNumber, applicationState, data, setPageNumber, (skip, take) => makeRequest(skip, take, applicationState, initialData, search, senderId, page_config, setLoading, setError, setData));\r\n }\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keysInDto);\r\n makeRequest<GetInitialComputationResponse>(0, applicationState.pageSize, applicationState, initialData, search, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate, search]);\r\n\r\n\r\n const pageCount = Math.ceil(data.totalRowsWithFilter / applicationState.maxRows);\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <div className=\"subHeader\">\r\n <SearchField\r\n isLoading={isLoading}\r\n searchFields={filterFields_InitialComputation}\r\n search={s => { setSearch(s); setPageNumber(0); }}\r\n filter={{ totalRows: data.totalRows, totalRowsWithFilter: data.totalRowsWithFilter, maxRows: applicationState.maxRows }} />\r\n </div>\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List\r\n data={data.data.slice((pageNumber % 10) * applicationState.maxRows, ((pageNumber % 10) + 1) * applicationState.maxRows)}\r\n hubs={applicationState.selectedHubs.filter(h => h.isDisplayed)}\r\n />\r\n </SheetDataPart>\r\n <Pagination\r\n currentPage={pageNumber}\r\n onPageClick={handlePageChange}\r\n pageCount={pageCount}\r\n realCount={data.totalRowsWithFilter}\r\n />\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { BexRestrictionsDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport BorderName from \"components/borderName\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: BexRestrictionsDto[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, borders, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<BexRestrictionsDto>();\r\n const dtoBorders = borders.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {dtoBorders.map((border) => <th key={border.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} borders={dtoBorders} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { BexRestrictionsDto, GetBexRestrictionsQuery, GetBexRestrictionsResponse } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"bexRestrictions\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"bexRestrictions\",\r\n webUrl: \"bexRestrictions\",\r\n menu: \"menu:menuBexRestrictions\",\r\n title: \"menu:titleBexRestrictions\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetBexRestrictionsResponse>()),\r\n dto: JSON.stringify(keys<BexRestrictionsDto>()),\r\n parameters: JSON.stringify(keys<GetBexRestrictionsQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: BexRestrictionsDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<BexRestrictionsDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetBexRestrictionsResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} borders={applicationState.selectedBorders.filter((f) => f.selected)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import * as React from \"react\";\r\nimport * as i18n from \"i18next\";\r\n\r\nimport BusyOverlay from \"components/busyOverlay\";\r\nimport { Route, Switch } from \"react-router\";\r\nimport NotFound from \"components/notFound\";\r\nimport Navigation from \"./pages/navigation\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport axios from \"axios\";\r\n\r\nimport * as Monitoring from \"core/pages/system/monitoring\";\r\nimport * as MonitoringFailed from \"core/pages/system/monitoringFailed\";\r\nimport * as MonitoringConfig from \"core/pages/system/monitoringConfig\";\r\nimport * as JaoLogin from \"core/pages/system/jaoLogin\";\r\n\r\nimport * as Home from \"core/pages/system/home\";\r\nimport * as Api from \"core/pages/system/api\";\r\n\r\nimport * as ScheduledExchanges from \"core/pages/core/scheduledExchanges\";\r\nimport * as AlphaFactor from \"core/pages/core/alphaFactor\";\r\nimport * as AllocationConstraint from \"core/pages/core/allocationConstraint\";\r\nimport * as Atc from \"core/pages/core/atc\";\r\nimport * as BorderDataOverview from \"core/pages/core/borderDataOverview\";\r\nimport * as CongestionIncome from \"core/pages/core/congestionIncome\";\r\nimport * as CoreMap from \"core/pages/core/coreMap\";\r\nimport * as CoreMarketGraph from \"core/pages/core/coreMarketGraph\";\r\nimport * as CoreMarketView from \"core/pages/core/coreMarketView\";\r\nimport * as Cra from \"core/pages/core/cra\";\r\nimport * as D2CF from \"core/pages/core/d2cf\";\r\nimport * as IntradayAtc from \"core/pages/core/intradayAtc\";\r\nimport * as IntradayNtc from \"core/pages/core/intradayNtc\";\r\nimport * as IntradayImplicitAllocation from \"core/pages/core/intradayImplicitAllocation\";\r\nimport * as Lta from \"core/pages/core/lta\";\r\nimport * as ActiveLtaConstraint from \"core/pages/core/activeLtaConstraint\";\r\nimport * as Ltn from \"core/pages/core/ltn\";\r\nimport * as MaxExchanges from \"core/pages/core/maxExchanges\";\r\nimport * as MaxNetPos from \"core/pages/core/maxNetPos\";\r\nimport * as NetPos from \"core/pages/core/netPos\";\r\nimport * as Pra from \"core/pages/core/pra\";\r\nimport * as PriceSpread from \"core/pages/core/priceSpread\";\r\nimport * as FinalComputation from \"core/pages/core/finalComputation\";\r\nimport * as PreFinalComputation from \"core/pages/core/preFinalComputation\";\r\nimport * as ReferenceNetPosition from \"core/pages/core/referenceNetPosition\"\r\nimport * as Refprog from \"core/pages/core/refprog\";\r\nimport * as ShadowAuctionAtc from \"core/pages/core/shadowAuctionAtc\";\r\nimport * as ShadowPrices from \"core/pages/core/shadowPrices\";\r\nimport * as SpanningDefaultFBP from \"core/pages/core/spanningDefaultFBP\";\r\nimport * as ValidationReductions from \"core/pages/core/validationReductions\";\r\nimport * as InitialComputation from \"core/pages/core/initialComputation\";\r\nimport * as BexRestrictions from \"core/pages/core/bexRestrictions\";\r\n\r\nexport interface ApplicationState {\r\n applicationRoot: string;\r\n apiService: string;\r\n environment: string;\r\n userMail: string;\r\n userRole: string;\r\n userToken: string;\r\n guestToken: string;\r\n changeToken(usermail: string, role: string, newToken: string): void;\r\n selectedDate: Date;\r\n getYearUtcTime(): Date;\r\n getRootUtcTime(): Date;\r\n getUntilFor1Day(): Date;\r\n getUntilFor1Hour(): Date;\r\n getUntilFor1Year(): Date;\r\n setCweTimeForDate(d: Date, h: number, m: number): Date,\r\n getCweTimeForDisplayPurposes(d: Date): Date,\r\n convertCweHourToUtcDate(d: Date): Date;\r\n handleDateChange(d: Date): void;\r\n selectedBorders: MultiSelectItem[];\r\n handleBorderChange(selectedBorder: MultiSelectItem, special: string): void;\r\n handleHubChange(selectedHub: MultiSelectItem, special: string): void;\r\n handleHorizonChange(horizon: string): void;\r\n selectedHubs: MultiSelectItem[];\r\n selectedTsos: MultiSelectItem[];\r\n hubToHubExchange: { [key: string]: { text: string, value: number } };\r\n hubExchange: { [key: string]: { text: string, value: number } };\r\n addHubToHubExchange(borders: MultiSelectItem[]): void;\r\n handleHubToHubExchangeChange(id: string, value: string, ptdfHubs: string[]): void;\r\n hubToHubPosition: { [key: string]: { text: string, value: number } };\r\n addHubToHubPosition(hubs: MultiSelectItem[]): void;\r\n handleHubToHubPositionChange(id: string, value: string): void;\r\n dateSteps: string;\r\n horizon: string;\r\n isBorderEnabled: boolean;\r\n isHubEnabled: boolean;\r\n handleInputAvailablilityChange: (dateSteps: string, borderEnabled: boolean, hubEnabled: boolean, availableColumns: string[]) => void;\r\n pages: Page[];\r\n initialized: boolean;\r\n maxRows: number;\r\n pageSize: number;\r\n}\r\ninterface Page {\r\n config: any;\r\n component: any;\r\n}\r\ninterface Props {\r\n apiService: string;\r\n bearerToken: string;\r\n applicationRoot: string;\r\n username: string;\r\n role: string;\r\n environment: string;\r\n}\r\n\r\nclass App extends React.Component<Props & WithTranslation, ApplicationState> {\r\n\r\n constructor(props: Props & WithTranslation) {\r\n super(props);\r\n\r\n const GetYearUtcTime = () => {\r\n return setCweTime(new Date(this.state.selectedDate.getFullYear(), 0, 1), 0, 0);\r\n }\r\n const GetRootUtcTime = () => {\r\n return setCweTime(getCweTimeForDisplayPurposes(this.state.selectedDate), 0, 0);\r\n }\r\n const GetUntilFor1Day = () => {\r\n const nextDay = new Date(new Date(this.state.selectedDate).setDate(this.state.selectedDate.getDate() + 1));\r\n return setCweTime(getCweTimeForDisplayPurposes(nextDay), 0, 0);\r\n }\r\n const GetUntilFor1Hour = () => {\r\n return new Date(new Date(this.state.selectedDate).setUTCHours(this.state.selectedDate.getUTCHours() + 1));\r\n }\r\n const GetUntilFor1Year = () => {\r\n return setCweTime(new Date(this.state.selectedDate.getFullYear(), 11, 31), 23, 0);;\r\n }\r\n\r\n const setCweTime = (date: Date, hour: number, minute: number) => {\r\n const hourLocalTime = new Date(new Date(date).setHours(hour, minute, 0, 0));\r\n return convertCweHourToUtcDate(hourLocalTime);\r\n }\r\n const convertCweHourToUtcDate = (localDate: Date) => {\r\n //Input = 2022-01-02 00:00:00 +0200 aka 2022-01-01 22:00:00 UTC\r\n //Means = 2022-01-02 00:00:00 +0100 aka 2022-01-01 23:00:00 UTC\r\n //Output = 2022-01-02 01:00:00 +0200 aka 2022-01-01 23:00:00 UTC\r\n\r\n //const isDST = localDate.getTimezoneOffset() == new Date(\"2022-06-06\").getTimezoneOffset();\r\n const oppositeCWETime = getCweTimeForDisplayPurposes(localDate);\r\n const diff = localDate.getTime() - oppositeCWETime.getTime();\r\n return new Date(new Date(localDate).setTime(localDate.getTime() + diff));\r\n }\r\n const getCweTimeForDisplayPurposes = (correctUtcDate: Date) => {\r\n //next use .getFullYear() .getMonth() .getDate() .getHours() .getMinutes() .getSeconds()\r\n\r\n //This logic is also in TDatetime.tsx\r\n return new Date(correctUtcDate.toLocaleString('en-US', { timeZone: 'Europe/Brussels' }));\r\n }\r\n\r\n const nextDay = new Date(new Date().setDate(new Date().getDate() + 1));\r\n const nextDayHourOneCWETime = setCweTime(nextDay, 0, 0);\r\n\r\n axios.interceptors.response.use(undefined, (error) => {\r\n const expectedError =\r\n error.response &&\r\n error.response.status >= 400 &&\r\n error.response.status < 500;\r\n\r\n if (!expectedError) {\r\n (async function runAsync() {\r\n await httpService.logError(props.applicationRoot, \"MAIN\", error.response);\r\n })();\r\n }\r\n\r\n return Promise.reject(error);\r\n });\r\n\r\n this.state = {\r\n applicationRoot: props.applicationRoot,\r\n apiService: props.apiService,\r\n environment: props.environment,\r\n userMail: props.username,\r\n userRole: props.role,\r\n userToken: props.bearerToken,\r\n guestToken: props.bearerToken,\r\n changeToken: this.handleTokenChange,\r\n selectedDate: nextDayHourOneCWETime, //can be overwritten in componentDidMount\r\n getYearUtcTime: GetYearUtcTime,\r\n getRootUtcTime: GetRootUtcTime,\r\n getUntilFor1Day: GetUntilFor1Day,\r\n getUntilFor1Hour: GetUntilFor1Hour,\r\n getUntilFor1Year: GetUntilFor1Year,\r\n setCweTimeForDate: setCweTime,\r\n convertCweHourToUtcDate: convertCweHourToUtcDate,\r\n getCweTimeForDisplayPurposes: getCweTimeForDisplayPurposes,\r\n handleDateChange: this.handleDateChange,\r\n selectedBorders: [],\r\n handleBorderChange: this.handleBorderChange,\r\n handleHubChange: this.handleHubChange,\r\n handleHorizonChange: this.handleHorizonChange,\r\n selectedHubs: [],\r\n selectedTsos: [],\r\n hubToHubExchange: {},\r\n hubExchange: {},\r\n addHubToHubExchange: this.addHubToHubExchange,\r\n handleHubToHubExchangeChange: this.handleHubToHubExchangeChange,\r\n hubToHubPosition: {},\r\n addHubToHubPosition: this.addHubToHubPosition,\r\n handleHubToHubPositionChange: this.handleHubToHubPositionChange,\r\n dateSteps: \"H\",\r\n horizon: \"\",\r\n isBorderEnabled: true,\r\n isHubEnabled: true,\r\n initialized: false,\r\n maxRows: 100,\r\n pageSize: 1000,\r\n handleInputAvailablilityChange: this.handleInputAvailablilityChange,\r\n pages: [\r\n //HOME SHOULD BE FIRST ONE! (that is the default one)\r\n //This is the order how they are shown on the left\r\n { config: Home.page_config, component: () => <Home.default applicationState={this.state} /> },\r\n { config: Monitoring.page_config, component: () => <Monitoring.default applicationState={this.state} /> },\r\n { config: MonitoringFailed.page_config, component: () => <MonitoringFailed.default applicationState={this.state} /> },\r\n { config: JaoLogin.page_config, component: () => <JaoLogin.default applicationState={this.state} /> },\r\n { config: MonitoringConfig.page_config, component: () => <MonitoringConfig.default applicationState={this.state} /> },\r\n { config: Api.page_config, component: () => <Api.default applicationState={this.state} /> },\r\n\r\n { config: CoreMarketView.page_config, component: () => <CoreMarketView.default applicationState={this.state} /> },\r\n { config: CoreMarketGraph.page_config, component: () => <CoreMarketGraph.default applicationState={this.state} /> },\r\n { config: CoreMap.page_config, component: () => <CoreMap.default applicationState={this.state} /> },\r\n { config: BorderDataOverview.page_config, component: () => <BorderDataOverview.default applicationState={this.state} /> },\r\n { config: MaxNetPos.page_config, component: () => <MaxNetPos.default applicationState={this.state} /> },\r\n { config: MaxExchanges.page_config, component: () => <MaxExchanges.default applicationState={this.state} /> },\r\n { config: InitialComputation.page_config, component: () => <InitialComputation.default applicationState={this.state} /> },\r\n { config: Pra.page_config, component: () => <Pra.default applicationState={this.state} /> },\r\n { config: Cra.page_config, component: () => <Cra.default applicationState={this.state} /> },\r\n { config: ValidationReductions.page_config, component: () => <ValidationReductions.default applicationState={this.state} /> },\r\n { config: PreFinalComputation.page_config, component: () => <PreFinalComputation.default applicationState={this.state} /> },\r\n { config: Ltn.page_config, component: () => <Ltn.default applicationState={this.state} /> },\r\n { config: FinalComputation.page_config, component: () => <FinalComputation.default applicationState={this.state} /> },\r\n { config: Lta.page_config, component: () => <Lta.default applicationState={this.state} /> },\r\n { config: BexRestrictions.page_config, component: () => <BexRestrictions.default applicationState={this.state} /> },\r\n { config: AllocationConstraint.page_config, component: () => <AllocationConstraint.default applicationState={this.state} /> },\r\n { config: D2CF.page_config, component: () => <D2CF.default applicationState={this.state} /> },\r\n { config: Refprog.page_config, component: () => <Refprog.default applicationState={this.state} /> },\r\n { config: ReferenceNetPosition.page_config, component: () => <ReferenceNetPosition.default applicationState={this.state} /> },\r\n { config: Atc.page_config, component: () => <Atc.default applicationState={this.state} /> },\r\n { config: ShadowAuctionAtc.page_config, component: () => <ShadowAuctionAtc.default applicationState={this.state} /> },\r\n { config: ShadowPrices.page_config, component: () => <ShadowPrices.default applicationState={this.state} /> },\r\n //{ config: ActiveLtaConstraint.page_config, component: () => <ActiveLtaConstraint.default applicationState={this.state} /> },\r\n { config: CongestionIncome.page_config, component: () => <CongestionIncome.default applicationState={this.state} /> },\r\n { config: ScheduledExchanges.page_config, component: () => <ScheduledExchanges.default applicationState={this.state} /> },\r\n { config: NetPos.page_config, component: () => <NetPos.default applicationState={this.state} /> },\r\n { config: IntradayAtc.page_config, component: () => <IntradayAtc.default applicationState={this.state} /> },\r\n { config: IntradayNtc.page_config, component: () => <IntradayNtc.default applicationState={this.state} /> },\r\n { config: PriceSpread.page_config, component: () => <PriceSpread.default applicationState={this.state} /> },\r\n { config: SpanningDefaultFBP.page_config, component: () => <SpanningDefaultFBP.default applicationState={this.state} /> },\r\n { config: AlphaFactor.page_config, component: () => <AlphaFactor.default applicationState={this.state} /> },\r\n\r\n //{ config: IntradayImplicitAllocation.page_config, component: () => <IntradayImplicitAllocation.default applicationState={this.state} /> },\r\n ],\r\n };\r\n\r\n };\r\n\r\n getDateFromUrl = () => {\r\n const queryString = window.location.search;\r\n\r\n const cweDateString = /cwe=(\\d{4})-(\\d{2})-(\\d{2})_(\\d{2}):(\\d{2})/i.exec(queryString);\r\n if (cweDateString != null) {\r\n const d = new Date(+cweDateString[1], +cweDateString[2] - 1, +cweDateString[3]);\r\n return this.state.setCweTimeForDate(d, +cweDateString[4], +cweDateString[5]);\r\n }\r\n\r\n const utcDateString = /utc=(\\d{4})-(\\d{2})-(\\d{2})_(\\d{2}):(\\d{2})/i.exec(queryString);\r\n if (utcDateString != null) {\r\n const d = new Date(+utcDateString[1], +utcDateString[2] - 1, +utcDateString[3], 12, 0); //hour 12 to make sure it is in the next day\r\n return new Date(d.setUTCHours(+utcDateString[4]));\r\n }\r\n return null;\r\n };\r\n\r\n componentDidMount() {\r\n\r\n //const { pathname } = useLocation();\r\n const pathName = window.location.pathname; // = pathname; -> but useLocation() fails\r\n this.setState({ horizon: pathName.includes(\"ID2_\") ? \"ID2\" : pathName.includes(\"ID3_\") ? \"ID3\" : \"ID1\" });\r\n\r\n const stateSavedOn = localStorage.getItem('lastSavedOn');\r\n if (stateSavedOn != null) {\r\n const diffInSeconds = (new Date().getTime() - new Date(stateSavedOn).getTime()) / 1000;\r\n if (diffInSeconds < 3600) { //onehour\r\n const savedSelectedDate = localStorage.getItem('selectedDate');\r\n if (savedSelectedDate != null) {\r\n this.setState({ selectedDate: new Date(savedSelectedDate) });\r\n }\r\n\r\n const savedSelectedBorders = localStorage.getItem('selectedBorders');\r\n if (savedSelectedBorders != null) {\r\n const savedBorders: any = JSON.parse(savedSelectedBorders);\r\n this.setState({ selectedBorders: savedBorders });\r\n }\r\n\r\n const savedSelectedHubs = localStorage.getItem('selectedHubs');\r\n if (savedSelectedHubs != null) {\r\n const savedHubs: any = JSON.parse(savedSelectedHubs);\r\n this.setState({ selectedHubs: savedHubs });\r\n }\r\n }\r\n }\r\n\r\n const dateInUrl = this.getDateFromUrl();\r\n if (dateInUrl != null) {\r\n this.setState({ selectedDate: new Date(dateInUrl) });\r\n history.pushState(\"\", \"\", window.location.href.replace(location.search, \"\"));\r\n }\r\n\r\n i18n.default.loadNamespaces(\r\n [\"menu\", \"common\", \"common_tsos\", \"common_borders\", \"common_hubs\", \"common_country\"],\r\n () => { // LOAD COMMON TRANSLATION FILES\r\n\r\n const allBorderTranslations = i18n.default.getResourceBundle(\"en\", \"common_borders\");\r\n this.setState({\r\n selectedBorders: Object.keys(allBorderTranslations)\r\n .filter((value, index, self) => self.indexOf(value) === index) // =distinct\r\n .map((k) => {\r\n return {\r\n id: k,\r\n text: allBorderTranslations[k],\r\n selected: true,\r\n isDisplayed: true\r\n };\r\n }).sort((a, b) => a.id.localeCompare(b.id))\r\n });\r\n\r\n const allHubTranslations = i18n.default.getResourceBundle(\"en\", \"common_hubs\");\r\n this.setState({\r\n selectedHubs: Object.keys(allHubTranslations).map((k) => {\r\n return {\r\n id: k,\r\n text: allHubTranslations[k],\r\n selected: true,\r\n isDisplayed: true\r\n };\r\n }).sort((a, b) => a.id.localeCompare(b.id))\r\n });\r\n\r\n const allTsoTranslations = i18n.default.getResourceBundle(\"en\", \"common_tsos\");\r\n this.setState({\r\n selectedTsos: Object.keys(allTsoTranslations).map((k) => {\r\n return {\r\n id: k,\r\n text: allTsoTranslations[k],\r\n selected: true,\r\n isDisplayed: true\r\n };\r\n })\r\n });\r\n\r\n this.setState({\r\n initialized: true\r\n });\r\n });\r\n }\r\n\r\n handleTokenChange = (userMail: string, userRole: string, userToken: string) => {\r\n this.setState({ userMail, userRole, userToken });\r\n }\r\n\r\n handleDateChange = (selectedDate: Date) => {\r\n this.setState({ selectedDate });\r\n localStorage.setItem('selectedDate', selectedDate.toISOString());\r\n localStorage.setItem('lastSavedOn', new Date().toISOString());\r\n }\r\n\r\n handleInputAvailablilityChange = (dateSteps: string, borderEnabled: boolean, hubEnabled: boolean, availableColumns: string[]) => {\r\n this.setState({\r\n dateSteps: dateSteps,\r\n isBorderEnabled: borderEnabled,\r\n isHubEnabled: hubEnabled,\r\n selectedBorders:\r\n [\r\n ...this.state.selectedBorders,\r\n ...availableColumns\r\n .filter((value, index, self) => self.indexOf(value) === index) // =distinct\r\n .filter(k => k.toLowerCase().startsWith(\"border_\") && this.state.selectedBorders.filter(s => s.id.toLowerCase() === k.toLowerCase().replace(\"border_\", \"\")).length === 0)\r\n .map((key) => {\r\n return {\r\n isDisplayed: false,\r\n id: key.toLowerCase().replace(\"border_\", \"\").toUpperCase(),\r\n text: key.toLowerCase().replace(\"border_\", \"\").replace(\"_\", \"►\").toUpperCase(),\r\n selected: true\r\n };\r\n })\r\n ]\r\n .map((item) => {\r\n return { ...item, isDisplayed: availableColumns.length !== 0 && availableColumns.filter(f => f.toLowerCase() === item.id.toLowerCase() || f.toLowerCase() === \"border_\" + item.id.toLowerCase() || f.toLowerCase() === \"initial_\" + item.id.toLowerCase() || f.toLowerCase() === \"bilateral_ID1_\" + item.id.toLowerCase()).length > 0 };\r\n }).sort((a, b) => a.id.localeCompare(b.id)) // ascending\r\n ,\r\n selectedHubs:\r\n [\r\n ...this.state.selectedHubs,\r\n ...availableColumns\r\n .filter((value, index, self) => self.indexOf(value) === index) // =distinct\r\n .filter(k => k.toLowerCase().startsWith(\"hub_\") && this.state.selectedHubs.filter(s => s.id.toLowerCase() === k.toLowerCase().replace(\"hub_\", \"\")).length === 0)\r\n .map((key) => {\r\n return {\r\n isDisplayed: false,\r\n id: key.toLowerCase().replace(\"hub_\", \"\").toUpperCase(),\r\n text: key.toLowerCase().replace(\"hub_\", \"\").toUpperCase(),\r\n selected: true\r\n };\r\n })\r\n ]\r\n .map((item) => {\r\n return { ...item, isDisplayed: availableColumns.length !== 0 && availableColumns.filter(f => f.toLowerCase() === \"hub_\" + item.id.toLowerCase() || f.toLowerCase() === \"min\" + item.id.toLowerCase() || f.toLowerCase() === \"generation_\" + item.id.toLowerCase()).length > 0 };\r\n }).sort((a, b) => a.id.localeCompare(b.id)) // ascending\r\n ,\r\n selectedTsos:\r\n [\r\n ...this.state.selectedTsos,\r\n ...availableColumns\r\n .filter((value, index, self) => self.indexOf(value) === index) // =distinct\r\n .filter(k => k.toLowerCase().startsWith(\"tso_\") && this.state.selectedTsos.filter(s => s.id.toLowerCase() === k.toLowerCase().replace(\"tso_\", \"\")).length === 0)\r\n .map((key) => {\r\n return {\r\n isDisplayed: false,\r\n id: key.replace(\"tso_\", \"\"),\r\n text: key.replace(\"tso_\", \"\"),\r\n selected: true\r\n };\r\n })\r\n ]\r\n .map((item) => {\r\n return { ...item, isDisplayed: availableColumns.length !== 0 && availableColumns.filter(f => f.toLowerCase() === \"tso_\" + item.id.toLowerCase()).length > 0 };\r\n }).sort((a, b) => a.id.localeCompare(b.id)) // ascending\r\n\r\n });\r\n }\r\n\r\n handleBorderChange = (selectedBorder: MultiSelectItem, special: string) => {\r\n const newList = this.state.selectedBorders.map((item) => {\r\n if (special === \"ALL\") {\r\n return { ...item, selected: true };\r\n }\r\n if (special === \"NONE\") {\r\n return { ...item, selected: false };\r\n }\r\n if (item.id === selectedBorder.id) {\r\n return { ...item, selected: !item.selected };\r\n }\r\n return item;\r\n });\r\n this.setState({ selectedBorders: newList });\r\n localStorage.setItem('selectedBorders', JSON.stringify(newList));\r\n localStorage.setItem('lastSavedOn', new Date().toISOString());\r\n }\r\n\r\n handleHubChange = (selectedHub: MultiSelectItem, special: string) => {\r\n const newList = this.state.selectedHubs.map((item) => {\r\n if (special === \"ALL\") {\r\n return { ...item, selected: true };\r\n }\r\n if (special === \"NONE\") {\r\n return { ...item, selected: false };\r\n }\r\n if (item.id === selectedHub.id) {\r\n return { ...item, selected: !item.selected };\r\n }\r\n return item;\r\n });\r\n this.setState({ selectedHubs: newList });\r\n localStorage.setItem('selectedHubs', JSON.stringify(newList));\r\n localStorage.setItem('lastSavedOn', new Date().toISOString());\r\n }\r\n\r\n handleHorizonChange = (horizon: string) => {\r\n this.setState({ horizon: horizon });\r\n }\r\n\r\n addHubToHubExchange = (borders: MultiSelectItem[]) => {\r\n this.setState({\r\n hubToHubExchange: Object.assign({}, ...borders.map((border) => ({ [border.id]: { text: \"0\", value: 0 } }))),\r\n });\r\n }\r\n addHubToHubPosition = (hubs: MultiSelectItem[]) => {\r\n this.setState({\r\n hubToHubPosition: Object.assign({}, ...hubs.map((hub) => ({ [hub.id]: { text: \"0\", value: 0 } }))),\r\n });\r\n }\r\n handleHubToHubExchangeChange = (id: string, value: string, ptdfHubs: string[]) => {\r\n const copy = { ...this.state.hubToHubExchange };\r\n copy[id] = { text: value, value: parseFloat(value) };\r\n this.setState({ hubToHubExchange: copy });\r\n }\r\n handleHubToHubPositionChange = (id: string, value: string) => {\r\n const copy = { ...this.state.hubToHubPosition };\r\n copy[id] = { text: value, value: parseFloat(value) };\r\n this.setState({ hubToHubPosition: copy });\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{ display: \"grid\", gridTemplateColumns: \"225px auto\", height: \"100%\" }}>\r\n {!this.state.initialized\r\n ? <div></div>\r\n : <Navigation applicationState={this.state} />\r\n }\r\n <div style={{ overflow: \"auto\", display: \"flex\", flexDirection: \"column\" }}>\r\n <React.Suspense fallback={<BusyOverlay />}>\r\n {!this.state.initialized\r\n ? <div></div>\r\n : <Switch>\r\n {this.state.pages.map(p => <Route key={p.config.webUrl} path={\"/\" + p.config.webUrl} exact={true} component={p.component} />)}\r\n <Route path=\"/\" exact={true} component={this.state.pages[0].component} />\r\n <Route component={NotFound} />\r\n </Switch>\r\n }\r\n </React.Suspense>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(App);\r\n","require(\"./main.scss\");\r\n\r\nimport * as React from \"react\";\r\n\r\ninterface OwnProps {\r\n}\r\n\r\nconst Main: React.FunctionComponent<OwnProps> = ({ children }) => {\r\n React.useEffect(() => {\r\n }, []);\r\n\r\n return (\r\n <>\r\n <>{children}</>\r\n </>\r\n );\r\n};\r\n\r\nexport default Main;","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport * as i18n from \"i18n\";\r\n\r\nimport BusyOverlay from \"components/busyOverlay\";\r\nimport App from \"./app\";\r\nimport Shell from \"core/infrastructure/shell\";\r\nimport { config } from \"@fortawesome/fontawesome-svg-core\";\r\n\r\ninterface Configuration {\r\n applicationRoot: string;\r\n scriptsRoot: string;\r\n apiService: string;\r\n requestVerificationToken: string;\r\n bearerToken: string;\r\n username: string;\r\n role: string;\r\n environment: string;\r\n}\r\n\r\nexport default (el: Element, configuration: Configuration) => {\r\n __webpack_public_path__ = configuration.scriptsRoot; // needed for chunk loading\r\n\r\n axios.defaults.headers.common[\"X-Requested-With\"] = \"XMLHttpRequest\";\r\n axios.defaults.headers.common[\"RequestVerificationToken\"] = configuration.requestVerificationToken;\r\n //TODO axios.defaults.headers.common[\"Authorization\"] = \"Bearer ...\";\r\n\r\n axios.interceptors.response.use(\r\n response => response,\r\n error => Promise.reject(error)\r\n );\r\n\r\n i18n.init(configuration.scriptsRoot, [\"common\"]);\r\n\r\n const container =\r\n <React.Suspense fallback={<BusyOverlay />}>\r\n <Shell>\r\n <BrowserRouter basename={configuration.applicationRoot}>\r\n <App applicationRoot={configuration.applicationRoot}\r\n apiService={configuration.apiService}\r\n bearerToken={configuration.bearerToken}\r\n username={configuration.username}\r\n role={configuration.role}\r\n environment={configuration.environment} />\r\n </BrowserRouter>\r\n </Shell>\r\n </React.Suspense>;\r\n\r\n ReactDOM.render(container, el);\r\n};","import * as i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\nimport * as i18nextXHR from \"i18next-xhr-backend\";\r\n\r\nexport const init = (frontEndUrl: string, bundleNames: string[]) => {\r\n if (i18n.default.isInitialized) return;\r\n\r\n i18n.default\r\n .use(i18nextXHR.default)\r\n .use(initReactI18next)\r\n .init({\r\n fallbackLng: \"en\",\r\n\r\n ns: bundleNames,\r\n defaultNS: bundleNames[0],\r\n\r\n debug: false,\r\n\r\n keySeparator: false,\r\n\r\n interpolation: {\r\n escapeValue: false, // not needed for react\r\n formatSeparator: \",\",\r\n },\r\n\r\n react: {\r\n // note: don't set this to 'true' => needed for positioning of popups\r\n wait: false,\r\n },\r\n\r\n backend: {\r\n loadPath:\r\n frontEndUrl +\r\n \"locales/{{lng}}/{{ns}}.json?\" +\r\n BUNDLEBUILDTIME,\r\n crossDomain: true,\r\n },\r\n });\r\n};\r\n"],"sourceRoot":""}