{"version":3,"sources":["webpack://[name]/webpack/universalModuleDefinition","webpack://[name]/webpack/bootstrap","webpack://[name]/./src/core/pages/core/api/api.module.scss","webpack://[name]/./src/components/TDatetime.tsx","webpack://[name]/./src/core/pages/system/monitoring/monitoring.module.scss","webpack://[name]/./src/components/borderName.tsx","webpack://[name]/./src/core/pages/core/coreMap/coreMap.module.scss","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/intradayImplicitAllocation/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/initialComputation/row.tsx","webpack://[name]/./src/core/pages/core/bexRestrictions/row.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/checkIcon.tsx","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/core/pages/core/api/login.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/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/jaoLogin/index.tsx","webpack://[name]/./src/core/pages/core/home/index.tsx","webpack://[name]/./src/components/select.tsx","webpack://[name]/./src/core/pages/core/api/tab_curl.tsx","webpack://[name]/./src/core/pages/core/api/tab_tryout.tsx","webpack://[name]/./src/core/pages/core/api/tab_request.tsx","webpack://[name]/./src/core/pages/core/api/tab_response.tsx","webpack://[name]/./src/core/pages/core/api/tab_token.tsx","webpack://[name]/./src/core/pages/core/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/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/intradayImplicitAllocation/list.tsx","webpack://[name]/./src/core/pages/core/intradayImplicitAllocation/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/multiSelectField.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/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/row.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","style","whiteSpace","display","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","translated","text","disabled","dangerouslySetInnerHTML","__html","replace","Row","dto","borders","Date","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","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","apiGet","route","apiService","query","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","color","interceptors","use","undefined","status","logError","Promise","reject","source","CancelToken","applicationRoot","code","url","post","reference","message","apiPost","headers","userToken","isCancel","cancel","responseError","statusCode","errorDetail","cancelToken","token","Authorization","apiDownload","alert","link","document","createElement","href","downloadUrl","setAttribute","fileName","body","appendChild","click","removeChild","apiTest","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","classNameDropDown","dropdownmenu","classNameSearch","displayedItems","selectedItems","selected","tag","onFocus","placeholder","dropdownitem","notselected","onMouseDown","toLowerCase","to","activeClassName","active","menuItem","menuIcon","isCnecInfo","cnecDisabledBefore","setHours","useEffect","getTime","rootDate","getTwoDigits","val","getHourRange","getTimezoneOffset","setUTCHours","getUTCHours","dayLightSaveCheck","list","newDate","getDay","Error","loadAllHours","isDisabled","toUTCString","pageList","availableDates","setAvailableDates","setPagePath","path","location","pathname","http","Page","gridTemplateRows","backgroundColor","zIndex","subTitle","marginLeft","isDateEnabled","arrow","arrowLeft","handleDateChange","setDate","arrowRight","locale","placeholderText","dateFormat","isClearable","fixedHeight","todayButton","highlightDates","isHourEnabled","isHubEnabled","handleHubChange","isBorderEnabled","handleBorderChange","marginTop","fontSize","fontWeight","userRole","overflowY","overflow","marginRight","paddingLeft","props","setScrollPosition","noDataMessage","dataRows","flex","onScroll","scrollTop","scrollLeft","cloneElement","children","isLoading","loading","nodata","formats","startDate","setStartDate","endDate","setEndDate","showWait","setShowPleaseWait","setError","pageButton","start","marginBottom","selectsStart","showTimeSelect","timeIntervals","timeFormat","selectsEnd","minDate","popupButton","fileType","branch","from","until","res","showDownload","downloadFormats","showTestData","disclaimer","verticalAlign","businessDayUtc","page","pending","received","expected","spanning","followUpActionInitiated","Math","findIndex","setData","setLoading","handleInputAvailablilityChange","selectableTabs","TDatetime","userName","setUserName","password","setPassword","container","onSubmit","userMail","changeToken","guestToken","htmlFor","submitButton","username","reload","textDecoration","Trans","defaults","components","italic","bold","paragraph","selectedItem","selectedEndpoint","jsonStyle","setResponse","skip","setSkip","take","setTake","setPresolved","getQueryRequest","parametersSearch","JSON","parse","parameters","forEach","stringify","contingency","getQueryString","UtcDateInput","ref","parameter","handleNumChange","numStr","setNum","num","parseInt","isNaN","doRequest","api","resp","statusText","customInput","timeCaption","paddingTop","selectableBorder","tabButton","theme","setUserMail","Email","rejected","messages","join","email","role","main","string","boolean","apis","apiType","setEndpoint","selectedTab","setSelectedTab","baseUrl","host","marginDiv","maxWidth","json","keysInDto","some","scheduledExchanges","allocationConstraint","atc","dates","k","self","indexOf","selectedBorder","setSelectedBorder","setAtcData","setQtyData","setPsData","setCiData","setLtnData","setSAtcData","setIAtcData","setDates","all","priceSpread","congestionIncome","ltn","shadowAuctionAtc","intradayAtc","titleTop","selectedTsos","dtoKeys","elementHeight","cardStyle","elementWidth","row","col","country","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","setMaxNetPosData","maxExchangesData","setMaxExchangesData","loadedDate","setLoadedDate","maxNetPos","maxExchanges","initialized","isCore","isCwe","setSelectedHubs","selectableHubs","newList","dtoHubKeys","dtoBorderKeys","cra","filteredData","maxRows","dtoHubs","dtoTsos","keyss","d2CF","deltaBorderNames","intradayNtc","intradayImplicitAllocation","lta","netPos","baseline","afterNrao","pra","pageCount","currentPage","onPageClick","containerClassName","forcePage","onPageChange","breakClassName","pageClassName","previousClassName","nextClassName","pageLinkClassName","previousLinkClassName","nextLinkClassName","breakLabel","disabledClassName","nextLabel","previousLabel","marginPagesDisplayed","pageRangeDisplayed","setValue","setReset","clearValue","options","multiselectRef","createRef","current","resetSelectedValues","onSelect","v","eic","onRemove","showCheckbox","closeOnSelect","showArrow","avoidHighlightFirstOption","displayValue","default_tsos","Amprion","Apg","Ceps","Eles","Elia","Hops","Mavir","Pse","Rte","Seps","TennetBv","TransnetBw","TennetGmbh","Transelectrica","default_hubs","AT","BE","CZ","DE","FR","HU","HR","NL","PL","RO","SI","SK","option","reset","entries","setOptionValue","initialSearchFields","searchFields","searchOptions","setSearchOptions","onClosing","getElementsByClassName","onOpen","trigger","collapsible","searchLabel","collapsibleArrow","field","borderTop","getElementById","totalRows","totalRowsWithFilter","initialResponse","lastModifiedOn","appliedFilter","pageNumber","setPageNumber","Search","Skip","Take","count","availableDtoHubs","referenceNetPosition","refprog","searchText","setSearchText","computation","spanningDefaultFBP","toLocaleUpperCase","tsoName","isReturnedBranch","validationReductions","bexRestrictions","handleTokenChange","localStorage","setItem","dateEnabled","hourEnabled","borderEnabled","hubEnabled","availableColumns","special","selectedHub","assign","ptdfHubs","copy","bearerToken","hubExchange","pages","monitoring","monitoringFailed","jaoLogin","core","home","borderDataOverview","coreMap","coreMarketGraph","coreMarketView","d2cf","finalComputation","preFinalComputation","shadowPrices","initialComputation","componentDidUpdate","componentDidMount","stateSavedOn","getItem","savedSelectedDate","this","savedSelectedBorders","savedBorders","savedSelectedHubs","savedHubs","loadNamespaces","render","gridTemplateColumns","flexDirection","fallback","exact","component","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([434,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"json\":\"json_-PK7cjTeYf\",\"selectableBorder\":\"selectableBorder__jAtfE3c1t\",\"selected\":\"selected_vLMFXWaWrs\",\"marginDiv\":\"marginDiv_1-h95r55L3\",\"maxWidth\":\"maxWidth_39lafQiRtg\",\"get\":\"get_2ZGdbcUZiG\",\"parameter\":\"parameter_zAwrdJ9JIb\",\"loading\":\"loading_3FcH9DOjpM\",\"tabButton\":\"tabButton_1FlJMiD7dx\"};","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 \r\n {date.getFullYear() + \"-\" + (\"0\" + (date.getMonth() + 1)).slice(-2) + \"-\" + (\"0\" + (date.getDate())).slice(-2)}\r\n \r\n {(\"0\" + (date.getHours())).slice(-2) + \":\" + (\"0\" + (date.getMinutes())).slice(-2) + \":\" + (\"0\" + (date.getSeconds())).slice(-2)}\r\n ;\r\n\r\nexport default TDatetime;","// 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\"};","import * as React from \"react\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\ninterface Props {\r\n text: string;\r\n disabled?: boolean;\r\n}\r\n\r\nconst BorderName = ({ text, disabled, t }: Props & WithTranslation) =>\r\n $1`) }} />;\r\n\r\nconst translated = withTranslation()(BorderName);\r\nexport default translated;","// 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\"};","// 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/core\";\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/core\";\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/core\";\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/core\";\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/core\";\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, useContext } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport { MaxNetPosDto, MaxExchangesDto } from \"core/backend/core\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\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/core\";\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.apiGet({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/checkVolume/index\",\r\n query: {\r\n Date: 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.apiGet({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/checkVolume/index\",\r\n query: {\r\n Date: 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/core\";\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/core\";\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/core\";\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/core\";\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 { IntradayImplicitAllocationDto } from \"core/backend/core\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: IntradayImplicitAllocationDto;\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, index) => {eval(\"dto.bilateral_IDA1_\" + border.id.toUpperCase())})}\r\n {borders.map((border, index) => {eval(\"dto.bilateral_IDA2_\" + border.id.toUpperCase())})}\r\n {borders.map((border, index) => {eval(\"dto.priceSpread_IDA1_\" + border.id.toUpperCase())})}\r\n {borders.map((border, index) => {eval(\"dto.priceSpread_IDA2_\" + border.id.toUpperCase())})}\r\n {borders.map((border, index) => {eval(\"dto.grossCI_IDA1_\" + border.id.toUpperCase())})}\r\n {borders.map((border, index) => {eval(\"dto.grossCI_IDA2_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { LtaDto } from \"core/backend/core\";\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/core\";\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/core\";\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/core\";\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/core\";\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/core\";\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/core\";\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/core\";\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/core\";\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/core\";\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/core\";\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/core\";\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 { InitialComputationDto } from \"core/backend/core\";\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/core\";\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;","// 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 = {\"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\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuItem\":\"menuItem_2baN04_isw\",\"menuIcon\":\"menuIcon_1v3AMujvZc\",\"active\":\"active_2IqszgbN8n\"};","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 = {\"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\naxios.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 logError(\"/core/\", \"MAIN\", error.response); //TODO don't hardcode \"/core/\"\r\n // alert(\"An unexpected error occured.\");\r\n }\r\n\r\n return Promise.reject(error);\r\n});\r\n\r\nlet source = axios.CancelToken.source();\r\n\r\nexport const apiDownload = (message: ApiGet) => async () : Promise => {\r\n let url = \"\" + message.route;\r\n\r\n if (message.query)\r\n url =\r\n url +\r\n \"?\" +\r\n queryString.stringify(message.query as { [name: string]: any });\r\n\r\n let response = undefined;\r\n try {\r\n response = await axios.get(url, {\r\n cancelToken: source.token,\r\n headers: {\r\n Authorization:\r\n \"Bearer \" + message.applicationState.userToken,\r\n },\r\n });\r\n if (response === undefined) alert(\"UNDEFINED\");\r\n if (response.data === undefined) alert(\"UNDEFINED2\");\r\n const link = document.createElement(\"a\");\r\n link.href = response?.data?.downloadUrl;\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 return \"\";\r\n } catch (e) {\r\n let error = (e as any);\r\n let errorMessage: string =\r\n error.message === \"Request failed with status code 500\"\r\n ? \"There was an internal error at JAO, please try again.\"// (error.response?.data?.message??\"\")\r\n : error.message;\r\n const responseError = error.response.data;\r\n const statusCode = error.response.status;\r\n // TODO SHOW ERROR POPUP\r\n if (responseError != null && responseError.message != null) errorMessage = responseError.message;\r\n logError(message.applicationState.applicationRoot, statusCode, responseError);\r\n return errorMessage;\r\n }\r\n};\r\nexport const apiTest = (message: ApiGet) => async (): Promise<\r\n AxiosResponse\r\n> => {\r\n let url = \"\" + message.route;\r\n\r\n // TODO source && source.cancel(\"Operation canceled due to new request.\");\r\n source = axios.CancelToken.source();\r\n\r\n if (message.query)\r\n url =\r\n url +\r\n \"?\" +\r\n queryString.stringify(message.query as { [name: string]: any });\r\n try {\r\n return await axios.get(url, {\r\n cancelToken: source.token,\r\n headers: {\r\n Authorization:\r\n \"Bearer \" + message.applicationState.userToken,\r\n },\r\n });\r\n } catch (e) {\r\n let error = (e as any);\r\n const errorMessage: string =\r\n error.message === \"Request failed with status code 500\"\r\n ? \"There was an internal error at JAO, please try again.\"// (error.response?.data?.message??\"\")\r\n : error.message;\r\n const responseError = error.response.data;\r\n const statusCode = error.response.status;\r\n logError(message.applicationState.applicationRoot, statusCode, responseError);\r\n // TODO SHOW ERROR POPUP\r\n return error.response;\r\n }\r\n};\r\n\r\n\r\nexport const apiGet = (message: ApiGet) => async (): Promise<\r\n Response\r\n> => {\r\n let url = \"\" + message.route;\r\n\r\n // TODO source && source.cancel(\"Operation canceled due to new request.\");\r\n source = axios.CancelToken.source();\r\n\r\n if (message.query)\r\n url =\r\n url +\r\n \"?\" +\r\n queryString.stringify(message.query as { [name: string]: any });\r\n \r\n let response = undefined;\r\n try {\r\n response = await axios.get(url, {\r\n cancelToken: source.token,\r\n headers: {\r\n Authorization:\r\n \"Bearer \" + message.applicationState.userToken,\r\n },\r\n });\r\n } catch (e) {\r\n let error = (e as any);\r\n \r\n if (axios.isCancel(error)) {\r\n return {\r\n cancel: true,\r\n ok: false,\r\n data: {} as TResponse,\r\n };\r\n }\r\n\r\n const errorMessage: string =\r\n error.message === \"Request failed with status code 500\" ? \"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 const responseError = error.response.data;\r\n const statusCode = error.response.status;\r\n logError(message.applicationState.applicationRoot, statusCode, responseError);\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 } finally {\r\n }\r\n return {\r\n ok: response.status === 200,\r\n data: response.data,\r\n };\r\n};\r\n\r\nexport const apiPost = (message: ApiPost) => async (): Promise => {\r\n source = axios.CancelToken.source();\r\n let response = undefined;\r\n try {\r\n const headers = { \"Authorization\": \"Bearer \" + message.applicationState.userToken };\r\n response = await axios.post(message.route, message.query, { headers });\r\n } catch (e) {\r\n let error = (e as any);\r\n if (axios.isCancel(error)) {\r\n return {\r\n cancel: true,\r\n ok: false\r\n };\r\n }\r\n const errorMessage: string =\r\n error.message === \"Request failed with status code 500\" ? \"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 const responseError = error.response.data;\r\n const statusCode = error.response.status;\r\n logError(message.applicationState.applicationRoot, statusCode, responseError);\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 } finally {\r\n }\r\n return {\r\n ok: response.status === 200,\r\n data: response.data,\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\nexport default {\r\n apiPost: apiPost,\r\n apiGet: apiGet,\r\n logError: logError,\r\n apiDownload: apiDownload,\r\n apiTest: apiTest,\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 = {\"container\":\"container_1IDtZ8scOr\",\"submitButton\":\"submitButton_2H-DkmeABX\",\"title\":\"title_3x189uHRpg\",\"error\":\"error_3PRN5qSStY\"};","// 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\n\r\nimport { default as React, useState } from \"react\";\r\nimport classnames from \"classnames\";\r\n\r\nexport interface MultiSelectItem {\r\n id: string;\r\n text: string;\r\n selected: boolean;\r\n isCwe: boolean;\r\n isCore: 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 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={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\n\r\nexport interface TimePickerItem {\r\n date: Date;\r\n text: string;\r\n}\r\ninterface Props {\r\n selectedDate: Date;\r\n enabled: boolean;\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 = ({ enabled, selectedDate, onChange }: Props & DispatchProps) => {\r\n const initialState: State = { open: false };\r\n const [state, setState] = useState(initialState);\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 const isDisabled = isCnecInfo && item.date.getTime() < cnecDisabledBefore;\r\n const className = classnames(s.dropdownitem\r\n , selectedDate.toUTCString() === item.date.toUTCString() ? s.selected : s.notselected\r\n , isDisabled ? \"text-disabled\" : \"\");\r\n return (<a key={item.text} className={className} onClick={(e) => !isDisabled && 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 (isCnecInfo && selectedDate.getTime() < cnecDisabledBefore) {\r\n onChange(new Date(cnecDisabledBefore))\r\n }\r\n }, [isCnecInfo, selectedDate, onChange, cnecDisabledBefore]);\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 = new Date(new Date(selectedDate).setHours(0));\r\n const getTwoDigits = (val: number) => (val > 9 ? \"\" : \"0\") + val;\r\n const dayLightSaveCheck = (date: Date) => date.getHours() !== 2 ? \"\" : (date.getTimezoneOffset() === new Date(new Date(date).setUTCHours(date.getUTCHours() + 1)).getTimezoneOffset()) ? \"\" : \"*\";\r\n const getHourRange = (date: Date) => getTwoDigits(date.getHours()) + \":00\" + \" - \" + getTwoDigits(date.getHours() + 1) + \":00\" + dayLightSaveCheck(date);\r\n const loadAllHours = () => {\r\n const list: TimePickerItem[] = [];\r\n let newDate = rootDate;\r\n let i = 1;\r\n while (rootDate.getDay() === newDate.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, 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/core';\r\nimport { NavLink } from 'react-router-dom';\r\nimport JaoLogoMenu from 'components/jaoLogoMenu';\r\nregisterLocale(\"en-GB\", gb);\r\n\r\n\r\nexport const pageList = [\r\n { id: \"coreMarketView\", key: \"core_common:menuCoreMarketView\" },\r\n { id: \"coreMarketGraph\", key: \"core_common:menuCoreMarketGraphs\" },\r\n { id: \"coreMap\", key: \"core_common:menuCoreMap\" },\r\n { id: \"borderDataOverview\", key: \"core_common:menuBorderDataOverview\" },\r\n { id: \"maxNetPos\", key: \"core_common:menuMaxNetPos\" },\r\n { id: \"maxExchanges\", key: \"core_common:menuMaxExchangesMaxBex\" },\r\n { id: \"initialComputation\", key: \"core_common:menuInitialComputation\" },\r\n { id: \"pra\", key: \"core_common:menuRemedialActionPreventive\" },\r\n { id: \"cra\", key: \"core_common:menuRemedialActionCurative\" },\r\n { id: \"validationReductions\", key: \"core_common:menuValidationReductions\" },\r\n { id: \"preFinalComputation\", key: \"core_common:menuPreFinalComputation\" },\r\n { id: \"ltn\", key: \"core_common:menuLTN\" },\r\n { id: \"finalComputation\", key: \"core_common:menuFinalComputation\" },\r\n { id: \"lta\", key: \"core_common:menuLTA\" },\r\n { id: \"bexRestrictions\", key: \"core_common:menuBexRestrictions\" },\r\n { id: \"allocationConstraint\", key: \"core_common:menuAllocationConstraint\" },\r\n { id: \"d2cf\", key: \"core_common:menuD2CF\" },\r\n { id: \"refprog\", key: \"core_common:menuRefprog\" },\r\n { id: \"referenceNetPosition\", key: \"core_common:menuReferenceNetPosition\" },\r\n { id: \"atc\", key: \"core_common:menuATCs\" },\r\n { id: \"shadowAuctionAtc\", key: \"core_common:menuShadowAuctionATC\" },\r\n { id: \"shadowPrices\", key: \"core_common:menuShadowPrices\" },\r\n { id: \"congestionIncome\", key: \"core_common:menuCongestionIncome\" },\r\n { id: \"scheduledExchanges\", key: \"core_common:menuScheduledExchanges\" },\r\n { id: \"netPos\", key: \"core_common:menuNetPosition\" },\r\n { id: \"intradayAtc\", key: \"core_common:menuIntradayATC\" },\r\n { id: \"intradayNtc\", key: \"core_common:menuIntradayNTC\" },\r\n { id: \"priceSpread\", key: \"core_common:menuPriceSpread\" },\r\n { id: \"spanningDefaultFBP\", key: \"core_common:menuSpanningDefaultFBParameter\" }\r\n];\r\n\r\ninterface StateProps {\r\n applicationState: ApplicationState;\r\n}\r\n\r\ntype NavigationProps = StateProps & WithTranslation;\r\nconst Navigation = ({ t, applicationState }: NavigationProps) => {\r\n\r\n const initialDates: string[] = []\r\n const [availableDates, setAvailableDates] = useState(initialDates);\r\n const [pagePath, setPagePath] = useState(\"\");\r\n\r\n useEffect(() => {\r\n const path = window.location.pathname.replace(\"/\", \"\").replace(\"/\", \"\").replace(\"/\", \"\");\r\n setPagePath(path);\r\n (async function runAsync() {\r\n const response = await httpService.apiGet<GetAvailableDatesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/availableDates/index\",\r\n query: { Date: applicationState.selectedDate.toISOString(), Page: path },\r\n senderId: \"navigation\"\r\n })();\r\n\r\n if (response.ok) {\r\n setAvailableDates(response.data.availableDates);\r\n }\r\n })();\r\n }, [window.location.pathname]);\r\n\r\n return (\r\n <div className=\"sidebar\"\r\n style={{ display: \"grid\", gridTemplateRows: \"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=\"/core\" className={s.subTitle}>{t(\"core_common:menuHome\")}</NavLink>\r\n <div style={{ marginLeft: \"20px\" }}>\r\n <div className=\"inputlabel\">{t(\"common:date\")}</div>\r\n {applicationState.isDateEnabled && <div style={{ position: \"absolute\", left: \"35px\" }} className={classNames(s.arrow, s.arrowLeft)} onClick={() => applicationState.handleDateChange(new Date(applicationState.selectedDate.setDate(applicationState.selectedDate.getDate() - 1)))}></div>}\r\n {applicationState.isDateEnabled && <div style={{ position: \"absolute\", left: \"210px\" }} className={classNames(s.arrow, s.arrowRight)} onClick={() => applicationState.handleDateChange(new Date(applicationState.selectedDate.setDate(applicationState.selectedDate.getDate() + 1)))}></div>}\r\n <ReactDatePicker className={classNames(\"inputBorder\", applicationState.isDateEnabled ? \"\" : \"disabled\")} locale=\"en-GB\" placeholderText=\"Weeks start on Monday\" dateFormat=\"yyyy-MM-dd\" isClearable={false} fixedHeight todayButton=\"Today\"\r\n selected={applicationState.selectedDate}\r\n onChange={applicationState.handleDateChange}\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\")}</div>\r\n {applicationState.isHourEnabled && <div style={{ position: \"absolute\", left: \"35px\" }} className={classNames(s.arrow, s.arrowLeft)} onClick={() => applicationState.handleDateChange(new Date(applicationState.selectedDate.setUTCHours(applicationState.selectedDate.getUTCHours() - 1)))}></div>}\r\n {applicationState.isHourEnabled && <div style={{ position: \"absolute\", left: \"210px\" }} className={classNames(s.arrow, s.arrowRight)} onClick={() => applicationState.handleDateChange(new Date(applicationState.selectedDate.setUTCHours(applicationState.selectedDate.getUTCHours() + 1)))}></div>}\r\n <TimePicker enabled={applicationState.isHourEnabled} 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={{ display: \"flex\", marginLeft: \"-20px\", marginTop: \"1rem\" }}>\r\n <MenuItem route=\"/home\" icon={faHome} title={t(\"core_common:menuHome\")} style={{ fontSize: \"120%\", fontWeight: \"bold\" }} />\r\n <MenuItem route=\"/monitoring\" icon={faEye} 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 <MenuItem route=\"/api\" icon={faCloud} 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.map(p => <MenuItem key={p.key} route={\"/\" + p.id} title={t(p.key)} />)\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}</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 } 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 Toast from \"react-bootstrap/Toast\";\r\n\r\ninterface State {\r\n applicationState: ApplicationState;\r\n senderId: string;\r\n formats: string[];\r\n}\r\n\r\nconst DownloadButton = ({ applicationState, senderId, formats }: State) => {\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\r\n const download = (fileType: string) => {\r\n (async function runAsync() {\r\n\r\n const path = window.location.pathname.split(\"/\");\r\n if (!path || path.length < 1) return;\r\n\r\n const branch = senderId.startsWith(\"/\") ? \"\" : \"/data/\";\r\n\r\n\r\n setShowPleaseWait(true);\r\n let res = await httpService.apiDownload({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + branch + senderId + \"/download\",\r\n query: { from: startDate.toISOString(), until: endDate.toISOString(), fileType: fileType },\r\n senderId: senderId\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\r\n return <>\r\n <button className={s.pageButton} onClick={() => {\r\n if (applicationState.isHourEnabled) {\r\n const start = new Date(applicationState.selectedDate);\r\n setStartDate(start);\r\n setEndDate(new Date(new Date(start).setUTCHours(start.getUTCHours() + 1)));\r\n }\r\n else {\r\n const start = new Date(new Date(applicationState.selectedDate).setHours(0));\r\n setStartDate(start);\r\n setEndDate(new Date(new Date(start).setDate(start.getDate() + 1)));\r\n }\r\n setShowPopup(true);\r\n }}>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}>Download</h3>\r\n <div style={{ marginTop: \"50px\", marginBottom: \"50px\" }}>Downloading file, please wait...</div>\r\n </div>\r\n <div className={classnames(s.popup, \"shadow\", showPopup && !showWait ? \"\" : s.hidden)}>\r\n <h3 className={s.title}>Download</h3>\r\n\r\n <FontAwesomeIcon icon={faWindowClose} className={s.closeButton} onClick={() => { if (!showWait) { setShowPopup(false); } }} />\r\n\r\n <div className=\"inputlabel\">From DateTime</div>\r\n <ReactDatePicker\r\n className=\"inputBorder\"\r\n selectsStart\r\n selected={startDate}\r\n onChange={date => date && setStartDate(date as Date)}\r\n showTimeSelect\r\n timeIntervals={60}\r\n timeFormat=\"HH:mm\"\r\n dateFormat=\"yyyy-MM-dd HH:mm\"\r\n isClearable={false}\r\n fixedHeight\r\n todayButton=\"Today\"\r\n />\r\n\r\n <div className=\"inputlabel\">To DateTime</div>\r\n <ReactDatePicker\r\n className=\"inputBorder\"\r\n selectsEnd\r\n selected={endDate}\r\n onChange={date => date && setEndDate(date as Date)}\r\n showTimeSelect\r\n timeIntervals={60}\r\n timeFormat=\"HH:mm\"\r\n dateFormat=\"yyyy-MM-dd HH:mm\"\r\n isClearable={false}\r\n fixedHeight\r\n todayButton=\"Today\"\r\n startDate={startDate}\r\n endDate={endDate}\r\n minDate={startDate} />\r\n <div style={{ color: \"red\", marginTop: \"16px\", marginBottom: \"16px\" }}>{error}</div>\r\n {formats.map(f => <button key={f} className={s.popupButton} onClick={() => download(f)}>{f.toUpperCase()}</button>)}\r\n <div>Download as: </div>\r\n </div>\r\n </>;\r\n};\r\nexport default DownloadButton;","// 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\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}\r\n\r\nconst SheetHeader = (props: any) => { //{ applicationState, title, senderId, showDownload }: State\r\n return <header className=\"sheetHeader\" style={{ display: \"block\", backgroundColor: \"white\", zIndex: 4 }}>\r\n {props.showDownload && <DownloadButton applicationState={props.applicationState} senderId={props.senderId} formats={props.downloadFormats || [\"xml\", \"csv\"]} />}\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 <td rowSpan={rowSpan} className={(left ? \"fixedColumn\" : \"\") + \" \" + className} style={{ whiteSpace: \"nowrap\", left: left + \"px\" }}>\r\n {date.getFullYear() + \"-\" + (\"0\" + (date.getMonth() + 1)).slice(-2) + \"-\" + (\"0\" + (date.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 { pageList } from \"core/pages/navigation\"\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: MonitoringDto[];\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: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.key).toLowerCase() == a.page.toLowerCase() || t(x.key.replace(\"menu\", \"title\")).toLowerCase() == a.page.toLowerCase()) <=\r\n pageList.findIndex(x => t(x.key).toLowerCase() == b.page.toLowerCase() || t(x.key.replace(\"menu\", \"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()(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, 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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\nexport const senderId = \"monitoring\";\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(true, false, false, false, keys<MonitoringDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetMonitoringDataResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/system/monitoring/index\",\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 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(\"common:titleMonitoring\")} senderId={\"/system/\" + senderId} />\r\n {\r\n applicationState.userRole === \"Licquid\" ? <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 </div> : \"\"}\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()(Page);\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\nimport { pageList } from \"core/pages/navigation\"\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()(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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\nexport const senderId = \"monitoringFailed\";\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(true, false, false, false, keys<MonitoringFailedDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetMonitoringFailedDataResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/system/monitoringFailed/index\",\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 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(\"common:titleMonitoring\")} senderId={\"/system/\" + senderId} />\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 </div>\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()(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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\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, 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()(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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(false, false, 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(\"core_home:welcomeTitle\")}</h3>\r\n <Trans\r\n defaults={t(\"core_home:text\")}\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);\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 httpService from \"core/infrastructure/http\";\r\n\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport JSONPretty from \"react-json-pretty\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\nimport Select, { SelectItem } from \"components/select\";\r\nimport * as queryString from \"querystring\";\r\n\r\ninterface OwnState {\r\n url: string;\r\n applicationState: ApplicationState;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, url, applicationState }: PageProps) => {\r\n\r\n\r\n return (\r\n <div>\r\n <div className=\"inputlabel\">Curl</div>\r\n curl -X GET {url}\r\n <br />\r\n -H \"Authorization: Bearer {(applicationState.userRole === \"Guest\" ? \"***Enter Your Personal Token Here (Optional for now)***\" : applicationState.userToken)}\"\r\n\r\n </div>\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, forwardRef } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { Query } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n url: string;\r\n selectedEndpoint: any;\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: \"\" });\r\n const [skip, setSkip] = useState(0);\r\n const [take, setTake] = useState(10);\r\n const [search, setSearch] = useState(\"\");\r\n const [presolved, setPresolved] = useState<Boolean | null>(null);\r\n\r\n let parametersDate = { date: \"\" };\r\n let parametersSearch = { date: \"\", search: \"\", skip: 0, take: 10 };\r\n const getQueryRequest = (): any => {\r\n let parametersSearch: any = {};\r\n JSON.parse(selectedEndpoint.parameters).forEach((p: string) => {\r\n if (p === \"date\") parametersSearch.date = applicationState.selectedDate.toISOString();\r\n else if (p === \"search\") parametersSearch.search = JSON.stringify({ cneName: search, contingency: search, presolved: presolved })\r\n else if (p === \"skip\") parametersSearch.skip = skip;\r\n else if (p === \"take\") parametersSearch.take = take;\r\n });\r\n return parametersSearch;\r\n };\r\n const getQueryString = (): string => {\r\n return queryString.stringify(getQueryRequest());\r\n }\r\n useEffect(() => {\r\n setResponse({ status: \"\", headers: \"\", data: \"\" });\r\n }, [selectedEndpoint]);\r\n\r\n const UtcDateInput = forwardRef((a: any, ref) => (<input className={classNames(s.parameter, \"inputBorder\")} type=\"text\" value={applicationState.selectedDate.toISOString()} onClick={a.onClick} readOnly />));\r\n const triggerTest = (): void => {\r\n doRequest();\r\n }\r\n const handleNumChange = (numStr: string, setNum: any): void => {\r\n let num = parseInt(numStr);\r\n if (isNaN(num)) {\r\n setNum(0);\r\n } else {\r\n setNum(num);\r\n }\r\n }\r\n const doRequest = (async function runAsync() {\r\n\r\n applicationState.handleInputAvailablilityChange(true, true, true, true, []);\r\n setLoading(true);\r\n\r\n const api = selectedEndpoint.id === \"monitoring\" ? \"monitoring\" : \"data\";\r\n\r\n const resp = await httpService.apiTest({\r\n applicationState,\r\n route: applicationState.apiService + \"/\" + api + \"/\" + selectedEndpoint.id + \"/index\",\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 setResponse({\r\n status: resp.status.toString() + \" (\" + resp.statusText + \")\",\r\n headers: JSON.stringify(resp.headers),\r\n data: JSON.stringify(resp.data),\r\n });\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 === \"date\") ?\r\n <>\r\n <div className=\"inputlabel\">Date (UTC)</div>\r\n <ReactDatePicker\r\n className={classNames(\"inputBorder\", applicationState.isDateEnabled ? \"\" : \"disabled\")}\r\n locale=\"en-GB\"\r\n placeholderText=\"Weeks start on Monday\"\r\n dateFormat=\"yyyy-MM-dd HH:mm:ss\"\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 : (p === \"search\") ?\r\n <>\r\n <div className=\"inputlabel\">Search</div>\r\n <input className={classNames(s.parameter, \"inputBorder\")} type=\"text\" value={search} onChange={e => setSearch(e.currentTarget.value)} />\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)} />\r\n </>\r\n : (p === \"take\") ?\r\n <>\r\n <div className=\"inputlabel\">Take</div>\r\n <input className={classNames(s.parameter, \"inputBorder\")} type=\"text\" value={take} onChange={e => handleNumChange(e.currentTarget.value, setTake)} />\r\n </>\r\n : (p === \"presolved\") ?\r\n <>\r\n <div className=\"inputlabel\">Presolved</div>\r\n <div style={{ paddingTop: \"5px\" }}>\r\n <input type=\"radio\" id=\"true\" name=\"presolved\" onClick={e => setPresolved(true)} />\r\n <label htmlFor=\"true\">True</label>\r\n <input type=\"radio\" id=\"false\" name=\"presolved\" onClick={e => setPresolved(false)} />\r\n <label htmlFor=\"false\">False</label>\r\n <input type=\"radio\" id=\"null\" name=\"presolved\" onClick={e => setPresolved(null)} />\r\n <label htmlFor=\"false\">Unset</label>\r\n </div>\r\n </>\r\n : \"\"}\r\n </React.Fragment>\r\n )}\r\n <div className={classNames(s.selectableBorder, s.tabButton)} onClick={() => triggerTest()}>Try</div>\r\n <div className=\"inputlabel\">Requested url (GET)</div>\r\n {url + getQueryString()}\r\n <div className=\"inputlabel\">Request headers</div>\r\n <JSONPretty data={{ Authorization: \"Bearer \" + (applicationState.userRole === \"Guest\" ? \"***Enter Your Personal Token Here (Optional for now)***\" : applicationState.userToken) }} theme={jsonStyle}></JSONPretty>\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}></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 <Tab_curl url={url + getQueryString()} applicationState={applicationState} />\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 httpService from \"core/infrastructure/http\";\r\nimport {\r\n Query, GetAtcResponse, AtcDto, GetLtnResponse, LtnDto, GetCongestionIncomeResponse, CongestionIncomeDto,\r\n GetCraResponse, CraDto, GetD2CFResponse, D2CFDto, GetIntradayAtcResponse, IntradayAtcDto,\r\n GetIntradayImplicitAllocationResponse, IntradayImplicitAllocationDto, GetMaxExchangesResponse,\r\n GetMaxNetPosResponse, GetNetPosResponse, MaxExchangesDto, MaxNetPosDto, NetPosDto, RefprogDto, GetPraResponse,\r\n GetPriceSpreadResponse, GetPreFinalComputationResponse, GetFinalComputationResponse, GetRefprogResponse, PraDto, PriceSpreadDto,\r\n PreFinalComputationDto, GetShadowPricesResponse, GetSpanningDefaultFBPResponse, GetValidationReductionsResponse, FinalComputationDto,\r\n ShadowPricesDto, ValidationReductionsDto, GetShadowAuctionAtcResponse, ShadowAuctionAtcDto, SpanningDefaultFBPDto,\r\n GetInitialComputationResponse, InitialComputationDto, GetD2CFQuery, GetAtcQuery, GetCongestionIncomeQuery, GetCraQuery,\r\n GetIntradayAtcQuery, GetIntradayImplicitAllocationQuery, GetLtnQuery, GetMaxExchangesQuery,\r\n GetMaxNetPosQuery, GetNetPosQuery, GetPraQuery, GetPriceSpreadQuery, GetPreFinalComputationQuery, GetFinalComputationQuery, GetRefprogQuery,\r\n GetShadowAuctionAtcQuery, GetShadowPricesQuery, GetSpanningDefaultFBPQuery, GetValidationReductionsQuery, GetInitialComputationQuery,\r\n GetLtaResponse, LtaDto, GetLtaQuery, GetIntradayNtcResponse, IntradayNtcDto, GetIntradayNtcQuery, GetAllocationConstraintResponse,\r\n AllocationConstraintDto, GetAllocationConstraintQuery, GetScheduledExchangesQuery, ScheduledExchangesDto, GetReferenceNetPositionQuery,\r\n ReferenceNetPositionDto, GetBexRestrictionsQuery, BexRestrictionsDto, GetBexRestrictionsResponse, GetScheduledExchangesResponse, GetReferenceNetPositionResponse\r\n} from \"core/backend/core\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport JSONPretty from \"react-json-pretty\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\nimport Select, { SelectItem } from \"components/select\";\r\nimport * as queryString from \"querystring\";\r\nimport Token from \"./token\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n jsonStyle: any;\r\n selectedEndpoint: any;\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 (Optional for now)***\" : applicationState.userToken) }} theme={jsonStyle}></JSONPretty>\r\n <div className=\"inputlabel\">Request parameters (GET)</div>\r\n <JSONPretty data={selectedEndpoint.parameters} 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, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport {\r\n Query, GetAtcResponse, AtcDto, GetLtnResponse, LtnDto, GetCongestionIncomeResponse, CongestionIncomeDto,\r\n GetCraResponse, CraDto, GetD2CFResponse, D2CFDto, GetIntradayAtcResponse, IntradayAtcDto,\r\n GetIntradayImplicitAllocationResponse, IntradayImplicitAllocationDto, GetMaxExchangesResponse,\r\n GetMaxNetPosResponse, GetNetPosResponse, MaxExchangesDto, MaxNetPosDto, NetPosDto, RefprogDto, GetPraResponse,\r\n GetPriceSpreadResponse, GetPreFinalComputationResponse, GetFinalComputationResponse, GetRefprogResponse, PraDto, PriceSpreadDto,\r\n PreFinalComputationDto, GetShadowPricesResponse, GetSpanningDefaultFBPResponse, GetValidationReductionsResponse, FinalComputationDto,\r\n ShadowPricesDto, ValidationReductionsDto, GetShadowAuctionAtcResponse, ShadowAuctionAtcDto, SpanningDefaultFBPDto,\r\n GetInitialComputationResponse, InitialComputationDto, GetD2CFQuery, GetAtcQuery, GetCongestionIncomeQuery, GetCraQuery,\r\n GetIntradayAtcQuery, GetIntradayImplicitAllocationQuery, GetLtnQuery, GetMaxExchangesQuery,\r\n GetMaxNetPosQuery, GetNetPosQuery, GetPraQuery, GetPriceSpreadQuery, GetPreFinalComputationQuery, GetFinalComputationQuery, GetRefprogQuery,\r\n GetShadowAuctionAtcQuery, GetShadowPricesQuery, GetSpanningDefaultFBPQuery, GetValidationReductionsQuery, GetInitialComputationQuery,\r\n GetLtaResponse, LtaDto, GetLtaQuery, GetIntradayNtcResponse, IntradayNtcDto, GetIntradayNtcQuery, GetAllocationConstraintResponse,\r\n AllocationConstraintDto, GetAllocationConstraintQuery, GetScheduledExchangesQuery, ScheduledExchangesDto, GetReferenceNetPositionQuery,\r\n ReferenceNetPositionDto, GetBexRestrictionsQuery, BexRestrictionsDto, GetBexRestrictionsResponse, GetScheduledExchangesResponse, GetReferenceNetPositionResponse\r\n} from \"core/backend/core\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport JSONPretty from \"react-json-pretty\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\nimport Select, { SelectItem } from \"components/select\";\r\nimport * as queryString from \"querystring\";\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 \"{selectedEndpoint.id}\"</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(\"./login.module.scss\");\r\n\r\nimport { default as React, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport httpService from \"core/infrastructure/http\";\r\n\r\nimport { ApplicationState } from \"core/app\";\r\nimport { GetTokenResponse } from \"core/backend/common\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const [userMail, setUserMail] = useState(\"\");\r\n const [error, setError] = useState(\"\");\r\n\r\n const doLogon = () => {\r\n (async function runAsync() {\r\n const response = await httpService.apiGet<GetTokenResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/token/token/index\",\r\n query: { Email: userMail },\r\n senderId: \"login\"\r\n })();\r\n\r\n if (response.ok) {\r\n if (response.data.rejected) {\r\n setError(response.data.messages.map(m => m.reason).join(\"<br/>\"));\r\n } else {\r\n applicationState.changeToken(response.data.email, response.data.role, response.data.token);\r\n setError(\"\");\r\n }\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n })();\r\n };\r\n return (\r\n <form id=\"loginForm\" onSubmit={e => { e.preventDefault(); doLogon(); return false; }}>\r\n <div>You need a token to use the API.</div>\r\n <div>You can request your free personal token that never expires here.</div>\r\n <div>This bearerToken has to be defined in the headers of every api-call.</div>\r\n <div>Your email will only be used to give support and will not be shared in any way.</div >\r\n <br />\r\n {applicationState.userRole === \"Guest\" ?\r\n <div className={s.container}>\r\n <label htmlFor=\"user\" style={{ marginBottom: \"0px\" }}>{t(\"login:user\")}</label>\r\n <input type=\"text\" name=\"user\" value={userMail} onChange={e => setUserMail(e.currentTarget.value)} />\r\n <br />\r\n\r\n <input type=\"submit\" className={s.submitButton} value=\"Continue\" />\r\n {error || (<div className={s.error}>{error}</div>)}\r\n </div>\r\n :\r\n <div className={s.container}>\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 <label htmlFor=\"token\" style={{ marginBottom: \"0px\" }}>Your personal token:</label>\r\n <textarea disabled>{applicationState.userToken}</textarea>\r\n </div>}\r\n </form>\r\n );\r\n};\r\nexport default withTranslation()(Page);","const s = require(\"./api.module.scss\");\r\n\r\nimport { default as React, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport {\r\n GetAtcResponse, AtcDto, GetLtnResponse, LtnDto, GetCongestionIncomeResponse, CongestionIncomeDto,\r\n GetCraResponse, CraDto, GetD2CFResponse, D2CFDto, GetIntradayAtcResponse, IntradayAtcDto,\r\n GetIntradayImplicitAllocationResponse, IntradayImplicitAllocationDto, GetMaxExchangesResponse,\r\n GetMaxNetPosResponse, GetNetPosResponse, MaxExchangesDto, MaxNetPosDto, NetPosDto, RefprogDto, GetPraResponse,\r\n GetPriceSpreadResponse, GetPreFinalComputationResponse, GetFinalComputationResponse, GetRefprogResponse, PraDto, PriceSpreadDto,\r\n PreFinalComputationDto, GetShadowPricesResponse, GetSpanningDefaultFBPResponse, GetValidationReductionsResponse, FinalComputationDto,\r\n ShadowPricesDto, ValidationReductionsDto, GetShadowAuctionAtcResponse, ShadowAuctionAtcDto, SpanningDefaultFBPDto,\r\n GetInitialComputationResponse, InitialComputationDto, GetD2CFQuery, GetAtcQuery, GetCongestionIncomeQuery, GetCraQuery,\r\n GetIntradayAtcQuery, GetIntradayImplicitAllocationQuery, GetLtnQuery, GetMaxExchangesQuery,\r\n GetMaxNetPosQuery, GetNetPosQuery, GetPraQuery, GetPriceSpreadQuery, GetPreFinalComputationQuery, GetFinalComputationQuery, GetRefprogQuery,\r\n GetShadowAuctionAtcQuery, GetShadowPricesQuery, GetSpanningDefaultFBPQuery, GetValidationReductionsQuery, GetInitialComputationQuery,\r\n GetLtaResponse, LtaDto, GetLtaQuery, GetIntradayNtcResponse, IntradayNtcDto, GetIntradayNtcQuery, GetAllocationConstraintResponse,\r\n AllocationConstraintDto, GetAllocationConstraintQuery, GetScheduledExchangesQuery, ScheduledExchangesDto, GetReferenceNetPositionQuery,\r\n ReferenceNetPositionDto, GetBexRestrictionsQuery, BexRestrictionsDto, GetBexRestrictionsResponse, GetScheduledExchangesResponse, GetReferenceNetPositionResponse\r\n} from \"core/backend/core\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\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 Tab_token from \"./tab_token\";\r\nimport { GetMonitoringDataQuery, GetMonitoringDataResponse, MonitoringDto } from \"core/backend/common\";\r\nimport { pageList } from \"core/pages/navigation\"\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const jsonStyle = {\r\n main: \"line-height:1.3;color:#000;\",\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 apis = [\r\n { apiType: \"core\", id: \"allocationConstraint\", text: t(\"core_common:titleAllocationConstraint\"), response: JSON.stringify(keys<GetAllocationConstraintResponse>()), dto: JSON.stringify(keys<AllocationConstraintDto>()), parameters: JSON.stringify(keys<GetAllocationConstraintQuery>()) },\r\n { apiType: \"core\", id: \"atc\", text: t(\"core_common:titleATCs\"), response: JSON.stringify(keys<GetAtcResponse>()), dto: JSON.stringify(keys<AtcDto>()), parameters: JSON.stringify(keys<GetAtcQuery>()) },\r\n { apiType: \"core\", id: \"congestionIncome\", text: t(\"core_common:titleCongestionIncome\"), response: JSON.stringify(keys<GetCongestionIncomeResponse>()), dto: JSON.stringify(keys<CongestionIncomeDto>()), parameters: JSON.stringify(keys<GetCongestionIncomeQuery>()) },\r\n { apiType: \"core\", id: \"d2CF\", text: t(\"core_common:titleD2CF\"), response: JSON.stringify(keys<GetD2CFResponse>()), dto: JSON.stringify(keys<D2CFDto>()), parameters: JSON.stringify(keys<GetD2CFQuery>()) },\r\n { apiType: \"core\", id: \"bexRestrictions\", text: t(\"core_common:titleBexRestrictions\"), response: JSON.stringify(keys<GetBexRestrictionsResponse>()), dto: JSON.stringify(keys<BexRestrictionsDto>()), parameters: JSON.stringify(keys<GetBexRestrictionsQuery>()) },\r\n { apiType: \"core\", id: \"finalComputation\", text: t(\"core_common:titleFinalComputation\"), response: JSON.stringify(keys<GetFinalComputationResponse>()), dto: JSON.stringify(keys<FinalComputationDto>()), parameters: JSON.stringify(keys<GetFinalComputationQuery>()) },\r\n { apiType: \"core\", id: \"initialComputation\", text: t(\"core_common:titleInitialComputation\"), response: JSON.stringify(keys<GetInitialComputationResponse>()), dto: JSON.stringify(keys<InitialComputationDto>()), parameters: JSON.stringify(keys<GetInitialComputationQuery>()) },\r\n { apiType: \"core\", id: \"intradayAtc\", text: t(\"core_common:titleIntradayAtc\"), response: JSON.stringify(keys<GetIntradayAtcResponse>()), dto: JSON.stringify(keys<IntradayAtcDto>()), parameters: JSON.stringify(keys<GetIntradayAtcQuery>()) },\r\n { apiType: \"core\", id: \"intradayNtc\", text: t(\"core_common:titleIntradayNtc\"), response: JSON.stringify(keys<GetIntradayNtcResponse>()), dto: JSON.stringify(keys<IntradayNtcDto>()), parameters: JSON.stringify(keys<GetIntradayNtcQuery>()) },\r\n /*{ apiType: \"core\", id: \"intradayImplicitAllocation\", text: t(\"core_common:titleIntradayImplicitAllocation\"), response: JSON.stringify(keys<GetIntradayImplicitAllocationResponse>()), dto: JSON.stringify(keys<IntradayImplicitAllocationDto>()), parameters: JSON.stringify(keys<GetIntradayImplicitAllocationQuery>()) },*/\r\n { apiType: \"core\", id: \"lta\", text: t(\"core_common:titleLTA\"), response: JSON.stringify(keys<GetLtaResponse>()), dto: JSON.stringify(keys<LtaDto>()), parameters: JSON.stringify(keys<GetLtaQuery>()) },\r\n { apiType: \"core\", id: \"ltn\", text: t(\"core_common:titleLTN\"), response: JSON.stringify(keys<GetLtnResponse>()), dto: JSON.stringify(keys<LtnDto>()), parameters: JSON.stringify(keys<GetLtnQuery>()) },\r\n { apiType: \"core\", id: \"maxExchanges\", text: t(\"core_common:titleMaxExchangesMaxBex\"), response: JSON.stringify(keys<GetMaxExchangesResponse>()), dto: JSON.stringify(keys<MaxExchangesDto>()), parameters: JSON.stringify(keys<GetMaxExchangesQuery>()) },\r\n { apiType: \"core\", id: \"maxNetPos\", text: t(\"core_common:titleMaxNetPos\"), response: JSON.stringify(keys<GetMaxNetPosResponse>()), dto: JSON.stringify(keys<MaxNetPosDto>()), parameters: JSON.stringify(keys<GetMaxNetPosQuery>()) },\r\n { apiType: \"system\", id: \"monitoring\", text: t(\"core_common:titleMonitoring\"), response: JSON.stringify(keys<GetMonitoringDataResponse>()), dto: JSON.stringify(keys<MonitoringDto>()), parameters: JSON.stringify(keys<GetMonitoringDataQuery>()) },\r\n { apiType: \"core\", id: \"netPos\", text: t(\"core_common:titleNetPosition\"), response: JSON.stringify(keys<GetNetPosResponse>()), dto: JSON.stringify(keys<NetPosDto>()), parameters: JSON.stringify(keys<GetNetPosQuery>()) },\r\n { apiType: \"core\", id: \"preFinalComputation\", text: t(\"core_common:titlePreFinalComputation\"), response: JSON.stringify(keys<GetPreFinalComputationResponse>()), dto: JSON.stringify(keys<PreFinalComputationDto>()), parameters: JSON.stringify(keys<GetPreFinalComputationQuery>()) },\r\n { apiType: \"core\", id: \"priceSpread\", text: t(\"core_common:titlePriceSpread\"), response: JSON.stringify(keys<GetPriceSpreadResponse>()), dto: JSON.stringify(keys<PriceSpreadDto>()), parameters: JSON.stringify(keys<GetPriceSpreadQuery>()) },\r\n { apiType: \"core\", id: \"refprog\", text: t(\"core_common:titleRefprog\"), response: JSON.stringify(keys<GetRefprogResponse>()), dto: JSON.stringify(keys<RefprogDto>()), parameters: JSON.stringify(keys<GetRefprogQuery>()) },\r\n { apiType: \"core\", id: \"cra\", text: t(\"core_common:titleRemedialActionCurative\"), response: JSON.stringify(keys<GetCraResponse>()), dto: JSON.stringify(keys<CraDto>()), parameters: JSON.stringify(keys<GetCraQuery>()) },\r\n { apiType: \"core\", id: \"pra\", text: t(\"core_common:titleRemedialActionPreventive\"), response: JSON.stringify(keys<GetPraResponse>()), dto: JSON.stringify(keys<PraDto>()), parameters: JSON.stringify(keys<GetPraQuery>()) },\r\n { apiType: \"core\", id: \"referenceNetPosition\", text: t(\"core_common:titleReferenceNetPosition\"), response: JSON.stringify(keys<GetReferenceNetPositionResponse>()), dto: JSON.stringify(keys<ReferenceNetPositionDto>()), parameters: JSON.stringify(keys<GetReferenceNetPositionQuery>()) },\r\n { apiType: \"core\", id: \"scheduledExchanges\", text: t(\"core_common:titleScheduledExchanges\"), response: JSON.stringify(keys<GetScheduledExchangesResponse>()), dto: JSON.stringify(keys<ScheduledExchangesDto>()), parameters: JSON.stringify(keys<GetScheduledExchangesQuery>()) },\r\n { apiType: \"core\", id: \"shadowAuctionAtc\", text: t(\"core_common:titleShadowAuctionATC\"), response: JSON.stringify(keys<GetShadowAuctionAtcResponse>()), dto: JSON.stringify(keys<ShadowAuctionAtcDto>()), parameters: JSON.stringify(keys<GetShadowAuctionAtcQuery>()) },\r\n { apiType: \"core\", id: \"shadowPrices\", text: t(\"core_common:titleShadowPrices\"), response: JSON.stringify(keys<GetShadowPricesResponse>()), dto: JSON.stringify(keys<ShadowPricesDto>()), parameters: JSON.stringify(keys<GetShadowPricesQuery>()) },\r\n { apiType: \"core\", id: \"spanningDefaultFBP\", text: t(\"core_common:titleSpanningDefaultFBParameter\"), response: JSON.stringify(keys<GetSpanningDefaultFBPResponse>()), dto: JSON.stringify(keys<SpanningDefaultFBPDto>()), parameters: JSON.stringify(keys<GetSpanningDefaultFBPQuery>()) },\r\n { apiType: \"core\", id: \"validationReductions\", text: t(\"core_common:titleValidationReductions\"), response: JSON.stringify(keys<GetValidationReductionsResponse>()), dto: JSON.stringify(keys<ValidationReductionsDto>()), parameters: JSON.stringify(keys<GetValidationReductionsQuery>()) },\r\n ].sort((a, b) =>\r\n pageList.findIndex(x => x.id.toLowerCase() == a.id.toLowerCase()) < pageList.findIndex(x => x.id.toLowerCase() == b.id.toLowerCase()) ? -1 : 1\r\n );\r\n const [selectedEndpoint, setEndpoint] = useState(apis[0]);\r\n const [selectedTab, setSelectedTab] = useState(\"request\");\r\n\r\n\r\n const baseUrl = \"https://\" + location.host + applicationState.apiService + \"/\";\r\n const handleEndpointChange = (item: SelectItem) => { setEndpoint(apis.filter(a => a.id === item.id)[0]); };\r\n return (\r\n <>\r\n <SheetHeader showDownload={false} applicationState={applicationState} title={t(\"core_common:titleApi\")} senderId=\"api\" />\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={apis} onChange={handleEndpointChange} selectedItem={selectedEndpoint} />\r\n <div className=\"inputlabel\">Url</div>\r\n <span className={s.get}>GET</span>\r\n <input className={classNames(s.maxWidth, \"inputBorder\")} type=\"text\" value={baseUrl + selectedEndpoint.apiType + \"/\" + selectedEndpoint.id + \"/index\"} readOnly />\r\n </div>\r\n\r\n <div className=\"subHeader\">\r\n {/*<div className={classNames(s.selectableBorder, \"token\" === selectedTab ? s.selected : \"\")} onClick={() => setSelectedTab(\"token\")}>Token</div>*/}\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\")}>Test</div>\r\n </div>\r\n <div className={s.json}>\r\n {\"token\" === selectedTab ? <Tab_token applicationState={applicationState} /> : \"\"}\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.id + \"/index?\"} 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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { ScheduledExchangesDto } from \"core/backend/core\";\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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"scheduledExchanges\";\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(true, false, true, false, keys<ScheduledExchangesDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetScheduledExchangesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.scheduledExchanges);\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(\"core_common:titleScheduledExchanges\")} senderId={senderId} />\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { AllocationConstraintDto } from \"core/backend/core\";\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(\"core_allocationConstraint:import\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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()(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, GetAllocationConstraintResponse } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"allocationConstraint\";\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(true, false, false, false, keys<AllocationConstraintDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetAllocationConstraintResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.allocationConstraint);\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(\"core_common:titleAllocationConstraint\")} senderId={senderId} />\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { AtcDto } from \"core/backend/core\";\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, GetAtcResponse } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"atc\";\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(true, false, true, false, keys<AtcDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetAtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.atc);\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(\"core_common:titleATCs\")} senderId={senderId} disclaimer={t(\"core_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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { AtcDto, ScheduledExchangesDto, PriceSpreadDto, CongestionIncomeDto, LtnDto, ShadowAuctionAtcDto, IntradayAtcDto } from \"core/backend/core\";\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(\"core_borderDataOverview:Atc\")}</th>}\r\n {hasQtyData && <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_borderDataOverview:Sec\")}</th>}\r\n {hasPsData && <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_borderDataOverview:Ps\")}</th>}\r\n {hasCiData && <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_borderDataOverview:Ci\")}</th>}\r\n {hasLtnData && <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_borderDataOverview:Ltn\")}</th>}\r\n {hasSAtcData && <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_borderDataOverview:SaAtc\")}</th>}\r\n {hasIAtcData && <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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()(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/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"borderDataOverview\";\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.apiGet<GetAtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/atc/index\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setAtcData(response.data.atc);\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.apiGet<GetScheduledExchangesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/scheduledExchanges/index\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setQtyData(response.data.scheduledExchanges);\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.apiGet<GetPriceSpreadResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/priceSpread/index\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setPsData(response.data.priceSpread);\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.apiGet<GetCongestionIncomeResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/congestionIncome/index\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setCiData(response.data.congestionIncome);\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.apiGet<GetLtnResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/ltn/index\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setLtnData(response.data.ltn);\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.apiGet<GetShadowAuctionAtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/shadowAuctionAtc/index\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setSAtcData(response.data.shadowAuctionAtc);\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.apiGet<GetIntradayAtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/intradayAtc/index\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setIAtcData(response.data.intradayAtc);\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(true, false, 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 = new Date(new Date(applicationState.selectedDate).setHours(0));\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 await Promise.all([\r\n loadAtc(),\r\n loadQty(),\r\n loadPriceSpread(),\r\n loadCongestionIncome(),\r\n loadLtn(),\r\n loadSAtc(),\r\n 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(\"core_common:titleBorderDataOverview\")} senderId={senderId} />\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.id} /></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);\r\n","import { default as React, useContext } from \"react\";\r\n\r\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { CongestionIncomeDto } from \"core/backend/core\";\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(\"core_congestionIncome:GrossHUB\")}</th>\r\n <th colSpan={tsos.length} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"core_congestionIncome:GrossTSO\")}</th>\r\n <th colSpan={hubs.length} className=\"tableTitles fixedHeader lineLeft\" style={{ top: titleTop + \"px\" }}>{t(\"core_congestionIncome:NetHUB\")}</th>\r\n <th colSpan={tsos.length} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"core_congestionIncome:NetTSO\")}</th>\r\n <th colSpan={borders.length} className=\"tableTitles fixedHeader lineLeft\" style={{ top: titleTop + \"px\" }}>{t(\"core_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()(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, GetCongestionIncomeResponse } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"congestionIncome\";\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(true, false, true, true, dtoKeys);\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetCongestionIncomeResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.congestionIncome);\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(\"core_common:titleCongestionIncome\")} senderId={senderId} />\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);\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 }}>\r\n <div className={s.title}>{props.t(\"core_country:\" + props.code)}</div>\r\n <table className={s.table}>\r\n <tbody>\r\n <tr><th>{props.t(\"core_coreMap:export\")}</th><td className=\"alignRight\">{props.max}</td></tr>\r\n <tr><th>{props.t(\"core_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()(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 }}>\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 }}>\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, useContext } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport { MaxNetPosDto, MaxExchangesDto } from \"core/backend/core\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport Country from \"./country\";\r\nimport HorizontalExchange from \"./HorizontalExchange\";\r\nimport VerticalExchange from \"./VerticalExchange\";\r\n\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\r\n return (\r\n <div style={{ position: \"relative\", margin: \"1rem\" }} >\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 } 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 return <div className=\"xx\" style={{ flex: \"1\", position: \"relative\", overflow: \"auto\" }} >\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 {React.cloneElement(props.children, {})}\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/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"coreMap\";\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(0);\r\n\r\n const loadMaxNetPos = async () => {\r\n const response = await httpService.apiGet<GetMaxNetPosResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/maxNetPos/index\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setMaxNetPosData(response.data.maxNetPos);\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.apiGet<GetMaxExchangesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/maxExchanges/index\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setMaxExchangesData(response.data.maxExchanges);\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(true, true, false, false, []);\r\n setLoading(true);\r\n const date = new Date(applicationState.selectedDate).setHours(0);\r\n if (loadedDate !== date) {\r\n setMaxNetPosData([]);\r\n setMaxExchangesData([]);\r\n await Promise.all([\r\n loadMaxNetPos(),\r\n loadMaxExchanges()\r\n ]);\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(\"core_common:titleCoreMap\")} senderId={senderId} />\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/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"coreMarketGraph\";\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, isCore: false, isCwe: false };\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.apiGet<GetMaxNetPosResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/maxNetPos/index\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setMaxNetPosData(response.data.maxNetPos);\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.apiGet<GetMaxExchangesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/maxExchanges/index\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setMaxExchangesData(response.data.maxExchanges);\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(true, false, true, false, borders.concat(hubs));\r\n setLoading(true);\r\n setMaxNetPosData([]);\r\n setMaxExchangesData([]);\r\n await Promise.all([\r\n loadMaxNetPos(),\r\n loadMaxExchanges()\r\n ]);\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(\"core_common:titleCoreMarketGraphs\")} senderId={senderId} />\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/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"coreMarketGraph\";\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(0);\r\n\r\n\r\n const loadMaxNetPos = async () => {\r\n const response = await httpService.apiGet<GetMaxNetPosResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/maxNetPos/index\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setMaxNetPosData(response.data.maxNetPos);\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.apiGet<GetMaxExchangesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/maxExchanges/index\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setMaxExchangesData(response.data.maxExchanges);\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\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(true, true, false, false, dtoHubKeys.concat(dtoBorderKeys));\r\n //setLoading(true);\r\n const date = new Date(applicationState.selectedDate).setHours(0);\r\n if (loadedDate !== date) {\r\n setMaxNetPosData([]);\r\n setMaxExchangesData([]);\r\n await Promise.all([\r\n loadMaxNetPos(),\r\n loadMaxExchanges(),\r\n ]);\r\n setLoadedDate(date);\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n if (isLoading) return <div />;\r\n return (\r\n <>\r\n <SheetHeader showDownload={false} applicationState={applicationState} title={t(\"core_common:titleCoreMarketView\")} senderId={senderId} />\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] || {}}\r\n maxExchangeData={maxExchangesData.filter(f => new Date(f.dateTimeUtc).toISOString() === applicationState.selectedDate.toISOString())[0] || {}}\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/core\";\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(\"core_cra:cra\") + i + \" \" + t(\"core_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(\"core_cra:cnecTso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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(\"core_cra:name\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cra:baseline\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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()(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, GetCraResponse } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"cra\";\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(true, true, false, false, keys<CraDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetCraResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.cra);\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(\"core_common:titleRemedialActionCurative\")} senderId={senderId} />\r\n <div className=\"subHeader\">\r\n <div style={{ display: \"inline-block\" }}>\r\n <div className=\"inputlabel\">{t(\"core_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(\"core_Total Rows\") + \": \" + data.length}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"core_Search Rows\") + \": \" + filteredData.length}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"core_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);\r\n","import { default as React, useContext } from \"react\";\r\n\r\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { D2CFDto } from \"core/backend/core\";\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(\"core_d2cf:hub\")}</th>\r\n <th colSpan={dtoTsos.length * 3} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"core_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(\"core_d2cf:VerticalLoad\")}</th>\r\n <th colSpan={dtoHubs.length} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_d2cf:Generation\")}</th>\r\n <th colSpan={dtoHubs.length} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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(\"core_d2cf:VertLoad\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_d2cf:Gen\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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()(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, GetD2CFResponse } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"d2CF\";\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(true, false, false, true, keyss);\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetD2CFResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/d2CF/index\",\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.d2CF);\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(\"core_common:titleD2CF\")} senderId={senderId} />\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);\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/core\";\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 colSpan={(bordersWithDelta.length * 2) + 1} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_intradayAtc:Cwe\")}</th>\r\n <th colSpan={bordersWithoutDelta.length} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_intradayAtc:Cee\")}</th>\r\n </tr>\r\n <tr>\r\n <th rowSpan={2} className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</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 {bordersWithDelta.map((border) => <React.Fragment key={border.id}>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_intradayAtc:Initial\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_intradayAtc:Delta\")}</th>\r\n </React.Fragment>)}\r\n {bordersWithoutDelta.map((border) => <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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()(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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"intradayAtc\";\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(true, false, 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.apiGet<GetIntradayAtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.intradayAtc);\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(\"core_common:titleIntradayAtc\")} senderId={senderId} disclaimer={t(\"core_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);\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/core\";\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(\"core_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()(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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"intradayNtc\";\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(true, false, 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.apiGet<GetIntradayNtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.intradayNtc);\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(\"core_common:titleIntradayNtc\")} senderId={senderId} />\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { IntradayImplicitAllocationDto } from \"core/backend/core\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport BorderName from \"components/borderName\";\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: IntradayImplicitAllocationDto[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, 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 const keysInDto = keys<IntradayImplicitAllocationDto>();\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 fixedHeader\" style={{ top: titleTop + \"px\", left: left + \"px\" }}></th>\r\n <th colSpan={dtoBorders.length * 2} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"core_intradayImplicitAllocation:Bilateral\")}</th>\r\n <th colSpan={dtoBorders.length * 2} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"core_intradayImplicitAllocation:PriceSpread\")}</th>\r\n <th colSpan={dtoBorders.length * 2} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"core_intradayImplicitAllocation:GrossCI\")}</th>\r\n </tr>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}></th>\r\n <th colSpan={dtoBorders.length} className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"core_intradayImplicitAllocation:Ida1\")}</th>\r\n <th colSpan={dtoBorders.length} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_intradayImplicitAllocation:Ida2\")}</th>\r\n <th colSpan={dtoBorders.length} className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"core_intradayImplicitAllocation:Ida1\")}</th>\r\n <th colSpan={dtoBorders.length} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_intradayImplicitAllocation:Ida2\")}</th>\r\n <th colSpan={dtoBorders.length} className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"core_intradayImplicitAllocation:Ida1\")}</th>\r\n <th colSpan={dtoBorders.length} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_intradayImplicitAllocation:Ida2\")}</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 {dtoBorders.map((border, index) => <th key={border.id} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n {dtoBorders.map((border, index) => <th key={border.id} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeftLight\" : \"\")} style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n {dtoBorders.map((border, index) => <th key={border.id} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n {dtoBorders.map((border, index) => <th key={border.id} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeftLight\" : \"\")} style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n {dtoBorders.map((border, index) => <th key={border.id} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}><BorderName text={border.text} /></th>)}\r\n {dtoBorders.map((border, index) => <th key={border.id} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeftLight\" : \"\")} 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 { IntradayImplicitAllocationDto, GetIntradayImplicitAllocationResponse } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"intradayImplicitAllocation\";\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: IntradayImplicitAllocationDto[] = [];\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(true, false, true, false, keys<IntradayImplicitAllocationDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetIntradayImplicitAllocationResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.intradayImplicitAllocation);\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(\"core_common:titleIntradayImplicitAllocation\")} senderId={senderId} />\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { LtaDto } from \"core/backend/core\";\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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"lta\";\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\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 applicationState.handleInputAvailablilityChange(true, false, true, false, keys<LtaDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetLtaResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.lta);\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(\"core_common:titleLTA\")} senderId={senderId} />\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { LtnDto } from \"core/backend/core\";\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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"ltn\";\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 useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(true, false, true, false, keys<LtnDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetLtnResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.ltn);\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(\"core_common:titleLTN\")} senderId={senderId} />\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { MaxExchangesDto } from \"core/backend/core\";\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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"maxExchanges\";\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(true, false, true, false, keys<MaxExchangesDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetMaxExchangesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.maxExchanges);\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(\"core_common:titleMaxExchangesMaxBex\")} senderId={senderId} />\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { MaxNetPosDto } from \"core/backend/core\";\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(\"core_maxNetPos:Min\") + t(\"common_hubs:\" + hub.id)}</th>)}\r\n {dtoHubs.map((hub) => <th key={hub.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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()(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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"maxNetPos\";\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(true, false, false, true, keys<MaxNetPosDto>().map(d => d.replace(\"min\", \"hub_\")));\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetMaxNetPosResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.maxNetPos);\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(\"core_common:titleMaxNetPos\")} senderId={senderId} />\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { NetPosDto } from \"core/backend/core\";\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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"netPos\";\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(true, false, false, true, keys<NetPosDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetNetPosResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.netPos);\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(\"core_common:titleNetPosition\")} senderId={senderId} disclaimer={t(\"core_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/core\";\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { PraDto } from \"core/backend/core\";\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(\"core_pra:praInformation\")}</th>\r\n <th colSpan={2} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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(\"core_pra:pRaName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_pra:tso\")}</th>\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"core_pra:baseline\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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()(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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"pra\";\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(true, true, false, false, keys<PraDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetPraResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.pra);\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(\"core_common:titleRemedialActionPreventive\")} senderId={senderId} />\r\n <div className=\"subHeader\">\r\n <div style={{ display: \"inline-block\" }}>\r\n <div className=\"inputlabel\">{t(\"core_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(\"core_Total Rows\") + \": \" + data.length}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"core_Search Rows\") + \": \" + filteredData.length}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"core_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);\r\n","import { default as React, useContext } from \"react\";\r\n\r\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { PriceSpreadDto } from \"core/backend/core\";\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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"priceSpread\";\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(true, false, true, false, keys<PriceSpreadDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetPriceSpreadResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.priceSpread);\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(\"core_common:titlePriceSpread\")} senderId={senderId} />\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { FinalComputationDto } from \"core/backend/core\";\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 colSpan={11} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:infoCnec\")}</th>\r\n <th colSpan={9} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:infoContingency\")}</th>\r\n <th colSpan={21 + (dtoHubs.length)} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:detailRam\")}</th>\r\n </tr>\r\n <tr>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:cneName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:cneEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:direction\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:hubTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:substationFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:substationTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:elementType\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fmaxType\")}</th>\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"core_cnec:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:contingencyName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:branchName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:branchEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:hubTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:substationFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:substationTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:elementType\")}</th>\r\n\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"core_cnec:presolved\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:ram\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:imax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:u\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"core_cnec:fmax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:frm\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:frefinit\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fnrao\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fref\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fcore\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fall\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fuaf\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:amr\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"core_cnec:Ramr\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"core_cnec:RamrJustification\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"core_cnec:minRamTarget\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:ltaMargin\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:cva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:iva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:ftotalLtn\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fltn\")}</th>\r\n\r\n {dtoHubs.map((hub) => <th key={hub.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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()(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 onPageClick: (n: number) => void;\r\n}\r\n\r\nconst Pagination = ({ pageCount, currentPage, onPageClick, t }: OwnProps & WithTranslation) =>\r\n (pageCount > 0) ? \r\n <nav aria-label=\"Page navigation example\">\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)}\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(\"core_common:next\")}\r\n previousLabel={t(\"core_common:previous\")}\r\n marginPagesDisplayed={2}\r\n pageRangeDisplayed={8}\r\n />\r\n </nav>\r\n : null;\r\n\r\nconst translated = withTranslation()(Pagination);\r\nexport default translated;","import { default as React } from \"react\";\r\nimport Multiselect from 'multiselect-react-dropdown';\r\n\r\n\r\ninterface OwnState {\r\n setValue: (value: any) => void;\r\n options?: any;\r\n clearValue: boolean;\r\n setReset: (value: boolean) => void;\r\n}\r\n\r\nconst MultiselectField = ({ setValue, setReset, clearValue, options }: OwnState) => {\r\n\r\n const multiselectRef = React.createRef<Multiselect>();\r\n\r\n React.useEffect(() => {\r\n if (clearValue && multiselectRef && multiselectRef.current) {\r\n multiselectRef.current.resetSelectedValues();\r\n setReset(false);\r\n }\r\n }, [clearValue]);\r\n\r\n return (\r\n <Multiselect\r\n ref={multiselectRef}\r\n options={options}\r\n onSelect={(l, v) => setValue(l.map((m: any) => m.eic))}\r\n onRemove={(l, v) => setValue(l.map((m: any) => m.eic))}\r\n showCheckbox={true}\r\n closeOnSelect={false}\r\n showArrow={true}\r\n avoidHighlightFirstOption={true}\r\n displayValue=\"name\"\r\n style={{\r\n 'chips': {\r\n 'font-size': '8px',\r\n 'background': '#88a4bf'\r\n }\r\n }}\r\n />\r\n )\r\n\r\n};\r\n\r\nexport default MultiselectField;\r\n","import { default as React } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport MultiselectField from './multiSelectField';\r\n\r\nconst default_tsos = {\r\n '50Hertz': '10XDE-VE-TRANSMK',\r\n Amprion: '10XDE-RWENET---W',\r\n Apg: '10XAT-APG------Z',\r\n Ceps: '10XCZ-CEPS-GRIDE',\r\n Eles: '10XSI-ELES-----1',\r\n Elia: '10X1001A1001A094',\r\n Hops: '10XHR-HEP-OPS--A',\r\n Mavir: '10X1001A1001A329',\r\n Pse: '10XPL-TSO------P',\r\n Rte: '10XFR-RTE------Q',\r\n Seps: '10XSK-SEPS-GRIDB',\r\n TennetBv: '10X1001A1001A361',\r\n TransnetBw: '10XDE-ENBW--TNGX',\r\n TennetGmbh: '10XDE-EON-NETZ-C',\r\n Transelectrica: '10XRO-TEL------2'\r\n};\r\n\r\nconst default_hubs = {\r\n AT: '10YAT-APG------L',\r\n BE: '10YBE----------2',\r\n CZ: '10YCZ-CEPS-----N',\r\n DE: '10YCB-GERMANY--8',\r\n FR: '10YFR-RTE------C',\r\n HU: '10YHU-MAVIR----U',\r\n HR: '10YHR-HEP------M',\r\n NL: '10YNL----------L',\r\n PL: '10YPL-AREA-----S',\r\n RO: '10YRO-TEL------P',\r\n SI: '10YSI-ELES-----O',\r\n SK: '10YSK-SEPS-----K'\r\n};\r\n\r\n\r\ninterface OwnState {\r\n option: string;\r\n setValue: (value: any) => void;\r\n tsos?: any;\r\n hubs?: any;\r\n reset: boolean;\r\n setReset: (value: boolean) => void;\r\n}\r\n\r\nexport const getDefaultValueForOption = function (option: string | undefined) {\r\n if (!option) return null;\r\n\r\n switch (option) {\r\n case \"presolved\": return false;\r\n case \"tso\": return [default_tsos[\"50Hertz\"]];\r\n case \"hubFrom\": return [default_hubs.NL];\r\n case \"hubTo\": return [default_hubs.NL];\r\n default: return '';\r\n }\r\n}\r\n\r\ntype SearchProps = OwnState & WithTranslation;\r\n\r\nconst InputField = ({ option, reset, setReset, setValue, tsos, hubs, t }: SearchProps) => {\r\n\r\n React.useEffect(() => {\r\n }, [reset]);\r\n\r\n switch (option) {\r\n case \"Presolved\":\r\n return (\r\n <div style={{ paddingTop: \"5px\" }}>\r\n <input type=\"radio\" id=\"true\" value=\"true\" name={option} onClick={e => setValue(true)} />\r\n <label htmlFor=\"true\">True</label>\r\n <input type=\"radio\" id=\"false\" value=\"false\" name={option} onClick={e => setValue(false)} />\r\n <label htmlFor=\"false\">False</label>\r\n <input type=\"radio\" id=\"null\" value=\"null\" name={option} onClick={e => setValue(null)} />\r\n <label htmlFor=\"null\">Unset</label>\r\n </div>\r\n )\r\n case \"Tso\":\r\n if (!tsos) {\r\n tsos = default_tsos;\r\n }\r\n return (\r\n <MultiselectField\r\n options={Object.entries(tsos).map((value, index) => ({ name: t('common_tsos:' + value[0]), eic: value[1] }))}\r\n setValue={setValue}\r\n clearValue={reset}\r\n setReset={setReset}\r\n />\r\n )\r\n case \"HubFrom\":\r\n if (!hubs) {\r\n hubs = default_hubs;\r\n }\r\n return (\r\n <MultiselectField\r\n options={Object.entries(hubs).map((value, index) => ({ name: t('common_hubs:' + value[0]), eic: value[1] }))}\r\n setValue={setValue}\r\n clearValue={reset}\r\n setReset={setReset}\r\n />\r\n )\r\n case \"HubTo\":\r\n if (!hubs) {\r\n hubs = default_hubs;\r\n }\r\n return (\r\n <MultiselectField\r\n options={Object.entries(hubs).map((value, index) => ({ name: t('common_hubs:' + value[0]), eic: value[1] }))}\r\n setValue={setValue}\r\n clearValue={reset}\r\n setReset={setReset}\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 withTranslation()(InputField);\r\n","import { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport InputField from \"./inputField\";\r\n\r\ninterface OwnState {\r\n option: string;\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 & WithTranslation;\r\n\r\nconst SearchOption = ({ option, reset, setReset, setOptionValue, t }: SearchProps) => {\r\n \r\n React.useEffect(() => {\r\n }, [reset]);\r\n\r\n\r\n return (\r\n <>\r\n <tr>\r\n <td style={{paddingRight: '10px'}}>{ t('core_cnec:' + option) }</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, v)}/>\r\n </td>\r\n </tr>\r\n \r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(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\ninterface OwnState {\r\n search: (params: any) => void;\r\n isLoading: boolean;\r\n filter: { totalRows: number, totalRowsWithFilter: number, maxRows: number };\r\n}\r\n\r\ntype SearchProps = OwnState & WithTranslation;\r\n\r\nconst initialSearchFields = [\"CneName\", \"Tso\", \"HubFrom\", \"HubTo\", \"Contingency\", \"Presolved\"];\r\n\r\nconst SearchField = ({ search, isLoading, filter, t }: SearchProps) => {\r\n\r\n const [searchFields, setSearchFields] = useState(initialSearchFields);\r\n const [searchOptions, setSearchOptions] = useState({});\r\n const [reset, setReset] = useState(false);\r\n\r\n React.useEffect(() => {\r\n }, [searchFields]);\r\n\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(\"myForm\") as HTMLFormElement).reset();\r\n setReset(true);\r\n setSearchOptions({});\r\n search({});\r\n }\r\n\r\n return (\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(\"core_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=\"myForm\" onSubmit={e => e.preventDefault()}>\r\n <table>\r\n {\r\n searchFields.map(field =>\r\n <SearchOption\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(\"core_common:reset\").toString()}\r\n </button>\r\n <br />\r\n <button onClick={() => { search(searchOptions) }}>\r\n {t(\"core_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(\"core_common:loading\") : t(\"core_common:totalWithoutFilter\") + \": \" + filter.totalRows}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{isLoading ? \"\" : t(\"core_common:totalWithFilter\") + \": \" + filter.totalRowsWithFilter}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{isLoading ? \"\" : t(\"core_common:displayedRows\") + \": \" + Math.min(filter.maxRows, filter.totalRowsWithFilter)}</div>\r\n </div>\r\n </td>\r\n </tr>\r\n </table>\r\n </form>\r\n </div>\r\n </Collapsible>\r\n );\r\n};\r\n\r\nexport default withTranslation()(SearchField);\r\n","import { default as React, useEffect, 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, GetFinalComputationResponse } from \"core/backend/core\";\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 from \"components/search\"\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"finalComputation\";\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialResponse: GetFinalComputationResponse = { 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 keysInDto = keys<FinalComputationDto>();\r\n const [pageNumber, setPageNumber] = useState(0);\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(true, true, false, true, keysInDto.map(d => d.replace(\"ptdf_\", \"hub_\")));\r\n setLoading(true);\r\n setResponse(initialResponse);\r\n const response = await httpService.apiGet<GetFinalComputationResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/finalComputation/index\",\r\n query: { Date: applicationState.selectedDate.toISOString(), Search: JSON.stringify(search), Skip: 0, Take: 1000 },\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 const pageCount = filteredData.length / applicationState.maxRows;\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(\"core_common:titleFinalComputation\")} senderId={senderId} />\r\n <div className=\"subHeader\">\r\n <SearchField\r\n isLoading={isLoading}\r\n search={s => { setSearch(s); setPageNumber(0); }}\r\n filter={{ totalRows: response.totalRows, totalRowsWithFilter: response.totalRowsWithFilter, maxRows: applicationState.maxRows }} />\r\n </div>\r\n <SheetDataPart isLoading={isLoading} data={response.data} error={error}>\r\n <List\r\n data={filteredData.slice(pageNumber * applicationState.maxRows, (pageNumber + 1) * applicationState.maxRows)}\r\n hubs={applicationState.selectedHubs.filter(h => h.selected && keysInDto.some((key) => key === \"ptdf_\" + h.id.toUpperCase()))}\r\n />\r\n </SheetDataPart>\r\n <Pagination\r\n currentPage={pageNumber}\r\n onPageClick={setPageNumber}\r\n pageCount={pageCount}\r\n />\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { PreFinalComputationDto } from \"core/backend/core\";\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(\"core_cnec:infoCnec\")}</th>\r\n <th colSpan={9} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:infoContingency\")}</th>\r\n <th colSpan={20 + (dtoHubs.length)} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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(\"core_cnec:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:cneName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:cneEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:direction\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:hubTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:substationFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:substationTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:elementType\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fmaxType\")}</th>\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"core_cnec:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:contingencyName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:branchName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:branchEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:hubTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:substationFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:substationTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:elementType\")}</th>\r\n\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"core_cnec:presolved\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:ram\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:imax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:u\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"core_cnec:fmax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:frm\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:frefinit\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fnrao\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fref\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fcore\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fall\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fuaf\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:amr\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"core_cnec:Ramr\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"core_cnec:RamrJustification\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"core_cnec:minRamTarget\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:ltaMargin\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:cva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:iva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:ftotalLtn\")}</th>\r\n\r\n {dtoHubs.map((hub) => <th key={hub.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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()(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 httpService from \"core/infrastructure/http\";\r\nimport { PreFinalComputationDto, GetPreFinalComputationResponse } from \"core/backend/core\";\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 from \"components/search\"\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"preFinalComputation\";\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialResponse: GetPreFinalComputationResponse = { 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 keysInDto = keys<PreFinalComputationDto>();\r\n const [pageNumber, setPageNumber] = useState(0);\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(true, true, false, false, keysInDto);\r\n setLoading(true);\r\n setResponse(initialResponse);\r\n const response = await httpService.apiGet<GetPreFinalComputationResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/preFinalComputation/index\",\r\n query: { Date: applicationState.selectedDate.toISOString(), Search: JSON.stringify(search), Skip: 0, Take: 1000 },\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 (searchText === null) return true;\r\n if (searchText === \"\") 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(searchText)) {\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 const pageCount = filteredData.length / applicationState.maxRows;\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(\"core_common:titlePreFinalComputation\")} senderId={senderId} />\r\n <div className=\"subHeader\">\r\n <SearchField\r\n isLoading={isLoading}\r\n search={s => {setSearch(s); setPageNumber(0);}} \r\n filter={{totalRows: response.totalRows, totalRowsWithFilter: response.totalRowsWithFilter, maxRows: applicationState.maxRows}}/>\r\n </div>\r\n <SheetDataPart isLoading={isLoading} data={response.data} error={error}>\r\n <List\r\n data={filteredData.slice(pageNumber * applicationState.maxRows, (pageNumber + 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={setPageNumber}\r\n pageCount={pageCount}\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { ReferenceNetPositionDto } from \"core/backend/core\";\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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"referenceNetPosition\";\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(true, false, false, true, availableDtoHubs);\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetReferenceNetPositionResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/referenceNetPosition/index\",\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.referenceNetPosition);\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(\"core_common:titleReferenceNetPosition\")} senderId={senderId} />\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { RefprogDto } from \"core/backend/core\";\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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"refprog\";\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(true, false, true, false, keys<RefprogDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetRefprogResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.refprog);\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(\"core_common:titleRefprog\")} senderId={senderId} />\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { ShadowAuctionAtcDto } from \"core/backend/core\";\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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"shadowAuctionAtc\";\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(true, false, true, false, keys<ShadowAuctionAtcDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetShadowAuctionAtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.shadowAuctionAtc);\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(\"core_common:titleShadowAuctionATC\")} senderId={senderId} />\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { ShadowPricesDto } from \"core/backend/core\";\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(\"core_shadowPrices:infoCnec\")}</th>\r\n <th colSpan={hubs.length} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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(\"core_shadowPrices:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:cneName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:cneEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:direction\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:ContName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:BranchEic\")}</th>\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:shadowPrice\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:ram\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:imax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"core_shadowPrices:fmax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:frm\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:fref\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:f0core\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:f0all\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:fuaf\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:amr\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:ltaMargin\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:cva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:iva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:ftotalLtn\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:minRamFactor\")}</th>\r\n\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:maxZ2ZPtdf\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_shadowPrices:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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()(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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"shadowPrices\";\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(true, true, false, true, keysInDto);\r\n setLoading(true);\r\n setResponse(initialResponse);\r\n const response = await httpService.apiGet<GetShadowPricesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\r\n query: { Date: applicationState.selectedDate.toISOString(), Search: search, Skip: 0, Take: 1000 },\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(\"core_common:titleShadowPrices\")} senderId={senderId} />\r\n <div className=\"subHeader\">\r\n <div style={{ display: \"inline-block\" }}>\r\n <div className=\"inputlabel\">{t(\"core_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(\"core_common:totalWithoutFilter\") + \": \" + response.totalRows}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"core_common:totalWithFilter\") + \": \" + response.totalRowsWithFilter}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"core_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);\r\n","import * as React from \"react\";\r\n\r\nimport { SpanningDefaultFBPDto } from \"core/backend/core\";\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { SpanningDefaultFBPDto } from \"core/backend/core\";\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(\"core_spanningDefaultFBP:computation\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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()(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 } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"spanningDefaultFBP\";\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(true, false, false, false, keys<SpanningDefaultFBPDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetSpanningDefaultFBPResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.spanningDefaultFBP);\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(\"core_common:titleSpanningDefaultFBParameter\")} senderId={senderId} />\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 * as React from \"react\";\r\n\r\nimport { ValidationReductionsDto } from \"core/backend/core\";\r\nimport TDatetime from \"components/TDatetime\";\r\nimport CheckIcon from \"components/checkIcon\";\r\n\r\ninterface OwnProps {\r\n dto: ValidationReductionsDto;\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 className=\"alignLeft\">{(dto.cnecName || \"\").toLocaleUpperCase()}</td>\r\n <td className=\"alignLeft\">{dto.tsoName}</td>\r\n <td><CheckIcon checked={dto.isReturnedBranch} /></td>\r\n <td>{dto.cva}</td>\r\n <td>{dto.iva}</td>\r\n <td className=\"alignLeft\">{dto.justification}</td>\r\n </tr>;\r\n\r\nexport default Row;","import { default as React, useContext } from \"react\";\r\n\r\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { ValidationReductionsDto } from \"core/backend/core\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: ValidationReductionsDto[];\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\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_validationReductions:cnecName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_validationReductions:tsoName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_validationReductions:returnedBranch\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_validationReductions:cva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_validationReductions:iva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_validationReductions:justification\")}</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()(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 httpService from \"core/infrastructure/http\";\r\nimport { ValidationReductionsDto, GetValidationReductionsResponse } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"validationReductions\";\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: ValidationReductionsDto[] = [];\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 [searchText, setSearchText] = useState(\"\");\r\n const [pageNumber, setPageNumber] = useState(0);\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(true, false, false, false, keys<ValidationReductionsDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetValidationReductionsResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\r\n query: { Date: applicationState.selectedDate.toISOString(), Search: search, Skip: 0, Take: 1000 },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.validationReductions);\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(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 const pageCount = filteredData.length / applicationState.maxRows;\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(\"core_common:titleValidationReductions\")} senderId={senderId} />\r\n <div className=\"subHeader\">\r\n <div style={{ display: \"inline-block\" }}>\r\n <div className=\"inputlabel\">{t(\"core_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(\"core_Total Rows\") + \": \" + data.length}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"core_Search Rows\") + \": \" + filteredData.length}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{t(\"core_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(pageNumber * applicationState.maxRows, (pageNumber + 1) * applicationState.maxRows)} />\r\n </SheetDataPart>\r\n <Pagination\r\n currentPage={pageNumber}\r\n onPageClick={setPageNumber}\r\n pageCount={pageCount}\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { InitialComputationDto } from \"core/backend/core\";\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(\"core_cnec:infoCnec\")}</th>\r\n <th colSpan={9} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:infoContingency\")}</th>\r\n <th colSpan={20 + (dtoHubs.length)} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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(\"core_cnec:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:cneName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:cneEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:direction\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:hubTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:substationFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:substationTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:elementType\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fmaxType\")}</th>\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"core_cnec:tso\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:contingencyName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:branchName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:branchEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:hubTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:substationFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:substationTo\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:elementType\")}</th>\r\n\r\n\r\n <th className={classNames(\"fixedHeader\", \"lineLeft\")} style={{ top: top + \"px\" }}>{t(\"core_cnec:presolved\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:ram\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:imax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:u\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"core_cnec:fmax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:frm\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:frefinit\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fnrao\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fref\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fcore\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fall\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:fuaf\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:amr\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:ltaMargin\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:cva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:iva\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_cnec:ftotalLtn\")}</th>\r\n\r\n {dtoHubs.map((hub) => <th key={hub.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"core_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()(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 httpService from \"core/infrastructure/http\";\r\nimport { InitialComputationDto, GetInitialComputationResponse } from \"core/backend/core\";\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 from \"components/search\"\r\n\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"initialComputation\";\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialResponse: GetInitialComputationResponse = { 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 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 useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(true, true, false, false, keysInDto);\r\n setLoading(true);\r\n setResponse(initialResponse);\r\n const response = await httpService.apiGet<GetInitialComputationResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/initialComputation/index\",\r\n query: { Date: applicationState.selectedDate.toISOString(), Search: JSON.stringify(search), Skip: 0, Take: 1000 },\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 const pageCount = filteredData.length / applicationState.maxRows;\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(\"core_common:titleInitialComputation\")} senderId={senderId} />\r\n <div className=\"subHeader\">\r\n <SearchField\r\n isLoading={isLoading}\r\n search={s => { setSearch(s); setPageNumber(0); }}\r\n filter={{ totalRows: response.totalRows, totalRowsWithFilter: response.totalRowsWithFilter, maxRows: applicationState.maxRows }} />\r\n </div>\r\n <SheetDataPart isLoading={isLoading} data={response.data} error={error}>\r\n <List\r\n data={filteredData.slice(pageNumber * applicationState.maxRows, (pageNumber + 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={setPageNumber}\r\n pageCount={pageCount}\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\nimport Table from \"react-bootstrap/table\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { BexRestrictionsDto } from \"core/backend/core\";\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, GetBexRestrictionsResponse } from \"core/backend/core\";\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\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"bexRestrictions\";\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(true, false, true, false, keys<BexRestrictionsDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiGet<GetBexRestrictionsResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/\" + senderId + \"/index\",\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.bexRestrictions);\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(\"core_common:titleBexRestrictions\")} senderId={senderId} />\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 { RefprogDto } from \"core/backend/core\";\r\n\r\nimport Monitoring from \"core/pages/system/monitoring\";\r\nimport MonitoringFailed from \"core/pages/system/monitoringFailed\";\r\nimport JaoLogin from \"core/pages/system/jaoLogin\";\r\n\r\nimport CoreHome from \"core/pages/core/home\";\r\nimport CoreApi from \"core/pages/core/api\";\r\nimport CoreScheduledExchanges from \"core/pages/core/scheduledExchanges\";\r\nimport CoreAllocationConstraint from \"core/pages/core/allocationConstraint\";\r\nimport CoreAtc from \"core/pages/core/atc\";\r\nimport CoreBorderDataOverview from \"core/pages/core/borderDataOverview\";\r\nimport CoreCongestionIncome from \"core/pages/core/congestionIncome\";\r\nimport CoreCoreMap from \"core/pages/core/coreMap\";\r\nimport CoreCoreMarketGraph from \"core/pages/core/coreMarketGraph\";\r\nimport CoreCoreMarketView from \"core/pages/core/coreMarketView\";\r\nimport CoreCra from \"core/pages/core/cra\";\r\nimport CoreD2CF from \"core/pages/core/d2cf\";\r\nimport CoreIntradayAtc from \"core/pages/core/intradayAtc\";\r\nimport CoreIntradayNtc from \"core/pages/core/intradayNtc\";\r\nimport CoreIntradayImplicitAllocation from \"core/pages/core/intradayImplicitAllocation\";\r\nimport CoreLta from \"core/pages/core/lta\";\r\nimport CoreLtn from \"core/pages/core/ltn\";\r\nimport CoreMaxExchanges from \"core/pages/core/maxExchanges\";\r\nimport CoreMaxNetPos from \"core/pages/core/maxNetPos\";\r\nimport CoreNetPos from \"core/pages/core/netPos\";\r\nimport CorePra from \"core/pages/core/pra\";\r\nimport CorePriceSpread from \"core/pages/core/priceSpread\";\r\nimport CoreFinalComputation from \"core/pages/core/finalComputation\";\r\nimport CorePreFinalComputation from \"core/pages/core/preFinalComputation\";\r\nimport CoreReferenceNetPosition from \"core/pages/core/referenceNetPosition\"\r\nimport CoreRefprog from \"core/pages/core/refprog\";\r\nimport CoreShadowAuctionAtc from \"core/pages/core/shadowAuctionAtc\";\r\nimport CoreShadowPrices from \"core/pages/core/shadowPrices\";\r\nimport CoreSpanningDefaultFBP from \"core/pages/core/spanningDefaultFBP\";\r\nimport CoreValidationReductions from \"core/pages/core/validationReductions\";\r\nimport CoreInitialComputation from \"core/pages/core/initialComputation\";\r\nimport CoreBexRestrictions from \"core/pages/core/bexRestrictions\";\r\n\r\n\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { useEffect } from \"react\";\r\n\r\nexport interface ApplicationState {\r\n applicationRoot: string;\r\n apiService: 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 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 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 isDateEnabled: boolean;\r\n isHourEnabled: boolean;\r\n isBorderEnabled: boolean;\r\n isHubEnabled: boolean;\r\n handleInputAvailablilityChange: (dateEnabled: boolean, hourEnabled: boolean, borderEnabled: boolean, hubEnabled: boolean, availableColumns: string[]) => void;\r\n pages: any;\r\n initialized: boolean;\r\n maxRows: number;\r\n}\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}\r\n\r\nclass App extends React.Component<Props & WithTranslation, ApplicationState> {\r\n\r\n\r\n\r\n constructor(props: Props & WithTranslation) {\r\n super(props);\r\n\r\n this.state = {\r\n applicationRoot: props.applicationRoot,\r\n apiService: props.apiService,\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: new Date(new Date(new Date().setDate(new Date().getDate() + 1)).setHours(0, 0, 0, 0)),\r\n handleDateChange: this.handleDateChange,\r\n selectedBorders: [],\r\n handleBorderChange: this.handleBorderChange,\r\n handleHubChange: this.handleHubChange,\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 isDateEnabled: true,\r\n isHourEnabled: true,\r\n isBorderEnabled: true,\r\n isHubEnabled: true,\r\n initialized: false,\r\n maxRows: 100,\r\n handleInputAvailablilityChange: this.handleInputAvailablilityChange,\r\n pages: {\r\n monitoring: () => <Monitoring applicationState={this.state} />,\r\n monitoringFailed: () => <MonitoringFailed applicationState={this.state} />,\r\n jaoLogin: () => <JaoLogin applicationState={this.state} />,\r\n\r\n core: {\r\n home: () => <CoreHome applicationState={this.state} />,\r\n api: () => <CoreApi applicationState={this.state} />,\r\n scheduledExchanges: () => <CoreScheduledExchanges applicationState={this.state} />,\r\n allocationConstraint: () => <CoreAllocationConstraint applicationState={this.state} />,\r\n atc: () => <CoreAtc applicationState={this.state} />,\r\n borderDataOverview: () => <CoreBorderDataOverview applicationState={this.state} />,\r\n congestionIncome: () => <CoreCongestionIncome applicationState={this.state} />,\r\n coreMap: () => <CoreCoreMap applicationState={this.state} />,\r\n coreMarketGraph: () => <CoreCoreMarketGraph applicationState={this.state} />,\r\n coreMarketView: () => <CoreCoreMarketView applicationState={this.state} />,\r\n cra: () => <CoreCra applicationState={this.state} />,\r\n d2cf: () => <CoreD2CF applicationState={this.state} />,\r\n intradayAtc: () => <CoreIntradayAtc applicationState={this.state} />,\r\n intradayNtc: () => <CoreIntradayNtc applicationState={this.state} />,\r\n intradayImplicitAllocation: () => <CoreIntradayImplicitAllocation applicationState={this.state} />,\r\n lta: () => <CoreLta applicationState={this.state} />,\r\n ltn: () => <CoreLtn applicationState={this.state} />,\r\n netPos: () => <CoreNetPos applicationState={this.state} />,\r\n maxExchanges: () => <CoreMaxExchanges applicationState={this.state} />,\r\n maxNetPos: () => <CoreMaxNetPos applicationState={this.state} />,\r\n pra: () => <CorePra applicationState={this.state} />,\r\n priceSpread: () => <CorePriceSpread applicationState={this.state} />,\r\n finalComputation: () => <CoreFinalComputation applicationState={this.state} />,\r\n preFinalComputation: () => <CorePreFinalComputation applicationState={this.state} />,\r\n referenceNetPosition: () => <CoreReferenceNetPosition applicationState={this.state} />,\r\n refprog: () => <CoreRefprog applicationState={this.state} />,\r\n shadowAuctionAtc: () => <CoreShadowAuctionAtc applicationState={this.state} />,\r\n shadowPrices: () => <CoreShadowPrices applicationState={this.state} />,\r\n spanningDefaultFBP: () => <CoreSpanningDefaultFBP applicationState={this.state} />,\r\n validationReductions: () => <CoreValidationReductions applicationState={this.state} />,\r\n initialComputation: () => <CoreInitialComputation applicationState={this.state} />,\r\n bexRestrictions: () => <CoreBexRestrictions applicationState={this.state} />,\r\n }\r\n }\r\n };\r\n\r\n };\r\n\r\n componentDidUpdate() {\r\n\r\n }\r\n componentDidMount() {\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 i18n.default.loadNamespaces([\r\n \"common\", \"common_home\", \"common_tsos\", \"common_borders\", \"common_hubs\", \"monitoring\", \"login\",\r\n \"core_common\", \"core_home\", \"core_borderDataOverview\", \"core_cnec\", \"core_congestionIncome\", \"core_cra\", \"core_d2cf\", \"core_intradayAtc\", \"core_intradayNtc\", \"core_intradayImplicitAllocation\",\r\n \"core_maxNetPos\", \"core_pra\", \"core_ptdf\", \"core_shadowPrices\", \"core_spanningDefaultFBP\", \"core_validationReductions\", \"core_virgin\",\r\n \"core_s\"\r\n ], () => { // LOAD TRANSLATION FILES\r\n\r\n /*const t = this.props.t;\r\n const allBorderTranslations = i18n.default.getResourceBundle(\"en\", \"common_borders\");\r\n const allHubTranslations = i18n.default.getResourceBundle(\"en\", \"common_hubs\");\r\n const allTsoTranslations = i18n.default.getResourceBundle(\"en\", \"common_tsos\");\r\n\r\n const cweBorders = [\"BE_FR\", \"DE_AT\", \"DE_BE_DC\", \"DE_FR\", \"DE_NL\", \"NL_BE\"];\r\n const coreBorders = [\"AT_CZ\", \"AT_HU\", \"AT_SI\", \"CZ_PL\", \"CZ_SK\", \"DE_CZ\", \"HR_HU\", \"HR_SI\", \"HU_RO\", \"HU_SK\", \"PL_DE\", \"PL_SK\"];\r\n\r\n const cweHubs = [\"ALBE\", \"ALDE\", \"AT\", \"BE\", \"DE\", \"FR\", \"NL\"];\r\n const coreHubs = [\"CZ\", \"HR\", \"HU\", \"PL\", \"RO\", \"SI\", \"SK\"];\r\n\r\n const refprogBorders = keys<RefprogDto>().filter(k => k.startsWith(\"border_\")).map(k => k.replace(\"border_\", \"\"));\r\n const selectedBorders = Object.keys(allBorderTranslations)\r\n .concat(refprogBorders)\r\n .filter((value, index, self) => self.indexOf(value) === index) // =distinct\r\n .sort()\r\n .map((k) => {\r\n return {\r\n id: k,\r\n text: allBorderTranslations[k] ?? k.replace(\"_\", \"►\"),\r\n selected: true,\r\n isCwe: cweBorders.some(b => b.toUpperCase() === k.toUpperCase()),\r\n isCore: coreBorders.some(b => b.toUpperCase() === k.toUpperCase()),\r\n isDisplayed: true\r\n };\r\n }).sort((a, b) => a.id.localeCompare(b.id));\r\n const selectedHubs = Object.keys(allHubTranslations).map((k) => {\r\n return {\r\n id: k,\r\n text: allHubTranslations[k],\r\n selected: true,\r\n isCwe: cweHubs.some(h => h.toUpperCase() === k.toUpperCase()),\r\n isCore: coreHubs.some(h => h.toUpperCase() === k.toUpperCase()),\r\n isDisplayed: true\r\n };\r\n }).sort((a, b) => a.id.localeCompare(b.id));\r\n this.setState({\r\n selectedBorders: selectedBorders,\r\n selectedHubs: selectedHubs,\r\n hubExchange: {},//Object.assign({}, ...selectedHubs.filter(b => b.isCwe || b.isCore).map((hub) => ({ [hub.id]: { value: 0 } }))),\r\n hubToHubExchange: {},//Object.assign({}, ...selectedBorders.filter(b => b.isCwe || b.isCore || b.id === \"HU_SI\").map((border) => ({ [border.id]: { text: \"0\", value: 0 } }))),\r\n hubToHubPosition: {},//Object.assign({}, ...selectedHubs.filter(h => h.isCwe || h.isCore).map((hub) => ({ [hub.id]: { text: \"0\", value: 0 } }))),\r\n });\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 isCwe: false,\r\n isCore: false,\r\n isDisplayed: true\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 = (dateEnabled: boolean, hourEnabled: boolean, borderEnabled: boolean, hubEnabled: boolean, availableColumns: string[]) => {\r\n this.setState({\r\n isDateEnabled: dateEnabled,\r\n isHourEnabled: hourEnabled,\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, isCwe: false, isCore: false\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_IDA1_\" + 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, isCwe: false, isCore: false\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, isCwe: false, isCore: false\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 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 const pagePath = window.location.pathname.replace(\"/\", \"\").replace(\"/\", \"\").replace(\"/\", \"\");\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 <Route path=\"/monitoring\" exact={true} component={this.state.pages.monitoring} />\r\n <Route path=\"/monitoringFailed\" exact={true} component={this.state.pages.monitoringFailed} />\r\n <Route path=\"/jaoLogin\" exact={true} component={this.state.pages.jaoLogin} />\r\n\r\n <Route path=\"/\" exact={true} component={this.state.pages.core.home} />\r\n <Route path=\"/core\" exact={true} component={this.state.pages.core.home} />\r\n <Route path=\"/home\" exact={true} component={this.state.pages.core.home} />\r\n\r\n <Route path=\"/api\" component={this.state.pages.core.api} />\r\n <Route path=\"/scheduledExchanges\" component={this.state.pages.core.scheduledExchanges} />\r\n <Route path=\"/allocationConstraint\" component={this.state.pages.core.allocationConstraint} />\r\n <Route path=\"/atc\" component={this.state.pages.core.atc} />\r\n <Route path=\"/borderDataOverview\" component={this.state.pages.core.borderDataOverview} />\r\n <Route path=\"/congestionIncome\" component={this.state.pages.core.congestionIncome} />\r\n <Route path=\"/coreMap\" component={this.state.pages.core.coreMap} />\r\n <Route path=\"/coreMarketGraph\" component={this.state.pages.core.coreMarketGraph} />\r\n <Route path=\"/coreMarketView\" component={this.state.pages.core.coreMarketView} />\r\n <Route path=\"/cra\" component={this.state.pages.core.cra} />\r\n <Route path=\"/d2cf\" component={this.state.pages.core.d2cf} />\r\n <Route path=\"/finalComputation\" component={this.state.pages.core.finalComputation} />\r\n <Route path=\"/initialComputation\" component={this.state.pages.core.initialComputation} />\r\n <Route path=\"/intradayAtc\" component={this.state.pages.core.intradayAtc} />\r\n <Route path=\"/intradayNtc\" component={this.state.pages.core.intradayNtc} />\r\n <Route path=\"/intradayImplicitAllocation\" component={this.state.pages.core.intradayImplicitAllocation} />\r\n <Route path=\"/lta\" component={this.state.pages.core.lta} />\r\n <Route path=\"/ltn\" component={this.state.pages.core.ltn} />\r\n <Route path=\"/netPos\" component={this.state.pages.core.netPos} />\r\n <Route path=\"/maxExchanges\" component={this.state.pages.core.maxExchanges} />\r\n <Route path=\"/maxNetPos\" component={this.state.pages.core.maxNetPos} />\r\n <Route path=\"/pra\" component={this.state.pages.core.pra} />\r\n <Route path=\"/preFinalComputation\" component={this.state.pages.core.preFinalComputation} />\r\n <Route path=\"/priceSpread\" component={this.state.pages.core.priceSpread} />\r\n <Route path=\"/referenceNetPosition\" component={this.state.pages.core.referenceNetPosition} />\r\n <Route path=\"/refprog\" component={this.state.pages.core.refprog} />\r\n <Route path=\"/shadowAuctionAtc\" component={this.state.pages.core.shadowAuctionAtc} />\r\n <Route path=\"/shadowPrices\" component={this.state.pages.core.shadowPrices} />\r\n <Route path=\"/spanningDefaultFBP\" component={this.state.pages.core.spanningDefaultFBP} />\r\n <Route path=\"/validationReductions\" component={this.state.pages.core.validationReductions} />\r\n <Route path=\"/bexRestrictions\" component={this.state.pages.core.bexRestrictions} />\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\nconst translated = withTranslation()(App);\r\nexport default translated;\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\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}\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 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 </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":""}