{"version":3,"sources":["components/BioMethaneConnection/BioMethaneConnection.tsx","components/Cabels/Cabels.tsx","loc/mystrings.ts","components/Utility.ts","components/ControlBar/ControlBar.tsx","components/DailyUpdate/DailyUpdate.tsx","images/EnerginetLogo.png","components/EnerginetLogo/EnerginetLogo.tsx","components/ExternalPowerLabels/ExternalPowerLabel.tsx","components/ExternalPowerLabels/ExternalPowerLabels.tsx","components/GasBox/GasBox.tsx","components/GasIconBox/GasIconBox.tsx","components/GasLabels/GasLabel.tsx","components/GasLabels/GasLabels.tsx","components/GasPipes/BalticPipe.tsx","components/GasPipes/GasPipes.tsx","images/GasStorageAnimation.gif","components/GasStorage/GasStorage.tsx","components/GasStorageLabels/GasStorageLabel.tsx","components/GasStorageLabels/GasStorageLabels.tsx","components/GasStorageLegend/GasStorageLegend.tsx","components/HistoricalData/HistoryDataBoxes/HistoryDataBoxes.tsx","images/backArrow.png","images/forwardArrow.png","components/HistoricalData/HistoricalData.tsx","components/LastUpdated/LastUpdated.tsx","components/PowerBox/PowerBox.tsx","components/PowerIconBox/PowerIconBox.tsx","components/PowerLabels/PowerLabel.tsx","components/PowerLabels/PowerLabels.tsx","components/Powerplant/Powerplant.tsx","components/ReadMore/ReadMore.tsx","components/TransformerStation/TransformerStation.tsx","components/Windmill/Windmill.tsx","Symbols/BioMethaneConnectionSymbol/BioMethaneConnectionSymbol.tsx","Symbols/GasJunctionSymbol/GasJunctionSymbol.tsx","Symbols/PowerplantSymbol/PowerplantSymbol.tsx","Symbols/TransformerStation/TransformerStationSymbol.tsx","Symbols/Windmill/WindmillSymbol.tsx","components/HistoryDatePicker/HistoryDatePicker.tsx","components/MapNotUpdated/MapNotUpdated.tsx","components/LastUpdatedGasStorage/LastUpdatedGasStorage.tsx","Symbols/SunPanel/SunPanelSymbol.tsx","images/sunpanel.svg","components/SunPanel/SunPanel.tsx","App.tsx","EnerginetTheme.ts","reportWebVitals.ts","index.tsx"],"names":["BioMethaneConnection","transformData","this","props","posx","posy","id","width","height","transform","xlinkHref","React","Component","Cabels","data","setCabels","prevprops","value","reverse","animationClass","intValue","parseInt","elm","dk1_no","getAnimationClass","dk1_se","dk1_nl","dk1_de","dk1_dk2","dk2_se","dk2_de","bh_se","dk1_gb","setState","DK2_DE","DK1_DK2","DK1_NO","DK1_SE","DK1_NL","DK1_DE","DK2_SE","BH_SE","DK1_GB","Minutes1DK","Fragment","className","state","x1","y1","x2","y2","points","d","strings","local","VikingLink","GasstorageConsumptionInDK","PowerDataMissing","GasDataMissing","PowerDataError","GasDataError","SelectDate","DailyGasFromNorway","DailyGasFromNorthSea","DailyGasToGermany","DailyGasFromGermany","DailyGasConsumptionInDenmark","DailyGasFromBiomethane","DailyGasFromStorage","DailyGasToStorage","DailyGasToSweden","DailyGasFromPoland","DailyGasToPoland","HourlyData","DailyUpdate","ReadMoreHeadline","ReadMoreLink1","ReadMoreLink2","ReadMoreLink3","ReadMoreLink4","ReadMoreLink1URL","ReadMoreLink2URL","ReadMoreLink3URL","ReadMoreLink4URL","TheEnergySystemRightNow","ApplicableFor","Area","BornholmSweden","Biomethane","BiomethaneProduction","CableAc","CableDc","CalorificValue","ChooseDate","Co2Emissions","ConsumptionInDenmark","GasConsumptionInDenmark","ConverterSubstation","DisplayMode","EgtvedCalorificValue","ElectricityConsumption","EnergyExchange","FromGermany","FromTheNorthSea","GasPipe","GasPipeOwnedByOthers","GasStorage","Germany","HistoricalData","Include","JutlandGermany","JutlandNetherlands","JutlandNorway","JutlandSweden","LastUpdate","LatestProductionDataFromThyra","LilleTorupGasStorage","LilleTorupGasStorageShort","StorageInjection","StorageWithdrawel","GasStorageInjection","StorageProduction","Map","Measurements","Mrstation","NetExchangeImport","OffshoreWindFarm","OverheadLinesAc","OverheadLinesDc","PointOfTransit","PowerPlantGt100Mw","PowerPlantsGt100","PowerPlantsLt100","PowerRightNow","SolarCells","StenlilleGasStorage","StenlilleGasStorageShort","SymbolDescription","TheElectricityNetRightNow","TheGasNetRightNow","TheGreatBelt","ToSweden","ToPoland","ToPolandShort","FromNorway","TotalProduction","WindTurbines","ZealandGermany","ZealandSweden","Export","Import","BiomethaneConnection","formatRoundNumber","ret","Math","round","toLocaleString","GetLanguage","formatAbsNumber","num","abs","formatAbsNumberMW","formatNumber","EDSUrl","portalUrl","document","location","search","indexOf","href","initializeIcons","locals","mapOptions","key","text","stackTokens","childrenGap","ControlBar","dataOptions","convertToGasStorage","viewTypeMap","viewTypeHistory","powerTypeEl","powerTypeGas","showMeassure","showLegends","PowerTypeKey","MapTypeKey","callback","mapKey","powerKey","powerTyepEl","powerTyepGas","ChoiceGroup","defaultSelectedKey","options","onChange","toggleMap","bind","label","selectedKey","toggleData","Stack","tokens","Checkbox","checked","toogleMeassure","toogleLegends","date","x","y","style","display","padding","textTransform","color","fontSize","fontFamily","textAlign","EnerginetLogo","logoUrl","logo","src","alt","ExternalPowerLabel","valueLabel","flow","ExternalPowerLabels","updateLabels","vLabel","dataArray","push","xpos","ypos","map","itm","GasBox","LTLager_Flow","SLLager_Flow","FromTheNorthSeaValue","GasFlow","KWhFromNorthSea","KWhToPoland","KWhFromBiogas","kWhFromTyra","KWhToOrFromGermany","KWhToSweden","KWhToOrFromStorage","KWhToDenmark","PowerIconBox","GasLabel","updateDimensions","window","innerWidth","addEventListener","removeEventListener","titleStyle","ekstratitleStyle","paddingTop","valueStyle","marginTop","border","backgroundColor","undefined","ekstraLabel","ekstraLabelValue","GasLabels","directionLabel","BalticPipe","directionBalticPipeClass","GasPipes","gasData","gasStorageData","directionNorway","directionNorthSea","directionGermany","directionSweeden","norwegianImport","danishImport","importEllund","exportSweden","gasStorageAni","position","left","top","GasStorageLabel","GasStorageLabels","exportString","importString","importFaxe","GasStorageLegend","gsdStorage","exitFromTransmission","HistoryDataBoxes","dataIndex","datasets","additionalData","labels","index","fill","stacked","cubicInterpolationMode","radius","bordercolor","type","order","lineRef","createRef","fetchPowerData","selectedDate","a","toDate","Date","setDate","getDate","cacheName","convertDate","view","fetch","response","json","jsonStr","JSON","parse","rawData","records","startDate","console","log","fromDate","now","loading","then","GetDataFromDate","getFullYear","fixDatePart","getMonth","part","partStr","toString","ProductionGe100MW","ProductionLt100MW","WindMillTotal","SolarPower","CO2Emission","ExchangeSum","PowerTotal","selectedDateStr","selectedStartDate","forEach","powerdata","TimeStamp","TimeStampUTC","offset","getTimezoneOffset","setMinutes","getMinutes","selectedEndDate","setHours","getHours","unshift","addData","lineChart","current","dataset","length","da","update","error","newDate","changeDate","plugins","interaction","mode","tooltip","intersect","usePointStyle","xAlign","callbacks","context","enabled","external","e","chart","customLine","legend","animation","responsive","hover","scales","title","min","max","defaultFontFamily","afterDraw","easing","ctx","chartArea","center","bottom","isNaN","save","beginPath","strokeStyle","moveTo","lineTo","stroke","fillStyle","fillRect","size","fillText","restore","hideChart","hideSpinner","DayPickerStrings","months","shortMonths","days","shortDays","goToToday","prevMonthAriaLabel","nextMonthAriaLabel","prevYearAriaLabel","nextYearAriaLabel","onClick","back","backArrow","DatePicker","formatDate","minDate","maxDate","firstDayOfWeek","onSelectDate","forward","Arrow","Spinner","SpinnerSize","large","ref","LastUpdated","dkDate","day","month","year","hour","minute","PowerBox","OnshoreWindPower","OffshoreWindPower","Exchange_Sum","PowerLabel","showLabel","PowerLabels","Powerplant","ReadMore","TransformerStation","Windmill","xmlnsXlink","BioMethaneConnectionSymbol","viewBox","GasJunctionSymbol","cx","cy","r","PowerplantSymbol","TransformerStationSymbol","WindmillSymbol","HistoryDatePicker","scale","cursor","float","zIndex","marginLeft","disableAutoFocus","showCloseButton","MapNotUpdated","controlData","powerDataState","gasDataState","displayText","showError","dateString","replace","fontStyle","LastUpdatedGasStorage","SunPanelSymbol","SunPanel","sunpanelUrl","sunpanel","tempData","historydate","loadTheme","palette","themePrimary","themeLighterAlt","themeLighter","themeLight","themeTertiary","themeSecondary","themeDarkAlt","themeDark","themeDarker","neutralLighterAlt","neutralLighter","neutralLight","neutralQuaternaryAlt","neutralQuaternary","neutralTertiaryAlt","neutralTertiary","neutralSecondary","neutralPrimaryAlt","neutralPrimary","neutralDark","black","white","App","useState","setControlData","tmpData","dataState","powerData","setPowerData","setGasData","setGasStorageData","refreshInterval","useEffect","getData","interval","setInterval","clearInterval","fetchGasStorageData","datasetDate","catch","convertGasstorageFilterDate","latestDatajson","HourDK","endDate","selectData","rec","GrossCalorificValuekWh","StationFlow","DragorBorder","find","EntryExitPoint","Ellund","Faxe","LilleTorup","NorthSea","Nybro","Stenlille","fetchGasData","previousDay","setSeconds","setMilliseconds","GasDay","mapStyle","appStyle","foreingColor","lastUpdateLabelData","preserveAspectRatio","xmlns","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.ef61581f.chunk.js","sourcesContent":["import React from 'react';\r\nexport interface BioMethaneConnectionProps {\r\n posx:string;\r\n posy:string;\r\n}\r\n \r\nclass BioMethaneConnection extends React.Component { \r\n render() { \r\n let transformData:string = `translate(${this.props.posx} ${this.props.posy})`\r\n return ( \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n \r\nexport default BioMethaneConnection;","import React from 'react';\r\nimport { IPowerBoxProps } from '../PowerBox/PowerBox';\r\nimport './Cabels.css';\r\nimport { get } from 'http';\r\n\r\nexport interface ICabelsState {\r\n DK2_DE?: string;\r\n DK1_DK2?: string;\r\n DK1_NO?: string;\r\n DK1_SE?: string;\r\n DK1_NL?: string;\r\n DK1_DE?: string;\r\n DK2_SE?: string;\r\n BH_SE?: string;\r\n DK1_GB?: string;\r\n Minutes1DK?: string;\r\n}\r\n\r\nclass Cabels extends React.Component {\r\n\r\n componentDidMount() {\r\n if (this.props && this.props.data) {\r\n this.setCabels();\r\n }\r\n }\r\n\r\n componentDidUpdate(prevprops: IPowerBoxProps) { \r\n if (this.props && this.props.data && prevprops.data !== this.props.data) {\r\n this.setCabels();\r\n }\r\n }\r\n\r\n private getAnimationClass(value: string, reverse?: boolean): string {\r\n\r\n let animationClass: string = 'noAnimation';\r\n let intValue = parseInt(value);\r\n if (reverse)\r\n intValue = intValue * -1;\r\n\r\n if (intValue > 0)\r\n animationClass = 'reverse-animation'\r\n else if (intValue < 0)\r\n animationClass = 'animation'\r\n return animationClass;\r\n }\r\n\r\n private setCabels() {\r\n let elm = this.props.data; \r\n let dk1_no: string = this.getAnimationClass(elm[\"Exchange_DK1_NO\"]);\r\n let dk1_se: string = this.getAnimationClass(elm[\"Exchange_DK1_SE\"]);\r\n let dk1_nl: string = this.getAnimationClass(elm[\"Exchange_DK1_NL\"]);\r\n let dk1_de: string = this.getAnimationClass(elm[\"Exchange_DK1_DE\"]);\r\n let dk1_dk2: string = this.getAnimationClass(elm[\"Exchange_DK1_DK2\"]);\r\n let dk2_se: string = this.getAnimationClass(elm[\"Exchange_DK2_SE\"]);\r\n let dk2_de: string = this.getAnimationClass(elm[\"Exchange_DK2_DE\"], true);\r\n let bh_se: string = this.getAnimationClass(elm[\"Exchange_Bornholm_SE\"]);\r\n let dk1_gb: string = this.getAnimationClass(elm[\"Exchange_DK1_GB\"]);\r\n\r\n this.setState({\r\n DK2_DE: dk2_de,\r\n DK1_DK2: dk1_dk2,\r\n DK1_NO: dk1_no,\r\n DK1_SE: dk1_se,\r\n DK1_NL: dk1_nl,\r\n DK1_DE: dk1_de,\r\n DK2_SE: dk2_se,\r\n BH_SE: bh_se,\r\n DK1_GB: dk1_gb,\r\n Minutes1DK: this.props.data.Minutes1DK\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {/* Sjælland -> Tyskland */}\r\n \r\n \r\n \r\n \r\n \r\n {/* Fyn -> Sjælland */}\r\n \r\n {/* */}\r\n \r\n {/* */}\r\n \r\n {/* jylland -> Norge */}\r\n \r\n \r\n \r\n \r\n \r\n {/* Jylland -> Sverige */}\r\n \r\n \r\n \r\n \r\n \r\n {/* Jylland -> Holland */}\r\n \r\n \r\n \r\n {/* Jylland -> England */}\r\n \r\n \r\n \r\n \r\n \r\n {/* Luftledning, jævnstrøm */}\r\n \r\n \r\n \r\n \r\n \r\n {/* Jylland -> Tyskland */}\r\n \r\n {/* */}\r\n \r\n \r\n {/* Bornholm -> Sverige */}\r\n \r\n {/* Sjælland -> Sverige */}\r\n \r\n {/* de 2 små på sjælland */}\r\n \r\n \r\n {/* Sjælland -> Tyskland */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Cabels;","export interface IStrings {\r\n VikingLink:string;\r\n\r\n GasstorageConsumptionInDK:string;\r\n PowerDataMissing:string;\r\n GasDataMissing:string;\r\n PowerDataError:string;\r\n GasDataError:string;\r\n HourlyData:string;\r\n\r\n SelectDate:string;\r\n DailyGasFromNorway:string;\r\n DailyGasFromNorthSea:string;\r\n DailyGasToGermany:string;\r\n DailyGasFromGermany:string;\r\n DailyGasConsumptionInDenmark:string;\r\n DailyGasFromBiomethane:string;\r\n DailyGasFromStorage:string;\r\n DailyGasToStorage:string;\r\n DailyGasToSweden:string;\r\n DailyGasFromPoland:string;\r\n DailyGasToPoland:string;\r\n\r\n DailyUpdate:string;\r\n ReadMoreHeadline:string;\r\n ReadMoreLink1:string;\r\n ReadMoreLink2:string;\r\n ReadMoreLink3:string;\r\n ReadMoreLink4:string;\r\n ReadMoreLink1URL:string;\r\n ReadMoreLink2URL:string;\r\n ReadMoreLink3URL:string;\r\n ReadMoreLink4URL:string;\r\n TheEnergySystemRightNow:string;\r\n ApplicableFor:string;\r\n Area:string;\r\n BornholmSweden:string; \r\n Biomethane:string;\r\n BiomethaneProduction:string;\r\n CableAc:string;\r\n CableDc:string;\r\n CalorificValue:string;\r\n ChooseDate:string;\r\n Co2Emissions:string;\r\n ConsumptionInDenmark:string;\r\n GasConsumptionInDenmark:string;\r\n ConverterSubstation:string;\r\n DisplayMode:string;\r\n EgtvedCalorificValue:string;\r\n ElectricityConsumption:string;\r\n EnergyExchange:string;\r\n FromGermany:string;\r\n FromTheNorthSea:string;\r\n GasPipe:string;\r\n GasPipeOwnedByOthers:string;\r\n GasStorage:string;\r\n Germany:string;\r\n HistoricalData:string;\r\n Include:string;\r\n JutlandGermany:string;\r\n JutlandNetherlands:string;\r\n JutlandNorway:string;\r\n JutlandSweden:string;\r\n LastUpdate:string;\r\n LatestProductionDataFromThyra:string;\r\n LilleTorupGasStorage:string;\r\n LilleTorupGasStorageShort:string;\r\n StorageInjection:string;\r\n StorageWithdrawel:string,\r\n GasStorageInjection:string;\r\n StorageProduction:string; \r\n Map:string; \r\n Measurements:string;\r\n Mrstation:string;\r\n NetExchangeImport:string;\r\n OffshoreWindFarm:string;\r\n OverheadLinesAc:string;\r\n OverheadLinesDc:string;\r\n PointOfTransit:string;\r\n PowerPlantGt100Mw:string;\r\n PowerPlantsGt100:string;\r\n PowerPlantsLt100:string;\r\n PowerRightNow:string;\r\n SolarCells:string;\r\n StenlilleGasStorage:string;\r\n StenlilleGasStorageShort:string;\r\n SymbolDescription:string;\r\n TheElectricityNetRightNow:string;\r\n TheGasNetRightNow:string;\r\n TheGreatBelt:string;\r\n ToSweden:string;\r\n ToPoland:string;\r\n ToPolandShort:string;\r\n FromNorway:string;\r\n TotalProduction:string;\r\n WindTurbines:string;\r\n ZealandGermany:string;\r\n ZealandSweden:string; \r\n\r\n Export:string;\r\n Import:string; \r\n BiomethaneConnection:string;\r\n}\r\n\r\nlet strings = (local:string): IStrings => {\r\n if(local==='en-US') { \r\n return {\r\n VikingLink:\"Jutland - England\",\r\n\r\n GasstorageConsumptionInDK:'EXIT FROM TRANSMISSION TO DISTRUBUTION IN DENMARK',\r\n PowerDataMissing:'The map is currently not displaying the latest data. Latest data is from: [DateTime]. We are working to resolve the issue.',\r\n GasDataMissing:'The map is currently not displaying the latest data. Latest data is from: [DateTime]. We are working to resolve the issue.',\r\n PowerDataError:'We are experiencing a data error in the map of the energy system and are working to resolve the issue.',\r\n GasDataError:'We are experiencing a data error in the map of the energy system and are working to resolve the issue.',\r\n SelectDate:'Select date',\r\n DailyGasFromNorway:'FROM NORWAY',\r\n DailyGasFromNorthSea:'FROM THE NORTH SEA',\r\n DailyGasToGermany:'TO GERMANY',\r\n DailyGasFromGermany:'FROM GERMANY',\r\n DailyGasConsumptionInDenmark:'CONSUMPTION IN DENMARK',\r\n DailyGasFromBiomethane:'INJECTED BIOMETHANE',\r\n DailyGasFromStorage:'DANISH GAS STORAGE FACILITIES (out of storage)',\r\n DailyGasToStorage:'DANISH GAS STORAGE FACILITIES (into storage)',\r\n DailyGasToSweden:'TO SWEDEN',\r\n DailyGasFromPoland:'FROM POLAND',\r\n DailyGasToPoland:'TO POLAND',\r\n HourlyData:'HOURLY DATA',\r\n\r\n DailyUpdate:'Daily update at 12 noon CET',\r\n ReadMoreHeadline:'MORE ABOUT GAS QUALITY AND DAILY DATA',\r\n ReadMoreLink1:'Entry/exit quality and gas flow',\r\n ReadMoreLink2:'Gas quality and gas flow per MR-station',\r\n ReadMoreLink3:'Commercial gas amounts',\r\n ReadMoreLink4:'',\r\n ReadMoreLink1URL:'https://www.energidataservice.dk/tso-gas/EntryExitGasquality',\r\n ReadMoreLink2URL:'https://www.energidataservice.dk/tso-gas/MrStationsGasquality',\r\n ReadMoreLink3URL:'https://www.energidataservice.dk/tso-gas/Gasflow',\r\n ReadMoreLink4URL:'',\r\n TheEnergySystemRightNow:'THE ENERGY SYSTEM RIGHT NOW',\r\n ApplicableFor:'Applicable for',\r\n Area:'AREA',\r\n BornholmSweden:'Bornholm - Sweden',\r\n Biomethane:'BIOMETHANE (Previous day)',\r\n BiomethaneProduction:'BIOMETHANE PRODUCTION',\r\n CableAc:'CABLE, AC',\r\n CableDc:'CABLE, DC',\r\n CalorificValue:'CALORIFIC VALUE',\r\n ChooseDate:'Choose date',\r\n Co2Emissions:'CO2 EMISSIONS',\r\n ConsumptionInDenmark:'CONSUMPTION IN DENMARK',\r\n GasConsumptionInDenmark:'CONSUMPTION IN DK (Previous day)',\r\n ConverterSubstation:'CONVERTER SUBSTATION',\r\n DisplayMode:'DISPLAY MODE',\r\n EgtvedCalorificValue:'EGTVED CALORIFIC VALUE',\r\n ElectricityConsumption:'ELECTRICITY CONSUMPTION',\r\n EnergyExchange:'Energy exchange',\r\n FromGermany:'FROM GERMANY',\r\n FromTheNorthSea:'FROM NORWAY (Previous day)',\r\n GasPipe:'Gas Pipe',\r\n GasPipeOwnedByOthers:'Gas pipe owned by others',\r\n GasStorage:'Gas Storage',\r\n Germany:'Germany',\r\n HistoricalData:'Historical data',\r\n Include:'INCLUDE',\r\n JutlandGermany:'Jutland - Germany',\r\n JutlandNetherlands:'Jutland - Netherlands',\r\n JutlandNorway:'Jutland - Norway',\r\n JutlandSweden:'Jutland - Sweden',\r\n LastUpdate:'Last update',\r\n LatestProductionDataFromThyra:'LATEST PRODUCTION DATA FROM TYRA',\r\n LilleTorupGasStorage:'LILLE TORUP GAS STORAGE',\r\n LilleTorupGasStorageShort:'LILLE TORUP',\r\n StorageInjection:'INJECTION',\r\n StorageWithdrawel:'WITHDRAWAL',\r\n GasStorageInjection:'GASSTORAGE INJECTION', \r\n StorageProduction:'PRODUCTION',\r\n Map:'Map', \r\n Measurements:'Measurements',\r\n Mrstation:'M/R-station',\r\n NetExchangeImport:'NET EXCHANGE IMPORT',\r\n OffshoreWindFarm:'OFFSHORE WIND FARM',\r\n OverheadLinesAc:'OVERHEAD LINES, AC',\r\n OverheadLinesDc:'OVERHEAD LINES, DC',\r\n PointOfTransit:'Point of transit',\r\n PowerPlantGt100Mw:'POWER PLANT (>100 MW)',\r\n PowerPlantsGt100:'POWER PLANTS (> 100 MW)',\r\n PowerPlantsLt100:'POWER PLANTS (< 100 MW)',\r\n PowerRightNow:'Power right now',\r\n SolarCells:'SOLAR CELLS',\r\n StenlilleGasStorage:'STENLILLE GAS STORAGE',\r\n StenlilleGasStorageShort:'STENLILLE',\r\n SymbolDescription:'Symbol description',\r\n TheElectricityNetRightNow:'The electricity net right now',\r\n TheGasNetRightNow:'DAILY DATA IN THE GAS SYSTEM',\r\n TheGreatBelt:'The Great Belt',\r\n ToSweden:'TO SWEDEN',\r\n ToPoland:'TO POLAND (Previous day)',\r\n ToPolandShort:'To Poland',\r\n FromNorway:'FROM NORWAY (Previous day)',\r\n TotalProduction:'Total production',\r\n WindTurbines:'WIND TURBINES',\r\n ZealandGermany:'Zealand - Germany', \r\n ZealandSweden:'Zealand - Sweden', \r\n Export:'EXPORT',\r\n Import:'IMPORT',\r\n BiomethaneConnection:'BIOMETHANE junction' \r\n } \r\n } else {\r\n return {\r\n VikingLink:\"Jylland - England\",\r\n\r\n GasstorageConsumptionInDK:'EXIT FROM TRANSMISSION TO DISTRUBUTION IN DENMARK', \r\n PowerDataMissing:'Kortet viser i øjeblikket ikke seneste data. De viste data er fra: [DateTime]. Vi arbejder på at udbedre fejlen.',\r\n GasDataMissing:'Kortet viser i øjeblikket ikke seneste data. De viste data er fra: [DateTime]. Vi arbejder på at udbedre fejlen.',\r\n PowerDataError:'Der er i øjeblikket fejl i kortet. Vi arbejder på at løse problemet.',\r\n GasDataError:'Der er i øjeblikket fejl i kortet. Vi arbejder på at løse problemet.',\r\n SelectDate:'Vælg dato',\r\n DailyGasFromNorway:'FRA NORGE',\r\n DailyGasFromNorthSea:'FRA NORDSØEN',\r\n DailyGasToGermany:'TIL TYSKLAND',\r\n DailyGasFromGermany:'FRA TYSKLAND',\r\n DailyGasConsumptionInDenmark:'FORBRUG I DANMARK',\r\n DailyGasFromBiomethane:'TILFØRT BIOGAS',\r\n DailyGasFromStorage:'DANSKE GASLAGRE (ud af lager)',\r\n DailyGasToStorage:'DANSKE GASLAGRE (ind i lager)',\r\n DailyGasToSweden:'TIL SVERIGE',\r\n DailyGasFromPoland:'FRA POLEN',\r\n DailyGasToPoland:'TIL POLEN',\r\n HourlyData:'HOURLY DATA',\r\n \r\n DailyUpdate:'Opdateres dagligt kl. 12:00',\r\n ReadMoreHeadline:'MERE OM DATA OG GASKVALITET',\r\n ReadMoreLink1:'Entry/exit gaskvalitet og flow',\r\n ReadMoreLink2:'Gaskvalitet og flow per MR-station',\r\n ReadMoreLink3:'Kommercielle gasmængder',\r\n ReadMoreLink4:'',\r\n ReadMoreLink1URL:'https://www.energidataservice.dk/tso-gas/EntryExitGasquality',\r\n ReadMoreLink2URL:'https://www.energidataservice.dk/tso-gas/MrStationsGasquality',\r\n ReadMoreLink3URL:'https://www.energidataservice.dk/tso-gas/Gasflow',\r\n ReadMoreLink4URL:'',\r\n TheEnergySystemRightNow:'ENERGISYSTEMET LIGE NU',\r\n ApplicableFor:'Gældende for',\r\n Area:'OMRÅDE',\r\n BornholmSweden:'Bornholm - sverige',\r\n Biomethane:'TILFØRT BIOGAS (Dagen før)',\r\n BiomethaneProduction:'BIOGAS PRODUKTION',\r\n CableAc:'KABEL, VEKSELSTRØM',\r\n CableDc:'KABEL, JÆVNSTRØM',\r\n CalorificValue:'BRÆNDVÆRDI',\r\n ChooseDate:'Vælg dato',\r\n Co2Emissions:'CO2-UDLEDNING',\r\n ConsumptionInDenmark:'FORBRUG I DK',\r\n GasConsumptionInDenmark:'FORBRUG I DK (Dagen før)',\r\n ConverterSubstation:'TRANSFORMERSTATION',\r\n DisplayMode:'VISNING',\r\n EgtvedCalorificValue:'EGTVED BRÆNDVÆRDI',\r\n ElectricityConsumption:'ELFORBRUG',\r\n EnergyExchange:\"Energi udveksling\",\r\n FromGermany:'FRA TYSKLAND',\r\n FromTheNorthSea:'FRA NORGE (Dagen før)',\r\n GasPipe:'Gasrør',\r\n GasPipeOwnedByOthers:'Gasrør ejet af andre',\r\n GasStorage:'Gaslager',\r\n Germany:'Tyskland',\r\n HistoricalData:'Historiske Data',\r\n Include:'INKLUDER',\r\n JutlandGermany:'Jylland - Tyskland',\r\n JutlandNetherlands:'Jylland - Holland',\r\n JutlandNorway:'Jylland - Norge',\r\n JutlandSweden:'Jylland - Sverige',\r\n LastUpdate:'Sidst opdateret',\r\n LatestProductionDataFromThyra:'SENESTE PRODUKTIONSDATA FRA TYRA',\r\n LilleTorupGasStorage:'LILLE TORUP GASLAGER',\r\n LilleTorupGasStorageShort:'LILLE TORUP',\r\n StorageProduction:'UDTRÆK',\r\n StorageInjection:'INJEKTION',\r\n StorageWithdrawel:'WITHDRAWAL',\r\n GasStorageInjection:'GASSTORAGE INJEKTION',\r\n Map:'Kort', \r\n Measurements:'Målinger',\r\n Mrstation:'M/R station',\r\n NetExchangeImport:'NETTOUDVEKSLING IMPORT',\r\n OffshoreWindFarm:'HAVVINDMØLLEPARK',\r\n OverheadLinesAc:'LUFTLEDNING, VEKSELSTRØM',\r\n OverheadLinesDc:'LUFTLEDNING, JÆVNSTRØM',\r\n PointOfTransit:'Transitpunkt',\r\n PowerPlantGt100Mw:'VÆRK OVER 100 MW',\r\n PowerPlantsGt100:'STØRRE VÆRKER OVER 100 MW',\r\n PowerPlantsLt100:'MINDRE ANLÆG UNDER 100 MW',\r\n PowerRightNow:'Elsystemet lige nu',\r\n SolarCells:'Solceller',\r\n StenlilleGasStorage:'STENLILLE GASLAGER',\r\n StenlilleGasStorageShort:'STENLILLE',\r\n SymbolDescription:'Ikonforklaring',\r\n TheElectricityNetRightNow:'Elnettet lige nu',\r\n TheGasNetRightNow:'DAGLIGE TAL FOR GASNETTET',\r\n TheGreatBelt:'Storebælt',\r\n ToSweden:'TIL SVERIGE',\r\n ToPoland:'TIL POLEN (Dagen før)',\r\n ToPolandShort:'Til Polen',\r\n FromNorway:'FRA NORGE (Dagen før)',\r\n TotalProduction:'Total produktion',\r\n WindTurbines:'VINDMØLLER',\r\n ZealandGermany:'Sjælland - Tyskland', \r\n ZealandSweden:'Sjælland - Sverige', \r\n Export:'EKSPORT',\r\n Import:'IMPORT', \r\n BiomethaneConnection:'Biogas til transmisionsnettet' \r\n } \r\n } \r\n}\r\n \r\n export {strings}"," const formatRoundNumber =(value:number) => {\r\n let num:number = Math.round(value);\r\n let ret = num.toLocaleString(GetLanguage());\r\n if(ret === 'NaN')\r\n ret='-';\r\n return ret;\r\n }\r\n \r\n const formatNumberReverse=(value:number) => {\r\n let num:number = Math.round(value)*-1;\r\n return num.toLocaleString(GetLanguage());\r\n }\r\n \r\n const formatAbsNumber = (value:number) => {\r\n let num:number = Math.round(value);\r\n num = Math.abs(num);\r\n return num.toLocaleString(GetLanguage());\r\n}\r\n\r\nconst formatAbsNumberMW = (value:number) => {\r\n let num:number = Math.round(value/1000);\r\n num = Math.abs(num);\r\n return num.toLocaleString(GetLanguage());\r\n}\r\n\r\n\r\nconst formatNumber = (value:number) => { \r\n if(value) \r\n return value.toLocaleString(GetLanguage());\r\n else\r\n return '0';\r\n}\r\n\r\nconst EDSUrl = () => {\r\n //return './api/';\r\n //return 'https://energinetkort.azurewebsites.net/api/';\r\n return portalUrl()+'api/'; \r\n}\r\n\r\nconst portalUrl = () => { \r\n //return 'https://localhost:44377/';\r\n //return 'https://energinetkort.azurewebsites.net/';\r\n return 'https://prod-wwwenerginetdk-kort-app.azurewebsites.net/';\r\n //return 'https://localhost:7237/';\r\n}\r\n\r\n//https://energinetkort.azurewebsites.net/api/EDS?cacheName=PowerRightNow&dataset=powersystemrightnow?sort=Minutes1UTC desc_limit=1\r\n\r\n//https://energinetkort.azurewebsites.net/api/EDS?dataset=Gasflow?offset=0_start=2023-04-10T00:00_end=2023-04-11T00:00_sort=GasDay\r\n //EDS?dataset=Gasflow?offset=0_start=2023-04-17T00:00_end=2023-04-17T00:00_sort=GasDay\r\nconst GetLanguage = () => { \r\n if (document.location.search.indexOf('map=gasstorage') !== -1)\r\n return 'en-US';\r\n if(document.location.search.indexOf('en-US') !== -1) \r\n return 'en-US';\r\n\r\n if(document.location.href.indexOf('/en/') !== -1) \r\n return 'en-US';\r\n \r\n if(document.location.href.indexOf('en.energinet.dk') !== -1) \r\n return 'en-US';\r\n\r\n return 'da-DK';\r\n}\r\n\r\nexport {formatRoundNumber, formatNumber, formatNumberReverse, formatAbsNumber, formatAbsNumberMW, EDSUrl, GetLanguage, portalUrl};","import { Checkbox } from '@fluentui/react/lib/components/Checkbox/Checkbox';\r\nimport { ChoiceGroup, IChoiceGroupOption } from '@fluentui/react/lib/components/ChoiceGroup';\r\nimport React from 'react';\r\nimport './ControlBar.css';\r\nimport { Stack } from '@fluentui/react/lib/components/Stack';\r\nimport { initializeIcons } from '@fluentui/react/lib/Icons';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nimport { GetLanguage } from '../Utility';\r\n\r\n\r\ninitializeIcons(/* optional base url */);\r\n\r\nexport interface IControlBarProps {\r\n callback?: any\r\n}\r\n\r\nexport interface IControlBarState {\r\n viewTypeMap: boolean;\r\n viewTypeHistory: boolean;\r\n powerTypeEl: boolean;\r\n powerTypeGas: boolean;\r\n showMeassure: boolean;\r\n showLegends: boolean;\r\n PowerTypeKey: string;\r\n MapTypeKey: string;\r\n convertToGasStorage: boolean;\r\n}\r\n\r\nconst locals: IStrings = strings(GetLanguage());\r\n\r\nconst mapOptions: IChoiceGroupOption[] = [\r\n { key: 'A', text: locals.Map },\r\n { key: 'B', text: locals.HistoricalData },\r\n];\r\n\r\nconst stackTokens = { childrenGap: 10 };\r\n\r\nclass ControlBar extends React.Component {\r\n constructor(props: IControlBarProps) {\r\n super(props);\r\n this.state = { convertToGasStorage: false, viewTypeMap: true, viewTypeHistory: false, powerTypeEl: true, powerTypeGas: false, showMeassure: true, showLegends: true, PowerTypeKey: 'A', MapTypeKey: 'A' };\r\n }\r\n\r\n componentDidMount() {\r\n //Disable GAS\r\n if (document.location.search.indexOf('map=gasstorage') !== -1) {\r\n this.setState({\r\n convertToGasStorage: true,\r\n powerTypeGas: true,\r\n powerTypeEl: false,\r\n viewTypeMap: true,\r\n PowerTypeKey: 'B',\r\n MapTypeKey: 'A',\r\n showLegends: false,\r\n showMeassure: false\r\n }, () => { this.props.callback(this.state) });\r\n }\r\n \r\n //Disable GAS\r\n if (document.location.search.indexOf('system=gas') !== -1) {\r\n this.setState({\r\n powerTypeGas: true,\r\n powerTypeEl: false,\r\n viewTypeMap: true,\r\n PowerTypeKey: 'B',\r\n MapTypeKey: 'A',\r\n showLegends: true,\r\n showMeassure: true\r\n }, () => { this.props.callback(this.state) });\r\n }\r\n else \r\n \r\n if (document.location.search.indexOf('system=el') !== -1) {\r\n this.setState({\r\n powerTypeGas: false,\r\n powerTypeEl: true,\r\n viewTypeMap: true,\r\n PowerTypeKey: 'A',\r\n MapTypeKey: 'A'\r\n }, () => { this.props.callback(this.state) });\r\n }\r\n else if (document.location.search.indexOf('system=history') !== -1) {\r\n this.setState({\r\n powerTypeGas: false,\r\n powerTypeEl: true,\r\n viewTypeMap: false,\r\n viewTypeHistory: true,\r\n PowerTypeKey: 'A',\r\n MapTypeKey: 'B'\r\n }, () => { this.props.callback(this.state) });\r\n }\r\n\r\n // this.reload(10000).then(()=> { \r\n // if(this.state.MapTypeKey==='A')\r\n // this.props.callback(this.state);\r\n // });\r\n }\r\n\r\n\r\n\r\n // private reload = (ms:number) => {\r\n // return new Promise((resolve, reject) => setTimeout(resolve, ms));\r\n // };\r\n\r\n private dataOptions: IChoiceGroupOption[] = [\r\n { key: 'A', text: locals.TheElectricityNetRightNow, }\r\n //Disable GAS\r\n ,{ key: 'B', text: locals.TheGasNetRightNow }\r\n ];\r\n\r\n private toggleMap() {\r\n let mapKey = this.state.viewTypeMap ? 'B' : 'A';\r\n let powerKey = this.state.PowerTypeKey;\r\n let powerTyepEl = this.state.powerTypeEl;\r\n let powerTyepGas = this.state.powerTypeGas;\r\n let viewTypeMap = !this.state.viewTypeMap;\r\n let viewTypeHistory = !this.state.viewTypeHistory;\r\n // if (mapKey === 'B') {\r\n // powerKey = 'A';\r\n // powerTyepEl = true;\r\n // powerTyepGas = false;\r\n // }\r\n //console.log(powerKey);\r\n this.setState({\r\n viewTypeMap: viewTypeMap,\r\n viewTypeHistory: viewTypeHistory,\r\n MapTypeKey: mapKey,\r\n PowerTypeKey: powerKey,\r\n powerTypeEl: powerTyepEl,\r\n powerTypeGas: powerTyepGas\r\n }, () => {\r\n // this.reload(10000).then(()=> { \r\n // if(this.state.MapTypeKey==='A')\r\n // this.props.callback(this.state);\r\n // });\r\n this.props.callback(this.state);\r\n });\r\n }\r\n\r\n private toggleData() {\r\n let powerKey = this.state.powerTypeEl ? 'B' : 'A';\r\n this.setState({\r\n powerTypeEl: !this.state.powerTypeEl,\r\n powerTypeGas: !this.state.powerTypeGas,\r\n PowerTypeKey: powerKey\r\n }, () => { this.props.callback(this.state) });\r\n }\r\n\r\n private toogleMeassure() {\r\n this.setState({\r\n showMeassure: !this.state.showMeassure\r\n }, () => { this.props.callback(this.state) });\r\n }\r\n\r\n private toogleLegends() {\r\n this.setState({\r\n showLegends: !this.state.showLegends\r\n }, () => { this.props.callback(this.state) });\r\n }\r\n\r\n render() {\r\n\r\n //Disable GAS\r\n //this.dataOptions[1].disabled = this.state.viewTypeHistory;\r\n\r\n return (\r\n \r\n {!this.state.convertToGasStorage &&\r\n
\r\n
\r\n
\r\n

{locals.TheEnergySystemRightNow}

\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {!this.state.viewTypeHistory &&\r\n
\r\n
{locals.Include}
\r\n \r\n \r\n \r\n \r\n
}\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ControlBar;","import React, { Fragment } from 'react';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nimport { GetLanguage } from '../Utility';\r\nimport './DailyUpdate.css';\r\nexport interface IDailyUpdateProps {\r\n date?: any;\r\n controlData: any; \r\n}\r\n\r\nexport interface IDailyUpdateState {\r\n date?: any; \r\n}\r\n\r\nconst locals: IStrings = strings(GetLanguage());\r\n\r\nclass DailyUpdate extends React.Component {\r\n constructor(props: IDailyUpdateProps) {\r\n super(props);\r\n this.state = { date: this.props.date};\r\n }\r\n\r\n componentDidUpdate(prevprops: IDailyUpdateProps) { \r\n if (this.props && (prevprops.date !== this.props.date))\r\n this.setState({date: this.props.date}); \r\n }\r\n\r\n render() {\r\n let style: React.CSSProperties | object = {\r\n display: 'inline-block',\r\n padding: '4px',\r\n textTransform: 'uppercase',\r\n color: '#02525e',\r\n }\r\n\r\n let headline: React.CSSProperties | object = {\r\n fontSize: '.3000rem',\r\n fontFamily: \"DINNextLTPro-Medium\",\r\n textAlign: 'right'\r\n }\r\n\r\n let date: React.CSSProperties | object = {\r\n fontSize: '.3000rem',\r\n fontFamily: \"DINNextLTPro-Regular\",\r\n textAlign: 'right'\r\n }\r\n // (controlData.powerTypeGas && controlData.viewTypeMap) && \r\n \r\n return (\r\n \r\n \r\n
\r\n
{locals.DailyUpdate}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default DailyUpdate;\r\n\r\n\r\n\r\n\r\n\r\n","export default __webpack_public_path__ + \"static/media/EnerginetLogo.e2f808fb.png\";","import React from 'react';\r\nimport logo from '../../images/EnerginetLogo.png';\r\nimport { portalUrl } from '../../components/Utility';\r\n\r\nexport interface IEnerginetLogoProps {\r\n posx:string;\r\n posy:string\r\n}\r\n\r\nclass EnerginetLogo extends React.Component { \r\n render() { \r\n var logoUrl:string = portalUrl() + logo;\r\n return ( \r\n \r\n
\r\n Energinet logo\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default EnerginetLogo;","import React from 'react';\r\nexport interface PowerLabelProps {\r\n label:string;\r\n valueLabel:string;\r\n flow:string;\r\n xpos:string;\r\n ypos:string\r\n}\r\n\r\n\r\nclass ExternalPowerLabel extends React.Component { \r\n render() { \r\n return ( \r\n
  • \r\n {this.props.label}\r\n {this.props.valueLabel}{this.props.flow} MW\r\n
  • \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ExternalPowerLabel;\r\n\r\n// display: inline-block; \r\n// font-size: .75rem;\r\n// line-height: 1.3;\r\n// position: absolute;\r\n// padding: 10px 12px 0 12px;\r\n// transition: opacity 400ms ease-in-out;\r\n// text-transform: uppercase;\r\n// color: #02525e;\r\n// border: solid 2px rgba(255,255,255,0.9);\r\n// background-color: rgba(230,230,230,0.9); \r\n\r\n","import { LabelBase } from '@fluentui/react';\r\nimport React from 'react';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nimport { IPowerBoxProps } from '../PowerBox/PowerBox';\r\nimport { formatAbsNumber, GetLanguage } from '../Utility';\r\nimport ExternalPowerLabel from './ExternalPowerLabel';\r\nimport './ExternalPowerLabel.css';\r\n\r\nexport interface IPowerLabelsState {\r\n data: any[]; \r\n}\r\n\r\nconst locals:IStrings = strings(GetLanguage());\r\n\r\nclass ExternalPowerLabels extends React.Component { \r\n constructor(props: IPowerBoxProps,) {\r\n super(props); \r\n this.state = { data : []};\r\n } \r\n\r\n componentDidMount(){\r\n if(this.props && this.props.data){\r\n this.updateLabels(); \r\n }\r\n }\r\n\r\n componentDidUpdate(prevprops:IPowerBoxProps) { \r\n if(this.props && this.props.data && prevprops.data !== this.props.data){\r\n this.updateLabels(); \r\n } \r\n }\r\n\r\n private updateLabels() {\r\n let dataArray:any[]=[];\r\n let vLabel:string;\r\n \r\n let data = this.props.data;\r\n let value = data[\"Exchange_DK1_NO\"]; \r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.JutlandNorway, value:formatAbsNumber(value), xpos:'55', ypos:'66',valueLabel:vLabel }); // 'JYLLAND - NORGE'\r\n \r\n value = data[\"Exchange_DK1_SE\"];\r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.JutlandSweden, value:formatAbsNumber(value), xpos:'186', ypos:'68',valueLabel:vLabel}); // 'JYLLAND - SVERIGE'\r\n\r\n value = data[\"Exchange_DK1_GB\"]; \r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.VikingLink, value:formatAbsNumber(value), xpos:'20', ypos:'185',valueLabel:vLabel});//'Jylland - England'\r\n \r\n value = data[\"Exchange_DK1_NL\"];\r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.JutlandNetherlands, value:formatAbsNumber(value), xpos:'35', ypos:'210',valueLabel:vLabel}); // 'JYLLAND - HOLLAND'\r\n \r\n value = data[\"Exchange_DK1_DE\"]; \r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.JutlandGermany, value:formatAbsNumber(value), xpos:'100', ypos:'260',valueLabel:vLabel}); //'JYLLAND - TYSKLAND'\r\n \r\n value = data[\"Exchange_DK1_DK2\"]; \r\n value<0?vLabel=\"-> \":vLabel=\"<-\"; \r\n dataArray.push({label:locals.TheGreatBelt, value:formatAbsNumber(value), xpos:'170', ypos:'210',valueLabel:vLabel}); // 'STOREBÆLT'\r\n \r\n value = data[\"Exchange_DK2_SE\"]; \r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.ZealandSweden, value:formatAbsNumber(value), xpos:'280', ypos:'150',valueLabel:vLabel}); // 'SJÆLLAND - SVERIGE'\r\n \r\n value = data[\"Exchange_DK2_DE\"]; \r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.ZealandGermany, value:formatAbsNumber(value), xpos:'250', ypos:'230',valueLabel:vLabel}); // 'SJÆLLAND - TYSKLAND'\r\n \r\n value = data[\"Exchange_Bornholm_SE\"]; \r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.BornholmSweden, value:formatAbsNumber(value), xpos:'290', ypos:'200',valueLabel:vLabel}); //'BORNHOLM - SVERIGE' \r\n \r\n this.setState({\r\n data: dataArray\r\n }); \r\n }\r\n \r\n\r\n render() {\r\n let key:number = 1;\r\n return ( \r\n
    \r\n
    \r\n

    {locals.EnergyExchange}

    \r\n
      \r\n {this.state && this.state.data.map((itm) => {\r\n return\r\n })} \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n }\r\n\r\n // private formatNumber(value:number) {\r\n // let num:number = Math.round(value);\r\n // num = Math.abs(num);\r\n // return num.toLocaleString();\r\n // }\r\n}\r\n\r\nexport default ExternalPowerLabels; \r\n\r\n","import React from 'react';\r\nimport { formatAbsNumber, formatNumber, formatNumberReverse, GetLanguage } from '../Utility';\r\nimport './GasBox.css';\r\n\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nconst locals:IStrings = strings(GetLanguage());\r\n\r\nexport interface IGasBoxProps {\r\n data?: any;\r\n}\r\n\r\nexport interface IGasBoxState { \r\n data?: any;\r\n //{\r\n // Biogas_Flow:number;\r\n // CO2Emission:number;\r\n // Dragoer_Flow:number;\r\n // Dragoer_GCV:number;\r\n // Ellund_Flow:number;\r\n // ExitZone_Flow:number;\r\n // LTLager_Flow:number;\r\n // Nybro_Flow:number;\r\n // SLLager_Flow:number;\r\n // SLLager_GCV:number;\r\n // TYRA_Flow:number; \r\n //}\r\n}\r\n\r\nclass GasBox extends React.Component {\r\n constructor(props: IGasBoxProps) {\r\n super(props); \r\n this.state = { data : []};\r\n } \r\n\r\n // componentDidMount() { \r\n // this.setState({\r\n // data: this.props.data\r\n // }); \r\n // }\r\n\r\n componentDidUpdate(prevprops:IGasBoxProps) { \r\n if(this.props && this.props.data && prevprops.data !== this.props.data)\r\n {\r\n //console.log(this.props.data);\r\n\r\n \r\n \r\n this.setState({ \r\n data : this.props.data\r\n }); \r\n }\r\n }\r\n\r\n \r\n render() { \r\n let lilleTorupLabel=locals.LilleTorupGasStorageShort;\r\n if(this.state.data && this.state.data.LTLager_Flow !== 0) \r\n this.state.data.LTLager_Flow>0? lilleTorupLabel= locals.LilleTorupGasStorageShort +\" \" + locals.StorageProduction: lilleTorupLabel= locals.LilleTorupGasStorageShort +\" \" + locals.StorageInjection;\r\n else\r\n lilleTorupLabel= locals.LilleTorupGasStorageShort;\r\n\r\n let stenLilleLabel=locals.StenlilleGasStorageShort;\r\n if(this.state.data && this.state.data.SLLager_Flow !== 0) \r\n this.state.data.SLLager_Flow>0?stenLilleLabel= locals.StenlilleGasStorageShort +\" \" + locals.StorageProduction:stenLilleLabel= locals.StenlilleGasStorageShort +\" \" + locals.StorageInjection;\r\n else\r\n stenLilleLabel= locals.StenlilleGasStorageShort;\r\n \r\n let FromTheNorthSeaValue = this.state.data?.GasFlow?.KWhFromNorthSea;\r\n if(FromTheNorthSeaValue < 0)\r\n FromTheNorthSeaValue=0\r\n \r\n \r\n let KWhToPoland = this.state.data?.GasFlow?.KWhToPoland; \r\n if(KWhToPoland !== 0)\r\n KWhToPoland = formatNumberReverse(KWhToPoland);\r\n\r\n\r\n return ( \r\n
    \r\n
    \r\n

    {locals.TheGasNetRightNow}

    \r\n {this.state?.data && \r\n
      \r\n
    • {locals.DailyGasFromBiomethane}{formatNumber(this.state.data?.KWhFromBiogas)} kWh
    • \r\n
    • {locals.DailyGasFromNorway}{formatNumber(this.state.data?.KWhFromNorthSea)} kWh
    • \r\n
    • {locals.DailyGasFromNorthSea}{formatNumber(this.state.data?.kWhFromTyra)} kWh
    • \r\n
    • {this.state.data?.KWhToOrFromGermany>0?locals.DailyGasFromGermany:locals.DailyGasToGermany}{formatAbsNumber(this.state.data?.KWhToOrFromGermany)} kWh
    • \r\n
    • {this.state.data?.KWhToPoland>0?locals.DailyGasFromPoland:locals.DailyGasToPoland}{formatAbsNumber(this.state.data?.KWhToPoland)} kWh
    • \r\n
    • {locals.DailyGasToSweden}{formatAbsNumber(this.state.data?.KWhToSweden)} kWh
    • \r\n
    • {this.state.data?.KWhToOrFromStorage>0?locals.DailyGasFromStorage:locals.DailyGasToStorage}{formatAbsNumber(this.state.data?.KWhToOrFromStorage)} kWh
    • \r\n
    • {locals.DailyGasConsumptionInDenmark}{formatAbsNumber(this.state.data?.KWhToDenmark)} kWh
    • \r\n
    \r\n }\r\n
    \r\n
    \r\n );\r\n } \r\n}\r\n \r\nexport default GasBox;","import React from 'react';\r\nimport './GasIconBox.css';\r\nimport { GetLanguage } from '../Utility';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nconst locals:IStrings = strings(GetLanguage());\r\n \r\nclass PowerIconBox extends React.Component<{}, {}> {\r\n \r\n render() { \r\n return ( \r\n
    \r\n
    \r\n

    {locals.SymbolDescription }

    \r\n
      \r\n
    • {locals.GasStorage }
    • \r\n
    • {locals.PointOfTransit }
    • \r\n
    • {locals.Mrstation }
    • \r\n
    • {locals.Measurements }
    • \r\n {/*
    • BIOGASANLÆG
    • */}\r\n
    • {locals.GasPipe }
    • \r\n
    • {locals.GasPipeOwnedByOthers }
    • \r\n
    • {locals.BiomethaneConnection }
    • \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n \r\nexport default PowerIconBox;","import React from 'react';\r\nimport { formatAbsNumber } from '../Utility';\r\nexport interface IGasLabelProps {\r\n label: string;\r\n directionLabel: string;\r\n flow: number;\r\n ekstraLabel: string;\r\n ekstraLabelValue: string;\r\n xpos: string;\r\n ypos: string\r\n}\r\n\r\nexport interface IGasLabelState {\r\n fontSize: string;\r\n}\r\n\r\n//const fontSize:string = '.2300rem';\r\n\r\nclass GasLabel extends React.Component {\r\n constructor(props: IGasLabelProps,) {\r\n super(props);\r\n this.state = { fontSize: '.2300rem' };\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener('resize', this.updateDimensions);\r\n }\r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.updateDimensions);\r\n }\r\n\r\n private updateDimensions = () => {\r\n if (window.innerWidth < 1024 && window.innerWidth > 640)\r\n this.setState({ fontSize: (0.2300 * (1 + ((1024 - window.innerWidth) / 500)) + 'rem') });\r\n else\r\n this.setState({ fontSize: '0.2300rem' });\r\n };\r\n\r\n render() {\r\n let style: React.CSSProperties | object = {\r\n display: 'inline-block',\r\n padding: '4px',\r\n // textTransform: 'uppercase',\r\n color: '#02525e',\r\n border: 'solid 1px rgba(255,255,255,0.9)',\r\n backgroundColor: 'rgba(230,230,230,0.9)',\r\n }\r\n\r\n let titleStyle: React.CSSProperties | object = {\r\n fontSize: this.state.fontSize,\r\n fontFamily: \"DINNextLTPro-Medium\",\r\n }\r\n\r\n let ekstratitleStyle: React.CSSProperties | object = {\r\n fontSize: this.state.fontSize,\r\n fontFamily: \"DINNextLTPro-Medium\",\r\n paddingTop: \"3px\"\r\n }\r\n\r\n let valueStyle: React.CSSProperties | object = {\r\n fontSize: this.state.fontSize,\r\n fontFamily: \"DINNextLTPro-Regular\",\r\n paddingTop: \"0px\",\r\n marginTop: \"0px\",\r\n textTransform: 'none',\r\n }\r\n \r\n return (\r\n \r\n
    \r\n {this.props.label !== undefined &&\r\n
    {this.props.label}
    \r\n }\r\n {this.props.flow !== undefined &&\r\n
    { formatAbsNumber(this.props.flow)} kWh
    \r\n }\r\n {this.props.ekstraLabel !== undefined &&\r\n
    {this.props.ekstraLabel}
    }\r\n {this.props.ekstraLabelValue !== undefined &&\r\n
    {this.props.ekstraLabelValue} kWh/m3
    \r\n }\r\n\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default GasLabel;\r\n\r\n// display: inline-block; \r\n// font-size: .75rem;\r\n// line-height: 1.3;\r\n// position: absolute;\r\n// padding: 10px 12px 0 12px;\r\n// transition: opacity 400ms ease-in-out;\r\n// text-transform: uppercase;\r\n// color: #02525e;\r\n// border: solid 2px rgba(255,255,255,0.9);\r\n// background-color: rgba(230,230,230,0.9); \r\n\r\n","import React from 'react';\r\nimport { IPowerBoxProps } from '../PowerBox/PowerBox';\r\nimport GasLabel from './GasLabel';\r\nimport { GetLanguage } from '../Utility';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nconst locals:IStrings = strings(GetLanguage());\r\n\r\nexport interface IGasLabelsState {\r\n data: any[]; \r\n}\r\n\r\nclass GasLabels extends React.Component { \r\n constructor(props: IPowerBoxProps,) {\r\n super(props); \r\n this.state = { data : []};\r\n } \r\n\r\n componentDidUpdate(prevprops:IPowerBoxProps) { \r\n if(this.props && this.props.data && prevprops.data !== this.props.data){\r\n this.updateLabels(); \r\n } \r\n }\r\n \r\n \r\n componentDidMount() {\r\n if(this.props && this.props.data){\r\n this.updateLabels(); \r\n } \r\n }\r\n \r\n private updateLabels(){\r\n let dataArray:any[]=[]; \r\n let data = this.props.data;\r\n\r\n // dataArray.push({label: locals.DailyGasFromBiomethane, value:formatAbsNumber(data.KWhFromBiogas) + ' kWh', xpos:'155', ypos:'165'}); \r\n // dataArray.push({label:locals.DailyGasConsumptionInDenmark, value:formatAbsNumber(data.KWhToDenmark)+ ' kWh', xpos:'155', ypos:'135'}); \r\n dataArray.push({label: locals.DailyGasFromNorway, value:data.KWhFromNorthSea, xpos:'45', ypos:'145'}); \r\n // dataArray.push({label: data.KWhToOrFromStorage>0?locals.DailyGasToStorage:locals.DailyGasFromStorage , value:formatAbsNumber(data.KWhToOrFromStorage) + ' kWh', xpos:'170', ypos:'75'}); \r\n dataArray.push({label: data.KWhToOrFromGermany>0?locals.DailyGasFromGermany:locals.DailyGasToGermany, value:data.KWhToOrFromGermany , xpos:'115', ypos:'250'}); \r\n dataArray.push({label: locals.DailyGasToSweden, value:data.KWhToSweden, xpos:'280', ypos:'165'}); \r\n dataArray.push({label: locals.DailyGasFromNorthSea, value:data.kWhFromTyra, xpos:'45', ypos:'175'}); \r\n dataArray.push({label: data.KWhToPoland>0?locals.DailyGasFromPoland:locals.DailyGasToPoland, value:data.KWhToPoland, xpos:'280', ypos:'215'});\r\n \r\n this.setState({\r\n data: dataArray\r\n }); \r\n }\r\n\r\n render() {\r\n let key:number = 1;\r\n return ( \r\n this.state && this.state.data.map((itm) => {\r\n return \r\n })\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default GasLabels; \r\n\r\n","import React from 'react';\r\nimport './GasPipes.css';\r\n\r\nexport interface IGasPipesState { \r\n KWhToPoland: any;\r\n convertToGasStorage: boolean;\r\n}\r\n\r\nexport interface IGasPipesProps { \r\n KWhToPoland: any;\r\n convertToGasStorage: boolean;\r\n}\r\n\r\nclass BalticPipe extends React.Component {\r\n constructor(props: IGasPipesProps) {\r\n super(props);\r\n this.state = {convertToGasStorage: this.props.convertToGasStorage, KWhToPoland: this.props.KWhToPoland }\r\n }\r\n\r\n componentDidMount() {\r\n this.setState(this.props);\r\n }\r\n\r\n componentDidUpdate(prevprops: IGasPipesProps) {\r\n if (this.props && this.props && prevprops !== this.props) { \r\n this.setState({\r\n KWhToPoland: this.props.KWhToPoland \r\n }); \r\n }\r\n }\r\n\r\n private getAnimationClass(value: string): string {\r\n let color = 'gasColor';\r\n if (this.state?.convertToGasStorage) \r\n color = 'gasStorageColor';\r\n\r\n let animationClass: string = color + ' gasjunction-10 gasJunction-reverse-noAnimation';\r\n if (parseInt(value) > 0)\r\n animationClass = color + ' gasjunction-10 gasJunction-reverse-animation'\r\n else if (parseInt(value) < 0)\r\n animationClass = color + ' gasjunction-10 gasJunction-animation'\r\n return animationClass;\r\n } \r\n \r\n\r\n render() {\r\n // var directionBalticPipe: string = \"gasjunction-10 gasJunction-animation\";\r\n // if (this.state.KWhToPoland > 0)\r\n // directionBalticPipe = \"gasjunction-10 gasJunction-reverse-animation\";\r\n let directionBalticPipeClass: string = this.getAnimationClass(this.state.KWhToPoland);\r\n return (\r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default BalticPipe;","import React from 'react';\r\nimport BalticPipe from './BalticPipe';\r\nimport './GasPipes.css';\r\n\r\nexport interface IGasPipesState {\r\n convertToGasStorage: boolean;\r\n gasData: any;\r\n gasStorageData: any;\r\n}\r\n\r\nexport interface IGasPipesProps {\r\n convertToGasStorage: boolean;\r\n gasData: any;\r\n gasStorageData: any;\r\n}\r\n\r\nclass GasPipes extends React.Component {\r\n constructor(props: IGasPipesProps) {\r\n super(props);\r\n this.state = { convertToGasStorage: this.props.convertToGasStorage, gasData: this.props.gasData, gasStorageData: this.props.gasStorageData };\r\n }\r\n\r\n componentDidUpdate(prevprops: IGasPipesProps) {\r\n if (this.props && this.props && prevprops !== this.props) {\r\n this.setState({ convertToGasStorage: this.props.convertToGasStorage, gasData: this.props.gasData, gasStorageData: this.props.gasStorageData });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({ convertToGasStorage: this.props.convertToGasStorage, gasData: this.props.gasData, gasStorageData: this.props.gasStorageData });\r\n }\r\n\r\n private getAnimationClass(value: string, reverse?:boolean): string {\r\n\r\n let color = 'gasColor';\r\n if (this.state?.convertToGasStorage) \r\n color = 'gasStorageColor';\r\n\r\n let animationClass: string = color + ' gasjunction-10 gasJunction-noAnimation';\r\n let intValue = parseInt(value);\r\n if(reverse)\r\n intValue=intValue*-1;\r\n\r\n if (intValue > 0)\r\n animationClass = color + ' gasjunction-10 gasJunction-reverse-animation'\r\n else if (intValue < 0)\r\n animationClass = color + ' gasjunction-10 gasJunction-animation'\r\n return animationClass;\r\n }\r\n \r\n render() {\r\n var directionNorway: string = \"gasjunction-10 gasJunction-reverse-animation\";\r\n var directionNorthSea: string = \"gasjunction-10 gasJunction-reverse-animation\";\r\n var directionGermany: string = \"gasjunction-10 gasJunction-animation\";\r\n var directionSweeden: string = \"gasjunction-10 gasJunction-reverse-animation\"; \r\n if (!this.state?.convertToGasStorage) {\r\n directionNorway = this.getAnimationClass(this.state?.gasData?.KWhFromNorthSea);\r\n directionNorthSea = this.getAnimationClass(this.state?.gasData?.kWhFromTyra);\r\n directionGermany = this.getAnimationClass(this.state?.gasData?.KWhToOrFromGermany);\r\n directionSweeden = this.getAnimationClass(this.state?.gasData?.KWhToSweden, true); \r\n } else { \r\n //Danish Import\r\n directionNorway = this.getAnimationClass(this.state?.gasStorageData?.norwegianImport);\r\n //Norwegian Import\r\n directionNorthSea = this.getAnimationClass(this.state?.gasStorageData?.danishImport);\r\n //German Import\r\n directionGermany = this.getAnimationClass(this.state?.gasStorageData?.importEllund);\r\n //Sweeden Import\r\n directionSweeden = this.getAnimationClass(this.state?.gasStorageData?.exportSweden, true); \r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* Norwegian import */}\r\n \r\n \r\n {/* Danish import */}\r\n \r\n {/* ToGermany */}\r\n {/* */}\r\n \r\n {/* ToSweeden */}\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n {!this.state?.convertToGasStorage &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default GasPipes;","export default \"data:image/gif;base64,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\"","import React, { Fragment } from 'react';\r\nimport gasStorageAni from '../../images/GasStorageAnimation.gif';\r\nimport { portalUrl } from '../../components/Utility';\r\nimport { relative } from 'path';\r\n\r\nexport interface IGasStorageState {\r\n convertToGasStorage: boolean;\r\n}\r\n\r\nexport interface IGasStorageProps {\r\n convertToGasStorage: boolean;\r\n}\r\n\r\nclass GasStorage extends React.Component {\r\n\r\n componentDidMount() {\r\n this.setState(this.props);\r\n }\r\n render() { \r\n let titleStyleTorup: React.CSSProperties | object = {\r\n fontSize: '0.4000rem',\r\n fontFamily: \"BrandonGrotesqueWeb-Regular\",\r\n color: '#FFF',\r\n display:'inline',\r\n position: 'relative',\r\n left:'-25px',\r\n top:'10px'\r\n }\r\n\r\n let titleStyleStenlille: React.CSSProperties | object = {\r\n fontSize: '0.4000rem',\r\n fontFamily: \"BrandonGrotesqueWeb-Regular\",\r\n color: '#FFF',\r\n display:'inline',\r\n position: 'relative',\r\n left:'-25px',\r\n top:'10px'\r\n }\r\n\r\n return (\r\n \r\n {!this.state?.convertToGasStorage &&\r\n \r\n \r\n \r\n \r\n }\r\n\r\n {this.state?.convertToGasStorage &&\r\n \r\n \r\n
    \r\n Gasstorage\r\n
    LILLE TORUP
    \r\n
    \r\n
    \r\n \r\n
    \r\n Gasstorage\r\n
    STENLILLE
    \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default GasStorage;","import React from 'react';\r\nimport { formatAbsNumberMW } from '../Utility';\r\nexport interface IGasStorageLabelProps {\r\n label: string;\r\n flow: number;\r\n xpos: string;\r\n ypos: string\r\n}\r\n\r\nexport interface IGasStorageLabelState {\r\n //fontSize: string; fontSize: '.2300rem', \r\n label: string;\r\n flow: number;\r\n}\r\n\r\nconst fontSize:string = '.3300rem';\r\n\r\nclass GasStorageLabel extends React.Component {\r\n constructor(props: IGasStorageLabelProps,) {\r\n super(props);\r\n this.state = {\r\n label: props.label,\r\n flow: props.flow\r\n };\r\n }\r\n\r\n // componentDidMount() {\r\n // window.addEventListener('resize', this.updateDimensions);\r\n // }\r\n // componentWillUnmount() {\r\n // window.removeEventListener('resize', this.updateDimensions);\r\n // }\r\n\r\n componentDidUpdate(prevprops: IGasStorageLabelProps) {\r\n if (this.props && this.props && prevprops !== this.props) {\r\n this.setState({\r\n label: this.props.label,\r\n flow: this.props.flow\r\n });\r\n }\r\n }\r\n\r\n // private updateDimensions = () => {\r\n // if (window.innerWidth < 1024 && window.innerWidth > 640)\r\n // this.setState({ fontSize: (0.2300 * (1 + ((1024 - window.innerWidth) / 500)) + 'rem') });\r\n // else\r\n // this.setState({ fontSize: '0.2300rem' });\r\n // };\r\n\r\n render() {\r\n let style: React.CSSProperties | object = {\r\n display: 'inline-block',\r\n padding: '4px',\r\n color: '#415171'\r\n }\r\n\r\n let titleStyle: React.CSSProperties | object = {\r\n fontSize: fontSize,\r\n fontFamily: \"BrandonGrotesqueWeb-Bold\",\r\n }\r\n\r\n let valueStyle: React.CSSProperties | object = {\r\n fontSize: fontSize,\r\n fontFamily: \"BrandonGrotesqueWeb-Regular\",\r\n paddingTop: \"0px\",\r\n marginTop: \"0px\",\r\n textTransform: 'none',\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    {this.state.label}
    \r\n
    {formatAbsNumberMW(this.state.flow)} MW
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default GasStorageLabel;\r\n","import React from 'react';\r\nimport { IPowerBoxProps } from '../PowerBox/PowerBox';\r\nimport { GetLanguage, formatAbsNumberMW } from '../Utility';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nimport GasStorageLabel from './GasStorageLabel';\r\nconst locals: IStrings = strings(GetLanguage());\r\n\r\nexport interface IGasStorageLabelsState {\r\n data: any[];\r\n}\r\n\r\n\r\n\r\nclass GasStorageLabels extends React.Component {\r\n constructor(props: IPowerBoxProps,) {\r\n super(props);\r\n this.state = { data: [] };\r\n }\r\n\r\n componentDidUpdate(prevprops: IPowerBoxProps) {\r\n if (this.props && this.props.data && prevprops.data !== this.props.data) {\r\n this.updateLabels();\r\n }\r\n }\r\n\r\n\r\n componentDidMount() {\r\n if (this.props && this.props.data) {\r\n this.updateLabels();\r\n }\r\n }\r\n\r\n private updateLabels() {\r\n let dataArray: any[] = [];\r\n let vLabel: string;\r\n let exportString = locals.Export;\r\n let importString = locals.Import;\r\n let data = this.props.data;\r\n \r\n //exportSweden \r\n dataArray.push({ label: locals.Export, value: data.exportSweden, xpos: '290', ypos: '150' });\r\n\r\n //norwegianImport\r\n dataArray.push({ label: 'NORWEGIAN ' + locals.Import, value: data.norwegianImport, xpos: '20', ypos: '145' });\r\n\r\n //danishImport \r\n if (data.danishImport < 0)\r\n data.danishImport = 0;\r\n dataArray.push({ label: 'DANISH ' + locals.Import, value: data.danishImport, xpos: '34', ypos: '177' });\r\n \r\n //importFaxe\r\n data.importFaxe > 0 ? vLabel = importString : vLabel = exportString;\r\n dataArray.push({ label: vLabel, value: data.importFaxe, xpos: '280', ypos: '225' });\r\n \r\n //importEllund \r\n data.importEllund > 0 ? vLabel = importString : vLabel = exportString;\r\n dataArray.push({ label: vLabel, value: data.importEllund, xpos: '104', ypos: '250' });\r\n\r\n this.setState({\r\n data: dataArray\r\n });\r\n }\r\n\r\n render() {\r\n let key: number = 1;\r\n return (\r\n this.state && this.state.data.map((itm) => {\r\n return \r\n })\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default GasStorageLabels;\r\n\r\n","import React from 'react';\r\nimport { formatAbsNumberMW, GetLanguage } from '../Utility';\r\nimport './GasStorageLegend.css';\r\nimport gasStorageAni from '../../images/GasStorageAnimation.gif';\r\n\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nconst locals: IStrings = strings(GetLanguage());\r\n\r\nexport interface IGasStorageLegendProps {\r\n data?: any;\r\n}\r\n\r\nexport interface IGasStorageLegendState {\r\n data?: any;\r\n}\r\n\r\nclass GasStorageLegend extends React.Component {\r\n constructor(props: IGasStorageLegendProps) {\r\n super(props);\r\n this.state = { data: [] };\r\n }\r\n\r\n componentDidUpdate(prevprops: IGasStorageLegendProps) {\r\n if (this.props && this.props.data && prevprops.data !== this.props.data) { \r\n this.setState({\r\n data: this.props.data\r\n });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if(this.props && this.props.data){\r\n this.setState({\r\n data: this.props.data\r\n }); \r\n } \r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n Gasstorage animation\r\n
    \r\n
    \r\n
    {locals.HourlyData}
    \r\n
    \r\n
    \r\n
    {locals.GasStorage} { (this.state?.data?.gsdStorage>=0)?locals.StorageWithdrawel:locals.StorageInjection}
    \r\n {/*
    {locals.StorageInjection}
    */}\r\n
    {formatAbsNumberMW(this.state?.data?.gsdStorage)} MW
    \r\n
    \r\n \r\n
    \r\n
    {locals.GasstorageConsumptionInDK}
    \r\n
    {formatAbsNumberMW(this.state?.data?.exitFromTransmission)} MW
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\nexport default GasStorageLegend;","import React from 'react';\r\nimport './HistoryDataBoxes.css';\r\nimport { formatRoundNumber, GetLanguage } from '../../Utility';\r\nimport { IStrings, strings } from '../../../loc/mystrings';\r\nconst locals:IStrings = strings(GetLanguage());\r\n\r\nexport interface IHistoryDataBoxesProps {\r\n dataIndex:number; \r\n data:any; \r\n additionalData:any;\r\n}\r\n\r\nexport interface IHistoryDataBoxesState {\r\n dataIndex?:number;\r\n}\r\n\r\nclass HistoryDataBoxes extends React.Component {\r\n constructor(props: IHistoryDataBoxesProps) {\r\n super(props); \r\n this.state = { dataIndex : this.props.dataIndex}; \r\n } \r\n\r\n componentDidUpdate(prevprops:IHistoryDataBoxesProps) { \r\n if(this.props && prevprops.dataIndex !== this.props.dataIndex) { \r\n this.setState({ \r\n dataIndex : this.props.dataIndex\r\n }); \r\n }\r\n }\r\n\r\n \r\n\r\n // private formatNumber(value:number) {\r\n // let num:number = Math.round(value);\r\n // return num.toLocaleString();\r\n // }\r\n \r\n render() { \r\n // let ddata = -1; \r\n \r\n // console.log(this.state.Tooltip.dataset);\r\n\r\n // if(this.state.Tooltip && this.state.Tooltip.dataset) {\r\n // ddata = this.state.Tooltip.dataset.data[this.state.Tooltip.dataIndex]; \r\n // }\r\n // console.log('ddata');\r\n // console.log(this.state.Tooltip.data);\r\n let dataIndex=0;\r\n\r\n if(this.state.dataIndex)\r\n dataIndex = this.state.dataIndex;\r\n \r\n\r\n return ( \r\n \r\n
    \r\n
    \r\n
    {locals.PowerPlantGt100Mw}
    \r\n
    {formatRoundNumber(this.props?.data?.datasets[0].data[dataIndex])}MW
    \r\n
    \r\n
    \r\n
    {locals.PowerPlantsLt100}
    \r\n
    {formatRoundNumber(this.props?.data?.datasets[1].data[dataIndex])}MW
    \r\n
    \r\n
    \r\n
    {locals.WindTurbines}
    \r\n
    {formatRoundNumber(this.props?.data?.datasets[2].data[dataIndex])}MW
    \r\n
    \r\n
    \r\n
    {locals.SolarCells}
    \r\n
    {formatRoundNumber(this.props?.data?.datasets[3].data[dataIndex])}MW
    \r\n
    \r\n
    \r\n {this.props.additionalData && \r\n
    \r\n
    \r\n
    {locals.NetExchangeImport}
    \r\n
    {formatRoundNumber(this.props?.additionalData[0][dataIndex])}MW
    \r\n
    \r\n
    \r\n
    {locals.ElectricityConsumption}
    \r\n
    {formatRoundNumber(this.props?.additionalData[1][dataIndex])}MW
    \r\n
    \r\n
    \r\n
    {locals.Co2Emissions}
    \r\n
    {formatRoundNumber(this.props?.additionalData[2][dataIndex])}G/KWH
    \r\n
    \r\n
    \r\n
    {locals.TotalProduction}
    \r\n
    {formatRoundNumber(this.props?.additionalData[3][dataIndex])}MW
    \r\n
    \r\n
    }\r\n
    \r\n \r\n );\r\n } \r\n}\r\n \r\nexport default HistoryDataBoxes;","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAASCAMAAABVab95AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA/UExURWa1sE6qpACEfDGclT2hm1WtqDmfmVywqyqYkV6xrCSVjgmIgQSGfgeHgAqJgQ+LhBONhgOFfhSOhmGzrgAAACSKKOoAAAAVdFJOU///////////////////////////ACvZfeoAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABUSURBVBhXPc1JDsAwCANA4nRv0pX/v7VOgZgDI2EJUY9wLAnZmYDBOAKTFajc2qozsHCRK7C1m3SpdKnsKCYWKo4gfQbD/4uKK2g26k076Seo5f0AGz4LImsnDWQAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAASCAMAAABVab95AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA/UExURWGzrgSGfhSOhgCEfAOFfhONhgeHgA+LhAqJgQmIgSSVjl6xrCqYkVywqzGclVWtqDmfmT2hm06qpGa1sAAAAOWYw34AAAAVdFJOU///////////////////////////ACvZfeoAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABRSURBVBhXNcpHEsAwDAJAOaQXO4X/vzWyChd2BkQKIzJgTHJKC9VzMt3JxWx0O7mqgyzYgjtwOLv8YDKewKWlrEDrm/AOUR7gNVFqSg+fg/wBL74LEKZr0+8AAAAASUVORK5CYII=\"","import React, { Fragment } from 'react';\r\nimport './HistoricalData.css';\r\nimport { Line } from 'react-chartjs-2';\r\nimport HistoryDataBoxes from './HistoryDataBoxes/HistoryDataBoxes';\r\nimport { DatePicker, DayOfWeek, IDatePickerStrings, Spinner, SpinnerSize } from '@fluentui/react';\r\nimport { EDSUrl, GetLanguage } from '../Utility';\r\nimport { timeStamp } from 'console';\r\nimport backArrow from '../../images/backArrow.png';\r\nimport Arrow from '../../images/forwardArrow.png';\r\nimport { portalUrl } from '../../components/Utility';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\n\r\n\r\nexport interface IHistoricalDataProps {\r\n // callback?: any\r\n}\r\n\r\nexport interface IHistoricalDataState {\r\n dataIndex: number;\r\n data?: any;\r\n additionalData?: any;\r\n label?: string;\r\n startDate?: any;\r\n fromDate?: any;\r\n toDate?: any;\r\n rawData?: any;\r\n loading?: boolean;\r\n}\r\n\r\n\r\nconst locals: IStrings = strings(GetLanguage());\r\n\r\n\r\n\r\nclass HistoricalData extends React.Component {\r\n constructor(props: IHistoricalDataProps) {\r\n super(props);\r\n //this.lineRef = React.createRef(); \r\n\r\n let fromDate = new Date(Date.now());\r\n fromDate.setDate(fromDate.getDate() - 1);\r\n let toDate = new Date(Date.now());\r\n toDate.setDate(fromDate.getDate() + 1);\r\n this.state = {\r\n dataIndex: -1,\r\n startDate: new Date(Date.now()),\r\n fromDate: fromDate,\r\n toDate: toDate,\r\n loading: true\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchPowerData(this.state.startDate).then(() => {\r\n this.GetDataFromDate(this.state.startDate);\r\n });\r\n }\r\n\r\n private data = {\r\n labels: [\"0:00\", \"1:00\", \"2:00\", \"3:00\", \"4:00\", \"5:00\", \"6:00\", \"7:00\", \"8:00\", \"9:00\", \"10:00\", \"11:00\", \"12:00\", \"13:00\", \"14:00\", \"15:00\", \"16:00\", \"17:00\", \"18:00\", \"19:00\", \"20:00\", \"21:00\", \"22:00\", \"23:00\"],\r\n datasets: [\r\n {\r\n label: 'Større værker',\r\n index: 0,\r\n data: [0, 0, 0, 0],\r\n fill: true,\r\n backgroundColor: 'rgba(10, 81, 93, 0.7)',\r\n stacked: true,\r\n cubicInterpolationMode: 'monotone',\r\n radius: 0,\r\n },\r\n {\r\n label: 'Mindre anlæg',\r\n index: 1,\r\n data: [0, 0, 0, 0],\r\n fill: true,\r\n backgroundColor: 'rgba(0, 139, 139, 0.7)',\r\n stacked: true,\r\n cubicInterpolationMode: 'monotone',\r\n radius: 0,\r\n\r\n },\r\n {\r\n label: 'Vindmøller',\r\n index: 2,\r\n data: [0, 0, 0, 0],\r\n fill: true,\r\n backgroundColor: 'rgba(16, 174, 140, 0.7)',\r\n stacked: true,\r\n cubicInterpolationMode: 'monotone',\r\n radius: 0,\r\n },\r\n {\r\n label: 'Solceller',\r\n index: 3,\r\n data: [0, 0, 0, 0],\r\n fill: true,\r\n bordercolor: 'rgba(255, 212, 36, 0.75)',\r\n backgroundColor: 'rgba(255, 212, 36, 0.7)',\r\n stacked: true,\r\n cubicInterpolationMode: 'monotone',\r\n radius: 0,\r\n },\r\n {\r\n label: 'PowerTotal',\r\n index: 4,\r\n data: [0, 0, 0, 0],\r\n bordercolor: 'grey',\r\n backgroundColor: 'grey',\r\n type: 'bar',\r\n order: 1\r\n },\r\n ],\r\n };\r\n\r\n\r\n private lineRef: any = React.createRef();\r\n\r\n private fetchPowerData = async (selectedDate: Date) => {\r\n try {\r\n let toDate = new Date(selectedDate);\r\n toDate.setDate(selectedDate.getDate() + 1);\r\n\r\n //const response = await fetch(EDSUrl() +'powerhistory');\r\n let cacheName = \"powerHistory\" + this.convertDate(selectedDate);\r\n\r\n let view = 'EDSView?cacheName=' + cacheName + '&view=powerhistory?start=' + this.convertDate(selectedDate) + '_end=' + this.convertDate(toDate) + '_offset=0_limit=30';\r\n const response = await fetch(EDSUrl() + view);\r\n const jsonStr = await response.json(); \r\n var json = JSON.parse(jsonStr);\r\n\r\n this.setState({\r\n rawData: json.records,\r\n startDate: selectedDate\r\n });\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n };\r\n\r\n private convertDate(date: Date) {\r\n //var start = new Date(Date.parse(date)); //Date.parse(\"2019-07-16\"));\r\n date.setDate(date.getDate());\r\n var output = date.getFullYear() + \"-\" + this.fixDatePart(date.getMonth() + 1) + \"-\" + this.fixDatePart(date.getDate()) + \"T00:00\"; // '2019-02-01T06:00:00'; \r\n return output;\r\n }\r\n\r\n\r\n\r\n private fixDatePart(part: number) {\r\n let partStr: string = part.toString();\r\n if (part < 10)\r\n partStr = \"0\" + part.toString();\r\n return partStr;\r\n }\r\n\r\n\r\n\r\n private GetDataFromDate(selectedDate: Date) {\r\n\r\n let ProductionGe100MW: number[] = [];\r\n let ProductionLt100MW: number[] = [];\r\n let WindMillTotal: number[] = [];\r\n let SolarPower: number[] = [];\r\n //let TimeStamp:string[] = [];\r\n\r\n let CO2Emission: number[] = [];\r\n let ExchangeSum: number[] = [];\r\n let PowerTotal: number[] = [];\r\n let TotalProduction: number[] = [];\r\n\r\n\r\n try {\r\n let selectedDateStr = selectedDate.getFullYear() + \"/\" + (selectedDate.getMonth() + 1) + \"/\" + selectedDate.getDate() + \" 00:00:00\";\r\n\r\n let selectedStartDate = new Date(Date.parse(selectedDateStr));\r\n this.state.rawData.forEach((powerdata: any) => {\r\n\r\n let TimeStamp = new Date(powerdata.TimeStampUTC);\r\n\r\n let offset = TimeStamp.getTimezoneOffset() * -1;\r\n //console.log(offset);\r\n\r\n\r\n TimeStamp.setMinutes(TimeStamp.getMinutes() + offset);\r\n //let count:number = 0;\r\n\r\n let selectedEndDate = new Date(Date.parse(selectedDateStr));\r\n selectedEndDate.setHours(TimeStamp.getHours() + 24);\r\n\r\n if (TimeStamp >= selectedStartDate && TimeStamp <= selectedEndDate) { // && count <= 24) { \r\n ProductionGe100MW.unshift(powerdata.ProductionGe100MW);\r\n ProductionLt100MW.unshift(powerdata.ProductionLt100MW);\r\n WindMillTotal.unshift(powerdata.WindMillTotal);\r\n SolarPower.unshift(powerdata.SolarPower);\r\n CO2Emission.unshift(powerdata.CO2Emission);\r\n ExchangeSum.unshift(powerdata.ExchangeSum);\r\n PowerTotal.unshift(powerdata.PowerTotal);\r\n\r\n TotalProduction.unshift(powerdata.ProductionGe100MW + powerdata.ProductionLt100MW + powerdata.WindMillTotal + powerdata.SolarPower);\r\n }\r\n });\r\n\r\n this.data.datasets[0].data = ProductionGe100MW;\r\n this.data.datasets[1].data = ProductionLt100MW;\r\n this.data.datasets[2].data = WindMillTotal;\r\n this.data.datasets[3].data = SolarPower;\r\n this.data.datasets[4].data = PowerTotal;\r\n\r\n let addData: any = [];\r\n\r\n addData[0] = ExchangeSum;\r\n addData[1] = PowerTotal;\r\n addData[2] = CO2Emission;\r\n addData[3] = TotalProduction;\r\n\r\n\r\n //this.data.labels = TimeStamp;\r\n\r\n\r\n this.setState({ data: this.data, additionalData: addData, startDate: selectedDate, loading: false }, () => {\r\n let lineChart = this.lineRef.current;\r\n if (lineChart) {\r\n lineChart.data.datasets.forEach((dataset: any) => {\r\n lineChart.data.datasets[dataset.index].data.length = 0;\r\n this.data.datasets[dataset.index].data.forEach((da: any) => {\r\n lineChart.data.datasets[dataset.index].data.push(da);\r\n })\r\n });\r\n lineChart.update();\r\n }\r\n });\r\n }\r\n catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n }\r\n\r\n // componentDidUpdate(prevprops:any, prevState:any) {\r\n // console.log('componentDidUpdate'); \r\n // } \r\n\r\n private changeDate(date: any) {\r\n //let dateStr = date.toLocaleString('da-DK', {year: 'numeric', month:'2-digit', day:'2-digit', hour: '2-digit', hour12: false, minute:'2-digit'});\r\n this.fetchPowerData(date).then(() => {\r\n this.GetDataFromDate(date);\r\n });\r\n }\r\n\r\n private back() {\r\n let newDate: Date = new Date(this.state.startDate);\r\n newDate.setDate(newDate.getDate() - 1);\r\n\r\n this.changeDate(newDate);\r\n }\r\n private forward() {\r\n let newDate: Date = new Date(this.state.startDate);\r\n newDate.setDate(newDate.getDate() + 1);\r\n\r\n this.changeDate(newDate);\r\n }\r\n render() {\r\n\r\n let options = {\r\n plugins: {\r\n interaction: {\r\n mode: 'index'\r\n },\r\n tooltip: {\r\n intersect: false,\r\n usePointStyle: false,\r\n xAlign: 'center',\r\n interaction: {\r\n mode: 'nearest'\r\n },\r\n callbacks: {\r\n label: (context: any) => {\r\n if (context.dataIndex !== this.state.dataIndex) {\r\n this.setState({ dataIndex: context.dataIndex, label: context.label })\r\n }\r\n }\r\n },\r\n enabled: false,\r\n external: (e: any) => {\r\n e.chart.options.customLine.x = e.tooltip.x + 20\r\n },\r\n },\r\n legend: {\r\n display: false,\r\n }\r\n },\r\n animation: false,\r\n responsive: true,\r\n legend: {\r\n display: false\r\n },\r\n hover: {\r\n mode: 'nearest',\r\n intersect: false,\r\n },\r\n scales: {\r\n x: {\r\n title: {\r\n display: false,\r\n text: 'Time'\r\n },\r\n },\r\n y: {\r\n stacked: true,\r\n title: {\r\n display: false,\r\n text: 'Value'\r\n },\r\n min: 0,\r\n max: 10000\r\n }\r\n },\r\n defaultFontFamily: \"'DINNextLTPro-Regular', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n customLine: {\r\n color: 'black'\r\n }\r\n };\r\n\r\n let plugins = [{\r\n afterDraw: (chart: any, easing: any) => {\r\n var ctx = chart.ctx;\r\n var chartArea = chart.chartArea;\r\n var x = chart.options.customLine.x;\r\n var center = (chartArea.bottom - chartArea.top) / 2 + chartArea.top;\r\n var size = 20;\r\n\r\n if (!isNaN(x)) {\r\n ctx.save();\r\n ctx.beginPath();\r\n ctx.strokeStyle = \"#000\";\r\n ctx.moveTo(chart.options.customLine.x, chartArea.bottom);\r\n ctx.lineTo(chart.options.customLine.x, chartArea.top);\r\n ctx.stroke();\r\n ctx.fillStyle = \"#000000\";\r\n ctx.fillRect(x - size, center - 14, size * 2, size);\r\n ctx.fillStyle = \"#ffffff\";\r\n ctx.textAlign = 'center';\r\n ctx.fillText(this.state.label, x, center);\r\n ctx.restore();\r\n\r\n }\r\n }\r\n\r\n }];\r\n\r\n let hideChart: string = \"hide\";\r\n let hideSpinner: string = \"\";\r\n if (this.state.loading === false) {\r\n hideChart = '';\r\n hideSpinner = 'hide';\r\n }\r\n\r\n let DayPickerStrings: IDatePickerStrings = {\r\n months: [\r\n 'Januar',\r\n 'Februar',\r\n 'Marts',\r\n 'April',\r\n 'Maj',\r\n 'Juni',\r\n 'Juli',\r\n 'August',\r\n 'September',\r\n 'Oktober',\r\n 'November',\r\n 'December'\r\n ],\r\n\r\n shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],\r\n\r\n days: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag'],\r\n\r\n shortDays: ['S', 'M', 'T', 'O', 'T', 'F', 'S'],\r\n\r\n goToToday: 'Hop til idag',\r\n prevMonthAriaLabel: 'Go to previous month',\r\n nextMonthAriaLabel: 'Go to next month',\r\n prevYearAriaLabel: 'Go to previous year',\r\n nextYearAriaLabel: 'Go to next year'\r\n };\r\n\r\n if (GetLanguage() === \"en-US\") {\r\n\r\n DayPickerStrings = {\r\n months: [\r\n 'January',\r\n 'February',\r\n 'March',\r\n 'April',\r\n 'May',\r\n 'June',\r\n 'July',\r\n 'August',\r\n 'September',\r\n 'October',\r\n 'November',\r\n 'December'\r\n ],\r\n\r\n shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n\r\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\r\n\r\n shortDays: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\r\n\r\n goToToday: 'Go to today',\r\n prevMonthAriaLabel: 'Go to previous month',\r\n nextMonthAriaLabel: 'Go to next month',\r\n prevYearAriaLabel: 'Go to previous year',\r\n nextYearAriaLabel: 'Go to next year'\r\n };\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    {locals.SelectDate}
    \r\n
    \r\n
    back
    \r\n { \r\n if(!date) return '';\r\n return date.getDate() +\"-\" + (date.getMonth()+1) +\"-\" + date.getFullYear() \r\n \r\n }\r\n }\r\n strings={DayPickerStrings}\r\n minDate={new Date(Date.parse(\"2018-11-01\"))}\r\n maxDate={new Date(Date.now())}\r\n firstDayOfWeek={1}\r\n value={this.state.startDate} onSelectDate={this.changeDate.bind(this)} />\r\n
    forward
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n\r\n \r\n \r\n
    \r\n\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default HistoricalData;","import React from 'react';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nimport { GetLanguage } from '../Utility';\r\nimport './LastUpdated.css';\r\nexport interface ILastUpdatedProps {\r\n date?:any;\r\n}\r\n\r\nexport interface ILastUpdatedState {\r\n date?:any;\r\n}\r\n\r\nconst locals:IStrings = strings(GetLanguage());\r\n\r\nclass LastUpdated extends React.Component { \r\n constructor(props: ILastUpdatedProps) {\r\n super(props); \r\n this.state = { date : this.props.date};\r\n } \r\n\r\n componentDidUpdate(prevprops:ILastUpdatedProps) { \r\n if(this.props && this.props.date && prevprops.date !== this.props.date)\r\n this.setState({ \r\n date : this.props.date\r\n }); \r\n } \r\n\r\n render() { \r\n let style:React.CSSProperties|object = {\r\n display: 'inline-block', \r\n padding: '4px', \r\n textTransform: 'uppercase',\r\n color: '#02525e', \r\n }\r\n \r\n let headline:React.CSSProperties|object = { \r\n fontSize: '.3000rem', \r\n fontFamily: \"DINNextLTPro-Medium\",\r\n textAlign: 'right'\r\n }\r\n \r\n let date:React.CSSProperties|object = { \r\n fontSize: '.3000rem', \r\n fontFamily: \"DINNextLTPro-Regular\",\r\n textAlign: 'right'\r\n }\r\n\r\n //console.log(this.state.date);\r\n let dkDate = new Date(this.state.date);\r\n \r\n\r\n return ( \r\n \r\n
    \r\n
    {locals.LastUpdate}
    \r\n
    {dkDate.toLocaleString(GetLanguage(), {day:'numeric', month: 'short', year:'numeric', hour:'2-digit', minute:'2-digit'} )}
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default LastUpdated;\r\n\r\n\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport './PowerBox.css';\r\nimport { formatRoundNumber, GetLanguage } from '../Utility';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\n\r\nexport interface IPowerBoxProps {\r\n data?: any;\r\n dataState?:string;\r\n // {\r\n // ProductionGe100MW:number;\r\n // ProductionLt100MW:number;\r\n // WindMillTotal:number;\r\n // SolarPower:number;\r\n // Exchange_Sum:number;\r\n // PowerTotal:number;\r\n // CO2Emission:number;\r\n // [\"Exchange_DK1_DE\"]:string;\r\n // [\"Exchange_DK1_SE\"]:string;\r\n // [\"Exchange_DK1_NL\"]:string;\r\n // [\"Exchange_DK1_DE\"]:string;\r\n // [\"Exchange_DK1_DK2\"]:string;\r\n // [\"Exchange_DK2_SE\"]:string;\r\n // [\"Exchange_DK2_DE\"]:string;\r\n // [\"Exchange_Bornholm_SE\"]:string;\r\n // }\r\n}\r\n\r\n\r\n\r\nexport interface IPowerBoxState {\r\n data?: {\r\n ProductionGe100MW:number;\r\n ProductionLt100MW:number; \r\n OnshoreWindPower:number;\r\n OffshoreWindPower:number;\r\n SolarPower:number;\r\n Exchange_Sum:number;\r\n PowerTotal:number;\r\n CO2Emission:number; \r\n }\r\n}\r\n\r\n\r\nconst locals:IStrings = strings(GetLanguage());\r\n\r\nclass PowerBox extends React.Component {\r\n constructor(props: IPowerBoxProps) {\r\n super(props); \r\n var d:any = {}; \r\n this.state = { data : d};\r\n } \r\n\r\n componentDidUpdate(prevprops:IPowerBoxProps) { \r\n if(this.props && this.props.data && prevprops.data !== this.props.data)\r\n {\r\n var d:any = this.props.data; \r\n d.PowerTotal = this.props.data.OnshoreWindPower + this.props.data.OffshoreWindPower + \r\n this.props.data.SolarPower + this.props.data.ProductionGe100MW + this.props.data.ProductionLt100MW + this.props.data.Exchange_Sum;\r\n this.setState({ \r\n data : d \r\n }); \r\n }\r\n }\r\n \r\n// private formatRoundNumber(value:number) {\r\n// let num:number = Math.round(value);\r\n// return num.toLocaleString();\r\n// }\r\n \r\n render() { \r\n return ( \r\n
    \r\n
    \r\n

    { locals.PowerRightNow }

    {/* Elsystemet lige nu */}\r\n {this.state.data && \r\n
      \r\n
    • { locals.PowerPlantsGt100 }{formatRoundNumber(this.state.data.ProductionGe100MW)} MW
    • \r\n
    • { locals.PowerPlantsLt100 }{formatRoundNumber(this.state.data.ProductionLt100MW)} MW
    • \r\n
    • { locals.WindTurbines }{formatRoundNumber(this.state.data.OffshoreWindPower + this.state.data.OnshoreWindPower)} MW
    • \r\n
    • { locals.SolarCells }{formatRoundNumber(this.state.data.SolarPower)} MW
    • \r\n
    • { locals.ConsumptionInDenmark }{formatRoundNumber(this.state.data.PowerTotal)} MW
    • \r\n
    • { locals.NetExchangeImport }{formatRoundNumber(this.state.data.Exchange_Sum)} MW
    • \r\n
    • { locals.Co2Emissions }{formatRoundNumber(this.state.data.CO2Emission)} g/kWh
    • \r\n
    \r\n }\r\n
    \r\n
    \r\n );\r\n } \r\n}\r\n \r\nexport default PowerBox;","import React from 'react';\r\nimport './PowerIconBox.css';\r\nimport { GetLanguage } from '../Utility';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nconst locals:IStrings = strings(GetLanguage());\r\n \r\nclass PowerIconBox extends React.Component<{}, {}> {\r\n \r\n render() { \r\n return ( \r\n
    \r\n
    \r\n

    {locals.SymbolDescription }

    \r\n
      \r\n
    • {locals.PowerPlantGt100Mw}
    • \r\n
    • { locals.OffshoreWindFarm }
    • \r\n
    • { locals.ConverterSubstation }
    • \r\n
    • { locals.OverheadLinesAc }
    • \r\n
    • { locals.CableAc }
    • \r\n
    • { locals.OverheadLinesDc }
    • \r\n
    • { locals.CableDc}
    • \r\n
    \r\n
    \r\n
    \r\n\r\n );\r\n }\r\n}\r\n \r\nexport default PowerIconBox;","import React from 'react';\r\nimport { formatAbsNumber } from '../Utility';\r\nexport interface PowerLabelProps {\r\n label: string;\r\n valueLabel: string;\r\n flow: number;\r\n xpos: string;\r\n ypos: string\r\n}\r\n\r\nexport interface PowerLabelState {\r\n fontSize: string;\r\n}\r\n\r\n//const fontSize:string = '.2300rem';\r\n\r\nclass PowerLabel extends React.Component {\r\n constructor(props: PowerLabelProps,) {\r\n super(props);\r\n this.state = { fontSize: '.2300rem' };\r\n }\r\n\r\n // componentDidMount() {\r\n // window.addEventListener('resize', this.updateDimensions);\r\n // }\r\n // componentWillUnmount() {\r\n // window.removeEventListener('resize', this.updateDimensions);\r\n // }\r\n\r\n // private updateDimensions = () => {\r\n // if (window.innerWidth < 1024 && window.innerWidth > 640)\r\n // this.setState({ fontSize: (0.2300 * (1 + ((1024 - window.innerWidth) / 500)) + 'rem') });\r\n // else\r\n // this.setState({ fontSize: '0.2300rem' });\r\n // };\r\n\r\n render() {\r\n let style: React.CSSProperties | object = {\r\n display: 'inline-block',\r\n padding: '4px',\r\n textTransform: 'uppercase',\r\n color: '#02525e',\r\n border: 'solid 1px rgba(255,255,255,0.9)',\r\n backgroundColor: 'rgba(230,230,230,0.9)',\r\n }\r\n\r\n let titleStyle: React.CSSProperties | object = {\r\n fontSize: this.state.fontSize,\r\n fontFamily: \"DINNextLTPro-Medium\",\r\n textAlign: 'left'\r\n }\r\n\r\n let valueStyle: React.CSSProperties | object = {\r\n fontSize: this.state.fontSize,\r\n fontFamily: \"DINNextLTPro-Regular\",\r\n textAlign: 'left'\r\n }\r\n\r\n let showLabel:boolean=true;\r\n if( parseInt(formatAbsNumber(this.props.flow))===0)\r\n showLabel=false;\r\n\r\n return (\r\n \r\n
    \r\n
    {this.props.label}
    \r\n
    {showLabel && this.props.valueLabel}{formatAbsNumber(this.props.flow)} MW
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default PowerLabel;\r\n\r\n// display: inline-block; \r\n// font-size: .75rem;\r\n// line-height: 1.3;\r\n// position: absolute;\r\n// padding: 10px 12px 0 12px;\r\n// transition: opacity 400ms ease-in-out;\r\n// text-transform: uppercase;\r\n// color: #02525e;\r\n// border: solid 2px rgba(255,255,255,0.9);\r\n// background-color: rgba(230,230,230,0.9); \r\n\r\n","import React from 'react';\r\nimport { IPowerBoxProps } from '../PowerBox/PowerBox';\r\nimport PowerLabel from './PowerLabel';\r\nimport { GetLanguage } from '../Utility';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nconst locals:IStrings = strings(GetLanguage());\r\n\r\nexport interface IPowerLabelsState {\r\n data: any[]; \r\n}\r\n\r\nclass PowerLabels extends React.Component { \r\n constructor(props: IPowerBoxProps,) {\r\n super(props); \r\n this.state = { data : []};\r\n } \r\n\r\n componentDidMount(){\r\n if(this.props && this.props.data){\r\n this.updateLabels(); \r\n }\r\n }\r\n\r\n componentDidUpdate(prevprops:IPowerBoxProps) { \r\n if(this.props && this.props.data && prevprops.data !== this.props.data){\r\n this.updateLabels(); \r\n } \r\n }\r\n\r\n private updateLabels() {\r\n let dataArray:any[]=[];\r\n let vLabel:string;\r\n \r\n let data = this.props.data;\r\n let value = data[\"Exchange_DK1_NO\"];\r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.JutlandNorway, value:value, xpos:'75', ypos:'65',valueLabel:vLabel });\r\n \r\n value = data[\"Exchange_DK1_SE\"];\r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.JutlandSweden, value:value, xpos:'186', ypos:'68',valueLabel:vLabel});\r\n \r\n value = data[\"Exchange_DK1_NL\"];\r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.JutlandNetherlands, value:value, xpos:'35', ypos:'210',valueLabel:vLabel});\r\n \r\n value = data[\"Exchange_DK1_DE\"]; \r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.JutlandGermany, value:value, xpos:'100', ypos:'250',valueLabel:vLabel});\r\n \r\n value = data[\"Exchange_DK1_DK2\"]; \r\n value<0?vLabel=\"→\":vLabel=\"←\"; \r\n dataArray.push({label:locals.TheGreatBelt, value:value, xpos:'190', ypos:'200',valueLabel:vLabel});\r\n \r\n value = data[\"Exchange_DK2_SE\"]; \r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.ZealandSweden, value:value, xpos:'270', ypos:'140',valueLabel:vLabel});\r\n \r\n value = data[\"Exchange_DK2_DE\"]; \r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.ZealandGermany, value:value, xpos:'250', ypos:'240',valueLabel:vLabel});\r\n \r\n value = data[\"Exchange_Bornholm_SE\"]; \r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.BornholmSweden, value:value, xpos:'310', ypos:'210',valueLabel:vLabel});\r\n\r\n value = data[\"Exchange_DK1_GB\"]; \r\n value<0?vLabel=locals.Export +\": \":vLabel=locals.Import + \": \"; \r\n dataArray.push({label:locals.VikingLink, value:value, xpos:'20', ypos:'185',valueLabel:vLabel});\r\n \r\n \r\n this.setState({\r\n data: dataArray\r\n }); \r\n }\r\n \r\n\r\n render() {\r\n let key:number = 1;\r\n return ( \r\n this.state && this.state.data.map((itm) => {\r\n return \r\n })\r\n \r\n );\r\n }\r\n\r\n // private formatAbsNumber(value:number) {\r\n // let num:number = Math.round(value);\r\n // num = Math.abs(num);\r\n // return num.toLocaleString('da-DK');\r\n // }\r\n}\r\n\r\nexport default PowerLabels; \r\n\r\n","import React from 'react';\r\nexport interface PowerplantProps {\r\n posx:string;\r\n posy:string;\r\n}\r\n \r\nclass Powerplant extends React.Component { \r\n render() { \r\n let transformData:string = `translate(${this.props.posx} ${this.props.posy})`\r\n return ( \r\n \r\n );\r\n }\r\n}\r\n \r\nexport default Powerplant;","import React, { Fragment } from 'react';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nimport { GetLanguage } from '../Utility';\r\nimport './ReadMore.css';\r\nexport interface IReadMoreProps {\r\n date?:any;\r\n}\r\n\r\nexport interface IReadMoreState {\r\n date?:any;\r\n}\r\n\r\nconst locals:IStrings = strings(GetLanguage());\r\n\r\nclass ReadMore extends React.Component { \r\n render() { \r\n return ( \r\n
    \r\n
    \r\n

    { locals.ReadMoreHeadline }

    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ReadMore;\r\n\r\n\r\n\r\n\r\n\r\n","import React from 'react';\r\nexport interface TransformerStationProps {\r\n posx:string;\r\n posy:string;\r\n}\r\n \r\nclass TransformerStation extends React.Component { \r\n render() { \r\n let transformData:string = `translate(${this.props.posx} ${this.props.posy})`\r\n return ( \r\n \r\n );\r\n }\r\n}\r\n \r\nexport default TransformerStation;","import React from 'react';\r\nexport interface WindmillProps {\r\n posx:string;\r\n posy:string;\r\n}\r\n \r\nclass Windmill extends React.Component { \r\n render() { \r\n let transformData:string = `translate(${this.props.posx} ${this.props.posy})`\r\n return ( \r\n \r\n );\r\n }\r\n}\r\n \r\nexport default Windmill;","import React from 'react';\r\nimport './BioMethaneConnectionSymbol.css';\r\n\r\nclass BioMethaneConnectionSymbol extends React.Component<{}, {}> { \r\n render() { \r\n return ( \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n \r\nexport default BioMethaneConnectionSymbol;","import React from 'react';\r\nimport './GasJunctionSymbol.css';\r\n\r\nclass GasJunctionSymbol extends React.Component<{}, {}> { \r\n render() { \r\n return ( \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n \r\nexport default GasJunctionSymbol;","import React from 'react';\r\nimport './PowerplantSymbol.css';\r\n\r\nclass PowerplantSymbol extends React.Component<{}, {}> { \r\n render() { \r\n return ( \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n \r\nexport default PowerplantSymbol;","import React from 'react';\r\nimport './TransformerStationSymbol.css';\r\n\r\nclass TransformerStationSymbol extends React.Component<{}, {}> { \r\n render() { \r\n return ( \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n \r\nexport default TransformerStationSymbol;","import React from 'react';\r\nimport './WindmillSymbol.css';\r\n\r\nclass WindmillSymbol extends React.Component<{}, {}> { \r\n render() { \r\n return ( \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n \r\nexport default WindmillSymbol;","import React from 'react';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nimport { GetLanguage } from '../Utility';\r\nimport './HistoryDatePicker.css';\r\nimport { DatePicker, IDatePickerStrings } from '@fluentui/react';\r\nimport backArrow from '../../images/backArrow.png';\r\nimport Arrow from '../../images/forwardArrow.png';\r\n\r\n\r\nexport interface IHistoryDatePickerProps { \r\n callback:any;\r\n date?:any;\r\n}\r\n\r\nexport interface IHistoryDatePickerState {\r\n date?:any;\r\n}\r\n\r\nconst locals: IStrings = strings(GetLanguage());\r\n\r\nclass HistoryDatePicker extends React.Component { \r\n constructor(props: IHistoryDatePickerProps) {\r\n super(props); \r\n this.state = { date : this.props.date}; \r\n } \r\n\r\n componentDidUpdate(prevprops:IHistoryDatePickerProps) { \r\n if(this.props && this.props.date && prevprops.date !== this.props.date)\r\n this.setState({ \r\n date : this.props.date\r\n }); \r\n } \r\n\r\n private changeDate(date: any) {\r\n //let dateStr = date.toLocaleString('da-DK', {year: 'numeric', month:'2-digit', day:'2-digit', hour: '2-digit', hour12: false, minute:'2-digit'}); \r\n this.props.callback(date);\r\n }\r\n private back() {\r\n let newDate: Date = new Date(this.state.date);\r\n newDate.setDate(newDate.getDate() - 1);\r\n \r\n this.changeDate(newDate);\r\n }\r\n private forward() {\r\n let newDate: Date = new Date(this.state.date);\r\n newDate.setDate(newDate.getDate() + 1);\r\n \r\n this.changeDate(newDate);\r\n }\r\n\r\n render() { \r\n let box:React.CSSProperties|object = { \r\n textTransform: 'uppercase',\r\n color: '#02525e', \r\n padding:'0px',\r\n //border: 'solid 1px black', \r\n } \r\n\r\n let back:React.CSSProperties|object = { \r\n height: '7px', \r\n cursor: 'pointer',\r\n position:'relative',\r\n left:'11px',\r\n top:'-15px', \r\n float:'left'\r\n }\r\n\r\n let forward:React.CSSProperties|object = { \r\n height: '7px', \r\n left:'57px',\r\n top:'-62px', \r\n cursor: 'pointer',\r\n position:'relative',\r\n display:'inline'\r\n } \r\n \r\n let datepicker:React.CSSProperties|object = {\r\n position: 'relative', \r\n scale:'0.33',\r\n color: '#02525e', \r\n left:'-22px',\r\n top:'-27px', \r\n zIndex:'0',\r\n marginLeft:'1px', \r\n width:'112px' \r\n }\r\n\r\n let selectDate:React.CSSProperties|object = { \r\n position: 'relative', \r\n width:'112px',\r\n scale:'0.33',\r\n left:'-19px', \r\n top:'-9px', \r\n fontFamily: \"BrandonGrotesqueWeb-Regular\",\r\n }\r\n\r\n \r\n\r\n let DayPickerStrings: IDatePickerStrings = {\r\n months: [\r\n 'Januar',\r\n 'Februar',\r\n 'Marts',\r\n 'April',\r\n 'Maj',\r\n 'Juni',\r\n 'Juli',\r\n 'August',\r\n 'September',\r\n 'Oktober',\r\n 'November',\r\n 'December'\r\n ], \r\n shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],\r\n \r\n days: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag'],\r\n \r\n shortDays: ['S', 'M', 'T', 'O', 'T', 'F', 'S'],\r\n \r\n goToToday: 'Hop til idag',\r\n prevMonthAriaLabel: 'Go to previous month',\r\n nextMonthAriaLabel: 'Go to next month',\r\n prevYearAriaLabel: 'Go to previous year',\r\n nextYearAriaLabel: 'Go to next year'\r\n };\r\n \r\n if (GetLanguage() === \"en-US\") {\r\n \r\n DayPickerStrings = {\r\n months: [\r\n 'January',\r\n 'February',\r\n 'March',\r\n 'April',\r\n 'May',\r\n 'June',\r\n 'July',\r\n 'August',\r\n 'September',\r\n 'October',\r\n 'November',\r\n 'December'\r\n ],\r\n \r\n shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n \r\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\r\n \r\n shortDays: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\r\n \r\n goToToday: 'Go to today',\r\n prevMonthAriaLabel: 'Go to previous month',\r\n nextMonthAriaLabel: 'Go to next month',\r\n prevYearAriaLabel: 'Go to previous year',\r\n nextYearAriaLabel: 'Go to next year'\r\n };\r\n }\r\n \r\n\r\n return ( \r\n \r\n
    {locals.SelectDate}
    \r\n back\r\n { \r\n if(!date) return '';\r\n return date.getDate() +\"-\" + (date.getMonth()+1) +\"-\" + date.getFullYear() \r\n \r\n } \r\n }\r\n strings={DayPickerStrings}\r\n minDate={new Date(Date.parse(\"2018-11-01\"))}\r\n maxDate={new Date(Date.now())}\r\n firstDayOfWeek={1}\r\n disableAutoFocus={true} \r\n showCloseButton={true} \r\n value={this.state.date} onSelectDate={this.changeDate.bind(this)} \r\n /> \r\n forward \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default HistoryDatePicker;\r\n\r\n\r\n\r\n\r\n\r\n","import React, { Fragment } from 'react';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nimport { GetLanguage } from '../Utility';\r\nimport './MapNotUpdated.css';\r\nexport interface IMapNotUpdatedProps {\r\n date?: any;\r\n controlData: any;\r\n powerDataState?: string;\r\n gasDataState?: string;\r\n}\r\n\r\nexport interface IMapNotUpdatedState {\r\n date?: any;\r\n controlData: any;\r\n powerDataState?: string;\r\n gasDataState?: string;\r\n}\r\n\r\nconst locals: IStrings = strings(GetLanguage());\r\n\r\nclass MapNotUpdated extends React.Component {\r\n constructor(props: IMapNotUpdatedProps) {\r\n super(props);\r\n this.state = { date: this.props.date, controlData: this.props.controlData, powerDataState: this.props.powerDataState };\r\n }\r\n\r\n\r\n componentDidUpdate(prevprops: IMapNotUpdatedState) {\r\n //prevprops.date !== this.props.date || prevprops.controlData !== this.props.controlData ||\r\n // if (this.props && (prevprops.dataState.DataError !== this.state.dataState.DataError)) { \r\n // console.log('change event');\r\n // this.setState({ dataState: this.props.dataState });\r\n // }\r\n\r\n if (this.props && this.props.powerDataState !== prevprops.powerDataState)\r\n this.setState({ powerDataState: this.props.powerDataState });\r\n\r\n if (this.props && this.props.gasDataState !== prevprops.gasDataState)\r\n this.setState({ gasDataState: this.props.gasDataState });\r\n\r\n if (this.props && this.props.date && prevprops.date !== this.props.date)\r\n this.setState({\r\n date: this.props.date\r\n });\r\n\r\n }\r\n\r\n render() { \r\n let style: React.CSSProperties | object = {\r\n display: 'inline-block',\r\n padding: '4px',\r\n textTransform: 'uppercase',\r\n color: '#02525e',\r\n }\r\n\r\n let headline: React.CSSProperties | object = {\r\n fontSize: '.3000rem',\r\n fontFamily: \"DINNextLTPro-Medium\",\r\n textAlign: 'left',\r\n fontStyle:'italic'\r\n } \r\n\r\n let displayText = ''; \r\n let showError =false;\r\n\r\n if (this.props.controlData.powerTypeGas) {\r\n if (this.state.gasDataState === 'Error')\r\n {\r\n displayText = locals.GasDataError;\r\n showError=true;\r\n }\r\n else if (this.state.gasDataState === 'Olddata'){ \r\n displayText = locals.GasDataMissing;\r\n showError=true;\r\n }\r\n } \r\n else if (this.props.controlData.powerTypeEl) {\r\n if (this.state.powerDataState === 'Error') {\r\n displayText = locals.PowerDataError;\r\n showError=true;\r\n } else if (this.state.powerDataState === 'Olddata') {\r\n displayText = locals.PowerDataMissing;\r\n showError=true;\r\n }\r\n }\r\n\r\n \r\n\r\n \r\n\r\n let datasetDate = new Date(this.state.date);\r\n let dateString = datasetDate.toLocaleString(GetLanguage(), { day: 'numeric', month: 'short', year: 'numeric', hour: '2-digit', minute: '2-digit' });\r\n\r\n displayText = displayText.replace('[DateTime]', dateString);\r\n\r\n return (\r\n \r\n {showError &&\r\n \r\n
    \r\n
    {displayText}
    \r\n
    \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default MapNotUpdated;\r\n\r\n\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport { IStrings, strings } from '../../loc/mystrings';\r\nimport { GetLanguage } from '../Utility';\r\nexport interface ILastUpdatedGasStorageProps {\r\n date?:any;\r\n}\r\n\r\nexport interface ILastUpdatedGasStorageState {\r\n date?:any;\r\n}\r\n\r\nconst locals:IStrings = strings(GetLanguage());\r\n\r\nclass LastUpdatedGasStorage extends React.Component { \r\n constructor(props: ILastUpdatedGasStorageProps) {\r\n super(props); \r\n this.state = { date : this.props.date};\r\n } \r\n\r\n componentDidUpdate(prevprops:ILastUpdatedGasStorageProps) { \r\n if(this.props && this.props.date && prevprops.date !== this.props.date)\r\n this.setState({ \r\n date : this.props.date\r\n }); \r\n } \r\n\r\n render() { \r\n let style:React.CSSProperties|object = {\r\n display: 'inline-block', \r\n padding: '4px', \r\n textTransform: 'uppercase',\r\n color: '#415171', \r\n }\r\n \r\n let headline:React.CSSProperties|object = { \r\n fontSize: '.3000rem', \r\n fontFamily: \"DINNextLTPro-Medium\",\r\n textAlign: 'right'\r\n }\r\n \r\n let date:React.CSSProperties|object = { \r\n fontSize: '.3000rem', \r\n fontFamily: \"DINNextLTPro-Regular\",\r\n textAlign: 'right'\r\n }\r\n\r\n //console.log(this.state.date);\r\n let dkDate = new Date(this.state.date);\r\n \r\n\r\n return ( \r\n \r\n
    \r\n
    {locals.LastUpdate}
    \r\n
    {dkDate.toLocaleString(GetLanguage(), {day:'numeric', month: 'short', year:'numeric', hour:'2-digit', minute:'2-digit'} )}
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default LastUpdatedGasStorage;\r\n\r\n\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport './SunPanelSymbol.css';\r\n\r\nclass SunPanelSymbol extends React.Component<{}, {}> {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default SunPanelSymbol;","export default __webpack_public_path__ + \"static/media/sunpanel.2ac27873.svg\";","import React from 'react';\r\nimport sunpanel from '../../images/sunpanel.svg';\r\nimport { portalUrl } from '../../components/Utility';\r\nexport interface SunPanelProps {\r\n posx:string;\r\n posy:string;\r\n}\r\n \r\nclass SunPanel extends React.Component { \r\n render() { \r\n var sunpanelUrl:string = portalUrl() + sunpanel;\r\n return ( \r\n \r\n
    \r\n sunpanel\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n \r\nexport default SunPanel;","import React, { useEffect, useState } from 'react';\r\nimport './Master.css';\r\nimport './App.css';\r\nimport BioMethaneConnection from './components/BioMethaneConnection/BioMethaneConnection';\r\nimport Cabels from './components/Cabels/Cabels';\r\nimport ControlBar from './components/ControlBar/ControlBar';\r\nimport DailyUpdate from './components/DailyUpdate/DailyUpdate';\r\nimport EnerginetLogo from './components/EnerginetLogo/EnerginetLogo';\r\nimport ExternalPowerLabels from './components/ExternalPowerLabels/ExternalPowerLabels';\r\nimport GasBox from './components/GasBox/GasBox';\r\nimport GasIconBox from './components/GasIconBox/GasIconBox';\r\nimport GasLabels from './components/GasLabels/GasLabels';\r\nimport GasPipes from './components/GasPipes/GasPipes';\r\nimport GasStorage from './components/GasStorage/GasStorage';\r\nimport GasStorageLabels from './components/GasStorageLabels/GasStorageLabels';\r\nimport GasStorageLegend from './components/GasStorageLegend/GasStorageLegend';\r\n\r\nimport HistoricalData from './components/HistoricalData/HistoricalData';\r\nimport LastUpdated from './components/LastUpdated/LastUpdated';\r\nimport PowerBox, { IPowerBoxProps } from './components/PowerBox/PowerBox';\r\nimport PowerIconBox from './components/PowerIconBox/PowerIconBox';\r\nimport PowerLabels from './components/PowerLabels/PowerLabels';\r\nimport Powerplant from './components/Powerplant/Powerplant';\r\nimport ReadMore from './components/ReadMore/ReadMore';\r\nimport TransformerStation from './components/TransformerStation/TransformerStation';\r\nimport { EDSUrl } from './components/Utility';\r\nimport Windmill from './components/Windmill/Windmill';\r\nimport { loadEnerginetTheme } from './EnerginetTheme';\r\nimport BioMethaneConnectionSymbol from './Symbols/BioMethaneConnectionSymbol/BioMethaneConnectionSymbol';\r\nimport GasJunctionSymbol from './Symbols/GasJunctionSymbol/GasJunctionSymbol';\r\nimport PowerplantSymbol from './Symbols/PowerplantSymbol/PowerplantSymbol';\r\nimport TransformerStationSymbol from './Symbols/TransformerStation/TransformerStationSymbol';\r\nimport WindmillSymbol from './Symbols/Windmill/WindmillSymbol';\r\nimport HistoryDatePicker from './components/HistoryDatePicker/HistoryDatePicker';\r\nimport MapNotUpdated from './components/MapNotUpdated/MapNotUpdated';\r\nimport LastUpdatedGasStorage from './components/LastUpdatedGasStorage/LastUpdatedGasStorage';\r\nimport GasStorageLegendInline from './components/GasStorageLegend/GasStorageLegendInline';\r\nimport SunPanelSymbol from './Symbols/SunPanel/SunPanelSymbol';\r\nimport SunPanel from './components/SunPanel/SunPanel';\r\n\r\n\r\n// let tmpData:IPowerBoxProps = {\r\n// data : {\r\n// ProductionGe100MW:0,\r\n// ProductionLt100MW:0,\r\n// WindMillTotal:0,\r\n// SolarPower:0,\r\n// Exchange_Sum:0,\r\n// PowerTotal:0,\r\n// CO2Emission:0\r\n// }\r\n// }\r\n\r\nexport interface IDataState {\r\n DataMissing: boolean;\r\n DataError: boolean;\r\n // GasDataMissing:boolean;\r\n // GasDataError:boolean;\r\n}\r\n\r\nexport interface IControlData {\r\n viewTypeMap: boolean;\r\n viewTypeHistory: boolean;\r\n powerTypeEl: boolean;\r\n powerTypeGas: boolean;\r\n showMeassure: boolean;\r\n showLegends: boolean;\r\n dataIndex: number;\r\n convertToGasStorage: boolean;\r\n historydate: Date;\r\n}\r\n\r\nlet tempData: IControlData = {\r\n viewTypeMap: true,\r\n viewTypeHistory: false,\r\n powerTypeEl: true,\r\n powerTypeGas: false,\r\n showMeassure: true,\r\n showLegends: true,\r\n dataIndex: 0,\r\n convertToGasStorage: false,\r\n historydate: new Date(Date.now())\r\n}\r\n\r\nloadEnerginetTheme();\r\n\r\nconst App = () => {\r\n const [controlData, setControlData] = useState(tempData);\r\n function callbackData(data: any) {\r\n let tmpData = data;\r\n tmpData.historydate = new Date(Date.now());\r\n tmpData.dataIndex = controlData.dataIndex;\r\n setControlData(tmpData);\r\n fetchPowerData();\r\n fetchGasData(new Date(Date.now()));\r\n }\r\n\r\n function callbackHistorycalDate(date: any) {\r\n controlData.historydate = date;\r\n setControlData(controlData);\r\n fetchGasData(date);\r\n }\r\n\r\n // function callbackHistory(index:number) {\r\n // let tmpData = powerData;\r\n // tmpData.dataIndex = index;\r\n // setControlData(tmpData);\r\n // console.log('setControlData');\r\n\r\n // }\r\n\r\n // const [boxData, setBoxData] = useState(0); \r\n // const callbackHistory = (index:number) => { \r\n // console.log(index); \r\n // setBoxData(index);\r\n // }\r\n\r\n const tmpData: IPowerBoxProps = { data: [], dataState: 'Success' };\r\n const [powerData, setPowerData] = useState(tmpData);\r\n const [gasData, setGasData] = useState(tmpData);\r\n const [gasStorageData, setGasStorageData] = useState(tmpData);\r\n const [refreshInterval, setRefreshInterval] = useState(60000);\r\n\r\n\r\n useEffect(() => {\r\n //console.log('useEffect');\r\n // fetchPowerData().then((res) => { \r\n // dataState.DataError = !res;\r\n // setDataState(dataState);\r\n // console.log(dataState);\r\n // });\r\n // fetchGasData(new Date(Date.now())).then((res)=> {\r\n // console.log(dataState);\r\n // });\r\n getData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (refreshInterval && refreshInterval > 0) {\r\n const interval = setInterval(getData, refreshInterval);\r\n return () => clearInterval(interval);\r\n }\r\n }, [refreshInterval]);\r\n\r\n const getData = async () => {\r\n //let dataMissing = true;\r\n fetchPowerData();\r\n fetchGasStorageData();\r\n //if (controlData.powerTypeGas && !controlData.viewTypeHistory)\r\n //fetchGasData(controlData.historydate); //new Date(Date.now()));\r\n\r\n //return dataMissing;\r\n }\r\n\r\n //const url = 'https://energinetkort.azurewebsites.net/api/';\r\n const fetchPowerData = async () => {\r\n await fetch(EDSUrl() + 'EDS?cacheName=PowerRightNow&dataset=powersystemrightnow?sort=Minutes1UTC desc_limit=1')\r\n .then((response) => {\r\n response.json().then((jsonStr) => {\r\n var json = JSON.parse(jsonStr);\r\n let now = new Date(Date.now());\r\n let dataState = 'Success';\r\n let datasetDate = new Date(json.records[0].Minutes1DK);\r\n datasetDate.setMinutes(datasetDate.getMinutes() + 5);\r\n if (datasetDate < now) {\r\n dataState = 'Olddata';\r\n }\r\n\r\n //let currentDataSets = json.records[0];\r\n // console.log(now.getMinutes() % 2);\r\n // currentDataSets[\"Exchange_DK1_GB\"] = 100 * ((now.getMinutes() % 2 ) * -1);\r\n // setPowerData({ data: json.records[0], dataState: currentDataSets });\r\n setPowerData({ data: json.records[0], dataState: dataState });\r\n\r\n }).catch((error) => {\r\n setPowerData({ data: [], dataState: 'Error' });\r\n });\r\n }).catch((error) => {\r\n setPowerData({ data: [], dataState: 'Error' });\r\n });\r\n };\r\n\r\n const convertDate = (date: Date) => {\r\n //var start = new Date(Date.parse(date)); //Date.parse(\"2019-07-16\"));\r\n date.setDate(date.getDate());\r\n var output = date.getFullYear() + \"-\" + fixDatePart(date.getMonth() + 1) + \"-\" + fixDatePart(date.getDate()) + \"T00:00\"; // '2019-02-01T06:00:00'; \r\n return output;\r\n }\r\n\r\n const convertGasstorageFilterDate = (date: Date) => {\r\n //var start = new Date(Date.parse(date)); //Date.parse(\"2019-07-16\"));\r\n date.setDate(date.getDate());\r\n var output = date.getFullYear() + \"-\" + fixDatePart(date.getMonth() + 1) + \"-\" + fixDatePart(date.getDate()) + \"T\" + fixDatePart(date.getHours()) + \":00\"; // '2019-02-01T06:00:00'; \r\n return output;\r\n }\r\n\r\n const fixDatePart = (part: number) => {\r\n let partStr: string = part.toString();\r\n if (part < 10)\r\n partStr = \"0\" + part.toString();\r\n return partStr;\r\n }\r\n\r\n //https://api.energidataservice.dk/dataset/MrStationsGasquality?start=2023-11-06T00:00&end=2023-11-06T01:00\r\n const fetchGasStorageData = async () => {\r\n\r\n let getLatestData = 'EDS?cacheName=GasStorageGetDate&dataset=MrStationsGasquality?sort=HourUTC desc_limit=1';\r\n const response = await fetch(EDSUrl() + getLatestData);\r\n const jsonStr = await response.json();\r\n var latestDatajson = JSON.parse(jsonStr);\r\n\r\n let startDate = new Date(latestDatajson.records[0].HourDK);\r\n let endDate = new Date(Date.now());\r\n endDate.setHours(endDate.getHours() + 1);\r\n let selectData: string = 'EDS?cacheName=GasStorage&dataset=MrStationsGasquality?start=' + convertGasstorageFilterDate(startDate) + '&end=' + convertGasstorageFilterDate(endDate) + '&sort=HourUTC desc_limit=50';\r\n await fetch(EDSUrl() + selectData)\r\n .then((response) => {\r\n response.json().then((jsonStr) => {\r\n let json = JSON.parse(jsonStr);\r\n let dataState = 'Success';\r\n let datasetDate = new Date(json.records[0].HourDK);\r\n datasetDate.setHours(datasetDate.getHours());\r\n\r\n if (datasetDate < startDate) {\r\n console.log('Olddata');\r\n dataState = 'Olddata';\r\n }\r\n\r\n let result: any;\r\n let exitFromTransmission = 0;\r\n let HourDK = json.records[0].HourDK;\r\n json.records.forEach((rec: any) => {\r\n if (HourDK !== rec.HourDK)\r\n return;\r\n exitFromTransmission += rec.GrossCalorificValuekWh * rec.StationFlow;\r\n });\r\n\r\n let selectData: string = 'EDS?cacheName=GasStorageEntryExit&dataset=EntryExitGasquality?start=' + convertGasstorageFilterDate(startDate) + '&end=' + convertGasstorageFilterDate(endDate) + 'sort=HourUTC desc_limit=50';\r\n fetch(EDSUrl() + selectData)\r\n .then((response) => {\r\n response.json().then((jsonStr) => {\r\n let json = JSON.parse(jsonStr);\r\n let Bevtoft = json.records.find((elm: any) => elm.EntryExitPoint === \"Bevtoft\");\r\n let DragorBorder = json.records.find((elm: any) => elm.EntryExitPoint === \"Dragør Border\");\r\n let Ellund = json.records.find((elm: any) => elm.EntryExitPoint === \"Ellund\");\r\n let Faxe = json.records.find((elm: any) => elm.EntryExitPoint === \"Faxe\");\r\n let LilleTorup = json.records.find((elm: any) => elm.EntryExitPoint === \"Lille Torup\");\r\n let NorthSea = json.records.find((elm: any) => elm.EntryExitPoint === \"North Sea\");\r\n let Nybro = json.records.find((elm: any) => elm.EntryExitPoint === \"Nybro\");\r\n let Stenlille = json.records.find((elm: any) => elm.EntryExitPoint === \"Stenlille\");\r\n let gsdStorage = LilleTorup.GrossCalorificValuekWh * LilleTorup.StationFlow + Stenlille.GrossCalorificValuekWh * Stenlille.StationFlow;\r\n let exportSweden = DragorBorder.GrossCalorificValuekWh * DragorBorder.StationFlow;\r\n let norwegianImport = NorthSea.GrossCalorificValuekWh * NorthSea.StationFlow;\r\n let danishImport = Nybro.GrossCalorificValuekWh * Nybro.StationFlow;\r\n let importFaxe = Faxe.GrossCalorificValuekWh * Faxe.StationFlow;\r\n let importEllund = Ellund.GrossCalorificValuekWh * Ellund.StationFlow;\r\n //console.log(json);\r\n\r\n result = {\r\n \"exitFromTransmission\": exitFromTransmission,\r\n \"gsdStorage\": gsdStorage,\r\n \"exportSweden\": exportSweden,\r\n \"norwegianImport\": norwegianImport,\r\n \"danishImport\": danishImport,\r\n \"importFaxe\": importFaxe,\r\n \"importEllund\": importEllund,\r\n \"HourDK\": HourDK,\r\n };\r\n setGasStorageData({ data: result, dataState: dataState });\r\n })\r\n }).catch((error) => {\r\n setGasStorageData({ data: [], dataState: 'Error' });\r\n })\r\n });\r\n }).catch((error) => {\r\n setGasStorageData({ data: [], dataState: 'Error' });\r\n })\r\n };\r\n\r\n const fetchGasData = async (date: Date) => {\r\n var previousDay = new Date(date);\r\n previousDay.setDate(date.getDate() - 1);\r\n\r\n let selectData: string = 'EDS?cacheName=GasFlow&dataset=Gasflow?sort=GasDay desc_limit=1';\r\n\r\n if (controlData.powerTypeGas && controlData.viewTypeHistory)\r\n selectData = 'EDS/Live?dataset=Gasflow?offset=0_start=' + convertDate(previousDay) + '_end=' + convertDate(date) + '_sort=GasDay';\r\n\r\n await fetch(EDSUrl() + selectData)\r\n .then((response) => {\r\n response.json().then((jsonStr) => {\r\n\r\n var json = JSON.parse(jsonStr);\r\n\r\n let now = new Date(Date.now());\r\n now.setHours(0);\r\n now.setMinutes(0);\r\n now.setSeconds(0);\r\n now.setMilliseconds(0);\r\n\r\n let dataState = 'Success';\r\n //console.log(json.records[0]);\r\n let datasetDate = new Date(json.records[0].GasDay);\r\n datasetDate.setDate(datasetDate.getDate() + 1);\r\n if (datasetDate < now) {\r\n dataState = 'Olddata';\r\n }\r\n setGasData({ data: json.records[0], dataState: dataState });\r\n });\r\n }).catch((error) => {\r\n setGasData({ data: [], dataState: 'Error' });\r\n })\r\n };\r\n var mapStyle = \"cls-8\";\r\n\r\n var appStyle = 'normalMargin';\r\n var foreingColor = \"energinetContryColor\";\r\n\r\n var lastUpdateLabelData: any = powerData.data?.Minutes1DK;\r\n\r\n if (controlData.powerTypeGas) {\r\n lastUpdateLabelData = gasData.data?.GasDay;\r\n }\r\n\r\n if (controlData.convertToGasStorage) {\r\n mapStyle = \"cls-8-GasStorage\";\r\n lastUpdateLabelData = gasData.data?.GasDay;\r\n appStyle = 'gasStorageMargin';\r\n foreingColor = \"gasStorageContryColor\";\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {(controlData.viewTypeHistory && controlData.powerTypeEl) &&\r\n \r\n }\r\n {((controlData.viewTypeHistory && controlData.powerTypeGas) || controlData.viewTypeMap) &&\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!controlData.convertToGasStorage &&\r\n (!controlData.viewTypeHistory && (controlData.powerTypeGas && gasData.dataState === 'Success')) &&\r\n \r\n }\r\n {controlData.viewTypeMap &&\r\n \r\n }\r\n\r\n {/* {(controlData.convertToGasStorage) &&\r\n \r\n } */}\r\n\r\n {(controlData.powerTypeGas && controlData.viewTypeHistory) &&\r\n }\r\n\r\n {!controlData.convertToGasStorage && }\r\n {controlData.powerTypeEl &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* Ud for Harboøre */}\r\n \r\n {/* Ud for Søndervig */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {controlData.powerTypeGas &&\r\n \r\n\r\n \r\n\r\n \r\n {(!controlData.convertToGasStorage) &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* Baltic Pipe */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {!controlData.convertToGasStorage && }\r\n {controlData.convertToGasStorage && }\r\n \r\n }\r\n {controlData.powerTypeEl &&\r\n \r\n }\r\n\r\n {controlData.convertToGasStorage &&\r\n \r\n }\r\n \r\n
    \r\n {(controlData.powerTypeEl && controlData.showMeassure) &&\r\n \r\n \r\n \r\n \r\n }\r\n {(controlData.powerTypeEl && controlData.showLegends) &&\r\n \r\n }\r\n {(controlData.powerTypeGas && controlData.showMeassure) &&\r\n \r\n }\r\n {(controlData.powerTypeGas && controlData.showLegends) &&\r\n \r\n }\r\n {(!controlData.convertToGasStorage && controlData.powerTypeGas) && }\r\n
    \r\n {(controlData.convertToGasStorage) &&\r\n \r\n }\r\n
    \r\n
    \r\n }\r\n
    \r\n );\r\n}\r\n\r\nexport default App;\r\n","import { loadTheme } from '@fluentui/react/lib/Styling';\r\n\r\nexport function loadEnerginetTheme():any{ \r\n loadTheme({\r\n palette: {\r\n themePrimary: '#02525e',\r\n themeLighterAlt: '#f1fbfa',\r\n themeLighter: '#caf1eb',\r\n themeLight: '#a0e4da',\r\n themeTertiary: '#51c9b7',\r\n themeSecondary: '#15b099',\r\n themeDarkAlt: '#00957f',\r\n themeDark: '#007e6b',\r\n themeDarker: '#005d4f',\r\n neutralLighterAlt: '#f8f8f8',\r\n neutralLighter: '#f4f4f4',\r\n neutralLight: '#eaeaea',\r\n neutralQuaternaryAlt: '#dadada',\r\n neutralQuaternary: '#d0d0d0',\r\n neutralTertiaryAlt: '#c8c8c8',\r\n neutralTertiary: '#8abec8',\r\n neutralSecondary: '#6cabb6',\r\n neutralPrimaryAlt: '#5197a4',\r\n neutralPrimary: '#09505d',\r\n neutralDark: '#267280',\r\n black: '#16616e',\r\n white: '#ffffff',\r\n }\r\n });\r\n}","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}