{"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","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","ProductionLt100MW","elm","dk1_no","dk1_se","dk1_nl","dk1_de","dk1_dk2","dk2_se","dk2_de","bh_se","setState","DK2_DE","DK1_DK2","DK1_NO","DK1_SE","DK1_NL","DK1_DE","DK2_SE","BH_SE","Minutes1DK","Fragment","className","state","x1","y1","x2","y2","points","d","strings","local","GasstorageConsumptionInDK","PowerDataMissing","GasDataMissing","PowerDataError","GasDataError","SelectDate","DailyGasFromNorway","DailyGasFromNorthSea","DailyGasToGermany","DailyGasFromGermany","DailyGasConsumptionInDenmark","DailyGasFromBiomethane","DailyGasFromStorage","DailyGasToStorage","DailyGasToSweden","DailyGasFromPoland","DailyGasToPoland","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","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","value","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","ekstraLabel","ekstraLabelValue","GasLabels","directionLabel","BalticPipe","directionBalticPipe","gasData","GasPipes","directionNorway","gasStorageAni","position","left","top","GasStorageLabel","GasStorageLabels","exportString","importString","console","log","GasStorageLegend","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","fromDate","now","loading","then","GetDataFromDate","getFullYear","fixDatePart","getMonth","part","partStr","toString","ProductionGe100MW","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","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","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","refreshInterval","useEffect","getData","interval","setInterval","clearInterval","datasetDate","catch","fetchGasData","previousDay","selectData","setSeconds","setMilliseconds","GasDay","mapStyle","lastUpdateLabelData","preserveAspectRatio","xmlns","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","getElementById"],"mappings":"qvBAiBeA,E,4JAVX,WACI,IAAIC,EAAoB,oBAAgBC,KAAKC,MAAMC,KAA3B,YAAmCF,KAAKC,MAAME,KAA9C,KACxB,OACI,mBAAGC,GAAG,uBAAN,SACI,qBAAKC,MAAM,MAAMC,OAAO,MAAMC,UAAWR,EAAeS,UAAU,gC,GAL/CC,IAAMC,WC0G1BC,G,8KA9FX,WACOX,KAAKC,OAASD,KAAKC,MAAMW,MAC5BZ,KAAKa,c,gCAIT,SAAmBC,GAA2B,IAAD,EACtCd,KAAKC,OAASD,KAAKC,MAAMW,OAAQ,UAAAE,EAAUF,YAAV,eAAgBG,qBAAsBf,KAAKC,MAAMW,KAAKG,mBACtFf,KAAKa,c,uBAIb,WACI,IAAIG,EAAMhB,KAAKC,MAAMW,KACjBK,EAAgBD,EAAG,gBAAoB,EAAE,oBAAoB,YAC7DE,EAAgBF,EAAG,gBAAoB,EAAE,YAAY,oBACrDG,EAAgBH,EAAG,gBAAoB,EAAE,oBAAoB,YAC7DI,EAAgBJ,EAAG,gBAAoB,EAAE,YAAY,oBACrDK,EAAiBL,EAAG,iBAAqB,EAAE,YAAY,oBACvDM,EAAgBN,EAAG,gBAAoB,EAAE,oBAAoB,YAC7DO,EAAgBP,EAAG,gBAAoB,EAAE,YAAY,oBACrDQ,EAAeR,EAAG,qBAAyB,EAAE,oBAAoB,YACrEhB,KAAKyB,SAAS,CACVC,OAAOH,EACPI,QAAQN,EACRO,OAAOX,EACPY,OAAOX,EACPY,OAAOX,EACPY,OAAOX,EACPY,OAAOV,EACPW,MAAMT,EACNU,WAAWlC,KAAKC,MAAMW,KAAKsB,e,oBAInC,WAAU,IAAD,kBACL,OACI,eAAC,IAAMC,SAAP,WACS,oBAAG/B,GAAG,WAAN,UAEL,oBAAGA,GAAG,UAAUgC,UAAS,UAAEpC,KAAKqC,aAAP,aAAE,EAAYX,OAAvC,UACI,sBAAMU,UAAU,SAASE,GAAG,QAAQC,GAAG,QAAQC,GAAG,SAASC,GAAG,WAC9D,0BAAUL,UAAU,SAASM,OAAO,wFACpC,sBAAMN,UAAU,SAASE,GAAG,SAASC,GAAG,SAASC,GAAG,QAAQC,GAAG,aAGnE,oBAAGrC,GAAG,UAAUgC,UAAS,UAAEpC,KAAKqC,aAAP,aAAE,EAAYV,QAAvC,UACI,sBAAMS,UAAU,SAASE,GAAG,QAAQC,GAAG,QAAQC,GAAG,SAASC,GAAG,WAC9D,sBAAML,UAAU,SAASE,GAAG,SAASC,GAAG,SAASC,GAAG,SAASC,GAAG,WAChE,sBAAML,UAAU,SAASE,GAAG,SAASC,GAAG,SAASC,GAAG,QAAQC,GAAG,aAGnE,oBAAGrC,GAAG,UAAUgC,UAAS,UAAEpC,KAAKqC,aAAP,aAAE,EAAYT,OAAvC,UACI,sBAAMQ,UAAU,SAASE,GAAG,QAAQC,GAAG,MAAMC,GAAG,OAAOC,GAAG,SAC1D,sBAAML,UAAU,SAASE,GAAG,QAAQC,GAAG,MAAMC,GAAG,SAASC,GAAG,UAC5D,sBAAML,UAAU,SAASE,GAAG,SAASC,GAAG,QAAQC,GAAG,QAAQC,GAAG,YAGlE,oBAAGrC,GAAG,UAAUgC,UAAS,UAAEpC,KAAKqC,aAAP,aAAE,EAAYR,OAAvC,UACI,sBAAMO,UAAU,SAASE,GAAG,QAAQC,GAAG,OAAOC,GAAG,SAASC,GAAG,SAC7D,sBAAML,UAAU,SAASE,GAAG,SAASC,GAAG,QAAQC,GAAG,SAASC,GAAG,UAC/D,sBAAML,UAAU,SAASE,GAAG,SAASC,GAAG,QAAQC,GAAG,SAASC,GAAG,aAGnE,mBAAGrC,GAAG,UAAUgC,UAAS,UAAEpC,KAAKqC,aAAP,aAAE,EAAYP,OAAvC,SACI,sBAAMM,UAAU,SAASE,GAAG,IAAIC,GAAG,SAASC,GAAG,QAAQC,GAAG,eAIlE,oBAAGrC,GAAG,cAAN,UACI,0BAAUgC,UAAU,SAASM,OAAO,oCACpC,sBAAMN,UAAU,SAASE,GAAG,QAAQC,GAAG,OAAOC,GAAG,QAAQC,GAAG,YAEhE,oBAAGrC,GAAG,WAAN,UAEI,mBAAGA,GAAG,UAAUgC,UAAS,UAAEpC,KAAKqC,aAAP,aAAE,EAAYN,OAAvC,SAA+C,sBAAMK,UAAU,SAASO,EAAE,uBAAuBpC,UAAU,wBAE3G,mBAAGH,GAAG,UAAUgC,UAAS,UAAEpC,KAAKqC,aAAP,aAAE,EAAYJ,MAAvC,SAA8C,sBAAMG,UAAU,SAASO,EAAE,yBAAyBpC,UAAU,0BAE5G,mBAAGH,GAAG,UAAUgC,UAAS,UAAEpC,KAAKqC,aAAP,aAAE,EAAYL,OAAvC,SAA+C,sBAAMI,UAAU,SAASO,EAAE,yBAAyBpC,UAAU,0BAE7G,mBAAGH,GAAG,UAAUgC,UAAU,oBAA1B,SAA+C,sBAAMA,UAAU,SAAS7B,UAAU,qBAAqBoC,EAAE,2BACzG,mBAAGvC,GAAG,UAAUgC,UAAU,oBAA1B,SAA+C,sBAAMA,UAAU,SAAS7B,UAAU,iBAAiBoC,EAAE,wBAErG,oBAAGvC,GAAG,UAAUgC,UAAS,UAAEpC,KAAKqC,aAAP,aAAE,EAAYX,OAAvC,UACI,sBAAMU,UAAU,SAASO,EAAE,qBAAqBpC,UAAU,uBAC1D,sBAAM6B,UAAU,SAASE,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,wB,GAxFtDhC,IAAMC,Y,4CCoFvBkC,EAAU,SAACC,GACX,MAAW,UAARA,EACS,CACJC,0BAA0B,oDAC1BC,iBAAiB,6HACjBC,eAAe,6HACfC,eAAe,yGACfC,aAAa,yGACbC,WAAW,cACXC,mBAAmB,cACnBC,qBAAqB,qBACrBC,kBAAkB,aAClBC,oBAAoB,eACpBC,6BAA6B,yBAC7BC,uBAAuB,sBACvBC,oBAAoB,iDACpBC,kBAAkB,+CAClBC,iBAAiB,YACjBC,mBAAmB,cACnBC,iBAAiB,YAEjBC,YAAY,8BACZC,iBAAiB,wCACjBC,cAAc,kCACdC,cAAc,0CACdC,cAAc,yBACdC,cAAc,GACdC,iBAAiB,+DACjBC,iBAAiB,gEACjBC,iBAAiB,mDACjBC,iBAAiB,GACjBC,wBAAwB,8BACxBC,cAAc,iBACdC,KAAK,OACLC,eAAe,oBACfC,WAAW,4BACXC,qBAAqB,wBACrBC,QAAQ,YACRC,QAAQ,YACRC,eAAe,kBACfC,WAAW,cACXC,aAAa,gBACbC,qBAAqB,yBACrBC,wBAAwB,mCACxBC,oBAAoB,uBACpBC,YAAY,eACZC,qBAAqB,yBACrBC,uBAAuB,0BACvBC,eAAe,kBACfC,YAAY,eACZC,gBAAgB,6BAChBC,QAAQ,WACRC,qBAAqB,2BACrBC,WAAW,cACXC,QAAQ,UACRC,eAAe,kBACfC,QAAQ,UACRC,eAAe,oBACfC,mBAAmB,wBACnBC,cAAc,mBACdC,cAAc,mBACdC,WAAW,cACXC,8BAA8B,mCAC9BC,qBAAqB,0BACrBC,0BAA0B,cAC1BC,iBAAiB,YACjBC,oBAAoB,uBACpBC,kBAAkB,aAClBC,IAAI,MACJC,aAAa,eACbC,UAAU,cACVC,kBAAkB,sBAClBC,iBAAiB,qBACjBC,gBAAgB,qBAChBC,gBAAgB,qBAChBC,eAAe,mBACfC,kBAAkB,wBAClBC,iBAAiB,0BACjBC,iBAAiB,0BACjBC,cAAc,kBACdC,WAAW,cACXC,oBAAoB,wBACpBC,yBAAyB,YACzBC,kBAAkB,qBAClBC,0BAA0B,gCAC1BC,kBAAkB,+BAClBC,aAAa,iBACbC,SAAS,YACTC,SAAS,2BACTC,cAAc,YACdC,WAAW,6BACXC,gBAAgB,mBAChBC,aAAa,gBACbC,eAAe,oBACfC,cAAc,mBACdC,OAAO,SACPC,OAAO,SACPC,qBAAqB,uBAGlB,CACH7F,0BAA0B,oDAC1BC,iBAAiB,yHACjBC,eAAe,yHACfC,eAAe,gFACfC,aAAa,gFACbC,WAAW,eACXC,mBAAmB,YACnBC,qBAAqB,kBACrBC,kBAAkB,eAClBC,oBAAoB,eACpBC,6BAA6B,oBAC7BC,uBAAuB,oBACvBC,oBAAoB,gCACpBC,kBAAkB,gCAClBC,iBAAiB,cACjBC,mBAAmB,YACnBC,iBAAiB,YAEjBC,YAAY,8BACZC,iBAAiB,8BACjBC,cAAc,iCACdC,cAAc,qCACdC,cAAc,6BACdC,cAAc,GACdC,iBAAiB,+DACjBC,iBAAiB,gEACjBC,iBAAiB,mDACjBC,iBAAiB,GACjBC,wBAAwB,yBACxBC,cAAc,kBACdC,KAAK,YACLC,eAAe,qBACfC,WAAW,mCACXC,qBAAqB,oBACrBC,QAAQ,wBACRC,QAAQ,yBACRC,eAAe,mBACfC,WAAW,eACXC,aAAa,gBACbC,qBAAqB,eACrBC,wBAAwB,8BACxBC,oBAAoB,qBACpBC,YAAY,UACZC,qBAAqB,0BACrBC,uBAAuB,YACvBC,eAAe,oBACfC,YAAY,eACZC,gBAAgB,2BAChBC,QAAQ,YACRC,qBAAqB,0BACrBC,WAAW,WACXC,QAAQ,WACRC,eAAe,kBACfC,QAAQ,WACRC,eAAe,qBACfC,mBAAmB,oBACnBC,cAAc,kBACdC,cAAc,oBACdC,WAAW,kBACXC,8BAA8B,mCAC9BC,qBAAqB,uBACrBC,0BAA0B,cAC1BG,kBAAkB,YAClBF,iBAAiB,YACjBC,oBAAoB,uBACpBE,IAAI,OACJC,aAAa,cACbC,UAAU,cACVC,kBAAkB,yBAClBC,iBAAiB,sBACjBC,gBAAgB,8BAChBC,gBAAgB,+BAChBC,eAAe,eACfC,kBAAkB,sBAClBC,iBAAiB,kCACjBC,iBAAiB,+BACjBC,cAAc,qBACdC,WAAW,YACXC,oBAAoB,qBACpBC,yBAAyB,YACzBC,kBAAkB,iBAClBC,0BAA0B,mBAC1BC,kBAAkB,4BAClBC,aAAa,eACbC,SAAS,cACTC,SAAS,2BACTC,cAAc,YACdC,WAAW,2BACXC,gBAAgB,mBAChBC,aAAa,gBACbC,eAAe,yBACfC,cAAc,wBACdC,OAAO,UACPC,OAAO,SACPC,qBAAqB,kCCvS1BC,EAAmB,SAACC,GACvB,IACIC,EADaC,KAAKC,MAAMH,GACdI,eAAeC,KAG7B,MAFa,QAARJ,IACAA,EAAI,KACFA,GAQJK,EAAkB,SAACN,GACvB,IAAIO,EAAaL,KAAKC,MAAMH,GAE5B,OADAO,EAAML,KAAKM,IAAID,IACJH,eAAeC,MAGvBI,EAAoB,SAACT,GACxB,IAAIO,EAAaL,KAAKC,MAAMH,EAAM,KAElC,OADAO,EAAML,KAAKM,IAAID,IACJH,eAAeC,MAIvBK,EAAe,SAACV,GACnB,OAAGA,EACQA,EAAMI,eAAeC,KAErB,KAGRM,EAAS,WAGZ,OAAOC,IAAY,QAGhBA,EAAY,WAGf,MAAO,2DAQJP,EAAc,WACjB,OAAkD,IAA/CQ,SAASC,SAASC,OAAOC,QAAQ,WAGW,IAA5CH,SAASC,SAASG,KAAKD,QAAQ,UAGwB,IAAvDH,SAASC,SAASG,KAAKD,QAAQ,mBALxB,QAQH,SClDVE,cAkBA,IAAMC,EAAmBpH,EAAQsG,KAE3Be,EAAmC,CACrC,CAAEC,IAAK,IAAKC,KAAMH,EAAOlD,KACzB,CAAEoD,IAAK,IAAKC,KAAMH,EAAO/D,iBAGvBmE,EAAc,CAAEC,YAAa,IAqKpBC,E,kDAlKX,WAAYrK,GAA0B,IAAD,8BACjC,cAAMA,IAiEFsK,YAAoC,CACxC,CAAEL,IAAK,IAAKC,KAAMH,EAAOlC,2BAExB,CAAEoC,IAAK,IAAKC,KAAMH,EAAOjC,oBAnE1B,EAAK1F,MAAQ,CAAEmI,qBAAqB,EAAOC,aAAa,EAAMC,iBAAiB,EAAOC,aAAa,EAAMC,cAAc,EAAOC,cAAc,EAAMC,aAAa,EAAMC,aAAc,IAAKC,WAAY,KAFnK,E,qDAKrC,WAAqB,IAAD,QAE4C,IAAxDtB,SAASC,SAASC,OAAOC,QAAQ,mBACjC7J,KAAKyB,SAAS,CACV+I,qBAAqB,EACrBI,cAAc,EACdD,aAAa,EACbF,aAAa,EACbM,aAAc,IACdC,WAAY,IACZF,aAAa,EACbD,cAAc,IACf,WAAQ,EAAK5K,MAAMgL,SAAS,EAAK5I,WAIgB,IAApDqH,SAASC,SAASC,OAAOC,QAAQ,cACjC7J,KAAKyB,SAAS,CACVmJ,cAAc,EACdD,aAAa,EACbF,aAAa,EACbM,aAAc,IACdC,WAAY,IACZF,aAAa,EACbD,cAAc,IACf,WAAQ,EAAK5K,MAAMgL,SAAS,EAAK5I,WAIe,IAAnDqH,SAASC,SAASC,OAAOC,QAAQ,aACjC7J,KAAKyB,SAAS,CACVmJ,cAAc,EACdD,aAAa,EACbF,aAAa,EACbM,aAAc,IACdC,WAAY,MACb,WAAQ,EAAK/K,MAAMgL,SAAS,EAAK5I,WAEyB,IAAxDqH,SAASC,SAASC,OAAOC,QAAQ,mBACtC7J,KAAKyB,SAAS,CACVmJ,cAAc,EACdD,aAAa,EACbF,aAAa,EACbC,iBAAiB,EACjBK,aAAc,IACdC,WAAY,MACb,WAAQ,EAAK/K,MAAMgL,SAAS,EAAK5I,Y,uBAqB5C,WAAqB,IAAD,OACZ6I,EAASlL,KAAKqC,MAAMoI,YAAc,IAAM,IACxCU,EAAWnL,KAAKqC,MAAM0I,aACtBK,EAAcpL,KAAKqC,MAAMsI,YACzBU,EAAerL,KAAKqC,MAAMuI,aAC1BH,GAAezK,KAAKqC,MAAMoI,YAC1BC,GAAmB1K,KAAKqC,MAAMqI,gBAOlC1K,KAAKyB,SAAS,CACVgJ,YAAaA,EACbC,gBAAiBA,EACjBM,WAAYE,EACZH,aAAcI,EACdR,YAAaS,EACbR,aAAcS,IACf,WAKC,EAAKpL,MAAMgL,SAAS,EAAK5I,Y,wBAIjC,WAAsB,IAAD,OACb8I,EAAWnL,KAAKqC,MAAMsI,YAAc,IAAM,IAC9C3K,KAAKyB,SAAS,CACVkJ,aAAc3K,KAAKqC,MAAMsI,YACzBC,cAAe5K,KAAKqC,MAAMuI,aAC1BG,aAAcI,IACf,WAAQ,EAAKlL,MAAMgL,SAAS,EAAK5I,Y,4BAGxC,WAA0B,IAAD,OACrBrC,KAAKyB,SAAS,CACVoJ,cAAe7K,KAAKqC,MAAMwI,eAC3B,WAAQ,EAAK5K,MAAMgL,SAAS,EAAK5I,Y,2BAGxC,WAAyB,IAAD,OACpBrC,KAAKyB,SAAS,CACVqJ,aAAc9K,KAAKqC,MAAMyI,cAC1B,WAAQ,EAAK7K,MAAMgL,SAAS,EAAK5I,Y,oBAGxC,WAKI,OACI,cAAC,IAAMF,SAAP,WACMnC,KAAKqC,MAAMmI,qBACT,qBAAKpI,UAAU,YAAf,SACI,sBAAKhC,GAAG,aAAR,UACI,sBAAKgC,UAAU,eAAf,UACI,oBAAIA,UAAU,mBAAd,SAAkC4H,EAAOvF,0BACzC,yBAEJ,sBAAKrC,UAAU,MAAf,UACI,qBAAKA,UAAU,sBAAf,SACI,cAACkJ,EAAA,EAAD,CAAaC,mBAAmB,IAAInJ,UAAU,QAAQoJ,QAASvB,EAC3DwB,SAAUzL,KAAK0L,UAAUC,KAAK3L,MAAO4L,MAAO5B,EAAOzE,YAAasG,YAAa7L,KAAKqC,MAAM2I,eAEhG,qBAAK5I,UAAU,sBAAf,SACI,cAACkJ,EAAA,EAAD,CAAaC,mBAAmB,IAAInJ,UAAU,QAAQoJ,QAASxL,KAAKuK,YAChEkB,SAAUzL,KAAK8L,WAAWH,KAAK3L,MAAO4L,MAAO5B,EAAOrF,KAAMkH,YAAa7L,KAAKqC,MAAM0I,kBAExF/K,KAAKqC,MAAMqI,iBACT,sBAAKtI,UAAU,iBAAf,UACI,qBAAKA,UAAU,WAAf,SAA2B4H,EAAO9D,UAClC,eAAC6F,EAAA,EAAD,CAAOC,OAAQ5B,EAAahI,UAAU,WAAtC,UACI,cAAC6J,EAAA,EAAD,CAAU7J,UAAU,QAAQwJ,MAAO5B,EAAOjD,aAAcmF,QAASlM,KAAKqC,MAAMwI,aAAcY,SAAUzL,KAAKmM,eAAeR,KAAK3L,QAC7H,cAACiM,EAAA,EAAD,CAAU7J,UAAU,QAAQwJ,MAAO5B,EAAOnC,kBAAmBqE,QAASlM,KAAKqC,MAAMyI,YAAaW,SAAUzL,KAAKoM,cAAcT,KAAK3L,4B,GAvJnJS,IAAMC,WCxBzBsJ,G,OAAmBpH,EAAQsG,MA8ClBnF,E,kDA3CX,WAAY9D,GAA2B,IAAD,8BAClC,cAAMA,IACDoC,MAAQ,CAAEgK,KAAM,EAAKpM,MAAMoM,MAFE,E,sDAKtC,SAAmBvL,GACXd,KAAKC,OAAUa,EAAUuL,OAASrM,KAAKC,MAAMoM,MAC7CrM,KAAKyB,SAAS,CAAC4K,KAAMrM,KAAKC,MAAMoM,S,oBAGxC,WAqBI,OACI,cAAC,WAAD,UACQ,+BAAeC,EAAE,MAAMC,EAAE,KAAKlM,MAAM,MAAMC,OAAO,KAAjD,SACI,qBAAKkM,MAvBqB,CACtCC,QAAS,eACTC,QAAS,MACTC,cAAe,YACfC,MAAO,WAmBK,SACI,qBAAKxM,GAAG,qBAAqBoM,MAjBJ,CACzCK,SAAU,WACVC,WAAY,sBACZC,UAAW,SAcK,SAA+C/C,EAAOjG,wB,GApCxDtD,IAAMC,WCfjB,MAA0B,0CCsB1BsM,E,4JAZX,WACI,IAAIC,EAAiBxD,IAAcyD,EACnC,OACI,+BAAeZ,EAAGtM,KAAKC,MAAMC,KAAMqM,EAAGvM,KAAKC,MAAME,KAAME,MAAM,MAAMC,OAAO,KAA1E,SACI,8BACG,qBAAK6M,IAAKF,EAAS5M,MAAM,OAAO+M,IAAI,2B,GAN3B3M,IAAMC,WCanB2M,E,4JAXX,WACI,OACI,+BACI,sBAAMjL,UAAU,QAAhB,SAAyBpC,KAAKC,MAAM2L,QACpC,uBAAMxJ,UAAU,SAAhB,UAA0BpC,KAAKC,MAAMqN,WAAYtN,KAAKC,MAAMsN,KAA5D,gB,GALiB9M,IAAMC,WCEjCsJ,G,OAAkBpH,EAAQsG,MAwFjBsE,E,kDArFX,WAAYvN,GAAyB,IAAD,8BAChC,cAAMA,IACDoC,MAAQ,CAAEzB,KAAO,IAFU,E,qDAKpC,WACOZ,KAAKC,OAASD,KAAKC,MAAMW,MACxBZ,KAAKyN,iB,gCAIb,SAAmB3M,GACZd,KAAKC,OAASD,KAAKC,MAAMW,MAAQE,EAAUF,OAASZ,KAAKC,MAAMW,MAC9DZ,KAAKyN,iB,0BAIb,WACI,IACIC,EADAC,EAAgB,GAGhB/M,EAAOZ,KAAKC,MAAMW,KAClBiI,EAAQjI,EAAI,gBACR8M,EAAR7E,EAAM,EAASmB,EAAOvB,OAAQ,KAAYuB,EAAOtB,OAAS,KAC1DiF,EAAUC,KAAK,CAAChC,MAAM5B,EAAO3D,cAAewC,MAAMM,EAAgBN,GAAQgF,KAAK,KAAMC,KAAK,KAAKR,WAAWI,IAGlGA,GADR7E,EAAQjI,EAAI,iBACN,EAASoJ,EAAOvB,OAAQ,KAAYuB,EAAOtB,OAAS,KAC1DiF,EAAUC,KAAK,CAAChC,MAAM5B,EAAO1D,cAAeuC,MAAMM,EAAgBN,GAAQgF,KAAK,MAAOC,KAAK,KAAKR,WAAWI,IAGnGA,GADR7E,EAAQjI,EAAI,iBACN,EAASoJ,EAAOvB,OAAQ,KAAYuB,EAAOtB,OAAS,KAC1DiF,EAAUC,KAAK,CAAChC,MAAM5B,EAAO5D,mBAAoByC,MAAMM,EAAgBN,GAAQgF,KAAK,KAAMC,KAAK,MAAMR,WAAWI,IAGxGA,GADR7E,EAAQjI,EAAI,iBACN,EAASoJ,EAAOvB,OAAQ,KAAYuB,EAAOtB,OAAS,KAC1DiF,EAAUC,KAAK,CAAChC,MAAM5B,EAAO7D,eAAgB0C,MAAMM,EAAgBN,GAAQgF,KAAK,MAAOC,KAAK,MAAMR,WAAWI,IAGrGA,GADR7E,EAAQjI,EAAI,kBACN,EAAS,MAAa,KAC5B+M,EAAUC,KAAK,CAAChC,MAAM5B,EAAOhC,aAAca,MAAMM,EAAgBN,GAAQgF,KAAK,MAAOC,KAAK,MAAMR,WAAWI,IAGnGA,GADR7E,EAAQjI,EAAI,iBACN,EAASoJ,EAAOvB,OAAQ,KAAYuB,EAAOtB,OAAS,KAC1DiF,EAAUC,KAAK,CAAChC,MAAM5B,EAAOxB,cAAeK,MAAMM,EAAgBN,GAAQgF,KAAK,MAAOC,KAAK,MAAMR,WAAWI,IAGpGA,GADR7E,EAAQjI,EAAI,iBACN,EAASoJ,EAAOvB,OAAQ,KAAYuB,EAAOtB,OAAS,KAC1DiF,EAAUC,KAAK,CAAChC,MAAM5B,EAAOzB,eAAgBM,MAAMM,EAAgBN,GAAQgF,KAAK,MAAOC,KAAK,MAAMR,WAAWI,IAGrGA,GADR7E,EAAQjI,EAAI,sBACN,EAASoJ,EAAOvB,OAAQ,KAAYuB,EAAOtB,OAAS,KAC1DiF,EAAUC,KAAK,CAAChC,MAAM5B,EAAOpF,eAAgBiE,MAAMM,EAAgBN,GAAQgF,KAAK,MAAOC,KAAK,MAAMR,WAAWI,IAE7G1N,KAAKyB,SAAS,CACVb,KAAM+M,M,oBAKd,WACI,IAAIzD,EAAa,EACjB,OACI,qBAAK9J,GAAG,gBAAR,SACA,sBAAKgC,UAAU,kBAAf,UACI,6BAAK4H,EAAOtE,iBACZ,oBAAItD,UAAU,YAAd,SACKpC,KAAKqC,OAASrC,KAAKqC,MAAMzB,KAAKmN,KAAI,SAACC,GAChC,OAAM,cAAC,EAAD,CAAgCT,KAAMS,EAAInF,MAAO+C,MAAOoC,EAAIpC,MAAOiC,KAAMG,EAAIH,KAAMC,KAAME,EAAIF,KAAMR,WAAYU,EAAIV,YAA1FpD,mB,GArErBzJ,IAAMC,WCTlCsJ,G,OAAkBpH,EAAQsG,MA8FjB+E,E,kDAtEX,WAAYhO,GAAsB,IAAD,8BAC7B,cAAMA,IACDoC,MAAQ,CAAEzB,KAAO,IAFO,E,sDAWjC,SAAmBE,GACZd,KAAKC,OAASD,KAAKC,MAAMW,MAAQE,EAAUF,OAASZ,KAAKC,MAAMW,MAMlEZ,KAAKyB,SAAS,CACVb,KAAOZ,KAAKC,MAAMW,S,oBAM1B,WAAU,IAAD,gCACeoJ,EAAOtD,0BACxB1G,KAAKqC,MAAMzB,MAAyC,IAAjCZ,KAAKqC,MAAMzB,KAAKsN,aAClClO,KAAKqC,MAAMzB,KAAKsN,aAAa,GAAoBlE,EAAOtD,0BAAiCsD,EAAOnD,oBAAoCmD,EAAOtD,0BAAiCsD,EAAOrD,kBAElKqD,EAAOtD,0BAETsD,EAAOpC,yBACvB5H,KAAKqC,MAAMzB,MAAyC,IAAjCZ,KAAKqC,MAAMzB,KAAKuN,aAClCnO,KAAKqC,MAAMzB,KAAKuN,aAAa,GAAkBnE,EAAOpC,yBAAgCoC,EAAOnD,oBAAkCmD,EAAOpC,yBAAgCoC,EAAOrD,kBAE7JqD,EAAOpC,yBAE3B,IAAIwG,EAAoB,UAAGpO,KAAKqC,MAAMzB,YAAd,iBAAG,EAAiByN,eAApB,aAAG,EAA0BC,gBAClDF,EAAuB,IACtBA,EAAqB,GAG1B,IPhEqBvF,EOgEjB0F,EAAW,UAAGvO,KAAKqC,MAAMzB,YAAd,iBAAG,EAAiByN,eAApB,aAAG,EAA0BE,YAK3C,OAJkB,IAAhBA,IPjEkB1F,EOkEc0F,EAAlCA,IPjEgC,EAAnBxF,KAAKC,MAAMH,IACjBI,eAAeC,MOoElB,qBAAK9I,GAAG,SAAR,SACI,sBAAKgC,UAAU,kBAAf,UACI,6BAAK4H,EAAOjC,qBACX,UAAA/H,KAAKqC,aAAL,eAAYzB,OACT,qBAAIwB,UAAU,YAAd,UACI,+BAAI,sBAAMA,UAAU,QAAhB,SAAyB4H,EAAOvG,yBAA8B,uBAAMrB,UAAU,SAAhB,UAA0BmH,EAAY,UAACvJ,KAAKqC,MAAMzB,YAAZ,aAAC,EAAiB4N,eAAxD,aAClE,+BAAI,sBAAMpM,UAAU,QAAhB,SAAyB4H,EAAO5G,qBAA0B,uBAAMhB,UAAU,SAAhB,UAA0BmH,EAAY,UAACvJ,KAAKqC,MAAMzB,YAAZ,aAAC,EAAiB0N,iBAAxD,aAC9D,+BAAI,sBAAMlM,UAAU,QAAhB,SAAyB4H,EAAO3G,uBAA4B,uBAAMjB,UAAU,SAAhB,UAA0BmH,EAAY,UAACvJ,KAAKqC,MAAMzB,YAAZ,aAAC,EAAiB6N,aAAxD,aAChE,+BAAI,sBAAMrM,UAAU,QAAhB,UAAyB,UAAApC,KAAKqC,MAAMzB,YAAX,eAAiB8N,oBAAmB,EAAE1E,EAAOzG,oBAAoByG,EAAO1G,oBAAyB,uBAAMlB,UAAU,SAAhB,UAA0B+G,EAAe,UAACnJ,KAAKqC,MAAMzB,YAAZ,aAAC,EAAiB8N,oBAA3D,aAC9H,+BAAI,sBAAMtM,UAAU,QAAhB,UAAyB,UAAApC,KAAKqC,MAAMzB,YAAX,eAAiB2N,aAAY,EAAEvE,EAAOnG,mBAAmBmG,EAAOlG,mBAAwB,uBAAM1B,UAAU,SAAhB,UAA0B+G,EAAe,UAACnJ,KAAKqC,MAAMzB,YAAZ,aAAC,EAAiB2N,aAA3D,aACrH,+BAAI,sBAAMnM,UAAU,QAAhB,SAAyB4H,EAAOpG,mBAAwB,uBAAMxB,UAAU,SAAhB,UAA0B+G,EAAe,UAACnJ,KAAKqC,MAAMzB,YAAZ,aAAC,EAAiB+N,aAA3D,aAC5D,+BAAI,sBAAMvM,UAAU,QAAhB,UAAyB,UAAApC,KAAKqC,MAAMzB,YAAX,eAAiBgO,oBAAmB,EAAE5E,EAAOtG,oBAAoBsG,EAAOrG,oBAAyB,uBAAMvB,UAAU,SAAhB,UAA0B+G,EAAe,UAACnJ,KAAKqC,MAAMzB,YAAZ,aAAC,EAAiBgO,oBAA3D,aAC9H,+BAAI,sBAAMxM,UAAU,QAAhB,SAAyB4H,EAAOxG,+BAAoC,uBAAMpB,UAAU,SAAhB,UAA0B+G,EAAe,UAACnJ,KAAKqC,MAAMzB,YAAZ,aAAC,EAAiBiO,cAA3D,yB,GA9D/EpO,IAAMC,WCxBrBsJ,G,OAAkBpH,EAAQsG,MAyBjB4F,E,4JArBX,WACI,OACI,qBAAK1O,GAAG,aAAR,SACI,sBAAKgC,UAAU,kBAAf,UACI,6BAAM4H,EAAOnC,oBACb,qBAAIzF,UAAU,YAAd,UACI,+BAAI,uBAAMA,UAAU,QAAhB,cAA0B4H,EAAOjE,cAAmB,sBAAM3D,UAAU,0BACxE,+BAAI,sBAAMA,UAAU,QAAhB,SAAyB4H,EAAO3C,iBAAuB,sBAAMjF,UAAU,8BAC3E,+BAAI,sBAAMA,UAAU,QAAhB,SAAyB4H,EAAOhD,YAAkB,sBAAM5E,UAAU,+BACtE,+BAAI,sBAAMA,UAAU,QAAhB,SAAyB4H,EAAOjD,eAAqB,sBAAM3E,UAAU,qCAEzE,+BAAI,sBAAMA,UAAU,QAAhB,SAAyB4H,EAAOnE,UAAgB,sBAAMzD,UAAU,2CACpE,+BAAI,sBAAMA,UAAU,QAAhB,SAAyB4H,EAAOlE,uBAA6B,sBAAM1D,UAAU,+BACjF,+BAAI,sBAAMA,UAAU,QAAhB,SAAyB4H,EAAOrB,uBAA6B,sBAAMvG,UAAU,+C,GAf9E3B,IAAMC,WCiFlBqO,E,kDArEX,WAAY9O,GAAyB,IAAD,8BAChC,cAAMA,IAWF+O,iBAAmB,WACnBC,OAAOC,WAAa,MAAQD,OAAOC,WAAa,IAChD,EAAKzN,SAAS,CAAEoL,SAAW,KAAU,GAAM,KAAOoC,OAAOC,YAAc,KAAQ,QAE/E,EAAKzN,SAAS,CAAEoL,SAAU,eAd9B,EAAKxK,MAAQ,CAAEwK,SAAU,YAFO,E,qDAKpC,WACIoC,OAAOE,iBAAiB,SAAUnP,KAAKgP,oB,kCAE3C,WACIC,OAAOG,oBAAoB,SAAUpP,KAAKgP,oB,oBAU9C,WACI,IASIK,EAA2C,CAC3CxC,SAAU7M,KAAKqC,MAAMwK,SACrBC,WAAY,uBAGZwC,EAAiD,CACjDzC,SAAU7M,KAAKqC,MAAMwK,SACrBC,WAAY,sBACZyC,WAAY,OAGZC,EAA2C,CAC3C3C,SAAU7M,KAAKqC,MAAMwK,SACrBC,WAAY,uBACZyC,WAAY,MACZE,UAAW,MACX9C,cAAe,QAGnB,OACI,+BAAevK,UAAU,oBAAoBkK,EAAGtM,KAAKC,MAAM4N,KAAMtB,EAAGvM,KAAKC,MAAM6N,KAAMzN,MAAM,MAAMC,OAAO,KAAxG,SACI,sBAAKkM,MA9B6B,CACtCC,QAAS,eACTC,QAAS,MAETE,MAAO,UACP8C,OAAQ,kCACRC,gBAAiB,yBAwBb,UACK3P,KAAKC,MAAM2L,OACR,qBAAKY,MAAO6C,EAAZ,SAAyBrP,KAAKC,MAAM2L,QAEvC5L,KAAKC,MAAMsN,MACR,qBAAKf,MAAOgD,EAAZ,SAAyBxP,KAAKC,MAAMsN,OAEvCvN,KAAKC,MAAM2P,aACR,qBAAKpD,MAAO8C,EAAZ,SAA+BtP,KAAKC,MAAM2P,cAC7C5P,KAAKC,MAAM4P,kBACR,sBAAKrD,MAAOgD,EAAZ,UAAyBxP,KAAKC,MAAM4P,iBAApC,SAA2D,gD,GA7D5DpP,IAAMC,WCZvBsJ,EAAkBpH,EAAQsG,KAuDjB4G,E,kDAhDX,WAAY7P,GAAyB,IAAD,8BAChC,cAAMA,IACDoC,MAAQ,CAAEzB,KAAO,IAFU,E,sDAKpC,SAAmBE,GACZd,KAAKC,OAASD,KAAKC,MAAMW,MAAQE,EAAUF,OAASZ,KAAKC,MAAMW,MAC9DZ,KAAKyN,iB,+BAKb,WACOzN,KAAKC,OAASD,KAAKC,MAAMW,MACxBZ,KAAKyN,iB,0BAIb,WACI,IAAIE,EAAgB,GAChB/M,EAAOZ,KAAKC,MAAMW,KAIlB+M,EAAUC,KAAK,CAAChC,MAAO5B,EAAO5G,mBAAoByF,MAAMM,EAAgBvI,EAAK0N,iBAAmB,OAAQT,KAAK,KAAMC,KAAK,QAExHH,EAAUC,KAAK,CAAChC,MAAOhL,EAAK8N,mBAAmB,EAAE1E,EAAOzG,oBAAoByG,EAAO1G,kBAAmBuF,MAAMM,EAAgBvI,EAAK8N,oBAAsB,OAAQb,KAAK,MAAOC,KAAK,QAChLH,EAAUC,KAAK,CAAChC,MAAO5B,EAAOpG,iBAAkBiF,MAAMM,EAAgBvI,EAAK+N,aAAe,OAAQd,KAAK,MAAOC,KAAK,QACnHH,EAAUC,KAAK,CAAChC,MAAO5B,EAAO3G,qBAAsBwF,MAAMM,EAAgBvI,EAAK6N,aAAe,OAAQZ,KAAK,KAAMC,KAAK,QACtHH,EAAUC,KAAK,CAAChC,MAAOhL,EAAK2N,YAAY,EAAEvE,EAAOnG,mBAAmBmG,EAAOlG,iBAAkB+E,MAAMM,EAAgBvI,EAAK2N,aAAc,OAAQV,KAAK,MAAOC,KAAK,QAEnK9N,KAAKyB,SAAS,CACVb,KAAM+M,M,oBAId,WACI,IAAIzD,EAAa,EACjB,OACIlK,KAAKqC,OAASrC,KAAKqC,MAAMzB,KAAKmN,KAAI,SAACC,GAClC,OAAO,cAAC,EAAD,CAAsBT,KAAMS,EAAInF,MAAO+C,MAAOoC,EAAIpC,MAAOiC,KAAMG,EAAIH,KAAMC,KAAME,EAAIF,KAC1FiC,eAAgB/B,EAAI+B,eAAgBH,YAAa5B,EAAI4B,YAAaC,iBAAkB7B,EAAI6B,kBADlE3F,Y,GAzCXzJ,IAAMC,WC8BfsP,G,wDA7BX,WAAY/P,GAAwB,uCAC1BA,G,qDAGV,WACID,KAAKyB,SAASzB,KAAKC,S,oBAGvB,WAAU,IAAD,IACDgQ,EAA8B,uCAGlC,OAFI,UAAAjQ,KAAKqC,aAAL,mBAAY6N,eAAZ,eAAqB3B,aAAc,IACnC0B,EAAsB,gDAEtB,cAAC,IAAM9N,SAAP,UACI,oBAAG/B,GAAG,aAAN,UAEI,sBAAMgC,UAAW6N,EAAqBtN,EAAE,6QAA6QpC,UAAU,wBAC/T,sBAAM6B,UAAU,gBAAgBO,EAAE,sHAAsHpC,UAAU,wBAClK,sBAAM6B,UAAU,gBAAgBO,EAAE,uFAAuFpC,UAAU,wBACnI,0BAAU6B,UAAU,gBAAgBM,OAAO,sBAC3C,sBAAMN,UAAU,gBAAgBO,EAAE,+JAA+JpC,UAAU,iC,GArBtME,IAAMC,YC+GhByP,E,kDA3GX,WAAYlQ,GAAwB,uCAC1BA,G,qDAGV,WACID,KAAKyB,SAAS,CAAE+I,oBAAqBxK,KAAKC,MAAMuK,oBAAqB0F,QAASlQ,KAAKC,MAAMiQ,Y,oBAG7F,WAAU,IAAD,oBACDE,EAA0B,gDAC1B,UAAApQ,KAAKqC,aAAL,mBAAY6N,eAAZ,eAAqB5B,iBAAkB,IACvC8B,EAAkB,yCAGlB,UAAApQ,KAAKqC,aAAL,mBAAY6N,eAAZ,eAAqBzB,aAAc,IACnC2B,EAAkB,yCAGlB,UAAApQ,KAAKqC,aAAL,mBAAY6N,eAAZ,eAAqBxB,oBAAqB,IAC1C0B,EAAkB,wCAMtB,OAHI,UAAApQ,KAAKqC,aAAL,mBAAY6N,eAAZ,eAAqBvB,aAAc,IACnCyB,EAAkB,wCAGlB,cAAC,IAAMjO,SAAP,UACI,oBAAG/B,GAAG,SAAN,UACI,oBAAGA,GAAG,WAAW,YAAU,SAA3B,UACI,0BAAUgC,UAAU,gBAAgBM,OAAO,kLAC3C,0BAAUN,UAAU,gBAAgBM,OAAO,wPAC3C,0BAAUN,UAAU,gBAAgBM,OAAO,wCAC3C,sBAAMN,UAAU,gBAAgBE,GAAG,QAAQC,GAAG,MAAMC,GAAG,QAAQC,GAAG,UAClE,0BAAUL,UAAU,gBAAgBM,OAAO,gDAE/C,oBAAGtC,GAAG,uBAAN,UAEI,sBAAMA,GAAG,aAAagC,UAAWgO,EAAiBzN,EAAE,6BAA6BpC,UAAU,wBAE3F,sBAAMH,GAAG,eAAegC,UA1BR,+CA0BsCO,EAAE,yBAAyBpC,UAAU,wBAE3F,sBAAMH,GAAG,YAAYgC,UAxBN,uCAwBmCO,EAAE,uBAAuBpC,UAAU,oBAErF,sBAAMH,GAAG,YAAYgC,UAtBN,+CAsBmCO,EAAE,4EAA4EpC,UAAU,yBAG9I,cAAC,EAAD,CAAY2P,QAAO,UAAElQ,KAAKqC,aAAP,aAAE,EAAY6N,UAEjC,mBAAG9P,GAAG,eAAe,YAAU,eAAeI,UAAU,gBAAxD,SACI,qBAAKH,MAAM,KAAKC,OAAO,KAAKC,UAAU,qBAAqBC,UAAU,sBAGxE,UAACR,KAAKqC,aAAN,aAAC,EAAYmI,sBACV,oBAAGpK,GAAG,YAAN,UACI,qBAAKC,MAAM,IAAIC,OAAO,IAAIC,UAAU,oBAAoBC,UAAU,iBAClE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,oBAAoBC,UAAU,iBAClE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,qBAAqBC,UAAU,iBACnE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,yBAAyBC,UAAU,iBACvE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,qBAAqBC,UAAU,iBACnE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,uBAAuBC,UAAU,iBACrE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,yBAAyBC,UAAU,iBACvE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,0BAA0BC,UAAU,iBACxE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,2BAEzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,0BAA0BC,UAAU,iBACxE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,0BAA0BC,UAAU,iBACxE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,wBAAwBC,UAAU,iBACtE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBAEzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,yBAAyBC,UAAU,iBACvE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,0BAA0BC,UAAU,iBACxE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,yBAAyBC,UAAU,iBACvE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,wBAAwBC,UAAU,iBACtE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,wBAAwBC,UAAU,iBACtE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,wBAAwBC,UAAU,iBACtE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,yBAAyBC,UAAU,iBACvE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,uBAAuBC,UAAU,iBACrE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,wBAAwBC,UAAU,iBACtE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,uBAAuBC,UAAU,iBACrE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,2BAA2BC,UAAU,iBACzE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,0BAA0BC,UAAU,iBAExE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,0BAA0BC,UAAU,cACxE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,wBAAwBC,UAAU,cACtE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,yBAAyBC,UAAU,0B,GAnG5EC,IAAMC,WCdd,mkRCqEAqF,E,uKAtDX,WACI/F,KAAKyB,SAASzB,KAAKC,S,oBAEvB,WAAU,IAAD,IAqBL,OACI,eAAC,IAAMkC,SAAP,aACK,UAACnC,KAAKqC,aAAN,aAAC,EAAYmI,sBACV,oBAAGpK,GAAG,WAAN,UACI,qBAAKC,MAAM,IAAIC,OAAO,IAAIC,UAAU,wBAAwBC,UAAU,uBACtE,qBAAKH,MAAM,IAAIC,OAAO,IAAIC,UAAU,qBAAqBC,UAAU,2BAI1E,UAAAR,KAAKqC,aAAL,eAAYmI,sBACb,eAAC,WAAD,WACI,+BAAe8B,EAAE,MAAMC,EAAE,MAAMlM,MAAM,MAAMC,OAAO,KAAlD,SACI,gCACI,qBAAK6M,IAAKkD,EAAehQ,MAAM,OAAO+M,IAAI,eAC1C,qBAAKZ,MAlC2B,CAChDK,SAAU,YACVC,WAAY,8BACZF,MAAO,OACPH,QAAQ,SACR6D,SAAU,WACVC,KAAK,QACLC,IAAI,QA2BY,8BAGP,+BAAelE,EAAE,MAAMC,EAAE,MAAMlM,MAAM,MAAMC,OAAO,KAAlD,SACA,gCACI,qBAAK6M,IAAKkD,EAAehQ,MAAM,OAAO+M,IAAI,eAC1C,qBAAKZ,MA9BkC,CACpDK,SAAU,YACVC,WAAY,8BACZF,MAAO,OACPH,QAAQ,SACR6D,SAAU,WACVC,KAAK,QACLC,IAAI,QAuBS,sC,GA9CA/P,IAAMC,WCuEhB+P,E,kDAlEX,WAAYxQ,GAAgC,IAAD,8BACvC,cAAMA,IAWF+O,iBAAmB,WACnBC,OAAOC,WAAa,MAAQD,OAAOC,WAAa,IAChD,EAAKzN,SAAS,CAAEoL,SAAW,KAAU,GAAM,KAAOoC,OAAOC,YAAc,KAAQ,QAE/E,EAAKzN,SAAS,CAAEoL,SAAU,eAd9B,EAAKxK,MAAQ,CAAEwK,SAAU,UAFc,E,qDAK3C,WACIoC,OAAOE,iBAAiB,SAAUnP,KAAKgP,oB,kCAE3C,WACIC,OAAOG,oBAAoB,SAAUpP,KAAKgP,oB,oBAU9C,WACI,IAMIK,EAA2C,CAC3CxC,SAAU7M,KAAKqC,MAAMwK,SACrBC,WAAY,4BAGZwC,EAAiD,CACjDzC,SAAU7M,KAAKqC,MAAMwK,SACrBC,WAAY,8BACZyC,WAAY,OAGZC,EAA2C,CAC3C3C,SAAU7M,KAAKqC,MAAMwK,SACrBC,WAAY,8BACZyC,WAAY,MACZE,UAAW,MACX9C,cAAe,QAGnB,OACI,+BAAeL,EAAGtM,KAAKC,MAAM4N,KAAMtB,EAAGvM,KAAKC,MAAM6N,KAAMzN,MAAM,MAAMC,OAAO,KAA1E,SACI,sBAAKkM,MA3B6B,CACtCC,QAAS,eACTC,QAAS,MACTE,MAAO,WAwBH,UACK5M,KAAKC,MAAM2L,OACR,qBAAKY,MAAO6C,EAAZ,SAAyBrP,KAAKC,MAAM2L,QAEvC5L,KAAKC,MAAMsN,MACR,qBAAKf,MAAOgD,EAAZ,SAAyBxP,KAAKC,MAAMsN,OAEvCvN,KAAKC,MAAM2P,aACR,qBAAKpD,MAAO8C,EAAZ,SAA+BtP,KAAKC,MAAM2P,cAC7C5P,KAAKC,MAAM4P,kBACR,sBAAKrD,MAAOgD,EAAZ,UAAyBxP,KAAKC,MAAM4P,iBAApC,SAA2D,gD,GA1DrDpP,IAAMC,WCZ9BsJ,EAAkBpH,EAAQsG,KAwEjBwH,G,kDA/DX,WAAYzQ,GAAyB,IAAD,8BAChC,cAAMA,IACDoC,MAAQ,CAAEzB,KAAO,IAFU,E,sDAKpC,SAAmBE,GACZd,KAAKC,OAASD,KAAKC,MAAMW,MAAQE,EAAUF,OAASZ,KAAKC,MAAMW,MAC9DZ,KAAKyN,iB,+BAKb,WACOzN,KAAKC,OAASD,KAAKC,MAAMW,MACxBZ,KAAKyN,iB,0BAIb,WACI,IACIC,EADAC,EAAgB,GAEhBgD,EAAe3G,EAAOvB,OACtBmI,EAAe5G,EAAOtB,OAEtB9H,EAAOZ,KAAKC,MAAMW,KACtBiQ,QAAQC,IAAIlQ,GACZ,IAAIiI,EAAQjI,EAAK6N,YACTf,EAAR7E,EAAM,EAAU8H,EAAe,KAAYC,EAAe,KAC1DjD,EAAUC,KAAK,CAAChC,MAAO5B,EAAOtB,OAAQG,MAAMS,EAAkBT,GAAS,MAAO+G,YAAY,KAAMC,iBAAiB,KACjHhC,KAAK,KAAMC,KAAK,MAAMiC,eAAerC,IAG7BA,GADR7E,EAAQjI,EAAK8N,oBACP,EAAUiC,EAAe,KAAYC,EAAe,KAC1DjD,EAAUC,KAAK,CAAChC,MAAO5B,EAAOtB,OAAQG,MAAMS,EAAkBT,GAAS,MAAO+G,YAAY,KAAMC,iBAAiB,KACjHhC,KAAK,MAAOC,KAAK,MAAMiC,eAAerC,IAG9BA,GADR7E,EAAQjI,EAAK+N,aACP,EAAUgC,EAAe,KAAYC,EAAe,KAC1DjD,EAAUC,KAAK,CAAChC,MAAO5B,EAAOvB,OAAQI,MAAMS,EAAkBT,GAAQ,MAAO+G,YAAY,KAAMC,iBAAiB,KAChHhC,KAAK,MAAOC,KAAK,MAAMiC,eAAerC,IAG9BA,GADR7E,EAAQjI,EAAK2N,aACP,EAAUoC,EAAe,KAAYC,EAAe,KAC1DjD,EAAUC,KAAK,CAAChC,MAAO5B,EAAOvB,OAAQI,MAAMS,EAAkBT,GAAQ,MAAO+G,YAAY,KAAMC,iBAAiB,KAChHhC,KAAK,MAAOC,KAAK,MAAMiC,eAAerC,IAEtC1N,KAAKyB,SAAS,CACVb,KAAM+M,M,oBAId,WACI,IAAIzD,EAAa,EACjB,OACIlK,KAAKqC,OAASrC,KAAKqC,MAAMzB,KAAKmN,KAAI,SAACC,GAClC,OAAO,cAAC,EAAD,CAA6BT,KAAMS,EAAInF,MAAO+C,MAAOoC,EAAIpC,MAAOiC,KAAMG,EAAIH,KAAMC,KAAME,EAAIF,KACjGiC,eAAgB/B,EAAI+B,eAAgBH,YAAa5B,EAAI4B,YAAaC,iBAAkB7B,EAAI6B,kBAD3D3F,Y,GAxDXzJ,IAAMC,WCP/BsJ,I,OAAmBpH,EAAQsG,MAwDlB6H,G,kDA7CX,WAAY9Q,GAAgC,IAAD,8BACvC,cAAMA,IACDoC,MAAQ,CAAEzB,KAAM,IAFkB,E,sDAK3C,SAAmBE,GACXd,KAAKC,OAASD,KAAKC,MAAMW,MAAQE,EAAUF,OAASZ,KAAKC,MAAMW,OAC/DiQ,QAAQC,IAAI9Q,KAAKC,MAAMW,MACvBZ,KAAKyB,SAAS,CACVb,KAAMZ,KAAKC,MAAMW,U,+BAK7B,WACOZ,KAAKC,OAASD,KAAKC,MAAMW,MACxBZ,KAAKyB,SAAS,CACVb,KAAMZ,KAAKC,MAAMW,S,oBAK7B,WAAU,IAAD,QACL,OACI,sBAAKwB,UAAU,eAAf,UACI,qBAAKA,UAAU,sBAAsB+K,IAAKkD,EAAejD,IAAI,yBAC7D,sBAAKhL,UAAU,gBAAf,UACI,sBAAKA,UAAU,sBAAf,UACI,sBAAKA,UAAU,YAAf,UAA4B4H,GAAOjE,WAAnC,IAAgDiE,GAAOrD,oBAEvD,sBAAKvG,GAAG,aAAR,UAAsBkJ,EAAiB,UAACtJ,KAAKqC,aAAN,iBAAC,EAAYzB,YAAb,aAAC,EAAkB8N,oBAA1D,YAMJ,sBAAKtM,UAAU,WAAf,UACI,qBAAKA,UAAU,YAAf,SAA4B4H,GAAOlH,4BACnC,sBAAK1C,GAAG,kBAAR,UAA2BkJ,EAAiB,UAACtJ,KAAKqC,aAAN,iBAAC,EAAYzB,YAAb,aAAC,EAAkBiO,cAA/D,sB,GAvCOpO,IAAMC,W,mBCZ/BsJ,I,OAAkBpH,EAAQsG,MA8FjB8H,G,kDAjFX,WAAY/Q,GAAgC,IAAD,8BACvC,cAAMA,IACDoC,MAAQ,CAAE4O,UAAY,EAAKhR,MAAMgR,WAFC,E,sDAK3C,SAAmBnQ,GACZd,KAAKC,OAASa,EAAUmQ,YAAcjR,KAAKC,MAAMgR,WAChDjR,KAAKyB,SAAS,CACVwP,UAAYjR,KAAKC,MAAMgR,c,oBAYnC,WAAU,IAAD,wBAUDA,EAAU,EAMd,OAJGjR,KAAKqC,MAAM4O,YACVA,EAAYjR,KAAKqC,MAAM4O,WAIvB,eAAC,IAAM9O,SAAP,WACA,sBAAK/B,GAAG,mBAAR,UACI,sBAAKgC,UAAU,UAAf,UACG,qBAAKA,UAAU,sBAAf,SAAuC4H,GAAO1C,oBAC9C,sBAAKlF,UAAU,SAAf,UAAwB,sBAAMA,UAAU,QAAhB,SAAyBwG,EAAiB,UAAC5I,KAAKC,aAAN,iBAAC,EAAYW,YAAb,aAAC,EAAkBsQ,SAAS,GAAGtQ,KAAKqQ,MAAmB,sBAAM7O,UAAU,OAAhB,sBAE5H,sBAAKA,UAAU,UAAf,UACG,qBAAKA,UAAU,kBAAf,SAAmC4H,GAAOxC,mBAC1C,sBAAKpF,UAAU,SAAf,UAAwB,sBAAMA,UAAU,QAAhB,SAAyBwG,EAAiB,UAAC5I,KAAKC,aAAN,iBAAC,EAAYW,YAAb,aAAC,EAAkBsQ,SAAS,GAAGtQ,KAAKqQ,MAAmB,sBAAM7O,UAAU,OAAhB,sBAE5H,sBAAKA,UAAU,UAAf,UACG,qBAAKA,UAAU,uBAAf,SAAwC4H,GAAO1B,eAC/C,sBAAKlG,UAAU,SAAf,UAAwB,sBAAMA,UAAU,QAAhB,SAAyBwG,EAAiB,UAAC5I,KAAKC,aAAN,iBAAC,EAAYW,YAAb,aAAC,EAAkBsQ,SAAS,GAAGtQ,KAAKqQ,MAAmB,sBAAM7O,UAAU,OAAhB,sBAE5H,sBAAKA,UAAU,UAAf,UACG,qBAAKA,UAAU,mBAAf,SAAoC4H,GAAOtC,aAC3C,sBAAKtF,UAAU,SAAf,UAAwB,sBAAMA,UAAU,QAAhB,SAAyBwG,EAAiB,UAAC5I,KAAKC,aAAN,iBAAC,EAAYW,YAAb,aAAC,EAAkBsQ,SAAS,GAAGtQ,KAAKqQ,MAAmB,sBAAM7O,UAAU,OAAhB,yBAG/HpC,KAAKC,MAAMkR,gBACZ,sBAAK/Q,GAAG,mBAAR,UACI,sBAAKgC,UAAU,UAAf,UACG,qBAAKA,UAAU,iBAAf,SAAkC4H,GAAO/C,oBACzC,sBAAK7E,UAAU,SAAf,UAAwB,sBAAMA,UAAU,QAAhB,SAAyBwG,EAAiB,UAAC5I,KAAKC,aAAN,aAAC,EAAYkR,eAAe,GAAGF,MAAmB,sBAAM7O,UAAU,OAAhB,sBAEvH,sBAAKA,UAAU,UAAf,UACG,qBAAKA,UAAU,qBAAf,SAAsC4H,GAAOvE,yBAC7C,sBAAKrD,UAAU,SAAf,UAAwB,sBAAMA,UAAU,QAAhB,SAAyBwG,EAAiB,UAAC5I,KAAKC,aAAN,aAAC,EAAYkR,eAAe,GAAGF,MAAmB,sBAAM7O,UAAU,OAAhB,sBAEvH,sBAAKA,UAAU,UAAf,UACG,qBAAKA,UAAU,iBAAf,SAAkC4H,GAAO7E,eACzC,sBAAK/C,UAAU,SAAf,UAAwB,sBAAMA,UAAU,QAAhB,SAAyBwG,EAAiB,UAAC5I,KAAKC,aAAN,aAAC,EAAYkR,eAAe,GAAGF,MAAmB,sBAAM7O,UAAU,OAAhB,yBAEvH,sBAAKA,UAAU,UAAf,UACG,qBAAKA,UAAU,iBAAf,SAAkC4H,GAAO3B,kBACzC,sBAAKjG,UAAU,SAAf,UAAwB,sBAAMA,UAAU,QAAhB,SAAyBwG,EAAiB,UAAC5I,KAAKC,aAAN,aAAC,EAAYkR,eAAe,GAAGF,MAAmB,sBAAM7O,UAAU,OAAhB,gC,GAzExG3B,IAAMC,W,6BChBtB,4aCAA,waC8BTsJ,GAAmBpH,EAAQsG,KAsalBjD,G,kDAjab,WAAYhG,GAA8B,IAAD,uBACvC,cAAMA,IAsBAW,KAAO,CACbwQ,OAAQ,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SAC9MF,SAAU,CACR,CACEtF,MAAO,sBACPyF,MAAO,EACPzQ,KAAM,CAAC,EAAG,EAAG,EAAG,GAChB0Q,MAAM,EACN3B,gBAAiB,wBACjB4B,SAAS,EACTC,uBAAwB,WACxBC,OAAQ,GAEV,CACE7F,MAAO,kBACPyF,MAAO,EACPzQ,KAAM,CAAC,EAAG,EAAG,EAAG,GAChB0Q,MAAM,EACN3B,gBAAiB,yBACjB4B,SAAS,EACTC,uBAAwB,WACxBC,OAAQ,GAGV,CACE7F,MAAO,gBACPyF,MAAO,EACPzQ,KAAM,CAAC,EAAG,EAAG,EAAG,GAChB0Q,MAAM,EACN3B,gBAAiB,0BACjB4B,SAAS,EACTC,uBAAwB,WACxBC,OAAQ,GAEV,CACE7F,MAAO,YACPyF,MAAO,EACPzQ,KAAM,CAAC,EAAG,EAAG,EAAG,GAChB0Q,MAAM,EACNI,YAAa,2BACb/B,gBAAiB,0BACjB4B,SAAS,EACTC,uBAAwB,WACxBC,OAAQ,GAEV,CACE7F,MAAO,aACPyF,MAAO,EACPzQ,KAAM,CAAC,EAAG,EAAG,EAAG,GAChB8Q,YAAa,OACb/B,gBAAiB,OACjBgC,KAAM,MACNC,MAAO,KA3E4B,EAiFjCC,QAAepR,IAAMqR,YAjFY,EAmFjCC,eAnFiC,uCAmFhB,WAAOC,GAAP,yBAAAC,EAAA,uEAEjBC,EAAS,IAAIC,KAAKH,IACfI,QAAQJ,EAAaK,UAAY,GAGpCC,EAAY,eAAiB,EAAKC,YAAYP,GAE9CQ,EAAO,qBAAuBF,EAAY,4BAA8B,EAAKC,YAAYP,GAAgB,QAAU,EAAKO,YAAYL,GAAU,qBAR7H,SASEO,MAAMjJ,IAAWgJ,GATnB,cASfE,EATe,iBAUCA,EAASC,OAVV,QAUfC,EAVe,OAWjBD,EAAOE,KAAKC,MAAMF,GAEtB,EAAKnR,SAAS,CACZsR,QAASJ,EAAKK,QACdC,UAAWjB,IAfQ,kDAkBrBnB,QAAQC,IAAI,QAAZ,MAlBqB,0DAnFgB,sDAIvC,IAAIoC,EAAW,IAAIf,KAAKA,KAAKgB,OAC7BD,EAASd,QAAQc,EAASb,UAAY,GACtC,IAAIH,EAAS,IAAIC,KAAKA,KAAKgB,OANY,OAOvCjB,EAAOE,QAAQc,EAASb,UAAY,GACpC,EAAKhQ,MAAQ,CACX4O,WAAY,EACZgC,UAAW,IAAId,KAAKA,KAAKgB,OACzBD,SAAUA,EACVhB,OAAQA,EACRkB,SAAS,GAb4B,E,qDAiBzC,WAAqB,IAAD,OAClBpT,KAAK+R,eAAe/R,KAAKqC,MAAM4Q,WAAWI,MAAK,WAC7C,EAAKC,gBAAgB,EAAKjR,MAAM4Q,gB,yBAsFpC,SAAoB5G,GAIlB,OAFAA,EAAK+F,QAAQ/F,EAAKgG,WACLhG,EAAKkH,cAAgB,IAAMvT,KAAKwT,YAAYnH,EAAKoH,WAAa,GAAK,IAAMzT,KAAKwT,YAAYnH,EAAKgG,WAAa,W,yBAM3H,SAAoBqB,GAClB,IAAIC,EAAkBD,EAAKE,WAG3B,OAFIF,EAAO,KACTC,EAAU,IAAMD,EAAKE,YAChBD,I,6BAKT,SAAwB3B,GAAqB,IAAD,OAEtC6B,EAA8B,GAC9B9S,EAA8B,GAC9B+S,EAA0B,GAC1BC,EAAuB,GAGvBC,EAAwB,GACxBC,EAAwB,GACxBC,EAAuB,GACvB7L,EAA4B,GAGhC,IACE,IAAI8L,EAAkBnC,EAAauB,cAAgB,KAAOvB,EAAayB,WAAa,GAAK,IAAMzB,EAAaK,UAAY,YAEpH+B,EAAoB,IAAIjC,KAAKA,KAAKW,MAAMqB,IAC5CnU,KAAKqC,MAAM0Q,QAAQsB,SAAQ,SAACC,GAE1B,IAAIC,EAAY,IAAIpC,KAAKmC,EAAUE,cAE/BC,GAA0C,EAAjCF,EAAUG,oBAIvBH,EAAUI,WAAWJ,EAAUK,aAAeH,GAG9C,IAAII,EAAkB,IAAI1C,KAAKA,KAAKW,MAAMqB,IAC1CU,EAAgBC,SAASP,EAAUQ,WAAa,IAE5CR,GAAaH,GAAqBG,GAAaM,IACjDhB,EAAkBmB,QAAQV,EAAUT,mBACpC9S,EAAkBiU,QAAQV,EAAUvT,mBACpC+S,EAAckB,QAAQV,EAAUR,eAChCC,EAAWiB,QAAQV,EAAUP,YAC7BC,EAAYgB,QAAQV,EAAUN,aAC9BC,EAAYe,QAAQV,EAAUL,aAC9BC,EAAWc,QAAQV,EAAUJ,YAE7B7L,EAAgB2M,QAAQV,EAAUT,kBAAoBS,EAAUvT,kBAAoBuT,EAAUR,cAAgBQ,EAAUP,gBAI5H/T,KAAKY,KAAKsQ,SAAS,GAAGtQ,KAAOiT,EAC7B7T,KAAKY,KAAKsQ,SAAS,GAAGtQ,KAAOG,EAC7Bf,KAAKY,KAAKsQ,SAAS,GAAGtQ,KAAOkT,EAC7B9T,KAAKY,KAAKsQ,SAAS,GAAGtQ,KAAOmT,EAC7B/T,KAAKY,KAAKsQ,SAAS,GAAGtQ,KAAOsT,EAE7B,IAAIe,EAAe,GAEnBA,EAAQ,GAAKhB,EACbgB,EAAQ,GAAKf,EACbe,EAAQ,GAAKjB,EACbiB,EAAQ,GAAK5M,EAMbrI,KAAKyB,SAAS,CAAEb,KAAMZ,KAAKY,KAAMuQ,eAAgB8D,EAAShC,UAAWjB,EAAcoB,SAAS,IAAS,WACnG,IAAI8B,EAAY,EAAKrD,QAAQsD,QACzBD,IACFA,EAAUtU,KAAKsQ,SAASmD,SAAQ,SAACe,GAC/BF,EAAUtU,KAAKsQ,SAASkE,EAAQ/D,OAAOzQ,KAAKyU,OAAS,EACrD,EAAKzU,KAAKsQ,SAASkE,EAAQ/D,OAAOzQ,KAAKyT,SAAQ,SAACiB,GAC9CJ,EAAUtU,KAAKsQ,SAASkE,EAAQ/D,OAAOzQ,KAAKgN,KAAK0H,SAGrDJ,EAAUK,aAIhB,MAAOC,GACL3E,QAAQC,IAAI,QAAS0E,M,wBAQzB,SAAmBnJ,GAAY,IAAD,OAE5BrM,KAAK+R,eAAe1F,GAAMgH,MAAK,WAC7B,EAAKC,gBAAgBjH,Q,kBAIzB,WACE,IAAIoJ,EAAgB,IAAItD,KAAKnS,KAAKqC,MAAM4Q,WACxCwC,EAAQrD,QAAQqD,EAAQpD,UAAY,GAEpCrS,KAAK0V,WAAWD,K,qBAElB,WACE,IAAIA,EAAgB,IAAItD,KAAKnS,KAAKqC,MAAM4Q,WACxCwC,EAAQrD,QAAQqD,EAAQpD,UAAY,GAEpCrS,KAAK0V,WAAWD,K,oBAElB,WAAU,IAAD,OAEHjK,EAAU,CACZmK,QAAS,CACPC,YAAa,CACXC,KAAM,SAERC,QAAS,CACPC,WAAW,EACXC,eAAe,EACfC,OAAQ,SACRL,YAAa,CACXC,KAAM,WAERK,UAAW,CACTtK,MAAO,SAACuK,GACFA,EAAQlF,YAAc,EAAK5O,MAAM4O,WACnC,EAAKxP,SAAS,CAAEwP,UAAWkF,EAAQlF,UAAWrF,MAAOuK,EAAQvK,UAInEwK,SAAS,EACTC,SAAU,SAACC,GACTA,EAAEC,MAAM/K,QAAQgL,WAAWlK,EAAIgK,EAAER,QAAQxJ,EAAI,KAGjDmK,OAAQ,CACNhK,SAAS,IAGbiK,WAAW,EACXC,YAAY,EACZF,OAAQ,CACNhK,SAAS,GAEXmK,MAAO,CACLf,KAAM,UACNE,WAAW,GAEbc,OAAQ,CACNvK,EAAG,CACDwK,MAAO,CACLrK,SAAS,EACTtC,KAAM,SAGVoC,EAAG,CACDgF,SAAS,EACTuF,MAAO,CACLrK,SAAS,EACTtC,KAAM,SAER4M,IAAK,EACLC,IAAK,MAGTC,kBAAmB,6EACnBT,WAAY,CACV5J,MAAO,UAIP+I,EAAU,CAAC,CACbuB,UAAW,SAACX,EAAYY,GACtB,IAAIC,EAAMb,EAAMa,IACZC,EAAYd,EAAMc,UAClB/K,EAAIiK,EAAM/K,QAAQgL,WAAWlK,EAC7BgL,GAAUD,EAAUE,OAASF,EAAU7G,KAAO,EAAI6G,EAAU7G,IAG3DgH,MAAMlL,KACT8K,EAAIK,OACJL,EAAIM,YACJN,EAAIO,YAAc,OAClBP,EAAIQ,OAAOrB,EAAM/K,QAAQgL,WAAWlK,EAAG+K,EAAUE,QACjDH,EAAIS,OAAOtB,EAAM/K,QAAQgL,WAAWlK,EAAG+K,EAAU7G,KACjD4G,EAAIU,SACJV,EAAIW,UAAY,UAChBX,EAAIY,SAAS1L,EAVJ,GAUcgL,EAAS,GAAIW,GAV3B,IAWTb,EAAIW,UAAY,UAChBX,EAAIrK,UAAY,SAChBqK,EAAIc,SAAS,EAAK7V,MAAMuJ,MAAOU,EAAGgL,GAClCF,EAAIe,cAONC,EAAoB,OACpBC,EAAsB,IACC,IAAvBrY,KAAKqC,MAAM+Q,UACbgF,EAAY,GACZC,EAAc,QAGhB,IAAIC,EAAuC,CACzCC,OAAQ,CACN,SACA,UACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAGFC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAE3FC,KAAM,CAAC,YAAU,SAAU,UAAW,SAAU,UAAW,SAAU,aAErEC,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAE1CC,UAAW,eACXC,mBAAoB,uBACpBC,mBAAoB,mBACpBC,kBAAmB,sBACnBC,kBAAmB,mBAmCrB,MAhCsB,UAAlB7P,MAEFoP,EAAmB,CACjBC,OAAQ,CACN,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAGFC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAE3FC,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAEzEC,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAE1CC,UAAW,cACXC,mBAAoB,uBACpBC,mBAAoB,mBACpBC,kBAAmB,sBACnBC,kBAAmB,oBAKrB,sBAAK3Y,GAAG,iBAAR,UACE,sBAAKgC,UAAU,gBAAf,UACE,qBAAKA,UAAU,iBAAf,SAAiC4H,GAAO7G,aACxC,sBAAKf,UAAU,aAAf,UACA,qBAAKA,UAAU,OAAf,SAAsB,qBAAK4W,QAAShZ,KAAKiZ,KAAKtN,KAAK3L,MAAOmN,IAAK+L,GAAW9L,IAAI,WAC9E,cAAC+L,GAAA,EAAD,CAAY/W,UAAU,aACtBgX,WAAa,SAAC/M,GACZ,OAAIA,EACIA,EAAKgG,UAAW,KAAOhG,EAAKoH,WAAW,GAAI,IAAMpH,EAAKkH,cAD7C,IAKjB3Q,QAAS0V,EACTe,QAAS,IAAIlH,KAAKA,KAAKW,MAAM,eAC7BwG,QAAS,IAAInH,KAAKA,KAAKgB,OACvBoG,eAAgB,EAChB1Q,MAAO7I,KAAKqC,MAAM4Q,UAAWuG,aAAcxZ,KAAK0V,WAAW/J,KAAK3L,QAClE,qBAAKoC,UAAU,UAAf,SAAyB,qBAAM4W,QAAShZ,KAAKyZ,QAAQ9N,KAAK3L,MAAOmN,IAAKuM,GAAOtM,IAAI,oBAInF,cAACuM,GAAA,EAAD,CAASvX,UAAWiW,EAAaJ,KAAM2B,KAAYC,QACnD,sBAAKzX,UAAWgW,EAAhB,UAEE,cAAC,KAAD,CAAMhY,GAAG,QAAQgC,UAAU,QAAQ0X,IAAK9Z,KAAK6R,QAASjR,KAAMZ,KAAKqC,MAAMzB,KAAM4K,QAASA,EAASmK,QAASA,IACxG,cAAC,GAAD,CAAkB1E,UAAWjR,KAAKqC,MAAM4O,UAAWrQ,KAAMZ,KAAKqC,MAAMzB,KAAMuQ,eAAgBnR,KAAKqC,MAAM8O,2B,GA1ZlF1Q,IAAMC,WCtB7BsJ,I,OAAkBpH,EAAQsG,MAkDjB6Q,G,kDA/CX,WAAY9Z,GAA2B,IAAD,8BAClC,cAAMA,IACDoC,MAAQ,CAAEgK,KAAO,EAAKpM,MAAMoM,MAFC,E,sDAKtC,SAAmBvL,GACZd,KAAKC,OAASD,KAAKC,MAAMoM,MAAQvL,EAAUuL,OAASrM,KAAKC,MAAMoM,MAClErM,KAAKyB,SAAS,CACV4K,KAAOrM,KAAKC,MAAMoM,S,oBAI1B,WACI,IAoBI2N,EAAS,IAAI7H,KAAKnS,KAAKqC,MAAMgK,MAGjC,OACI,+BAAeC,EAAE,MAAMC,EAAE,MAAMlM,MAAM,MAAMC,OAAO,KAAlD,SACI,sBAAKkM,MAzB0B,CACnCC,QAAS,eACTC,QAAS,MACTC,cAAe,YACfC,MAAO,WAqBH,UACQ,qBAAKxM,GAAG,qBAAqBoM,MAnBH,CACtCK,SAAU,WACVC,WAAY,sBACZC,UAAW,SAgBC,SAA+C/C,GAAOzD,aACtD,qBAAKnG,GAAG,yBAAyBoM,MAdX,CAClCK,SAAU,WACVC,WAAY,uBACZC,UAAW,SAWC,SAAgDiN,EAAO/Q,eAAeC,IAAe,CAAC+Q,IAAI,UAAWC,MAAO,QAASC,KAAK,UAAWC,KAAK,UAAWC,OAAO,uB,GAzC1J5Z,IAAMC,WC6B1BsJ,I,OAAkBpH,EAAQsG,MAgDjBoR,G,kDA7CX,WAAYra,GAAwB,IAAD,6BAC/B,cAAMA,IAEDoC,MAAQ,CAAEzB,KADH,IAFmB,E,sDAMnC,SAAmBE,GACf,GAAGd,KAAKC,OAASD,KAAKC,MAAMW,MAAQE,EAAUF,OAASZ,KAAKC,MAAMW,KAClE,CACI,IAAI+B,EAAQ3C,KAAKC,MAAMW,KACvB+B,EAAEuR,WAAalU,KAAKC,MAAMW,KAAK2Z,iBAAmBva,KAAKC,MAAMW,KAAK4Z,kBAClExa,KAAKC,MAAMW,KAAKmT,WAAa/T,KAAKC,MAAMW,KAAKiT,kBAAoB7T,KAAKC,MAAMW,KAAKG,kBAAoBf,KAAKC,MAAMW,KAAK6Z,aACzHza,KAAKyB,SAAS,CACVb,KAAO+B,O,oBAUf,WACI,OACI,qBAAKvC,GAAG,WAAR,SACI,sBAAKgC,UAAU,kBAAf,UACI,+BAAM4H,GAAOvC,cAAb,OADJ,IAEKzH,KAAKqC,MAAMzB,MACZ,qBAAIwB,UAAU,YAAd,UACI,+BAAI,sBAAMA,UAAU,QAAhB,SAA0B4H,GAAOzC,mBAAyB,uBAAMnF,UAAU,SAAhB,UAA0BwG,EAAkB5I,KAAKqC,MAAMzB,KAAKiT,mBAA5D,YAC9D,+BAAI,uBAAMzR,UAAU,QAAhB,cAA2B4H,GAAOxC,oBAAyB,uBAAMpF,UAAU,SAAhB,UAA0BwG,EAAkB5I,KAAKqC,MAAMzB,KAAKG,mBAA5D,YAC/D,+BAAI,uBAAMqB,UAAU,QAAhB,cAA2B4H,GAAO1B,gBAAqB,uBAAMlG,UAAU,SAAhB,UAA0BwG,EAAkB5I,KAAKqC,MAAMzB,KAAK4Z,kBAAoBxa,KAAKqC,MAAMzB,KAAK2Z,kBAAhG,YAC3D,+BAAI,uBAAMnY,UAAU,QAAhB,cAA2B4H,GAAOtC,cAAmB,uBAAMtF,UAAU,SAAhB,UAA0BwG,EAAkB5I,KAAKqC,MAAMzB,KAAKmT,YAA5D,YACzD,+BAAI,uBAAM3R,UAAU,QAAhB,cAA2B4H,GAAO5E,wBAA6B,uBAAMhD,UAAU,SAAhB,UAA0BwG,EAAkB5I,KAAKqC,MAAMzB,KAAKsT,YAA5D,YACnE,+BAAI,uBAAM9R,UAAU,QAAhB,cAA2B4H,GAAO/C,qBAA0B,uBAAM7E,UAAU,SAAhB,UAA0BwG,EAAkB5I,KAAKqC,MAAMzB,KAAK6Z,cAA5D,YAChE,+BAAI,uBAAMrY,UAAU,QAAhB,cAA2B4H,GAAO7E,gBAAqB,uBAAM/C,UAAU,SAAhB,UAA0BwG,EAAkB5I,KAAKqC,MAAMzB,KAAKoT,aAA5D,2B,GArC5DvT,IAAMC,WCzCvBsJ,I,OAAkBpH,EAAQsG,MAyBjB4F,G,4JArBX,WACI,OACI,qBAAK1O,GAAG,eAAR,SACI,sBAAKgC,UAAU,kBAAf,UACA,6BAAM4H,GAAOnC,oBACT,qBAAIzF,UAAU,YAAd,UACI,+BAAI,uBAAMA,UAAU,QAAhB,cAA0B4H,GAAO1C,qBAAyB,sBAAMlF,UAAU,qCAC9E,+BAAI,uBAAMA,UAAU,QAAhB,cAA2B4H,GAAO9C,oBAAyB,sBAAM9E,UAAU,0BAC/E,+BAAI,uBAAMA,UAAU,QAAhB,cAA2B4H,GAAO1E,uBAA4B,sBAAMlD,UAAU,8BAClF,+BAAI,uBAAMA,UAAU,QAAhB,cAA2B4H,GAAO7C,mBAAwB,sBAAM/E,UAAU,2CAC9E,+BAAI,uBAAMA,UAAU,QAAhB,cAA2B4H,GAAOjF,WAAgB,sBAAM3C,UAAU,qCACtE,+BAAI,uBAAMA,UAAU,QAAhB,cAA2B4H,GAAO5C,mBAAwB,sBAAMhF,UAAU,yCAC9E,+BAAI,uBAAMA,UAAU,QAAhB,cAA2B4H,GAAOhF,WAAe,sBAAM5C,UAAU,+C,GAdlE3B,IAAMC,WC4DlBga,G,kDAlDX,WAAYza,GAA0B,IAAD,8BACjC,cAAMA,IAWF+O,iBAAmB,WACnBC,OAAOC,WAAa,MAAQD,OAAOC,WAAa,IAChD,EAAKzN,SAAS,CAAEoL,SAAW,KAAU,GAAM,KAAOoC,OAAOC,YAAc,KAAQ,QAE/E,EAAKzN,SAAS,CAAEoL,SAAU,eAd9B,EAAKxK,MAAQ,CAAEwK,SAAU,YAFQ,E,qDAKrC,WACIoC,OAAOE,iBAAiB,SAAUnP,KAAKgP,oB,kCAE3C,WACIC,OAAOG,oBAAoB,SAAUpP,KAAKgP,oB,oBAU9C,WACI,IASIK,EAA2C,CAC3CxC,SAAU7M,KAAKqC,MAAMwK,SACrBC,WAAY,uBAGZ0C,EAA2C,CAC3C3C,SAAU7M,KAAKqC,MAAMwK,SACrBC,WAAY,wBAGhB,OACI,+BAAe1K,UAAU,oBAAoBkK,EAAGtM,KAAKC,MAAM4N,KAAMtB,EAAGvM,KAAKC,MAAM6N,KAAMzN,MAAM,MAAMC,OAAO,KAAxG,SACI,sBAAKkM,MArB6B,CACtCC,QAAS,eACTC,QAAS,MACTC,cAAe,YACfC,MAAO,UACP8C,OAAQ,kCACRC,gBAAiB,yBAeb,UACI,qBAAKnD,MAAO6C,EAAZ,SAAyBrP,KAAKC,MAAM2L,QACpC,sBAAKY,MAAOgD,EAAZ,UAAyBxP,KAAKC,MAAMqN,WAAYtN,KAAKC,MAAMsN,KAA3D,kB,GA5CK9M,IAAMC,WCVzBsJ,GAAkBpH,EAAQsG,KAoFjByR,G,kDA7EX,WAAY1a,GAAyB,IAAD,8BAChC,cAAMA,IACDoC,MAAQ,CAAEzB,KAAO,IAFU,E,qDAKpC,WACOZ,KAAKC,OAASD,KAAKC,MAAMW,MACxBZ,KAAKyN,iB,gCAIb,SAAmB3M,GACZd,KAAKC,OAASD,KAAKC,MAAMW,MAAQE,EAAUF,OAASZ,KAAKC,MAAMW,MAC9DZ,KAAKyN,iB,0BAIb,WACI,IACIC,EADAC,EAAgB,GAGhB/M,EAAOZ,KAAKC,MAAMW,KAClBiI,EAAQjI,EAAI,gBACR8M,EAAR7E,EAAM,EAASmB,GAAOvB,OAAQ,KAAYuB,GAAOtB,OAAS,KAC1DiF,EAAUC,KAAK,CAAChC,MAAM5B,GAAO3D,cAAewC,MAAMM,EAAgBN,GAAQgF,KAAK,KAAMC,KAAK,KAAKR,WAAWI,IAGlGA,GADR7E,EAAQjI,EAAI,iBACN,EAASoJ,GAAOvB,OAAQ,KAAYuB,GAAOtB,OAAS,KAC1DiF,EAAUC,KAAK,CAAChC,MAAM5B,GAAO1D,cAAeuC,MAAMM,EAAgBN,GAAQgF,KAAK,MAAOC,KAAK,KAAKR,WAAWI,IAGnGA,GADR7E,EAAQjI,EAAI,iBACN,EAASoJ,GAAOvB,OAAQ,KAAYuB,GAAOtB,OAAS,KAC1DiF,EAAUC,KAAK,CAAChC,MAAM5B,GAAO5D,mBAAoByC,MAAMM,EAAgBN,GAAQgF,KAAK,KAAMC,KAAK,MAAMR,WAAWI,IAGxGA,GADR7E,EAAQjI,EAAI,iBACN,EAASoJ,GAAOvB,OAAQ,KAAYuB,GAAOtB,OAAS,KAC1DiF,EAAUC,KAAK,CAAChC,MAAM5B,GAAO7D,eAAgB0C,MAAMM,EAAgBN,GAAQgF,KAAK,MAAOC,KAAK,MAAMR,WAAWI,IAGrGA,GADR7E,EAAQjI,EAAI,kBACN,EAAS,SAAW,SAC1B+M,EAAUC,KAAK,CAAChC,MAAM5B,GAAOhC,aAAca,MAAMM,EAAgBN,GAAQgF,KAAK,MAAOC,KAAK,MAAMR,WAAWI,IAGnGA,GADR7E,EAAQjI,EAAI,iBACN,EAASoJ,GAAOvB,OAAQ,KAAYuB,GAAOtB,OAAS,KAC1DiF,EAAUC,KAAK,CAAChC,MAAM5B,GAAOxB,cAAeK,MAAMM,EAAgBN,GAAQgF,KAAK,MAAOC,KAAK,MAAMR,WAAWI,IAGpGA,GADR7E,EAAQjI,EAAI,iBACN,EAASoJ,GAAOvB,OAAQ,KAAYuB,GAAOtB,OAAS,KAC1DiF,EAAUC,KAAK,CAAChC,MAAM5B,GAAOzB,eAAgBM,MAAMM,EAAgBN,GAAQgF,KAAK,MAAOC,KAAK,MAAMR,WAAWI,IAGrGA,GADR7E,EAAQjI,EAAI,sBACN,EAASoJ,GAAOvB,OAAQ,KAAYuB,GAAOtB,OAAS,KAC1DiF,EAAUC,KAAK,CAAChC,MAAM5B,GAAOpF,eAAgBiE,MAAMM,EAAgBN,GAAQgF,KAAK,MAAOC,KAAK,MAAMR,WAAWI,IAE7G1N,KAAKyB,SAAS,CACVb,KAAM+M,M,oBAKd,WACI,IAAIzD,EAAa,EACjB,OACIlK,KAAKqC,OAASrC,KAAKqC,MAAMzB,KAAKmN,KAAI,SAACC,GAClC,OAAO,cAAC,GAAD,CAAwBT,KAAMS,EAAInF,MAAO+C,MAAOoC,EAAIpC,MAAOiC,KAAMG,EAAIH,KAAMC,KAAME,EAAIF,KAAMR,WAAYU,EAAIV,YAA1FpD,Y,GAjEXzJ,IAAMC,WCIjBka,G,4JARX,WACI,IAAI7a,EAAoB,oBAAgBC,KAAKC,MAAMC,KAA3B,YAAmCF,KAAKC,MAAME,KAA9C,KACxB,OACI,qBAAKE,MAAM,IAAIC,OAAO,IAAIC,UAAWR,EAAeS,UAAU,oB,GAJjDC,IAAMC,WCMzBsJ,I,OAAkBpH,EAAQsG,MAqBjB2R,G,4JAlBX,WACI,OACI,qBAAKza,GAAG,cAAR,SACA,sBAAKgC,UAAU,kBAAf,UACI,+BAAM4H,GAAOhG,iBAAb,OACA,qBAAI5B,UAAU,YAAd,UACI,6BAAI,uBAAMA,UAAU,QAAhB,cAAyB,mBAAG0H,KAAOE,GAAO3F,iBAAmBjC,UAAU,YAA9C,SAA6D4H,GAAO/F,qBACjG,6BAAI,uBAAM7B,UAAU,QAAhB,cAAyB,mBAAG0H,KAAOE,GAAO1F,iBAAmBlC,UAAU,YAA9C,SAA6D4H,GAAO9F,qBACjG,6BAAI,uBAAM9B,UAAU,QAAhB,cAAyB,mBAAG0H,KAAOE,GAAOzF,iBAAmBnC,UAAU,YAA9C,SAA6D4H,GAAO7F,iC,GAT9F1D,IAAMC,WCCdoa,G,4JARX,WACI,IAAI/a,EAAoB,oBAAgBC,KAAKC,MAAMC,KAA3B,YAAmCF,KAAKC,MAAME,KAA9C,KACxB,OACI,qBAAKE,MAAM,IAAIC,OAAO,IAAIC,UAAWR,EAAeS,UAAU,4B,GAJzCC,IAAMC,WCSxBqa,G,4JARX,WACI,IAAIhb,EAAoB,oBAAgBC,KAAKC,MAAMC,KAA3B,YAAmCF,KAAKC,MAAME,KAA9C,KACxB,OACI,qBAAKE,MAAM,KAAKC,OAAO,OAAOC,UAAWR,EAAeib,WAAW,+BAA+Bxa,UAAU,kB,GAJjGC,IAAMC,W,mBCSdua,G,4JAXX,WACI,OACI,cAAC,IAAM9Y,SAAP,UACA,wBAAQ/B,GAAG,uBAAuB,YAAU,uBAAuB8a,QAAQ,eAA3E,SACE,sBAAM9Y,UAAU,uBAAuBkK,EAAE,IAAIC,EAAE,IAAIlM,MAAM,KAAKC,OAAO,e,GAL1CG,IAAMC,WCgBhCya,I,mKAfX,WACI,OACI,eAAC,IAAMhZ,SAAP,WACA,yBAAQ/B,GAAG,cAAc,YAAU,cAAc8a,QAAQ,UAAzD,UACI,wBAAQ9Y,UAAU,gBAAgBgZ,GAAG,IAAIC,GAAG,IAAIC,EAAE,QAClD,sBAAMlZ,UAAU,gBAAgBO,EAAE,qFAEtC,wBAAQvC,GAAG,oBAAoB,YAAU,sBAAsB8a,QAAQ,kBAAvE,SACI,yBAAS9Y,UAAU,WAAWM,OAAO,8B,GATrBjC,IAAMC,YCYvB6a,I,mKAXX,WACI,OACI,cAAC,IAAMpZ,SAAP,UACA,wBAAQ/B,GAAG,aAAa,YAAU,aAAa8a,QAAQ,kBAAvD,SACI,sBAAM9Y,UAAU,YAAYkK,EAAE,MAAMC,EAAE,MAAMlM,MAAM,QAAQC,OAAO,kB,GALlDG,IAAMC,YCWtB8a,I,mKAVX,WACI,OACI,yBAAQpb,GAAG,qBAAqB,YAAU,qBAAqB8a,QAAQ,UAAvE,UACI,wBAAQ9Y,UAAU,QAAQgZ,GAAG,IAAIC,GAAG,IAAIC,EAAE,QAC1C,sBAAMlZ,UAAU,QAAQO,EAAE,yF,GALHlC,IAAMC,YCyB9B+a,I,mKAxBX,WACI,OACI,wBAAQrb,GAAG,WAAW,YAAU,WAAW8a,QAAQ,kBAAnD,SACI,8BACI,oBAAG9a,GAAG,MAAN,UACI,sBAAMA,GAAG,MAAMgC,UAAU,MAAME,GAAG,KAAKC,GAAG,QAAQC,GAAG,OAAOC,GAAG,UAC/D,sBAAMrC,GAAG,OAAOgC,UAAU,MAAMO,EAAE,wEAEtC,mBAAGvC,GAAG,SAAN,SACI,4BACI,mBAAGA,GAAG,eAAN,SACI,sBAAMgC,UAAU,mBAAmBO,EAAE,4Z,GAZxClC,IAAMC,YCe7BsJ,I,OAAmBpH,EAAQsG,MAuKlBwS,G,kDApKX,WAAYzb,GAAiC,IAAD,8BACxC,cAAMA,IACDoC,MAAQ,CAAEgK,KAAO,EAAKpM,MAAMoM,MAFO,E,sDAK5C,SAAmBvL,GACZd,KAAKC,OAASD,KAAKC,MAAMoM,MAAQvL,EAAUuL,OAASrM,KAAKC,MAAMoM,MAClErM,KAAKyB,SAAS,CACV4K,KAAOrM,KAAKC,MAAMoM,S,wBAI1B,SAAmBA,GAEfrM,KAAKC,MAAMgL,SAASoB,K,kBAEtB,WACE,IAAIoJ,EAAgB,IAAItD,KAAKnS,KAAKqC,MAAMgK,MACxCoJ,EAAQrD,QAAQqD,EAAQpD,UAAY,GAEpCrS,KAAK0V,WAAWD,K,qBAElB,WACE,IAAIA,EAAgB,IAAItD,KAAKnS,KAAKqC,MAAMgK,MACxCoJ,EAAQrD,QAAQqD,EAAQpD,UAAY,GAEpCrS,KAAK0V,WAAWD,K,oBAGpB,WACI,IA+CI6C,EAAuC,CACvCC,OAAQ,CACN,SACA,UACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEFC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAE3FC,KAAM,CAAC,YAAU,SAAU,UAAW,SAAU,UAAW,SAAU,aAErEC,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAE1CC,UAAW,eACXC,mBAAoB,uBACpBC,mBAAoB,mBACpBC,kBAAmB,sBACnBC,kBAAmB,mBAoCvB,MAjCwB,UAAlB7P,MAEFoP,EAAmB,CACjBC,OAAQ,CACN,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAGFC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAE3FC,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAEzEC,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAE1CC,UAAW,cACXC,mBAAoB,uBACpBC,mBAAoB,mBACpBC,kBAAmB,sBACnBC,kBAAmB,oBAMrB,gCAAezM,EAAE,IAAIC,EAAE,KAAKlM,MAAM,MAAMC,OAAO,KAAKkM,MA7GnB,CACjCG,cAAe,YACfC,MAAO,UACPF,QAAQ,OA0GR,UACA,qBAAKF,MA1EiC,CAC1C8D,SAAU,WACVjQ,MAAM,QACNsb,MAAM,OACNpL,KAAK,QACLC,IAAI,OACJ1D,WAAY,+BAoER,SAAyB9C,GAAO7G,aAC5B,qBAAKqJ,MAxGyB,CACpClM,OAAQ,MACRsb,OAAQ,UACRtL,SAAS,WACTC,KAAK,OACLC,IAAI,QACJqL,MAAM,QAkGkB7C,QAAShZ,KAAKiZ,KAAKtN,KAAK3L,MAAOmN,IAAK+L,GAAW9L,IAAI,SACrE,cAAC+L,GAAA,EAAD,CAAY3M,MAvFwB,CAC1C8D,SAAU,WACVqL,MAAM,OACN/O,MAAO,UACP2D,KAAK,QACLC,IAAI,QACJsL,OAAO,IACPC,WAAW,MACX1b,MAAM,SAiFN+Y,WAAa,SAAC/M,GACZ,OAAIA,EACIA,EAAKgG,UAAW,KAAOhG,EAAKoH,WAAW,GAAI,IAAMpH,EAAKkH,cAD7C,IAKjB3Q,QAAS0V,EACTe,QAAS,IAAIlH,KAAKA,KAAKW,MAAM,eAC7BwG,QAAS,IAAInH,KAAKA,KAAKgB,OACvBoG,eAAgB,EAChByC,kBAAkB,EAClBC,iBAAiB,EACjBpT,MAAO7I,KAAKqC,MAAMgK,KAAMmN,aAAcxZ,KAAK0V,WAAW/J,KAAK3L,QAE3D,qBAAKwM,MAhHgC,CACvClM,OAAQ,MACRiQ,KAAK,OACLC,IAAI,QACJoL,OAAQ,UACRtL,SAAS,WACT7D,QAAQ,UA0GeuM,QAAShZ,KAAKyZ,QAAQ9N,KAAK3L,MAAOmN,IAAKuM,GAAOtM,IAAI,mB,GA/JnD3M,IAAMC,WCFhCsJ,I,OAAmBpH,EAAQsG,MA2FlBgT,G,kDAxFX,WAAYjc,GAA6B,IAAD,8BACpC,cAAMA,IACDoC,MAAQ,CAAEgK,KAAM,EAAKpM,MAAMoM,KAAM8P,YAAa,EAAKlc,MAAMkc,YAAaC,eAAgB,EAAKnc,MAAMmc,gBAFlE,E,sDAMxC,SAAmBtb,GAOXd,KAAKC,OAASD,KAAKC,MAAMmc,iBAAmBtb,EAAUsb,gBACtDpc,KAAKyB,SAAS,CAAE2a,eAAgBpc,KAAKC,MAAMmc,iBAE3Cpc,KAAKC,OAASD,KAAKC,MAAMoc,eAAiBvb,EAAUub,cACpDrc,KAAKyB,SAAS,CAAE4a,aAAcrc,KAAKC,MAAMoc,eAEzCrc,KAAKC,OAASD,KAAKC,MAAMoM,MAAQvL,EAAUuL,OAASrM,KAAKC,MAAMoM,MAC/DrM,KAAKyB,SAAS,CACV4K,KAAMrM,KAAKC,MAAMoM,S,oBAK7B,WACI,IAcIiQ,EAAc,GACdC,GAAW,EAEXvc,KAAKC,MAAMkc,YAAYvR,aACS,UAA5B5K,KAAKqC,MAAMga,cAEXC,EAActS,GAAO9G,aACrBqZ,GAAU,GAEuB,YAA5Bvc,KAAKqC,MAAMga,eAChBC,EAActS,GAAOhH,eACrBuZ,GAAU,GAGTvc,KAAKC,MAAMkc,YAAYxR,cACM,UAA9B3K,KAAKqC,MAAM+Z,gBACXE,EAActS,GAAO/G,eACrBsZ,GAAU,GAC2B,YAA9Bvc,KAAKqC,MAAM+Z,iBAClBE,EAActS,GAAOjH,iBACrBwZ,GAAU,IAQlB,IACIC,EADc,IAAIrK,KAAKnS,KAAKqC,MAAMgK,MACTpD,eAAeC,IAAe,CAAE+Q,IAAK,UAAWC,MAAO,QAASC,KAAM,UAAWC,KAAM,UAAWC,OAAQ,YAIvI,OAFAiC,EAAcA,EAAYG,QAAQ,aAAcD,GAG5C,cAAC,WAAD,UACKD,GACG,+BAAejQ,EAAE,MAAMC,EAAE,KAAKlM,MAAM,MAAMC,OAAO,KAAjD,SACI,qBAAKkM,MAnDqB,CACtCC,QAAS,eACTC,QAAS,MACTC,cAAe,YACfC,MAAO,WA+CK,SACI,qBAAKxM,GAAG,uBAAuBoM,MA7CN,CACzCK,SAAU,WACVC,WAAY,sBACZC,UAAW,OACX2P,UAAU,UAyCM,SAAiDJ,c,GAhFjD7b,IAAMC,W,UCgD9Bic,GAAyB,CAC3BlS,aAAa,EACbC,iBAAiB,EACjBC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,aAAa,EACbmG,UAAW,EACXzG,qBAAqB,EACrBoS,YAAa,IAAIzK,KAAKA,KAAKgB,QC1EzB0J,aAAU,CACVC,QAAS,CACLC,aAAc,UACdC,gBAAiB,UACjBC,aAAc,UACdC,WAAY,UACZC,cAAe,UACfC,eAAgB,UAChBC,aAAc,UACdC,UAAW,UACXC,YAAa,UACbC,kBAAmB,UACnBC,eAAgB,UAChBC,aAAc,UACdC,qBAAsB,UACtBC,kBAAmB,UACnBC,mBAAoB,UACpBC,gBAAiB,UACjBC,iBAAkB,UAClBC,kBAAmB,UACnBC,eAAgB,UAChBC,YAAa,UACbC,MAAO,UACPC,MAAO,aDwDf,IAmTeC,GAnTH,WAAO,IAAD,EAChB,EAAsCC,mBAAS3B,IAA/C,mBAAOR,EAAP,KAAoBoC,EAApB,KA8BA,IAAMC,EAA0B,CAAE5d,KAAM,GAAI6d,UAAW,WACvD,EAAkCH,mBAASE,GAA3C,mBAAOE,EAAP,KAAkBC,EAAlB,KACA,EAA8BL,mBAASE,GAAvC,mBAAOtO,EAAP,KAAgB0O,EAAhB,KACA,EAA8CN,mBAAS,KAAvD,mBAAOO,EAAP,UAGAC,qBAAU,WACRjO,QAAQC,IAAI,aASZiO,MACC,IAEHD,qBAAU,WACR,GAAID,GAAmBA,EAAkB,EAAG,CAC1C,IAAMG,EAAWC,YAAYF,EAASF,GACtC,OAAO,kBAAMK,cAAcF,OAE5B,CAACH,IAEJ,IAyF8B,EAIO,EA7F/BE,EAAO,uCAAG,sBAAA9M,EAAA,sDAEdF,IAFc,2CAAH,qDAWPA,EAAc,uCAAG,sBAAAE,EAAA,sEACfQ,MAAMjJ,IAAW,yFACpB6J,MAAK,SAACX,GACLA,EAASC,OAAOU,MAAK,SAACT,GAEpB,IAAID,EAAOE,KAAKC,MAAMF,GAEtB/B,QAAQC,IAAI6B,GACZ,IAAIQ,EAAM,IAAIhB,KAAKA,KAAKgB,OACpBsL,EAAY,UACZU,EAAc,IAAIhN,KAAKQ,EAAKK,QAAQ,GAAG9Q,YAC3Cid,EAAYxK,WAAWwK,EAAYvK,aAAe,GAC9CuK,EAAchM,IAChBsL,EAAY,WAEd5N,QAAQC,IAAI2N,GACZE,EAAa,CAAE/d,KAAM+R,EAAKK,QAAQ,GAAIyL,UAAWA,OAEhDW,OAAM,SAAC5J,GACRmJ,EAAa,CAAE/d,KAAM,GAAI6d,UAAW,gBAErCW,OAAM,SAAC5J,GACRmJ,EAAa,CAAE/d,KAAM,GAAI6d,UAAW,aAtBnB,2CAAH,qDA0BdlM,EAAc,SAAClG,GAInB,OAFAA,EAAK+F,QAAQ/F,EAAKgG,WACLhG,EAAKkH,cAAgB,IAAMC,EAAYnH,EAAKoH,WAAa,GAAK,IAAMD,EAAYnH,EAAKgG,WAAa,UAI3GmB,EAAc,SAACE,GACnB,IAAIC,EAAkBD,EAAKE,WAG3B,OAFIF,EAAO,KACTC,EAAU,IAAMD,EAAKE,YAChBD,GAGH0L,EAAY,uCAAG,WAAOhT,GAAP,iBAAA4F,EAAA,6DACfqN,EAAc,IAAInN,KAAK9F,IACf+F,QAAQ/F,EAAKgG,UAAY,GAEjCkN,EAAqB,iEAErBpD,EAAYvR,cAAgBuR,EAAYzR,kBAC1C6U,EAAa,2CAA6ChN,EAAY+M,GAAe,QAAU/M,EAAYlG,GAAQ,gBAPlG,SASboG,MAAMjJ,IAAW+V,GACpBlM,MAAK,SAACX,GACLA,EAASC,OAAOU,MAAK,SAACT,GAEpB,IAAID,EAAOE,KAAKC,MAAMF,GAElBO,EAAM,IAAIhB,KAAKA,KAAKgB,OACxBA,EAAI2B,SAAS,GACb3B,EAAIwB,WAAW,GACfxB,EAAIqM,WAAW,GACfrM,EAAIsM,gBAAgB,GAEpB,IAAIhB,EAAY,UAChB5N,QAAQC,IAAI6B,EAAKK,QAAQ,IACzB,IAAImM,EAAc,IAAIhN,KAAKQ,EAAKK,QAAQ,GAAG0M,QAC3CP,EAAY/M,QAAQ+M,EAAY9M,UAAY,GACxC8M,EAAchM,IAChBsL,EAAY,WAEdG,EAAW,CAAEhe,KAAM+R,EAAKK,QAAQ,GAAIyL,UAAWA,UAEhDW,OAAM,SAAC5J,GACRoJ,EAAW,CAAEhe,KAAM,GAAI6d,UAAW,aA/BnB,2CAAH,sDAkCdkB,EAAW,QAEXC,EAAwB,UAAGlB,EAAU9d,YAAb,aAAG,EAAgBsB,WAE3Cia,EAAYvR,eACdgV,EAAmB,UAAG1P,EAAQtP,YAAX,aAAG,EAAc8e,QAGlCvD,EAAY3R,sBACdmV,EAAW,mBACXC,EAAmB,UAAG1P,EAAQtP,YAAX,aAAG,EAAc8e,QAGtC,OACE,sBAAKtd,UAAU,MAAf,UACE,cAAC,EAAD,CAAY6I,SA3JhB,SAAsBrK,GACpB,IAAI4d,EAAU5d,EACd4d,EAAQ5B,YAAc,IAAIzK,KAAKA,KAAKgB,OACpCqL,EAAQvN,UAAYkL,EAAYlL,UAChCsN,EAAeC,GACfzM,IACAsN,EAAa,IAAIlN,KAAKA,KAAKgB,SAqJUxH,KAAK,MACtCwQ,EAAYzR,iBAAmByR,EAAYxR,aAC3C,cAAC,GAAD,KAECwR,EAAYzR,iBAAmByR,EAAYvR,cAAiBuR,EAAY1R,cACzE,yBAASrI,UAAU,mBAAnB,SACE,sBAAKhC,GAAG,cAAR,UACE,sBAAKC,MAAM,OAAOD,GAAG,YAAYyf,oBAAoB,iBAAiBC,MAAM,6BAC1E5E,QAAQ,iBAAiB9Y,UAAU,yBADrC,UAEE,iCACE,cAAC,GAAD,IACA,cAAC,GAAD,IACA,cAAC,GAAD,IACA,cAAC,GAAD,IACA,cAAC,GAAD,OAEF,oBAAGhC,GAAG,MAAN,UACE,sBAAMA,GAAG,UAAUgC,UAAU,QAAQO,EAAE,8rmBAA8rmBpC,UAAU,wBAC/umB,sBAAMH,GAAG,KAAKgC,UAAWud,EAAUhd,EAAE,gheAAghepC,UAAU,4BAE/je4b,EAAY3R,sBACZ2R,EAAYzR,iBAAoByR,EAAYvR,cAAsC,YAAtBsF,EAAQuO,WACpE,cAAC,EAAD,CAAatC,YAAaA,IAE3BA,EAAY1R,aACX,cAAC,GAAD,CAAe0R,YAAaA,EAAaC,eAAgBsC,EAAUD,UAAWpC,aAAcnM,EAAQuO,UAAWpS,KAAMuT,IAGrHzD,EAAYvR,cAAgBuR,EAAYzR,iBACxC,cAAC,GAAD,CAAmB2B,KAAM8P,EAAYS,YAAa3R,SA/KhE,SAAgCoB,GAC9B8P,EAAYS,YAAcvQ,EAC1BkS,EAAepC,GACfkD,EAAahT,IA4KkFV,KAAK,OAExFwQ,EAAY3R,qBAAuB,cAAC,EAAD,CAAetK,KAAK,KAAKC,KAAK,OAClEgc,EAAYxR,aACX,eAAC,IAAMxI,SAAP,WACE,oBAAG/B,GAAG,iBAAN,UACE,cAAC,GAAD,CAAUF,KAAK,OAAOC,KAAK,UAC3B,cAAC,GAAD,CAAUD,KAAK,OAAOC,KAAK,UAC3B,cAAC,GAAD,CAAUD,KAAK,OAAOC,KAAK,UAC3B,cAAC,GAAD,CAAUD,KAAK,QAAQC,KAAK,SAC5B,cAAC,GAAD,CAAUD,KAAK,QAAQC,KAAK,UAC5B,cAAC,GAAD,CAAUD,KAAK,QAAQC,KAAK,UAC5B,cAAC,GAAD,CAAUD,KAAK,MAAMC,KAAK,WAE5B,cAAC,EAAD,CAAQS,KAAM8d,EAAU9d,OACxB,oBAAGR,GAAG,cAAN,UACE,0BAAUgC,UAAU,SAASM,OAAO,8LACpC,0BAAUN,UAAU,SAASM,OAAO,oCACpC,sBAAMN,UAAU,SAASE,GAAG,QAAQC,GAAG,QAAQC,GAAG,QAAQC,GAAG,UAC7D,0BAAUL,UAAU,SAASM,OAAO,kJACpC,0BAAUN,UAAU,SAASM,OAAO,6JACpC,0BAAUN,UAAU,SAASM,OAAO,qDAEtC,oBAAGtC,GAAG,sBAAN,UACE,cAAC,GAAD,CAAYF,KAAK,MAAMC,KAAK,OAC5B,cAAC,GAAD,CAAYD,KAAK,MAAMC,KAAK,QAC5B,cAAC,GAAD,CAAYD,KAAK,MAAMC,KAAK,QAC5B,cAAC,GAAD,CAAYD,KAAK,KAAKC,KAAK,QAC3B,cAAC,GAAD,CAAYD,KAAK,MAAMC,KAAK,QAC5B,cAAC,GAAD,CAAYD,KAAK,MAAMC,KAAK,QAC5B,cAAC,GAAD,CAAYD,KAAK,MAAMC,KAAK,QAC5B,cAAC,GAAD,CAAYD,KAAK,MAAMC,KAAK,QAC5B,cAAC,GAAD,CAAYD,KAAK,MAAMC,KAAK,QAC5B,cAAC,GAAD,CAAYD,KAAK,MAAMC,KAAK,WAE9B,cAAC,GAAD,CAAaS,KAAM8d,EAAU9d,OAC7B,oBAAGR,GAAG,cAAc,YAAU,YAA9B,UACE,cAAC,GAAD,CAAoBF,KAAK,QAAQC,KAAK,UACtC,cAAC,GAAD,CAAoBD,KAAK,QAAQC,KAAK,UACtC,cAAC,GAAD,CAAoBD,KAAK,SAASC,KAAK,WACvC,cAAC,GAAD,CAAoBD,KAAK,SAASC,KAAK,WACvC,cAAC,GAAD,CAAoBD,KAAK,SAASC,KAAK,WACvC,cAAC,GAAD,CAAoBD,KAAK,MAAMC,KAAK,WACpC,cAAC,GAAD,CAAoBD,KAAK,QAAQC,KAAK,WACtC,cAAC,GAAD,CAAoBD,KAAK,MAAMC,KAAK,QACpC,cAAC,GAAD,CAAoBD,KAAK,MAAMC,KAAK,WAEpC,cAAC,GAAD,CAAoBD,KAAK,SAASC,KAAK,WACvC,cAAC,GAAD,CAAoBD,KAAK,MAAMC,KAAK,UACpC,cAAC,GAAD,CAAoBD,KAAK,MAAMC,KAAK,QAEpC,cAAC,GAAD,CAAoBD,KAAK,QAAQC,KAAK,QACtC,cAAC,GAAD,CAAoBD,KAAK,QAAQC,KAAK,UACtC,cAAC,GAAD,CAAoBD,KAAK,QAAQC,KAAK,SACtC,cAAC,GAAD,CAAoBD,KAAK,MAAMC,KAAK,SACpC,cAAC,GAAD,CAAoBD,KAAK,QAAQC,KAAK,UACtC,cAAC,GAAD,CAAoBD,KAAK,QAAQC,KAAK,UACtC,cAAC,GAAD,CAAoBD,KAAK,MAAMC,KAAK,UACpC,cAAC,GAAD,CAAoBD,KAAK,MAAMC,KAAK,QACpC,cAAC,GAAD,CAAoBD,KAAK,MAAMC,KAAK,QACpC,cAAC,GAAD,CAAoBD,KAAK,MAAMC,KAAK,OACpC,cAAC,GAAD,CAAoBD,KAAK,QAAQC,KAAK,QACtC,cAAC,GAAD,CAAoBD,KAAK,QAAQC,KAAK,cAI3Cgc,EAAYvR,cACX,eAAC,IAAMzI,SAAP,WACE,cAAC,EAAD,CAAUqI,oBAAqB2R,EAAY3R,oBAAqB0F,QAASA,EAAQtP,OACjF,cAAC,EAAD,CAAY4J,oBAAqB2R,EAAY3R,uBAC1C2R,EAAY3R,qBACb,eAAC,IAAMrI,SAAP,WACE,cAAC,EAAD,CAAsBjC,KAAK,SAASC,KAAK,QACzC,oBAAGC,GAAG,cAAc,YAAU,YAA9B,UACE,cAAC,GAAD,CAAoBF,KAAK,KAAKC,KAAK,QACnC,cAAC,GAAD,CAAoBD,KAAK,MAAMC,KAAK,UACpC,cAAC,GAAD,CAAoBD,KAAK,QAAQC,KAAK,QAEtC,cAAC,GAAD,CAAoBD,KAAK,MAAMC,KAAK,WAEtC,mBAAGC,GAAG,sBAAN,SACE,cAAC,GAAD,CAAYF,KAAK,QAAQC,KAAK,gBAIlCgc,EAAY3R,qBAAuB,cAAC,EAAD,CAAW5J,KAAMsP,EAAQtP,OAC7Dub,EAAY3R,qBAAuB,cAAC,GAAD,CAAkB5J,KAAMsP,EAAQtP,UAGvEub,EAAYxR,aACX,cAAC,GAAD,CAAa0B,KAAMuT,OAGvB,sBAAKxd,UAAU,cAAf,UACI+Z,EAAYxR,aAAewR,EAAYtR,cACvC,eAAC,IAAM1I,SAAP,WACE,cAAC,EAAD,CAAqBvB,KAAM8d,EAAU9d,OACrC,cAAC,GAAD,CAAUA,KAAM8d,EAAU9d,UAG5Bub,EAAYxR,aAAewR,EAAYrR,aACvC,cAAC,GAAD,IAEAqR,EAAYvR,cAAgBuR,EAAYtR,cACxC,cAAC,EAAD,CAAQjK,KAAMsP,EAAQtP,OAEtBub,EAAYvR,cAAgBuR,EAAYrR,aACxC,cAAC,EAAD,IAEDqR,EAAYvR,cAAgB,cAAC,GAAD,OAE7BuR,EAAY3R,qBACZ,cAAC,GAAD,CAAkB5J,KAAMsP,EAAQtP,gBE9W/Bmf,GAZS,SAACC,GACnBA,GAAeA,aAAuBC,UACxC,8BAAqB5M,MAAK,YAAkD,IAA/C6M,EAA8C,EAA9CA,OAAQC,EAAsC,EAAtCA,OAAQC,EAA8B,EAA9BA,OAAQC,EAAsB,EAAtBA,OAAQC,EAAc,EAAdA,QAC3DJ,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAQN,OCHdO,IAASC,OACP,cAAC,IAAMC,WAAP,UACE,cAAC,GAAD,MAEF/W,SAASgX,eAAe,SAM1BX,M","file":"static/js/main.16c7d462.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\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 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?.ProductionLt100MW !== this.props.data.ProductionLt100MW){ \r\n this.setCabels();\r\n } \r\n } \r\n\r\n private setCabels(){\r\n let elm = this.props.data; \r\n let dk1_no:string = elm[\"Exchange_DK1_NO\"]>0?'reverse-animation':'animation'; \r\n let dk1_se:string = elm[\"Exchange_DK1_SE\"]>0?'animation':'reverse-animation'; \r\n let dk1_nl:string = elm[\"Exchange_DK1_NL\"]>0?'reverse-animation':'animation'; \r\n let dk1_de:string = elm[\"Exchange_DK1_DE\"]>0?'animation':'reverse-animation'; \r\n let dk1_dk2:string = elm[\"Exchange_DK1_DK2\"]>0?'animation':'reverse-animation'; \r\n let dk2_se:string = elm[\"Exchange_DK2_SE\"]>0?'reverse-animation':'animation'; \r\n let dk2_de:string = elm[\"Exchange_DK2_DE\"]>0?'animation':'reverse-animation'; \r\n let bh_se:string = elm[\"Exchange_Bornholm_SE\"]>0?'reverse-animation':'animation'; \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 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 \r\n {/* Luftledning, jævnstrøm */}\r\n \r\n \r\n \r\n \r\n \r\n {/* Jylland -> Tyskland */}\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 GasstorageConsumptionInDK:string;\r\n PowerDataMissing:string;\r\n GasDataMissing:string;\r\n PowerDataError:string;\r\n GasDataError: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 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 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\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 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 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 \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 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('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_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\nexport interface IGasLabelProps {\r\n label: string;\r\n directionLabel: string;\r\n flow: string;\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 &&\r\n
    {this.props.label}
    \r\n }\r\n {this.props.flow &&\r\n
    {this.props.flow}
    \r\n }\r\n {this.props.ekstraLabel &&\r\n
    {this.props.ekstraLabel}
    }\r\n {this.props.ekstraLabelValue &&\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 { formatAbsNumber, 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:formatAbsNumber(data.KWhFromNorthSea) + ' kWh', 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:formatAbsNumber(data.KWhToOrFromGermany) + ' kWh', xpos:'115', ypos:'250'}); \r\n dataArray.push({label: locals.DailyGasToSweden, value:formatAbsNumber(data.KWhToSweden) + ' kWh', xpos:'280', ypos:'165'}); \r\n dataArray.push({label: locals.DailyGasFromNorthSea, value:formatAbsNumber(data.kWhFromTyra) + ' kWh', xpos:'45', ypos:'175'}); \r\n dataArray.push({label: data.KWhToPoland>0?locals.DailyGasFromPoland:locals.DailyGasToPoland, value:formatAbsNumber(data.KWhToPoland) +' kWh', 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 gasData: any;\r\n}\r\n\r\nexport interface IGasPipesProps { \r\n gasData: any;\r\n}\r\n\r\nclass BalticPipe extends React.Component {\r\n constructor(props: IGasPipesProps) {\r\n super(props);\r\n }\r\n\r\n componentDidMount() {\r\n this.setState(this.props);\r\n }\r\n\r\n render() {\r\n var directionBalticPipe: string = \"gasjunction-10 gasJunction-animation\";\r\n if (this.state?.gasData?.KWhToPoland > 0)\r\n directionBalticPipe = \"gasjunction-10 gasJunction-reverse-animation\"\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}\r\n\r\nexport interface IGasPipesProps {\r\n convertToGasStorage: boolean;\r\n gasData: any;\r\n}\r\n\r\nclass GasPipes extends React.Component {\r\n constructor(props: IGasPipesProps) {\r\n super(props);\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({ convertToGasStorage: this.props.convertToGasStorage, gasData: this.props.gasData });\r\n }\r\n\r\n render() { \r\n var directionNorway: string = \"gasjunction-10 gasJunction-reverse-animation\";\r\n if (this.state?.gasData?.KWhFromNorthSea > 0)\r\n directionNorway = \"gasjunction-10 gasJunction-animation\"\r\n\r\n var directionNorthSea: string = \"gasjunction-10 gasJunction-reverse-animation\";\r\n if (this.state?.gasData?.kWhFromTyra > 0)\r\n directionNorway = \"gasjunction-10 gasJunction-animation\"\r\n\r\n var directionGermany: string = \"gasjunction-10 gasJunction-animation\";\r\n if (this.state?.gasData?.KWhToOrFromGermany > 0)\r\n directionNorway = \"gasjunction-10 gasJunction-animation\"\r\n\r\n var directionSweeden: string = \"gasjunction-10 gasJunction-reverse-animation\";\r\n if (this.state?.gasData?.KWhToSweden > 0)\r\n directionNorway = \"gasjunction-10 gasJunction-animation\"\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 {/* FromNorway */}\r\n \r\n {/* FromNorthSea */}\r\n \r\n {/* ToGermany */}\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\nexport interface IGasStorageLabelProps {\r\n label: string;\r\n directionLabel: string;\r\n flow: string;\r\n ekstraLabel: string;\r\n ekstraLabelValue: string;\r\n xpos: string;\r\n ypos: string\r\n}\r\n\r\nexport interface IGasStorageLabelState {\r\n fontSize: string;\r\n}\r\n\r\n//const fontSize:string = '.2300rem';\r\n\r\nclass GasStorageLabel extends React.Component {\r\n constructor(props: IGasStorageLabelProps,) {\r\n super(props);\r\n this.state = { fontSize: '.45rem' };\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 color: '#02525e', \r\n }\r\n\r\n let titleStyle: React.CSSProperties | object = {\r\n fontSize: this.state.fontSize,\r\n fontFamily: \"BrandonGrotesqueWeb-Bold\",\r\n }\r\n\r\n let ekstratitleStyle: React.CSSProperties | object = {\r\n fontSize: this.state.fontSize,\r\n fontFamily: \"BrandonGrotesqueWeb-Regular\",\r\n paddingTop: \"3px\"\r\n }\r\n\r\n let valueStyle: React.CSSProperties | object = {\r\n fontSize: this.state.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.props.label &&\r\n
    {this.props.label}
    \r\n }\r\n {this.props.flow &&\r\n
    {this.props.flow}
    \r\n }\r\n {this.props.ekstraLabel &&\r\n
    {this.props.ekstraLabel}
    }\r\n {this.props.ekstraLabelValue &&\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 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 \r\n let data = this.props.data; \r\n console.log(data);\r\n let value = data.kWhFromTyra; \r\n value<0?vLabel= exportString + \": \":vLabel=importString + \": \"; \r\n dataArray.push({label: locals.Import, value:formatAbsNumberMW(value) + ' MW', ekstraLabel:null, ekstraLabelValue:null,\r\n xpos:'30', ypos:'185',directionLabel:vLabel });\r\n \r\n value = data.KWhToOrFromGermany; \r\n value<0?vLabel= exportString + \": \":vLabel=importString + \": \"; \r\n dataArray.push({label: locals.Import, value:formatAbsNumberMW(value) + ' MW', ekstraLabel:null, ekstraLabelValue:null,\r\n xpos:'100', ypos:'250',directionLabel:vLabel});\r\n \r\n value = data.KWhToSweden; \r\n value<0?vLabel= exportString + \": \":vLabel=importString + \": \"; \r\n dataArray.push({label: locals.Export, value:formatAbsNumberMW(value) +' MW', ekstraLabel:null, ekstraLabelValue:null,\r\n xpos:'290', ypos:'150',directionLabel:vLabel});\r\n\r\n value = data.KWhToPoland;\r\n value<0?vLabel= exportString + \": \":vLabel=importString + \": \"; \r\n dataArray.push({label: locals.Export, value:formatAbsNumberMW(value) +' MW', ekstraLabel:null, ekstraLabelValue:null,\r\n xpos:'270', ypos:'225',directionLabel:vLabel});\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 console.log(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.GasStorage} {locals.StorageInjection}
    \r\n {/*
    {locals.StorageInjection}
    */}\r\n
    {formatAbsNumberMW(this.state?.data?.KWhToOrFromGermany)} MW
    \r\n
    \r\n {/*
    \r\n
    {locals.BiomethaneProduction}
    \r\n
    {formatAbsNumberMW(this.state?.data?.KWhFromBiogas)}
    \r\n
    */}\r\n
    \r\n
    {locals.GasstorageConsumptionInDK}
    \r\n
    {formatAbsNumberMW(this.state?.data?.KWhToDenmark)} 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\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\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 }\r\n\r\n let valueStyle: React.CSSProperties | object = {\r\n fontSize: this.state.fontSize,\r\n fontFamily: \"DINNextLTPro-Regular\",\r\n }\r\n\r\n return (\r\n \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 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 { formatAbsNumber, 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:formatAbsNumber(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:formatAbsNumber(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:formatAbsNumber(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:formatAbsNumber(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:formatAbsNumber(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:formatAbsNumber(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:formatAbsNumber(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:formatAbsNumber(value), xpos:'310', ypos:'210',valueLabel:vLabel});\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, { 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\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 [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\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 \r\n var json = JSON.parse(jsonStr);\r\n\r\n console.log(json);\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 console.log(dataState);\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 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 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 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 }\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 {!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.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 \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 {(!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
    \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.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';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}