{"version":3,"sources":["webpack://[name]/webpack/universalModuleDefinition","webpack://[name]/webpack/bootstrap","webpack://[name]/./src/components/TDatetime.tsx","webpack://[name]/./src/core/pages/ibwt/cnecInfo/row.tsx","webpack://[name]/./src/core/pages/ibwt/idCnecInfo/row.tsx","webpack://[name]/./src/core/pages/ibwt/idForecasted/row.tsx","webpack://[name]/./src/core/pages/ibwt/forecasted/row.tsx","webpack://[name]/./src/core/pages/ibwt/finalTtcNtc/row.tsx","webpack://[name]/./src/core/pages/ibwt/idFinalTtcNtc/row.tsx","webpack://[name]/./src/core/pages/ibwt/scheduledExchanges/row.tsx","webpack://[name]/./src/core/pages/ibwt/priceSpread/row.tsx","webpack://[name]/./src/core/pages/ibwt/congestionIncome/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/timePicker.module.scss","webpack://[name]/./src/components/jaoLogoMenu.module.scss","webpack://[name]/./src/components/checkIcon.tsx","webpack://[name]/./src/components/sheetDataPart.module.scss","webpack://[name]/./src/core/pages/system/jaoLogin/login.module.scss","webpack://[name]/./src/core/pages/system/home/index.module.scss","webpack://[name]/./src/components/select.module.scss","webpack://[name]/./src/components/searchForApi/search.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/core/infrastructure/http/index.ts","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/utils.ts","webpack://[name]/./src/core/pages/system/monitoring/list.tsx","webpack://[name]/./src/core/pages/system/monitoring/index.tsx","webpack://[name]/./src/core/pages/pageList.tsx","webpack://[name]/./src/core/pages/system/monitoringFailed/row.tsx","webpack://[name]/./src/core/pages/system/monitoringFailed/list.tsx","webpack://[name]/./src/core/pages/system/monitoringFailed/index.tsx","webpack://[name]/./src/core/pages/system/monitoringConfig/selectField.tsx","webpack://[name]/./src/core/pages/system/monitoringConfig/editableRow.tsx","webpack://[name]/./src/core/pages/system/monitoringConfig/readonlyRow.tsx","webpack://[name]/./src/core/pages/system/monitoringConfig/row.tsx","webpack://[name]/./src/core/pages/system/monitoringConfig/list.tsx","webpack://[name]/./src/core/pages/system/monitoringConfig/index.tsx","webpack://[name]/./src/core/pages/system/jaoLogin/index.tsx","webpack://[name]/./src/core/pages/system/home/index.tsx","webpack://[name]/./src/components/select.tsx","webpack://[name]/./src/core/pages/system/api/tab_curl.tsx","webpack://[name]/./src/components/searchForApi/inputField.tsx","webpack://[name]/./src/components/searchForApi/searchOption.tsx","webpack://[name]/./src/components/searchForApi/index.tsx","webpack://[name]/./src/core/pages/system/api/tab_tryout.tsx","webpack://[name]/./src/core/pages/system/api/tab_request.tsx","webpack://[name]/./src/core/pages/system/api/tab_response.tsx","webpack://[name]/./src/core/pages/system/api/index.tsx","webpack://[name]/./src/core/pages/ibwt/ntcAdjustment/row.tsx","webpack://[name]/./src/core/pages/ibwt/ntcAdjustment/list.tsx","webpack://[name]/./src/core/pages/ibwt/ntcAdjustment/index.tsx","webpack://[name]/./src/core/pages/ibwt/allocationConstraint/row.tsx","webpack://[name]/./src/core/pages/ibwt/allocationConstraint/list.tsx","webpack://[name]/./src/core/pages/ibwt/allocationConstraint/disclaimer.tsx","webpack://[name]/./src/core/pages/ibwt/allocationConstraint/index.tsx","webpack://[name]/./src/core/pages/ibwt/idAllocationConstraint/row.tsx","webpack://[name]/./src/core/pages/ibwt/idAllocationConstraint/list.tsx","webpack://[name]/./src/core/pages/ibwt/idAllocationConstraint/disclaimer.tsx","webpack://[name]/./src/core/pages/ibwt/idAllocationConstraint/index.tsx","webpack://[name]/./src/core/pages/ibwt/cnecInfo/list.tsx","webpack://[name]/./src/components/pagination.tsx","webpack://[name]/./src/components/search/inputField.tsx","webpack://[name]/./src/components/search/searchOption.tsx","webpack://[name]/./src/components/search/index.tsx","webpack://[name]/./src/core/pages/ibwt/cnecInfo/index.tsx","webpack://[name]/./src/core/pages/ibwt/idNtcAdjustment/row.tsx","webpack://[name]/./src/core/pages/ibwt/idNtcAdjustment/list.tsx","webpack://[name]/./src/core/pages/ibwt/idNtcAdjustment/index.tsx","webpack://[name]/./src/core/pages/ibwt/idCnecInfo/list.tsx","webpack://[name]/./src/core/pages/ibwt/idCnecInfo/index.tsx","webpack://[name]/./src/core/pages/ibwt/idForecasted/list.tsx","webpack://[name]/./src/core/pages/ibwt/idForecasted/index.tsx","webpack://[name]/./src/core/pages/ibwt/forecasted/list.tsx","webpack://[name]/./src/core/pages/ibwt/forecasted/index.tsx","webpack://[name]/./src/components/borderName.tsx","webpack://[name]/./src/core/pages/ibwt/finalTtcNtc/list.tsx","webpack://[name]/./src/core/pages/ibwt/finalTtcNtc/index.tsx","webpack://[name]/./src/core/pages/ibwt/idFinalTtcNtc/list.tsx","webpack://[name]/./src/core/pages/ibwt/idFinalTtcNtc/index.tsx","webpack://[name]/./src/core/pages/ibwt/staticGridModelLines/row.tsx","webpack://[name]/./src/core/pages/ibwt/staticGridModelLines/list.tsx","webpack://[name]/./src/core/pages/ibwt/staticGridModelLines/index.tsx","webpack://[name]/./src/core/pages/ibwt/staticGridModelTransformers/row.tsx","webpack://[name]/./src/core/pages/ibwt/staticGridModelTransformers/list.tsx","webpack://[name]/./src/core/pages/ibwt/staticGridModelTransformers/index.tsx","webpack://[name]/./src/core/pages/ibwt/validationId/row.tsx","webpack://[name]/./src/core/pages/ibwt/validationId/list.tsx","webpack://[name]/./src/core/pages/ibwt/validationId/index.tsx","webpack://[name]/./src/core/pages/ibwt/validationDa/row.tsx","webpack://[name]/./src/core/pages/ibwt/validationDa/list.tsx","webpack://[name]/./src/core/pages/ibwt/validationDa/index.tsx","webpack://[name]/./src/core/pages/ibwt/scheduledExchanges/list.tsx","webpack://[name]/./src/core/pages/ibwt/scheduledExchanges/ID1/index.tsx","webpack://[name]/./src/core/pages/ibwt/priceSpread/list.tsx","webpack://[name]/./src/core/pages/ibwt/priceSpread/ID1/index.tsx","webpack://[name]/./src/core/pages/ibwt/congestionIncome/list.tsx","webpack://[name]/./src/core/pages/ibwt/congestionIncome/ID1/index.tsx","webpack://[name]/./src/core/pages/ibwt/scheduledExchanges/ID2/index.tsx","webpack://[name]/./src/core/pages/ibwt/priceSpread/ID2/index.tsx","webpack://[name]/./src/core/pages/ibwt/congestionIncome/ID2/index.tsx","webpack://[name]/./src/core/pages/ibwt/scheduledExchanges/ID3/index.tsx","webpack://[name]/./src/core/pages/ibwt/priceSpread/ID3/index.tsx","webpack://[name]/./src/core/pages/ibwt/congestionIncome/ID3/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","webpack://[name]/./src/core/pages/system/monitoring/monitoring.module.scss","webpack://[name]/./src/core/pages/system/monitoringConfig/config.module.scss","webpack://[name]/./src/core/pages/system/api/api.module.scss","webpack://[name]/./src/components/downloadButton.module.scss"],"names":["root","factory","exports","module","define","amd","window","webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","oldJsonpFunction","slice","rowSpan","date","left","className","localCweDate","Date","toLocaleString","timeZone","style","whiteSpace","display","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","Row","dto","hubs","eic","from","to","contingencies","hubFrom","hubTo","dateTimeUtc","cneName","cneEic","direction","sensitivity","checked","selected","limiting","fmax","fref","fntc","mncc","mccc","totalMaczt","map","hub","id","eval","toUpperCase","frm","fltn","ram","amr","ltaMargin","number","translated","index","borders","border","ttc_LimitedBy","color","icon","spinner","doubleBounce1","doubleBounce2","overlay","logo","text","classes","title","withTranslation","padding","background","enabled","onChange","open","state","setState","search","setSearch","interceptEvent","event","preventDefault","stopPropagation","handleChange","item","clickedOnOption","handleClose","blurTimeout","undefined","handleBlur","clearTimeout","setTimeout","handleMouseDown","classNameInput","textField","disabled","xxx","classNameDropDown","dropdownmenu","hidden","classNameSearch","displayedItems","filter","f","isDisplayed","selectedItems","onClick","onBlur","tag","type","onFocus","placeholder","e","currentTarget","dropdownitem","notselected","onMouseDown","href","toLowerCase","includes","route","activeClassName","active","menuItem","menuIcon","cancelToken","a","CancelToken","source","FormattedErrorMessage","error","ok","isCancel","message","response","errorDetail","cancel","headers","applicationState","userToken","post","query","token","status","applicationRoot","code","url","reference","alert","download","downloadUrl","responseB","URL","createObjectURL","Blob","link","document","createElement","setAttribute","fileName","body","appendChild","click","removeChild","Canceled","statusText","config","dateSteps","selectedDate","startsWith","availableHours","hour","setHours","useEffect","rootDate","setCweTimeForDate","getTwoDigits","val","getHourRange","getCweTimeForDisplayPurposes","getTimezoneOffset","setUTCHours","getUTCHours","dayLightSaveCheck","list","newDate","getDay","Error","loadAllHours","isHourDisabled","toUTCString","horizons","pageList","pages","availableDates","setAvailableDates","pathname","filteredHorizons","h","horizon","selectedHorizon","mapHorizon","isSelected","toPath","forEach","replace","some","webUrl","find","handleHorizonChange","borderRadius","height","backgroundColor","textAlign","lineHeight","cursor","textDecoration","path","http","apiService","Utc","getRootUtcTime","toISOString","Page","senderId","gridTemplateRows","zIndex","subTitle","marginLeft","position","arrow","arrowLeft","setFullYear","setDate","handleDateChange","arrowRight","locale","placeholderText","isClearable","fixedHeight","todayButton","dateFormat","showYearPicker","highlightDates","isHubEnabled","selectedHubs","handleHubChange","isBorderEnabled","selectedBorders","handleBorderChange","gridTemplateColumns","repeat","gap","width","justifyContent","paddingTop","marginTop","fontSize","fontWeight","userRole","margin","overflowY","overflow","marginRight","paddingLeft","menu","indexOf","props","top","scrollPosition","setScrollPosition","noDataMessage","dataRows","flex","onScroll","scrollTop","scrollLeft","cloneElement","children","isLoading","loading","nodata","pageConfig","formats","startDate","setStartDate","endDate","setEndDate","showPopup","setShowPopup","showWait","setShowPleaseWait","setError","CweDateInput","ref","cweDate","cweString","parameter","readOnly","pageButton","getUntilFor1Hour","getUntilFor1Day","lightBox","popup","marginBottom","closeButton","customInput","convertCweHourToUtcDate","selectsStart","showTimeSelect","timeFormat","timeIntervals","timeCaption","selectsEnd","popupButton","fileType","apiType","apiUrl","FromUtc","ToUtc","res","showDownload","downloadFormats","showTestData","disclaimer","paddingRight","verticalAlign","businessDayUtc","page","pending","received","expected","spanning","followUpActionInitiated","makePageChange","pageNumber","setPageNumber","makeRequest","rows","maxRows","skip","take","Math","floor","pageSize","initialData","page_config","setLoading","setData","getDefaultToDateTime","Filter","Skip","Take","replaceArray","str","max","sort","b","findIndex","x","JSON","stringify","parameters","parameterOrder","sortParameters","handleInputAvailablilityChange","dataForHorizon","selectableTabs","TDatetime","values","selectField","target","concat","files","setEditDto","tableName","backupFileType","spanningFile","deadline","deleteConfig","editConfig","editDefault","cancelEditConfig","isEdit","setEdit","editDto","actions","emptyDto","addConfig","isAddition","setAddition","addIcon","initialLists","setPages","setFiles","filetypes","userName","setUserName","password","setPassword","container","onSubmit","userMail","changeToken","guestToken","htmlFor","submitButton","username","location","reload","s2","float","highlight","selectedItem","method","overflowWrap","multiselectRef","option","reset","setReset","setValue","current","resetSelectedValues","createRef","options","onSelect","v","onRemove","showCheckbox","closeOnSelect","showArrow","avoidHighlightFirstOption","displayValue","setOptionValue","searchFields","searchOptions","setSearchOptions","newFilter","onClosing","getElementsByClassName","onOpen","trigger","collapsible","searchLabel","collapsibleArrow","field","borderTop","getElementById","toString","selectedEndpoint","jsonStyle","size","duration","numberOfRows","setResponse","toUtc","setToUtc","setSkip","setTake","setMethod","getQueryRequest","parametersSearch","parse","getQueryString","keys","encodeURIComponent","join","Line","textTransform","UtcDateInput","handleNumChange","numStr","setNum","min","num","parseInt","isNaN","Fragment","setSeconds","filterFields","start","resp","head","round","getTime","doRequest","doRequestPost","theme","main","string","boolean","apis","setEndpoint","selectedTab","setSelectedTab","apiList","substring","baseUrl","protocol","host","marginDiv","maxWidth","selectableBorder","json","adjustment","totalLoad","totalNonDisp","minDispNeeded","allocationConstraintImport","allocationConstraintExport","y","keysInDto","dtoHubs","endsWith","colSpan","pageCount","currentPage","realCount","onPageClick","containerClassName","forcePage","onPageChange","scrollTo","breakClassName","pageClassName","previousClassName","nextClassName","pageLinkClassName","previousLinkClassName","nextLinkClassName","breakLabel","disabledClassName","nextLabel","previousLabel","marginPagesDisplayed","pageRangeDisplayed","default_hubs","totalRows","totalRowsWithFilter","filterFields_CnecInfo","lastModifiedOn","appliedFilter","cnecName","contingency","messages","rejected","ceil","filterFields_IdCnecInfo","tsos","titleTop","selectedTsos","dtoBorders","dangerouslySetInnerHTML","__html","finalBorders","db","node1Country","node2Country","node1Name","node2Name","node1UctName","node2UctName","orderCode","voltage","resistance","reactance","susceptance","getUntilFor1Year","getYearUtcTime","voltage1","voltage2","nominalPower","conductance","bilateral_Validation_AT","export_Bilateral_Validation_AT","global_Full_Validation_AT","global_Validation_AT","reason_AT","bilateral_Validation_CH","export_Bilateral_Validation_CH","global_Full_Validation_CH","global_Validation_CH","reason_CH","bilateral_Validation_FR","export_Bilateral_Validation_FR","global_Full_Validation_FR","global_Validation_FR","reason_FR","bilateral_Validation_IT","export_Bilateral_Validation_IT","global_Full_Validation_IT","global_Validation_IT","reason_IT","bilateral_Validation_SI","export_Bilateral_Validation_SI","global_Full_Validation_SI","global_Validation_SI","reason_SI","initialResponse","searchText","setSearchText","onKeyDown","keyCode","blur","k","getDateFromUrl","queryString","cweDateString","exec","utcDateString","handleTokenChange","localStorage","setItem","borderEnabled","hubEnabled","availableColumns","self","localeCompare","selectedBorder","special","newList","selectedHub","addHubToHubExchange","hubToHubExchange","assign","addHubToHubPosition","hubToHubPosition","handleHubToHubExchangeChange","ptdfHubs","copy","parseFloat","handleHubToHubPositionChange","setCweTime","minute","hourLocalTime","localDate","oppositeCWETime","diff","setTime","correctUtcDate","nextDay","nextDayHourOneCWETime","interceptors","use","Promise","reject","environment","role","bearerToken","hubExchange","initialized","component","componentDidMount","pathName","this","stateSavedOn","getItem","savedSelectedDate","savedSelectedBorders","savedBorders","savedSelectedHubs","savedHubs","dateInUrl","history","pushState","loadNamespaces","allBorderTranslations","getResourceBundle","allHubTranslations","allTsoTranslations","render","flexDirection","fallback","exact","el","configuration","frontEndUrl","bundleNames","scriptsRoot","defaults","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([195,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import * as React from \"react\";\r\n\r\ninterface Props {\r\n rowSpan: number;\r\n date: Date;\r\n left?: number;\r\n className?: string;\r\n}\r\n\r\nconst TDatetime = ({ rowSpan, date, left, className }: Props) => {\r\n\r\n // If you change the timezone on your local computer, it should still show CWE times\r\n // a day should start at 00:00:00 (UTC 23:00 or 22:00 DST)\r\n\r\n //This logic is also in app.tsx getCweTimeForDisplayPurposes(date);\r\n var localCweDate = new Date(date.toLocaleString('en-US', { timeZone: 'Europe/Brussels' }));\r\n\r\n return \r\n \r\n {localCweDate.getFullYear() + \"-\" + (\"0\" + (localCweDate.getMonth() + 1)).slice(-2) + \"-\" + (\"0\" + (localCweDate.getDate())).slice(-2)}\r\n \r\n {(\"0\" + (localCweDate.getHours())).slice(-2) + \":\" + (\"0\" + (localCweDate.getMinutes())).slice(-2) + \":\" + (\"0\" + (localCweDate.getSeconds())).slice(-2)}\r\n ;\r\n}\r\nexport default TDatetime;","import * as React from \"react\";\r\n\r\nimport { CnecInfoDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport TDatetime from \"components/TDatetime\";\r\nimport CheckIcon from \"components/checkIcon\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n dto: CnecInfoDto;\r\n hubs: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({t, dto, hubs, left }: OwnProps & WithTranslation) => {\r\n let eic = \"N/A\", from = \"N/A\", to = \"N/A\";\r\n if (dto.contingencies[0].name !== \"N situation\") {\r\n eic = dto.contingencies[0].eic;\r\n from = dto.contingencies[0].hubFrom;\r\n to = dto.contingencies[0].hubTo;\r\n }\r\n return (<>\r\n \r\n \r\n {dto.cneName}\r\n {dto.cneEic}\r\n {dto.direction}\r\n {dto.hubFrom}\r\n {dto.hubTo}\r\n\r\n {dto.contingencies[0].name}\r\n {eic}\r\n {from}\r\n {to}\r\n\r\n {dto.sensitivity}\r\n \r\n \r\n\r\n {dto.fmax}\r\n {dto.fref}\r\n {dto.fntc}\r\n\r\n {dto.mncc}\r\n {dto.mccc}\r\n {dto.totalMaczt}\r\n\r\n {hubs.map((hub, i) => {eval(\"dto.ptdfNtcs_IT_\" + hub.id.toUpperCase())}) /* Import */ }\r\n {hubs.map((hub) => {eval(\"dto.ptdfNtcs_\" + hub.id.toUpperCase() + \"_IT\")}) /* Export */ }\r\n {hubs.map((hub, i) => {eval(\"dto.ptdfRefs_IT_\" + hub.id.toUpperCase())}) /* Import */ }\r\n {hubs.map((hub) => {eval(\"dto.ptdfRefs_\" + hub.id.toUpperCase() + \"_IT\")}) /* Export */ }\r\n\r\n {dto.frm}\r\n {dto.fltn}\r\n {dto.ram}\r\n {dto.amr}\r\n {dto.ltaMargin}\r\n \r\n {\r\n dto.contingencies.slice(1).map((c) =>\r\n \r\n {t(\"ibwt_cnec:additionalBranch\")}{c.number}: {c.name}\r\n {c.eic}\r\n {c.hubFrom}\r\n {c.hubTo}\r\n \r\n )\r\n }\r\n )\r\n};\r\n\r\nconst translated = withTranslation(\"ibwt_cnec\")(Row);\r\n\r\nexport default translated;","import * as React from \"react\";\r\n\r\nimport { IdCnecInfoDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport TDatetime from \"components/TDatetime\";\r\nimport CheckIcon from \"components/checkIcon\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n dto: IdCnecInfoDto;\r\n hubs: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ t, dto, hubs, left }: OwnProps & WithTranslation) => {\r\n let eic = \"N/A\", from = \"N/A\", to = \"N/A\";\r\n if (dto.contingencies[0].name !== \"N situation\") {\r\n eic = dto.contingencies[0].eic;\r\n from = dto.contingencies[0].hubFrom;\r\n to = dto.contingencies[0].hubTo;\r\n }\r\n return (<>\r\n \r\n \r\n {dto.cneName}\r\n {dto.cneEic}\r\n {dto.direction}\r\n {dto.hubFrom}\r\n {dto.hubTo}\r\n\r\n {dto.contingencies[0].name}\r\n {eic}\r\n {from}\r\n {to}\r\n\r\n {dto.sensitivity}\r\n \r\n \r\n\r\n {dto.fmax}\r\n {dto.fref}\r\n {dto.fntc}\r\n\r\n {dto.mncc}\r\n {dto.mccc}\r\n {dto.totalMaczt}\r\n\r\n {hubs.map((hub, i) => {eval(\"dto.ptdfNtcs_IT_\" + hub.id.toUpperCase())}) /* Import */ }\r\n {hubs.map((hub) => {eval(\"dto.ptdfNtcs_\" + hub.id.toUpperCase() + \"_IT\")}) /* Export */ }\r\n {hubs.map((hub, i) => {eval(\"dto.ptdfRefs_IT_\" + hub.id.toUpperCase())}) /* Import */ }\r\n {hubs.map((hub) => {eval(\"dto.ptdfRefs_\" + hub.id.toUpperCase() + \"_IT\")}) /* Export */ }\r\n\r\n {dto.frm}\r\n {dto.fltn}\r\n {dto.ram}\r\n {dto.amr}\r\n {dto.ltaMargin}\r\n \r\n {\r\n dto.contingencies.slice(1).map((c) =>\r\n \r\n {t(\"ibwt_cnec:additionalBranch\")}{c.number}: {c.name}\r\n {c.eic}\r\n {c.hubFrom}\r\n {c.hubTo}\r\n \r\n )\r\n }\r\n )\r\n};\r\n\r\nconst translated = withTranslation(\"ibwt_cnec\")(Row);\r\n\r\nexport default translated;","import * as React from \"react\";\r\n\r\nimport { IdForecastedDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: IdForecastedDto;\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.vertLoad_\" + hub.id.toUpperCase())})}\r\n {hubs.map((hub, index) => {eval(\"dto.prod_\" + hub.id.toUpperCase())})}\r\n {hubs.map((hub, index) => {eval(\"dto.netPos_\" + hub.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { ForecastedDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: ForecastedDto;\r\n hubs: MultiSelectItem[];\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, hubs, borders, left }: OwnProps) =>\r\n \r\n \r\n {hubs.map((hub, index) => {eval(\"dto.vertLoad_\" + hub.id.toUpperCase())})}\r\n {hubs.map((hub, index) => {eval(\"dto.prod_\" + hub.id.toUpperCase())})}\r\n {hubs.map((hub, index) => {eval(\"dto.netPos_\" + hub.id.toUpperCase())})}\r\n {borders.map((border, index) => {eval(\"dto.ltn_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { FinalTtcNtcDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n dto: FinalTtcNtcDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {dto.ttc_LimitedBy}\r\n {\r\n borders.map((border, index) => {\r\n return \r\n {eval(\"dto.border_\" + border.id.toUpperCase())}\r\n \r\n })\r\n }\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { IdFinalTtcNtcDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n dto: IdFinalTtcNtcDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {dto.ttc_LimitedBy}\r\n {\r\n borders.map((border, index) => {\r\n return \r\n {eval(\"dto.border_\" + border.id.toUpperCase())}\r\n \r\n })\r\n }\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { ScheduledExchangesDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: ScheduledExchangesDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {borders.map((border) => {eval(\"dto.border_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { PriceSpreadDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: PriceSpreadDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {borders.map((border) => {eval(\"dto.border_\" + border.id.toUpperCase())})}\r\n ;\r\n\r\nexport default Row;","import * as React from \"react\";\r\n\r\nimport { CongestionIncomeDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n dto: CongestionIncomeDto;\r\n borders: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, borders, left }: OwnProps) =>\r\n \r\n \r\n {borders.length == 0 ? : borders.map((border, index) => {eval(\"dto.grossBorder_\" + 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\"};","// 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 * 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 = {\"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 = {\"highlight\":\"highlight_2ChUxvmXLL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropdownmenu\":\"dropdownmenu_Hp65Zcokzy\",\"xxx\":\"xxx_3IkNp36YTl\",\"dropdownitem\":\"dropdownitem_3dtFowSomw\",\"selected\":\"selected_34B6_0whe9\",\"hidden\":\"hidden_2Ayl8HwWSL\",\"tag\":\"tag_2ruLB0iaNf\",\"textField\":\"textField_1rGxwdzibP\",\"search\":\"search_11j4q3dcf5\",\"disabled\":\"disabled_3q-b3Vd__W\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"collapsibleArrow\":\"collapsibleArrow_IaTFwZj350\",\"collapsible\":\"collapsible_2SRzh-Ttys\",\"searchLabel\":\"searchLabel_2D14xrkAXp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"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 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;","import axios, { AxiosResponse } from \"axios\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport * as queryString from \"querystring\";\r\nimport { Response, ApiGet, ApiPost } from \"./model\";\r\n\r\nlet cancelToken = axios.CancelToken.source();\r\n\r\nfunction FormattedErrorMessage<TResponse>(error: any) {\r\n\r\n const errorMessage: string = axios.isCancel(error) ? \"The request was cancelled.\"\r\n : error.message === \"Request failed with status code 500\" ? error.response?.data?.message ?? \"There was an internal error at JAO, please try again.\"\r\n : error.message === \"Network Error\" ? \"JAO is deploying a new version of PuTo or your internet connection is lost, please try again.\"\r\n : error.message;\r\n //Automatically called: logError(message.applicationState.applicationRoot, error.response.status, error.response.data);\r\n return {\r\n ok: false,\r\n error: errorMessage,\r\n errorDetail: error.response?.data?.message ?? \"\",\r\n data: {} as TResponse,\r\n };\r\n}\r\nexport const apiCancel = () => {\r\n cancelToken && cancelToken.cancel('Operation canceled due to new request.');\r\n cancelToken = axios.CancelToken.source();\r\n}\r\n\r\nexport const apiDownload = <TResponse>(message: ApiGet) => async () : Promise<string> => {\r\n try {\r\n cancelToken && cancelToken.cancel('Operation canceled due to new request.');\r\n cancelToken = axios.CancelToken.source();\r\n const headers ={ \"Authorization\": \"Bearer \" + message.applicationState.userToken };\r\n const url = message.route + ((message.query) ? \"?\" + queryString.stringify(message.query as { [name: string]: any }) : \"\");\r\n const response = await axios.get(url, {headers, cancelToken: cancelToken.token });\r\n \r\n if (response === undefined) alert(\"Error 2234\");\r\n if (response.data === undefined) alert(\"Error 2235\");\r\n\r\n let download = response?.data?.downloadUrl;\r\n let showDownloadProgress = false;\r\n if (showDownloadProgress) {\r\n let responseB = await axios({\r\n url: response?.data?.downloadUrl,\r\n onDownloadProgress: (ev) => { console.log(ev); },\r\n method: 'GET',\r\n responseType: 'blob', // important\r\n });\r\n if (responseB === undefined) alert(\"Error 2236\");\r\n download = window.URL.createObjectURL(new Blob([responseB.data]));\r\n } \r\n\r\n const link = document.createElement(\"a\");\r\n link.href = download;\r\n link.setAttribute(\"download\", response?.data?.fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n //TODO Detect that the download has been initiated \r\n return \"\";\r\n } catch (e) {\r\n return FormattedErrorMessage<TResponse>(e).error;\r\n }\r\n};\r\nexport const apiTryGet = (message: ApiGet) => async (): Promise<AxiosResponse<any>> => {\r\n try {\r\n cancelToken && cancelToken.cancel('Operation canceled due to new request.');\r\n cancelToken = axios.CancelToken.source();\r\n const headers ={ \"Authorization\": \"Bearer \" + message.applicationState.userToken };\r\n const url = message.route + ((message.query) ? \"?\" + queryString.stringify(message.query as { [name: string]: any }) : \"\");\r\n return await axios.get(url, {headers, cancelToken: cancelToken.token });\r\n } catch (e) {\r\n let error = (e as any);\r\n if (axios.isCancel(error)) return { data: { Canceled:\"This request was canceled\"}, status: 0, headers: {}, statusText: \"Canceled\", config: {} };\r\n return error.response;\r\n }\r\n};\r\nexport const apiTryPost = (message: ApiPost) => async (): Promise<AxiosResponse<any>> => {\r\n try {\r\n cancelToken && cancelToken.cancel('Operation canceled due to new request.');\r\n cancelToken = axios.CancelToken.source();\r\n const headers ={ \"Authorization\": \"Bearer \" + message.applicationState.userToken };\r\n return await axios.post(message.route, message.query, {headers, cancelToken: cancelToken.token });\r\n } catch (e) {\r\n let error = (e as any);\r\n if (axios.isCancel(error)) return { data: { Canceled:\"This request was canceled\"}, status: 0, headers: {}, statusText: \"Canceled\", config: {} };\r\n return error.response;\r\n }\r\n};\r\n\r\n\r\nexport const apiGet = <TResponse>(message: ApiGet) => async (): Promise<Response<TResponse>> => {\r\n\r\n try {\r\n //cancelToken && cancelToken.cancel('Operation canceled due to new request.');\r\n cancelToken = axios.CancelToken.source();\r\n const headers ={ \"Authorization\": \"Bearer \" + message.applicationState.userToken };\r\n const url = message.route + ((message.query) ? \"?\" + queryString.stringify(message.query as { [name: string]: any }) : \"\");\r\n const response = await axios.get<TResponse>(url, {headers, cancelToken: cancelToken.token });\r\n return {\r\n ok: response.status === 200,\r\n data: response.data,\r\n };\r\n } catch (e) {\r\n return FormattedErrorMessage<TResponse>(e);\r\n } finally {\r\n\r\n }\r\n};\r\n\r\nexport const apiPost = <TResponse>(message: ApiPost) => async (): Promise<any> => {\r\n try {\r\n //cancelToken && cancelToken.cancel('Operation canceled due to new request.');\r\n cancelToken = axios.CancelToken.source();\r\n const headers ={ \"Authorization\": \"Bearer \" + message.applicationState.userToken };\r\n const response = await axios.post(message.route, message.query, { headers, cancelToken: cancelToken.token });\r\n return {\r\n ok: response.status === 200,\r\n data: response.data,\r\n };\r\n } catch (e) {\r\n return FormattedErrorMessage<TResponse>(e);\r\n } finally {\r\n\r\n }\r\n};\r\n\r\nexport const logError = (applicationRoot: string, code: string, error: string) => {\r\n const url = applicationRoot + \"reportClientError\";\r\n\r\n try {\r\n axios.post(url, { reference: code, message: error });\r\n }catch (e) {\r\n let error = (e as any);\r\n // too bad we could not log error, but not necesairy to notify user about this\r\n }\r\n};\r\n\r\n\r\nexport default {\r\n apiCancel:apiCancel,\r\n apiPost: apiPost,\r\n apiGet: apiGet,\r\n logError: logError,\r\n apiDownload: apiDownload,\r\n apiTryGet: apiTryGet,\r\n apiTryPost: apiTryPost,\r\n};\r\n","const s = require(\"./timePicker.module.scss\");\r\n\r\nimport { default as React, useState } from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { ApplicationState } from \"core/app\";\r\n\r\nexport interface TimePickerItem {\r\n date: Date;\r\n text: string;\r\n}\r\ninterface Props {\r\n selectedDate: Date;\r\n dateSteps: string;\r\n\r\n applicationState: ApplicationState;\r\n}\r\n\r\ninterface DispatchProps {\r\n onChange: (date: Date) => void;\r\n}\r\ninterface State {\r\n open: boolean;\r\n}\r\n\r\nconst TimePicker = ({ applicationState, dateSteps, selectedDate, onChange }: Props & DispatchProps) => {\r\n const enabled = dateSteps.startsWith(\"H\");\r\n const initialState: State = { open: false };\r\n const [state, setState] = useState(initialState);\r\n const availableHours = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]\r\n .filter(hour => dateSteps == \"H\" //no filter, all 24 hours\r\n || (dateSteps == \"H16+\" && hour >= 16)\r\n || (dateSteps == \"H12+\" && hour >= 12)\r\n )\r\n const [isCnecInfo, setIsCnecInfo] = useState(false);\r\n const cnecDisabledBefore = new Date(selectedDate).setHours(16, 0, 0);\r\n\r\n const interceptEvent = (event: any) => {\r\n if (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n };\r\n\r\n const renderListItem = (item: TimePickerItem) => {\r\n // XXX: LIQ-341: IBWT Cnec info grey out hours before 16:00, 17:00\r\n const isHourDisabled = !availableHours.includes(item.date.getHours());\r\n const className = classnames(s.dropdownitem\r\n , selectedDate.toUTCString() === item.date.toUTCString() ? s.selected : s.notselected\r\n , isHourDisabled ? \"text-disabled\" : \"\");\r\n return (<a key={item.text} className={className} onClick={(e) => !isHourDisabled && handleChange(e, item)} onMouseDown={handleMouseDown} onBlur={handleBlur} href=\"#\">\r\n {item.text}\r\n </a>);\r\n };\r\n const handleChange = (event: any, item: TimePickerItem) => {\r\n clickedOnOption = false;\r\n interceptEvent(event);\r\n onChange(item.date);\r\n setState({ open: false });\r\n };\r\n const handleClose = (event: any) => {\r\n interceptEvent(event);\r\n if (!clickedOnOption) {\r\n setState({ open: false });\r\n }\r\n clickedOnOption = false;\r\n };\r\n let clickedOnOption: Boolean = false;\r\n let blurTimeout: any = undefined;\r\n const handleBlur = () => {\r\n clearTimeout(blurTimeout);\r\n blurTimeout = setTimeout(handleClose, 0);\r\n };\r\n const toggleOpenClose = (event: any) => {\r\n interceptEvent(event);\r\n setState({ open: !state.open });\r\n if (state.open) {\r\n return setState({ open: false });\r\n }\r\n };\r\n const handleMouseDown = () => {\r\n clickedOnOption = true;\r\n };\r\n\r\n React.useEffect(() => {\r\n if (availableHours.length > 0 && !availableHours.includes(selectedDate.getHours())) {\r\n onChange(new Date(selectedDate.setHours(availableHours[0], 0, 0)));\r\n }\r\n }, [selectedDate, availableHours]);\r\n\r\n const classNameInput = classnames(s.textField, \"inputBorder\", enabled ? s.enabled : s.disabled);\r\n const classNameDropDown = classnames(s.dropdownmenu, state.open ? \"\" : s.hidden);\r\n\r\n const rootDate = applicationState.setCweTimeForDate(selectedDate, 0, 0); //CWE Time 00:00\r\n\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) => {\r\n var localCweDate = applicationState.getCweTimeForDisplayPurposes(date);\r\n return getTwoDigits(localCweDate.getHours()) + \":00\" + \" - \" + getTwoDigits(localCweDate.getHours() + 1) + \":00\" + dayLightSaveCheck(localCweDate);\r\n }\r\n const loadAllHours = () => {\r\n const list: TimePickerItem[] = [];\r\n let newDate = rootDate;\r\n let i = 1;\r\n while (applicationState.getCweTimeForDisplayPurposes(newDate).getDay() === applicationState.getCweTimeForDisplayPurposes(rootDate).getDay()) {\r\n list.push({ date: newDate, text: getHourRange(newDate) });\r\n newDate = new Date(new Date(rootDate).setUTCHours(rootDate.getUTCHours() + i++));\r\n if (i > 30) { throw Error(\"There is an issue with the TimePicker\"); }\r\n }\r\n return list;\r\n };\r\n\r\n return (<div>\r\n <button className={classNameInput} onClick={toggleOpenClose} onBlur={handleBlur}>\r\n {getHourRange(selectedDate)}\r\n </button>\r\n\r\n <div className={classNameDropDown}>\r\n {\r\n loadAllHours().map(renderListItem)\r\n }\r\n </div>\r\n </div>);\r\n}\r\n\r\nexport default TimePicker;","const s = require(\"./jaoLogoMenu.module.scss\");\r\n\r\nimport * as React from \"react\";\r\n\r\nconst JaoLogo = () =>\r\n <div className={s.logo}></div>;\r\n\r\nexport default JaoLogo;","const s = require(\"./navigation.module.scss\");\r\n\r\nimport * as React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { faHome, faEye, faCloud, faCog, faUser } from \"@fortawesome/free-solid-svg-icons\"; //fontawesome.com\r\nimport MultiSelect from \"components/multiselect\";\r\nimport MenuItem from \"components/menuItem\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport TimePicker from \"components/timePicker\";\r\nimport ReactDatePicker, { registerLocale } from \"react-datepicker\";\r\nimport gb from \"date-fns/locale/en-GB\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport classNames from \"classnames\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { GetAvailableDatesResponse } from \"core/backend/data\";\r\nimport { NavLink, useLocation } from \"react-router-dom\";\r\nimport JaoLogoMenu from \"components/jaoLogoMenu\";\r\n\r\nregisterLocale(\"en-GB\", gb);\r\n\r\ninterface StateProps {\r\n applicationState: ApplicationState;\r\n}\r\n\r\ninterface Horizon {\r\n id: string;\r\n text: string;\r\n}\r\n\r\nexport const horizons: Horizon[] = [\r\n { id: \"ID1\", text: \"IDA 1\" },\r\n { id: \"ID2\", text: \"IDA 2\" },\r\n { id: \"ID3\", text: \"IDA 3\" },\r\n\r\n { id: \"CCR\", text: \"Italy North CCR\" }\r\n];\r\n\r\ntype NavigationProps = StateProps & WithTranslation;\r\nconst Navigation = ({ t, applicationState }: NavigationProps) => {\r\n const pageList = applicationState.pages.map(p => p.config);\r\n const initialDates: string[] = []\r\n const [availableDates, setAvailableDates] = useState(initialDates);\r\n const { pathname } = useLocation();\r\n\r\n const filteredHorizons = horizons.filter(h => h.id == applicationState.horizon);\r\n const selectedHorizon = horizons.length == 0 ? null : filteredHorizons.length == 1 ? filteredHorizons[0] : horizons[0];\r\n\r\n const mapHorizon = (item: Horizon) => {\r\n const isSelected = selectedHorizon == item;\r\n let toPath = pathname;\r\n horizons.forEach(h => toPath = toPath.replace(h.id, item.id));\r\n\r\n if (!pageList.some(p => \"/\" + p.webUrl === toPath)) { // if the given page is not present in the horizon, open the first page\r\n toPath = \"/\" + pageList.find(p => p.webUrl.includes(item.id)).webUrl;\r\n }\r\n\r\n return <NavLink key={item.id}\r\n onClick={() => applicationState.handleHorizonChange(item.id)}\r\n to={ toPath }\r\n style={{\r\n border: \"1px solid #cbd1d8\", borderRadius: \"3px\", height: \"30px\"\r\n , backgroundColor: isSelected ? \"#a60045\" : \"white\"\r\n , color: isSelected ? \"white\" : \"black\"\r\n , textAlign: \"center\"\r\n , lineHeight: \"30px\"\r\n , cursor: \"pointer\"\r\n , textDecoration: \"none\"\r\n , whiteSpace: \"nowrap\"\r\n , padding: \"0px 5px 0px 5px\"\r\n }} >\r\n {item.text}\r\n </NavLink>\r\n }\r\n\r\n useEffect(() => {\r\n let path = pathname.replace(\"/\", \"\").replace(\"/\", \"\").replace(\"/\", \"\");\r\n if (path === \"\") return;\r\n\r\n (async function runAsync() {\r\n const response = await httpService.apiPost<GetAvailableDatesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/availableDates\",\r\n query: {\r\n Utc: applicationState.getRootUtcTime().toISOString(),\r\n Page: path\r\n },\r\n senderId: \"navigation\"\r\n })();\r\n\r\n if (response.ok && response.data != null) {\r\n setAvailableDates(response.data.availableDates);\r\n }\r\n })();\r\n }, [pathname]);\r\n return (\r\n <div className=\"sidebar\"\r\n style={{ display: \"grid\", gridTemplateRows: \"auto auto auto auto auto auto auto auto minmax(0,1fr)\", height: \"100vh\", backgroundColor: \"white\", padding: \"0.5rem 1rem\", zIndex: 5 }}>\r\n <a aria-current=\"page\" className={s.logo} href=\"/\"><JaoLogoMenu />{t(\"common:appNameTitle\")}</a>\r\n <NavLink to=\"/ibwt\" className={s.subTitle}>{t(\"ibwt_common:title\")}</NavLink>\r\n <div style={{ marginLeft: \"20px\" }}>\r\n <div className=\"inputlabel\">{t(\"common:date\")}</div>\r\n {applicationState.dateSteps != \"\" && <div style={{ position: \"absolute\", left: \"35px\" }} className={classNames(s.arrow, s.arrowLeft)}\r\n onClick={() => {\r\n let newDate = new Date(applicationState.selectedDate);\r\n if (applicationState.dateSteps == \"Y\") newDate.setFullYear(newDate.getFullYear() - 1);\r\n if (applicationState.dateSteps != \"Y\") newDate.setDate(newDate.getDate() - 1);\r\n applicationState.handleDateChange(newDate);\r\n }}></div>}\r\n {applicationState.dateSteps != \"\" && <div style={{ position: \"absolute\", left: \"210px\" }} className={classNames(s.arrow, s.arrowRight)}\r\n onClick={() => {\r\n let newDate = new Date(applicationState.selectedDate);\r\n if (applicationState.dateSteps == \"Y\") newDate.setFullYear(newDate.getFullYear() + 1);\r\n if (applicationState.dateSteps != \"Y\") newDate.setDate(newDate.getDate() + 1);\r\n applicationState.handleDateChange(newDate);\r\n }}></div>}\r\n <ReactDatePicker className={classNames(\"inputBorder\", applicationState.dateSteps != \"\" ? \"\" : \"disabled\")} locale=\"en-GB\" placeholderText=\"Weeks start on Monday\" isClearable={false} fixedHeight todayButton=\"Today\"\r\n dateFormat={applicationState.dateSteps == \"Y\" ? \"yyyy\" : \"yyyy-MM-dd\"}\r\n showYearPicker={applicationState.dateSteps == \"Y\"}\r\n selected={applicationState.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\")} (CET)</div>\r\n {applicationState.dateSteps.startsWith(\"H\") && <div style={{ position: \"absolute\", left: \"35px\" }} className={classNames(s.arrow, s.arrowLeft)}\r\n onClick={() => {\r\n let newDate = new Date(applicationState.selectedDate.setUTCHours(applicationState.selectedDate.getUTCHours() - 1));\r\n if (applicationState.dateSteps == \"H12+\" && newDate.getHours() < 12) newDate.setHours(-1);\r\n if (applicationState.dateSteps == \"H16+\" && newDate.getHours() < 16) newDate.setHours(-1);\r\n applicationState.handleDateChange(newDate);\r\n }}></div>}\r\n {applicationState.dateSteps.startsWith(\"H\") && <div style={{ position: \"absolute\", left: \"210px\" }} className={classNames(s.arrow, s.arrowRight)}\r\n onClick={() => {\r\n let newDate = new Date(applicationState.selectedDate.setUTCHours(applicationState.selectedDate.getUTCHours() + 1));\r\n if (applicationState.dateSteps == \"H12+\" && newDate.getHours() < 12) newDate.setHours(12);\r\n if (applicationState.dateSteps == \"H16+\" && newDate.getHours() < 16) newDate.setHours(16);\r\n applicationState.handleDateChange(newDate);\r\n }}></div>}\r\n <TimePicker applicationState={applicationState} dateSteps={applicationState.dateSteps} selectedDate={applicationState.selectedDate} onChange={applicationState.handleDateChange} />\r\n </div>\r\n <div style={{ marginLeft: \"20px\" }}>\r\n <div className=\"inputlabel\">{t(\"common:hub\")}</div>\r\n <MultiSelect enabled={applicationState.isHubEnabled} data={applicationState.selectedHubs} onChange={applicationState.handleHubChange} />\r\n </div>\r\n <div style={{ marginLeft: \"20px\" }}>\r\n <div className=\"inputlabel\">{t(\"common:border\")}</div>\r\n <MultiSelect enabled={applicationState.isBorderEnabled} data={applicationState.selectedBorders} onChange={applicationState.handleBorderChange} />\r\n </div>\r\n <div style={{ marginLeft: \"20px\", display: horizons.length <= 1 ? \"none\" : \"block\" }}>\r\n <div className=\"inputlabel\">IBWT IDA</div>\r\n <div style={{ display: \"grid\", gridTemplateColumns: \"auto \".repeat(horizons.filter(item => !item.id.startsWith(\"CCR\")).length), gap: \"5px\", width: \"150px\" }}>\r\n {horizons.filter(item => !item.id.startsWith(\"CCR\")).map(mapHorizon)}\r\n </div>\r\n <div style={{ display: \"grid\", justifyContent: \"space-around\", paddingTop: \"5px\", gridTemplateColumns: \"auto \".repeat(horizons.filter(item => item.id.startsWith(\"CCR\")).length), gap: \"5px\", width: \"150px\" }}>\r\n {horizons.filter(item => item.id.startsWith(\"CCR\")).map(mapHorizon)}\r\n </div>\r\n </div>\r\n <div style={{ display: \"flex\", marginLeft: \"-20px\", marginTop: \"1rem\" }}>\r\n <MenuItem route=\"/home\" icon={faHome} title={t(\"ibwt_common:menuHome\")} style={{ fontSize: \"120%\", fontWeight: \"bold\" }} />\r\n <MenuItem route=\"/monitoring\" icon={faEye} title=\"\" style={{ fontSize: \"120%\", fontWeight: \"bold\" }} />\r\n <MenuItem route=\"/api\" icon={faCloud} title=\"\" style={{ fontSize: \"120%\", fontWeight: \"bold\" }} />\r\n {applicationState.userRole === \"JaoUser\" || applicationState.userRole === \"JaoAdmin\" || applicationState.userRole === \"Licquid\" ?\r\n <MenuItem route=\"/jaoLogin\" icon={faUser} title=\"\" style={{ fontSize: \"120%\", fontWeight: \"bold\" }} /> : \"\"}\r\n </div>\r\n <div style={{ margin: \"0\", overflowY: \"auto\", overflow: \"auto\", marginRight: \"-1rem\", marginLeft: \"-1rem\", paddingLeft: \"1rem\" }}>\r\n <div className=\"animation_vertical_shown\">\r\n {\r\n pageList.filter((p, i, a) => p.menu != \"\" && p.webUrl.startsWith(selectedHorizon?.id) && a.indexOf(p) === i)\r\n .map(p => <MenuItem key={p.webUrl} route={\"/\" + p.webUrl} title={t(p.menu)} />)\r\n }\r\n </div>\r\n </div>\r\n </div>);\r\n};\r\n\r\nconst translated = withTranslation(\"ibwt_common\")(Navigation);\r\n\r\nexport default translated;","const s = require(\"./sheetDataPart.module.scss\");\r\n\r\nimport { default as React, useState, useRef, useContext } from \"react\";\r\nimport { faExclamationTriangle } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nconst SheetDataPart = (props: any) => {\r\n\r\n const [scrollPosition, setScrollPosition] = useState({ top: 0, left: 0 });\r\n const onScroll = (e: React.UIEvent<HTMLDivElement, UIEvent>) => {\r\n setScrollPosition({ top: e.currentTarget.scrollTop, left: e.currentTarget.scrollLeft });\r\n };\r\n\r\n const noDataMessage = props.noDataMessage ?? \"No data available\";\r\n const dataRows = props.dataRows != null ? props.dataRows : !props.data ? -1 : props.data.length;\r\n\r\n return <div className=\"xx\" style={{ flex: \"1\", position: \"relative\", overflow: \"auto\" }} onScroll={onScroll}>\r\n <div className=\"shadow-sm bg-white rounded\" style={{ display: \"inline-block\", margin: \"1rem\" }}>\r\n {React.cloneElement(props.children, { scrollPosition: scrollPosition })}\r\n {props.isLoading && <div className={s.loading} style={{ top: scrollPosition.top + \"px\", left: scrollPosition.left + \"px\" }}></div>}\r\n {!props.isLoading && props.error === \"\" && dataRows === 0 && <div className={s.nodata} style={{ left: scrollPosition.left + \"px\" }}>{noDataMessage}</div>}\r\n {!props.isLoading && props.error !== \"\" && <div className={s.error} style={{ left: scrollPosition.left + \"px\" }}><FontAwesomeIcon icon={faExclamationTriangle} /> {props.error} {props.message}</div>}\r\n {!props.isLoading && props.error === \"\" && dataRows === -1 && <div className={s.error} style={{ left: scrollPosition.left + \"px\" }}><FontAwesomeIcon icon={faExclamationTriangle} /> {\"Wrong data packet received\"}</div>}\r\n </div>\r\n </div>;\r\n};\r\nexport default SheetDataPart;","const s = require(\"./downloadButton.module.scss\");\r\n\r\nimport { default as React, useState, forwardRef } from \"react\";\r\nimport classnames from \"classnames\";\r\nimport ReactDatePicker from \"react-datepicker\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faWindowClose } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport Toast from \"react-bootstrap/Toast\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface State {\r\n applicationState: ApplicationState;\r\n pageConfig: PageList;\r\n formats: string[];\r\n}\r\n\r\nconst DownloadButton = ({ applicationState, pageConfig, 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 setShowPleaseWait(true);\r\n let res = await httpService.apiDownload({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + pageConfig.apiType + \"/\" + pageConfig.apiUrl + \"/download\",\r\n query: { FromUtc: startDate.toISOString(), ToUtc: endDate.toISOString(), fileType: fileType },\r\n senderId: pageConfig.apiUrl\r\n })();\r\n if (res == \"\") {\r\n setError(\"\");\r\n setShowPleaseWait(false);\r\n setShowPopup(false);\r\n } else {\r\n setError(res);\r\n setShowPleaseWait(false);\r\n }\r\n })();\r\n };\r\n const CweDateInput = forwardRef((a: any, ref) => {\r\n const cweDate = applicationState.getCweTimeForDisplayPurposes(new Date(a.value));\r\n const cweString = cweDate.getFullYear() + \"-\" + (\"0\" + (cweDate.getMonth() + 1)).slice(-2) + \"-\" + (\"0\" + (cweDate.getDate())).slice(-2)\r\n + \" \" + (\"0\" + (cweDate.getHours())).slice(-2) + \":\" + (\"0\" + (cweDate.getMinutes())).slice(-2);\r\n return <input className={classnames(s.parameter, \"inputBorder\")} type=\"text\" value={cweString} onClick={a.onClick} readOnly />;\r\n });\r\n\r\n return <>\r\n <button className={s.pageButton} onClick={() => {\r\n if (applicationState.dateSteps.startsWith(\"H\")) {\r\n setStartDate(new Date(applicationState.selectedDate));\r\n setEndDate(applicationState.getUntilFor1Hour());\r\n }\r\n else {\r\n setStartDate(applicationState.getRootUtcTime());\r\n setEndDate(applicationState.getUntilFor1Day());\r\n }\r\n setShowPopup(true);\r\n }}>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 <div className=\"inputlabel\">From DateTime (CET)</div>\r\n <ReactDatePicker\r\n className=\"inputBorder\"\r\n locale=\"en-GB\"\r\n dateFormat=\"yyyy-MM-dd HH:mm\"\r\n showYearPicker={applicationState.dateSteps == \"Y\"}\r\n customInput={<CweDateInput />}\r\n isClearable={false}\r\n fixedHeight\r\n todayButton=\"Today\"\r\n selected={startDate}\r\n onChange={(date: Date) => date && setStartDate(applicationState.convertCweHourToUtcDate(date))}\r\n selectsStart\r\n startDate={startDate}\r\n endDate={endDate}\r\n //highlightDates={availableDates.map(d => new Date(d))}\r\n showTimeSelect\r\n timeFormat=\"HH:mm\"\r\n timeIntervals={60}\r\n timeCaption=\"Hour\"\r\n />\r\n <div className=\"inputlabel\">To DateTime (CET)</div>\r\n <ReactDatePicker\r\n className=\"inputBorder\"\r\n locale=\"en-GB\"\r\n dateFormat=\"yyyy-MM-dd HH:mm\"\r\n showYearPicker={applicationState.dateSteps == \"Y\"}\r\n customInput={<CweDateInput />}\r\n isClearable={false}\r\n fixedHeight\r\n todayButton=\"Today\"\r\n selected={endDate}\r\n onChange={(date: Date) => date && setEndDate(applicationState.convertCweHourToUtcDate(date))}\r\n selectsEnd\r\n startDate={startDate}\r\n endDate={endDate}\r\n //highlightDates={availableDates.map(d => new Date(d))}\r\n showTimeSelect\r\n timeFormat=\"HH:mm\"\r\n timeIntervals={60}\r\n timeCaption=\"Hour\"\r\n />\r\n\r\n <div style={{ color: \"red\", marginTop: \"16px\", marginBottom: \"16px\" }}>{error}</div>\r\n {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, pageConfig, showDownload }: State\r\n return <header className=\"sheetHeader\" style={{ display: \"block\", backgroundColor: \"white\", zIndex: 4 }}>\r\n {props.showDownload && <DownloadButton applicationState={props.applicationState} pageConfig={props.pageConfig} formats={props.downloadFormats || [\"xml\", \"csv\"]} />}\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=\"/ibwt\" style={{ fontSize: \"14pt\" }}>Full Disclaimer</a>\r\n </h4>\r\n }\r\n {props.disclaimer && <div style={{ background: \"lightyellow\", paddingLeft: \"15px\", paddingRight: \"10px\", color: \"darkorange\" }}>\r\n <FontAwesomeIcon icon={faInfoCircle} style={{ fontSize: \"17x\", verticalAlign: \"middle\", margin: \"-6px 6px 0 6px\" }} />\r\n {props.disclaimer}\r\n </div>\r\n }\r\n </header>;\r\n};\r\nexport default SheetHeader;","import * as React from \"react\";\r\n\r\ninterface Props {\r\n rowSpan: number;\r\n date: Date;\r\n left?: number;\r\n className?: string;\r\n}\r\n\r\nconst TDate = ({ rowSpan, date, left, className }: Props) => {\r\n\r\n // If you change the timezone on your local computer, it should still show CWE times\r\n // a day should start at 00:00:00 (UTC 23:00 or 22:00 DST)\r\n\r\n //This logic is also in app.tsx getCweTimeForDisplayPurposes(date);\r\n var localCweDate = new Date(date.toLocaleString('en-US', { timeZone: 'Europe/Brussels' }));\r\n\r\n return <td rowSpan={rowSpan} className={(left ? \"fixedColumn\" : \"\") + \" \" + className} style={{ whiteSpace: \"nowrap\", left: left + \"px\" }}>\r\n {localCweDate.getFullYear() + \"-\" + (\"0\" + (localCweDate.getMonth() + 1)).slice(-2) + \"-\" + (\"0\" + (localCweDate.getDate())).slice(-2)}\r\n </td>;\r\n}\r\nexport default TDate;","const s = require(\"./monitoring.module.scss\");\r\nimport * as React from \"react\";\r\n\r\nimport TDate from \"components/TDate\";\r\nimport { MonitoringDto } from \"core/backend/common\";\r\nimport CheckIcon from \"components/checkIcon\";\r\n\r\ninterface OwnProps {\r\n dto: MonitoringDto;\r\n left: number;\r\n}\r\nconst Row = ({ dto, left }: OwnProps) =>\r\n <tr className=\"small\">\r\n <TDate rowSpan={1} date={new Date(dto.businessDayUtc)} left={left} />\r\n <td className=\"alignLeft\">{dto.page}</td>\r\n <td className={dto.status === \"Pending\" ? s.pending :\r\n dto.status === \"Received\" ? s.received :\r\n dto.status === \"Expected\" ? s.expected : s.spanning}>{dto.status}</td>\r\n <td><CheckIcon checked={dto.followUpActionInitiated} /></td>\r\n </tr>\r\n\r\nexport default Row;","import httpService from \"core/infrastructure/http\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\n\r\nexport const mapUpTo = <T>(n: number, fn: (idx: number) => T) => {\r\n var arr = [];\r\n for (var i = 0; i < n; i++) {\r\n arr.push(fn(i));\r\n }\r\n return arr;\r\n};\r\n\r\nexport const makePageChange = (pageNumber: number, applicationState: ApplicationState, data: any, setPageNumber: (num: number) => void, makeRequest: (skip: number, take: number) => void) => {\r\n setPageNumber(pageNumber);\r\n const rows = applicationState.maxRows * pageNumber;\r\n if (data.skip > rows || rows >= data.take) {\r\n let skip = Math.floor(pageNumber / 10) * applicationState.pageSize;\r\n makeRequest(skip, skip + applicationState.pageSize);\r\n }\r\n}\r\n\r\nexport const makeRequest = async <T> (skip: number, take: number, applicationState: ApplicationState, initialData: T, search: any, senderId: string, page_config: PageList, setLoading: (loading: boolean) => void, setError: (error: string) => void, setData: (data: T) => void) => {\r\n setLoading(true);\r\n setData(initialData);\r\n const response = await httpService.apiPost<T>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.selectedDate.toISOString(),\r\n ToUtc: page_config.getDefaultToDateTime(applicationState).toISOString(),\r\n Filter: search,\r\n Skip: skip, Take: take\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || \"An unknown error occured.\"); //TODO\r\n }\r\n setLoading(false);\r\n}\r\n\r\nexport const replaceArray = (str: string, find: string[], replace: string) => {\r\n for (let i = 0; i < find.length; ++i) {\r\n str = str.replace(find[i].toLowerCase(), replace.toLowerCase());\r\n }\r\n return str;\r\n};","import { default as React } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { MonitoringDto } from \"core/backend/common\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { horizons } from \"core/pages/navigation\"\r\nimport { replaceArray } from \"utils\"\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: MonitoringDto[];\r\n applicationState: ApplicationState;\r\n}\r\n\r\nconst List = ({ t, applicationState, data, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\tconst pageList = applicationState.pages.map(p => p.config);\r\n \r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoring:page\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoring:status\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoring:followUpAction\")}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.sort((a, b) =>\r\n pageList.findIndex(x => t(x.menu).toLowerCase() === replaceArray(a.page, horizons.map(h => h.id + \" \"), \"\") || t(x.title).toLowerCase() == replaceArray(a.page, horizons.map(h => h.id + \"_\"), \"\")) <=\r\n pageList.findIndex(x => t(x.menu).toLowerCase() === replaceArray(b.page, horizons.map(h => h.id + \" \"), \"\") || replaceArray(b.page, horizons.map(h => h.id + \"_\"), \"\")) ? -1 : 1\r\n ).map((d) => <Row key={d.id} dto={d} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"monitoring\")(List);\r\n\r\nexport default translated;","const s = require(\"./monitoring.module.scss\");\r\n\r\nimport { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { MonitoringDto, GetMonitoringDataResponse, GetMonitoringDataQuery } from \"core/backend/common\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport List from \"./list\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { faCog } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { PageList, sortParameters } from \"core/pages/pageList\";\r\n\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\nexport const senderId = \"monitoring\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"monitoring\",\r\n webUrl: \"monitoring\",\r\n menu: \"\", //no menu link should be created for this page\r\n apiType: \"system\",\r\n title: \"common:titleMonitoring\",\r\n response: JSON.stringify(keys<GetMonitoringDataResponse>()),\r\n dto: JSON.stringify(keys<MonitoringDto>()),\r\n parameters: JSON.stringify(sortParameters(keys<GetMonitoringDataQuery>())),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: MonitoringDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<MonitoringDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetMonitoringDataResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: page_config.getDefaultToDateTime(applicationState).toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate, applicationState.horizon]);\r\n\r\n const dataForHorizon = data.filter(f => f.page.toUpperCase().startsWith(applicationState.horizon.toUpperCase()));\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} downloadFormats={['csv']} applicationState={applicationState} title={t(page_config.title) + \" for \" + applicationState.horizon.toUpperCase() } pageConfig={page_config} />\r\n {\r\n applicationState.userRole === \"Licquid\"\r\n || applicationState.userRole === \"JaoUser\"\r\n || applicationState.userRole === \"JaoAdmin\"\r\n ? <div className=\"subHeader\">\r\n <NavLink to={\"/monitoring\"} activeClassName={s.selected} className={s.selectableTabs}>Overview per BusinessDay</NavLink>\r\n <NavLink to={\"/monitoringFailed\"} activeClassName={s.selected} className={s.selectableTabs}>Failed Files</NavLink>\r\n <NavLink to={\"/monitoringConfig\"} activeClassName={s.selected} className={s.selectableTabs}><FontAwesomeIcon icon={faCog} /> Configure</NavLink>\r\n </div>\r\n : \"\"\r\n }\r\n <SheetDataPart isLoading={isLoading} data={dataForHorizon} error={error}>\r\n <List data={dataForHorizon} applicationState={applicationState} />\r\n </SheetDataPart>\r\n </>\r\n\r\n );\r\n}\r\n\r\nexport default withTranslation(\"monitoring\")(Page);\r\n","import { ApplicationState } from \"core/app\";\r\nimport * as monitoring from \"./system/monitoring\";\r\n\r\nexport interface PageList {\r\n apiUrl: string;\r\n webUrl: string,\r\n menu: string,\r\n title: string;\r\n apiType: string;\r\n response: string;\r\n dto: string;\r\n parameters: string;\r\n dateSteps: string;\r\n getDefaultToDateTime(applicationState: ApplicationState): Date;\r\n filterFields?: FilterField[];\r\n}\r\nexport interface FilterField {\r\n title: string;\r\n parameter: string;\r\n type: string;\r\n options?: FilterOption[];\r\n}\r\nexport interface FilterOption {\r\n title: string;\r\n value: string;\r\n}\r\n\r\n\r\n\r\nexport function sortParameters(list: string[]): string[] {\r\n const parameterOrder = [\"fromUtc\", \"toUtc\", \"skip\", \"take\", \"filter\"];\r\n return list.sort((a, b) => {\r\n if (parameterOrder.indexOf(a) === -1 && parameterOrder.indexOf(b) === -1) return (a < b) ? -1 : (a > b) ? 1 : 0;\r\n if (!parameterOrder.includes(a)) return 1; //if not in the parameterOrder, move down\r\n if (!parameterOrder.includes(b)) return -1; //if not in the parameterOrder, move down\r\n if (parameterOrder.indexOf(a) < parameterOrder.indexOf(b)) return -1;\r\n if (parameterOrder.indexOf(b) < parameterOrder.indexOf(a)) return 1;\r\n return 0;\r\n });\r\n};","const s = require(\"../monitoring/monitoring.module.scss\");\r\nimport * as React from \"react\";\r\n\r\nimport TDatetime from \"components/TDatetime\";\r\nimport { MonitoringFailedDto } from \"core/backend/common\";\r\n\r\ninterface OwnProps {\r\n dto: MonitoringFailedDto;\r\n left: number;\r\n}\r\nconst Row = ({ dto, left }: OwnProps) =>\r\n <tr className=\"small\">\r\n <TDatetime rowSpan={1} date={new Date(dto.businessDayUtc)} left={left} />\r\n <td className=\"alignLeft\">{dto.fileName}</td>\r\n <td className=\"alignLeft\">{dto.error}</td>\r\n </tr>\r\n\r\nexport default Row;","import { default as React } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { MonitoringFailedDto } from \"core/backend/common\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: MonitoringFailedDto[];\r\n}\r\n\r\nconst List = ({ t, data, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoring:fileName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoring:error\")}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data.map((d) => <Row key={d.id} dto={d} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"monitoring\")(List);\r\n\r\nexport default translated;","const s = require(\"../monitoring/monitoring.module.scss\");\r\n\r\nimport { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { MonitoringFailedDto, GetMonitoringFailedDataResponse, ApiResponse } from \"core/backend/common\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport List from \"./list\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faCog } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\nexport const senderId = \"monitoringFailed\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"\",\r\n webUrl: \"monitoringFailed\",\r\n menu: \"\", //no menu link should be created for this page\r\n apiType: \"system\",\r\n title: \"common:titleMonitoring\",\r\n response: \"\",\r\n dto: \"\",\r\n parameters: \"\",\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: MonitoringFailedDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(\"D\", false, false, keys<MonitoringFailedDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetMonitoringFailedDataResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/system/monitoringFailed\",\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n //<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\"\r\n || applicationState.userRole === \"JaoUser\"\r\n || applicationState.userRole === \"JaoAdmin\"\r\n ? <div className=\"subHeader\">\r\n <NavLink to={\"/monitoring\"} activeClassName={s.selected} className={s.selectableTabs}>Overview per BusinessDay</NavLink>\r\n <NavLink to={\"/monitoringFailed\"} activeClassName={s.selected} className={s.selectableTabs}>Failed Files</NavLink>\r\n <NavLink to={\"/monitoringConfig\"} activeClassName={s.selected} className={s.selectableTabs}><FontAwesomeIcon icon={faCog} /> Configure</NavLink>\r\n </div>\r\n : \"\"\r\n }\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} />\r\n </SheetDataPart>\r\n </>\r\n\r\n );\r\n}\r\n\r\nexport default withTranslation(\"monitoring\")(Page);\r\n","const s = require(\"./config.module.scss\");\r\nimport { default as React } from \"react\";\r\nimport { withTranslation } from \"react-i18next\";\r\n\r\ninterface OwnProps {\r\n values: string[];\r\n selected: string;\r\n onChange: (s: string) => void;\r\n}\r\n\r\nconst SelectField = ({ selected, values, onChange }: OwnProps) => (\r\n <select className={s.selectField} onChange={e => onChange(e.target.value)} value={selected}>\r\n {values.concat(\"\").map(x => <option value={x} key={x}>{x}</option>)}\r\n </select>\r\n);\r\n\r\nexport default withTranslation()(SelectField);","const s = require(\"./config.module.scss\");\r\nimport { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\n\r\nimport { MonitoringConfigDto } from \"core/backend/common\";\r\nimport SelectField from \"./selectField\";\r\n\r\ninterface OwnProps {\r\n dto: MonitoringConfigDto;\r\n pages: string[];\r\n files: string[];\r\n setEditDto: (dto: MonitoringConfigDto) => void;\r\n}\r\n\r\nconst EditableRow = ({ t, dto, pages, files, setEditDto }: OwnProps & WithTranslation) => {\r\n\r\n return (\r\n <>\r\n <td className=\"alignLeft\">\r\n <SelectField values={pages.map(p => t(p))} selected={dto.page} onChange={s => setEditDto({ ...dto, page: s })} />\r\n </td>\r\n <td className=\"alignLeft\">{dto.tableName}</td>\r\n <td>\r\n <SelectField values={files} selected={dto.fileType} onChange={s => setEditDto({ ...dto, fileType: s })} />\r\n </td>\r\n <td>\r\n <SelectField values={files} selected={dto.backupFileType} onChange={s => setEditDto({ ...dto, backupFileType: s })} />\r\n </td>\r\n <td className=\"alignLeft\">\r\n <SelectField values={files} selected={dto.spanningFile} onChange={s => setEditDto({ ...dto, spanningFile: s })} />\r\n </td>\r\n <td className=\"alignLeft\">\r\n <input type=\"text\" style={{ width: \"100%\" }} value={dto.deadline} onChange={e => setEditDto({ ...dto, deadline: e.target.value })} />\r\n </td>\r\n <td>\r\n <input type=\"checkbox\" checked={dto.active} onChange={e => setEditDto({ ...dto, active: e.currentTarget.checked })} />\r\n </td>\r\n </>\r\n );\r\n}\r\n\r\nexport default withTranslation()(EditableRow);","const s = require(\"./config.module.scss\");\r\nimport { default as React, useEffect, useState } from \"react\";\r\n\r\nimport { MonitoringConfigDto } from \"core/backend/common\";\r\nimport CheckIcon from \"components/checkIcon\";\r\n\r\ninterface OwnProps {\r\n dto: MonitoringConfigDto;\r\n}\r\n\r\nconst ReadonlyRow = ({ dto }: OwnProps) => (\r\n <>\r\n <td className=\"alignLeft\">{dto.page}</td>\r\n <td className=\"alignLeft\">{dto.tableName}</td>\r\n <td className=\"alignLeft\">{dto.fileType}</td>\r\n <td className=\"alignLeft\">{dto.backupFileType}</td>\r\n <td className=\"alignLeft\">{dto.spanningFile}</td>\r\n <td className=\"alignLeft\">{dto.deadline}</td>\r\n <td><CheckIcon checked={dto.active} /></td>\r\n </>\r\n);\r\n\r\nexport default ReadonlyRow;","const s = require(\"./config.module.scss\");\r\nimport { default as React, useEffect, useState } from \"react\";\r\n\r\nimport { MonitoringConfigDto } from \"core/backend/common\";\r\nimport CheckIcon from \"components/checkIcon\";\r\nimport { faTrash, faEdit, faSave, faTimes } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport EditableRow from \"./editableRow\";\r\nimport ReadonlyRow from \"./readonlyRow\";\r\n\r\ninterface OwnProps {\r\n dto: MonitoringConfigDto;\r\n deleteConfig?: (id: number) => void;\r\n editConfig: (dto: MonitoringConfigDto) => void;\r\n cancelEditConfig?: () => void;\r\n pages: string[];\r\n files: string[];\r\n editDefault?: boolean;\r\n readOnly: boolean;\r\n}\r\n\r\n\r\nconst Row = ({ dto, deleteConfig, editConfig, pages, files, editDefault, cancelEditConfig, readOnly }: OwnProps) => {\r\n\r\n const [isEdit, setEdit] = useState(editDefault);\r\n const [editDto, setEditDto] = useState(dto);\r\n\r\n return (\r\n dto &&\r\n <tr className=\"small\">\r\n {isEdit ? <EditableRow dto={editDto} pages={pages} files={files} setEditDto={setEditDto} /> : <ReadonlyRow dto={dto} />}\r\n\r\n <td className={s.actions}>\r\n {readOnly\r\n ? <></>\r\n : isEdit\r\n ? <><FontAwesomeIcon icon={faSave} style={{ marginRight: \"10px\" }} onClick={e => { setEdit(false); editConfig(editDto); }} /> <FontAwesomeIcon icon={faTimes} onClick={e => { setEdit(false); setEditDto(dto); if (cancelEditConfig) cancelEditConfig(); }} /></>\r\n : <><FontAwesomeIcon icon={faEdit} style={{ marginRight: \"10px\" }} onClick={e => setEdit(true)} /> <FontAwesomeIcon icon={faTrash} onClick={e => deleteConfig && deleteConfig(dto.id)} /></>}\r\n </td>\r\n </tr>);\r\n}\r\n\r\nexport default Row;","const s = require(\"./config.module.scss\");\r\n\r\nimport { default as React, useState } from \"react\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { MonitoringConfigDto } from \"core/backend/common\";\r\nimport { faPlusSquare } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\n\r\nconst emptyDto: MonitoringConfigDto = { id: 0, page: \"\", tableName: \"\", fileType: \"\", backupFileType: \"\", spanningFile: \"\", deadline: \"\", active: false };\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: MonitoringConfigDto[];\r\n deleteConfig: (id: number) => void;\r\n editConfig: (dto: MonitoringConfigDto) => void;\r\n addConfig: (dto: MonitoringConfigDto) => void;\r\n pages: string[];\r\n files: string[];\r\n readOnly: boolean;\r\n}\r\n\r\nconst List = ({ t, data, scrollPosition, deleteConfig, editConfig, addConfig, pages, files, readOnly }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const [isAddition, setAddition] = useState(false);\r\n const [editDto, setEditDto] = useState(emptyDto);\r\n\r\n return (\r\n <>\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoringConfig:page\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoringConfig:table\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoringConfig:fileType\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoringConfig:backupFileType\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoringConfig:spanningFile\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoringConfig:deadline\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"monitoringConfig:active\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"comonitoringConfignfiguration:actions\")}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n data && data.map((d) => <Row key={d.id} dto={d} deleteConfig={deleteConfig} editConfig={editConfig} pages={pages} files={files} readOnly={readOnly} />)\r\n }\r\n {\r\n isAddition ? <Row key={emptyDto.id} dto={emptyDto} editDefault={true} cancelEditConfig={() => setAddition(false)} editConfig={x => { setAddition(false); addConfig(x) }} pages={pages} files={files} readOnly={readOnly} /> : null\r\n }\r\n </tbody>\r\n </table>\r\n {readOnly === false &&\r\n <div className={s.addIcon}>\r\n <FontAwesomeIcon icon={faPlusSquare} onClick={e => setAddition(true)} />\r\n </div>\r\n }\r\n </>\r\n );\r\n};\r\n\r\nconst translated = withTranslation()(List);\r\n\r\nexport default translated;","const s = require(\"../monitoring/monitoring.module.scss\");\r\n\r\nimport { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { MonitoringConfigDto, GetMonitorConfigDataResponse, InsertMonitorConfigDataResponse } from \"core/backend/common\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport List from \"./list\";\r\nimport { ApiResponse } from \"core/backend/data\";\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport { faCog } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\nexport const senderId = \"config\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"\",\r\n webUrl: \"monitoringConfig\",\r\n menu: \"\", //no menu link should be created for this page\r\n apiType: \"system\",\r\n title: \"common:titleMonitoring\",\r\n response: JSON.stringify(keys<GetMonitorConfigDataResponse>()),\r\n dto: JSON.stringify(keys<MonitoringConfigDto>()),\r\n parameters: \"\",\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const pageList = applicationState.pages.map(p => p.config);\r\n const initialLists: string[] = [];\r\n const initialData: MonitoringConfigDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [pages, setPages] = useState(initialLists);\r\n const [files, setFiles] = useState(initialLists);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n const deleteConfig = async (id: number) => {\r\n setLoading(true);\r\n const response = await httpService.apiPost<ApiResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/system/monitoringConfig/delete\",\r\n query: { id: id },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(data.filter(d => d.id !== id));\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n }\r\n\r\n const editConfig = async (dto: MonitoringConfigDto) => {\r\n setLoading(true);\r\n const response = await httpService.apiPost<ApiResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/system/monitoringConfig/update\",\r\n query: { id: dto.id, page: dto.page, fileType: dto.fileType, backupFileType: dto.backupFileType, spanningFile: dto.spanningFile, deadline: dto.deadline, active: dto.active },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(data.map(d => { if (d.id === dto.id) return dto; else return d; }));\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n }\r\n\r\n const addConfig = async (dto: MonitoringConfigDto) => {\r\n setLoading(true);\r\n const response = await httpService.apiPost<InsertMonitorConfigDataResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/system/monitoringConfig/insert\",\r\n query: { page: dto.page, fileType: dto.fileType, backupFileType: dto.backupFileType, spanningFile: dto.spanningFile, deadline: dto.deadline, active: dto.active },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(data.concat(response.data.data));\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n }\r\n\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(\"D\", false, false, keys<MonitoringConfigDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetMonitorConfigDataResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/system/monitoringConfig\",\r\n query: { Date: applicationState.selectedDate.toISOString() },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setFiles(response.data.filetypes);\r\n setPages(pageList.map(p => p.menu));\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n //<SheetDataPart ... noDataMessage={\"All expected files arrived for \" + applicationState.selectedDate.toLocaleDateString(\"en-CA\")}>\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} downloadFormats={['csv']} applicationState={applicationState} title={t(\"common:titleConfig\")} senderId={\"/system/\" + senderId} />\r\n {\r\n applicationState.userRole === \"Licquid\"\r\n || applicationState.userRole === \"JaoUser\"\r\n || applicationState.userRole === \"JaoAdmin\"\r\n ? <div className=\"subHeader\">\r\n <NavLink to={\"/monitoring\"} activeClassName={s.selected} className={s.selectableTabs}>Overview per BusinessDay</NavLink>\r\n <NavLink to={\"/monitoringFailed\"} activeClassName={s.selected} className={s.selectableTabs}>Failed Files</NavLink>\r\n <NavLink to={\"/monitoringConfig\"} activeClassName={s.selected} className={s.selectableTabs}><FontAwesomeIcon icon={faCog} /> Configure</NavLink>\r\n </div>\r\n : \"\"\r\n }\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} deleteConfig={deleteConfig} editConfig={editConfig} addConfig={addConfig} pages={pages} files={files} readOnly={applicationState.userRole !== \"Licquid\" && applicationState.userRole !== \"JaoAdmin\"} />\r\n </SheetDataPart>\r\n </>\r\n\r\n );\r\n}\r\n\r\nexport default withTranslation()(Page);\r\n","const s = require(\"./login.module.scss\");\r\n\r\nimport { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport {PageList} from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"\",\r\n webUrl: \"jaoLogin\",\r\n menu: \"\", //no menu link should be created for this page\r\n apiType: \"system\",\r\n title: \"common:titleMonitoring\",\r\n response: \"\",\r\n dto: \"\",\r\n parameters: \"\",\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const [userName, setUserName] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [error, setError] = useState(\"\");\r\n\r\n const doLogon = () => {\r\n if (password == null || password === \"\" || password === \"empty\") {\r\n setError(\"Password cannot be empty.\");\r\n return;\r\n }\r\n (async function runAsync() {\r\n const response = await httpService.apiPost({\r\n applicationState: applicationState,\r\n route: applicationState.applicationRoot + \"systemLogin\",\r\n query: { username: userName, password: password },\r\n senderId: \"login\"\r\n })();\r\n\r\n if (response.ok) {\r\n if (response.data.message) {\r\n setError(response.data.message);\r\n } else {\r\n setPassword(\"\");\r\n window.location.reload(); //refresh the page, so user data will be visible\r\n }\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n })();\r\n }\r\n const doLogoff = () => {\r\n setUserName(applicationState.userMail);\r\n (async function runAsync() {\r\n const response = await httpService.apiPost({\r\n applicationState: applicationState,\r\n route: applicationState.applicationRoot + \"systemLogoff\",\r\n senderId: \"login\"\r\n })();\r\n\r\n if (response.ok) {\r\n applicationState.changeToken(\"\", \"Guest\", applicationState.guestToken);\r\n setError(\"\");\r\n setPassword(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n })();\r\n }\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(\"\", false, false, []);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return applicationState.userRole === \"JaoUser\" || applicationState.userRole === \"JaoAdmin\" || applicationState.userRole === \"Licquid\" ?\r\n (\r\n <div style={{ flex: \"1\", position: \"relative\", overflow: \"auto\" }}>\r\n <h3 className={s.title}>{t(\"login:profile\")}</h3>\r\n <form className={s.container} id=\"logoffForm\" onSubmit={e => { e.preventDefault(); doLogoff(); return false; }}>\r\n <label htmlFor=\"user\" style={{ marginBottom: \"0px\" }}>{t(\"login:user\")}</label>\r\n <input type=\"text\" name=\"user\" value={applicationState.userMail} disabled />\r\n <br />\r\n\r\n <label htmlFor=\"role\" style={{ marginBottom: \"0px\" }}>{t(\"login:role\")}</label>\r\n <input type=\"text\" name=\"role\" value={applicationState.userRole} disabled />\r\n <br />\r\n\r\n <input type=\"submit\" className={s.submitButton} value=\"Log Off\" />\r\n\r\n {error || (<div className={s.error}>{error}</div>)}\r\n </form>\r\n </div >\r\n )\r\n : (\r\n <div style={{ flex: \"1\", position: \"relative\", overflow: \"auto\" }}>\r\n <h3 className={s.title}>{t(\"login:login\")}</h3>\r\n <form className={s.container} id=\"loginForm\" onSubmit={e => { e.preventDefault(); doLogon(); return false; }}>\r\n <label htmlFor=\"user\" style={{ marginBottom: \"0px\" }}>{t(\"login:user\")}</label>\r\n <input type=\"text\" name=\"user\" value={userName} onChange={e => setUserName(e.currentTarget.value)} />\r\n <br />\r\n\r\n <label htmlFor=\"password\" style={{ marginBottom: \"0px\" }}>{t(\"login:password\")}</label>\r\n <input type=\"password\" name=\"password\" value={password} onChange={e => setPassword(e.currentTarget.value)} />\r\n <br />\r\n\r\n <input type=\"submit\" className={s.submitButton} value=\"Log On\" />\r\n\r\n {error || (<div className={s.error}>{error}</div>)}\r\n </form>\r\n </div >\r\n );\r\n}\r\n\r\nexport default withTranslation(\"login\")(Page);\r\n","const s = require(\"../../../../components/downloadButton.module.scss\");\r\nconst s2 = require(\"./index.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 { faInfoCircle } from \"@fortawesome/free-solid-svg-icons\"; //fontawesome.com\r\nimport JaoLogo from \"components/jaoLogo\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"\",\r\n webUrl: \"home\",\r\n menu: \"\", //no menu link should be created for this page\r\n apiType: \"system\",\r\n title: \"common:titleHome\",\r\n response: \"\",\r\n dto: \"\",\r\n parameters: \"\",\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(\"\", false, false, []);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n //IBWT_PublicationHandbook = Redirect in web.config\r\n return (\r\n <div style={{ flex: \"1\", position: \"relative\", overflow: \"auto\" }}>\r\n <a href=\"IBWT_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(\"ibwt_home:welcomeTitle\")}</h3>\r\n\r\n <p className={s2.highlight}>\r\n {t(\"ibwt_home:homeParagraph0\")}\r\n </p>\r\n\r\n <p className={s2.highlight}>\r\n {t(\"ibwt_home:homeParagraph1\")}\r\n </p>\r\n </div>\r\n </div >\r\n );\r\n}\r\n\r\nexport default withTranslation(\"ibwt_home\")(Page);\r\n","const s = require(\"./select.module.scss\");\r\n\r\nimport { default as React, useState } from \"react\";\r\nimport classnames from \"classnames\";\r\n\r\nexport interface SelectItem {\r\n id: string;\r\n text: string;\r\n}\r\ninterface Props {\r\n data: SelectItem[];\r\n enabled: boolean;\r\n selectedItem: SelectItem;\r\n}\r\n\r\ninterface DispatchProps {\r\n onChange: (item: SelectItem) => void;\r\n}\r\ninterface State {\r\n open: boolean;\r\n}\r\n\r\nconst Select = ({ data, enabled, selectedItem, onChange }: Props & DispatchProps) => {\r\n const initialState: State = { open: false };\r\n const [state, setState] = useState(initialState);\r\n const [search, setSearch] = useState(\"\");\r\n\r\n const interceptEvent = (event: any) => {\r\n if (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n };\r\n const renderListItem = (item: SelectItem) => {\r\n const className = classnames(s.dropdownitem, item.id === selectedItem.id ? s.selected : s.notselected);\r\n return (<a key={item.id} className={className} onClick={(e) => { handleChange(e, item); }} onMouseDown={handleMouseDown} onBlur={handleBlur} href=\"#\">{item.text}</a>);\r\n };\r\n\r\n const handleChange = (event: any, item: SelectItem) => {\r\n clickedOnOption = false;\r\n interceptEvent(event);\r\n onChange(item);\r\n handleClose(event);\r\n };\r\n const handleClose = (event: any) => {\r\n interceptEvent(event);\r\n if (!clickedOnOption) {\r\n setState({ open: false });\r\n }\r\n clickedOnOption = false;\r\n };\r\n let clickedOnOption: Boolean = false;\r\n let blurTimeout: any = undefined;\r\n const handleBlur = () => {\r\n clearTimeout(blurTimeout);\r\n blurTimeout = setTimeout(handleClose, 0);\r\n };\r\n const toggleOpenClose = (event: any) => {\r\n interceptEvent(event);\r\n setState({ open: !state.open });\r\n if (state.open) {\r\n return setState({ open: false });\r\n }\r\n setSearch(\"\");\r\n };\r\n const handleMouseDown = () => {\r\n clickedOnOption = true;\r\n };\r\n\r\n const classNameInput = classnames(s.textField, \"inputBorder\", enabled ? s.enabled : s.disabled, state.open ? s.xxx : \"\");\r\n const classNameDropDown = classnames(s.dropdownmenu, state.open ? \"\" : s.hidden);\r\n const classNameSearch = classnames(\"inputBorder\", s.search, state.open ? \"\" : s.hidden);\r\n\r\n const selectedItems = data.filter((f) => { return f.id === selectedItem.id; });\r\n\r\n return (<div>\r\n <button className={classNameInput} onClick={toggleOpenClose} onBlur={handleBlur}>\r\n {data === undefined ? \"None available\"\r\n : data.length === 0 ? \"None available\"\r\n : selectedItems.length === 0 ? \"\"\r\n : selectedItems[0].text}\r\n </button>\r\n <input type=\"text\"\r\n onFocus={handleMouseDown}\r\n onBlur={handleBlur}\r\n className={classNameSearch}\r\n placeholder=\"search...\"\r\n value={search}\r\n onChange={(e) => setSearch(e.currentTarget.value)} />\r\n <div className={classNameDropDown}>\r\n {\r\n data && data.filter((d) => d.text.toLowerCase().includes(search.toLowerCase())).map(renderListItem)\r\n }\r\n </div>\r\n </div>);\r\n};\r\n\r\nexport default Select;","const s = require(\"./api.module.scss\");\r\n\r\nimport { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport * as queryString from \"querystring\";\r\n\r\ninterface OwnState {\r\n url: string;\r\n applicationState: ApplicationState;\r\n method: string;\r\n data: any;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, url, applicationState, method, data }: PageProps) => {\r\n\r\n return <div style={{ overflowWrap: \"break-word\" }}>\r\n {method == \"POST\" ?\r\n <div>\r\n <div className=\"inputlabel\">Curl</div>\r\n curl -X POST \"{url}\"\r\n ^<br />\r\n {/*-H \"Authorization: Bearer {(applicationState.userRole === \"Guest\" ? \"***Enter Your Personal Token Here***\" : applicationState.userToken)}\"\r\n ^<br />*/}\r\n -H \"Content-Type: application/json;charset=UTF-8\"\r\n ^<br />\r\n -d \"{JSON.stringify(data).replace(/\\\"/g, \"\\\\\\\"\")}\"\r\n </div>\r\n\r\n :\r\n <div>\r\n <div className=\"inputlabel\">Curl</div>\r\n curl -X {method} \"{url}{queryString.stringify(data)}\"\r\n {/*^<br />\r\n -H \"Authorization: Bearer {(applicationState.userRole === \"Guest\" ? \"***Enter Your Personal Token Here***\" : applicationState.userToken)}\"*/}\r\n </div>\r\n }</div>;\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React } from \"react\";\r\nimport { SearchField } from \"components/search\";\r\nimport Multiselect from 'multiselect-react-dropdown';\r\n\r\ninterface OwnState {\r\n option: SearchField;\r\n setValue: (value: any) => void;\r\n reset: boolean;\r\n setReset: (value: boolean) => void;\r\n}\r\n\r\ntype SearchProps = OwnState;\r\n\r\nconst InputField = ({ option, reset, setReset, setValue }: SearchProps) => {\r\n\r\n let multiselectRef: any;\r\n React.useEffect(() => {\r\n if (reset && multiselectRef && multiselectRef.current) {\r\n multiselectRef.current.resetSelectedValues();\r\n setReset(false);\r\n }\r\n }, [reset]);\r\n\r\n switch (option.type) {\r\n case \"bool\":\r\n return (\r\n <div style={{ paddingTop: \"5px\" }}>\r\n <input type=\"radio\" id=\"true\" value=\"true\" name={option.parameter} onClick={e => setValue(true)} />\r\n <label htmlFor=\"true\">True</label>\r\n <input type=\"radio\" id=\"false\" value=\"false\" name={option.parameter} onClick={e => setValue(false)} />\r\n <label htmlFor=\"false\">False</label>\r\n <input type=\"radio\" id=\"unset\" value=\"unset\" name={option.parameter} onClick={e => setValue(null)} />\r\n <label htmlFor=\"unset\">Unset</label>\r\n </div>\r\n )\r\n case \"multiselect\": {\r\n multiselectRef = React.createRef<Multiselect>();\r\n return (\r\n <Multiselect\r\n ref={multiselectRef}\r\n options={option?.options}\r\n onSelect={(list, v) => setValue(list.map((l: { value: any; }) => l.value))}\r\n onRemove={(list, v) => setValue(list)}\r\n showCheckbox={true}\r\n closeOnSelect={false}\r\n showArrow={true}\r\n avoidHighlightFirstOption={true}\r\n displayValue=\"title\"\r\n style={{\r\n 'chips': {\r\n 'fontSize': '8px',\r\n 'background': '#88a4bf'\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n default:\r\n return <input type=\"text\" onChange={e => setValue(e.currentTarget.value)} style={{ width: '100%' }} />\r\n }\r\n};\r\n\r\nexport default InputField;\r\n","import { default as React } from \"react\";\r\nimport { SearchField } from \"components/search\";\r\nimport InputField from \"./inputField\";\r\n\r\ninterface OwnState {\r\n option: SearchField;\r\n setOptionValue: (option: string, value: any) => void;\r\n reset: boolean;\r\n setReset: (value: boolean) => void;\r\n}\r\n\r\ntype SearchProps = OwnState;\r\n\r\nconst SearchOption = ({ option, reset, setReset, setOptionValue }: SearchProps) => {\r\n\r\n return <tr>\r\n <td style={{ paddingRight: '10px' }}>{option.title}</td>\r\n <td>\r\n <InputField\r\n option={option}\r\n reset={reset}\r\n setReset={setReset}\r\n setValue={(v: any) => setOptionValue(option.parameter, v)} />\r\n </td>\r\n </tr>\r\n};\r\n\r\nexport default SearchOption;\r\n","import { default as React, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport SearchOption from \"./searchOption\";\r\nimport Collapsible from 'react-collapsible';\r\nconst s = require(\"./search.module.scss\");\r\n\r\n\r\ninterface OwnState {\r\n search: (params: any) => void;\r\n isLoading: boolean;\r\n /*filter: { totalRows: number, totalRowsWithFilter: number, maxRows: number };*/\r\n searchFields?: SearchField[];\r\n}\r\nexport interface SearchField {\r\n title: string;\r\n parameter: string;\r\n type: string;\r\n options?: Option[];\r\n defaultValue?: any;\r\n}\r\nexport interface Option {\r\n title: string;\r\n value: any;\r\n}\r\n\r\ntype SearchProps = OwnState & WithTranslation;\r\n\r\nconst SearchField = ({ search, isLoading, /*filter,*/ searchFields, t }: SearchProps) => {\r\n\r\n const [searchOptions, setSearchOptions] = useState({});\r\n const [reset, setReset] = useState(false);\r\n\r\n const setOptionValue = (option: string, value: any) => {\r\n const newFilter = {\r\n ...searchOptions,\r\n [option]: value\r\n };\r\n setSearchOptions(newFilter);\r\n search(newFilter);\r\n }\r\n\r\n const resetFilter = () => {\r\n (document.getElementById(\"searchForm\") as HTMLFormElement).reset();\r\n setReset(true);\r\n setSearchOptions({});\r\n search({});\r\n }\r\n\r\n return (\r\n searchFields == undefined || searchFields == null || searchFields.length == 0 ? <></>\r\n : <div style={{ backgroundColor: \"#f5f5f5\", marginTop: \"10px\" }}>\r\n <Collapsible\r\n onClosing={() => (document.getElementsByClassName('Collapsible__contentOuter')[0] as HTMLElement).style.overflow = 'hidden'}\r\n onOpen={() => (document.getElementsByClassName('Collapsible__contentOuter')[0] as HTMLElement).style.overflow = 'inherit'}\r\n trigger={\r\n <div className={s.collapsible}>\r\n <span className={s.searchLabel}>{t(\"core_common:filter\")}</span>\r\n <i className={s.collapsibleArrow}></i>\r\n </div>\r\n }>\r\n <div className=\"inputlabel\" style={{ display: \"inline-block\" }}>\r\n <form id=\"searchForm\" onSubmit={e => e.preventDefault()}>\r\n <table><tbody>\r\n {\r\n searchFields.map(field =>\r\n <SearchOption\r\n key={field.parameter}\r\n option={field}\r\n reset={reset}\r\n setReset={setReset}\r\n setOptionValue={setOptionValue} />)\r\n }\r\n <tr style={{ borderTop: '1px solid #757575' }}>\r\n <td>\r\n <button style={{ marginBottom: \"3px\" }} onClick={() => resetFilter()}>\r\n {t(\"core_common:reset\").toString()}\r\n </button>\r\n </td>\r\n </tr>\r\n </tbody></table>\r\n </form>\r\n </div>\r\n\r\n </Collapsible>\r\n </div>\r\n );\r\n};\r\n\r\nexport default withTranslation()(SearchField);\r\n","const s = require(\"./api.module.scss\");\r\n\r\nimport { default as React, useEffect, useState, forwardRef } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { GetAvailableDatesResponse } from \"core/backend/data\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport JSONPretty from \"react-json-pretty\";\r\nimport classNames from \"classnames\";\r\nimport Tab_curl from \"./tab_curl\";\r\nimport ReactDatePicker from \"react-datepicker\";\r\nimport SearchForApi from \"components/searchForApi\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n url: string;\r\n selectedEndpoint: PageList;\r\n jsonStyle: any;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState, url, selectedEndpoint, jsonStyle }: PageProps) => {\r\n\r\n const [isLoading, setLoading] = useState(false);\r\n const [response, setResponse] = useState({ status: \"\", headers: \"\", data: \"\", size: 0, duration: 0, numberOfRows: 0 });\r\n const [toUtc, setToUtc] = useState(selectedEndpoint.getDefaultToDateTime(applicationState));\r\n const [skip, setSkip] = useState(0);\r\n const [take, setTake] = useState(10);\r\n const [search, setSearch] = useState({});\r\n const [method, setMethod] = useState(\"\");\r\n const [availableDates, setAvailableDates] = useState([]);\r\n\r\n const getQueryRequest = (): any => {\r\n let parametersSearch: any = {};\r\n JSON.parse(selectedEndpoint.parameters).forEach((p: string) => {\r\n if (p.toLowerCase() === \"fromutc\") parametersSearch.FromUtc = applicationState.selectedDate.toISOString();\r\n else if (p.toLowerCase() === \"toutc\") parametersSearch.ToUtc = toUtc.toISOString();\r\n else if (p.toLowerCase() === \"filter\") parametersSearch.Filter = (search)\r\n else if (p.toLowerCase() === \"skip\") parametersSearch.Skip = skip;\r\n else if (p.toLowerCase() === \"take\") parametersSearch.Take = take;\r\n });\r\n return parametersSearch;\r\n };\r\n const createQueryString = (data: any) => {\r\n return Object.keys(data).map(key => {\r\n let val = data[key]\r\n if (val !== null && typeof val === 'object') val = createQueryString(val)\r\n return `${key}=${encodeURIComponent(`${val}`.replace(/\\s/g, '_'))}`\r\n }).join('&')\r\n }\r\n const createQueryStringNestedIntoJson = (data: any) => {\r\n return Object.keys(data).map(key => {\r\n let val = data[key]\r\n if (val !== null && typeof val === 'object') val = JSON.stringify(val);\r\n return `${key}=${encodeURIComponent(`${val}`.replace(/\\s/g, '_'))}`\r\n }).join('&')\r\n }\r\n\r\n const getQueryString = (): string => {\r\n return createQueryStringNestedIntoJson(getQueryRequest());\r\n }\r\n\r\n useEffect(() => {\r\n setResponse({ status: \"\", headers: \"\", data: \"\", size: 0, duration: 0, numberOfRows: 0 });\r\n setMethod(\"\");\r\n setToUtc(selectedEndpoint.getDefaultToDateTime(applicationState));\r\n (async function runAsync() {\r\n const path = selectedEndpoint.apiUrl;\r\n const response = await httpService.apiPost<GetAvailableDatesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/data/availableDates\",\r\n query: {\r\n Utc: applicationState.getRootUtcTime().toISOString(),\r\n Page: path\r\n },\r\n senderId: \"navigation\"\r\n })();\r\n\r\n if (response.ok && response.data != null) {\r\n setAvailableDates(response.data.availableDates);\r\n }\r\n })();\r\n }, [selectedEndpoint]);\r\n\r\n const Line = ({ title }: any) => <div style={{ background: \"#eef1f6\", height: \"60px\", margin: \"20px -16px\", padding: \"30px 0 0 10px\", color: \"gray\", fontWeight: \"bold\", textTransform: \"uppercase\" }}>{title}</div>;\r\n\r\n const UtcDateInput = forwardRef((a: any, ref) => (<input className={classNames(s.parameter, \"inputBorder\")} type=\"text\" value={new Date(a.value).toISOString()} onClick={a.onClick} readOnly />));\r\n const handleNumChange = (numStr: string, setNum: any, min: number, max: number): void => {\r\n let num = parseInt(numStr);\r\n setNum((isNaN(num) || num < min) ? min : (num < max) ? num : max);\r\n }\r\n const doRequest = (async function runAsync() {\r\n\r\n applicationState.handleInputAvailablilityChange(selectedEndpoint.dateSteps, false, false, []);\r\n setLoading(true);\r\n setMethod(\"GET\");\r\n const start = new Date();\r\n const resp = await httpService.apiTryGet({\r\n applicationState,\r\n route: applicationState.apiService + \"/\" + selectedEndpoint.apiType + \"/\" + selectedEndpoint.apiUrl,\r\n query: getQueryString(),\r\n senderId: \"api\"\r\n })();\r\n // if (resp.data.appliedFilter != null) resp.data.appliedFilter = JSON.parse(resp.data.appliedFilter);\r\n const head = JSON.stringify(resp.headers);\r\n const body = JSON.stringify(resp.data);\r\n setResponse({\r\n status: resp.status.toString() + \" (\" + resp.statusText + \")\",\r\n headers: head,\r\n data: body,\r\n size: Math.round((head.length + body.length) / 10) / 100,\r\n duration: (new Date().getTime() - start.getTime()) / 1000,\r\n numberOfRows: resp.data.data?.length\r\n });\r\n setLoading(false);\r\n });\r\n\r\n const doRequestPost = (async function runAsync() {\r\n\r\n applicationState.handleInputAvailablilityChange(selectedEndpoint.dateSteps, false, false, []);\r\n setLoading(true);\r\n setMethod(\"POST\");\r\n\r\n const start = new Date();\r\n const resp = await httpService.apiTryPost({\r\n applicationState,\r\n route: applicationState.apiService + \"/\" + selectedEndpoint.apiType + \"/\" + selectedEndpoint.apiUrl,\r\n query: getQueryRequest(),\r\n senderId: \"api\"\r\n })();\r\n // if (resp.data.appliedFilter != null) resp.data.appliedFilter = JSON.parse(resp.data.appliedFilter);\r\n const head = JSON.stringify(resp.headers);\r\n const body = JSON.stringify(resp.data);\r\n setResponse({\r\n status: resp.status.toString() + \" (\" + resp.statusText + \")\",\r\n headers: head,\r\n data: body,\r\n size: Math.round((head.length + body.length) / 10) / 100,\r\n duration: (new Date().getTime() - start.getTime()) / 1000,\r\n numberOfRows: resp.data.data?.length\r\n });\r\n setLoading(false);\r\n });\r\n\r\n return (\r\n <div>\r\n {JSON.parse(selectedEndpoint.parameters).map((p: string) =>\r\n <React.Fragment key={p}>\r\n {(p === \"utc\") ?\r\n <>\r\n <div className=\"inputlabel\">UTC</div>\r\n <ReactDatePicker\r\n className={classNames(\"inputBorder\", selectedEndpoint.dateSteps != \"\" ? \"\" : \"disabled\")}\r\n locale=\"en-GB\"\r\n placeholderText=\"Weeks start on Monday\"\r\n dateFormat=\"yyyy-MM-dd HH:mm:ss\"\r\n showYearPicker={selectedEndpoint.dateSteps == \"Y\"}\r\n customInput={<UtcDateInput />}\r\n isClearable={false}\r\n fixedHeight\r\n todayButton=\"Today\"\r\n selected={applicationState.selectedDate}\r\n onChange={applicationState.handleDateChange}\r\n highlightDates={availableDates.map(d => new Date(d))}\r\n showTimeSelect\r\n timeFormat=\"HH:mm\"\r\n timeIntervals={60}\r\n timeCaption=\"Hour\"\r\n />\r\n </>\r\n\r\n : (p === \"fromUtc\") ?\r\n <>\r\n <div className=\"inputlabel\">From UTC</div>\r\n <ReactDatePicker\r\n id=\"fromUtc\"\r\n className={classNames(\"inputBorder\", selectedEndpoint.dateSteps != \"\" ? \"\" : \"disabled\")}\r\n locale=\"en-GB\"\r\n placeholderText=\"Weeks start on Monday\"\r\n dateFormat=\"yyyy-MM-dd HH:mm:ss\"\r\n showYearPicker={selectedEndpoint.dateSteps == \"Y\"}\r\n customInput={<UtcDateInput />}\r\n isClearable={false}\r\n fixedHeight\r\n todayButton=\"Today\"\r\n selected={applicationState.selectedDate}\r\n onChange={applicationState.handleDateChange}\r\n startDate={applicationState.selectedDate}\r\n endDate={new Date(new Date(toUtc).setSeconds(toUtc.getSeconds() - 1))}\r\n highlightDates={availableDates.map(d => new Date(d))}\r\n showTimeSelect\r\n timeFormat=\"HH:mm\"\r\n timeIntervals={60}\r\n timeCaption=\"Hour\"\r\n />\r\n </>\r\n\r\n : (p === \"toUtc\") ?\r\n <>\r\n <div className=\"inputlabel\">To UTC (exclusive)</div>\r\n <ReactDatePicker\r\n id=\"toUtc\"\r\n className={classNames(\"inputBorder\", selectedEndpoint.dateSteps != \"\" ? \"\" : \"disabled\")}\r\n locale=\"en-GB\"\r\n placeholderText=\"Weeks start on Monday\"\r\n dateFormat=\"yyyy-MM-dd HH:mm:ss\"\r\n showYearPicker={selectedEndpoint.dateSteps == \"Y\"}\r\n customInput={<UtcDateInput />}\r\n isClearable={false}\r\n fixedHeight\r\n todayButton=\"Today\"\r\n selected={toUtc}\r\n onChange={(v: Date) => setToUtc(v)}\r\n startDate={applicationState.selectedDate}\r\n endDate={new Date(new Date(toUtc).setSeconds(toUtc.getSeconds() - 1))}\r\n highlightDates={availableDates.map(d => new Date(d))}\r\n showTimeSelect\r\n timeFormat=\"HH:mm\"\r\n timeIntervals={60}\r\n timeCaption=\"Hour\"\r\n />\r\n </>\r\n\r\n : (p === \"skip\") ?\r\n <>\r\n <div className=\"inputlabel\">Skip</div>\r\n <input className={classNames(s.parameter, \"inputBorder\")} type=\"text\" value={skip} onChange={e => handleNumChange(e.currentTarget.value, setSkip, 0, 100000000)} />\r\n </>\r\n : (p === \"take\") ?\r\n <>\r\n <div className=\"inputlabel\">Take (max 100 in this test-tool)</div>\r\n <input className={classNames(s.parameter, \"inputBorder\")} type=\"text\" value={take} onChange={e => handleNumChange(e.currentTarget.value, setTake, 1, 100)} />\r\n </>\r\n : \"\"}\r\n </React.Fragment>\r\n )}\r\n\r\n <SearchForApi\r\n isLoading={isLoading}\r\n searchFields={selectedEndpoint.filterFields}\r\n search={s => { setSearch(s); }} />\r\n\r\n <div className=\"inputlabel\">Invoke</div>\r\n <div>\r\n <div className={classNames(s.pageButton)} onClick={() => doRequest()}>GET</div>\r\n <div className={classNames(s.pageButton)} onClick={() => doRequestPost()}>POST</div>\r\n </div>\r\n {method != \"\" && <>\r\n <Line title=\"REQUEST\" />\r\n <div className=\"inputlabel\">Request Method</div>\r\n {method}\r\n {method == \"GET\" && <>\r\n <div className=\"inputlabel\">Requested url + Querystring</div>\r\n {url + getQueryString()}\r\n </>}\r\n {method == \"POST\" && <>\r\n <div className=\"inputlabel\">Requested url</div>\r\n {url}\r\n </>}\r\n\r\n {/*<div className=\"inputlabel\">Request headers</div>\r\n <JSONPretty data={{ Authorization: \"Bearer \" + (applicationState.userRole === \"Guest\" ? \"***Enter Your Personal Token Here***\" : applicationState.userToken) }} theme={jsonStyle}></JSONPretty>*/}\r\n <div className=\"inputlabel\">Requested body {method == \"GET\" && \"(as querystring)\"}</div>\r\n <JSONPretty data={getQueryRequest()} theme={jsonStyle}></JSONPretty>\r\n <Line title=\"RESPONSE\" />\r\n {applicationState.userRole === \"Licquid\" && <>\r\n <div className=\"inputlabel\">Duration</div>\r\n {response.duration} seconds\r\n <div className=\"inputlabel\">Response size</div>\r\n {response.size} kb\r\n <div className=\"inputlabel\">Number Of Rows</div>\r\n {response.numberOfRows} rows\r\n </>}\r\n {/*<div className=\"inputlabel\">Response headers</div>\r\n <JSONPretty data={response.headers} theme={jsonStyle}></JSONPretty>*/}\r\n {\r\n isLoading ? <div className={s.loading} onClick={() => httpService.apiCancel()}></div>\r\n : <>\r\n <div className=\"inputlabel\">Response content</div>\r\n <JSONPretty data={response.data} theme={jsonStyle}></JSONPretty>\r\n </>\r\n }\r\n <Line title=\"CURL\" />\r\n <Tab_curl method={method} url={url}\r\n data={method == \"GET\" ? getQueryString() : getQueryRequest()}\r\n applicationState={applicationState} />\r\n </>}\r\n </div>\r\n );\r\n};\r\n\r\n\r\nexport default withTranslation()(Page);\r\n","const s = require(\"./api.module.scss\");\r\n\r\nimport { default as React } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport JSONPretty from \"react-json-pretty\";\r\nimport { PageList, FilterField } from \"core/pages/pageList\";\r\n\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n jsonStyle: any;\r\n selectedEndpoint: PageList;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState, selectedEndpoint, jsonStyle }: PageProps) => {\r\n\r\n return (\r\n\r\n <div>\r\n {/*<div className=\"inputlabel\">Request headers</div>\r\n <JSONPretty data={{ Authorization: \"Bearer \" + (applicationState.userRole === \"Guest\" ? \"***Enter Your Personal Token Here)***\" : applicationState.userToken) }} theme={jsonStyle}></JSONPretty>*/}\r\n <div className=\"inputlabel\">Request parameters</div>\r\n <JSONPretty data={selectedEndpoint.parameters} theme={jsonStyle}></JSONPretty>\r\n {selectedEndpoint.filterFields != null && selectedEndpoint.filterFields.length > 0 && <> <div className=\"inputlabel\">Filter</div>\r\n <JSONPretty data={selectedEndpoint.filterFields.map((f: FilterField) => f.parameter + \": \" + f.type.replace(\"text\", \"string\").replace(\"multiselect\", \"string[]\"))} theme={jsonStyle}></JSONPretty>\r\n </>}\r\n </div >\r\n );\r\n};\r\n\r\n\r\nexport default withTranslation()(Page);\r\n","const s = require(\"./api.module.scss\");\r\n\r\nimport { default as React, useEffect, useContext, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport JSONPretty from \"react-json-pretty\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n selectedEndpoint: any;\r\n jsonStyle: any;\r\n}\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState, selectedEndpoint, jsonStyle }: PageProps) => {\r\n return (\r\n <div>\r\n <div className=\"inputlabel\">Response</div>\r\n <JSONPretty data={selectedEndpoint.response} theme={jsonStyle}></JSONPretty>\r\n <div className=\"inputlabel\">Structure of \"Data\"</div>\r\n <JSONPretty data={selectedEndpoint.dto} theme={jsonStyle}></JSONPretty>\r\n </div>\r\n );\r\n};\r\n\r\n\r\nexport default withTranslation()(Page);\r\n","const s = require(\"./api.module.scss\");\r\n\r\nimport { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport classNames from \"classnames\";\r\nimport Select, { SelectItem } from \"components/select\";\r\nimport Tab_tryout from \"./tab_tryout\";\r\nimport Tab_request from \"./tab_request\";\r\nimport Tab_response from \"./tab_response\";\r\nimport { PageList } from \"core/pages/pageList\"\r\nimport { horizons } from \"core/pages/navigation\"\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\n\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"\",\r\n webUrl: \"api\",\r\n menu: \"\", //no menu link should be created for this page\r\n apiType: \"\",\r\n title: \"common:titleApi\",\r\n response: \"\",\r\n dto: \"\",\r\n parameters: \"\",\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n useEffect(() => {\r\n applicationState.handleInputAvailablilityChange(\"\", false, false, []);\r\n }, []);\r\n\r\n const jsonStyle = {\r\n main: \"line-height:1.3;color:#000;overflow-wrap:break-word;white-space:pre-wrap;\",\r\n error: \"line-height:1.3;color:#a11;\",\r\n key: \"color:#a11;\",\r\n string: \"color:#000;\",\r\n value: \"color:#164;\",\r\n boolean: \"color:#219;\",\r\n };\r\n\r\n const pageList = applicationState.pages.map(p => p.config);\r\n\r\n let apis = pageList.filter(a => a.apiUrl != \"\");\r\n for(let i = 0; i < horizons.length; ++i) {\r\n apis = apis.filter(a => a.apiUrl !== horizons[i] + \"_\");\r\n }\r\n apis = apis.sort((a, b) =>\r\n pageList.findIndex(x => x.apiUrl.toLowerCase() == a.apiUrl.toLowerCase()) < pageList.findIndex(x => x.apiUrl.toLowerCase() == b.apiUrl.toLowerCase()) ? -1 : 1\r\n );\r\n\r\n const [selectedEndpoint, setEndpoint] = useState(apis[0]);\r\n const [selectedTab, setSelectedTab] = useState(\"request\");\r\n\r\n const apiList = apis.map(a => {\r\n const text = a.apiUrl.substring(0, a.apiUrl.indexOf(\"_\")) + \" - \";\r\n return { id: a.apiUrl, text: (text.startsWith(\"ID\") ? text : text.substring(2)) + t(a.title) };\r\n }).sort((a, b) => a.id < b.id ? -1 : 1);\r\n\r\n const baseUrl = window.location.protocol + \"//\" + location.host + applicationState.apiService + \"/\";\r\n const handleEndpointChange = (item: SelectItem) => { setEndpoint(apis.filter(a => a.apiUrl === item.id)[0]); };\r\n return (\r\n <>\r\n <SheetHeader showDownload={false} applicationState={applicationState} title={t(\"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={apiList} onChange={handleEndpointChange} selectedItem={{ id: selectedEndpoint.apiUrl, text: t(selectedEndpoint.title) }} />\r\n <div className=\"inputlabel\">Url</div>\r\n <input className={classNames(s.maxWidth, \"inputBorder\")} type=\"text\" value={baseUrl + selectedEndpoint.apiType + \"/\" + selectedEndpoint.apiUrl} readOnly />\r\n </div>\r\n\r\n <div className=\"subHeader\">\r\n <div className={classNames(s.selectableBorder, \"request\" === selectedTab ? s.selected : \"\")} onClick={() => setSelectedTab(\"request\")}>Request</div>\r\n <div className={classNames(s.selectableBorder, \"response\" === selectedTab ? s.selected : \"\")} onClick={() => setSelectedTab(\"response\")}>Response</div>\r\n <div className={classNames(s.selectableBorder, \"tryout\" === selectedTab ? s.selected : \"\")} onClick={() => setSelectedTab(\"tryout\")}>Try it out</div>\r\n </div>\r\n <div className={s.json}>\r\n {\"request\" === selectedTab ? <Tab_request applicationState={applicationState} selectedEndpoint={selectedEndpoint} jsonStyle={jsonStyle} /> : \"\"}\r\n {\"response\" === selectedTab ? <Tab_response applicationState={applicationState} selectedEndpoint={selectedEndpoint} jsonStyle={jsonStyle} /> : \"\"}\r\n {\"tryout\" === selectedTab ? <Tab_tryout url={baseUrl + selectedEndpoint.apiType + \"/\" + selectedEndpoint.apiUrl + \"?\"} applicationState={applicationState} selectedEndpoint={selectedEndpoint} jsonStyle={jsonStyle} /> : \"\"}\r\n </div>\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\n\r\nexport default withTranslation()(Page);\r\n","import * as React from \"react\";\r\n\r\nimport { NtcAdjustmentDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: NtcAdjustmentDto;\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.adjustment}</td>\r\n </tr>;\r\n\r\nexport default Row;","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { NtcAdjustmentDto } from \"core/backend/data\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: NtcAdjustmentDto[];\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(\"ibwt_ntcAdjustment:adjustment\")}</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(\"ibwt_ntcAdjustment\")(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 { NtcAdjustmentDto, GetNtcAdjustmentResponse, GetNtcAdjustmentQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"ntcAdjustment\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"ntcAdjustment\",\r\n webUrl: \"CCR_ntcAdjustment\",\r\n menu: \"ibwt_common:menuNtcAdjustment\",\r\n title: \"ibwt_common:titleNtcAdjustment\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetNtcAdjustmentResponse>()),\r\n dto: JSON.stringify(keys<NtcAdjustmentDto>()),\r\n parameters: JSON.stringify(keys<GetNtcAdjustmentQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: NtcAdjustmentDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<NtcAdjustmentDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetNtcAdjustmentResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\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 { AllocationConstraintDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: AllocationConstraintDto;\r\n left: number;\r\n}\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.totalLoad}</td>\r\n <td>{dto.totalNonDisp}</td>\r\n <td>{dto.minDispNeeded}</td>\r\n <td>{dto.allocationConstraintImport === 12000 ? \"N/A*\" : dto.allocationConstraintImport}</td>\r\n <td>{dto.allocationConstraintExport === 12000 ? \"N/A*\" : dto.allocationConstraintExport}</td>\r\n </tr>;\r\n\r\nexport default Row;","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { AllocationConstraintDto } from \"core/backend/data\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: AllocationConstraintDto[];\r\n}\r\n\r\nconst List = ({ t, data, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\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(\"ibwt_allocationConstraint:expectedTotalLoad\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_allocationConstraint:expectedTotalNonDispatchableproduction\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_allocationConstraint:MinDispThermGenNeeded\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_allocationConstraint:allocationConstraintImport\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_allocationConstraint:allocationConstraintExport\")}</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(\"ibwt_allocationConstraint\")(List);\r\n\r\nexport default translated;","\r\n\r\nimport { default as React } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport { AllocationConstraintDto } from \"core/backend/data\";\r\n\r\ninterface OwnProps {\r\n data: AllocationConstraintDto[];\r\n}\r\n\r\nconst Disclaimer = ({ t, data }: OwnProps & WithTranslation) => {\r\n return data.filter(d => d.allocationConstraintImport === 12000).length > 0\r\n ? <span style={{ textAlign: \"right\", marginRight: \"10px\", marginTop: \"-25px\", zIndex: 5 }}>\r\n {t(\"ibwt_allocationConstraint:noAppliedLimitations\")}\r\n </span>\r\n : null;\r\n};\r\n\r\nconst translated = withTranslation()(Disclaimer);\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 Disclaimer from \"./disclaimer\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { AllocationConstraintDto, GetAllocationConstraintQuery, GetAllocationConstraintResponse } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faInfoCircle } from \"@fortawesome/free-solid-svg-icons\"; //fontawesome.com\r\nimport { PageList } from \"core/pages/pageList\";\r\nconst s = require(\"../../../../components/downloadButton.module.scss\");\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"allocationConstraint\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"allocationConstraint\",\r\n webUrl: \"CCR_allocationConstraint\",\r\n menu: \"ibwt_common:menuAllocationConstraint\",\r\n title: \"ibwt_common:titleAllocationConstraint\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetAllocationConstraintResponse>()),\r\n dto: JSON.stringify(keys<AllocationConstraintDto>()),\r\n parameters: JSON.stringify(keys<GetAllocationConstraintQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: AllocationConstraintDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<AllocationConstraintDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetAllocationConstraintResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} senderId={senderId} pageConfig={page_config}>\r\n <a href=\"/app/downloads/Cross-dependence between the level of the allocation constraint and the published parameters.pdf\" target=\"_blank\" style={{ float: \"right\", margin: \"2rem\", color: \"#88a4bf\", textDecoration: \"underline\" }}>\r\n Explanatory note <FontAwesomeIcon icon={faInfoCircle} style={{ fontSize: \"30px\", verticalAlign: \"middle\", margin: \"-6px 6px 0 6px\" }} />\r\n </a>\r\n </SheetHeader>\r\n <Disclaimer data={data} />\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 { IdAllocationConstraintDto } from \"core/backend/data\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: IdAllocationConstraintDto;\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.totalLoad}</td>\r\n <td>{dto.totalNonDisp}</td>\r\n <td>{dto.minDispNeeded}</td>\r\n <td>{dto.allocationConstraintImport === 12000 ? \"N/A*\" : dto.allocationConstraintImport}</td>\r\n <td>{dto.allocationConstraintExport === 12000 ? \"N/A*\" : dto.allocationConstraintExport}</td>\r\n </tr>;\r\n\r\nexport default Row;","import { default as React } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { IdAllocationConstraintDto } from \"core/backend/data\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: IdAllocationConstraintDto[];\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(\"ibwt_idAllocationConstraint:expectedTotalLoad\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_idAllocationConstraint:expectedTotalNonDispatchableproduction\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_idAllocationConstraint:MinDispThermGenNeeded\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_idAllocationConstraint:idAllocationConstraintImport\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_idAllocationConstraint:idAllocationConstraintExport\")}</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(\"ibwt_idAllocationConstraint\")(List);\r\n\r\nexport default translated;","\r\n\r\nimport { default as React } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport { AllocationConstraintDto } from \"core/backend/data\";\r\n\r\ninterface OwnProps {\r\n data: AllocationConstraintDto[];\r\n}\r\n\r\nconst Disclaimer = ({ t, data }: OwnProps & WithTranslation) => {\r\n return data.filter(d => d.allocationConstraintImport === 12000).length > 0\r\n ? <span style={{ textAlign: \"right\", marginRight: \"10px\", marginTop: \"-25px\", zIndex: 5 }}>\r\n {t(\"ibwt_idAllocationConstraint:noAppliedLimitations\")}\r\n </span>\r\n : null;\r\n};\r\n\r\nconst translated = withTranslation()(Disclaimer);\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 Disclaimer from \"./disclaimer\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport { IdAllocationConstraintDto, GetIdAllocationConstraintQuery, GetIdAllocationConstraintResponse } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faInfoCircle } from \"@fortawesome/free-solid-svg-icons\"; //fontawesome.com\r\nimport { PageList } from \"core/pages/pageList\";\r\nconst s = require(\"../../../../components/downloadButton.module.scss\");\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"idAllocationConstraint\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"idAllocationConstraint\",\r\n webUrl: \"CCR_idAllocationConstraint\",\r\n menu: \"ibwt_common:menuIdAllocationConstraint\",\r\n title: \"ibwt_common:titleIdAllocationConstraint\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetIdAllocationConstraintResponse>()),\r\n dto: JSON.stringify(keys<IdAllocationConstraintDto>()),\r\n parameters: JSON.stringify(keys<GetIdAllocationConstraintQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: IdAllocationConstraintDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<IdAllocationConstraintDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetIdAllocationConstraintResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} senderId={senderId} pageConfig={page_config}y>\r\n <a href=\"/app/downloads/Cross-dependence between the level of the allocation constraint and the published parameters.pdf\" target=\"_blank\" style={{ float: \"right\", margin: \"2rem\", color: \"#88a4bf\", textDecoration: \"underline\" }}>\r\n Explanatory note <FontAwesomeIcon icon={faInfoCircle} style={{ fontSize: \"30px\", verticalAlign: \"middle\", margin: \"-6px 6px 0 6px\" }} />\r\n </a>\r\n </SheetHeader>\r\n <Disclaimer data={data} />\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, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { CnecInfoDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: CnecInfoDto[];\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<CnecInfoDto>();\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={5} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:infoCnec\")}</th>\r\n <th colSpan={4} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:infoContingency\")}</th>\r\n <th colSpan={3} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:infoSelection\")}</th>\r\n <th colSpan={3} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:maxCalcInfo\")}</th>\r\n <th colSpan={3} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:adjMinInfo\")}</th>\r\n <th colSpan={(dtoHubs.length * 2)} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ptdfNtc\")}</th>\r\n <th colSpan={(dtoHubs.length * 2)} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ptdfRef\")}</th>\r\n <th colSpan={5} className=\"tableTitles fixedHeader text-disabled\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:fbInfo\")}</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(\"ibwt_cnec:cneName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:cneEic\")}</th>\r\n <th className=\"fixedHeader text-disabled\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:direction\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:hubTo\")}</th>\r\n\r\n <th className=\"fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:contingencyName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:contEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:hubTo\")}</th>\r\n\r\n <th className=\"fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:sensitivity\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:selected\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:limiting\")}</th>\r\n\r\n <th className=\"fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:fmax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:fref\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:fntc\")}</th>\r\n\r\n <th className=\"fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:mncc\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:mccc\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:totalMaczt\")}</th>\r\n\r\n {dtoHubs.map((hub, i) => <th key={hub.id} className={classNames(\"fixedHeader\", i === 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ptdf_IT_\" + hub.id)}</th>) /* Import */} \r\n {dtoHubs.map((hub, i) => <th key={hub.id} className={classNames(\"fixedHeader\")} style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ptdf_\" + hub.id + \"_IT\")}</th>) /* Export */} \r\n {dtoHubs.map((hub, i) => <th key={hub.id} className={classNames(\"fixedHeader\", i === 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ptdf_IT_\" + hub.id)}</th>) /* Import */}\r\n {dtoHubs.map((hub, i) => <th key={hub.id} className={classNames(\"fixedHeader\")} style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ptdf_\" + hub.id + \"_IT\")}</th>) /* Export */}\r\n\r\n <th className=\"fixedHeader lineLeft text-disabled\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"ibwt_cnec:frm\")}</th>\r\n <th className=\"fixedHeader text-disabled\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ltn\")}</th>\r\n <th className=\"fixedHeader text-disabled\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ram\")}</th>\r\n <th className=\"fixedHeader text-disabled\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:amr\")}</th>\r\n <th className=\"fixedHeader text-disabled\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ltaMargin\")}</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(\"ibwt_cnec\")(List);\r\n\r\nexport default translated;","import { default as React } from \"react\";\r\nimport ReactPaginate from 'react-paginate';\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\n\r\ninterface OwnProps {\r\n currentPage: number;\r\n pageCount: number;\r\n realCount: number;\r\n onPageClick: (n: number) => void;\r\n}\r\nconst scrollPosition=document.getElementsByClassName(\"xx\");\r\nconst Pagination = ({ pageCount, currentPage, realCount, onPageClick, t }: OwnProps & WithTranslation) =>\r\n (pageCount > 0 || realCount > pageCount) ?\r\n <nav aria-label=\"Page navigation example\" style={{ display: \"flex\" }}>\r\n <ReactPaginate\r\n containerClassName=\"pagination p-0 m-2 ml-3\"\r\n pageCount={pageCount}\r\n forcePage={currentPage}\r\n onPageChange={(n) => {onPageClick(n.selected);scrollPosition[0].scrollTo(0,0)}}\r\n breakClassName=\"page-item\"\r\n pageClassName=\"page-item\"\r\n previousClassName=\"page-item\"\r\n nextClassName=\"page-item\"\r\n pageLinkClassName=\"page-link\"\r\n previousLinkClassName=\"page-link\"\r\n nextLinkClassName=\"page-link\"\r\n breakLabel={<a className=\"page-link\">...</a>}\r\n activeClassName=\"active\"\r\n disabledClassName=\"disabled\"\r\n nextLabel={t(\"common:next\")}\r\n previousLabel={t(\"common:previous\")}\r\n marginPagesDisplayed={2}\r\n pageRangeDisplayed={8}\r\n />\r\n {(realCount > pageCount) && (pageCount == currentPage + 1) && <span style={{ marginTop: \"15px\" }}></span>}\r\n </nav>\r\n : null;\r\n\r\nexport default withTranslation()(Pagination);","import { default as React } from \"react\";\r\nimport { SearchField } from \"components/search\";\r\nimport Multiselect from 'multiselect-react-dropdown';\r\n\r\ninterface OwnState {\r\n option: SearchField;\r\n setValue: (value: any) => void;\r\n reset: boolean;\r\n setReset: (value: boolean) => void;\r\n}\r\n\r\ntype SearchProps = OwnState;\r\n\r\nconst InputField = ({ option, reset, setReset, setValue }: SearchProps) => {\r\n\r\n let multiselectRef: any;\r\n React.useEffect(() => {\r\n if (reset && multiselectRef && multiselectRef.current) {\r\n multiselectRef.current.resetSelectedValues();\r\n setReset(false);\r\n }\r\n }, [reset]);\r\n\r\n switch (option.type) {\r\n case \"bool\":\r\n return (\r\n <div style={{ paddingTop: \"5px\" }}>\r\n <input type=\"radio\" id=\"true\" value=\"true\" name={option.parameter} onClick={e => setValue(true)} />\r\n <label htmlFor=\"true\">True</label>\r\n <input type=\"radio\" id=\"false\" value=\"false\" name={option.parameter} onClick={e => setValue(false)} />\r\n <label htmlFor=\"false\">False</label>\r\n <input type=\"radio\" id=\"unset\" value=\"unset\" name={option.parameter} onClick={e => setValue(null)} />\r\n <label htmlFor=\"unset\">Unset</label>\r\n </div>\r\n )\r\n case \"multiselect\": {\r\n multiselectRef = React.createRef<Multiselect>();\r\n return (\r\n <Multiselect\r\n ref={multiselectRef}\r\n options={option?.options}\r\n onSelect={(list, v) => setValue(list.map((l: { value: any; }) => l.value))}\r\n onRemove={(list, v) => setValue(list)}\r\n showCheckbox={true}\r\n closeOnSelect={false}\r\n showArrow={true}\r\n avoidHighlightFirstOption={true}\r\n displayValue=\"title\"\r\n style={{\r\n 'chips': {\r\n 'fontSize': '8px',\r\n 'background': '#88a4bf'\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n default:\r\n return <input type=\"text\" onChange={e => setValue(e.currentTarget.value)} style={{ width: '100%' }} />\r\n }\r\n};\r\n\r\nexport default InputField;\r\n","import { default as React } from \"react\";\r\nimport { SearchField } from \"components/search\";\r\nimport InputField from \"./inputField\";\r\n\r\ninterface OwnState {\r\n option: SearchField;\r\n setOptionValue: (option: string, value: any) => void;\r\n reset: boolean;\r\n setReset: (value: boolean) => void;\r\n}\r\n\r\ntype SearchProps = OwnState;\r\n\r\nconst SearchOption = ({ option, reset, setReset, setOptionValue }: SearchProps) => {\r\n\r\n React.useEffect(() => {\r\n }, [reset]);\r\n\r\n\r\n return (\r\n <>\r\n <tr>\r\n <td style={{ paddingRight: '10px' }}>{option.title}</td>\r\n <td>\r\n <InputField\r\n option={option}\r\n reset={reset}\r\n setReset={setReset}\r\n setValue={(v: any) => setOptionValue(option.parameter, v)} />\r\n </td>\r\n </tr>\r\n\r\n </>\r\n );\r\n};\r\n\r\nexport default SearchOption;\r\n","import { default as React, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport SearchOption from \"./searchOption\";\r\nimport Collapsible from 'react-collapsible';\r\nimport { FilterOption } from \"core/pages/pageList\";\r\nconst s = require(\"./search.module.scss\");\r\n\r\nexport const default_tsos: FilterOption[] = [\r\n { title: \"Apg\", value: \"10XAT-APG------Z\" },\r\n { title: \"Rte\", value: \"10XFR-RTE------Q\" }\r\n];\r\n\r\nexport const default_hubs: FilterOption[] = [\r\n { title: \"AT\", value: \"10YAT-APG------L\" },\r\n { title: \"FR\", value: \"10YFR-RTE------C\" },\r\n { title: \"SI\", value: \"10YSI-ELES-----O\" }\r\n];\r\n\r\ninterface OwnState {\r\n search: (params: any) => void;\r\n isLoading: boolean;\r\n filter: { totalRows: number, totalRowsWithFilter: number, maxRows: number };\r\n searchFields: SearchField[];\r\n}\r\nexport interface SearchField {\r\n title: string;\r\n parameter: string;\r\n type: string;\r\n options?: Option[];\r\n defaultValue?: any;\r\n}\r\nexport interface Option {\r\n title: string;\r\n value: any;\r\n}\r\n\r\ntype SearchProps = OwnState & WithTranslation;\r\n\r\nconst SearchField = ({ search, isLoading, filter, searchFields, t }: SearchProps) => {\r\n\r\n const [searchOptions, setSearchOptions] = useState({});\r\n const [reset, setReset] = useState(false);\r\n\r\n const setOptionValue = (option: string, value: any) => {\r\n setSearchOptions({\r\n ...searchOptions,\r\n [option]: value\r\n });\r\n }\r\n\r\n const resetFilter = () => {\r\n (document.getElementById(\"searchForm\") as HTMLFormElement).reset();\r\n setReset(true);\r\n setSearchOptions({});\r\n search({});\r\n }\r\n\r\n return (\r\n <Collapsible\r\n onClosing={() => (document.getElementsByClassName('Collapsible__contentOuter')[0] as HTMLElement).style.overflow = 'hidden'}\r\n onOpen={() => (document.getElementsByClassName('Collapsible__contentOuter')[0] as HTMLElement).style.overflow = 'inherit'}\r\n trigger={\r\n <div className={s.collapsible}>\r\n <span className={s.searchLabel}>{t(\"common:search\")}</span>\r\n <i className={s.collapsibleArrow}></i>\r\n </div>\r\n }>\r\n <div className=\"inputlabel\" style={{ display: \"inline-block\" }}>\r\n <form id=\"searchForm\" onSubmit={e => e.preventDefault()}>\r\n <table><tbody>\r\n {\r\n searchFields.map(field =>\r\n <SearchOption\r\n key={field.parameter}\r\n option={field}\r\n reset={reset}\r\n setReset={setReset}\r\n setOptionValue={setOptionValue} />)\r\n }\r\n <tr style={{ borderTop: '1px solid #757575' }}>\r\n <td>\r\n <button style={{ marginBottom: \"3px\" }} onClick={() => resetFilter()}>\r\n {t(\"common:reset\").toString()}\r\n </button>\r\n <br />\r\n <button onClick={() => { search(searchOptions) }}>\r\n {t(\"common:search\")}\r\n </button>\r\n </td>\r\n <td style={{ paddingTop: '5px' }}>\r\n <div style={{ display: \"inline-block\", marginLeft: \"20px\" }}>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{isLoading ? t(\"common:loading\") : t(\"common:totalWithoutFilter\") + \": \" + filter.totalRows}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{isLoading ? \"\" : t(\"common:totalWithFilter\") + \": \" + filter.totalRowsWithFilter}</div>\r\n <div className=\"inputlabel\" style={{ margin: 0 }}>{isLoading ? \"\" : t(\"common:displayedRows\") + \": \" + Math.min(filter.maxRows, filter.totalRowsWithFilter)}</div>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody></table>\r\n </form>\r\n </div>\r\n </Collapsible>\r\n );\r\n};\r\n\r\nexport default withTranslation()(SearchField);\r\n","import { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport { CnecInfoDto, GetCnecInfoQuery, GetCnecInfoResponse } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport Pagination from \"components/pagination\";\r\nimport SearchField, { default_hubs } from \"components/search\"\r\nimport { FilterField, PageList } from \"../../pageList\";\r\nimport {makePageChange, makeRequest} from \"utils\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"cnecInfo\";\r\n\r\nexport const filterFields_CnecInfo: FilterField[] = [\r\n { title: \"CnecName\", parameter: \"CnecName\", type: \"text\" },\r\n { title: \"HubFrom\", parameter: \"HubFrom\", type: \"multiselect\", options: default_hubs },\r\n { title: \"HubTo\", parameter: \"HubTo\", type: \"multiselect\", options: default_hubs },\r\n { title: \"Contingency\", parameter: \"Contingency\", type: \"text\" },\r\n { title: \"Selected\", parameter: \"Selected\", type: \"bool\" }];\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"cnecInfo\",\r\n webUrl: \"CCR_cnecInfo\",\r\n menu: \"ibwt_common:menuCnecInfo\",\r\n title: \"ibwt_common:titleCnecInfo\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetCnecInfoResponse>()),\r\n dto: JSON.stringify(keys<CnecInfoDto>()),\r\n parameters: JSON.stringify(keys<GetCnecInfoQuery>()),\r\n dateSteps: \"H\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Hour(),\r\n filterFields: filterFields_CnecInfo\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: GetCnecInfoResponse = { data: [], totalRows: 0, skip: 0, take: 0, totalRowsWithFilter: 0, lastModifiedOn: \"\", appliedFilter: { cnecName: \"\", hubFrom: [], hubTo: [], contingency: \"\", selected: true }, messages: [], rejected: false };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [search, setSearch] = useState({});\r\n const keysInDto = keys<CnecInfoDto>();\r\n const [pageNumber, setPageNumber] = useState(0);\r\n\r\n\r\n function handlePageChange(pageNumber: number) {\r\n makePageChange(pageNumber, applicationState, data, setPageNumber, (skip, take) => makeRequest(skip, take, applicationState, initialData, search, senderId, page_config, setLoading, setError, setData));\r\n }\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keysInDto.map(d => d.replace(\"ptdfNtcs_IT_\", \"hub_\").replace(\"ptdfRefs_\", \"border_\")).concat([\"hub_IT\"]));\r\n makeRequest(0, applicationState.pageSize, applicationState, initialData, search, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate, search]);\r\n\r\n const pageCount = Math.ceil(data.totalRowsWithFilter / applicationState.maxRows);\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <div className=\"subHeader\">\r\n <SearchField\r\n isLoading={isLoading}\r\n searchFields={filterFields_CnecInfo}\r\n search={s => { setSearch(s); setPageNumber(0); }}\r\n filter={{ totalRows: data.totalRows, totalRowsWithFilter: data.totalRowsWithFilter, maxRows: applicationState.maxRows }} />\r\n </div>\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List\r\n data={data.data.slice((pageNumber % 10) * applicationState.maxRows, ((pageNumber % 10) + 1) * applicationState.maxRows)}\r\n hubs={applicationState.selectedHubs.filter(h => h.selected&& keysInDto.some((key) => key === \"ptdfRefs_IT_\" + h.id.toUpperCase() || key === \"ptdfRefs_\" + h.id.toUpperCase() + \"_IT\"))}\r\n />\r\n </SheetDataPart>\r\n <Pagination\r\n currentPage={pageNumber}\r\n onPageClick={handlePageChange}\r\n pageCount={pageCount}\r\n realCount={data.totalRows}\r\n />\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import * as React from \"react\";\r\n\r\nimport { IdNtcAdjustmentDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: IdNtcAdjustmentDto;\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.adjustment}</td>\r\n </tr>;\r\n\r\nexport default Row;","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { IdNtcAdjustmentDto } from \"core/backend/data\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: IdNtcAdjustmentDto[];\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(\"ibwt_ntcAdjustment:adjustment\")}</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(\"ibwt_ntcAdjustment\")(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 { IdNtcAdjustmentDto, GetIdNtcAdjustmentResponse, GetIdNtcAdjustmentQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"idNtcAdjustment\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"idNtcAdjustment\",\r\n webUrl: \"CCR_idNtcAdjustment\",\r\n menu: \"ibwt_common:menuIdNtcAdjustment\",\r\n title: \"ibwt_common:titleIdNtcAdjustment\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetIdNtcAdjustmentResponse>()),\r\n dto: JSON.stringify(keys<IdNtcAdjustmentDto>()),\r\n parameters: JSON.stringify(keys<GetIdNtcAdjustmentQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: IdNtcAdjustmentDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<IdNtcAdjustmentDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetIdNtcAdjustmentResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\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 { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { IdCnecInfoDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: IdCnecInfoDto[];\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<IdCnecInfoDto>();\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={5} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:infoCnec\")}</th>\r\n <th colSpan={4} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:infoContingency\")}</th>\r\n <th colSpan={3} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:infoSelection\")}</th>\r\n <th colSpan={3} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:maxCalcInfo\")}</th>\r\n <th colSpan={3} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:adjMinInfo\")}</th>\r\n <th colSpan={(dtoHubs.length * 2)} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ptdfNtc\")}</th>\r\n <th colSpan={(dtoHubs.length * 2)} className=\"tableTitles fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ptdfRef\")}</th>\r\n <th colSpan={5} className=\"tableTitles fixedHeader text-disabled\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:fbInfo\")}</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(\"ibwt_cnec:cneName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:cneEic\")}</th>\r\n <th className=\"fixedHeader text-disabled\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:direction\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:hubTo\")}</th>\r\n\r\n <th className=\"fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:contingencyName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:contEic\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:hubFrom\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:hubTo\")}</th>\r\n\r\n <th className=\"fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:sensitivity\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:selected\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:limiting\")}</th>\r\n\r\n <th className=\"fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:fmax\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:fref\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:fntc\")}</th>\r\n\r\n <th className=\"fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:mncc\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:mccc\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:totalMaczt\")}</th>\r\n\r\n {dtoHubs.map((hub, i) => <th key={hub.id} className={classNames(\"fixedHeader\", i === 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ptdf_IT_\" + hub.id)}</th>) /* Import */} \r\n {dtoHubs.map((hub, i) => <th key={hub.id} className={classNames(\"fixedHeader\")} style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ptdf_\" + hub.id + \"_IT\")}</th>) /* Export */} \r\n {dtoHubs.map((hub, i) => <th key={hub.id} className={classNames(\"fixedHeader\", i === 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ptdf_IT_\" + hub.id)}</th>) /* Import */}\r\n {dtoHubs.map((hub, i) => <th key={hub.id} className={classNames(\"fixedHeader\")} style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ptdf_\" + hub.id + \"_IT\")}</th>) /* Export */}\r\n\r\n <th className=\"fixedHeader lineLeft text-disabled\" style={{ top: top + \"px\", whiteSpace: \"nowrap\" }}>{t(\"ibwt_cnec:frm\")}</th>\r\n <th className=\"fixedHeader text-disabled\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ltn\")}</th>\r\n <th className=\"fixedHeader text-disabled\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ram\")}</th>\r\n <th className=\"fixedHeader text-disabled\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:amr\")}</th>\r\n <th className=\"fixedHeader text-disabled\" style={{ top: top + \"px\" }}>{t(\"ibwt_cnec:ltaMargin\")}</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(\"ibwt_cnec\")(List);\r\n\r\nexport default translated;","import { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"./list\";\r\nimport { IdCnecInfoDto, GetIdCnecInfoResponse, GetIdCnecInfoQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport Pagination from \"components/pagination\";\r\nimport SearchField, { default_hubs } from \"components/search\"\r\nimport { FilterField, PageList } from \"../../pageList\";\r\nimport {makePageChange, makeRequest} from \"utils\";\r\n \r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"idCnecInfo\";\r\n\r\nexport const filterFields_IdCnecInfo: FilterField[] = [\r\n { title: \"CnecName\", parameter: \"CnecName\", type: \"text\" },\r\n { title: \"HubFrom\", parameter: \"HubFrom\", type: \"multiselect\", options: default_hubs },\r\n { title: \"HubTo\", parameter: \"HubTo\", type: \"multiselect\", options: default_hubs },\r\n { title: \"Contingency\", parameter: \"Contingency\", type: \"text\" },\r\n { title: \"Selected\", parameter: \"Selected\", type: \"bool\" }];\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"idCnecInfo\",\r\n webUrl: \"CCR_idCnecInfo\",\r\n menu: \"ibwt_common:menuIdCnecInfo\",\r\n title: \"ibwt_common:titleIdCnecInfo\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetIdCnecInfoResponse>()),\r\n dto: JSON.stringify(keys<IdCnecInfoDto>()),\r\n parameters: JSON.stringify(keys<GetIdCnecInfoQuery>()),\r\n dateSteps: \"H12+\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Hour(),\r\n filterFields: filterFields_IdCnecInfo\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: GetIdCnecInfoResponse = { data: [], totalRows: 0, skip: 0, take: 0, totalRowsWithFilter: 0, lastModifiedOn: \"\", appliedFilter: { cnecName: \"\", hubFrom: [], hubTo: [], contingency: \"\", selected: true }, messages: [], rejected: false };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [search, setSearch] = useState({});\r\n const keysInDto = keys<IdCnecInfoDto>();\r\n const [pageNumber, setPageNumber] = useState(0);\r\n\r\n\r\n function handlePageChange(pageNumber: number) {\r\n makePageChange(pageNumber, applicationState, data, setPageNumber, (skip, take) => makeRequest(skip, take, applicationState, initialData, search, senderId, page_config, setLoading, setError, setData));\r\n }\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keysInDto.map(d => d.replace(\"ptdfNtcs_IT_\", \"hub_\").replace(\"ptdfRefs_\", \"border_\")).concat([\"hub_IT\"]));\r\n makeRequest<GetIdCnecInfoResponse>(0, applicationState.pageSize, applicationState, initialData, search, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate, search]);\r\n \r\n const pageCount = Math.ceil(data.totalRowsWithFilter / applicationState.maxRows);\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <div className=\"subHeader\">\r\n <SearchField\r\n isLoading={isLoading}\r\n searchFields={filterFields_IdCnecInfo}\r\n search={s => { setSearch(s); setPageNumber(0); }}\r\n filter={{ totalRows: data.totalRows, totalRowsWithFilter: data.totalRowsWithFilter, maxRows: applicationState.maxRows }} />\r\n </div>\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List\r\n data={data.data.slice((pageNumber % 10) * applicationState.maxRows, ((pageNumber % 10) + 1) * applicationState.maxRows)}\r\n hubs={applicationState.selectedHubs.filter(h => h.selected && keysInDto.some((key) => key === \"ptdfRefs_IT_\" + h.id.toUpperCase() || key === \"ptdfRefs_\" + h.id.toUpperCase() + \"_IT\"))}\r\n />\r\n </SheetDataPart>\r\n <Pagination\r\n currentPage={pageNumber}\r\n onPageClick={handlePageChange}\r\n pageCount={pageCount}\r\n realCount={data.totalRows}\r\n />\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { IdForecastedDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: IdForecastedDto[];\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<IdForecastedDto>();\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} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"ibwt_forecasted:forecastedVerticalLoad\")}</th>\r\n <th colSpan={dtoHubs.length} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"ibwt_forecasted:forecastedProduction\")}</th>\r\n <th colSpan={dtoHubs.length} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"ibwt_forecasted:forecastedNetPosition\")}</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\" }}>ID</th>\r\n <th colSpan={dtoHubs.length} className=\"fixedHeader\" style={{ top: top + \"px\" }}>ID</th>\r\n <th colSpan={dtoHubs.length} className=\"fixedHeader\" style={{ top: top + \"px\" }}>ID</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 {dtoHubs.map((hub, index) => <th key={hub.id + 1} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeft\" : \"\")} 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 ? \"lineLeft\" : \"\")} 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 ? \"lineLeft\" : \"\")} 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(\"ibwt_forecasted\")(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 { IdForecastedDto, GetIdForecastedResponse, GetIdForecastedQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"idForecasted\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"idForecasted\",\r\n webUrl: \"CCR_idForecasted\",\r\n menu: \"ibwt_common:menuIdForecasted\",\r\n title: \"ibwt_common:titleIdForecasted\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetIdForecastedResponse>()),\r\n dto: JSON.stringify(keys<IdForecastedDto>()),\r\n parameters: JSON.stringify(keys<GetIdForecastedQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const selectedHubs = applicationState.selectedHubs.filter((f) => f.selected);\r\n const selectedTsos = applicationState.selectedTsos.filter((f) => f.selected);\r\n\r\n const initialData: IdForecastedDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, true, keys<IdForecastedDto>().map(d => d.replace(\"vertLoad_\", \"hub_\")));\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetIdForecastedResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} hubs={selectedHubs} tsos={selectedTsos} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { ForecastedDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: ForecastedDto[];\r\n hubs: MultiSelectItem[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, hubs, 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<ForecastedDto>();\r\n const dtoHubs = hubs.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\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={dtoHubs.length} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"ibwt_forecasted:forecastedVerticalLoad\")}</th>\r\n <th colSpan={dtoHubs.length} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"ibwt_forecasted:forecastedProduction\")}</th>\r\n <th colSpan={dtoHubs.length} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"ibwt_forecasted:forecastedNetPosition\")}</th>\r\n <th colSpan={dtoHubs.length} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"ibwt_forecasted:LongTermNomination\")}</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\" }}>D-2</th>\r\n <th colSpan={dtoHubs.length} className=\"fixedHeader\" style={{ top: top + \"px\" }}>D-2</th>\r\n <th colSpan={dtoHubs.length} className=\"fixedHeader\" style={{ top: top + \"px\" }}>D-2</th>\r\n <th colSpan={dtoHubs.length} className=\"fixedHeader\" style={{ top: top + \"px\" }}></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 {dtoHubs.map((hub, index) => <th key={hub.id + 1} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeft\" : \"\")} 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 ? \"lineLeft\" : \"\")} 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 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}>{t(\"common_hubs:\" + hub.id)}</th>)}\r\n {dtoBorders.map((border, index) => <th key={border.id + 4} className={classNames(\"fixedHeader\", index === 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}>{t(\"common_borders:\" + border.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} borders={dtoBorders} left={left} />)\r\n }\r\n </tbody>\r\n </table >\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"ibwt_forecasted\")(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 { ForecastedDto, GetForecastedQuery, GetForecastedResponse } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"forecasted\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"forecasted\",\r\n webUrl: \"CCR_forecasted\",\r\n menu: \"ibwt_common:menuForecasted\",\r\n title: \"ibwt_common:titleForecasted\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetForecastedResponse>()),\r\n dto: JSON.stringify(keys<ForecastedDto>()),\r\n parameters: JSON.stringify(keys<GetForecastedQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const selectedHubs = applicationState.selectedHubs.filter((f) => f.selected);\r\n const selectedBorders = applicationState.selectedBorders.filter((f) => f.selected);\r\n\r\n const initialData: ForecastedDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, true, keys<ForecastedDto>()\r\n .map(d => d.startsWith(\"ltn_\")\r\n ? d.replace(\"ltn_\", \"border_\")\r\n : d.replace(\"vertLoad_\", \"hub_\")\r\n ));\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetForecastedResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} hubs={selectedHubs} borders={selectedBorders} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import * as React from \"react\";\r\ninterface Props {\r\n text: string;\r\n disabled?: boolean;\r\n}\r\n\r\nconst BorderName = ({ text, disabled }: Props) =>\r\n <span dangerouslySetInnerHTML={{ __html: text.replace(/(\\►)/g, `<span class=\"triangle ${disabled ? \"text-disabled\" : \"\"}\">$1</span>`) }} />;\r\n\r\nexport default BorderName;","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { FinalTtcNtcDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\nimport BorderName from \"components/borderName\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: FinalTtcNtcDto[];\r\n borders: MultiSelectItem[];\r\n}\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<FinalTtcNtcDto>();\r\n const dtoBorders = borders.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n const borderOrdering = [\"IT_AT\", \"IT_CH\", \"IT_FR\", \"IT_SI\", \"AT_IT\", \"CH_IT\", \"FR_IT\", \"SI_IT\"];\r\n const finalBorders = borderOrdering.map(b => dtoBorders.find(db => db.id === b) || dtoBorders[0]);\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={1} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"ibwt_finalTtcNtc:finalTtcs\")}</th>\r\n <th colSpan={finalBorders.length} className=\"tableTitles fixedHeader lineLeft\" style={{ top: titleTop + \"px\" }}>{t(\"ibwt_finalTtcNtc:finalNtcs\")}</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 <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_finalTtcNtc:ttcLimitedBy\")}</th>\r\n {\r\n finalBorders.map((border, index) => {\r\n return <th className={classNames(\"fixedHeader\", index === 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}>\r\n <BorderName text={border.text} />\r\n </th>;\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} borders={finalBorders} left={left} />)\r\n }\r\n </tbody>\r\n </table >\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"ibwt_finalTtcNtc\")(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 { FinalTtcNtcDto, GetFinalTtcNtcQuery, GetFinalTtcNtcResponse } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"finalTtcNtc\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"FinalTtcNtc\",\r\n webUrl: \"CCR_FinalTtcNtc\",\r\n menu: \"ibwt_common:menuFinalTtcNtc\",\r\n title: \"ibwt_common:titleFinalTtcNtc\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetFinalTtcNtcResponse>()),\r\n dto: JSON.stringify(keys<FinalTtcNtcDto>()),\r\n parameters: JSON.stringify(keys<GetFinalTtcNtcQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const selectedBorders = applicationState.selectedBorders.filter((f) => f.selected);\r\n\r\n const initialData: FinalTtcNtcDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<FinalTtcNtcDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetFinalTtcNtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\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, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { IdFinalTtcNtcDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\nimport BorderName from \"components/borderName\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: IdFinalTtcNtcDto[];\r\n borders: MultiSelectItem[];\r\n tsos: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, borders, 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<IdFinalTtcNtcDto>();\r\n const borderOrdering = [\"IT_AT\", \"IT_CH\", \"IT_FR\", \"IT_SI\", \"AT_IT\", \"CH_IT\", \"FR_IT\", \"SI_IT\"];\r\n const dtoBorders = borders.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n const finalBorders = borderOrdering.map(b => dtoBorders.find(db => db.id === b) || dtoBorders[0]);\r\n\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={1} className=\"tableTitles fixedHeader\" style={{ top: titleTop + \"px\" }}>{t(\"ibwt_finalTtcNtc:finalTtcs\")}</th>\r\n <th colSpan={finalBorders.length} className=\"tableTitles fixedHeader lineLeft\" style={{ top: titleTop + \"px\" }}>{t(\"ibwt_finalTtcNtc:finalNtcs\")}</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 <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_finalTtcNtc:ttcLimitedBy\")}</th>\r\n {\r\n finalBorders.map((border, index) => {\r\n return <th className={classNames(\"fixedHeader\", index === 0 ? \"lineLeft\" : \"\")} style={{ top: top + \"px\" }}>\r\n <BorderName text={border.text} />\r\n </th>;\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} borders={finalBorders} left={left} />)\r\n }\r\n </tbody>\r\n </table >\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"ibwt_finalTtcNtc\")(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 { IdFinalTtcNtcDto, GetIdFinalTtcNtcResponse, GetIdFinalTtcNtcQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"idFinalTtcNtc\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"idFinalTtcNtc\",\r\n webUrl: \"CCR_idFinalTtcNtc\",\r\n menu: \"ibwt_common:menuIdFinalTtcNtc\",\r\n title: \"ibwt_common:titleIdFinalTtcNtc\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetIdFinalTtcNtcResponse>()),\r\n dto: JSON.stringify(keys<IdFinalTtcNtcDto>()),\r\n parameters: JSON.stringify(keys<GetIdFinalTtcNtcQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const selectedBorders = applicationState.selectedBorders.filter((f) => f.selected);\r\n const selectedTsos = applicationState.selectedTsos.filter((f) => f.selected);\r\n\r\n const initialData: IdFinalTtcNtcDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<IdFinalTtcNtcDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetIdFinalTtcNtcResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} borders={selectedBorders} tsos={selectedTsos} />\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 { StaticGridModelLinesDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: StaticGridModelLinesDto;\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, left }: OwnProps) =>\r\n <tr>\r\n <td>{dto.node1Country}</td>\r\n <td className=\"lineLeft\">{dto.node2Country}</td>\r\n <td>{dto.node1Name}</td>\r\n <td>{dto.node2Name}</td>\r\n <td>{dto.node1UctName}</td>\r\n <td>{dto.node2UctName}</td>\r\n <td>{dto.orderCode}</td>\r\n <td className=\"lineLeft\">{dto.voltage}</td>\r\n <td className=\"lineLeft\">{dto.resistance}</td>\r\n <td>{dto.reactance}</td>\r\n <td>{dto.susceptance}</td>\r\n </tr>;\r\n\r\nexport default Row;","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { StaticGridModelLinesDto } from \"core/backend/data\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: StaticGridModelLinesDto[];\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=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticGridModel:node1Country\")}</th>\r\n <th className=\"fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticGridModel:node2Country\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticGridModel:node1Name\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticGridModel:node2Name\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticGridModel:node1UctName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticGridModel:node2UctName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticGridModel:orderCode\")}</th>\r\n <th className=\"fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticGridModel:voltage\")}</th>\r\n <th className=\"fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticGridModel:resistanceR\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticGridModel:reactanceX\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticGridModel:suspceptanceB\")}</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(\"ibwt_staticGridModel\")(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 { StaticGridModelLinesDto, GetStaticGridModelLinesResponse, GetStaticGridModelLinesQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"staticGridModelLines\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"staticGridModelLines\",\r\n webUrl: \"CCR_staticGridModelLines\",\r\n menu: \"ibwt_common:menuStaticGridModelLines\",\r\n title: \"ibwt_common:titleStaticGridModelLines\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetStaticGridModelLinesResponse>()),\r\n dto: JSON.stringify(keys<StaticGridModelLinesDto>()),\r\n parameters: JSON.stringify(keys<GetStaticGridModelLinesQuery>()),\r\n dateSteps: \"Y\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Year()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: StaticGridModelLinesDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<StaticGridModelLinesDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetStaticGridModelLinesResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getYearUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Year().toISOString()\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import * as React from \"react\";\r\n\r\nimport { StaticGridModelTransformersDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: StaticGridModelTransformersDto;\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, left }: OwnProps) =>\r\n <tr>\r\n <td>{dto.node1Country}</td>\r\n <td className=\"lineLeft\">{dto.node1Name}</td>\r\n <td>{dto.node2Name}</td>\r\n <td>{dto.node1UctName}</td>\r\n <td>{dto.node2UctName}</td>\r\n <td>{dto.orderCode}</td>\r\n <td className=\"lineLeft\">{dto.voltage1}</td>\r\n <td>{dto.voltage2}</td>\r\n <td>{dto.nominalPower}</td>\r\n <td className=\"lineLeft\">{dto.resistance}</td>\r\n <td>{dto.reactance}</td>\r\n <td>{dto.susceptance}</td>\r\n <td>{dto.conductance}</td>\r\n </tr>;\r\n\r\nexport default Row;","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { StaticGridModelTransformersDto } from \"core/backend/data\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: StaticGridModelTransformersDto[];\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=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticModel:node1Country\")}</th>\r\n <th className=\"fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticModel:node1Name\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticModel:node2Name\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticModel:node1UctName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticModel:node2UctName\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticModel:orderCode\")}</th>\r\n <th className=\"fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticModel:voltage1\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticModel:voltage2\")}</th>\r\n <th className=\"fixedHeader \" style={{ top: top + \"px\" }}>{t(\"ibwt_staticModel:nominalPower\")}</th>\r\n <th className=\"fixedHeader lineLeft\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticModel:resistanceR\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticModel:reactanceX\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticModel:suspceptanceB\")}</th>\r\n <th className=\"fixedHeader\" style={{ top: top + \"px\" }}>{t(\"ibwt_staticModel:conductanceG\")}</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(\"ibwt_staticModel\")(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 { StaticGridModelTransformersDto, GetStaticGridModelTransformersResponse, GetStaticGridModelTransformersQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"staticGridModelTransformers\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"staticGridModelTransformers\",\r\n webUrl: \"CCR_staticGridModelTransformers\",\r\n menu: \"ibwt_common:menuStaticGridModelTransformers\",\r\n title: \"ibwt_common:titleStaticGridModelTransformers\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetStaticGridModelTransformersResponse>()),\r\n dto: JSON.stringify(keys<StaticGridModelTransformersDto>()),\r\n parameters: JSON.stringify(keys<GetStaticGridModelTransformersQuery>()),\r\n dateSteps: \"Y\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Year()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n const initialData: StaticGridModelTransformersDto[] = [];\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<StaticGridModelTransformersDto>());\r\n setLoading(true);\r\n setData([]);\r\n const response = await httpService.apiPost<GetStaticGridModelTransformersResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getYearUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Year().toISOString(),\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setData(response.data.data);\r\n setError(\"\");\r\n } else {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data} error={error}>\r\n <List data={data} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import * as React from \"react\";\r\n\r\nimport { ValidationIdDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: ValidationIdDto;\r\n hubs: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, left }: OwnProps) =>\r\n <>\r\n <tr>\r\n <TDatetime rowSpan={1} date={new Date(dto.dateTimeUtc)} left={left} />\r\n <td>{dto.bilateral_Validation_AT}</td>\r\n <td>{dto.export_Bilateral_Validation_AT}</td>\r\n <td>{dto.global_Full_Validation_AT}</td>\r\n <td>{dto.global_Validation_AT}</td>\r\n <td>{dto.reason_AT}</td>\r\n\r\n <td>{dto.bilateral_Validation_CH}</td>\r\n <td>{dto.export_Bilateral_Validation_CH}</td>\r\n <td>{dto.global_Full_Validation_CH}</td>\r\n <td>{dto.global_Validation_CH}</td>\r\n <td>{dto.reason_CH}</td>\r\n\r\n <td>{dto.bilateral_Validation_FR}</td>\r\n <td>{dto.export_Bilateral_Validation_FR}</td>\r\n <td>{dto.global_Full_Validation_FR}</td>\r\n <td>{dto.global_Validation_FR}</td>\r\n <td>{dto.reason_FR}</td>\r\n\r\n <td>{dto.bilateral_Validation_IT}</td>\r\n <td>{dto.export_Bilateral_Validation_IT}</td>\r\n <td>{dto.global_Full_Validation_IT}</td>\r\n <td>{dto.global_Validation_IT}</td>\r\n <td>{dto.reason_IT}</td>\r\n\r\n <td>{dto.bilateral_Validation_SI}</td>\r\n <td>{dto.export_Bilateral_Validation_SI}</td>\r\n <td>{dto.global_Full_Validation_SI}</td>\r\n <td>{dto.global_Validation_SI}</td>\r\n <td>{dto.reason_SI}</td>\r\n </tr>\r\n </>;\r\n\r\nexport default Row;","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { ValidationIdDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: ValidationIdDto[];\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<ValidationIdDto>();\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\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:bilateral_validation\") + \"AT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:export_bilateral_validation\") + \"AT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:global_full_validation\") + \"AT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:global_validation\") + \"AT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:reason\") + \"AT\"}</th>\r\n\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:bilateral_validation\") + \"CH\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:export_bilateral_validation\") + \"CH\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:global_full_validation\") + \"CH\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:global_validation\") + \"CH\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:reason\") + \"CH\"}</th>\r\n\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:bilateral_validation\") + \"FR\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:export_bilateral_validation\") + \"FR\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:global_full_validation\") + \"FR\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:global_validation\") + \"FR\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:reason\") + \"FR\"}</th>\r\n\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:bilateral_validation\") + \"IT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:export_bilateral_validation\") + \"IT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:global_full_validation\") + \"IT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:global_validation\") + \"IT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:reason\") + \"IT\"}</th>\r\n\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:bilateral_validation\") + \"SI\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:export_bilateral_validation\") + \"SI\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:global_full_validation\") + \"SI\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:global_validation\") + \"SI\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationId:reason\") + \"SI\"}</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(\"ibwt_validationId\")(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 { ValidationIdDto, GetValidationIdResponse, GetValidationIdQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"validationId\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"validationId\",\r\n webUrl: \"CCR_validationId\",\r\n menu: \"ibwt_common:menuValidationId\",\r\n title: \"ibwt_common:titleValidationId\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetValidationIdResponse>()),\r\n dto: JSON.stringify(keys<ValidationIdDto>()),\r\n parameters: JSON.stringify(keys<GetValidationIdQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialResponse: GetValidationIdResponse = { data: [], 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<ValidationIdDto>();\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keysInDto);\r\n setLoading(true);\r\n setResponse(initialResponse);\r\n const response = await httpService.apiPost<GetValidationIdResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString(),\r\n Filter: search, Skip: 0, Take: 1000\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setResponse(response.data);\r\n setError(\"\");\r\n setLoading(false);\r\n } else if ((response.cancel || false) === false) {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n setLoading(false);\r\n }\r\n })();\r\n }, [applicationState.selectedDate, search]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <div className=\"subHeader\">\r\n <div style={{ display: \"inline-block\" }}>\r\n <div className=\"inputlabel\">{t(\"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>\r\n <SheetDataPart isLoading={isLoading} data={response.data} error={error}>\r\n <List data={response.data.slice(0, applicationState.maxRows)} hubs={applicationState.selectedHubs.filter(h => keysInDto.some((key) => key === \"ptdfRefs_\" + h.id.toUpperCase()))} />\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 { ValidationDaDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport TDatetime from \"components/TDatetime\";\r\n\r\ninterface OwnProps {\r\n dto: ValidationDaDto;\r\n hubs: MultiSelectItem[];\r\n left: number;\r\n}\r\n\r\nconst Row = ({ dto, left }: OwnProps) =>\r\n <>\r\n <tr>\r\n <TDatetime rowSpan={1} date={new Date(dto.dateTimeUtc)} left={left} />\r\n <td>{dto.bilateral_Validation_AT}</td>\r\n <td>{dto.export_Bilateral_Validation_AT}</td>\r\n <td>{dto.global_Full_Validation_AT}</td>\r\n <td>{dto.global_Validation_AT}</td>\r\n <td>{dto.reason_AT}</td>\r\n\r\n <td>{dto.bilateral_Validation_CH}</td>\r\n <td>{dto.export_Bilateral_Validation_CH}</td>\r\n <td>{dto.global_Full_Validation_CH}</td>\r\n <td>{dto.global_Validation_CH}</td>\r\n <td>{dto.reason_CH}</td>\r\n\r\n <td>{dto.bilateral_Validation_FR}</td>\r\n <td>{dto.export_Bilateral_Validation_FR}</td>\r\n <td>{dto.global_Full_Validation_FR}</td>\r\n <td>{dto.global_Validation_FR}</td>\r\n <td>{dto.reason_FR}</td>\r\n\r\n <td>{dto.bilateral_Validation_IT}</td>\r\n <td>{dto.export_Bilateral_Validation_IT}</td>\r\n <td>{dto.global_Full_Validation_IT}</td>\r\n <td>{dto.global_Validation_IT}</td>\r\n <td>{dto.reason_IT}</td>\r\n\r\n <td>{dto.bilateral_Validation_SI}</td>\r\n <td>{dto.export_Bilateral_Validation_SI}</td>\r\n <td>{dto.global_Full_Validation_SI}</td>\r\n <td>{dto.global_Validation_SI}</td>\r\n <td>{dto.reason_SI}</td>\r\n </tr>\r\n </>;\r\n\r\nexport default Row;","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { ValidationDaDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: ValidationDaDto[];\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<ValidationDaDto>();\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\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:bilateral_validation\") + \"AT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:export_bilateral_validation\") + \"AT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:global_full_validation\") + \"AT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:global_validation\") + \"AT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:reason\") + \"AT\"}</th>\r\n\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:bilateral_validation\") + \"CH\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:export_bilateral_validation\") + \"CH\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:global_full_validation\") + \"CH\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:global_validation\") + \"CH\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:reason\") + \"CH\"}</th>\r\n\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:bilateral_validation\") + \"FR\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:export_bilateral_validation\") + \"FR\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:global_full_validation\") + \"FR\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:global_validation\") + \"FR\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:reason\") + \"FR\"}</th>\r\n\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:bilateral_validation\") + \"IT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:export_bilateral_validation\") + \"IT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:global_full_validation\") + \"IT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:global_validation\") + \"IT\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:reason\") + \"IT\"}</th>\r\n\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:bilateral_validation\") + \"SI\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:export_bilateral_validation\") + \"SI\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:global_full_validation\") + \"SI\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:global_validation\") + \"SI\"}</th>\r\n <th className=\"fixedHeader\" >{t(\"ibwt_validationDa:reason\") + \"SI\"}</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(\"ibwt_validationDa\")(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 { ValidationDaDto, GetValidationDaResponse, GetValidationDaQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"validationDa\";\r\n\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"validationDa\",\r\n webUrl: \"CCR_validationDa\",\r\n menu: \"ibwt_common:menuValidationDa\",\r\n title: \"ibwt_common:titleValidationDa\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetValidationDaResponse>()),\r\n dto: JSON.stringify(keys<ValidationDaDto>()),\r\n parameters: JSON.stringify(keys<GetValidationDaQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialResponse: GetValidationDaResponse = { data: [], 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<ValidationDaDto>();\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keysInDto);\r\n setLoading(true);\r\n setResponse(initialResponse);\r\n const response = await httpService.apiPost<GetValidationDaResponse>({\r\n applicationState: applicationState,\r\n route: applicationState.apiService + \"/\" + page_config.apiType + \"/\" + page_config.apiUrl,\r\n query: {\r\n FromUtc: applicationState.getRootUtcTime().toISOString(),\r\n ToUtc: applicationState.getUntilFor1Day().toISOString(),\r\n Filter: search, Skip: 0, Take: 1000\r\n },\r\n senderId: senderId\r\n })();\r\n\r\n if (response.ok) {\r\n setResponse(response.data);\r\n setError(\"\");\r\n setLoading(false);\r\n } else if ((response.cancel || false) === false) {\r\n setError(response.error || t(\"common:UnknownError\"));\r\n setLoading(false);\r\n }\r\n })();\r\n }, [applicationState.selectedDate, search]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <div className=\"subHeader\">\r\n <div style={{ display: \"inline-block\" }}>\r\n <div className=\"inputlabel\">{t(\"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>\r\n <SheetDataPart isLoading={isLoading} data={response.data} error={error}>\r\n <List data={response.data.slice(0, applicationState.maxRows)} hubs={applicationState.selectedHubs.filter(h => keysInDto.some((key) => key === \"ptdfRefs_\" + h.id.toUpperCase()))} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useContext } from \"react\";\r\n\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { ScheduledExchangesDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport BorderName from \"components/borderName\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: ScheduledExchangesDto[];\r\n borders: MultiSelectItem[];\r\n}\r\n\r\nconst List = ({ t, data, borders, scrollPosition }: OwnProps & WithTranslation) => {\r\n const top = Math.max(0, ((scrollPosition?.top || 0) - 16));\r\n const left = Math.max(0, ((scrollPosition?.left || 0) - 16));\r\n\r\n const keysInDto = keys<ScheduledExchangesDto>();\r\n const dtoBorders = borders.filter((x) => keysInDto.some((key) => key.toLowerCase().endsWith(x.id.toLowerCase())));\r\n\r\n return (\r\n <table id=\"datatable\">\r\n <thead>\r\n <tr>\r\n <th className=\"fixedDateColumn\" style={{ top: top + \"px\", left: left + \"px\" }}>{t(\"common:Date\")}</th>\r\n {dtoBorders.map((border) => <th key={border.id} className=\"fixedHeader\" style={{ top: top + \"px\" }}><BorderName text={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, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"../list\";\r\nimport { ScheduledExchangesDto, GetID1ScheduledExchangesResponse, GetID1ScheduledExchangesQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport { makeRequest } from \"utils\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"scheduledExchanges\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"ID1_scheduledExchanges\",\r\n webUrl: \"ID1_scheduledExchanges\",\r\n menu: \"ibwt_common:menuScheduledExchanges\",\r\n title: \"ibwt_common:titleScheduledExchanges\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetID1ScheduledExchangesResponse>()),\r\n dto: JSON.stringify(keys<ScheduledExchangesDto>()),\r\n parameters: JSON.stringify(keys<GetID1ScheduledExchangesQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: GetID1ScheduledExchangesResponse = { data: [], messages: [], rejected: false };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<ScheduledExchangesDto>());\r\n makeRequest<GetID1ScheduledExchangesResponse>(0, applicationState.pageSize, applicationState, initialData, null, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List data={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 } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { PriceSpreadDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport BorderName from \"components/borderName\";\r\nimport { keys } from \"ts-transformer-keys\";\r\n\r\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, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"../list\";\r\nimport { PriceSpreadDto, GetID1PriceSpreadResponse, GetID1PriceSpreadQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport { makeRequest } from \"utils\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"priceSpread\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"ID1_priceSpread\",\r\n webUrl: \"ID1_priceSpread\",\r\n menu: \"ibwt_common:menuPriceSpread\",\r\n title: \"ibwt_common:titlePriceSpread\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetID1PriceSpreadResponse>()),\r\n dto: JSON.stringify(keys<PriceSpreadDto>()),\r\n parameters: JSON.stringify(keys<GetID1PriceSpreadQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: GetID1PriceSpreadResponse = { data: [], messages: [], rejected: false };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<PriceSpreadDto>());\r\n makeRequest<GetID1PriceSpreadResponse>(0, applicationState.pageSize, applicationState, initialData, null, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List data={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 } from \"react\";\r\n\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport Row from \"./row\";\r\nimport { CongestionIncomeDto } from \"core/backend/data\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport BorderName from \"components/borderName\";\r\nimport classNames from \"classnames\";\r\n\r\n\r\n\r\ninterface OwnProps {\r\n scrollPosition?: { left: number, top: number };\r\n data: CongestionIncomeDto[];\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 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={borders.length} className=\"tableTitles fixedHeader lineLeft\" style={{ top: titleTop + \"px\" }}>{t(\"ibwt_congestionIncome:GrossBZB\")}</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 {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} borders={borders} left={left} />)\r\n }\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\nconst translated = withTranslation(\"ibwt_congestionIncome\")(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 { CongestionIncomeDto, GetID1CongestionIncomeResponse, GetID1CongestionIncomeQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport { makeRequest } from \"utils\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"congestionIncome\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"ID1_congestionIncome\",\r\n webUrl: \"ID1_congestionIncome\",\r\n menu: \"ibwt_common:menuCongestionIncome\",\r\n title: \"ibwt_common:titleCongestionIncome\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetID1CongestionIncomeResponse>()),\r\n dto: JSON.stringify(keys<CongestionIncomeDto>()),\r\n parameters: JSON.stringify(keys<GetID1CongestionIncomeQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: GetID1CongestionIncomeResponse = { data: [], messages: [], rejected: false };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<CongestionIncomeDto>().map(k => k.replace(\"grossHub_\", \"hub_\").replace(\"grossTso_\", \"tso_\").replace(\"grossBorder_\", \"border_\")));\r\n makeRequest<GetID1CongestionIncomeResponse>(0, applicationState.pageSize, applicationState, initialData, null, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List data={data.data} borders={applicationState.selectedBorders.filter((f) => f.isDisplayed && f.selected)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"../list\";\r\nimport { ScheduledExchangesDto, GetID2ScheduledExchangesResponse, GetID2ScheduledExchangesQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport { makeRequest } from \"utils\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"scheduledExchanges\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"ID2_scheduledExchanges\",\r\n webUrl: \"ID2_scheduledExchanges\",\r\n menu: \"ibwt_common:menuScheduledExchanges\",\r\n title: \"ibwt_common:titleScheduledExchanges\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetID2ScheduledExchangesResponse>()),\r\n dto: JSON.stringify(keys<ScheduledExchangesDto>()),\r\n parameters: JSON.stringify(keys<GetID2ScheduledExchangesQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: GetID2ScheduledExchangesResponse = { data: [], messages: [], rejected: false };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<ScheduledExchangesDto>());\r\n makeRequest<GetID2ScheduledExchangesResponse>(0, applicationState.pageSize, applicationState, initialData, null, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List data={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, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"../list\";\r\nimport { PriceSpreadDto, GetID2PriceSpreadResponse, GetID2PriceSpreadQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport { makeRequest } from \"utils\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"priceSpread\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"ID2_priceSpread\",\r\n webUrl: \"ID2_priceSpread\",\r\n menu: \"ibwt_common:menuPriceSpread\",\r\n title: \"ibwt_common:titlePriceSpread\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetID2PriceSpreadResponse>()),\r\n dto: JSON.stringify(keys<PriceSpreadDto>()),\r\n parameters: JSON.stringify(keys<GetID2PriceSpreadQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: GetID2PriceSpreadResponse = { data: [], messages: [], rejected: false };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<PriceSpreadDto>());\r\n makeRequest<GetID2PriceSpreadResponse>(0, applicationState.pageSize, applicationState, initialData, null, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List data={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, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"../list\";\r\nimport { CongestionIncomeDto, GetID2CongestionIncomeResponse, GetID2CongestionIncomeQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport { makeRequest } from \"utils\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"congestionIncome\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"ID2_congestionIncome\",\r\n webUrl: \"ID2_congestionIncome\",\r\n menu: \"ibwt_common:menuCongestionIncome\",\r\n title: \"ibwt_common:titleCongestionIncome\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetID2CongestionIncomeResponse>()),\r\n dto: JSON.stringify(keys<CongestionIncomeDto>()),\r\n parameters: JSON.stringify(keys<GetID2CongestionIncomeQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: GetID2CongestionIncomeResponse = { data: [], messages: [], rejected: false };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<CongestionIncomeDto>().map(k => k.replace(\"grossHub_\", \"hub_\").replace(\"grossTso_\", \"tso_\").replace(\"grossBorder_\", \"border_\")));\r\n makeRequest<GetID2CongestionIncomeResponse>(0, applicationState.pageSize, applicationState, initialData, null, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List data={data.data} borders={applicationState.selectedBorders.filter((f) => f.isDisplayed && f.selected)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import { default as React, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"../list\";\r\nimport { ScheduledExchangesDto, GetID3ScheduledExchangesResponse, GetID3ScheduledExchangesQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport { makeRequest } from \"utils\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"scheduledExchanges\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"ID3_scheduledExchanges\",\r\n webUrl: \"ID3_scheduledExchanges\",\r\n menu: \"ibwt_common:menuScheduledExchanges\",\r\n title: \"ibwt_common:titleScheduledExchanges\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetID3ScheduledExchangesResponse>()),\r\n dto: JSON.stringify(keys<ScheduledExchangesDto>()),\r\n parameters: JSON.stringify(keys<GetID3ScheduledExchangesQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: GetID3ScheduledExchangesResponse = { data: [], messages: [], rejected: false };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<ScheduledExchangesDto>());\r\n makeRequest<GetID3ScheduledExchangesResponse>(0, applicationState.pageSize, applicationState, initialData, null, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List data={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, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"../list\";\r\nimport { PriceSpreadDto, GetID3PriceSpreadResponse, GetID3PriceSpreadQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport { makeRequest } from \"utils\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"priceSpread\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"ID3_priceSpread\",\r\n webUrl: \"ID3_priceSpread\",\r\n menu: \"ibwt_common:menuPriceSpread\",\r\n title: \"ibwt_common:titlePriceSpread\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetID3PriceSpreadResponse>()),\r\n dto: JSON.stringify(keys<PriceSpreadDto>()),\r\n parameters: JSON.stringify(keys<GetID3PriceSpreadQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: GetID3PriceSpreadResponse = { data: [], messages: [], rejected: false };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, true, false, keys<PriceSpreadDto>());\r\n makeRequest<GetID3PriceSpreadResponse>(0, applicationState.pageSize, applicationState, initialData, null, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List data={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, useEffect, useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport List from \"../list\";\r\nimport { CongestionIncomeDto, GetID3CongestionIncomeResponse, GetID3CongestionIncomeQuery } from \"core/backend/data\";\r\nimport SheetDataPart from \"components/sheetDataPart\";\r\nimport SheetHeader from \"components/sheetHeader\";\r\nimport { ApplicationState } from \"core/app\";\r\nimport { keys } from \"ts-transformer-keys\";\r\nimport { PageList } from \"core/pages/pageList\";\r\nimport { makeRequest } from \"utils\";\r\n\r\ninterface OwnState {\r\n applicationState: ApplicationState;\r\n}\r\nexport const senderId = \"congestionIncome\";\r\nexport const page_config: PageList =\r\n{\r\n apiUrl: \"ID3_congestionIncome\",\r\n webUrl: \"ID3_congestionIncome\",\r\n menu: \"ibwt_common:menuCongestionIncome\",\r\n title: \"ibwt_common:titleCongestionIncome\",\r\n apiType: \"data\",\r\n response: JSON.stringify(keys<GetID3CongestionIncomeResponse>()),\r\n dto: JSON.stringify(keys<CongestionIncomeDto>()),\r\n parameters: JSON.stringify(keys<GetID3CongestionIncomeQuery>()),\r\n dateSteps: \"D\",\r\n getDefaultToDateTime: (applicationState: ApplicationState) => applicationState.getUntilFor1Day()\r\n};\r\n\r\ntype PageProps = OwnState & WithTranslation;\r\n\r\nconst Page = ({ t, applicationState }: PageProps) => {\r\n\r\n const initialData: GetID3CongestionIncomeResponse = { data: [], messages: [], rejected: false };\r\n const [data, setData] = useState(initialData);\r\n const [isLoading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n (async function runAsync() {\r\n applicationState.handleInputAvailablilityChange(page_config.dateSteps, false, false, keys<CongestionIncomeDto>().map(k => k.replace(\"grossHub_\", \"hub_\").replace(\"grossTso_\", \"tso_\").replace(\"grossBorder_\", \"border_\")));\r\n makeRequest<GetID3CongestionIncomeResponse>(0, applicationState.pageSize, applicationState, initialData, null, senderId, page_config, setLoading, setError, setData);\r\n })();\r\n }, [applicationState.selectedDate]);\r\n\r\n return (\r\n <>\r\n <SheetHeader showDownload={true} applicationState={applicationState} title={t(page_config.title)} pageConfig={page_config} />\r\n <SheetDataPart isLoading={isLoading} data={data.data} error={error}>\r\n <List data={data.data} borders={applicationState.selectedBorders.filter((f) => f.isDisplayed && f.selected)} />\r\n </SheetDataPart>\r\n </>\r\n );\r\n};\r\n\r\nexport default withTranslation()(Page);\r\n","import * as React from \"react\";\r\nimport * as i18n from \"i18next\";\r\n\r\nimport BusyOverlay from \"components/busyOverlay\";\r\nimport { Route, Switch } from \"react-router\";\r\nimport NotFound from \"components/notFound\";\r\nimport Navigation from \"./pages/navigation\";\r\nimport { MultiSelectItem } from \"components/multiselect\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport httpService from \"core/infrastructure/http\";\r\nimport axios from \"axios\";\r\n\r\nimport * as Monitoring from \"core/pages/system/monitoring\";\r\nimport * as MonitoringFailed from \"core/pages/system/monitoringFailed\";\r\nimport * as MonitoringConfig from \"core/pages/system/monitoringConfig\";\r\nimport * as JaoLogin from \"core/pages/system/jaoLogin\";\r\nimport * as Home from \"core/pages/system/home\";\r\nimport * as Api from \"core/pages/system/api\";\r\n\r\nimport * as IbwtNtcAdjustment from \"core/pages/ibwt/ntcAdjustment\";\r\nimport * as IbwtAllocationConstraint from \"core/pages/ibwt/allocationConstraint\";\r\nimport * as IbwtIdAllocationConstraint from \"core/pages/ibwt/idAllocationConstraint\";\r\nimport * as IbwtCnecInfo from \"core/pages/ibwt/cnecInfo\";\r\nimport * as IbwtIdNtcAdjustment from \"core/pages/ibwt/idNtcAdjustment\";\r\nimport * as IbwtIdCnecInfo from \"core/pages/ibwt/idCnecInfo\";\r\nimport * as IbwtIdForecasted from \"core/pages/ibwt/idForecasted\";\r\nimport * as IbwtForecasted from \"core/pages/ibwt/forecasted\";\r\nimport * as IbwtFinalTtcNtc from \"core/pages/ibwt/finalTtcNtc\";\r\nimport * as IbwtIdFinalTtcNtc from \"core/pages/ibwt/idFinalTtcNtc\";\r\nimport * as IbwtStaticGridModelLines from \"core/pages/ibwt/staticGridModelLines\";\r\nimport * as IbwtStaticGridModelTransformers from \"core/pages/ibwt/staticGridModelTransformers\";\r\nimport * as IbwtValidationId from \"core/pages/ibwt/validationId\";\r\nimport * as IbwtValidationDa from \"core/pages/ibwt/validationDa\";\r\n\r\nimport * as Ida1ScheduledExchanges from \"core/pages/ibwt/scheduledExchanges/ID1\";\r\nimport * as Ida1PriceSpread from \"core/pages/ibwt/priceSpread/ID1\";\r\nimport * as Ida1CongestionIncome from \"core/pages/ibwt/congestionIncome/ID1\";\r\n\r\nimport * as Ida2ScheduledExchanges from \"core/pages/ibwt/scheduledExchanges/ID2\";\r\nimport * as Ida2PriceSpread from \"core/pages/ibwt/priceSpread/ID2\";\r\nimport * as Ida2CongestionIncome from \"core/pages/ibwt/congestionIncome/ID2\";\r\n\r\nimport * as Ida3ScheduledExchanges from \"core/pages/ibwt/scheduledExchanges/ID3\";\r\nimport * as Ida3PriceSpread from \"core/pages/ibwt/priceSpread/ID3\";\r\nimport * as Ida3CongestionIncome from \"core/pages/ibwt/congestionIncome/ID3\";\r\n\r\n\r\nexport interface ApplicationState {\r\n applicationRoot: string;\r\n apiService: string;\r\n environment: string;\r\n userMail: string;\r\n userRole: string;\r\n userToken: string;\r\n guestToken: string;\r\n changeToken(usermail: string, role: string, newToken: string): void;\r\n selectedDate: Date;\r\n getYearUtcTime(): Date;\r\n getRootUtcTime(): Date;\r\n getUntilFor1Day(): Date;\r\n getUntilFor1Hour(): Date;\r\n getUntilFor1Year(): Date;\r\n setCweTimeForDate(d: Date, h: number, m: number): Date,\r\n getCweTimeForDisplayPurposes(d: Date): Date,\r\n convertCweHourToUtcDate(d: Date): Date;\r\n handleDateChange(d: Date): void;\r\n selectedBorders: MultiSelectItem[];\r\n handleBorderChange(selectedBorder: MultiSelectItem, special: string): void;\r\n handleHubChange(selectedHub: MultiSelectItem, special: string): void;\r\n handleHorizonChange(horizon: string): void;\r\n selectedHubs: MultiSelectItem[];\r\n selectedTsos: MultiSelectItem[];\r\n hubToHubExchange: { [key: string]: { text: string, value: number } };\r\n hubExchange: { [key: string]: { text: string, value: number } };\r\n addHubToHubExchange(borders: MultiSelectItem[]): void;\r\n handleHubToHubExchangeChange(id: string, value: string, ptdfHubs: string[]): void;\r\n hubToHubPosition: { [key: string]: { text: string, value: number } };\r\n addHubToHubPosition(hubs: MultiSelectItem[]): void;\r\n handleHubToHubPositionChange(id: string, value: string): void;\r\n dateSteps: string;\r\n horizon: string;\r\n isBorderEnabled: boolean;\r\n isHubEnabled: boolean;\r\n handleInputAvailablilityChange: (dateSteps: string, borderEnabled: boolean, hubEnabled: boolean, availableColumns: string[]) => void;\r\n pages: Page[];\r\n initialized: boolean;\r\n maxRows: number;\r\n pageSize: number;\r\n}\r\ninterface Page {\r\n config: any;\r\n component: any;\r\n}\r\ninterface Props {\r\n apiService: string;\r\n bearerToken: string;\r\n applicationRoot: string;\r\n username: string;\r\n role: string;\r\n environment: string;\r\n}\r\n\r\nclass App extends React.Component<Props & WithTranslation, ApplicationState> {\r\n\r\n constructor(props: Props & WithTranslation) {\r\n super(props);\r\n\r\n const GetYearUtcTime = () => {\r\n return setCweTime(new Date(this.state.selectedDate.getFullYear(), 0, 1), 0, 0);\r\n }\r\n const GetRootUtcTime = () => {\r\n return setCweTime(getCweTimeForDisplayPurposes(this.state.selectedDate), 0, 0);\r\n }\r\n const GetUntilFor1Day = () => {\r\n const nextDay = new Date(new Date(this.state.selectedDate).setDate(this.state.selectedDate.getDate() + 1));\r\n return setCweTime(getCweTimeForDisplayPurposes(nextDay), 0, 0);\r\n }\r\n const GetUntilFor1Hour = () => {\r\n return new Date(new Date(this.state.selectedDate).setUTCHours(this.state.selectedDate.getUTCHours() + 1));\r\n }\r\n const GetUntilFor1Year = () => {\r\n return setCweTime(new Date(this.state.selectedDate.getFullYear(), 11, 31), 23, 0);;\r\n }\r\n\r\n const setCweTime = (date: Date, hour: number, minute: number) => {\r\n const hourLocalTime = new Date(new Date(date).setHours(hour, minute, 0, 0));\r\n return convertCweHourToUtcDate(hourLocalTime);\r\n }\r\n const convertCweHourToUtcDate = (localDate: Date) => {\r\n //Input = 2022-01-02 00:00:00 +0200 aka 2022-01-01 22:00:00 UTC\r\n //Means = 2022-01-02 00:00:00 +0100 aka 2022-01-01 23:00:00 UTC\r\n //Output = 2022-01-02 01:00:00 +0200 aka 2022-01-01 23:00:00 UTC\r\n\r\n //const isDST = localDate.getTimezoneOffset() == new Date(\"2022-06-06\").getTimezoneOffset();\r\n const oppositeCWETime = getCweTimeForDisplayPurposes(localDate);\r\n const diff = localDate.getTime() - oppositeCWETime.getTime();\r\n return new Date(new Date(localDate).setTime(localDate.getTime() + diff));\r\n }\r\n const getCweTimeForDisplayPurposes = (correctUtcDate: Date) => {\r\n //next use .getFullYear() .getMonth() .getDate() .getHours() .getMinutes() .getSeconds()\r\n\r\n //This logic is also in TDatetime.tsx\r\n return new Date(correctUtcDate.toLocaleString('en-US', { timeZone: 'Europe/Brussels' }));\r\n }\r\n\r\n const nextDay = new Date(new Date().setDate(new Date().getDate() + 1));\r\n const nextDayHourOneCWETime = setCweTime(nextDay, 0, 0);\r\n\r\n axios.interceptors.response.use(undefined, (error) => {\r\n const expectedError =\r\n error.response &&\r\n error.response.status >= 400 &&\r\n error.response.status < 500;\r\n\r\n if (!expectedError) {\r\n (async function runAsync() {\r\n await httpService.logError(props.applicationRoot, \"MAIN\", error.response);\r\n })();\r\n }\r\n\r\n return Promise.reject(error);\r\n });\r\n\r\n this.state = {\r\n applicationRoot: props.applicationRoot,\r\n apiService: props.apiService,\r\n environment: props.environment,\r\n userMail: props.username,\r\n userRole: props.role,\r\n userToken: props.bearerToken,\r\n guestToken: props.bearerToken,\r\n changeToken: this.handleTokenChange,\r\n selectedDate: nextDayHourOneCWETime, //can be overwritten in componentDidMount\r\n getYearUtcTime: GetYearUtcTime,\r\n getRootUtcTime: GetRootUtcTime,\r\n getUntilFor1Day: GetUntilFor1Day,\r\n getUntilFor1Hour: GetUntilFor1Hour,\r\n getUntilFor1Year: GetUntilFor1Year,\r\n setCweTimeForDate: setCweTime,\r\n convertCweHourToUtcDate: convertCweHourToUtcDate,\r\n getCweTimeForDisplayPurposes: getCweTimeForDisplayPurposes,\r\n handleDateChange: this.handleDateChange,\r\n selectedBorders: [],\r\n handleBorderChange: this.handleBorderChange,\r\n handleHubChange: this.handleHubChange,\r\n handleHorizonChange: this.handleHorizonChange,\r\n selectedHubs: [],\r\n selectedTsos: [],\r\n hubToHubExchange: {},\r\n hubExchange: {},\r\n addHubToHubExchange: this.addHubToHubExchange,\r\n handleHubToHubExchangeChange: this.handleHubToHubExchangeChange,\r\n hubToHubPosition: {},\r\n addHubToHubPosition: this.addHubToHubPosition,\r\n handleHubToHubPositionChange: this.handleHubToHubPositionChange,\r\n dateSteps: \"H\",\r\n horizon: \"\",\r\n isBorderEnabled: true,\r\n isHubEnabled: true,\r\n initialized: false,\r\n maxRows: 100,\r\n pageSize: 1000,\r\n handleInputAvailablilityChange: this.handleInputAvailablilityChange,\r\n pages: [\r\n //HOME SHOULD BE FIRST ONE! (that is the default one)\r\n { config: Home.page_config, component: () => <Home.default applicationState={this.state} /> },\r\n { config: Monitoring.page_config, component: () => <Monitoring.default applicationState={this.state} /> },\r\n { config: MonitoringFailed.page_config, component: () => <MonitoringFailed.default applicationState={this.state} /> },\r\n { config: JaoLogin.page_config, component: () => <JaoLogin.default applicationState={this.state} /> },\r\n { config: MonitoringConfig.page_config, component: () => <MonitoringConfig.default applicationState={this.state} /> },\r\n { config: Api.page_config, component: () => <Api.default applicationState={this.state} /> },\r\n\r\n { config: IbwtCnecInfo.page_config, component: () => <IbwtCnecInfo.default applicationState={this.state} /> },\r\n { config: IbwtIdCnecInfo.page_config, component: () => <IbwtIdCnecInfo.default applicationState={this.state} /> },\r\n { config: IbwtForecasted.page_config, component: () => <IbwtForecasted.default applicationState={this.state} /> },\r\n { config: IbwtIdForecasted.page_config, component: () => <IbwtIdForecasted.default applicationState={this.state} /> },\r\n { config: IbwtNtcAdjustment.page_config, component: () => <IbwtNtcAdjustment.default applicationState={this.state} /> },\r\n { config: IbwtIdNtcAdjustment.page_config, component: () => <IbwtIdNtcAdjustment.default applicationState={this.state} /> },\r\n { config: IbwtFinalTtcNtc.page_config, component: () => <IbwtFinalTtcNtc.default applicationState={this.state} /> },\r\n { config: IbwtIdFinalTtcNtc.page_config, component: () => <IbwtIdFinalTtcNtc.default applicationState={this.state} /> },\r\n { config: IbwtAllocationConstraint.page_config, component: () => <IbwtAllocationConstraint.default applicationState={this.state} /> },\r\n { config: IbwtIdAllocationConstraint.page_config, component: () => <IbwtIdAllocationConstraint.default applicationState={this.state} /> },\r\n { config: IbwtStaticGridModelLines.page_config, component: () => <IbwtStaticGridModelLines.default applicationState={this.state} /> },\r\n { config: IbwtStaticGridModelTransformers.page_config, component: () => <IbwtStaticGridModelTransformers.default applicationState={this.state} /> },\r\n { config: IbwtValidationDa.page_config, component: () => <IbwtValidationDa.default applicationState={this.state} /> },\r\n { config: IbwtValidationId.page_config, component: () => <IbwtValidationId.default applicationState={this.state} /> },\r\n\r\n { config: Ida1ScheduledExchanges.page_config, component: () => <Ida1ScheduledExchanges.default applicationState={this.state} /> },\r\n { config: Ida1PriceSpread.page_config, component: () => <Ida1PriceSpread.default applicationState={this.state} /> },\r\n { config: Ida1CongestionIncome.page_config, component: () => <Ida1CongestionIncome.default applicationState={this.state} /> },\r\n\r\n { config: Ida2ScheduledExchanges.page_config, component: () => <Ida2ScheduledExchanges.default applicationState={this.state} /> },\r\n { config: Ida2PriceSpread.page_config, component: () => <Ida2PriceSpread.default applicationState={this.state} /> },\r\n { config: Ida2CongestionIncome.page_config, component: () => <Ida2CongestionIncome.default applicationState={this.state} /> },\r\n\r\n { config: Ida3ScheduledExchanges.page_config, component: () => <Ida3ScheduledExchanges.default applicationState={this.state} /> },\r\n { config: Ida3PriceSpread.page_config, component: () => <Ida3PriceSpread.default applicationState={this.state} /> },\r\n { config: Ida3CongestionIncome.page_config, component: () => <Ida3CongestionIncome.default applicationState={this.state} /> }\r\n ]\r\n };\r\n\r\n };\r\n\r\n getDateFromUrl = () => {\r\n const queryString = window.location.search;\r\n\r\n const cweDateString = /cwe=(\\d{4})-(\\d{2})-(\\d{2})_(\\d{2}):(\\d{2})/i.exec(queryString);\r\n if (cweDateString != null) {\r\n const d = new Date(+cweDateString[1], +cweDateString[2] - 1, +cweDateString[3]);\r\n return this.state.setCweTimeForDate(d, +cweDateString[4], +cweDateString[5]);\r\n }\r\n\r\n const utcDateString = /utc=(\\d{4})-(\\d{2})-(\\d{2})_(\\d{2}):(\\d{2})/i.exec(queryString);\r\n if (utcDateString != null) {\r\n const d = new Date(+utcDateString[1], +utcDateString[2] - 1, +utcDateString[3], 12, 0); //hour 12 to make sure it is in the next day\r\n return new Date(d.setUTCHours(+utcDateString[4]));\r\n }\r\n return null;\r\n };\r\n\r\n componentDidMount() {\r\n let pathName = window.location.pathname; // = pathname; -> but useLocation() fails\r\n pathName = pathName.startsWith(\"/\") ? pathName.substring(1, pathName.length) : pathName;\r\n this.setState({ horizon: pathName.substring(0, 3) });\r\n\r\n const stateSavedOn = localStorage.getItem('lastSavedOn');\r\n if (stateSavedOn != null) {\r\n const diffInSeconds = (new Date().getTime() - new Date(stateSavedOn).getTime()) / 1000;\r\n if (diffInSeconds < 3600) { //onehour\r\n const savedSelectedDate = localStorage.getItem('selectedDate');\r\n if (savedSelectedDate != null) {\r\n this.setState({ selectedDate: new Date(savedSelectedDate) });\r\n }\r\n\r\n const savedSelectedBorders = localStorage.getItem('selectedBorders');\r\n if (savedSelectedBorders != null) {\r\n const savedBorders: any = JSON.parse(savedSelectedBorders);\r\n this.setState({ selectedBorders: savedBorders });\r\n }\r\n\r\n const savedSelectedHubs = localStorage.getItem('selectedHubs');\r\n if (savedSelectedHubs != null) {\r\n const savedHubs: any = JSON.parse(savedSelectedHubs);\r\n this.setState({ selectedHubs: savedHubs });\r\n }\r\n }\r\n }\r\n\r\n const dateInUrl = this.getDateFromUrl();\r\n if (dateInUrl != null) {\r\n this.setState({ selectedDate: new Date(dateInUrl) });\r\n history.pushState(\"\", \"\", window.location.href.replace(location.search, \"\"));\r\n }\r\n\r\n i18n.default.loadNamespaces(\r\n [\"common\", \"common_tsos\", \"common_borders\", \"common_hubs\", \"swe_common\"],\r\n () => { // LOAD COMMON TRANSLATION FILES\r\n\r\n const allBorderTranslations = i18n.default.getResourceBundle(\"en\", \"common_borders\");\r\n this.setState({\r\n selectedBorders: Object.keys(allBorderTranslations)\r\n .filter((value, index, self) => self.indexOf(value) === index) // =distinct\r\n .map((k) => {\r\n return {\r\n id: k,\r\n text: allBorderTranslations[k],\r\n selected: true,\r\n isDisplayed: true\r\n };\r\n }).sort((a, b) => a.id.localeCompare(b.id))\r\n });\r\n\r\n const allHubTranslations = i18n.default.getResourceBundle(\"en\", \"common_hubs\");\r\n this.setState({\r\n selectedHubs: Object.keys(allHubTranslations).map((k) => {\r\n return {\r\n id: k,\r\n text: allHubTranslations[k],\r\n selected: true,\r\n isDisplayed: true\r\n };\r\n }).sort((a, b) => a.id.localeCompare(b.id))\r\n });\r\n\r\n const allTsoTranslations = i18n.default.getResourceBundle(\"en\", \"common_tsos\");\r\n this.setState({\r\n selectedTsos: Object.keys(allTsoTranslations).map((k) => {\r\n return {\r\n id: k,\r\n text: allTsoTranslations[k],\r\n selected: true,\r\n isDisplayed: true\r\n };\r\n })\r\n });\r\n\r\n this.setState({\r\n initialized: true\r\n });\r\n });\r\n }\r\n\r\n handleTokenChange = (userMail: string, userRole: string, userToken: string) => {\r\n this.setState({ userMail, userRole, userToken });\r\n }\r\n\r\n handleDateChange = (selectedDate: Date) => {\r\n this.setState({ selectedDate });\r\n localStorage.setItem('selectedDate', selectedDate.toISOString());\r\n localStorage.setItem('lastSavedOn', new Date().toISOString());\r\n }\r\n\r\n handleInputAvailablilityChange = (dateSteps: string, borderEnabled: boolean, hubEnabled: boolean, availableColumns: string[]) => {\r\n this.setState({\r\n dateSteps: dateSteps,\r\n isBorderEnabled: borderEnabled,\r\n isHubEnabled: hubEnabled,\r\n selectedBorders:\r\n [\r\n ...this.state.selectedBorders,\r\n ...availableColumns\r\n .filter((value, index, self) => self.indexOf(value) === index) // =distinct\r\n .filter(k => k.toLowerCase().startsWith(\"border_\") && this.state.selectedBorders.filter(s => s.id.toLowerCase() === k.toLowerCase().replace(\"border_\", \"\")).length === 0)\r\n .map((key) => {\r\n return {\r\n isDisplayed: false,\r\n id: key.toLowerCase().replace(\"border_\", \"\").toUpperCase(),\r\n text: key.toLowerCase().replace(\"border_\", \"\").replace(\"_\", \"►\").toUpperCase(),\r\n selected: true\r\n };\r\n })\r\n ]\r\n .map((item) => {\r\n return { ...item, isDisplayed: availableColumns.length !== 0 && availableColumns.filter(f => f.toLowerCase() === item.id.toLowerCase() || f.toLowerCase() === \"border_\" + item.id.toLowerCase() || f.toLowerCase() === \"initial_\" + item.id.toLowerCase() || f.toLowerCase() === \"bilateral_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\r\n };\r\n })\r\n ]\r\n .map((item) => {\r\n return { ...item, isDisplayed: availableColumns.length !== 0 && availableColumns.filter(f => f.toLowerCase() === \"hub_\" + item.id.toLowerCase() || f.toLowerCase() === \"min\" + item.id.toLowerCase() || f.toLowerCase() === \"generation_\" + item.id.toLowerCase()).length > 0 };\r\n }).sort((a, b) => a.id.localeCompare(b.id)) // ascending\r\n ,\r\n selectedTsos:\r\n [\r\n ...this.state.selectedTsos,\r\n ...availableColumns\r\n .filter((value, index, self) => self.indexOf(value) === index) // =distinct\r\n .filter(k => k.toLowerCase().startsWith(\"tso_\") && this.state.selectedTsos.filter(s => s.id.toLowerCase() === k.toLowerCase().replace(\"tso_\", \"\")).length === 0)\r\n .map((key) => {\r\n return {\r\n isDisplayed: false,\r\n id: key.replace(\"tso_\", \"\"),\r\n text: key.replace(\"tso_\", \"\"),\r\n selected: true\r\n };\r\n })\r\n ]\r\n .map((item) => {\r\n return { ...item, isDisplayed: availableColumns.length !== 0 && availableColumns.filter(f => f.toLowerCase() === \"tso_\" + item.id.toLowerCase()).length > 0 };\r\n }).sort((a, b) => a.id.localeCompare(b.id)) // ascending\r\n\r\n });\r\n }\r\n\r\n handleBorderChange = (selectedBorder: MultiSelectItem, special: string) => {\r\n const newList = this.state.selectedBorders.map((item) => {\r\n if (special === \"ALL\") {\r\n return { ...item, selected: true };\r\n }\r\n if (special === \"NONE\") {\r\n return { ...item, selected: false };\r\n }\r\n if (item.id === selectedBorder.id) {\r\n return { ...item, selected: !item.selected };\r\n }\r\n return item;\r\n });\r\n this.setState({ selectedBorders: newList });\r\n localStorage.setItem('selectedBorders', JSON.stringify(newList));\r\n localStorage.setItem('lastSavedOn', new Date().toISOString());\r\n }\r\n\r\n handleHubChange = (selectedHub: MultiSelectItem, special: string) => {\r\n const newList = this.state.selectedHubs.map((item) => {\r\n if (special === \"ALL\") {\r\n return { ...item, selected: true };\r\n }\r\n if (special === \"NONE\") {\r\n return { ...item, selected: false };\r\n }\r\n if (item.id === selectedHub.id) {\r\n return { ...item, selected: !item.selected };\r\n }\r\n return item;\r\n });\r\n this.setState({ selectedHubs: newList });\r\n localStorage.setItem('selectedHubs', JSON.stringify(newList));\r\n localStorage.setItem('lastSavedOn', new Date().toISOString());\r\n }\r\n\r\n handleHorizonChange = (horizon: string) => {\r\n this.setState({ horizon: horizon });\r\n }\r\n\r\n addHubToHubExchange = (borders: MultiSelectItem[]) => {\r\n this.setState({\r\n hubToHubExchange: Object.assign({}, ...borders.map((border) => ({ [border.id]: { text: \"0\", value: 0 } }))),\r\n });\r\n }\r\n addHubToHubPosition = (hubs: MultiSelectItem[]) => {\r\n this.setState({\r\n hubToHubPosition: Object.assign({}, ...hubs.map((hub) => ({ [hub.id]: { text: \"0\", value: 0 } }))),\r\n });\r\n }\r\n handleHubToHubExchangeChange = (id: string, value: string, ptdfHubs: string[]) => {\r\n const copy = { ...this.state.hubToHubExchange };\r\n copy[id] = { text: value, value: parseFloat(value) };\r\n this.setState({ hubToHubExchange: copy });\r\n }\r\n handleHubToHubPositionChange = (id: string, value: string) => {\r\n const copy = { ...this.state.hubToHubPosition };\r\n copy[id] = { text: value, value: parseFloat(value) };\r\n this.setState({ hubToHubPosition: copy });\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{ display: \"grid\", gridTemplateColumns: \"225px auto\", height: \"100%\" }}>\r\n {!this.state.initialized\r\n ? <div></div>\r\n : <Navigation applicationState={this.state} />\r\n }\r\n <div style={{ overflow: \"auto\", display: \"flex\", flexDirection: \"column\" }}>\r\n <React.Suspense fallback={<BusyOverlay />}>\r\n {!this.state.initialized\r\n ? <div></div>\r\n : <Switch>\r\n {this.state.pages.map(p => <Route path={\"/\" + p.config.webUrl} exact={true} component={p.component} />)}\r\n <Route path=\"/\" exact={true} component={this.state.pages[0].component} />\r\n <Route component={NotFound} />\r\n </Switch>\r\n }\r\n </React.Suspense>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(App);\r\n","require(\"./main.scss\");\r\n\r\nimport * as React from \"react\";\r\n\r\ninterface OwnProps {\r\n}\r\n\r\nconst Main: React.FunctionComponent<OwnProps> = ({ children }) => {\r\n React.useEffect(() => {\r\n }, []);\r\n\r\n return (\r\n <>\r\n <>{children}</>\r\n </>\r\n );\r\n};\r\n\r\nexport default Main;","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport * as i18n from \"i18n\";\r\n\r\nimport BusyOverlay from \"components/busyOverlay\";\r\nimport App from \"./app\";\r\nimport Shell from \"core/infrastructure/shell\";\r\nimport { config } from \"@fortawesome/fontawesome-svg-core\";\r\n\r\ninterface Configuration {\r\n applicationRoot: string;\r\n scriptsRoot: string;\r\n apiService: string;\r\n requestVerificationToken: string;\r\n bearerToken: string;\r\n username: string;\r\n role: string;\r\n environment: string;\r\n}\r\n\r\nexport default (el: Element, configuration: Configuration) => {\r\n __webpack_public_path__ = configuration.scriptsRoot; // needed for chunk loading\r\n\r\n axios.defaults.headers.common[\"X-Requested-With\"] = \"XMLHttpRequest\";\r\n axios.defaults.headers.common[\"RequestVerificationToken\"] = configuration.requestVerificationToken;\r\n //TODO axios.defaults.headers.common[\"Authorization\"] = \"Bearer ...\";\r\n\r\n axios.interceptors.response.use(\r\n response => response,\r\n error => Promise.reject(error)\r\n );\r\n\r\n i18n.init(configuration.scriptsRoot, [\"common\"]);\r\n\r\n const container =\r\n <React.Suspense fallback={<BusyOverlay />}>\r\n <Shell>\r\n <BrowserRouter basename={configuration.applicationRoot}>\r\n <App applicationRoot={configuration.applicationRoot}\r\n apiService={configuration.apiService}\r\n bearerToken={configuration.bearerToken}\r\n username={configuration.username}\r\n role={configuration.role}\r\n environment={configuration.environment} />\r\n </BrowserRouter>\r\n </Shell>\r\n </React.Suspense>;\r\n\r\n ReactDOM.render(container, el);\r\n};","import * as i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\nimport * as i18nextXHR from \"i18next-xhr-backend\";\r\n\r\nexport const init = (frontEndUrl: string, bundleNames: string[]) => {\r\n if (i18n.default.isInitialized) return;\r\n\r\n i18n.default\r\n .use(i18nextXHR.default)\r\n .use(initReactI18next)\r\n .init({\r\n fallbackLng: \"en\",\r\n\r\n ns: bundleNames,\r\n defaultNS: bundleNames[0],\r\n\r\n debug: false,\r\n\r\n keySeparator: false,\r\n\r\n interpolation: {\r\n escapeValue: false, // not needed for react\r\n formatSeparator: \",\",\r\n },\r\n\r\n react: {\r\n // note: don't set this to 'true' => needed for positioning of popups\r\n wait: false,\r\n },\r\n\r\n backend: {\r\n loadPath:\r\n frontEndUrl +\r\n \"locales/{{lng}}/{{ns}}.json?\" +\r\n BUNDLEBUILDTIME,\r\n crossDomain: true,\r\n },\r\n });\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectableTabs\":\"selectableTabs_3AaYtsaBXZ\",\"selected\":\"selected_ktPVqVBtu_\",\"expected\":\"expected_2jt73Ah4O0\",\"pending\":\"pending_3VBru3uUH2\",\"received\":\"received_3qNxCfe3vX\",\"spanning\":\"spanning_2dj43WNuzs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"actions\":\"actions_2a4Or-_48i\",\"addIcon\":\"addIcon_17iR4fr_0Q\",\"selectField\":\"selectField_23Gz9pSWDK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"json\":\"json_3aGO_WwOvO\",\"selectableBorder\":\"selectableBorder_2_dZn9Xtd6\",\"selected\":\"selected_3lTWMVgYfM\",\"marginDiv\":\"marginDiv_HtsbPlEZ8h\",\"maxWidth\":\"maxWidth_1_FNebYVCe\",\"get\":\"get_JQUlcVMEpo\",\"post\":\"post_28vw9l8HPH\",\"parameter\":\"parameter_2HeuMWXQIe\",\"loading\":\"loading_2-sbqmdMY6\",\"tabButton\":\"tabButton_2Ayy3E7VRl\",\"button\":\"button_2dBov5IrhC\",\"pageButton\":\"pageButton_1raOLFrJmb\"};","// 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\"};"],"sourceRoot":""}