{"version":3,"sources":["shared/content-disposition.ts","../Currency.tsx","assets/docs/HOMER_Service_Terms.pdf","components/helper/NoMatch.tsx","components/project/ProjectProvider.tsx","components/project/pages/Results/SideNavigationView.tsx","components/helper/ToolTipInfo.tsx","components/project/pages/Results/ResultTableView.tsx","components/helper/ContextHelp.tsx","components/project/pages/Results/OptimizationResults.tsx","components/project/pages/Results/SensitivityResults.tsx","components/project/pages/Results/SummaryChartByHour.tsx","components/project/pages/Results/ResultSummary.tsx","components/project/pages/Results/AugmentationCapacityChart.tsx","components/project/pages/Results/AugmentationCostChart.tsx","components/project/pages/Results/AugmentationTable.tsx","components/project/pages/Results/ResultAugmentation.tsx","components/project/pages/Results/time-series/Range.ts","components/helper/ColorRect.tsx","components/project/pages/Results/time-series/RangeSelector.tsx","components/project/pages/Results/time-series/PanZoomControl.tsx","components/project/pages/SharedComponents/DropDownSelector.tsx","components/project/pages/Results/time-series/TimeSeriesViewer.tsx","components/project/pages/Results/ResultTimeSeriesSection.tsx","components/project/pages/Results/ResultSolarEnergyProductionChart.tsx","components/project/pages/Results/ResultSolarEnergyTable.tsx","shared/Result.tsx","components/project/model/MultiYearVar.ts","components/project/model/CostTable.ts","components/project/model/SensitivityVar.ts","utils.ts","components/project/model/Sizing.ts","components/project/model/TimeSeries.ts","components/project/model/Resource.ts","components/project/model/Inverter.ts","components/project/model/Solar.ts","components/project/model/Incentive.ts","components/project/model/Storage.ts","colors.ts","components/project/model/Schedule.ts","components/project/model/Contract.ts","services/inputs.ts","components/project/model/CapacityMarket.ts","components/project/model/EnergyMarket.ts","components/project/model/Wind.ts","components/project/model/MultiYearTimeSeries.ts","components/project/model/RegulationMarket.ts","components/userLibrary/UserStorage.ts","services/Service.ts","services/api.ts","components/project/ResultCache.ts","components/project/pages/Results/time-series/TimeSeriesViewerModel.ts","components/project/results-details.ts","components/project/results.ts","components/helper/NumberInput.tsx","components/helper/ButtonDelete.tsx","components/project/pages/equipment/shared/DetailCostBreakup.tsx","components/project/ProjectStatus.ts","components/project/analyze.ts","components/project/model.ts","components/project/model/Location.ts","components/project/model/Commitments.tsx","components/project/pages/Results/ResultSolarEnergyMetricTable.tsx","components/project/pages/Results/ResultSolarEnergyProductionByMonthChart.tsx","components/project/pages/Results/ResultSolarEnergy.tsx","components/project/pages/Results/ResultStorageTable.tsx","components/project/pages/Results/ResultStorageMetricTable.tsx","components/helper/TimeSeriesView.tsx","components/project/pages/Results/ResultStorageChartByMonth.tsx","components/project/pages/Results/ResultStorageChartByHour.tsx","components/helper/ButtonAdd.tsx","components/project/pages/equipment/shared/SensitivityView.tsx","components/helper/NumberField.tsx","assets/images/sensitivity-var.svg","components/project/pages/EnergyMarket/SensitivityVarIcon.tsx","components/project/pages/equipment/shared/CostTableView.tsx","components/helper/validation.ts","components/project/pages/SharedComponents/MultiYearView.tsx","components/project/pages/EnergyMarket/SensitivityVarView.tsx","components/project/pages/equipment/shared/SizingView.tsx","components/project/pages/equipment/InverterView.tsx","components/helper/FilePicker.tsx","components/helper/StringInput.tsx","components/helper/StringField.tsx","components/helper/StringValidation.ts","components/project/pages/equipment/StorageView.tsx","components/project/pages/Results/ResultStorageSpecTable.tsx","components/project/pages/Results/ResultStorage.tsx","components/project/pages/Results/ResultRevenueTable.tsx","components/project/pages/Results/ResultRevenue.tsx","components/project/pages/Results/ProjectCashFlowChart.tsx","components/project/pages/Results/ResultCashFlow.tsx","components/project/pages/Results/ResultProForma.tsx","components/project/pages/Results/WindLossesView.tsx","components/project/pages/Results/ResultWindCalculations.tsx","components/project/pages/equipment/PowerCurveChart.tsx","components/project/pages/Results/ResultWindMetricTable.tsx","components/project/pages/Results/ResultWindChartByYear.tsx","components/project/pages/Results/ResultWindChartByMonth.tsx","components/project/pages/Results/ResultWind.tsx","components/project/pages/Results/ResultRegulationMarket.tsx","components/project/pages/Results/CompareEconomicsAnnualCashFlowChart.tsx","components/project/pages/Results/CompareEconomicsCumulativeCashFlowChart.tsx","components/project/pages/Results/ResultCompareEconomics.tsx","components/project/pages/Results/SelectedSystem.tsx","components/project/pages/Results/InfeasibleResult.tsx","components/project/pages/Results/ResultOst.tsx","components/project/pages/Results/ResultOstModal.tsx","components/project/pages/Results/GraphResults.tsx","components/project/pages/ResultsPage.tsx","components/project/pages/SharedComponents/LocationMapView.tsx","components/project/pages/SharedComponents/LocationAddressInput.tsx","components/project/capacityMarket/ScheduleGridView.tsx","components/project/capacityMarket/ScheduleEditor.tsx","components/project/pages/SetupPage.tsx","components/project/pages/equipment/shared/HourlyMaxSensitivity.tsx","components/project/pages/equipment/shared/HourlyMaxView.tsx","components/helper/MultiFilePicker.tsx","components/helper/MultiYearTimeSeriesImport.tsx","components/helper/YearSelector.tsx","components/helper/TimeSeriesImport.tsx","components/project/pages/revenue/EnergyMarket.tsx","components/project/pages/revenue/RegulationMarket.tsx","components/project/pages/revenue/CapacityMarket.tsx","components/library/LibraryView.tsx","components/project/pages/revenue/ContractExportObligations.tsx","components/project/pages/revenue/RateScheduleEditor.tsx","components/project/pages/revenue/ContractEnergyPrice.tsx","components/project/pages/revenue/Contract.tsx","components/helper/CollapsibleGroup.tsx","components/project/pages/SharedComponents/OverflowComponent.tsx","assets/images/order-of-commitment.svg","components/project/pages/RevenuePage.tsx","components/helper/RateScheduleView.tsx","components/project/pages/equipment/ConfigurationView.tsx","components/project/pages/equipment/shared/LossesTableView.tsx","components/project/pages/equipment/WindResourceView.tsx","components/project/pages/equipment/WindGroupView.tsx","components/helper/MultiTimeSeriesImport.tsx","components/project/pages/equipment/WindView.tsx","assets/images/transmission-tower.svg","assets/images/poi.svg","components/project/pages/equipment/shared/Shapes.tsx","components/project/pages/equipment/shared/SchematicIcon.tsx","assets/images/dynamo-ac.svg","assets/images/dynamo-dc.svg","components/project/pages/equipment/shared/Converter.tsx","assets/images/solar-panel.svg","components/project/pages/equipment/shared/SolarTechnology.tsx","assets/images/battery-level.svg","components/project/pages/equipment/shared/StorageTechnology.tsx","assets/images/wind-panel.svg","components/project/pages/equipment/shared/WindTechnology.tsx","components/project/pages/equipment/SchematicView.tsx","components/project/pages/equipment/ResourceView.tsx","components/project/pages/equipment/SolarView.tsx","components/project/pages/equipment/SolarGroupView.tsx","assets/images/schemantic.svg","components/project/pages/EquipmentPage.tsx","components/project/pages/IncentiveView.tsx","components/project/pages/OtherPage.tsx","components/helper/NavLink.tsx","components/project/ProjectNavigationBar.tsx","assets/images/user-regular.svg","components/project/pages/SharedComponents/LogOut.tsx","components/project/ProjectView.tsx","components/library/LibraryStore.ts","components/library/LibraryProvider.tsx","components/project/ProjectTableListView.tsx","assets/images/logo-horizontal.svg","components/auth/LoginView.tsx","components/project/ProjectStore.ts","components/userLibrary/UserStorageLibraryView.tsx","components/userLibrary/UserStorageProvider.tsx","components/userLibrary/UserStorageLibraryTableListView.tsx","components/userLibrary/UserStorageLibraryGeneralTabView.tsx","components/userLibrary/UserStorageChart.tsx","components/userLibrary/UserStorageCurveTable.tsx","components/userLibrary/UserStorageLibraryFuncModelTabView.tsx","components/userLibrary/UserStorageLibraryTempCapacityTabView.tsx","components/userLibrary/UserStorageLibraryCycleLifetimeTabView.tsx","components/userLibrary/UserStorageLibraryTempLifetimeTabView.tsx","components/userLibrary/UserStorageLibraryThermalTabView.tsx","components/userLibrary/UserStorageLibraryAugmentationTabView.tsx","components/userLibrary/UserStorageLibraryConverterTabView.tsx","components/userLibrary/UserStorageLibraryDefaultsTabView.tsx","components/userLibrary/UserStorageLibraryComponentEditView.tsx","components/userLibrary/UserStorageLibraryEditView.tsx","App.tsx","index.tsx"],"names":["HEX_ESCAPE_REPLACE_REGEXP","NON_LATIN1_REGEXP","QESC_REGEXP","PARAM_REGEXP","EXT_VALUE_REGEXP","DISPOSITION_TYPE_REGEXP","getlatin1","val","String","replace","ContentDisposition","type","parameters","this","pdecode","_str","hex","fromCharCode","parseInt","decodefield","str","match","exec","TypeError","value","charset","toLowerCase","binary","Buffer","from","toString","parse","string","key","index","length","names","params","lastIndex","substr","indexOf","push","slice","Code","Symbol","NoMatch","_","className","size","ProjectContext","createContext","useProjectStore","useContext","ProjectProvider","children","Provider","SideNavigationView","observer","isSensitivity","useMatch","isOptimization","isDetails","project","results","canSelectSensitivity","includes","selection","kind","canSelectOptimization","canSelectDetails","handleSelectSensitivity","a","navigateSelection","handleSelectGraph","handleSelectOptimization","handleSelectDetails","sensitivityTable","items","style","minHeight","onClick","selectedSensitivityCaseItem","header","ostDimension","selectedOptimizationCaseItem","optimizationTable","ResultsLink","label","section","useRegulationMarket","details","regulationMarketResult","regUpCapacityRevenueTimeseries","regUpEnergyRevenueTimeseries","regDownCapacityRevenueTimeseries","regDownEnergyExpenseTimeseries","wind","status","solar","storage","DetailsLink","active","onSelect","c","height","selectSection","numFormat","Intl","NumberFormat","maximumFractionDigits","SensitivityVars","sensitivity","map","x","name","format","units","OptimizationVars","optimization","valueIndex","Fragment","ToolTipInfo","align","centerAlign","OverlayTrigger","trigger","placement","overlay","id","ref","triggerHandler","color","ResultTableView","resultType","intlCulture","currency","currencySymbol","intl","IntlService","table","useState","selectedRow","setSelectedRow","onSelectRow","i","doubleClick","undefined","Table","responsive","colSpan","revenue","join","width","backgroundColor","onDoubleClick","y","formatNumber","capex","opex","npv","lcoe","irr","payback","verticalAlign","Button","disabled","variant","ContextHelp","helpId","markdownContent","content","markdownFooter","footer","popover","Popover","Title","padding","document","body","click","margin","Content","linkTarget","rootClose","title","fill","OptimizationResults","handleSelect","useCallback","selectOptimization","then","handleSelectKind","selectOptimizationKind","loading","optimizationTableState","tableKind","Spinner","animation","Form","Check","custom","checked","onChange","ev","target","fontSize","SensitivityResults","selectSensitivity","sensitivityTableState","getSelectionLabel","getSeries","series","data","SummaryChartByHour","chart","summaryChart","average","days","highestRevenueDayIndex","lowestRevenueDayIndex","getDataForSelection","prices","revenues","HOURS","Array","ChartView","priceSeries","item","axis","stack","v4","revenueSeries","Chart","position","labels","rotation","text","categories","axisCrossingValue","visible","concat","allSelectionKinds","dateFormatter","DateTimeFormat","month","day","DaySelector","onValueChange","highest","lowest","setIndex","useEffect","handleChangeDay","date","start","Date","getFullYear","getTime","Math","trunc","getIndexByDate","getDateByIndex","baseYear","ms","Dropdown","Toggle","Menu","Item","handleChangeKind","DatePicker","allChartKinds","getChartKindLabel","ResultSummary","useCommaAsDecimalPoint","setChart","daySelection","setDaySelection","model","financial","price","performance","SectionHeader","TableEntry","indent","description","isHelp","MetricRow","metric","first","LabelRow","FinancialSummaryTable","realDiscountRate","projectLifeTime","capitalCost","operatingCost","augmentationCost","contractParticipation","marketParticipation","useCapacityMarket","capacityMarketParticipation","EnergyPriceSummaryTable","markets","market","purchasePrice","salePrice","capacityPrice","RevenueSummaryTable","energyMarkets","solarRevenue","storageRevenue","windRevenue","capacityMarkets","energyRevenue","capacityRevenue","capacityBid","contracts","regulationMarkets","useRegUp","regUpCapacityRevenue","useEnergyPrice","regUpEnergyRevenue","useRegDown","regDownCapacityRevenue","regDownEnergyExpense","PerformanceSummaryTable","solarProduction","windProduction","storageThroughput","solarToStorage","gridToStorage","curtailedEnergy","solarClippedEnergy","otherClippedEnergy","excessElectricity","acLineLosses","transformerLosses","solarEnergy","storageEnergy","windEnergy","totalEnergy","meanStateOfCharge","cycleCost","hoursFromGrid","hoursToGrid","hoursIdle","utilizationRate","regUpCapacityCommitted","regUpEnergyExports","regDownCapacityCommitted","regDownEnergyImports","AugmentationCapacityChart","result","showBaseYearAsYearZero","year","float","zIndex","min","categoryField","field","orientation","AugmentationCostChart","AugmentationTable","maximum","minimum","augmentationFraction","augmentation","augmentationTotalCost","ResultAugmentation","makeRange","max","defaultRange","ensureBounds","r","bounds","l","ensureMinLength","minLength","center","round","zoomIn","newLength","zoomOut","panLeft","panRight","SWATCH_STYLE","minWidth","border","display","cursor","ColorRect","onColorChange","popOverMarginTop","timeseriesCount","show","setShow","POPOVER_STYLE","marginTop","marginLeft","colors","colors16","colors24","colors36","colors48","colors56","colors72","background","top","right","bottom","left","onChangeComplete","styles","default","card","BACK_COLOR","COLORS","normalize","prev","next","abs","RangeSelector","range","onRangeChange","values","setValues","handleChange","rv","handleFinalChange","step","onFinalChange","draggableTrack","allowOverlap","renderTrack","props","onMouseDown","onTouchStart","borderRadius","getTrackBackground","alignSelf","renderThumb","isDragged","justifyContent","alignItems","boxShadow","PanZoomControl","setRange","DropDownSelector","hidden","TimeSeriesViewer","handleYearChange","setYear","handleRangeChange","scrollable","collapsible","panes","setPanes","Splitter","event","newState","exportCsv","loadingCsv","exportMultiYearCsv","loadingMultiYearCsv","earlyAnalysis","lifetime","hasTop","hasBottom","TimeSeriesChart","itemsTop","axisTop","projectYear","itemsBottom","axisBottom","LegendView","timeFormatter","hour","minute","hour12","formatLabel","rangeHours","allCurSymbol","allcurrency","getAllISOCodes","symbol","valueToMs","START_DATE","renderAs","transitions","zoomable","mousewheel","lock","onDragEnd","nativeEvent","shiftKey","axisRanges","Number","onZoomEnd","render","context","hasOwnProperty","point","yAxis","substring","e","t","stepsPerHour","markers","points","groups","group","mainItems","LegendItemView","showExtra","extraItems","toggleShowExtra","axesTop","canSelectTop","axesBottom","canSelectBottom","setColor","selectedTop","selectTop","selectedBottom","selectBottom","ResultTimeSeriesSection","timeSeriesViewerModel","ResultSolarEnergyProductionChart","xs","ResultSolarEnergyTable","columnLabel","bus","production","clippedProduction","energyYield","degradation","capacityFactor","operatingTotalCost","Ok","ok","Err","error","CostTableType","MultiYearVar","makeObservable","enabled","multiYearKind","updateLifetime","linearValue","customValues","splice","k","MultiYearItem","observable","MultiYearKind","linear","action","init","Object","assign","SensitivityItem","SensitivityVar","setSingleValue","findIndex","setValue","computed","CostSensitivityItem","capital","operating","replacement","SimpleCostTable","addNewItem","ComplexCostItem","unit","ComplexCostItems","ComplexCostTable","CostTable","costTableType","simple","complex","rangeGen","delay","Promise","resolve","setTimeout","eq","b","readFile","file","reject","reader","FileReader","onerror","onload","readAsText","geocode","pos","geocoder","google","maps","Geocoder","location","GeocoderStatus","OK","address","formatted_address","country","address_components","countryName","long_name","countryCode","short_name","roundToDay","getMonth","getDate","SizeItem","Sizing","SizingKind","absolute","absoluteValues","relative","relativeValues","every","TimeSeries","state","reduce","acc","Resource","daily","setData","calculateAverage","scale","estimateSimulations","Inverter","efficiency","sizing","cost","Solar","directCapital","indirectCapital","defaultSolarComplexCostTable","customSize","customName","customAbbreviation","hasConverter","ComponentKind","homer","onlyZero","converter","InvestmentTaxCredit","eligiblePercent","itcPercent","Macrs","marginalTaxPercent","BonusDepreciation","bonusPercent","ProductionBased","credit","maxCredit","useDuration","duration","useCreditTaxPercent","creditTaxPercent","Storage","defaultStorageComplexCostTable","specs","customData","optimizeCycleLimitPerDay","useCycleLimitPerDay","augmentationDegradationLimit","energyMarket","useAuxiliaryLoad","auxiliaryLoadFlatPrice","useAuxiliaryLoadFlatPrice","storageServesAuxiliaryLoad","getColor","RateSchedule","addNewPriceRate","ScheduleRate","getNextRateColor","scheduleRates","schedule","vs","v","shiftScheduleValues","removeScheduleValue","setSchedule","defaultSchedule","parts","nextRateColorIndex","ContractObligationRequirement","dayKind","startDate","startHour","endDate","endHour","Contract","energyPriceEscalator","energyPriceTimeSeries","obligationTimeSeries","energyPriceKind","obligationKind","isEdit","obligations","contractedSolarCapacity","contractedWindCapacity","contractedStorageCapacity","competeWithWholesaleMarket","RaEvent","raEventOverlap","ab","end","begin","ba","months","toLocaleString","MonthlyVarItem","MonthlyVar","CapacityMarket","capacityEscalator","energyEscalator","eventKind","totalCallsPerYear","averageCallDuration","numberOfHighestPriceDays","events","priceUnit","energyPrice","allocatedStorageCapacity","getHours","isSpanned","j","initial","allEnergyMarkets","getEnergyMarketKindLabel","EnergyMarket","priceEscalator","allocation","priceAverage","useMultiYearPrice","Wind","availabilityLosses","performanceLosses","environmentalLosses","wakeEffectLosses","electricalLosses","curtailmentLosses","otherLosses","f","altitude","anemometerHeight","capitalCostDetail","unitCost","hubHeight","MultiYearTimeSeries","projectYearsValid","timeSeriesFileBaseName","RegulationMarket","abbreviation","regUpPrice","regUpPriceYear","regDownPrice","regDownPriceYear","energyPriceYear","serializeInputs","version","author","notes","latitude","lat","longitude","lng","dateFormat","expectedCommercialOperationalDate","serializeDate","expectedDate","expectedNoticeToProceed","noticeToProceed","electricityMarket","ignoreWarnings","hasImportLimit","importLimit","hasImportLimitTimeSeries","importLimitTimeSeriesData","serializeTimeSeries","hasImportLimitSchedule","importScheduleLimits","importLimitSchedule","importScheduleLimitRates","hasExportLimit","exportLimit","hasExportLimitTimeSeries","exportLimitTimeSeriesData","hasExportLimitSchedule","exportScheduleLimits","exportLimitSchedule","exportScheduleLimitRates","acLineEfficiencySensitivity","serializeSensitivityVar","acTransfomerEfficiencySensitivity","useEnergyMarket","multiYearPrice","serializeMultiYearTimeSeries","serializeMultiYearVar","allocationSensitivity","maxStorageCommitmentSensitivity","windAllocationSensitivity","pvAllocationSensitivity","serializeEnergyMarket","callDuration","serializeMonthlyVar","capacityPriceSensitivity","capacityPriceEscalator","energyMarketKind","serializeCapacityMarket","useContract","energyPriceRates","energyPriceSchedule","dailyObligationsTimeSeries","serializeContract","maxCommitmentRegUp","maxCommitmentRegDown","minRegUpPrice","minRegDownPrice","throughputPercentage","serializeRegulationMarket","canBatteryChargeFromGrid","useStorage","useSolar","useWind","interconnectionLimit","solarResource","serializeResource","windResource","temperatureResource","solarKind","serializeSizingVar","serializeCostTable","omEscalator","serializeConverter","deratingFactor","serializeSolar","augmentationPriceDecline","cycleLimitPerDay","auxiliaryLoadSensitivity","auxiliaryLoadPriceMultiYear","serializeStorage","customSizing","serializeWind","hasSystemConverter","inverter","incentives","serializeIncentive","systemFixedCost","systemOmCost","discountRate","inflationRate","timeStepSize","isNewSystemConverter","replacementEscalator","sizingKind","costTableKind","simpleCostTable","serializeSimpleCostTable","complexCostTable","serializeComplexCostTable","getRelative","base","capitalSensitivity","operatingSensitivity","replacementSensitivity","serializeComplexCostItem","offsetMs","getTimezoneOffset","toISOString","deserializeInputs","dto","forEach","convertSizingKind","convertMultiYearKind","convertCostTableKind","maintainCompatibility","deserializeDate","fileVersion","deserializeTimeSeries","deserializeMultiYearTimeSeries","deserializeSensitivityVar","deserializeMultiYearVar","deserializeEnergyMarket","deserializeMonthlyVar","find","m","deserializeCapacityMarket","deserializeContract","deserializeRegulationMarket","regulationMarket","deserializeSizingVar","deserializeCostTable","deserializeConverter","deserializeSolar","mkt","deserializeStorage","isNaN","deserializeWind","deserializeRateSchedule","deserializeResource","Error","deserializeIncentive","n","deserializeSimpleCostTable","deserializeComplexCostTable","server","rate","UserStorage","api","getUserStorage","spec","runInAction","UserStorageClass","bound","manufacturer","chemistry","requiresOneMinuteTimestep","nominalVoltage","applyMaxChargeRate","useDedicatedConverter","applyMaxChargeCurrent","applyMaxDischargeCurrent","maxChargeRate","maxChargeCurrent","maxDischargeCurrent","additiveEndOfLifeCalculation","degradationUsesNominalSoc","lifetimeCurve","capacityCurve","capacityTemperatureCurve","lifetimeTemperatureCurve","nominalCapacity","nominalPower","maximumCapacity","chargeCurrent","rangeOfCharge","minimumStateOfCharge","estimatedLifetimeThroughput","rateConstant","capacityRatio","effectiveSeriesResistance","fittedD0","fittedD1","fittedD2","fittedA","fittedBeta","arrheniusDegredationB","arrheniusDegredationD","capacityDegradationLimitForFitCyclelifetimeModel","initialStateOfCharge","useLifetimeCurve","ignoreCapacityVsTemperatureInModel","ignoreTemperatureEffectOnLifetime","simpleLifetimeInYears","stringSize","maximumOperatingTemperature","minimumOperatingTemperature","mass","fixedTemperature","thermalH","thermalCSpecific","augmentationPrice","capacityDegradationLimitForFitLifetimeTemperatureModel","applyMinimumLifetime","minimumLifetime","isAc","useFixedTemperature","augmentationDegradationLimitSensitivity","dedicatedConverter","costTable","useComplexCost","setName","setUnit","SerializeStorageSpecs","JSON_HEADER","TEXT_HEADER","GET","method","headers","POST","PUT","PATCH","DELETE","check","response","json","message","detail","console","statusText","checkUnsafe","getFileName","get","authenticationHandler","password","token","email","defaultCurrency","defaultDecimalPoint","defaultDateFormat","storages","storageSpecs","userStorageSpecs","windSpecs","solarCosts","storageCosts","samples","input","failOn401","Headers","set","fetch","login","success","clearToken","scheme","JSON","stringify","errors","setToken","readUserData","userData","lockId","forceLock","request","log","hashExistingData","hashNewData","patch","url","baseCaseIndex","resultId","problemId","userEmail","succeded","blob","reportData","fileName","filename","download","userStorage","listUserStorageSpecs","filter","initialize","ResultCache","optimizationGroup","Map","optimizationAll","ostDimensions","ostResultState","ostResult","clear","getResultTable","getOstDimensions","dim","getOstResult","ost","tempDimensions","isXAxis","isYAxis","selectedValue","setXAxis","setYAxis","setDimValue","has","getDetails","delete","TimeSeriesViewerModel","projectId","ts","initData","initRange","prevSelectedTop","prevSelectedBottom","TimeSeriesItem","nameToItem","TimeSeriesGroup","mainNames","extraNames","getTimeSeries","Set","some","selected","exportTimeSeries","exportMultiYearTimeSeries","defaultDetails","regUpMileageRevenue","regDownMileageRevenue","regulationMarketsThroughputRegUp","regulationMarketsThroughputRegDown","cashflow","cashflowCumulative","cashflowTableRevenues","cashflowTable","cashflowTree","nameplateCapacity","nameplatePower","augmentationLimit","levelizedCostOfStorage","stateOfChargeTimeSeries","stateOfChargeByMonth","annualEffectiveFullCycles","dailyEffectiveFullCycles","windTurbines","pvs","revenueResult","columns","timeSeries","ResultDetailsModel","loadingCashFlowCsv","exportCashFlow","defaultTable","defaultOstDimension","ids","displayNames","components","steps","defaultOstResult","planes","blendedPlane","ostLegends","superimposedValues","simulationPoints","formatSelection","s","parseSelection","query","split","ResultModel","cache","progress","calculate","getStatus","estimatedRemainingTime","cancelCalculation","detailsState","cancelDetailsCalculation","view","detailProgress","navigate","appInsights","ApplicationInsights","config","connectionString","envVariables","appInsightsConnString","loadAppInsights","trackPageView","fetchDataForSelection","fetchSensitivityTable","fetchOptimizationTable","fetchDetails","getSensitivity","sensitivityGraphState","selectDimension","getOptimization","clearBaseCaseSelection","baseCaseOptimizationTableState","baseCaseOptimizationTable","getBaseCaseOptimization","compareEconomicsBaseCaseOptimizationTable","useZeroCashFlow","removeDetails","detailsError","calculateDetails","detailState","calculateBaseCaseDetails","baseCaseId","baseCaseState","baseCaseDetails","baseCaseDetailsState","baseCaseError","getStatusDetails","it","MAX","baseCaseProgress","estimatedBaseCaseRemainingTime","userEmailNotification","setUserEmailNotification","deleteUserEmailNotification","baseCaseOptimizationState","NumberInput","onEnter","autoFocus","validator","onPaste","formatedText","useInternationalization","setText","setErrors","commit","inputText","formatedInputText","onBlur","onKeyPress","ButtonDelete","DetailCostBreakup","unitsSet","showReplacement","ComplexCostTableGroup","open","setOpen","stopPropagation","Collapse","in","CostGroupTable","onDelete","removeItem","FormControl","options","onValueChanged","defaultUnits","storageUnits","solarUnits","UnitsSelector","option","ChangeUnitOptionSetCurrency","unitOptionSet","entries","unitOptionAux","URL_APPLICATION","URL_EQUIPMENT","URL_OTHER","allSteps","ProjectStatus","onNav","currentStep","firstStep","lastStep","issues","completedStep","link","to","currentStepErrors","isBack","newStep","transition","window","localStorage","setItem","page","analyze","analyzeCapacityMarket","analyzeContract","analyzeSearchSpace","checkMultiYearEnergyPrice","checkedYears","Boolean","isZero","totalPvAllocation","singleValue","regMktNames","Analyzer","checkIfDuplicateExists","capacityMarket","contract","requiresSolarResource","checkCostTableHasCorrectUnits","warning","converterLabel","isInteger","incentive","simulations","estimateTotalSimulations","MAX_SIMULATION_ERROR_THRESHOLD","numFormatter","MAX_SIMULATION_WARNING_THRESHOLD","time","estimateTotalSimulationTime","hours","num1Formatter","getOverlappingEvents","getMidNightSpanEvents","hasEmptySchedule","getShorterRAEvents","DecimalSeparator","DateFormatLabel","DateFormat","checkItemsHasCorrectUnits","u","strict","strictMin","strictMax","arr","Location","code","setPos","setAddress","setCountry","Commitments","reCorder","percentage","allElectricityMarkets","allCurrencies","Currency","Project","onNavCallback","addCommitments","commitments","removeCommitments","current","availableEnergyMarkets","addNewValue","maxStorage","maxWind","maxPv","sort","addNewSolar","addNewWind","addNewStorage","getSolarCostItems","costs","listWindTurbineSpecs","setModel","setSpecs","getStorageCostItems","listStorageSpecs","defaultCosts","allMultiYearVars","marketIndex","priceIndex","yearsToAdd","solars","winds","resources","createIncentive","cmt","newCmt","updateOrderOfCommitments","ordRecCmt","cmtToRpl","recCmt","orderOfCommitments","newOrdCmt","warnings","restartCalculation","Row","ResultSolarEnergyMetricTable","dateFormatArray","formatDate","capitalExpenses","derateFactor","MONTHS","ResultSolarEnergyProductionByMonthChart","ResultSolarEnergy","totalProductionByMonth","ResultStorageTable","saleMarketNames","purchaseMarketNames","energyInput","energyOutput","converterEnergyInput","converterEnergyOutput","energySold","energyPurchased","stateOfChargePercentile25","stateOfChargePercentile50","stateOfChargePercentile75","equivalentCycles","getCouplingLabel","ResultStorageMetricTable","getMajorUnits","TimeSeriesView","chartTitle","yAxisTitle","setBounds","setNewRange","LocalizationProvider","language","IntlProvider","locale","pannable","majorUnit","ResultStorageChartByMonth","lowerField","q1Field","medianField","q3Field","upperField","Tooltip","dataItem","averageMinimum","averageMaximum","category","ResultStorageChartByHour","byHour","ButtonAdd","SensitivityView","showCapital","showOperating","showAugmentation","capitalLabel","operatingLabel","replacementLabel","augmentationLabel","capitalUnits","operatingUnits","replacementUnits","augmentationUnits","CostRow","getter","setter","setCapital","bind","setOperating","setReplacement","setAugmentation","NumberField","SensitivityVarIcon","count","hideSensitivity","src","sensitivityIcon","alt","CostTableView","simpleCostLabel","complexCostLabel","showDetailedCostTable","showDetailedReplacement","isStorage","isWind","hideHelp","handleClose","Group","as","Col","sm","controlId","setType","setIsNewSystemConverter","Modal","onHide","centered","Header","Body","Footer","Validation","flatMap","MultiYearView","linearLabel","customLabel","getLabel","isLinear","isCustom","setEnabled","setLinearValue","drop","MultiYearTable","indx","preventDefault","clipboardData","clipboardRows","getData","parseFloat","handleClipboardEvent","SensitivityVarView","isNumHide","hideLabel","isDisabled","customClass","labelWidth","SensitivityTable","removeValue","SizingView","absoluteUnits","relativeUnits","absoluteLabel","relativeLabel","customTblHead","componentId","absoluteText","relativeText","setKind","SizingTable","handleAdd","InverterView","sizeValidator","FilePicker","types","handleSelectFile","files","css","accept","StringInput","textArea","handleBlur","StringField","StrValidation","StorageView","storageUnitsAux","gotToRevenuPage","goTo","handleSelectLibrary","setCustomAbbreviation","setAugmentationCost","showImport","setShowImport","modelOptions","setModelOptions","userModelOptions","setUserModelOptions","cancel","libStorage","handleSetUseCycleLimitPerDay","setUseCycleLimitPerDay","handleSetOptimizeCycleLimitPerDay","setOptimizeCycleLimitPerDay","Divider","setCustomName","maxLen","onCancel","setCustomData","StorageSpecsView","integer","setHasConverter","setUseAuxiliaryLoad","setStorageServesAuxiliaryLoad","setUseAuxiliaryLoadFlatPrice","setEnergyMarket","getEscalationKindLabel","setAuxiliaryLoadFlatPrice","StorageImportModal","setState","source","importStorage","closeButton","href","more","setMore","less","getCharge","roundtripEfficiency","dischargeCurrent","LifetimeCurveView","xField","yField","ResultStorageSpecTable","ResultStorage","useMemo","ResultRevenueTable","solarItems","revenueItems","revenueChange","energy","priceChange","totalRegUpRevenue","totalRegUpRevenueChange","totalRegDownRevenue","totalRegDownRevenueChange","ResultRevenue","revenueKind","setRevenueKind","energyKind","setEnergyKind","getGroupingLabel","GroupingSelector","RevenueChartByMarket","setCount","getRevenueMarketData","getRevenueSeries","revenueChangeSeries","getRevenueChangeMarketData","getRevenueChangeSeries","onRefresh","chartOptions","themeOptions","chartInstance","setOptions","EnergyChartByMarket","energySeries","getEnergyMarketData","getEnergySeries","RevenueChartByTechnology","solarData","storageData","windData","EnergyChartByTechnology","ProjectCashFlowChart","noOfYears","chartData","chartDataCumulative","years","baseUnitStep","ResultCashFlow","exportCashFlowCsv","CashFlowTable","capEx","opEx","income","cumulative","ID_FIELD","EXPANDED_FIELD","CHILDREN_FIELD","ResultProForma","_export","flat","mapTree","expanded","setExpanded","tree","cols","yearCols","cell","ValueCell","NAME_COL","buildColumns","rows","treeToFlat","save","ExcelExport","exporter","hierarchy","TreeList","maxHeight","overflow","onExpandChange","newExpanded","expandField","subItemsField","expandable","isAccordian","isMore","WindLossesView","isShowMore","setIsShowMore","totalLosses","ResultWindCalculations","PowerCurveChart","ResultWindMetricTable","ResultWindChartByYear","ResultWindChartByMonth","ResultWind","powerCurve","ResultRegulationMarket","getTimeseriesData","rvs","regUpCapacityRevenueTs","regUpEnergyRevenueTs","regDownCapacityRevenueTs","regDownEnergyExpenseTs","ResultRegulationMarketMetricTable","CompareEconomicsAnnualCashFlowChart","chartData1","chartData2","CompareEconomicsCumulativeCashFlowChart","ResultCompareEconomics","showError","setShowError","viewType","setViewType","annualDifference","setAnnualDifference","cumulativeDifference","setCumulativeDifference","isCumulativeGraph","setIsCumulativeGraph","isDifferenceGraph","setIsDifferenceGraph","handleSetShowModal","fetchSelectBaseCaseOptimizationTable","handleConfirmBaseCaseSelection","getBaseCaseOptimizationTable","fetchBaseCaseDetails","fetchBaseCaseOptimizationTable","compareEconomicsOptimizationTableState","baseCase","selectedCase","compareEconomicsOptimizationTable","proposedCaseId","annualDifferenceValues","cumulativeDifferenceValues","setUseZeroCashFlow","setBaseCaseId","setBaseCaseIndex","SelectedSystem","ErrorView","InfeasibleResult","handleEditApplications","navigateUrl","handleEditEquipment","Alert","ResultOst","superimposedSelected","getCursorPosition","xAxis","canvasRef","useRef","dimensions","pointsXMax","yIndex","pointsYMax","xIndex","leftMargin","topMargin","grayStroke","blackStroke","font","formatPoints","pointsStr","minimumFractionDigits","drawYTicks","minYTicks","maxYTicks","pointYMin","fillStyle","strokeStyle","pointYMinSize","measureText","xYMin","fillText","pointYMinSize1","pointYMinSize2","drawMinYTick","pointYMax","pointYMaxSize","xYMax","pointYMaxSize1","pointYMaxSize2","drawMaxYTick","yNumOfTicks","yTicksDistance","distance","moveTo","lineTo","stroke","interpYPoints","yPoints","pointY","numOfTicks","interpolateYTicks","drawXTicks","minXTicks","maxXTicks","pointXMin","pointXMinSize","xXMin","drawMinXTick","pointXMax","pointXMaxSize","drawMaxXTick","xNumOfTicks","xTicksDistance","interpXPoints","interpXPointsStr","pointSize","interpolateXTicks","drawSuperimposedVerticesCircles","x0","y0","x1","y1","x2","y2","xL","yL","xLabel","yLabel","beginPath","arc","PI","superimposedValue","superImposedValueSize","drawSuperimposedValues","drawSuperimposedVerticesValues","xSteps","ySteps","xCircle","superimposedValues1","superimposedValue1","superImposedValueSize1","superimposedValues2","superimposedValue2","superImposedValueSize2","drawSuperimposedXSidesValues","yCircle","drawSuperimposedYSidesValues","ix","iy","drawSuperimposedInterpolatedValues","canvas","getContext","clearRect","maxYLabelSize","yAxisString","yLabelSizes","calculateLeftMargin","palette","getImageData","Uint8ClampedArray","putImageData","drawPlane","lineWidth","drawSides","labelSize","drawXAxisLabel","translate","rotate","restore","drawYAxisLabel","fillRect","drawLegend","element","addEventListener","removeEventListener","defaultProps","innerWidth","innerHeight","ResultOstModal","xPosition","yPosition","npvs","sensitivities","owner","clickedValue","minPoint","maxPoint","interpolatedPoint","component","axisDefaults","majorGridLines","line","majorTicks","GraphResults","showModal","setShowModal","clickPosition","setClickPosition","buttonState","setButtonState","setSuperimposedSelected","showSpinner","hideButton","handleAxisSelect","handleSuperimposedSelect","fetchOstResult","rect","getBoundingClientRect","xClick","clientX","yClick","clientY","ResultsPage","store","info","isGraph","loc","useLocation","cancelError","setCancelError","emailError","setEmailError","cancelling","setCancelling","isDetailsLoading","cancelled","detailsCancelled","clearErrors","setCurrentStep","canNotCalculate","select","pathname","checkLock","readOnly","saveProject","checkStatus","run","cancelDetailedCalculation","gotoSetup","setRestartCalculation","handleNavigateToError","ModelErrorsView","hasSensitivities","isEarlyAnalysis","infeasible","handleCloseReadOnlyPopup","updateShowReadOnlyPopup","md","lg","noThrow","path","showReadOnlyPopup","onClose","LoadingView","setChecked","onCheck","deleteEmailNotification","onConfirm","setEmailNotification","ProgressBar","now","animated","SendResultsEmail","setEmail","textAlign","fontWeight","hasErrors","setIgnoreWarnings","LocationMapView","handleDragEnd","latLng","updatePos","handleDblClick","stop","mapContainerStyle","zoom","onLoad","inst","disableDefaultUI","zoomControl","onDblClick","draggable","LocationAddressInput","updateCountry","autocomplete","setAutocomplete","onPlaceChanged","place","getPlace","geometry","placeholder","ScheduleTimeGrid","mode","marker","isDragging","setIsDragging","startPos","setStartPos","updateData","currentPos","weekday","weekend","clone","month0","month1","hour0","hour1","fillSchedule","handleMouseDown","p","handleMouseMove","handleMouseUp","activeValue","SCALE_W","BORDER_SIZE","HOUR_AXIS_SIZE","SCALE_H","MONTH_AXIS_SIZE","transform","onMouseLeave","monthName","onDown","onUp","onMove","getWidthByMode","getPosByMode","Cell","over","setOver","onMouseEnter","onMouseUp","onMouseMove","MonthAxis","HourAxis","padStart","ScheduleEditor","radioLabel1","radioLabel2","setMode","setMarker","COLOR_REACT_STYLE","dateFormatLabelArray","variables","isValidDateRange","handleLatChange","newLat","oldLng","handleLngChange","newLng","oldLat","handleSelectSolar","setUseSolar","handleSelectWind","setUseWind","handleSelectStorage","setUseStorage","handleUpdateAdress","setAuthor","setNotes","setCurrency","CountryAndCurrency","setDateFormat","setUseCommaAsDecimalPoint","valid","dateVal","setNoticeToProceed","setExpectedDate","setLifetime","isInternational","setElectricityMarket","setEarlyAnalysis","setUseEnergyMarket","setUseRegulationMarket","setUseCapacityMarket","setUseContract","HourlyMaxSensitivity","allocationType","handleDelete","HourlyRow","percent","HourlyMaxView","MultiFilePicker","allowMultipleImport","keepExistingFiles","contentList","multiple","MultiYearTimeSeriesImport","priceData","setPriceData","handleDeleteFile","handleEdit","close","sourceList","MultiTimeSeriesImportModal","yearMap","setPageRender","pageRender","tempPriceData","z","handleImport","currentYear","numErrors","import","newPriceData","borderless","fileIndex","yearIndex","handleChecked","YearSelector","TimeSeriesImport","showTimseriesViewer","timeSeriesViewerTitle","TimeSeriesImportModal","EnergyMarketCollection","single","showModel","setShowModel","EnergyMarketView","removeEnergyMarket","deleteEnergyMarket","canAddEnergyMarket","addNewEnergyMarket","eventKey","handleMultiSelect","handleEditYears","setUseMultiYearPrice","CapacityReferenceErrorModal","setVisible","handleCancel","backdrop","removeRegulationMarket","RegulationMarketView","addNewRegulationMarket","handleSelectRegUpPrice","setRegUpData","handleSelectRegDownPrice","setRegDownData","setAbbreviation","setUseEnergyPrice","setUseRegUp","setUseRegDown","CapacityMarketView","setEventKind","setTotalCallsPerYear","setAverageCallDuration","maxWidth","setNumberOfHighestPriceDays","RaEventView","removeEvent","onAdd","addEvent","setPriceUnit","setAverage","MonthlyValuesView","CapacityValuesView","setAllocatedStorageCapacity","setEnergyPriceKind","setEnergyPrice","Operation","NewRaEventView","setDate","setDuration","TimePicker","MonthlyValuesEditorView","ContractExportObligations","setObligationData","setObligationKind","ObligationsEditor","setContractedSolarCapacity","setContractedStorageCapacity","setContractedWindCapacity","defaultDate","setDayKind","setStartDate","setEndDate","setStartHour","setEndHour","setId","setShowSpinner","setIsEdit","setObligationTimeSeries","updateTimeseries","validKind","minDate","maxDate","obligationTimeSeriesData","firstOccurrenceDate","setHours","firstOccurrenceHour","firstOccurrenceWeekDay","getDay","lastOccurrenceDate","lastOccurrenceHour","lastOccurrenceWeekDay","firstWindowSaturday","firstWindowSaturdayHour","lastWindowSaturday","lastWindowSaturdayHour","firstWindowMonday","firstWindowMondayHour","lastWindowMonday","lastWindowMondayHour","firstWeekCorrection","handleRemove","removeObligation","updateDailyObligationsTimeseries","onEdit","handleConfirmAdd","addNewObligation","dailyObligationsSum","sumObligationTimeseries","RequirementView","enforceFocus","timeZone","getDayKindLabel","hourPickerSteps","HourPicker","getMinutes","convertDateToHour","array1","array2","num","idx","RateScheduleEditor","isPriceSchedule","rateLabel","rateName","removePriceRate","ContractPriceSchedule","setScheduleData","setCompeteWithWholesaleMarket","ContractCollection","ContractView","CollapsibleGroup","OverflowComponent","icon","toolTipTitle","html","orderofCommit","RateScheduleView","RateScheduleModal","ConfigurationView","handleImportLimitTimeseries","handleExportLimitTimeseries","setBus","setBatteryCanChargeFromGrid","setBatteryCantChargeFromGrid","setExportLimit","setHasImportLimitTimeSeries","setHasImportLimitSchedule","setHasImportLimit","setHasExportLimitTimeSeries","setHasExportLimitSchedule","importLimitsDisabled","setImportLimit","LossesTableView","setAvailabilityLosses","setPerformanceLosses","setEnvironmentalLosses","setOtherLosses","setWakeEffectLosses","setElectricalLosses","setCurtailmentLosses","toFixed","WindResourceView","setAltitude","setAnemometerHeight","WindGroupView","windModel","MultiTimeSeriesImport","fileData","setFileData","addFiles","isPv","sizeLabel","sizeHelp","currentCustomSize","currentData","newFileData","defaultValue","WindView","WindImportView","setCost","costMatrix","wakeEffectsLosses","setLifeTime","lifeTime","setHubHeight","turbinePerformanceLosses","WindImportModal","importWind","strokeColor","HLineSvg","strokeWidth","TSvg","isWindDcBus","tHeight","tCenter","marginBottom","SchematicIcon","Converter","systemConverter","iconSource","acconv","dcconv","SolarTechnology","solarPanel","StorageTechnology","batteryLevel","WindTechnology","windPanel","SchematicView","poi","transmissionTower","ResourceView","handleSelectTemperature","SolarView","solarUnitsAux","converterRelativeUnits","isHomer","SolarImportView","setCustomSize","SolarGroupView","hasHomerPv","pvCount","pvIndex","removeSolar","windState","setWindState","windFileData","setWindFileData","handleDeleteWindFile","handleWindSelect","setInterconnectionLimit","schematics","schematicIcon","removeWind","removeStorage","IncentiveView","InvestmentTaxCreditView","MacrsView","BonusDepreciationView","ProductionBasedView","IncentiveApplication","isWindEnabled","setItcPercent","setEligiblePercent","setMarginalTaxPercent","setBonusPercent","isStorageEnabled","setCredit","setMaxCredit","setUseDuration","setUseCreditTaxPercent","setCreditTaxPercent","isSolarEnabled","setSolar","setStorage","setWind","IncentiveHeader","getIncentiveLabel","removeIncentive","addNewIncentive","setSystemFixedCost","setSystemOmCost","setDiscountRate","setInflationRate","percentAbs","setTimeStepSize","NavLink","getProps","isPartiallyCurrent","ProjectNavHeader","marginRight","ProjectNavFooter","change","isChanged","getEntriesByType","getItem","reaction","toJS","ButtonGroup","isFirst","goToPrevious","isLast","goToNext","LogOut","decimalPoint","setDecimalPoint","setShowBaseYearAsYearZero","updateDefaultCurrency","updateUserDefaultCurrency","userReg","updateUserDefaultDateFormat","updateUserDefaultDecimalPoint","updateUserShowBaseYearAsYearZero","updateShowBaseYearAsYearZero","interface","flexDirection","sessionStorage","keys","cookies","cookieName","remove","reload","ProjectView","ready","unlockProject","updateLock","cleanup","loadProject","ProjectHeaderView","projectStore","updated","rel","ProjectSaver","globalHistory","listen","startsWith","closeProject","UnlockProjectModal","LibraryStore","projects","list","LibraryContext","LibraryProvider","initialSort","dateTimeFormat","dateCell","dateTimeCell","dataNotesCell","ProjectTableListView","onCopy","onDownload","onShare","onReport","useNavigate","React","setSort","navigateToInput","navigateToResult","Grid","sortable","orderBy","onSortChange","LibraryView","libraryStore","refresh","fetchProjects","handleCopy","setOperation","Copy","duplicate","handleDownload","downloadHomerFile","showReportIssue","setShowReportIssue","showShareProject","setShowShareProject","projectIdToReport","setProjectIdToReport","projectIdToShare","setProjectIdToShare","handleReport","Report","handleConfirmReport","reportIssue","setShowSuccess","hideError","setHideError","handleShare","Share","handleConfirmShare","shareProject","showDeleteConfirmation","setShowDeleteConfirmation","projectIdToDelete","setProjectIdToDelete","Delete","handleConfirmDelete","showSuccess","operation","ActionBar","setSamples","listSamples","handleCreateProject","create","handleCloneSample","cloneSample","ReportIssueModal","setDescription","ShareProjectModal","hideAlert","setHideAlert","onCancelShare","onConfirmShare","DeleteConfirmationModal","SuccessModal","LoginView","onLogin","setPassword","LOCAL","setAccept","acceptError","setAcceptError","serverErrors","setServerErrors","handleLogin","htmlFor","require","isInvalid","feedback","ProjectStore","loadInfo","readRawData","inputs","read","projectData","beforeResults","previousReadOnlyState","updateInfo","putOrPatchData","force","phase","projectLabel","coupling","dateCod","dateNtp","update","SHA1","dmp","diff_match_patch","patches","patch_make","patch_toText","patchRawData","updateRawData","encoder","TextEncoder","encode","crypto","subtle","digest","hash","hashArray","Uint8Array","hashHex","UserStorageContext","useUserLibraryStore","UserStorageProvider","UserStorageLibraryTableListView","navigateToEditPage","UserStorageLibraryView","operationResult","setOperationResult","setUserStorageList","duplicateUserStorage","setShowFeedback","downloadUserStorage","deleteUserStorage","showFeedback","userStorageList","handleImportStorage","Import","importStorageFromFile","hanleAddFromSample","addStorageFromSample","handleAddFromSample","onSelectFile","FeedbackModal","Update","StorageLibraryGeneralTab","setUserStorageName","setUserStorageRequiresOneMinuteTimestep","setUserStorageAbbreviation","setUserStorageUseMaxChargeRate","setUserStorageMaxChargeRate","setUserStorageManufacturer","setUserStorageUseMaxChargeCurrent","setUserStorageMaxChargeCurrent","setUserStorageChemistry","setUserStorageUseMaxDischargeCurrent","setUserStorageMaxDischargeCurrent","setUserStorageNotes","setUserStorageAdditiveEndOfLifeCalculation","setUserStorageDegradationUsesNominalSoc","CapacityChart","xAxisTitle","CycleLifetimeChart","TemperatureLifetimeChart","dataX","dataY","StorageCurveTable","deleteItem","addItem","columnHead1","columnHead2","handleSet","StorageLibraryFuncModelTab","setUserStorageCapacityCurveItem","userStorageCapacityCurveDeleteItem","userStorageCapacityCurveAddRow","setUserStorageNominalVoltage","setUserStorageMaximumCapacity","setUserStorageRateConstant","setUserStorageCapacityRatio","setUserStorageEffectiveSeriesResistance","StorageLibraryTempCapacityTab","ignoreCapacityChangesWithTemp","setIgnoreCapacityChangesWithTemp","setUserStorageIgnoreCapacityVsTemperatureInModel","setUserStorageCapacityTemperatureCurveItem","userStorageCapacityTemperatureCurveDeleteItem","userStorageCapacityTemperatureCurveAddRow","setUserStorageFittedD0","setUserStorageFittedD1","setUserStorageFittedD2","StorageLibraryCycleLifetimeTab","setUserStorageLifetimeCurveItem","userStorageLifetimeCurveDeleteItem","userStorageLifetimeCurveAddRow","setUserStorageCapacityDegradationLimitForFitCyclelifetimeModel","setUserStorageFittedA","setUserStorageFittedBeta","setUserStorageEstimatedLifetimeThroughput","StorageLibraryTempLifetimeTab","ignoreTempEffectOnLifetime","setIgnoreTempEffectOnLifetime","setUserStorageIgnoreTemperatureEffectOnLifetime","setUserStorageSimpleLifetimeInYears","setUserStorageLifetimeTemperatureCurveItem","userStorageLifetimeTemperatureCurveDeleteItem","userStorageLifetimeTemperatureCurveAddRow","setUserStorageCapacityDegradationLimitForFitLifetimeTemperatureModel","setUserStorageArrheniusDegredationB","setUserStorageArrheniusDegredationD","StorageLibraryThermalTab","setUserStorageMass","setUserStorageMaximumOperatingTemperature","setUserStorageMinimumOperatingTemperature","setUserStorageFixedTemperature","setUserStorageThermalH","setUserStorageThermalCSpecific","StorageLibraryAugmentationTab","setUserStorageAugmentationPrice","StorageLibraryConverterTab","setUseDedicatedConverter","StorageLibraryDefaultsTab","setUserStorageIsAc","setUserStorageInitialStateOfCharge","setUserStorageUseFixedTemperature","setUserStorageMinimumStateOfCharge","setUserStorageApplyMinimumLifetime","setUserStorageMinimumLifetime","UserStorageLibraryComponentEditView","showSaveConfirmation","setShowSaveConfirmation","handleSave","handleConfirmSave","updateUserStorage","Tabs","defaultActiveKey","Tab","ConfirmationModal","UserStorageLibraryComponentView","storageId","App","online","setOnline","logo","borderRight","Main","load","likelySubtags","currencyData","weekData","localCurrency","numbers","caGregorian","dateFields","ReactDOM","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.7a0b59b7.chunk.js","sourcesContent":["// from: https://github.com/tinyhttp/tinyhttp\r\n\r\n// eslint-disable-next-line no-control-regex\r\nconst ENCODE_URL_ATTR_CHAR_REGEXP = /[\\x00-\\x20\"'()*,/:;<=>?@[\\\\\\]{}\\x7f]/g\r\n\r\nconst HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/\r\nconst HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g\r\n\r\nconst NON_LATIN1_REGEXP = /[^\\x20-\\x7e\\xa0-\\xff]/g\r\n\r\n// eslint-disable-next-line no-control-regex\r\nconst QESC_REGEXP = /\\\\([\\u0000-\\u007f])/g\r\n\r\nconst QUOTE_REGEXP = /([\\\\\"])/g\r\n\r\nconst PARAM_REGEXP =\r\n /;[\\x09\\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\\x09\\x20]*=[\\x09\\x20]*(\"(?:[\\x20!\\x23-\\x5b\\x5d-\\x7e\\x80-\\xff]|\\\\[\\x20-\\x7e])*\"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\\x09\\x20]*/g // eslint-disable-line no-control-regex\r\nconst TEXT_REGEXP = /^[\\x20-\\x7e\\x80-\\xff]+$/\r\nconst TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/\r\n\r\nconst EXT_VALUE_REGEXP =\r\n /^([A-Za-z0-9!#$%&+\\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/\r\n\r\n// eslint-disable-next-line no-control-regex\r\nconst DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\\x09\\x20]*(?:$|;)/\r\n\r\nconst getlatin1 = (val: unknown) => {\r\n // simple Unicode -> ISO-8859-1 transformation\r\n return String(val).replace(NON_LATIN1_REGEXP, '?')\r\n}\r\n\r\nexport class ContentDisposition {\r\n type: string\r\n parameters: Record\r\n constructor(type: string, parameters: Record) {\r\n this.type = type\r\n this.parameters = parameters\r\n }\r\n}\r\n\r\nconst qstring = (val: unknown) => '\"' + String(val).replace(QUOTE_REGEXP, '\\\\$1') + '\"'\r\n\r\nconst pencode = (char: string) => '%' + String(char).charCodeAt(0).toString(16).toUpperCase()\r\n\r\nfunction ustring(val: unknown): string {\r\n const str = String(val)\r\n\r\n // percent encode as UTF-8\r\n const encoded = encodeURIComponent(str).replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode)\r\n\r\n return 'UTF-8\\'\\'' + encoded\r\n}\r\n\r\nconst basename = (str: string) => str.slice(str.lastIndexOf('/') + 1)\r\n\r\nfunction format({\r\n parameters,\r\n type,\r\n }: Partial<{\r\n parameters: Record\r\n type: string | boolean | undefined\r\n}>) {\r\n if (!type || typeof type !== 'string' || !TOKEN_REGEXP.test(type)) throw new TypeError('invalid type')\r\n\r\n // start with normalized type\r\n let string = String(type).toLowerCase()\r\n\r\n // append parameters\r\n if (parameters && typeof parameters === 'object') {\r\n const params = Object.keys(parameters).sort()\r\n\r\n for (const param of params) {\r\n const val = param.substr(-1) === '*' ? ustring(parameters[param]) : qstring(parameters[param])\r\n\r\n string += '; ' + param + '=' + val\r\n }\r\n }\r\n\r\n return string\r\n}\r\n\r\nfunction createParams(filename: string, fallback?: string | boolean) {\r\n const params: Partial & {\r\n filename: string\r\n }> = {}\r\n\r\n // fallback defaults to true\r\n if (fallback === undefined) fallback = true\r\n\r\n if (typeof fallback === 'string' && NON_LATIN1_REGEXP.test(fallback))\r\n throw new TypeError('fallback must be ISO-8859-1 string')\r\n\r\n // restrict to file base name\r\n const name = basename(filename)\r\n\r\n // determine if name is suitable for quoted string\r\n const isQuotedString = TEXT_REGEXP.test(name)\r\n\r\n // generate fallback name\r\n const fallbackName = typeof fallback !== 'string' ? (fallback ? getlatin1(name) : undefined) : basename(fallback)\r\n const hasFallback = typeof fallbackName === 'string' && fallbackName !== name\r\n\r\n // set extended filename parameter\r\n if (hasFallback || !isQuotedString || HEX_ESCAPE_REGEXP.test(name)) params['filename*'] = name\r\n\r\n // set filename parameter\r\n if (isQuotedString || hasFallback) params.filename = hasFallback ? fallbackName : name\r\n\r\n return params\r\n}\r\n\r\nconst pdecode = (_str: string, hex: string) => String.fromCharCode(parseInt(hex, 16))\r\n\r\n/**\r\n * Create an attachment Content-Disposition header.\r\n *\r\n * @param filename file name\r\n * @param options\r\n */\r\n\r\nexport function contentDisposition(\r\n filename: string,\r\n options: Partial<{\r\n type: string\r\n fallback: string | boolean\r\n }> = {},\r\n): string {\r\n // format into string\r\n return format(new ContentDisposition(options.type || 'attachment', createParams(filename, options.fallback)))\r\n}\r\n\r\nfunction decodefield(str: string) {\r\n const match = EXT_VALUE_REGEXP.exec(str)\r\n\r\n if (!match) throw new TypeError('invalid extended field value')\r\n\r\n const charset = match[1].toLowerCase()\r\n const encoded = match[2]\r\n let value: string\r\n\r\n // to binary string\r\n const binary = encoded.replace(HEX_ESCAPE_REPLACE_REGEXP, pdecode)\r\n\r\n switch (charset) {\r\n case 'iso-8859-1':\r\n value = getlatin1(binary)\r\n break\r\n case 'utf-8':\r\n value = Buffer.from(binary, 'binary').toString('utf8')\r\n break\r\n default:\r\n throw new TypeError('unsupported charset in extended field')\r\n }\r\n\r\n return value\r\n}\r\n\r\n/**\r\n * Parse Content-Disposition header string.\r\n * @param string string\r\n */\r\n\r\nexport function parse(string: string): ContentDisposition {\r\n let match = DISPOSITION_TYPE_REGEXP.exec(string)\r\n\r\n if (!match) throw new TypeError('invalid type format')\r\n\r\n // normalize type\r\n let index = match[0].length\r\n const type = match[1].toLowerCase()\r\n\r\n let key: string\r\n const names = []\r\n const params: { [key: string]: any } = {}\r\n let value\r\n\r\n // calculate index to start at\r\n index = PARAM_REGEXP.lastIndex = match[0].substr(-1) === ';' ? index - 1 : index\r\n\r\n // match parameters\r\n while ((match = PARAM_REGEXP.exec(string))) {\r\n if (match.index !== index) throw new TypeError('invalid parameter format')\r\n\r\n index += match[0].length\r\n key = match[1].toLowerCase()\r\n value = match[2]\r\n\r\n if (names.indexOf(key) !== -1) throw new TypeError('invalid duplicate parameter')\r\n\r\n names.push(key)\r\n\r\n if (key.indexOf('*') + 1 === key.length) {\r\n // decode extended value\r\n key = key.slice(0, -1)\r\n value = decodefield(value)\r\n\r\n // overwrite existing value\r\n params[key] = value\r\n continue\r\n }\r\n\r\n if (typeof params[key] === 'string') continue\r\n\r\n if (value[0] === '\"') value = value.substr(1, value.length - 2).replace(QESC_REGEXP, '$1')\r\n\r\n params[key] = value\r\n }\r\n\r\n if (index !== -1 && index !== string.length) throw new TypeError('invalid parameter format')\r\n\r\n return new ContentDisposition(type, params)\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Currency = void 0;\r\nexports.Currency = [\r\n { CountryAndCurrency: \"American Dollar\", Code: \"USD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"British Pound\", Code: \"GBP\", Symbol: \"£\" },\r\n { CountryAndCurrency: \"Canadian Dollar\", Code: \"CAD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Euro\", Code: \"EUR\", Symbol: \"€\" },\r\n { CountryAndCurrency: \"Japanese Yen\", Code: \"JPY\", Symbol: \"¥\" },\r\n { CountryAndCurrency: \"Swiss Franc\", Code: \"CHF\", Symbol: \"CHF\" },\r\n { CountryAndCurrency: \"Australian Dollar\", Code: \"AUD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Albanian Lek\", Code: \"ALL\", Symbol: \"Lek\" },\r\n { CountryAndCurrency: \"Algerian Dinar\", Code: \"DZD\", Symbol: \"دج\" },\r\n { CountryAndCurrency: \"Angolan Kwanza\", Code: \"AOA\", Symbol: \"Kz\" },\r\n { CountryAndCurrency: \"Afghan Afghani\", Code: \"AFN\", Symbol: \"؋\" },\r\n { CountryAndCurrency: \"Argentina Peso\", Code: \"ARS\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Armenian Dram\", Code: \"AMD\", Symbol: \"֏\" },\r\n { CountryAndCurrency: \"Aruba Guilder\", Code: \"AWG\", Symbol: \"ƒ\" },\r\n { CountryAndCurrency: \"Australia Dollar\", Code: \"AUD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Azerbaijan Manat\", Code: \"AZN\", Symbol: \"₼\" },\r\n { CountryAndCurrency: \"Bahamas Dollar\", Code: \"BSD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Bahraini Dinar\", Code: \"BHD\", Symbol: \".د.ب\" },\r\n { CountryAndCurrency: \"Bangladesh Taka\", Code: \"BDT\", Symbol: \"৳\" },\r\n { CountryAndCurrency: \"Barbados Dollar\", Code: \"BBD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Belarus Ruble\", Code: \"BYN\", Symbol: \"Br\" },\r\n { CountryAndCurrency: \"Belize Dollar\", Code: \"BZD\", Symbol: \"BZ$\" },\r\n { CountryAndCurrency: \"Bermuda Dollar\", Code: \"BMD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Bhutan Ngultrum\", Code: \"BTN\", Symbol: \"Nu\" },\r\n { CountryAndCurrency: \"Bolivia Bolíviano\", Code: \"BOB\", Symbol: \"$b\" },\r\n { CountryAndCurrency: \"Bosnia and Herzegovina Mark\", Code: \"BAM\", Symbol: \"KM\" },\r\n { CountryAndCurrency: \"Botswana Pula\", Code: \"BWP\", Symbol: \"P\" },\r\n { CountryAndCurrency: \"Brazil Real\", Code: \"BRL\", Symbol: \"R$\" },\r\n { CountryAndCurrency: \"Brunei Darussalam Dollar\", Code: \"BND\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Bulgaria Lev\", Code: \"BGN\", Symbol: \"лв\" },\r\n { CountryAndCurrency: \"Cabo Verde Escudo\", Code: \"CVE\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Cambodia Riel\", Code: \"KHR\", Symbol: \"៛\" },\r\n { CountryAndCurrency: \"Canada Dollar\", Code: \"CAD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Cayman Islands Dollar\", Code: \"KYD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Chile Peso\", Code: \"CLP\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"China Yuan Renminbi\", Code: \"CNY\", Symbol: \"¥\" },\r\n { CountryAndCurrency: \"Colombia Peso\", Code: \"COP\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Comorian Franc\", Code: \"KMF\", Symbol: \"CF\" },\r\n { CountryAndCurrency: \"Congolese Franc\", Code: \"CDF\", Symbol: \"FC\" },\r\n { CountryAndCurrency: \"Costa Rica Colon\", Code: \"CRC\", Symbol: \"₡\" },\r\n { CountryAndCurrency: \"Croatia Kuna\", Code: \"HRK\", Symbol: \"kn\" },\r\n { CountryAndCurrency: \"Cuba Peso\", Code: \"CUP\", Symbol: \"₱\" },\r\n { CountryAndCurrency: \"Czech Republic Koruna\", Code: \"CZK\", Symbol: \"Kč\" },\r\n { CountryAndCurrency: \"Denmark Krone\", Code: \"DKK\", Symbol: \"kr\" },\r\n { CountryAndCurrency: \"Dijibouti Franc\", Code: \"DJF\", Symbol: \"Fdj\" },\r\n { CountryAndCurrency: \"Dominican Republic Peso\", Code: \"DOP\", Symbol: \"RD$\" },\r\n { CountryAndCurrency: \"East Caribbean Dollar\", Code: \"XCD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Egypt Pound\", Code: \"EGP\", Symbol: \"£\" },\r\n { CountryAndCurrency: \"El Salvador Colon\", Code: \"SVC\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Eritrea Nakfa\", Code: \"ERN\", Symbol: \"ናቕፋ\" },\r\n { CountryAndCurrency: \"Euro Member Countries\", Code: \"EUR\", Symbol: \"€\" },\r\n { CountryAndCurrency: \"Eswatini Lilangeni\", Code: \"SZL\", Symbol: \"L\" },\r\n { CountryAndCurrency: \"Ethiopian Birr\", Code: \"ETB\", Symbol: \"ብር\" },\r\n { CountryAndCurrency: \"Falkland Islands Pound\", Code: \"FKP\", Symbol: \"£\" },\r\n { CountryAndCurrency: \"Fiji Dollar\", Code: \"FJD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Gabian Dalasi\", Code: \"GMD\", Symbol: \"D\" },\r\n { CountryAndCurrency: \"Georgia Lari\", Code: \"GEL\", Symbol: \"ლ\" },\r\n { CountryAndCurrency: \"Ghana Cedi\", Code: \"GHS\", Symbol: \"¢\" },\r\n { CountryAndCurrency: \"Gibraltar Pound\", Code: \"GIP\", Symbol: \"£\" },\r\n { CountryAndCurrency: \"Guatemala Quetzal\", Code: \"GTQ\", Symbol: \"Q\" },\r\n { CountryAndCurrency: \"Guernsey Pound\", Code: \"GGP\", Symbol: \"£\" },\r\n { CountryAndCurrency: \"Guinean Franc\", Code: \"GNF\", Symbol: \"GFR\" },\r\n { CountryAndCurrency: \"Guyana Dollar\", Code: \"GYD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Haitian Gourde\", Code: \"HTG\", Symbol: \"G\" },\r\n { CountryAndCurrency: \"Honduras Lempira\", Code: \"HNL\", Symbol: \"L\" },\r\n { CountryAndCurrency: \"Hong Kong Dollar\", Code: \"HKD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Hungary Forint\", Code: \"HUF\", Symbol: \"Ft\" },\r\n { CountryAndCurrency: \"Iceland Krona\", Code: \"ISK\", Symbol: \"kr\" },\r\n { CountryAndCurrency: \"India Rupee\", Code: \"INR\", Symbol: \"₹\" },\r\n { CountryAndCurrency: \"Indonesia Rupiah\", Code: \"IDR\", Symbol: \"Rp\" },\r\n { CountryAndCurrency: \"Iran Rial\", Code: \"IRR\", Symbol: \"﷼\" },\r\n { CountryAndCurrency: \"Iraqi Dinar\", Code: \"IQD\", Symbol: \"ع.د\" },\r\n { CountryAndCurrency: \"Isle of Man Pound\", Code: \"IMP\", Symbol: \"£\" },\r\n { CountryAndCurrency: \"Israel Shekel\", Code: \"ILS\", Symbol: \"₪\" },\r\n { CountryAndCurrency: \"Jamaica Dollar\", Code: \"JMD\", Symbol: \"J$\" },\r\n { CountryAndCurrency: \"Japan Yen\", Code: \"JPY\", Symbol: \"¥\" },\r\n { CountryAndCurrency: \"Jersey Pound\", Code: \"JEP\", Symbol: \"£\" },\r\n { CountryAndCurrency: \"Jordian Dinar\", Code: \"JOD\", Symbol: \"د.ا\" },\r\n { CountryAndCurrency: \"Kazakhstan Tenge\", Code: \"KZT\", Symbol: \"лв\" },\r\n { CountryAndCurrency: \"Kenyan Shiling\", Code: \"KES\", Symbol: \"/=\" },\r\n { CountryAndCurrency: \"Korea (North) Won\", Code: \"KPW\", Symbol: \"₩\" },\r\n { CountryAndCurrency: \"Kuwaiti Dinar\", Code: \"KWD\", Symbol: \"د.ك\" },\r\n { CountryAndCurrency: \"Kyrgyzstan Som\", Code: \"KGS\", Symbol: \"лв\" },\r\n { CountryAndCurrency: \"Laos Kip\", Code: \"LAK\", Symbol: \"₭\" },\r\n { CountryAndCurrency: \"Lebanon Pound\", Code: \"LBP\", Symbol: \"£\" },\r\n { CountryAndCurrency: \"Lesotho Loti\", Code: \"LSL\", Symbol: \"L\" },\r\n { CountryAndCurrency: \"Liberia Dollar\", Code: \"LRD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Libyan Dinar\", Code: \"LYD\", Symbol: \"ل.د\" },\r\n { CountryAndCurrency: \"Macau Pataca\", Code: \"MOP\", Symbol: \"MOP$\" },\r\n { CountryAndCurrency: \"Macedonia Denar\", Code: \"MKD\", Symbol: \"ден\" },\r\n { CountryAndCurrency: \"Malagasy Ariary\", Code: \"MGA\", Symbol: \"Ar\" },\r\n { CountryAndCurrency: \"Malaysia Ringgit\", Code: \"MYR\", Symbol: \"RM\" },\r\n { CountryAndCurrency: \"Malawi Kwacha\", Code: \"MWK\", Symbol: \"MK\" },\r\n { CountryAndCurrency: \"Maldives Rufiyaa\", Code: \"MVR\", Symbol: \".ރ\" },\r\n { CountryAndCurrency: \"Mauritania Ouguiya\", Code: \"MRU\", Symbol: \"UM\" },\r\n { CountryAndCurrency: \"Mauritius Rupee\", Code: \"MUR\", Symbol: \"₨\" },\r\n { CountryAndCurrency: \"Mexico Peso\", Code: \"MXN\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Moldovan Leu\", Code: \"MDL\", Symbol: \"L\" },\r\n { CountryAndCurrency: \"Mongolia Tughrik\", Code: \"MNT\", Symbol: \"₮\" },\r\n { CountryAndCurrency: \"Moroccan Dirham\", Code: \"MAD\", Symbol: \"د.إ\" },\r\n { CountryAndCurrency: \"Mozambique Metical\", Code: \"MZN\", Symbol: \"MT\" },\r\n { CountryAndCurrency: \"Myanmar Kyat\", Code: \"MMK\", Symbol: \"K\" },\r\n { CountryAndCurrency: \"Namibia Dollar\", Code: \"NAD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Nepal Rupee\", Code: \"NPR\", Symbol: \"₨\" },\r\n { CountryAndCurrency: \"Netherlands Antilles Guilder\", Code: \"ANG\", Symbol: \"ƒ\" },\r\n { CountryAndCurrency: \"New Zealand Dollar\", Code: \"NZD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Nicaragua Cordoba\", Code: \"NIO\", Symbol: \"C$\" },\r\n { CountryAndCurrency: \"Nigeria Naira\", Code: \"NGN\", Symbol: \"₦\" },\r\n { CountryAndCurrency: \"Norway Krone\", Code: \"NOK\", Symbol: \"kr\" },\r\n { CountryAndCurrency: \"Oman Rial\", Code: \"OMR\", Symbol: \"﷼\" },\r\n { CountryAndCurrency: \"Pakistan Rupee\", Code: \"PKR\", Symbol: \"₨\" },\r\n { CountryAndCurrency: \"Panama Balboa\", Code: \"PAB\", Symbol: \"฿\" },\r\n { CountryAndCurrency: \"Papua New Guinea Kina\", Code: \"PGK\", Symbol: \"K\" },\r\n { CountryAndCurrency: \"Paraguay Guarani\", Code: \"PYG\", Symbol: \"Gs\" },\r\n { CountryAndCurrency: \"Peru Sol\", Code: \"PEN\", Symbol: \"S/.\" },\r\n { CountryAndCurrency: \"Philippines Peso\", Code: \"PHP\", Symbol: \"₱\" },\r\n { CountryAndCurrency: \"Poland Zloty\", Code: \"PLN\", Symbol: \"zł\" },\r\n { CountryAndCurrency: \"Qatar Riyal\", Code: \"QAR\", Symbol: \"﷼\" },\r\n { CountryAndCurrency: \"Romania Leu\", Code: \"RON\", Symbol: \"lei\" },\r\n { CountryAndCurrency: \"Russia Ruble\", Code: \"RUB\", Symbol: \"₽\" },\r\n { CountryAndCurrency: \"Rwanda Franc\", Code: \"RWF\", Symbol: \"R₣\" },\r\n { CountryAndCurrency: \"Saint Helena Pound\", Code: \"SHP\", Symbol: \"£\" },\r\n { CountryAndCurrency: \"Samoa Tala\", Code: \"WST\", Symbol: \"WS$\" },\r\n { CountryAndCurrency: \"Sao Tome and Principe Dobra\", Code: \"STN\", Symbol: \"Db\" },\r\n { CountryAndCurrency: \"Saudi Arabia Riyal\", Code: \"SAR\", Symbol: \"﷼\" },\r\n { CountryAndCurrency: \"Serbia Dinar\", Code: \"RSD\", Symbol: \"Дин.\" },\r\n { CountryAndCurrency: \"Seychelles Rupee\", Code: \"SCR\", Symbol: \"₨\" },\r\n { CountryAndCurrency: \"Sierra Leone Leone\", Code: \"SLL\", Symbol: \"Le\" },\r\n { CountryAndCurrency: \"Singapore Dollar\", Code: \"SGD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Solomon Islands Dollar\", Code: \"SBD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Somalia Shilling\", Code: \"SOS\", Symbol: \"S\" },\r\n { CountryAndCurrency: \"South Africa Rand\", Code: \"ZAR\", Symbol: \"R\" },\r\n { CountryAndCurrency: \"South Korean Won\", Code: \"KRW\", Symbol: \"₩\" },\r\n { CountryAndCurrency: \"South Sudanese Pound\", Code: \"SSP\", Symbol: \"£\" },\r\n { CountryAndCurrency: \"Sri Lanka Rupee\", Code: \"LKR\", Symbol: \"₨\" },\r\n { CountryAndCurrency: \"Sudanese Pound\", Code: \"SDG\", Symbol: \"ج.س.\" },\r\n { CountryAndCurrency: \"Sweden Krona\", Code: \"SEK\", Symbol: \"kr\" },\r\n { CountryAndCurrency: \"Switzerland Franc\", Code: \"CHF\", Symbol: \"CHF\" },\r\n { CountryAndCurrency: \"Suriname Dollar\", Code: \"SRD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Syria Pound\", Code: \"SYP\", Symbol: \"£\" },\r\n { CountryAndCurrency: \"Taiwan New Dollar\", Code: \"TWD\", Symbol: \"NT$\" },\r\n { CountryAndCurrency: \"Tajikistan Somoni\", Code: \"TJS\", Symbol: \"SM\" },\r\n { CountryAndCurrency: \"Tanzanian Shilling\", Code: \"TZS\", Symbol: \"TSh\" },\r\n { CountryAndCurrency: \"Thailand Baht\", Code: \"THB\", Symbol: \"฿\" },\r\n { CountryAndCurrency: \"Trinidad and Tobago Dollar\", Code: \"TTD\", Symbol: \"TT$\" },\r\n { CountryAndCurrency: \"Tonga Pa'anga\", Code: \"TOP\", Symbol: \"T$\" },\r\n { CountryAndCurrency: \"Tunisian Dinar\", Code: \"TND\", Symbol: \"د.ت\" },\r\n { CountryAndCurrency: \"Turkmenistan New Manat\", Code: \"TMT\", Symbol: \"T\" },\r\n { CountryAndCurrency: \"Turkey Lira\", Code: \"TRY\", Symbol: \"₺\" },\r\n { CountryAndCurrency: \"Tuvalu Dollar\", Code: \"TVD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Ukraine Hryvnia\", Code: \"UAH\", Symbol: \"₴\" },\r\n { CountryAndCurrency: \"UAE-Dirham\", Code: \"AED\", Symbol: \"د.إ\" },\r\n { CountryAndCurrency: \"Uganda Shilling\", Code: \"UGX\", Symbol: \"USh\" },\r\n { CountryAndCurrency: \"United Kingdom Pound\", Code: \"GBP\", Symbol: \"£\" },\r\n { CountryAndCurrency: \"United States Dollar\", Code: \"USD\", Symbol: \"$\" },\r\n { CountryAndCurrency: \"Uruguay Peso\", Code: \"UYU\", Symbol: \"$U\" },\r\n { CountryAndCurrency: \"Uzbekistan Som\", Code: \"UZS\", Symbol: \"лв\" },\r\n { CountryAndCurrency: \"Vanuatu Vatu\", Code: \"VUV\", Symbol: \"VT\" },\r\n { CountryAndCurrency: \"Venezuela Bolívar\", Code: \"VEF\", Symbol: \"Bs\" },\r\n { CountryAndCurrency: \"Vietnam Dong\", Code: \"VND\", Symbol: \"₫\" },\r\n { CountryAndCurrency: \"Yemen Rial\", Code: \"YER\", Symbol: \"﷼\" },\r\n { CountryAndCurrency: \"Zambian Kwacha\", Code: \"ZMW\", Symbol: \"ZK\" },\r\n { CountryAndCurrency: \"Zimbabwe Dollar\", Code: \"ZWD\", Symbol: \"Z$\" }\r\n];\r\nexports.default = exports.Currency;\r\n//# sourceMappingURL=Currency.js.map\r\n","export default __webpack_public_path__ + \"static/media/HOMER_Service_Terms.bb7f8280.pdf\";","import {RouteComponentProps} from '@reach/router'\r\nimport {GrDocumentMissing} from 'react-icons/all'\r\n\r\ninterface NoMatchProps extends RouteComponentProps {}\r\n\r\nconst NoMatch = (_: NoMatchProps) => {\r\n return (\r\n
\r\n \r\n
NOT FOUND
\r\n
\r\n )\r\n}\r\n\r\nexport default NoMatch\r\n","import {createContext, PropsWithChildren, useContext} from 'react'\r\nimport {ProjectStore} from './ProjectStore'\r\n\r\n\r\nconst ProjectContext = createContext({} as ProjectStore)\r\n\r\ninterface ProjectProviderProps extends PropsWithChildren<{}> {\r\n value: ProjectStore\r\n}\r\n\r\nconst ProjectProvider = ({children, value}: ProjectProviderProps) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const useProjectStore = () => useContext(ProjectContext)\r\n\r\nexport default ProjectProvider\r\n","import './SideNavigationView.scss'\r\nimport {useMatch} from '@reach/router'\r\nimport {useProjectStore} from 'components/project/ProjectProvider'\r\nimport {ResultHeader, ResultItem, ResultModel} from 'components/project/results'\r\nimport {observer} from 'mobx-react-lite'\r\nimport {ResultDetailsSectionKind} from 'components/project/results-details'\r\nimport React/*, { useState }*/ from 'react'\r\n//import { MdPictureAsPdf } from 'react-icons/md'\r\n//import { Button } from 'react-bootstrap'\r\n//import ResultReportModal from './ResultReport'\r\n//import ToolTipInfo from '../../../helper/ToolTipInfo'\r\n\r\nconst SideNavigationView = observer(() => {\r\n const isSensitivity = useMatch('sensitivity/:selection')\r\n //const isGraph = useMatch('graph')\r\n const isOptimization = useMatch('optimization/:selection')\r\n const isDetails = useMatch('details/:selection')\r\n\r\n const project = useProjectStore().project!\r\n const results = project.results\r\n\r\n const canSelectSensitivity = ['none', 'sensitivity', 'optimization'].includes(results.selection.kind)\r\n const canSelectOptimization = ['sensitivity', 'optimization'].includes(results.selection.kind)\r\n const canSelectDetails = ['optimization'].includes(results.selection.kind)\r\n\r\n const handleSelectSensitivity = async () => {\r\n if (canSelectSensitivity) {\r\n await results.navigateSelection('sensitivity')\r\n } \r\n }\r\n const handleSelectGraph = async () => {\r\n await results.navigateSelection('graph')\r\n }\r\n const handleSelectOptimization = async () => {\r\n if (canSelectOptimization) {\r\n await results.navigateSelection('optimization')\r\n }\r\n }\r\n const handleSelectDetails = async () => {\r\n if (canSelectDetails) {\r\n await results.navigateSelection('details')\r\n } \r\n }\r\n //const [showResultReportModal, setShowResultReportModal] = useState(false)\r\n //const handleCreateProposal = async () => {\r\n // setShowResultReportModal(true)\r\n //}\r\n //const closeResultReportModal = () => {\r\n // setShowResultReportModal(false)\r\n //}\r\n return (\r\n <>\r\n
    \r\n {results.sensitivityTable.items.length > 1 &&\r\n
  • \r\n Sensitivity Table\r\n\r\n {results.selectedSensitivityCaseItem ?\r\n :\r\n
    \r\n Lowest NPC system configuration for each sensitivity case\r\n
    }\r\n
  • }\r\n {results.ostDimension && results.ostDimension.length > 1 &&\r\n
  • \r\n Sensitivity Graph\r\n
    \r\n Optimal System Type \r\n
    \r\n
  • }\r\n
  • \r\n Optimization Results\r\n {results.selectedOptimizationCaseItem ?\r\n :\r\n
    \r\n List of optimization\r\n
    }\r\n
  • \r\n\r\n
  • \r\n Selected Overview\r\n\r\n {!isDetails ?\r\n
    Performance details
    :\r\n
      \r\n \r\n {project.useRegulationMarket && results.details.details.regulationMarketResult?.length > 0 &&(results.details.details.regulationMarketResult[0].regUpCapacityRevenueTimeseries?.length > 0 || results.details.details.regulationMarketResult[0].regUpEnergyRevenueTimeseries?.length > 0 || results.details.details.regulationMarketResult[0].regDownCapacityRevenueTimeseries?.length > 0 || results.details.details.regulationMarketResult[0].regDownEnergyExpenseTimeseries?.length > 0) &&\r\n }\r\n {results.details.details.wind.status === 0 &&\r\n }\r\n {results.details.details.solar.status === 0 &&\r\n }\r\n {results.details.details.storage.status === 0 && <>\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 SideNavigationView\r\n\r\n\r\ninterface DetailsLinkProps {\r\n label: string\r\n active?: boolean\r\n onSelect?: () => void\r\n}\r\n\r\nconst DetailsLink = ({label, active, onSelect}: DetailsLinkProps) => {\r\n const c = 'side-nav-li-common-list-style side-subnav-li-common-list-style d-flex align-items-center ' +\r\n (active ? 'active active-subnav' : '')\r\n return (\r\n
  • \r\n {label}\r\n
  • \r\n )\r\n}\r\n\r\n\r\ninterface ResultsLinkProps {\r\n label: string\r\n results: ResultModel\r\n section: ResultDetailsSectionKind\r\n}\r\n\r\nconst ResultsLink = observer(({label, results, section}: ResultsLinkProps) => {\r\n return (\r\n results.details.selectSection(section)}/>\r\n )\r\n})\r\n\r\n\r\nconst numFormat = Intl.NumberFormat('en', {maximumFractionDigits: 2})\r\n\r\ninterface SensitivityVarsProps {\r\n header: ResultHeader\r\n selection: ResultItem\r\n}\r\n\r\nconst SensitivityVars = ({header, selection}: SensitivityVarsProps) => {\r\n return (\r\n
    \r\n {header.sensitivity.map((x, index) =>\r\n
    {x.name} : {numFormat.format(selection.sensitivity[index])} {x.units}
    ,\r\n )}\r\n
    \r\n )\r\n}\r\n\r\ninterface OptimizationVarsProps {\r\n header: ResultHeader\r\n selection: ResultItem\r\n}\r\n\r\nconst OptimizationVars = ({header, selection}: OptimizationVarsProps) => {\r\n return (\r\n
    \r\n {header.optimization\r\n .map((x, index) =>\r\n selection.optimization[index] !== null &&\r\n
    {x.name} : \r\n {selection.optimization[index].map((value, valueIndex) =>\r\n value !== null &&\r\n \r\n {numFormat.format(value)} {x.units[valueIndex]}\r\n {valueIndex < selection.optimization[index].length - 1 && ' / '}\r\n )}\r\n
    )}\r\n
    \r\n )\r\n}\r\n","import {OverlayTrigger, Tooltip} from 'react-bootstrap'\r\nimport {GoInfo} from 'react-icons/all'\r\n\r\ninterface ToolTipInfoProps {\r\n label: string\r\n centerAlign?: boolean\r\n}\r\n\r\nconst ToolTipInfo = ({ label, centerAlign }: ToolTipInfoProps) => {\r\n var align = centerAlign ? 'd-flex align-items-center ' : ''\r\n return {label}}>\r\n {({ref, ...triggerHandler}) =>\r\n \r\n \r\n \r\n }\r\n \r\n}\r\n\r\nexport default ToolTipInfo\r\n","import '@progress/kendo-theme-bootstrap/dist/all.scss'\r\nimport './ResultTableView.scss'\r\nimport React, { useState } from 'react'\r\nimport { useProjectStore } from 'components/project/ProjectProvider'\r\nimport { observer } from 'mobx-react-lite'\r\nimport { IntlService } from 'Kendo-Intl-5'\r\nimport { Button, Row, Table } from 'react-bootstrap'\r\nimport ToolTipInfo from '../../../helper/ToolTipInfo'\r\n\r\ninterface ResultTableProps {\r\n onSelect?: (index: number) => void\r\n resultType: ResultTableType\r\n intlCulture: string\r\n}\r\n\r\nconst ResultTableView = observer(({ onSelect, resultType, intlCulture }: ResultTableProps) => {\r\n const project = useProjectStore().project!\r\n const currency = project.currencySymbol ?? \"$\"\r\n const intl = new IntlService(intlCulture)\r\n const table = resultType === 'sensitivity' ? project.results.sensitivityTable : project.results.optimizationTable\r\n const [selectedRow, setSelectedRow] = useState(-1)\r\n const onSelectRow = (i: number, doubleClick: boolean) => {\r\n setSelectedRow(i)\r\n if (onSelect !== undefined && (doubleClick || resultType === 'compareEconomics'))\r\n onSelect(i)\r\n }\r\n\r\n return (<>\r\n
    \r\n \r\n \r\n \r\n {resultType === 'sensitivity' && < th colSpan={table.header.sensitivity?.length}>Sensitivity}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resultType === 'sensitivity' && table.header.sensitivity?.map(x =>\r\n \r\n )}\r\n {table.header.optimization?.map(x =>\r\n \r\n )}\r\n {table.header.revenue?.map(x =>\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {table.items?.map((x, i) =>\r\n onSelectRow(i, false)} onDoubleClick={() => onSelectRow(i, true)}>\r\n {resultType === 'sensitivity' && x.sensitivity?.map(y => )}\r\n {x.optimization?.map(y => )}\r\n {x.revenue?.map(y => )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
    Optimization1RevenueCostProject Economics
    {`${x.name} (${x.units})`}{`${x.name} (${x.units.join('/')})`}{`${x.name} (${currency}/yr)`}Capital ExpensesOperating Expenses Excl. AugmentationNPVLCOEIRRPayback
    {`${intl.formatNumber(y, 'n1')}`}{(y.length === 1 && y[0] != null ? intl.formatNumber(y[0], 'n1') : y.length === 2 && y[0] != null && y[1] != null ? `${intl.formatNumber(y[0], 'n1')}/${intl.formatNumber(y[1], 'n1')}` : '')}{`${intl.formatNumber(y, 'n2')}`}{intl.formatNumber(x.capex, 'n2')}{intl.formatNumber(x.opex, 'n2')}{intl.formatNumber(x.npv, 'n2')}{(x.lcoe != null ? intl.formatNumber(x.lcoe, 'n2') : '-')}{(x.irr != null ? intl.formatNumber(x.irr, 'n2') : '-')}{(x.payback != null ? intl.formatNumber(x.payback, 'n1') : '-')}
    \r\n
    \r\n
    \r\n {resultType !== 'compareEconomics' && onSelect !== undefined &&\r\n \r\n \r\n {selectedRow === -1 &&\r\n
    \r\n \r\n
    }\r\n
    }\r\n
    \r\n \r\n\r\n )\r\n})\r\n\r\nexport default ResultTableView\r\n\r\ntype ResultTableType = 'optimization' | 'sensitivity' | 'compareEconomics'\r\n","import {OverlayTrigger, Popover} from 'react-bootstrap'\r\nimport {Placement} from 'react-bootstrap/Overlay'\r\nimport ReactMarkdown from 'react-markdown'\r\nimport {BsQuestionCircleFill} from 'react-icons/all'\r\nimport content from '../../context-help.yaml'\r\nimport './ContextHelp.scss'\r\n\r\ninterface ContextHelpProps {\r\n helpId: string\r\n placement?: Placement\r\n}\r\n\r\nconst ContextHelp = ({helpId, placement}: ContextHelpProps) => {\r\n const markdownContent = content[helpId]?.content ?? ''\r\n const markdownFooter = content[helpId]?.footer ?? ''\r\n\r\n const popover = (\r\n \r\n \r\n
    \r\n
    Help
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {markdownContent}\r\n \r\n
    \r\n {markdownFooter}\r\n
    \r\n
    \r\n )\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default ContextHelp\r\n","import { RouteComponentProps } from '@reach/router'\r\nimport ResultTableView from './ResultTableView'\r\nimport Col from 'react-bootstrap/Col'\r\nimport React, { useCallback, useState } from 'react'\r\nimport { Button, Form, Modal, Spinner } from 'react-bootstrap'\r\nimport Row from 'react-bootstrap/Row'\r\nimport { useProjectStore } from 'components/project/ProjectProvider'\r\nimport { observer } from 'mobx-react-lite'\r\nimport { OptimizationTableKind } from 'components/project/results'\r\nimport ContextHelp from 'components/helper/ContextHelp'\r\n\r\n\r\ninterface OptimizationResultsProps extends RouteComponentProps { }\r\n\r\n\r\nconst OptimizationResults = observer((_: OptimizationResultsProps) => {\r\n const results = useProjectStore().project!.results\r\n const table = results.optimizationTable\r\n const [show, setShow] = useState(false)\r\n const handleSelect = useCallback((index: number) => {\r\n results.selectOptimization(index).then()\r\n }, [results])\r\n\r\n const handleSelectKind = useCallback((kind: string) => {\r\n results.selectOptimizationKind(kind as OptimizationTableKind).then()\r\n }, [results])\r\n\r\n const loading = results.optimizationTableState === 'loading'\r\n const kind = results.selection.kind === 'sensitivity' || results.selection.kind === 'optimization' ?\r\n results.selection.tableKind : 'all'\r\n return loading ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n <>\r\n
    \r\n \r\n
    \r\n
    \r\n ev.target.checked && handleSelectKind('group')} />\r\n
    \r\n
    \r\n ev.target.checked && handleSelectKind('all')} />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    Double click on a row or select row and click \"Get Detailed Results\" button to see simulations details
    \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 OptimizationResults\r\n","import { RouteComponentProps } from '@reach/router'\r\nimport Col from 'react-bootstrap/Col'\r\nimport ResultTableView from './ResultTableView'\r\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\r\nimport { useProjectStore } from 'components/project/ProjectProvider'\r\nimport { observer } from 'mobx-react-lite'\r\nimport { Dropdown, Spinner, Row } from 'react-bootstrap'\r\nimport ContextHelp from '../../../helper/ContextHelp'\r\n\r\ninterface SensitivityResultsProps extends RouteComponentProps { }\r\n\r\nconst SensitivityResults = observer((_: SensitivityResultsProps) => {\r\n const results = useProjectStore().project!.results\r\n const table = results.sensitivityTable\r\n\r\n const handleSelect = useCallback((index: number) => {\r\n results.selectSensitivity(index).then()\r\n }, [results])\r\n\r\n const loading = results.sensitivityTableState === 'loading'\r\n\r\n const showSensitivityGroup = !loading ? results.sensitivityTable.header.sensitivity.length > 0 : true\r\n\r\n return loading ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n <>\r\n
    \r\n \r\n
    Double click on a row or select row and click \"Select Sensitivity\" button to see additional simulations for the selected sensitivity
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n )\r\n})\r\n\r\nexport default SensitivityResults\r\n","import {Chart, ChartCategoryAxis, ChartCategoryAxisItem, ChartCategoryAxisTitle, ChartLegend, ChartSeries, ChartSeriesItem, ChartTooltip, ChartValueAxis, ChartValueAxisItem} from '@progress/kendo-react-charts'\r\nimport ChartValueAxisTitle from '@progress/kendo-react-charts/dist/es/components/value-axis-item/Title'\r\nimport {observer} from 'mobx-react-lite'\r\nimport {useProjectStore} from 'components/project/ProjectProvider'\r\nimport {ResultSummaryChart, ResultSummaryChartDay, ResultSummaryChartSeries} from 'components/project/results-details'\r\nimport {Dropdown} from 'react-bootstrap'\r\nimport React, {useEffect, useState} from 'react'\r\nimport {DatePicker} from '@progress/kendo-react-dateinputs'\r\nimport {v4} from 'uuid'\r\n\r\n\r\nexport type DaySelectionKind = 'average' | 'highest' | 'lowest' | 'index'\r\n\r\nexport type DaySelection\r\n = { kind: 'average' }\r\n | { kind: 'highest' }\r\n | { kind: 'lowest' }\r\n | { kind: 'index', index: number }\r\n\r\nconst getSelectionLabel = (x: DaySelectionKind) => {\r\n switch (x) {\r\n case 'average':\r\n return 'Average Day'\r\n case 'highest':\r\n return 'Highest Revenue Day'\r\n case 'lowest':\r\n return 'Lowest Revenue Day'\r\n case 'index':\r\n return 'Specific Day'\r\n }\r\n}\r\n\r\nconst getDataForSelection = (chart: ResultSummaryChart, selection: DaySelection): ResultSummaryChartDay => {\r\n switch (selection.kind) {\r\n case 'average':\r\n return chart.average\r\n case 'highest':\r\n return chart.days[chart.highestRevenueDayIndex]\r\n case 'lowest':\r\n return chart.days[chart.lowestRevenueDayIndex]\r\n case 'index':\r\n return chart.days[selection.index]\r\n }\r\n}\r\n\r\nconst getSeries = (series: ResultSummaryChartSeries[], index: number, data: number[]): ChartSeriesInfo => {\r\n return {\r\n name: series[index].name,\r\n color: series[index].color,\r\n data: data,\r\n }\r\n}\r\n\r\ninterface SummaryChartByHourProps {\r\n selection: DaySelection\r\n}\r\n\r\nconst SummaryChartByHour = observer(({selection}: SummaryChartByHourProps) => {\r\n const project = useProjectStore().project!\r\n const details = project.results.details\r\n const chart = details.details.summaryChart\r\n\r\n const data = getDataForSelection(chart, selection)\r\n\r\n const prices = data.prices.map((x, index) => getSeries(chart.prices, index, x))\r\n const revenues = data.revenues.map((x, index) => getSeries(chart.revenues, index, x))\r\n\r\n return ()\r\n})\r\n\r\n\r\ninterface ChartSeriesInfo {\r\n name: string\r\n color: string\r\n data: number[]\r\n}\r\n\r\ninterface ChartViewProps {\r\n prices: ChartSeriesInfo[]\r\n revenues: ChartSeriesInfo[]\r\n}\r\n\r\nconst HOURS = Array(24).map((x, index) => index)\r\n\r\nconst ChartView = ({prices, revenues}: ChartViewProps) => {\r\n const priceSeries = prices.map(item =>\r\n )\r\n const revenueSeries = revenues.map(item =>\r\n )\r\n const currency = useProjectStore().project!.currencySymbol ?? \"$\"\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 \r\n \r\n \r\n \r\n \r\n \r\n {priceSeries.concat(...revenueSeries)}\r\n \r\n )\r\n}\r\n\r\nexport default SummaryChartByHour\r\n\r\n\r\ninterface DaySelectorProps {\r\n value: DaySelection\r\n onValueChange: (x: DaySelection) => void\r\n highest: number\r\n lowest: number\r\n}\r\n\r\n\r\nconst getIndexByDate = (date: Date): number => {\r\n const start = new Date(date.getFullYear(), 0, 1)\r\n const ms = date.getTime() - start.getTime()\r\n const index = ms / (24 * 60 * 60 * 1000)\r\n return Math.trunc(index)\r\n}\r\n\r\nconst allSelectionKinds: DaySelectionKind[] = ['highest', 'lowest', 'average', 'index']\r\n\r\nconst dateFormatter = new Intl.DateTimeFormat('en', {month: 'short', day: 'numeric'/*, year: 'numeric'*/ })\r\n\r\n\r\nexport const DaySelector = ({value, onValueChange, highest, lowest}: DaySelectorProps) => {\r\n const project = useProjectStore().project!\r\n\r\n const [index, setIndex] = useState(0)\r\n useEffect(() => {\r\n if (value.kind === 'index') { setIndex(value.index) }\r\n }, [value])\r\n\r\n const handleChangeKind = (x: DaySelectionKind) => {\r\n if (x === 'index') onValueChange({kind: x, index: index})\r\n else onValueChange({kind: x})\r\n }\r\n\r\n const handleChangeDay = (x: Date | null) => {\r\n if (!x) return\r\n const i = getIndexByDate(x)\r\n onValueChange({kind: 'index', index: i})\r\n }\r\n\r\n const getDateByIndex = (index: number): Date => {\r\n const start = new Date(project.baseYear, 0, 1)\r\n const ms = index * 24 * 60 * 60 * 1000\r\n return new Date(start.getTime() + ms)\r\n }\r\n\r\n return (<>\r\n Key Days\r\n \r\n \r\n {getSelectionLabel(value.kind)}\r\n \r\n \r\n {allSelectionKinds.map(x =>\r\n handleChangeKind(x)}>\r\n {getSelectionLabel(x)}\r\n )}\r\n \r\n \r\n {value.kind === 'highest' && {dateFormatter.format(getDateByIndex(highest))}}\r\n {value.kind === 'lowest' && {dateFormatter.format(getDateByIndex(lowest))}}\r\n {value.kind === 'index' &&\r\n handleChangeDay(ev.value)}/>}\r\n )\r\n}\r\n","import {RouteComponentProps} from '@reach/router'\r\nimport React, {useState} from 'react'\r\nimport {Dropdown} from 'react-bootstrap'\r\nimport {observer} from 'mobx-react-lite'\r\nimport {useProjectStore} from 'components/project/ProjectProvider'\r\nimport SummaryChartByHour, {DaySelection, DaySelector} from 'components/project/pages/Results/SummaryChartByHour'\r\nimport {EnergyPriceSummary, FinancialSummary, PerformanceSummary, RegulationMarketResult, ResultValueItem, RevenueSummary} from 'components/project/results-details'\r\nimport {IntlService} from 'Kendo-Intl-5'\r\nimport ToolTipInfo from 'components/helper/ToolTipInfo'\r\nimport ContextHelp from 'components/helper/ContextHelp'\r\n\r\n\r\ninterface SummaryProps extends RouteComponentProps {}\r\n\r\n\r\ntype ChartKind = 'year' | 'month' | 'hour'\r\nconst allChartKinds: ChartKind[] = ['hour']\r\n\r\nconst getChartKindLabel = (x: ChartKind) => {\r\n switch (x) {\r\n case 'year':\r\n return 'By Year'\r\n case 'month':\r\n return 'By Month'\r\n case 'hour':\r\n return 'By Hour'\r\n }\r\n}\r\n\r\nconst ResultSummary = observer((_: SummaryProps) => {\r\n const project = useProjectStore().project!\r\n const details = project.results.details\r\n const intlCulture = project.useCommaAsDecimalPoint ? 'es' : 'en'\r\n\r\n const [chart, setChart] = useState('hour')\r\n\r\n const [daySelection, setDaySelection] = useState({kind: 'highest'})\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n {getChartKindLabel(chart)}\r\n \r\n \r\n {allChartKinds.map(x =>\r\n setChart(x)}>\r\n {getChartKindLabel(x)}\r\n )}\r\n \r\n \r\n
    \r\n {chart === 'month' && }\r\n {chart === 'hour' && setDaySelection(x)}/>}\r\n
    \r\n\r\n {chart === 'hour' && }\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\ninterface SectionHeaderProps {\r\n label: string\r\n helpId: string\r\n}\r\n\r\nconst SectionHeader = ({label, helpId}: SectionHeaderProps) =>\r\n
    \r\n
    {label}
    \r\n \r\n
    \r\n\r\n\r\nexport default ResultSummary\r\n\r\n\r\ninterface TableEntryProps {\r\n label: string\r\n value: string\r\n average?: string\r\n units?: string\r\n indent?: boolean\r\n description?: string,\r\n isHelp?:boolean\r\n}\r\n\r\nconst TableEntry = ({label, value, average, units, indent, description,isHelp}: TableEntryProps) => {\r\n return (\r\n \r\n \r\n {label}\r\n {description !== undefined &&\r\n }\r\n {isHelp && }\r\n \r\n {value}\r\n {average !== undefined && {average}}\r\n {units !== undefined && {units}}\r\n \r\n )\r\n}\r\n\r\n\r\ninterface MetricRowProps {\r\n label: string\r\n metric: ResultValueItem | null\r\n format?: string\r\n units?: string\r\n indent?: boolean\r\n description?: string\r\n isHelp?: boolean\r\n intlCulture: string\r\n}\r\n\r\nexport const MetricRow = ({ label, metric, format, units, indent, description, isHelp, intlCulture }: MetricRowProps) => {\r\n const intl = new IntlService(intlCulture)\r\n\r\n return (metric !== null\r\n ? \r\n : null)\r\n}\r\n\r\n\r\ninterface LabelRowProps {\r\n label: string\r\n}\r\n\r\nconst LabelRow = ({label}: LabelRowProps) =>\r\n \r\n {label}\r\n \r\n\r\n\r\ninterface FinancialSummaryTableProps {\r\n model: FinancialSummary\r\n intlCulture: string\r\n}\r\n\r\nconst FinancialSummaryTable = ({model, intlCulture}: FinancialSummaryTableProps) => {\r\n const intl = new IntlService(intlCulture)\r\n\r\n\r\n const project = useProjectStore().project!\r\n const currency = project.currencySymbol ?? \"$\"\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(model.contractParticipation && model.contractParticipation !== 'none') && }\r\n {(model.marketParticipation && model.marketParticipation !== 'none') && }\r\n {project.useCapacityMarket && }\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\n\r\ninterface EnergyPriceSummaryTableProps {\r\n model: EnergyPriceSummary\r\n intlCulture: string\r\n}\r\n\r\nconst EnergyPriceSummaryTable = ({ model, intlCulture }: EnergyPriceSummaryTableProps) => {\r\n const currency = useProjectStore().project!.currencySymbol ?? \"$\"\r\n const intl = new IntlService(intlCulture)\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {model.markets.map(market =>\r\n \r\n \r\n \r\n \r\n )}\r\n {model.capacityPrice !== null &&\r\n }\r\n \r\n
    \r\n Year 1Annual Average\r\n
    \r\n )\r\n}\r\n\r\n\r\ninterface RevenueSummaryTableProps {\r\n model: RevenueSummary\r\n intlCulture: string\r\n}\r\n\r\nconst RevenueSummaryTable = ({ model, intlCulture }: RevenueSummaryTableProps) => {\r\n const project = useProjectStore().project!\r\n const currency = project.currencySymbol ?? \"$\"\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {model.energyMarkets.map(market =>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {model.capacityMarkets.map(market =>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {model.contracts.map(market =>\r\n )}\r\n {model.regulationMarkets?.map((market, index) =>\r\n \r\n \r\n {project.regulationMarkets[index].useRegUp && <>\r\n \r\n {project.regulationMarkets[index].useEnergyPrice && }\r\n }\r\n {project.regulationMarkets[index].useRegDown && <>\r\n \r\n {project.regulationMarkets[index].useEnergyPrice && }\r\n }\r\n )}\r\n \r\n
    \r\n Year 1Annual Average\r\n
    \r\n )\r\n}\r\n\r\n\r\ninterface PerformanceSummaryTableProps {\r\n model: PerformanceSummary\r\n intlCulture: string\r\n}\r\n\r\nconst PerformanceSummaryTable = ({ model, intlCulture }: PerformanceSummaryTableProps) => {\r\n const project = useProjectStore().project!\r\n const currency = project.currencySymbol ?? \"$\"\r\n //const useRegUp = project.regulationMarkets.some(x => x.useRegUp === true)\r\n //const useRegDown = project.regulationMarkets.some(x => x.useRegDown === true)\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 {model.excessElectricity != undefined && < MetricRow intlCulture={intlCulture} label='Curtailed energy at interconnection' metric={model.excessElectricity} format='n0' units='MWh' />}\r\n {model.acLineLosses != undefined && }\r\n {model.transformerLosses != undefined && }\r\n {model.energyMarkets.map(market =>\r\n \r\n \r\n \r\n \r\n )}\r\n {model.capacityMarkets.map(market =>\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 {model.regulationMarkets?.map((market, index) =>\r\n \r\n \r\n {project.regulationMarkets[index].useRegUp && <>\r\n \r\n {project.regulationMarkets[index].useEnergyPrice && }\r\n }\r\n {project.regulationMarkets[index].useRegDown && <>\r\n \r\n {project.regulationMarkets[index].useEnergyPrice && }\r\n }\r\n )}\r\n \r\n
    \r\n Year 1Annual Average\r\n
    \r\n )\r\n}\r\n","import { observer } from 'mobx-react-lite'\r\nimport { StorageResult } from 'components/project/results-details'\r\nimport { Chart, ChartCategoryAxis, ChartCategoryAxisItem, ChartLegend, ChartSeries, ChartSeriesItem, ChartTitle, ChartTooltip, ChartValueAxis, ChartValueAxisItem } from '@progress/kendo-react-charts'\r\nimport ContextHelp from 'components/helper/ContextHelp'\r\n\r\ninterface AugmentationCapacityChartProps {\r\n result: StorageResult\r\n showBaseYearAsYearZero: boolean\r\n baseYear: number\r\n}\r\n\r\nconst AugmentationCapacityChart = observer(({ result, showBaseYearAsYearZero, baseYear }: AugmentationCapacityChartProps) => {\r\n const items = result.items.map(item => ({ ...item, year: showBaseYearAsYearZero ? item.year + baseYear : item.year }))\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 \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 AugmentationCapacityChart\r\n","import {observer} from 'mobx-react-lite'\r\nimport {StorageResult} from 'components/project/results-details'\r\nimport {Chart, ChartCategoryAxis, ChartCategoryAxisItem, ChartLegend, ChartSeries, ChartSeriesItem, ChartTitle, ChartTooltip, ChartValueAxis, ChartValueAxisItem} from '@progress/kendo-react-charts'\r\nimport { useProjectStore } from 'components/project/ProjectProvider'\r\n\r\ninterface AugmentationCostChartProps {\r\n result: StorageResult\r\n showBaseYearAsYearZero: boolean\r\n baseYear: number\r\n}\r\n\r\nconst AugmentationCostChart = observer(({ result, showBaseYearAsYearZero, baseYear }: AugmentationCostChartProps) => {\r\n const items = result.items.map(item => ({ ...item, year: showBaseYearAsYearZero ? item.year + baseYear : item.year }))\r\n const currency = useProjectStore().project!.currencySymbol ?? \"$\"\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 \r\n \r\n \r\n \r\n \r\n \r\n )\r\n})\r\n\r\nexport default AugmentationCostChart\r\n","import {StorageResultItem} from 'components/project/results-details'\r\nimport {observer} from 'mobx-react-lite'\r\nimport {IntlService} from 'Kendo-Intl-5'\r\nimport { useProjectStore } from 'components/project/ProjectProvider'\r\n\r\ninterface AugmentationTableProps {\r\n items: StorageResultItem[]\r\n baseYear: number\r\n intlCulture: string\r\n showBaseYearAsYearZero: boolean\r\n}\r\n\r\n\r\nconst AugmentationTable = observer(({items, baseYear, intlCulture, showBaseYearAsYearZero}: AugmentationTableProps) => {\r\n const intl = new IntlService(intlCulture)\r\n const project = useProjectStore().project!\r\n const currency = project.currencySymbol ?? \"$\"\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 \r\n \r\n \r\n {items.map(x =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
    YearMaximum Usable Energy Capacity (MWh)Minimum Usable Energy Capacity (MWh)Augmentation (%)Augmentation Capacity (MWh){`Augmentation Price Forecast (${currency}/kWh)`}{`Augmentation Expenses (${currency})`}
    {showBaseYearAsYearZero ? project.baseYear + x.year : x.year}{intl.formatNumber(x.maximum, 'n2')}{intl.formatNumber(x.minimum, 'n2')}{intl.formatNumber(x.augmentationFraction, 'p0')}{intl.formatNumber(x.augmentation, 'n2')}{`${intl.formatNumber(x.augmentationCost, 'n0')} ${currency}`}{`${intl.formatNumber(x.augmentationTotalCost, 'n0')} ${currency}`}
    \r\n )\r\n})\r\n\r\nexport default AugmentationTable\r\n","import {observer} from 'mobx-react-lite'\r\nimport {RouteComponentProps} from '@reach/router'\r\nimport {StorageResult} from 'components/project/results-details'\r\nimport AugmentationCapacityChart from 'components/project/pages/Results/AugmentationCapacityChart'\r\nimport AugmentationCostChart from 'components/project/pages/Results/AugmentationCostChart'\r\nimport AugmentationTable from 'components/project/pages/Results/AugmentationTable'\r\nimport ContextHelp from 'components/helper/ContextHelp'\r\n\r\ninterface ResultAugmentationProps extends RouteComponentProps {\r\n result: StorageResult,\r\n baseYear: number\r\n intlCulture: string\r\n showBaseYearAsYearZero: boolean\r\n}\r\n\r\nconst ResultAugmentation = observer(({result, baseYear, intlCulture, showBaseYearAsYearZero}: ResultAugmentationProps) => {\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 ResultAugmentation\r\n","export interface Range {\r\n min: number\r\n max: number\r\n}\r\n\r\nexport const makeRange = (min?: number, max?: number): Range => ({min: min ?? 0, max: max ?? 0})\r\n\r\nexport const defaultRange = (): Range => makeRange(0, 1)\r\n\r\nexport const ensureBounds = (r: Range, bounds: Range): Range => {\r\n const l = r.max - r.min\r\n if (l > bounds.max - bounds.min)\r\n return {...bounds}\r\n if (r.min < bounds.min)\r\n return makeRange(bounds.min, bounds.min + l)\r\n if (r.max > bounds.max)\r\n return makeRange(bounds.max - l, bounds.max)\r\n return {...r}\r\n}\r\n\r\nexport const ensureMinLength = (r: Range, minLength: number): Range => {\r\n const length = r.max - r.min\r\n const center = (r.min + r.max) / 2\r\n return length < minLength ?\r\n makeRange(center - minLength / 2, center + minLength / 2) :\r\n {...r}\r\n}\r\n\r\nexport const round = (r: Range): Range => {\r\n return makeRange(Math.round(r.min), Math.round(r.max))\r\n}\r\n\r\nexport const zoomIn = (r: Range): Range => {\r\n const length = r.max - r.min\r\n const center = (r.min + r.max) / 2\r\n const newLength = length / 2\r\n return makeRange(center - newLength / 2, center + newLength / 2)\r\n}\r\n\r\nexport const zoomOut = (r: Range): Range => {\r\n const length = r.max - r.min\r\n const center = (r.min + r.max) / 2\r\n const newLength = length * 2\r\n return makeRange(center - newLength / 2, center + newLength / 2)\r\n}\r\n\r\nexport const panLeft = (r: Range): Range => {\r\n const length = r.max - r.min\r\n return makeRange(r.min - length, r.max - length)\r\n}\r\n\r\nexport const panRight = (r: Range): Range => {\r\n const length = r.max - r.min\r\n return makeRange(r.min + length, r.max + length)\r\n}\r\n","import {useState} from 'react'\r\nimport {ColorResult, GithubPicker} from 'react-color'\r\n\r\n\r\ninterface ColorRectProps {\r\n color: string\r\n onColorChange?: (x: string) => void\r\n popOverMarginTop?: string\r\n timeseriesCount?: number\r\n}\r\n\r\nconst SWATCH_STYLE = {\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n border: 'solid black 1px',\r\n display: 'inline-block',\r\n cursor: 'pointer',\r\n}\r\n\r\nexport const ColorRect = ({ color, onColorChange, popOverMarginTop, timeseriesCount = 40 }: ColorRectProps) => {\r\n const [show, setShow] = useState(false)\r\n const POPOVER_STYLE = {\r\n marginTop: popOverMarginTop ? popOverMarginTop : '90px',\r\n marginLeft: '-10px',\r\n }\r\n const handleClose = () => {setShow(false)}\r\n const handleClick = () => {setShow(!show)}\r\n const handleColorChange = (x: ColorResult) => {\r\n onColorChange?.(x.hex)\r\n setShow(false)\r\n }\r\n\r\n const colors = timeseriesCount <= 16 ? colors16 : timeseriesCount <= 24 ? colors24 : timeseriesCount <= 36 ? colors36 : timeseriesCount <= 48 ? colors48 : timeseriesCount <= 56 ? colors56 : colors72\r\n\r\n return (\r\n <>\r\n
    \r\n {show &&
    \r\n
    \r\n \r\n
    }\r\n \r\n )\r\n}\r\n\r\nconst colors16 = [\r\n \"#2e4ffc\", \"#34ea32\", \"#ef5144\", \"#35f3f0\", \"#39675c\", \"#d932fc\", \"#acaf95\", \"#f58dee\",\r\n \"#8c58b1\", \"#7fa5fe\", \"#3bba9a\", \"#929030\", \"#8c2c47\", \"#fca342\", \"#9dffd0\", \"#98fe31\",\r\n]\r\n\r\nconst colors24 = [\r\n \"#8f32ec\", \"#2df132\", \"#f2832c\", \"#2fdfff\", \"#386962\", \"#a89db3\", \"#e42b81\", \"#90302b\",\r\n \"#fb64e9\", \"#3883e2\", \"#65e69a\", \"#87ac30\", \"#a0dcf6\", \"#2b33ca\", \"#f8bc93\", \"#722f89\",\r\n \"#ac6469\", \"#f2b1fe\", \"#2eb15a\", \"#8a73fe\", \"#58949a\", \"#312d2d\", \"#80ec49\", \"#f7788a\",\r\n]\r\n\r\nconst colors36 = [\r\n \"#753df3\", \"#2bf830\", \"#fc7f2d\", \"#34ecf7\", \"#4d7152\", \"#c7f257\", \"#f97ff8\", \"#b42b5c\",\r\n \"#8fa3be\", \"#2e81f5\", \"#df2cdb\", \"#a4fac6\", \"#3c3094\", \"#2ec287\", \"#f6bfa6\", \"#a1a02f\",\r\n \"#c86a99\", \"#72ff73\", \"#3a3331\", \"#c0c1fe\", \"#3eaf32\", \"#9bc176\", \"#a374f4\", \"#fbc13b\",\r\n \"#2d76a3\", \"#3afba9\", \"#7fe52b\", \"#f8352d\", \"#fa2f88\", \"#80548c\", \"#8b592d\", \"#34bad0\",\r\n \"#2e4bd8\", \"#dd9d6d\", \"#6fbdfe\", \"#ae34aa\",\r\n]\r\n\r\nconst colors48 = [\r\n \"#6836fe\", \"#2fda3d\", \"#f64230\", \"#2fdcfe\", \"#575e63\", \"#f37bf1\", \"#9ec1a9\", \"#98a22b\",\r\n \"#b83098\", \"#3398b2\", \"#de867a\", \"#2ef19e\", \"#858afa\", \"#92f52f\", \"#93fbf9\", \"#dd2dff\",\r\n \"#2c39a9\", \"#eac0d6\", \"#93739e\", \"#913431\", \"#439944\", \"#2e68f0\", \"#7eff86\", \"#2e3237\",\r\n \"#fb912d\", \"#f956a7\", \"#60bc7e\", \"#a754f5\", \"#bc6f35\", \"#bed261\", \"#79c5f5\", \"#43a0f3\",\r\n \"#71318d\", \"#fdc377\", \"#bcf2bb\", \"#62f9c9\", \"#6d59cc\", \"#76752c\", \"#be95d3\", \"#7e9068\",\r\n \"#cffc43\", \"#fb3174\", \"#2e2ce4\", \"#2f672c\", \"#aa4d63\", \"#58c2bd\", \"#d1b232\", \"#bbc2fe\",\r\n]\r\n\r\nconst colors56 = [\r\n \"#2bf82e\", \"#414bfc\", \"#f0453a\", \"#36f3ef\", \"#f26bf9\", \"#476b49\", \"#94b2a1\", \"#98349b\",\r\n \"#9afe6a\", \"#2b82aa\", \"#ff9289\", \"#89b330\", \"#ceb7fb\", \"#6da0fb\", \"#8b2b2f\", \"#2b2ea4\",\r\n \"#31d38e\", \"#a4fcd7\", \"#ab7762\", \"#a530fb\", \"#fa2cad\", \"#9e71da\", \"#382c42\", \"#34b8d0\",\r\n \"#f38b2b\", \"#33a43a\", \"#698882\", \"#5e58b6\", \"#cbac5f\", \"#62fea8\", \"#c85c9f\", \"#75f22b\",\r\n \"#70d264\", \"#fda2d3\", \"#5d4677\", \"#2d83f7\", \"#6fd2d8\", \"#b3435e\", \"#f92dfa\", \"#83632c\",\r\n \"#ca8faf\", \"#4dfb65\", \"#9ce2a1\", \"#b5e535\", \"#2fa176\", \"#6e8dc1\", \"#f870b5\", \"#702bc8\",\r\n \"#e26867\", \"#738e49\", \"#c34fda\", \"#33d158\", \"#b79230\", \"#e62d72\", \"#a0d0fb\", \"#6c70fc\",\r\n]\r\n\r\nconst colors72 = [\r\n \"#5645fc\", \"#30f738\", \"#f73b31\", \"#36fff9\", \"#4b6957\", \"#f975fc\", \"#a0b6a8\", \"#bc2fa6\",\r\n \"#339cd6\", \"#8aae2f\", \"#fe917e\", \"#8f3233\", \"#56ee99\", \"#3233a0\", \"#9581fe\", \"#2db669\",\r\n \"#ab7273\", \"#ccb9f9\", \"#302c38\", \"#75c2fe\", \"#6970b1\", \"#da2ffe\", \"#cf8d2c\", \"#8a6d2c\",\r\n \"#719879\", \"#ee578b\", \"#bac75f\", \"#bd65c8\", \"#6f2e75\", \"#a6ef94\", \"#962ffb\", \"#f3adbf\",\r\n \"#49b9a5\", \"#fe2cbf\", \"#2c8691\", \"#2ea62b\", \"#70cb63\", \"#c53a62\", \"#f7b540\", \"#7d3cbf\",\r\n \"#335ed1\", \"#2be3c5\", \"#fc6d48\", \"#cb8c9c\", \"#739bcd\", \"#5b84ff\", \"#bf5a2d\", \"#69e22f\",\r\n \"#6cebd9\", \"#ec50dc\", \"#39c9fe\", \"#2de96c\", \"#2d2dd9\", \"#2d4b74\", \"#fa2b73\", \"#5f8d3d\",\r\n \"#ca8ae9\", \"#a3db2d\", \"#f97ebb\", \"#2d722d\", \"#7f5879\", \"#b89a5d\", \"#895af2\", \"#63fd6a\",\r\n \"#ffa7ff\", \"#e0be81\", \"#604441\", \"#7fd5a8\", \"#c4ba2b\", \"#54bed5\", \"#c055fc\", \"#b15695\",\r\n]\r\n","import {getTrackBackground, Range} from 'react-range'\r\nimport * as React from 'react'\r\nimport {useCallback, useEffect, useState} from 'react'\r\nimport {Range as R} from './Range'\r\n\r\n\r\ninterface RangeSelectorProps {\r\n range: R\r\n bounds: R\r\n onRangeChange?: (x: R) => void\r\n}\r\n\r\nconst SIZE_LIMIT = 12\r\n\r\nconst FRONT_COLOR = '#548BF4'\r\nconst BACK_COLOR = '#CCC'\r\nconst COLORS = [BACK_COLOR, FRONT_COLOR, BACK_COLOR]\r\n\r\nfunction normalize(prev: number[], next: number[]): number[] {\r\n if (next[1] - next[0] >= SIZE_LIMIT) { return next }\r\n // check size\r\n let x = Math.abs(next[0] - prev[0]) < 1e-6 ?\r\n [next[0], next[0] + SIZE_LIMIT] :\r\n [next[1] - SIZE_LIMIT, next[1]]\r\n // check left bound\r\n //x = x[0] < MIN ? [MIN, MIN + SIZE_LIMIT] : x\r\n // check right bound\r\n //x = x[1] > MAX ? [MAX - SIZE_LIMIT, MAX] : x\r\n return x\r\n}\r\n\r\nconst RangeSelector = ({range, bounds, onRangeChange}: RangeSelectorProps) => {\r\n const {min, max} = range\r\n const [values, setValues] = useState([min, max])\r\n useEffect(() => { setValues([min, max]) }, [min, max])\r\n\r\n useEffect(() => {\r\n setValues([range.min, range.max])\r\n }, [range])\r\n\r\n const handleChange = useCallback((x) => {\r\n const rv = normalize(values, x)\r\n setValues(rv)\r\n }, [values])\r\n\r\n const handleFinalChange = useCallback((x) => {\r\n const rv = normalize(values, x)\r\n setValues(rv)\r\n onRangeChange?.({min: rv[0], max: rv[1]})\r\n }, [values, onRangeChange])\r\n\r\n return (\r\n \r\n \r\n \r\n {children}\r\n
    \r\n
    }\r\n renderThumb={({props, isDragged}) =>\r\n
    \r\n \r\n
    \r\n }\r\n />\r\n )\r\n}\r\n\r\nexport default RangeSelector\r\n","import {TimeSeriesViewerModel} from './TimeSeriesViewerModel'\r\nimport './TimeSeriesViewer.scss'\r\nimport {observer} from 'mobx-react-lite'\r\nimport {BiChevronLeft, BiChevronRight, BiZoomIn, BiZoomOut} from 'react-icons/all'\r\nimport RangeSelector from 'components/project/pages/Results/time-series/RangeSelector'\r\nimport {Range} from 'components/project/pages/Results/time-series/Range'\r\n\r\n\r\ninterface PanZoomControlProps {\r\n model: TimeSeriesViewerModel\r\n}\r\n\r\nconst PanZoomControl = observer(({model}: PanZoomControlProps) => {\r\n const handleRangeChange = (r: Range) => model.setRange(r)\r\n const handlePanLeft = () => model.panLeft()\r\n const handlePanRight = () => model.panRight()\r\n const handleZoomIn = () => model.zoomIn()\r\n const handleZoomOut = () => model.zoomOut()\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\nexport default PanZoomControl\r\n","import {Dropdown} from 'react-bootstrap'\r\nimport React from 'react'\r\n\r\ninterface DropDownSelectorProps {\r\n max: number\r\n value: number\r\n onValueChange: (x: number) => void\r\n hidden?: boolean\r\n showBaseYearAsYearZero: boolean\r\n baseYear: number\r\n}\r\n\r\nconst DropDownSelector = ({ max, value, onValueChange, hidden, showBaseYearAsYearZero, baseYear }: DropDownSelectorProps) => {\r\n const items = new Array(max).fill(null).map((_, index) => index)\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default DropDownSelector\r\n","import { TimeSeriesItem, TimeSeriesViewerModel } from './TimeSeriesViewerModel'\r\nimport './TimeSeriesViewer.scss'\r\nimport { observer } from 'mobx-react-lite'\r\nimport { Chart, ChartLegend, ChartSeries, ChartSeriesItem, ChartTooltip, ChartXAxis, ChartXAxisItem, ChartYAxis, ChartYAxisItem, DragEndEvent, SharedTooltipContext, TooltipContext, ZoomEndEvent } from '@progress/kendo-react-charts'\r\nimport { Fragment, useEffect, useState } from 'react'\r\nimport { Form, Spinner } from 'react-bootstrap'\r\nimport { makeRange, Range } from 'components/project/pages/Results/time-series/Range'\r\nimport { ColorRect } from 'components/helper/ColorRect'\r\nimport { useProjectStore } from 'components/project/ProjectProvider'\r\nimport ContextHelp from 'components/helper/ContextHelp'\r\nimport PanZoomControl from './PanZoomControl'\r\nimport allcurrency from 'iso-country-currency'\r\nimport DropDownSelector from '../../SharedComponents/DropDownSelector'\r\nimport { IntlService } from 'Kendo-Intl-5'\r\nimport { Splitter, SplitterOnChangeEvent } from \"@progress/kendo-react-layout\";\r\n\r\n\r\ninterface TimeSeriesViewerProps {\r\n model: TimeSeriesViewerModel\r\n showBaseYearAsYearZero: boolean\r\n baseYear: number\r\n}\r\n\r\n\r\nconst TimeSeriesViewer = observer(({ model, showBaseYearAsYearZero, baseYear }: TimeSeriesViewerProps) => {\r\n const project = useProjectStore().project!\r\n const intlCulture = project.useCommaAsDecimalPoint ? 'es' : 'en'\r\n const year = project.baseYear ?? 2007\r\n\r\n const handleYearChange = async (x: number) => await model.setYear(x)\r\n const handleRangeChange = (r: Range) => model.setRange(r)\r\n const [refreshGraphOnResize, setRefreshGraphOnResize] = useState(false)\r\n const refresh = () => {\r\n setRefreshGraphOnResize(!refreshGraphOnResize)\r\n console.log('refreshed')\r\n }\r\n\r\n\r\n const [panes, setPanes] = useState>([\r\n { min: '60%', scrollable: false, collapsible: true },\r\n { size: '30%', min: '20%', scrollable: true, collapsible: true }\r\n ]);\r\n const onChange = (event: SplitterOnChangeEvent) => {\r\n setPanes(event.newState);\r\n };\r\n\r\n return (<>\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {!project.earlyAnalysis &&
    \r\n
    Year:
    \r\n \r\n
    }\r\n
    \r\n \r\n
    \r\n {(model.hasTop || !model.hasBottom) &&\r\n
    \r\n \r\n \r\n
    }\r\n {model.hasBottom &&\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 TimeSeriesViewer\r\n\r\n\r\ninterface TimeSeriesChartProps {\r\n items: TimeSeriesItem[]\r\n axis: string[]\r\n size: number\r\n range: Range\r\n onRangeChange: (r: Range) => void\r\n year: number\r\n //From year 0 on\r\n projectYear: number\r\n intlCulture: string\r\n}\r\n\r\n\r\n// X axis labels\r\n\r\n//const START_DATE = new Date(2023, 0, 1)\r\n\r\nconst dateFormatter = new Intl.DateTimeFormat('en', { month: 'short', day: 'numeric', year: 'numeric' })\r\nconst timeFormatter = new Intl.DateTimeFormat('en', { hour: 'numeric', minute: 'numeric', hour12: false })\r\n\r\nconst formatLabel = (ms: number, rangeHours: number): string => {\r\n if (rangeHours < 24 * 7) {\r\n return dateFormatter.format(ms) + '\\n' + timeFormatter.format(ms)\r\n }\r\n return dateFormatter.format(ms)\r\n}\r\n\r\nconst CHART_HEIGHT = '350px'\r\n\r\nconst TimeSeriesChart = observer(({ items, axis, size, range, onRangeChange, intlCulture, year = 2007, projectYear = 0 }: TimeSeriesChartProps) => {\r\n const intl = new IntlService(intlCulture)\r\n const allCurSymbol = allcurrency.getAllISOCodes().map(item => item.symbol);\r\n const handleZoomEnd = (ev: ZoomEndEvent) => {\r\n const axis = ev.axisRanges['x']\r\n const r = makeRange(Number(axis.min), Number(axis.max))\r\n onRangeChange(r)\r\n }\r\n\r\n const handleDragEnd = (ev: DragEndEvent) => {\r\n const isZooming = ev.nativeEvent.event?.shiftKey ?? false\r\n if (isZooming) return\r\n const axis = ev.axisRanges['x']\r\n const r = makeRange(Number(axis.min), Number(axis.max))\r\n onRangeChange(r)\r\n }\r\n\r\n const valueToMs = (x: number): number => {\r\n const START_DATE = new Date(year + projectYear, 0, 1)\r\n const stepsPerHour = size / (365 * 24)\r\n const ms = (x / stepsPerHour) * 60 * 60 * 1000\r\n return START_DATE.getTime() + ms\r\n }\r\n\r\n const labelContent = (e: any): string => {\r\n const t = valueToMs(Number(e.value))\r\n const stepsPerHour = size / (365 * 24)\r\n const rangeHours = (range.max - range.min) / stepsPerHour\r\n return formatLabel(t, rangeHours)\r\n }\r\n\r\n const tooltipContent = (context: TooltipContext | SharedTooltipContext) => {\r\n if (!context.hasOwnProperty('point')) return\r\n const point = (context as TooltipContext).point\r\n const ms = valueToMs(point.value.x)\r\n const y = allCurSymbol.indexOf(point.series.yAxis) > -1 ? (point.series.yAxis + \" \" + intl.formatNumber(point.value.y, 'n2')) : (intl.formatNumber(point.value.y, 'n2') + \" \" + point.series.yAxis)\r\n const series = (point.series.name.length > 40 ? (' ' + point.series.name.substring(0, 20) + \"...\" + point.series.name.substring(point.series.name.length - 20, point.series.name.length)) : (' ' + point.series.name))\r\n const label = formatLabel(ms, 1)\r\n return (
    {label}
    {y}
    {series}
    )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {axis.map(x =>\r\n )}\r\n \r\n \r\n {items.map(item =>\r\n )}\r\n \r\n \r\n )\r\n})\r\n\r\n\r\ninterface LegendViewProps {\r\n model: TimeSeriesViewerModel\r\n}\r\n\r\nconst LegendView = observer(({ model }: LegendViewProps) => {\r\n return (\r\n <>\r\n {model.groups.map(group => {\r\n return (\r\n \r\n
    {group.name}
    \r\n {group.mainItems.map(item =>\r\n )}\r\n {group.showExtra && group.extraItems.map(item =>\r\n )}\r\n {group.extraItems.length > 0 &&\r\n }\r\n
    \r\n )\r\n })}\r\n \r\n )\r\n})\r\n\r\ninterface LegendItemViewProps {\r\n model: TimeSeriesViewerModel,\r\n item: TimeSeriesItem,\r\n timeseriesCount: number\r\n}\r\n\r\nconst LegendItemView = observer(({ item, model, timeseriesCount }: LegendItemViewProps) => {\r\n const axesTop = model.axisTop\r\n const canSelectTop = axesTop.length < 2 || axesTop.includes(item.units)\r\n\r\n const axesBottom = model.axisBottom\r\n const canSelectBottom = axesBottom.length < 2 || axesBottom.includes(item.units)\r\n\r\n return (\r\n
    \r\n model.setColor(item.name, x)}\r\n timeseriesCount={timeseriesCount} />\r\n model.selectTop(item.name, ev.target.checked)}\r\n disabled={!canSelectTop && !item.selectedTop} />\r\n model.selectBottom(item.name, ev.target.checked)}\r\n disabled={!canSelectBottom && !item.selectedBottom} />\r\n {item.name} ({item.units})\r\n
    \r\n )\r\n})\r\n","import {RouteComponentProps} from '@reach/router'\r\nimport {useProjectStore} from 'components/project/ProjectProvider'\r\nimport TimeSeriesViewer from 'components/project/pages/Results/time-series/TimeSeriesViewer'\r\n\r\n\r\ninterface ResultTimeSeriesSectionProps extends RouteComponentProps {\r\n showBaseYearAsYearZero: boolean\r\n baseYear: number\r\n}\r\n\r\n\r\nconst ResultTimeSeriesSection = ({showBaseYearAsYearZero, baseYear}: ResultTimeSeriesSectionProps) => {\r\n const project = useProjectStore().project!\r\n const details = project.results.details\r\n return ()\r\n}\r\n\r\nexport default ResultTimeSeriesSection\r\n","import {Chart, ChartSeries, ChartSeriesItem, ChartCategoryAxis, ChartCategoryAxisItem, ChartTitle, ChartValueAxis, ChartValueAxisItem, ChartTooltip, ChartLegend} from '@progress/kendo-react-charts'\r\nimport {SolarResultItem} from 'components/project/results-details'\r\n\r\ninterface ResultSolarEnergyProductionChartProps {\r\n items: SolarResultItem[]\r\n showBaseYearAsYearZero: boolean\r\n baseYear: number\r\n}\r\n\r\nconst ResultSolarEnergyProductionChart = ({ items, showBaseYearAsYearZero, baseYear }: ResultSolarEnergyProductionChartProps) => {\r\n const xs = items.map(item => ({ ...item, year: showBaseYearAsYearZero ? baseYear + item.year + 1 : item.year + 1 }))\r\n\r\n return (\r\n <>\r\n
    Annual Energy Production
    \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 ResultSolarEnergyProductionChart\r\n","import {SolarResultItem} from 'components/project/results-details'\r\nimport {IntlService} from 'Kendo-Intl-5'\r\nimport {useProjectStore} from 'components/project/ProjectProvider'\r\nimport { Project } from '../../model'\r\n\r\ninterface ResultSolarEnergyTableProps {\r\n items: SolarResultItem[]\r\n intlCulture: string\r\n showBaseYearAsYearZero: boolean\r\n project: Project\r\n}\r\n\r\nconst ResultSolarEnergyTable = ({ items, intlCulture, showBaseYearAsYearZero, project}: ResultSolarEnergyTableProps) => {\r\n const intl = new IntlService(intlCulture)\r\n\r\n const currency = useProjectStore().project!.currencySymbol ?? \"$\"\r\n\r\n const columnLabel = project.bus === 'ac'\r\n ? 'DC/AC Converter (MWh-ac)'\r\n : 'DC/DC Converter (MWh-dc)'\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 \r\n \r\n \r\n \r\n {items.map(x =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
    YearSolar Energy Production (MWh-dc)Clipped Solar Energy Production (MWh-dc)Solar Energy Production after {columnLabel}Energy Yield (MWh/MW)Cumulative Degradation (%)Capacity Factor (%)Solar Operating Expenses ({currency})
    {showBaseYearAsYearZero ? project.baseYear + x.year + 1 : x.year + 1}{intl.formatNumber(x.production + x.clippedProduction, 'n0')}{intl.formatNumber(x.clippedProduction, 'n0')}{intl.formatNumber(x.production, 'n0')}{intl.formatNumber(x.energyYield, 'n0')}{`${intl.formatNumber(x.degradation, 'n2')}%`}{`${intl.formatNumber(x.capacityFactor, 'n2')}%`}{`${intl.formatNumber(x.operatingTotalCost, 'n0')} ${currency}`}
    \r\n )\r\n}\r\n\r\nexport default ResultSolarEnergyTable\r\n","export type Result =\r\n | { ok: true, value: T }\r\n | { ok: false, error: E }\r\n\r\nexport function Ok(value: T): Result { return {ok: true, value} }\r\n\r\nexport function Err(error: E): Result { return {ok: false, error} }\r\n","import {action, makeObservable, observable} from 'mobx'\r\nimport {v4} from 'uuid'\r\nimport { MultiYearKind } from '../../../services/inputs'\r\n\r\n\r\nexport class MultiYearVar {\r\n constructor() { makeObservable(this) }\r\n\r\n @observable enabled: boolean = false\r\n @observable multiYearKind: MultiYearKind = MultiYearKind.linear\r\n @observable linearValue: number = 1.0\r\n @observable customValues: MultiYearItem[] = observable([])\r\n\r\n @action setEnabled(x: boolean) { this.enabled = x }\r\n @action setType(x: MultiYearKind, lifetime: number) {\r\n this.multiYearKind = x\r\n this.updateLifetime(lifetime)\r\n }\r\n @action setLinearValue(x: number) { this.linearValue = x }\r\n\r\n @action updateLifetime(x: number) {\r\n if (x === this.customValues.length) return\r\n\r\n // remove items\r\n if (x < this.customValues.length) {\r\n this.customValues.splice(x)\r\n }\r\n\r\n // add items (fill using 1 or last value)\r\n if (x > this.customValues.length) {\r\n const k = this.customValues.length\r\n const value = k === 0 ? 1.0 : this.customValues[k - 1].value\r\n for (let year = k; year < x; year++) {\r\n const item = new MultiYearItem({year, value})\r\n this.customValues.push(item)\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\nexport class MultiYearItem {\r\n constructor(init: Partial = {}) {\r\n Object.assign(this, init)\r\n makeObservable(this)\r\n }\r\n\r\n id: string = v4()\r\n\r\n @observable year: number = 0\r\n @observable value: number = 1.0\r\n\r\n @action setYear(x: number) { this.year = x }\r\n @action setValue(x: number) { this.value = x }\r\n}\r\n","import {action, computed, makeObservable, observable} from 'mobx'\r\nimport {v4} from 'uuid'\r\n\r\nexport class CostSensitivityItem {\r\n constructor(init: Partial = {}) {\r\n Object.assign(this, init)\r\n makeObservable(this)\r\n }\r\n\r\n id: string = v4()\r\n\r\n @observable capital: number = 0\r\n @observable operating: number = 0\r\n @observable replacement: number = 0\r\n @observable augmentation: number = 0\r\n\r\n @action setCapital(x: number) { this.capital = x }\r\n @action setOperating(x: number) { this.operating = x }\r\n @action setReplacement(x: number) { this.replacement = x }\r\n @action setAugmentation(x: number) { this.augmentation = x }\r\n}\r\n\r\n\r\nexport class SimpleCostTable {\r\n constructor() { makeObservable(this) }\r\n\r\n id: string = v4()\r\n\r\n @observable items: CostSensitivityItem[] = observable([new CostSensitivityItem({capital: 1000, operating: 10, replacement: 0, augmentation: 0})])\r\n @computed get base(): CostSensitivityItem { return this.items[0] }\r\n\r\n @action addNewItem() {\r\n this.items.push(new CostSensitivityItem())\r\n }\r\n\r\n @action removeItem(id: string) {\r\n const i = this.items.findIndex(x => x.id === id)\r\n this.items.splice(i, 1)\r\n\r\n // make sure there is at least 1 item\r\n if (this.items.length === 0)\r\n this.addNewItem()\r\n }\r\n}\r\n\r\nexport enum CostTableType {\r\n simple,\r\n complex\r\n}\r\n\r\nexport type CostUnit =\r\n 'Cost' |\r\n 'CostPerWattDc' |\r\n 'PercentOfDirectCapital' |\r\n 'CostPerYear' |\r\n 'PercentOfDirectCapitalPerYear' |\r\n 'CostPerKwDcYear' |\r\n 'CostPerMwhAc' |\r\n 'CostPerKwhAc' |\r\n 'MonthsOfOpex' |\r\n 'PercentOfReserveAccountsPerYear' |\r\n 'CostPerKw' |\r\n 'CostPerKwh' |\r\n 'CostPerUnit' |\r\n 'CostPerKwYear' |\r\n 'CostPerKwhYear' |\r\n 'CostPerMwhThroughput' |\r\n 'CostPerKwhThroughput'\r\n\r\n\r\nexport class ComplexCostItem {\r\n constructor(init: Partial = {}) {\r\n Object.assign(this, init)\r\n makeObservable(this)\r\n }\r\n\r\n id: string = v4()\r\n\r\n @observable name: string = ''\r\n @observable unit: CostUnit = 'Cost'\r\n @observable value: number = 0\r\n\r\n @action setName(x: string) { this.name = x }\r\n @action setUnit(x: CostUnit) { this.unit = x }\r\n @action setValue(x: number) { this.value = x }\r\n}\r\n\r\n\r\nexport class ComplexCostItems {\r\n constructor() { makeObservable(this) }\r\n\r\n readonly items: ComplexCostItem[] = observable([])\r\n\r\n @action addNewItem() {\r\n this.items.push(new ComplexCostItem())\r\n }\r\n\r\n @action removeItem(id: string) {\r\n const i = this.items.findIndex(x => x.id === id)\r\n this.items.splice(i, 1)\r\n }\r\n}\r\n\r\n\r\nexport class ComplexCostTable {\r\n constructor() { makeObservable(this) }\r\n\r\n @observable directCapital: ComplexCostItems = new ComplexCostItems()\r\n @observable indirectCapital: ComplexCostItems = new ComplexCostItems()\r\n @observable operating: ComplexCostItems = new ComplexCostItems()\r\n @observable replacement: ComplexCostItems = new ComplexCostItems()\r\n}\r\n\r\n\r\nexport class CostTable {\r\n constructor() { makeObservable(this) }\r\n\r\n type: string = ''\r\n @observable costTableType: CostTableType = CostTableType.simple\r\n @observable simple: SimpleCostTable = new SimpleCostTable()\r\n @observable complex: ComplexCostTable = new ComplexCostTable()\r\n\r\n @action setType(type: CostTableType) {\r\n this.costTableType = type\r\n }\r\n\r\n estimateSimulations(): number {\r\n switch (this.costTableType) {\r\n case CostTableType.simple: { return this.simple.items.length }\r\n case CostTableType.complex: { return 1 }\r\n }\r\n }\r\n}\r\n","import {action, computed, makeObservable, observable} from 'mobx'\r\nimport {v4} from 'uuid'\r\n\r\n\r\nexport class SensitivityItem {\r\n constructor(init: Partial = {}) {\r\n Object.assign(this, init)\r\n makeObservable(this)\r\n }\r\n\r\n id: string = v4()\r\n\r\n @observable value: number = 0.0\r\n\r\n @action setValue(x: number) { this.value = x }\r\n}\r\n\r\n\r\nexport class SensitivityVar {\r\n constructor(value?: number) {\r\n if (value) this.setSingleValue(value)\r\n makeObservable(this)\r\n }\r\n\r\n @observable values: SensitivityItem[] = observable([new SensitivityItem()])\r\n\r\n @action addNewValue() {\r\n this.values.push(new SensitivityItem())\r\n }\r\n\r\n @action removeValue(id: string) {\r\n if (this.values.length <= 1) { return } // should have at least one value\r\n const i = this.values.findIndex(x => x.id === id)\r\n this.values.splice(i, 1)\r\n }\r\n\r\n @action setValue(id: string, value: number) {\r\n const i = this.values.findIndex(x => x.id === id)\r\n this.values[i].setValue(value)\r\n }\r\n\r\n @computed get singleValue(): number { return this.values[0].value }\r\n\r\n @action setSingleValue(value: number) {\r\n this.values.splice(0, this.values.length, new SensitivityItem({value: value}))\r\n }\r\n\r\n estimateSimulations(): number { return this.values.length }\r\n}\r\n","// wait/delay for async methods\r\nexport const delay = (ms: number) => {\r\n return new Promise(resolve => setTimeout(resolve, ms))\r\n}\r\n\r\n\r\n// equality for floating point numbers\r\nconst EPS = 1e-6\r\nexport const eq = (a: number, b: number): boolean => Math.abs(a - b) < EPS\r\n\r\n\r\n// inclusive range [min..=max]\r\nexport function* rangeGen(min: number, max: number) {\r\n for (let i = min; i <= max; i++)\r\n yield i\r\n}\r\n\r\nexport const range = (min: number, max: number): number[] => [...rangeGen(min, max)]\r\n\r\n\r\n// read text file content\r\nexport const readFile = (file: File): Promise => {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.onerror = reject\r\n reader.onload = () => {\r\n const result = reader.result as string\r\n resolve(result)\r\n }\r\n reader?.readAsText(file)\r\n })\r\n}\r\n\r\ninterface GeocodeResult {\r\n address: string\r\n countryName: string\r\n countryCode: string\r\n}\r\n\r\n// location geocoding\r\nexport async function geocode(pos: { lat: number, lng: number }): Promise {\r\n const geocoder = new google.maps.Geocoder()\r\n return new Promise((resolve, reject) => {\r\n geocoder.geocode({location: pos}, (results, status) => {\r\n if (status !== google.maps.GeocoderStatus.OK) { reject(status) }\r\n const address = results[0].formatted_address\r\n const country = results[results.length - 1].address_components[0]\r\n resolve({\r\n address,\r\n countryName: country.long_name,\r\n countryCode: country.short_name,\r\n })\r\n })\r\n })\r\n}\r\n\r\n\r\n// date-time\r\nexport function roundToDay(x: Date): Date {\r\n return new Date(x.getFullYear(), x.getMonth(), x.getDate())\r\n}\r\n","import {action, computed, makeObservable, observable} from 'mobx'\r\nimport {eq} from 'utils'\r\nimport {v4} from 'uuid'\r\nimport { SizingKind } from '../../../services/inputs'\r\n\r\nexport class SizeItem {\r\n id: string = v4()\r\n constructor(init: Partial = {}) {\r\n Object.assign(this, init)\r\n makeObservable(this)\r\n }\r\n\r\n @observable value: number = 0\r\n\r\n @action setValue(x: number) { this.value = x }\r\n}\r\n\r\n\r\nexport class Sizing {\r\n constructor() { makeObservable(this) }\r\n\r\n @observable kind: SizingKind = SizingKind.absolute\r\n\r\n @observable absoluteValues: SizeItem[] = observable([new SizeItem()])\r\n @observable relativeValues: SizeItem[] = observable([new SizeItem()])\r\n\r\n @computed get values(): SizeItem[] {\r\n switch (this.kind) {\r\n case SizingKind.absolute: { return this.absoluteValues }\r\n case SizingKind.relative: { return this.relativeValues }\r\n default: { return [] } // unreachable\r\n }\r\n }\r\n\r\n @action setKind(x: SizingKind) { this.kind = x }\r\n\r\n @action addNewValue() {\r\n this.values.push(new SizeItem())\r\n }\r\n\r\n @action removeValue(id: string) {\r\n const i = this.values.findIndex(x => x.id === id)\r\n this.values.splice(i, 1)\r\n }\r\n\r\n estimateSimulations(): number { return this.values.length }\r\n\r\n get onlyZero(): boolean {\r\n const xs = this.values\r\n return this.kind === SizingKind.absolute && xs.every(x => eq(x.value, 0))\r\n }\r\n}\r\n","import {action, makeObservable, observable} from 'mobx'\r\nimport {v4} from 'uuid'\r\n\r\n\r\nexport type TimeSeriesState = 'blank' | 'ready'\r\n\r\n\r\nexport class TimeSeries {\r\n constructor() { makeObservable(this) }\r\n id: string = v4()\r\n\r\n @observable state: TimeSeriesState = 'blank'\r\n @observable data: number[] = observable(Array(365 * 24).fill(0))\r\n @observable year: number = 2007\r\n\r\n @action setData(data: number[], year: number) {\r\n this.state = 'ready'\r\n this.data = observable(data)\r\n this.year = year\r\n }\r\n //@action setYear(year: number) {this.year = year}\r\n\r\n calculateAverage(): number {\r\n const sum = this.data.reduce((acc, x) => acc + x)\r\n const n = this.data.length === 0 ? 1 : this.data.length\r\n return sum / n\r\n }\r\n}\r\n","import {action, makeObservable, observable} from 'mobx'\r\nimport {v4} from 'uuid'\r\nimport {SensitivityVar} from 'components/project/model/SensitivityVar'\r\nimport {TimeSeries} from 'components/project/model/TimeSeries'\r\n\r\n\r\nexport type ResourceKind = 'library' | 'timeseries'\r\n\r\n\r\nexport class Resource {\r\n constructor() { makeObservable(this) }\r\n id: string = v4()\r\n @observable kind: ResourceKind = 'library'\r\n @observable data: TimeSeries = new TimeSeries()\r\n @observable scale: SensitivityVar = new SensitivityVar()\r\n\r\n @action setKind(x: ResourceKind) { this.kind = x }\r\n\r\n @action setData(data: number[], year: number, daily: boolean = false) {\r\n this.data.setData(data, year)\r\n let average = this.data.calculateAverage()\r\n // daily vs. hourly average\r\n if (daily) average *= 24\r\n average = Math.round(average * 100) / 100\r\n this.scale.setSingleValue(average)\r\n }\r\n\r\n estimateSimulations(): number {\r\n switch (this.kind) {\r\n case 'library': { return 1 }\r\n case 'timeseries': { return this.scale.estimateSimulations() }\r\n }\r\n }\r\n}\r\n","import {v4} from 'uuid'\r\nimport {makeObservable, observable} from 'mobx'\r\nimport {Sizing} from 'components/project/model/Sizing'\r\nimport {CostTable} from 'components/project/model/CostTable'\r\nimport {MultiYearVar} from 'components/project/model/MultiYearVar'\r\nimport {SensitivityVar} from 'components/project/model/SensitivityVar'\r\n\r\n\r\nexport class Inverter {\r\n id: string = v4()\r\n constructor() { makeObservable(this) }\r\n\r\n @observable sizing: Sizing = new Sizing()\r\n @observable cost: CostTable = new CostTable()\r\n @observable omEscalator: MultiYearVar = new MultiYearVar()\r\n @observable replacementEscalator: MultiYearVar = new MultiYearVar()\r\n @observable efficiency: SensitivityVar = new SensitivityVar(98) // (%)\r\n @observable lifetime: SensitivityVar = new SensitivityVar(15) // (years)\r\n\r\n estimateSimulations(): number {\r\n const sens =\r\n this.efficiency.estimateSimulations() *\r\n this.lifetime.estimateSimulations()\r\n const size = this.sizing.estimateSimulations()\r\n const cost = this.cost.estimateSimulations()\r\n return sens * size * cost\r\n }\r\n}\r\n","import {v4} from 'uuid'\r\nimport {action, computed, makeObservable, observable} from 'mobx'\r\nimport {Sizing} from 'components/project/model/Sizing'\r\nimport {ComplexCostItem, ComplexCostTable, CostTable} from 'components/project/model/CostTable'\r\nimport {MultiYearVar} from 'components/project/model/MultiYearVar'\r\nimport {Inverter} from 'components/project/model/Inverter'\r\nimport {TimeSeries} from 'components/project/model/TimeSeries'\r\nimport { SensitivityVar } from './SensitivityVar'\r\nimport { ComponentKind } from '../../../services/inputs'\r\n\r\n\r\nexport class Solar {\r\n id: string = v4()\r\n constructor() {\r\n this.cost.complex = defaultSolarComplexCostTable()\r\n makeObservable(this)\r\n }\r\n\r\n @observable kind: ComponentKind = ComponentKind.homer\r\n\r\n // homer\r\n @observable sizing: Sizing = new Sizing()\r\n\r\n // custom\r\n @observable customSize: number = 1 // MW\r\n @observable customData: TimeSeries = new TimeSeries()\r\n @observable customName: string = ''\r\n @observable customAbbreviation: string = ''\r\n\r\n @observable cost: CostTable = new CostTable()\r\n @observable omEscalator: MultiYearVar = new MultiYearVar()\r\n @observable degradation: MultiYearVar = new MultiYearVar()\r\n @observable deratingFactor: SensitivityVar = new SensitivityVar()\r\n\r\n @observable hasConverter: boolean = false\r\n @observable converter: Inverter = new Inverter()\r\n\r\n @action setKind(x: ComponentKind) { this.kind = x }\r\n @action setCustomSize(x: number) { this.customSize = x }\r\n @action setCustomName(x: string) { this.customName = x }\r\n @action setCustomAbbreviation(x: string) { this.customAbbreviation = x }\r\n @action setHasConverter(x: boolean) { this.hasConverter = x }\r\n\r\n @computed get isZero(): boolean {\r\n switch (this.kind) {\r\n case ComponentKind.homer: { return this.sizing.onlyZero }\r\n case ComponentKind.custom: { return this.customSize === 0 }\r\n default: { return true }\r\n }\r\n }\r\n\r\n estimateSimulations(): number {\r\n const converter = this.hasConverter ? this.converter.estimateSimulations() : 1\r\n const size = this.sizing.estimateSimulations()\r\n const cost = this.cost.estimateSimulations()\r\n return converter * size * cost\r\n }\r\n}\r\n\r\n\r\nfunction defaultSolarComplexCostTable(): ComplexCostTable {\r\n const rv = new ComplexCostTable()\r\n rv.directCapital.items.splice(0, 0, ...[\r\n new ComplexCostItem({name: 'Module', unit: 'CostPerWattDc'}),\r\n new ComplexCostItem({name: 'Power Conversion System', unit: 'CostPerWattDc'}),\r\n new ComplexCostItem({name: 'Balance of System', unit: 'CostPerWattDc'}),\r\n new ComplexCostItem({name: 'Installation Labor', unit: 'CostPerWattDc'}),\r\n new ComplexCostItem({name: 'Installer Overhead and Margin', unit: 'CostPerWattDc'}),\r\n new ComplexCostItem({name: 'Contingency', unit: 'PercentOfDirectCapital'}),\r\n ])\r\n rv.indirectCapital.items.splice(0, 0, ...[\r\n new ComplexCostItem({name: 'Permitting and Environmental', unit: 'CostPerWattDc'}),\r\n new ComplexCostItem({name: 'Engineering and Developer Overhead', unit: 'CostPerWattDc'}),\r\n new ComplexCostItem({name: 'Land Purchase, Preparation and Transmissions', unit: 'CostPerWattDc'}),\r\n new ComplexCostItem({name: 'Working Capital Reserve Account', unit: 'Cost'}),\r\n new ComplexCostItem({name: 'Sales Tax Rate', unit: 'PercentOfDirectCapital'}),\r\n ])\r\n rv.operating.items.splice(0, 0, ...[\r\n new ComplexCostItem({name: 'Fixed Annual Cost', unit: 'CostPerYear'}),\r\n new ComplexCostItem({name: 'Fixed Cost by Capacity', unit: 'CostPerKwDcYear'}),\r\n new ComplexCostItem({name: 'Variable Cost by PV Generation', unit: 'CostPerMwhAc'}),\r\n new ComplexCostItem({name: 'Insurance', unit: 'PercentOfDirectCapitalPerYear'}),\r\n new ComplexCostItem({name: 'Audit & Program Management Cost', unit: 'CostPerYear'}),\r\n new ComplexCostItem({name: 'Site Lease Cost', unit: 'CostPerYear'}),\r\n new ComplexCostItem({name: 'Property Tax Rate', unit: 'PercentOfDirectCapitalPerYear'}),\r\n new ComplexCostItem({name: 'Station Power Cost', unit: 'CostPerYear'}),\r\n new ComplexCostItem({name: 'Interest on All Reserves', unit: 'CostPerYear'}),\r\n new ComplexCostItem({name: 'Solar Decommissioning Reserve', unit: 'CostPerKwDcYear'}),\r\n ])\r\n rv.replacement.items.splice(0, 0, ...[\r\n new ComplexCostItem({name: 'Replacement Cost', unit: 'CostPerWattDc'}),\r\n ])\r\n return rv\r\n}\r\n","import {action, makeObservable, observable} from 'mobx'\r\nimport {v4} from 'uuid'\r\n\r\n\r\nexport type IncentiveKind = 'itc' | 'macrs' | 'bonus' | 'prod'\r\n\r\n\r\nexport interface Incentive {\r\n id: string\r\n kind: IncentiveKind\r\n\r\n solar: boolean\r\n storage: boolean\r\n wind: boolean\r\n\r\n setSolar(x: boolean): void\r\n setStorage(x: boolean): void\r\n setWind(x: boolean): void\r\n}\r\n\r\n\r\nexport class InvestmentTaxCredit implements Incentive {\r\n constructor() { makeObservable(this) }\r\n id: string = v4()\r\n kind: 'itc' = 'itc'\r\n\r\n @observable solar: boolean = true\r\n @observable storage: boolean = true\r\n @observable wind: boolean = false\r\n\r\n @observable eligiblePercent: number = 100\r\n @observable itcPercent: number = 30\r\n\r\n @action setSolar(x: boolean) { this.solar = x }\r\n @action setStorage(x: boolean) { this.storage = x }\r\n @action setWind(x: boolean) { this.wind = x }\r\n\r\n @action setEligiblePercent(x: number) { this.eligiblePercent = x }\r\n @action setItcPercent(x: number) { this.itcPercent = x }\r\n}\r\n\r\n\r\nexport class Macrs implements Incentive {\r\n constructor() { makeObservable(this) }\r\n id: string = v4()\r\n kind: 'macrs' = 'macrs'\r\n\r\n @observable solar: boolean = true\r\n @observable storage: boolean = true\r\n @observable wind: boolean = true\r\n\r\n @observable eligiblePercent: number = 100\r\n @observable marginalTaxPercent: number = 35\r\n\r\n @action setSolar(x: boolean) { return this.solar = x }\r\n @action setStorage(x: boolean) { return this.storage = x }\r\n @action setWind(x: boolean) { return this.wind = x }\r\n\r\n @action setEligiblePercent(x: number) { this.eligiblePercent = x }\r\n @action setMarginalTaxPercent(x: number) { this.marginalTaxPercent = x }\r\n}\r\n\r\n\r\nexport class BonusDepreciation implements Incentive {\r\n constructor() { makeObservable(this) }\r\n id: string = v4()\r\n kind: 'bonus' = 'bonus'\r\n\r\n @observable solar: boolean = true\r\n @observable storage: boolean = true\r\n @observable wind: boolean = true\r\n\r\n @observable eligiblePercent: number = 100\r\n @observable marginalTaxPercent: number = 35\r\n @observable bonusPercent: number = 50\r\n\r\n @action setSolar(x: boolean) { return this.solar = x }\r\n @action setStorage(x: boolean) { return this.storage = x }\r\n @action setWind(x: boolean) { return this.wind = x }\r\n\r\n @action setEligiblePercent(x: number) { this.eligiblePercent = x }\r\n @action setMarginalTaxPercent(x: number) { this.marginalTaxPercent = x }\r\n @action setBonusPercent(x: number) { this.bonusPercent = x }\r\n}\r\n\r\n\r\nexport class ProductionBased implements Incentive {\r\n constructor() { makeObservable(this) }\r\n id: string = v4()\r\n kind: 'prod' = 'prod'\r\n\r\n @observable solar: boolean = false\r\n @observable storage: boolean = false\r\n @observable wind: boolean = false\r\n\r\n @observable credit: number = 0 // $/kWh\r\n @observable maxCredit: number = 0 // $/year\r\n @observable useDuration: boolean = false\r\n @observable duration: number = 10 // year\r\n @observable useCreditTaxPercent: boolean = false\r\n @observable creditTaxPercent: number = 35 // %\r\n\r\n @action setSolar(x: boolean) { this.solar = x }\r\n @action setStorage(x: boolean) { this.storage = x }\r\n @action setWind(x: boolean) { this.wind = x }\r\n\r\n @action setCredit(x: number) { this.credit = x }\r\n @action setMaxCredit(x: number) { this.maxCredit = x }\r\n @action setUseDuration(x: boolean) { this.useDuration = x }\r\n @action setDuration(x: number) { this.duration = x }\r\n @action setUseCreditTaxPercent(x: boolean) { this.useCreditTaxPercent = x }\r\n @action setCreditTaxPercent(x: number) { this.creditTaxPercent = x }\r\n}\r\n\r\n\r\nexport const createIncentive = (kind: IncentiveKind) => {\r\n switch (kind) {\r\n case 'itc': {return new InvestmentTaxCredit()}\r\n case 'macrs': {return new Macrs()}\r\n case 'bonus': {return new BonusDepreciation()}\r\n case 'prod': {return new ProductionBased()}\r\n }\r\n}\r\n","import {ComplexCostItem, ComplexCostTable, CostTable} from 'components/project/model/CostTable'\r\nimport {v4} from 'uuid'\r\nimport {action, computed, makeObservable, observable} from 'mobx'\r\nimport {StorageSpec} from 'services/api'\r\nimport {Sizing} from 'components/project/model/Sizing'\r\nimport {MultiYearVar} from 'components/project/model/MultiYearVar'\r\nimport {SensitivityVar} from 'components/project/model/SensitivityVar'\r\nimport {Inverter} from 'components/project/model/Inverter'\r\nimport { EnergyMarket } from './EnergyMarket'\r\nimport { SizingKind } from '../../../services/inputs'\r\n\r\n\r\nconst DEFAULT_STORAGE: string = 'Energy Storage (1 MW / 1 MWh)'\r\n\r\nexport type StorageKind = 'library' | 'custom'\r\n\r\n\r\nexport class Storage {\r\n id: string = v4()\r\n constructor() {\r\n makeObservable(this)\r\n this.cost.complex = defaultStorageComplexCostTable()\r\n this.converter.sizing.kind = SizingKind.relative\r\n }\r\n\r\n @observable kind: StorageKind = 'library'\r\n @observable specs?: StorageSpec\r\n\r\n // library\r\n @observable model: string = DEFAULT_STORAGE\r\n\r\n // custom\r\n @observable customName: string = ''\r\n @observable customData: string = ''\r\n @observable customAbbreviation: string= ''\r\n\r\n @observable sizing: Sizing = new Sizing()\r\n @observable cost: CostTable = new CostTable()\r\n @observable omEscalator: MultiYearVar = new MultiYearVar()\r\n @observable augmentationCost: number = 0 // $/kWh\r\n @observable augmentationDegradationLimit: SensitivityVar = new SensitivityVar(10)\r\n @observable augmentationPriceDecline: MultiYearVar = new MultiYearVar()\r\n\r\n @observable hasConverter: boolean = false\r\n @observable converter: Inverter = new Inverter()\r\n\r\n @observable useCycleLimitPerDay: boolean = false\r\n @observable cycleLimitPerDay: SensitivityVar = new SensitivityVar(1)\r\n @observable optimizeCycleLimitPerDay: boolean = false\r\n\r\n @observable useAuxiliaryLoad: boolean = false\r\n @observable auxiliaryLoadSensitivity: SensitivityVar = new SensitivityVar(1)\r\n @observable storageServesAuxiliaryLoad: boolean = false\r\n @observable useAuxiliaryLoadFlatPrice:boolean = true\r\n @observable auxiliaryLoadFlatPrice: number = 10\r\n @observable energyMarket: EnergyMarket | null = null\r\n @observable auxiliaryLoadPriceMultiYear: MultiYearVar = new MultiYearVar()\r\n //@observable auxiliaryLoadPrice: TimeSeries = new TimeSeries()\r\n\r\n @action setKind(x: StorageKind) { this.kind = x }\r\n @action setSpecs(x: StorageSpec) { this.specs = x }\r\n @action setUserStorageSpecs(x: StorageSpec) {\r\n this.specs = x\r\n }\r\n\r\n @action setModel(x: string) { this.model = x }\r\n @action setCustomName(x: string) { this.customName = x }\r\n @action setCustomAbbreviation(x: string) { this.customAbbreviation = x }\r\n @action setCustomData(x: string) { this.customData = x }\r\n @action setAugmentationCost(x: number) { this.augmentationCost = x }\r\n @action setHasConverter(x: boolean) { this.hasConverter = x }\r\n\r\n @action setOptimizeCycleLimitPerDay(x: boolean) { this.optimizeCycleLimitPerDay = x }\r\n @action setUseCycleLimitPerDay(x: boolean) { this.useCycleLimitPerDay = x }\r\n\r\n @computed get isZero(): boolean { return this.sizing.onlyZero }\r\n\r\n estimateSimulations(): number {\r\n const sens = this.augmentationDegradationLimit.estimateSimulations()\r\n const converter = this.hasConverter ? this.converter.estimateSimulations() : 1\r\n const size = this.sizing.estimateSimulations()\r\n const cost = this.cost.estimateSimulations()\r\n return sens * converter * size * cost\r\n }\r\n\r\n @action setEnergyMarket(x: EnergyMarket | null) { this.energyMarket = x }\r\n @action setUseAuxiliaryLoad(x: boolean) { this.useAuxiliaryLoad = x }\r\n @action setAuxiliaryLoadFlatPrice(x: number) { this.auxiliaryLoadFlatPrice = x }\r\n @action setUseAuxiliaryLoadFlatPrice(x: boolean) { this.useAuxiliaryLoadFlatPrice = x }\r\n @action setStorageServesAuxiliaryLoad(x: boolean) { this.storageServesAuxiliaryLoad = x }\r\n\r\n}\r\n\r\n\r\nfunction defaultStorageComplexCostTable(): ComplexCostTable {\r\n const rv = new ComplexCostTable()\r\n rv.directCapital.items.splice(0, 0, ...[\r\n new ComplexCostItem({name: 'Module', unit: 'CostPerKwh'}),\r\n new ComplexCostItem({name: 'Power Conversion System', unit: 'CostPerKw'}),\r\n new ComplexCostItem({name: 'Balance of System', unit: 'CostPerKw'}),\r\n new ComplexCostItem({name: 'Installation Labor', unit: 'CostPerKw'}),\r\n new ComplexCostItem({name: 'Installer Overhead and Margin', unit: 'CostPerKw'}),\r\n new ComplexCostItem({name: 'Contingency', unit: 'PercentOfDirectCapital'}),\r\n ])\r\n rv.indirectCapital.items.splice(0, 0, ...[\r\n new ComplexCostItem({name: 'Permitting and Environmental', unit: 'CostPerKw'}),\r\n new ComplexCostItem({name: 'Engineering and Developer Overhead', unit: 'CostPerKw'}),\r\n new ComplexCostItem({name: 'Land Purchase, Preparation and Transmissions', unit: 'CostPerKw'}),\r\n new ComplexCostItem({name: 'Working Capital Reserve Account', unit: 'Cost'}),\r\n new ComplexCostItem({name: 'Sales Tax Rate', unit: 'PercentOfDirectCapital'}),\r\n ])\r\n rv.operating.items.splice(0, 0, ...[\r\n new ComplexCostItem({name: 'Fixed Annual Cost', unit: 'CostPerYear'}),\r\n new ComplexCostItem({name: 'Fixed Cost by Capacity', unit: 'CostPerKwhYear'}),\r\n new ComplexCostItem({name: 'Variable Cost', unit: 'CostPerMwhThroughput'}),\r\n new ComplexCostItem({name: 'Insurance', unit: 'PercentOfDirectCapitalPerYear'}),\r\n new ComplexCostItem({name: 'Audit & Program Management Cost', unit: 'CostPerYear'}),\r\n new ComplexCostItem({name: 'Site Lease Cost', unit: 'CostPerYear'}),\r\n new ComplexCostItem({name: 'Property Tax Rate', unit: 'PercentOfDirectCapitalPerYear'}),\r\n new ComplexCostItem({name: 'Station Power Cost', unit: 'CostPerYear'}),\r\n new ComplexCostItem({name: 'Interest on All Reserves', unit: 'CostPerYear'}),\r\n new ComplexCostItem({name: 'Storage Decommissioning Reserve', unit: 'CostPerKwhYear'}),\r\n ])\r\n rv.replacement.items.splice(0, 0, ...[\r\n new ComplexCostItem({name: 'Replacement Cost', unit: 'CostPerKwh'}),\r\n ])\r\n return rv\r\n}\r\n","// colors for items with user defined colors (time series, rates)\r\nconst COLORS = [\r\n '#B80000',\r\n '#DB3E00',\r\n '#FCCB00',\r\n '#008B02',\r\n '#006B76',\r\n '#1273DE',\r\n '#004DCF',\r\n '#5300EB',\r\n '#EB9694',\r\n '#FAD0C3',\r\n '#FEF3BD',\r\n '#C1E1C5',\r\n '#BEDADC',\r\n '#C4DEF6',\r\n '#BED3F3',\r\n '#D4C4FB',\r\n]\r\n\r\nexport function getColor(index: number) { return COLORS[index % COLORS.length] }\r\n","import { action, makeObservable, observable } from \"mobx\"\r\nimport { v4 } from \"uuid\"\r\nimport { getColor } from 'colors'\r\n\r\nexport class RateSchedule {\r\n id: string = v4()\r\n constructor() {\r\n makeObservable(this)\r\n this.addNewPriceRate(1000)\r\n }\r\n\r\n // for kind = 'schedule'\r\n @observable scheduleRates: ScheduleRate[] = observable([])\r\n @observable schedule: Schedule = defaultSchedule()\r\n\r\n\r\n @action addNewPriceRate(value: number = 0) {\r\n const x = new ScheduleRate()\r\n x.color = getNextRateColor()\r\n x.value = value\r\n this.scheduleRates.push(x)\r\n }\r\n\r\n @action removePriceRate(id: string) {\r\n const index = this.scheduleRates.findIndex(x => x.id === id)\r\n this.scheduleRates.splice(index, 1)\r\n\r\n // update schedule\r\n const schedule = index === 0 ?\r\n shiftScheduleValues(this.schedule) :\r\n removeScheduleValue(this.schedule, index)\r\n this.setSchedule(schedule)\r\n\r\n // if no more rates -> add new one\r\n if (this.scheduleRates.length === 0) { this.addNewPriceRate() }\r\n }\r\n\r\n @action setSchedule(x: Schedule) { this.schedule = x }\r\n}\r\nexport type Schedule = number[][]\r\n\r\nexport class ScheduleRate {\r\n id: string = v4()\r\n constructor(init: Partial = {}) {\r\n Object.assign(this, init)\r\n makeObservable(this)\r\n }\r\n\r\n @observable color: string = '#ffffff'\r\n @observable value: number = 1000\r\n\r\n @action setColor(v: string) { this.color = v }\r\n @action setValue(v: number) { this.value = v }\r\n}\r\n\r\nexport function defaultSchedule(): Schedule {\r\n const months: number = 12\r\n const hours: number = 24\r\n const parts: number = 2 // weekday + weekend\r\n // [month+part][hours]\r\n // 0 -- off; 1 -- on\r\n return Array(parts * months).fill(null).map(() => new Array(hours).fill(0))\r\n}\r\n\r\nexport function removeScheduleValue(schedule: Schedule, value: number): Schedule {\r\n return schedule.map(vs => vs.map(v => v === value ? 0 : (v > value ? v - 1 : v)))\r\n}\r\n\r\n// decrease every value (except 0)\r\nexport function shiftScheduleValues(schedule: Schedule): Schedule {\r\n return schedule.map(vs => vs.map(v => v === 0 ? 0 : v - 1))\r\n}\r\n\r\nexport function fillSchedule(x: Schedule, value: number,\r\n month0: number, month1: number,\r\n hour0: number, hour1: number,\r\n weekday: boolean, weekend: boolean) {\r\n for (let month = Math.min(month0, month1); month <= Math.max(month0, month1); month++)\r\n for (let hour = Math.min(hour0, hour1); hour <= Math.max(hour0, hour1); hour++) {\r\n if (weekday) x[2 * month][hour] = value\r\n if (weekend) x[2 * month + 1][hour] = value\r\n }\r\n}\r\n\r\nlet nextRateColorIndex = 0\r\n\r\nexport function getNextRateColor() {\r\n const rv = getColor(nextRateColorIndex)\r\n nextRateColorIndex += 2\r\n return rv\r\n}\r\n","import {v4} from 'uuid'\r\nimport {action, makeObservable, observable} from 'mobx'\r\nimport {defaultSchedule, RateSchedule, removeScheduleValue, Schedule, ScheduleRate, shiftScheduleValues} from 'components/project/model/Schedule'\r\nimport {TimeSeries} from 'components/project/model/TimeSeries'\r\nimport {MultiYearVar} from 'components/project/model/MultiYearVar'\r\nimport {getColor} from 'colors'\r\n\r\nexport type ContractEnergyPriceKind = 'schedule' | 'import'\r\nexport type ContractObligationKind = 'daily' | 'import' | 'none'\r\n\r\n// rate color selection from palette\r\nlet nextRateColorIndex = 0\r\n\r\nexport function getNextRateColor() {\r\n const rv = getColor(nextRateColorIndex)\r\n nextRateColorIndex += 2\r\n return rv\r\n}\r\n\r\nexport type DayKind = 'all' | 'weekday' | 'weekend'\r\n\r\nexport class ContractObligationRequirement {\r\n id: string = v4()\r\n constructor(init: Partial = {}) {\r\n Object.assign(this, init)\r\n makeObservable(this)\r\n }\r\n\r\n @observable dayKind: DayKind = 'all'\r\n @observable startDate: Date = new Date()\r\n @observable endDate: Date = new Date()\r\n @observable startHour: number = 0 // 0..23\r\n @observable endHour: number = 1 // 1..24\r\n @observable value: number = 0 // (MWh)\r\n @observable obligationTimeSeries: TimeSeries = new TimeSeries()\r\n\r\n @action setDayKind(x: DayKind) { this.dayKind = x }\r\n @action setStartDate(x: Date) { this.startDate = x}\r\n @action setStartHour(x: number) { this.startHour = x }\r\n @action setEndDate(x: Date) { this.endDate = x }\r\n @action setEndHour(x: number) { this.endHour = x }\r\n @action setValue(x: number) { this.value = x }\r\n}\r\n\r\nexport class Contract {\r\n id: string = v4()\r\n constructor(lifetime: number) {\r\n makeObservable(this)\r\n this.energyPriceEscalator.updateLifetime(lifetime)\r\n }\r\n\r\n // energy price\r\n @observable energyPriceKind: ContractEnergyPriceKind = 'schedule'\r\n\r\n // for kind = 'schedule'\r\n //@observable energyPriceRates: ScheduleRate[] = observable([])\r\n //@observable energyPriceSchedule: Schedule = defaultSchedule()\r\n @observable energyPriceSchedule: RateSchedule = new RateSchedule\r\n\r\n // for kind = 'import'\r\n @observable energyPriceTimeSeries: TimeSeries = new TimeSeries()\r\n\r\n @observable energyPriceEscalator: MultiYearVar = new MultiYearVar()\r\n\r\n // obligations\r\n @observable obligationKind: ContractObligationKind = 'daily'\r\n\r\n // for kind = 'daily'\r\n @observable obligations: ContractObligationRequirement[] = observable([])\r\n @observable dailyObligationsTimeSeries: TimeSeries = new TimeSeries()\r\n\r\n // for kind = 'import'\r\n @observable obligationTimeSeries: TimeSeries = new TimeSeries()\r\n\r\n // for kind = 'none'\r\n @observable contractedSolarCapacity: number = 100\r\n @observable contractedWindCapacity: number = 100\r\n @observable contractedStorageCapacity: number = 100\r\n @observable competeWithWholesaleMarket: boolean = false\r\n\r\n @action setScheduleData(data: number[], year: number) {\r\n this.energyPriceTimeSeries.setData(data, year)\r\n }\r\n\r\n @action setObligationData(data: number[], year: number) {\r\n this.obligationTimeSeries.setData(data, year)\r\n }\r\n\r\n @action setEnergyPriceKind(x: ContractEnergyPriceKind) { this.energyPriceKind = x }\r\n @action setObligationKind(x: ContractObligationKind) { this.obligationKind = x }\r\n\r\n @action addNewObligation(init: Partial, isEdit?: boolean) {\r\n const x = new ContractObligationRequirement(init)\r\n if (!isEdit)\r\n this.obligations.push(x)\r\n else {\r\n const index = this.obligations.findIndex(i => i.id === x.id)\r\n this.obligations[index] = x;\r\n }\r\n }\r\n\r\n @action removeObligation(id: string) {\r\n const index = this.obligations.findIndex(x => x.id === id)\r\n this.obligations.splice(index, 1)\r\n }\r\n\r\n @action setContractedSolarCapacity(x: number) { this.contractedSolarCapacity = x }\r\n @action setContractedWindCapacity(x: number) { this.contractedWindCapacity = x }\r\n @action setContractedStorageCapacity(x: number) { this.contractedStorageCapacity = x }\r\n @action setCompeteWithWholesaleMarket(x: boolean) { this.competeWithWholesaleMarket = x }\r\n}\r\n","import { BusKind, Project } from 'components/project/model'\r\nimport { MultiYearItem, MultiYearVar } from 'components/project/model/MultiYearVar'\r\nimport { SensitivityItem, SensitivityVar } from 'components/project/model/SensitivityVar'\r\nimport { ComplexCostItem, ComplexCostTable, CostSensitivityItem, CostTable, CostTableType, CostUnit, SimpleCostTable } from 'components/project/model/CostTable'\r\nimport { eq } from 'utils'\r\nimport { StorageSpec, WindTurbineSpec } from 'services/api'\r\nimport { SizeItem, Sizing } from 'components/project/model/Sizing'\r\nimport { Resource, ResourceKind } from 'components/project/model/Resource'\r\nimport { Inverter } from 'components/project/model/Inverter'\r\nimport { Solar } from 'components/project/model/Solar'\r\nimport { TimeSeries } from 'components/project/model/TimeSeries'\r\nimport { BonusDepreciation, Incentive, InvestmentTaxCredit, Macrs, ProductionBased } from 'components/project/model/Incentive'\r\nimport { Storage, StorageKind } from 'components/project/model/Storage'\r\nimport { Contract, ContractEnergyPriceKind, ContractObligationKind, ContractObligationRequirement, DayKind } from 'components/project/model/Contract'\r\nimport { CapacityMarket, EnergyPriceKind, MonthlyVar, MonthlyVarItem, PriceUnit, RaEvent, RaEventKind } from 'components/project/model/CapacityMarket'\r\nimport { EnergyMarket, EnergyMarketKind } from 'components/project/model/EnergyMarket'\r\nimport { Wind, WindTurbineKind } from 'components/project/model/Wind'\r\nimport { MultiYearTimeSeries } from '../components/project/model/MultiYearTimeSeries'\r\nimport { RegulationMarket } from '../components/project/model/RegulationMarket'\r\nimport { defaultSchedule, RateSchedule, ScheduleRate } from '../components/project/model/Schedule'\r\n\r\nexport interface InputsDto {\r\n fileVersion?: string | undefined\r\n version: number | undefined\r\n name: string\r\n author: string\r\n notes: string\r\n location: LocationDto\r\n currency: string\r\n currencySymbol: string\r\n dateFormat: number\r\n useCommaAsDecimalPoint: boolean\r\n expectedCommercialOperationalDate: string\r\n expectedNoticeToProceed: string\r\n electricityMarket: string | null\r\n ignoreWarnings: boolean\r\n customData?: TimeSeriesDto\r\n\r\n hasImportLimit?: boolean\r\n importLimit?: number\r\n hasImportLimitTimeSeries?: boolean\r\n importLimitTimeSeriesData?: TimeSeriesDto\r\n hasImportLimitSchedule?: boolean\r\n importScheduleLimits?: number[][]\r\n importScheduleLimitRates?: ScheduleRateDto[]\r\n\r\n hasExportLimit?: boolean\r\n exportLimit?: number\r\n hasExportLimitTimeSeries?: boolean\r\n exportLimitTimeSeriesData?: TimeSeriesDto\r\n hasExportLimitSchedule?: boolean\r\n exportScheduleLimits?: number[][]\r\n exportScheduleLimitRates?: ScheduleRateDto[]\r\n\r\n acLineEfficiencySensitivity: SensitivityVarDto\r\n acTransfomerEfficiencySensitivity: SensitivityVarDto\r\n\r\n energyMarkets: EnergyMarketDto[]\r\n capacityMarkets: CapacityMarketDto[]\r\n contracts: ContractDto[]\r\n regulationMarkets: RegulationMarketDto[]\r\n regulationMarket?: RegulationMarketDto\r\n useRegulationMarket?: boolean\r\n\r\n bus: string\r\n canBatteryChargeFromGrid: string\r\n interconnectionLimit: number\r\n solarResource: ResourceDto\r\n windResource: ResourceDto\r\n temperatureResource: ResourceDto\r\n solar: SolarDto[]\r\n storage: StorageDto[]\r\n wind: WindDto[]\r\n converter?: ConverterDto\r\n\r\n incentives: IncentiveDto[]\r\n systemFixedCost: number\r\n systemOmCost: number\r\n discountRate: number\r\n inflationRate: number\r\n lifetime: number\r\n timeStepSize: number\r\n earlyAnalysis: boolean\r\n isNewSystemConverter: boolean | null\r\n}\r\n\r\nexport enum ComponentKind {\r\n homer,\r\n custom\r\n}\r\nexport enum MultiYearKind {\r\n linear,\r\n custom\r\n}\r\nexport enum SizingKind {\r\n absolute,\r\n relative\r\n}\r\n\r\nexport interface Pos {\r\n latitude: number\r\n longitude: number\r\n}\r\n\r\nexport interface LocationDto {\r\n pos: Pos\r\n address: string\r\n countryName?: string\r\n countryCode?: string\r\n}\r\n\r\nexport interface EnergyMarketDto {\r\n kind: string\r\n useMultiYearPrice: boolean\r\n price: TimeSeriesDto\r\n multiYearPrice: MultiYearTimeSeriesDto[]\r\n priceAverage: SensitivityVarDto\r\n priceEscalator: MultiYearVarDto\r\n allocation: number\r\n allocationSensitivity: SensitivityVarDto\r\n maxStorageCommitmentSensitivity: SensitivityVarDto\r\n pvAllocationSensitivity: SensitivityVarDto\r\n windAllocationSensitivity: SensitivityVarDto\r\n}\r\n\r\nexport interface RegulationMarketDto {\r\n name: string\r\n abbreviation: string\r\n useRegUp: boolean\r\n useRegDown: boolean\r\n regUpPriceYear: number\r\n regDownPriceYear: number\r\n regUpPrice: TimeSeriesDto\r\n regDownPrice: TimeSeriesDto\r\n maxCommitmentRegUp: SensitivityVarDto\r\n maxCommitmentRegDown: SensitivityVarDto\r\n minRegUpPrice: SensitivityVarDto\r\n minRegDownPrice: SensitivityVarDto\r\n useEnergyPrice: boolean\r\n energyPriceYear: number\r\n //energyPrice: TimeSeriesDto\r\n energyMarketKind?: string\r\n throughputPercentage: SensitivityVarDto\r\n}\r\n\r\nexport interface CapacityMarketDto {\r\n schedule: number[][]\r\n\r\n eventKind: string\r\n totalCallsPerYear: number\r\n callDuration: number\r\n numberOfHighestPriceDays?: number\r\n events: RaEventDto[]\r\n\r\n capacityPrice: MonthlyVarDto\r\n capacityPriceEscalator: MultiYearVarDto\r\n\r\n energyPriceKind: string\r\n energyMarketKind?: string\r\n energyPrice: number\r\n energyPriceEscalator: MultiYearVarDto\r\n allocatedStorageCapacity: number\r\n capacityPriceSensitivity: SensitivityVarDto,\r\n priceUnit: string\r\n}\r\n\r\nexport interface RaEventDto {\r\n date: string\r\n duration: number\r\n}\r\n\r\nexport interface ContractDto {\r\n energyPriceKind: string\r\n energyPriceRates: ScheduleRateDto[]\r\n energyPriceSchedule: number[][]\r\n energyPriceTimeSeries: TimeSeriesDto\r\n energyPriceEscalator: MultiYearVarDto\r\n\r\n obligationKind: string\r\n obligations: ContractObligationRequirementDto[]\r\n dailyObligationsTimeSeries: TimeSeriesDto\r\n obligationTimeSeries: TimeSeriesDto\r\n contractedSolarCapacity?: number\r\n contractedWindCapacity?: number\r\n contractedStorageCapacity?: number\r\n competeWithWholesaleMarket?: boolean\r\n}\r\n\r\nexport interface ScheduleRateDto {\r\n value: number\r\n color: string\r\n}\r\n\r\nexport interface ContractObligationRequirementDto {\r\n dayKind: string\r\n startDate: string\r\n endDate: string\r\n startHour: number\r\n endHour: number\r\n value: number\r\n customData?: TimeSeriesDto\r\n}\r\n\r\nexport interface SolarDto {\r\n kind?: string\r\n solarKind?: ComponentKind\r\n customSize?: number\r\n customName?: string\r\n customAbbreviation?: string\r\n customData?: TimeSeriesDto\r\n size: SizingVarDto\r\n cost: CostTableDto\r\n omEscalator: MultiYearVarDto\r\n degradation: MultiYearVarDto\r\n hasConverter: boolean\r\n converter?: ConverterDto\r\n deratingFactor: SensitivityVarDto\r\n}\r\n\r\n\r\nexport interface WindDto {\r\n kind: string\r\n specs?: WindTurbineSpec\r\n model: string\r\n size: SizingVarDto\r\n cost: CostTableDto\r\n omEscalator: MultiYearVarDto\r\n hubHeight: SensitivityVarDto\r\n lifetime: SensitivityVarDto\r\n availabilityLosses: number\r\n performanceLosses: number\r\n environmentalLosses: number\r\n wakeEffectLosses: number\r\n electricalLosses: number\r\n curtailmentLosses: number\r\n otherLosses: number\r\n altitude: number\r\n customSize: number //obsolete\r\n customSizing: SizingVarDto\r\n data?: TimeSeriesDto\r\n anemometerHeight: number\r\n customName?: string\r\n customData?: string\r\n}\r\n\r\n\r\nexport interface StorageDto {\r\n kind?: string\r\n specs?: StorageSpec\r\n customName?: string\r\n customAbbreviation?: string\r\n customData?: string\r\n model: string\r\n size: SizingVarDto\r\n cost: CostTableDto\r\n omEscalator: MultiYearVarDto\r\n augmentationCost?: number\r\n augmentationDegradationLimit: SensitivityVarDto | number\r\n augmentationPriceDecline: MultiYearVarDto\r\n cycleLimitPerDay: SensitivityVarDto | number\r\n useCycleLimitPerDay: boolean\r\n optimizeCycleLimitPerDay: boolean\r\n\r\n hasConverter: boolean\r\n converter?: ConverterDto\r\n\r\n useAuxiliaryLoad: boolean\r\n auxiliaryLoadSensitivity: SensitivityVarDto | number\r\n storageServesAuxiliaryLoad: boolean\r\n useAuxiliaryLoadFlatPrice: boolean\r\n auxiliaryLoadFlatPrice: number\r\n energyMarketKind: string | undefined\r\n auxiliaryLoadPriceMultiYear: MultiYearVarDto\r\n}\r\n\r\n\r\nexport interface ConverterDto {\r\n size: SizingVarDto\r\n cost: CostTableDto\r\n omEscalator: MultiYearVarDto\r\n replacementEscalator: MultiYearVarDto\r\n efficiency: SensitivityVarDto\r\n lifetime: SensitivityVarDto\r\n}\r\n\r\n\r\nexport interface TimeSeriesDto {\r\n data: number[]\r\n year?: number\r\n}\r\n\r\nexport interface MultiYearTimeSeriesDto {\r\n data: number[]\r\n year?: number\r\n projectYearsValid: boolean[]\r\n timeSeriesFileBaseName: string\r\n}\r\n\r\nexport interface SensitivityVarDto {\r\n values: number[]\r\n}\r\n\r\n\r\nexport interface MultiYearItemDto {\r\n year: number\r\n value: number\r\n}\r\n\r\n\r\nexport interface MultiYearVarDto {\r\n enabled: boolean\r\n multiYearKind: MultiYearKind\r\n kind?: string\r\n linearValue: number\r\n customValues: MultiYearItemDto[]\r\n}\r\n\r\n\r\nexport interface MonthlyVarDto {\r\n values: number[]\r\n}\r\n\r\n\r\nexport interface SizingVarDto {\r\n sizingKind: SizingKind\r\n kind?: string\r\n values: number[]\r\n}\r\n\r\n\r\nexport interface CostTableDto {\r\n kind?: string//obsolete\r\n costTableKind?: CostTableType\r\n simpleCostTable?: SimpleCostTableDto\r\n complexCostTable?: ComplexCostTableDto\r\n}\r\n\r\n\r\nexport interface SimpleCostTableDto {\r\n capital: number\r\n operating: number\r\n replacement: number\r\n augmentation: number\r\n capitalSensitivity: SensitivityVarDto\r\n operatingSensitivity: SensitivityVarDto\r\n replacementSensitivity: SensitivityVarDto\r\n}\r\n\r\n\r\nexport interface ComplexCostItemDto {\r\n name: string\r\n units: string\r\n value: number\r\n}\r\n\r\n\r\nexport interface ComplexCostTableDto {\r\n directCapital: ComplexCostItemDto[]\r\n indirectCapital: ComplexCostItemDto[]\r\n operating: ComplexCostItemDto[]\r\n replacement: ComplexCostItemDto[]\r\n}\r\n\r\n\r\nexport interface ResourceDto {\r\n kind: string\r\n data: TimeSeriesDto\r\n scale: SensitivityVarDto\r\n}\r\n\r\n\r\nexport interface IncentiveDto {\r\n kind: string\r\n solar: boolean\r\n storage: boolean\r\n wind: boolean\r\n\r\n eligiblePercent?: number\r\n itcPercent?: number\r\n marginalTaxPercent?: number\r\n bonusPercent?: number\r\n\r\n credit?: number\r\n maxCredit?: number\r\n useDuration?: boolean\r\n duration?: number\r\n useCreditTaxPercent?: boolean\r\n creditTaxPercent?: number\r\n}\r\n\r\n\r\nexport function serializeInputs(model: Project): InputsDto {\r\n return {\r\n version: 2,\r\n name: model.name,\r\n author: model.author,\r\n earlyAnalysis: model.earlyAnalysis,\r\n notes: model.notes,\r\n location: {\r\n pos: {\r\n latitude: model.location.pos.lat,\r\n longitude: model.location.pos.lng,\r\n },\r\n address: model.location.address,\r\n countryName: model.location.countryName,\r\n countryCode: model.location.countryCode,\r\n },\r\n currency: model.currency,\r\n currencySymbol: model.currencySymbol,\r\n useCommaAsDecimalPoint: model.useCommaAsDecimalPoint,\r\n dateFormat: model.dateFormat,\r\n\r\n expectedCommercialOperationalDate: serializeDate(model.expectedDate),\r\n expectedNoticeToProceed: serializeDate(model.noticeToProceed),\r\n electricityMarket: model.electricityMarket,\r\n ignoreWarnings: model.ignoreWarnings,\r\n\r\n hasImportLimit: model.hasImportLimit,\r\n importLimit: model.importLimit,\r\n hasImportLimitTimeSeries: model.hasImportLimitTimeSeries,\r\n importLimitTimeSeriesData: serializeTimeSeries(model.importLimitTimeSeriesData),\r\n hasImportLimitSchedule: model.hasImportLimitSchedule,\r\n importScheduleLimits: model.importLimitSchedule.schedule,\r\n importScheduleLimitRates: model.importLimitSchedule.scheduleRates.map(x => ({ value: x.value, color: x.color })),\r\n\r\n hasExportLimit: model.hasExportLimit,\r\n exportLimit: model.exportLimit,\r\n hasExportLimitTimeSeries: model.hasExportLimitTimeSeries,\r\n exportLimitTimeSeriesData: serializeTimeSeries(model.exportLimitTimeSeriesData),\r\n hasExportLimitSchedule: model.hasExportLimitSchedule,\r\n exportScheduleLimits: model.exportLimitSchedule.schedule,\r\n exportScheduleLimitRates: model.exportLimitSchedule.scheduleRates.map(x => ({ value: x.value, color: x.color })),\r\n\r\n acLineEfficiencySensitivity: serializeSensitivityVar(model.acLineEfficiencySensitivity),\r\n acTransfomerEfficiencySensitivity: serializeSensitivityVar(model.acTransfomerEfficiencySensitivity),\r\n\r\n energyMarkets: !model.useEnergyMarket ? [] :\r\n model.energyMarkets.map(x => serializeEnergyMarket(x)),\r\n capacityMarkets: !model.useCapacityMarket ? [] :\r\n model.capacityMarkets.map(x => serializeCapacityMarket(x)),\r\n contracts: !model.useContract ? [] :\r\n model.contracts.map(x => serializeContract(x)),\r\n regulationMarkets: !model.useRegulationMarket ? [] :\r\n model.regulationMarkets.map(x => serializeRegulationMarket(x)),\r\n useRegulationMarket: undefined,\r\n\r\n bus: model.bus,\r\n canBatteryChargeFromGrid: ((model.useStorage && !model.useSolar) || (model.useStorage && model.useWind && !model.useSolar)) ? \"true\" : model.canBatteryChargeFromGrid,\r\n interconnectionLimit: model.interconnectionLimit,\r\n solarResource: serializeResource(model.solarResource),\r\n windResource: serializeResource(model.windResource),\r\n temperatureResource: serializeResource(model.temperatureResource),\r\n solar: !model.useSolar ? [] :\r\n model.solar.map(x => serializeSolar(x)),\r\n storage: !model.useStorage ? [] :\r\n model.storage.map(x => serializeStorage(x)),\r\n wind: !model.useWind ? [] :\r\n model.wind.map(x => serializeWind(x)),\r\n converter: model.hasSystemConverter ? serializeConverter(model.inverter) : undefined,\r\n\r\n incentives: model.incentives.map(x => serializeIncentive(x)),\r\n systemFixedCost: model.systemFixedCost,\r\n systemOmCost: model.systemOmCost,\r\n discountRate: model.discountRate,\r\n inflationRate: model.inflationRate,\r\n lifetime: model.lifetime,\r\n timeStepSize: model.timeStepSize,\r\n isNewSystemConverter: model.hasSystemConverter ? false : model.isNewSystemConverter\r\n }\r\n}\r\n\r\n\r\nfunction serializeEnergyMarket(model: EnergyMarket): EnergyMarketDto {\r\n return {\r\n kind: model.kind,\r\n useMultiYearPrice: model.useMultiYearPrice,\r\n price: serializeTimeSeries(model.price),\r\n multiYearPrice: model.multiYearPrice.map(x => serializeMultiYearTimeSeries(x)),\r\n priceAverage: serializeSensitivityVar(model.priceAverage),\r\n priceEscalator: serializeMultiYearVar(model.priceEscalator),\r\n allocation: model.allocation,\r\n allocationSensitivity: serializeSensitivityVar(model.allocationSensitivity),\r\n maxStorageCommitmentSensitivity: serializeSensitivityVar(model.maxStorageCommitmentSensitivity),\r\n windAllocationSensitivity: serializeSensitivityVar(model.windAllocationSensitivity),\r\n pvAllocationSensitivity: serializeSensitivityVar(model.pvAllocationSensitivity),\r\n }\r\n}\r\n\r\nfunction serializeRegulationMarket(model: RegulationMarket): RegulationMarketDto {\r\n return {\r\n name: model.name,\r\n abbreviation: model.abbreviation,\r\n useRegUp: model.useRegUp,\r\n useRegDown: model.useRegDown,\r\n regUpPriceYear: model.regUpPriceYear,\r\n regDownPriceYear: model.regDownPriceYear,\r\n regUpPrice: serializeTimeSeries(model.regUpPrice),\r\n regDownPrice: serializeTimeSeries(model.regDownPrice),\r\n maxCommitmentRegUp: serializeSensitivityVar(model.maxCommitmentRegUp),\r\n maxCommitmentRegDown: serializeSensitivityVar(model.maxCommitmentRegDown),\r\n minRegUpPrice: serializeSensitivityVar(model.minRegUpPrice),\r\n minRegDownPrice: serializeSensitivityVar(model.minRegDownPrice),\r\n useEnergyPrice: model.useEnergyPrice,\r\n energyPriceYear: model.energyPriceYear,\r\n energyMarketKind: model.energyMarket?.kind ?? 'dam',\r\n //energyPrice: serializeTimeSeries(model.energyPrice),\r\n throughputPercentage: serializeSensitivityVar(model.throughputPercentage),\r\n }\r\n}\r\n\r\n\r\nfunction serializeCapacityMarket(model: CapacityMarket): CapacityMarketDto {\r\n return {\r\n schedule: model.schedule,\r\n\r\n eventKind: model.eventKind,\r\n totalCallsPerYear: model.totalCallsPerYear,\r\n callDuration: model.averageCallDuration,\r\n numberOfHighestPriceDays: model.numberOfHighestPriceDays,\r\n events: model.events.map(x => ({\r\n date: serializeDate(x.date),\r\n duration: x.duration,\r\n })),\r\n\r\n capacityPrice: serializeMonthlyVar(model.price),\r\n capacityPriceSensitivity: serializeSensitivityVar(model.capacityPriceSensitivity),\r\n priceUnit: model.priceUnit,\r\n capacityPriceEscalator: serializeMultiYearVar(model.capacityEscalator),\r\n\r\n energyPriceKind: model.energyPriceKind,\r\n energyMarketKind: model.energyMarket?.kind ?? undefined,\r\n energyPrice: model.energyPrice,\r\n energyPriceEscalator: serializeMultiYearVar(model.energyEscalator),\r\n allocatedStorageCapacity: model.allocatedStorageCapacity\r\n }\r\n}\r\n\r\n\r\nfunction serializeContract(model: Contract): ContractDto {\r\n return {\r\n energyPriceKind: model.energyPriceKind,\r\n energyPriceRates: model.energyPriceSchedule.scheduleRates.map(x => ({\r\n value: x.value,\r\n color: x.color,\r\n })),\r\n energyPriceSchedule: model.energyPriceSchedule.schedule,\r\n energyPriceTimeSeries: serializeTimeSeries(model.energyPriceTimeSeries),\r\n energyPriceEscalator: serializeMultiYearVar(model.energyPriceEscalator),\r\n\r\n obligationKind: model.obligationKind,\r\n obligations: model.obligations.map(x => ({\r\n dayKind: x.dayKind,\r\n startDate: serializeDate(x.startDate),\r\n endDate: serializeDate(x.endDate),\r\n startHour: x.startHour,\r\n endHour: x.endHour,\r\n value: x.value,\r\n customData: serializeTimeSeries(x.obligationTimeSeries)\r\n })),\r\n dailyObligationsTimeSeries: serializeTimeSeries(model.dailyObligationsTimeSeries),\r\n obligationTimeSeries: serializeTimeSeries(model.obligationTimeSeries),\r\n contractedSolarCapacity: model.contractedSolarCapacity,\r\n contractedWindCapacity: model.contractedWindCapacity,\r\n contractedStorageCapacity: model.obligationKind === 'none' ? model.contractedStorageCapacity : 0,\r\n competeWithWholesaleMarket: model.competeWithWholesaleMarket\r\n }\r\n}\r\n\r\n\r\nfunction serializeSolar(model: Solar): SolarDto {\r\n return {\r\n solarKind: model.kind,\r\n customSize: model.customSize,\r\n customData: serializeTimeSeries(model.customData),\r\n customName: model.customName,\r\n customAbbreviation: model.customAbbreviation,\r\n size: serializeSizingVar(model.sizing),\r\n cost: serializeCostTable(model.cost),\r\n omEscalator: serializeMultiYearVar(model.omEscalator),\r\n degradation: serializeMultiYearVar(model.degradation),\r\n hasConverter: model.hasConverter,\r\n converter: serializeConverter(model.converter),\r\n deratingFactor: serializeSensitivityVar(model.deratingFactor),\r\n }\r\n}\r\n\r\n\r\nfunction serializeWind(model: Wind): WindDto {\r\n return {\r\n kind: model.kind,\r\n specs: model.specs,\r\n model: model.model,\r\n customSize: 0, //obsolete, kept for retrocompatibility\r\n customSizing: serializeSizingVar(model.customSizing),\r\n data: serializeTimeSeries(model.data),\r\n size: serializeSizingVar(model.sizing),\r\n cost: serializeCostTable(model.cost),\r\n hubHeight: serializeSensitivityVar(model.hubHeight),\r\n lifetime: serializeSensitivityVar(model.lifetime),\r\n availabilityLosses: model.availabilityLosses,\r\n performanceLosses: model.performanceLosses,\r\n environmentalLosses: model.environmentalLosses,\r\n wakeEffectLosses: model.wakeEffectLosses,\r\n electricalLosses: model.electricalLosses,\r\n curtailmentLosses: model.curtailmentLosses,\r\n otherLosses: model.otherLosses,\r\n altitude: model.altitude,\r\n anemometerHeight: model.anemometerHeight,\r\n customName: model.customName,\r\n customData: model.customData,\r\n omEscalator: serializeMultiYearVar(model.omEscalator),\r\n }\r\n}\r\n\r\n\r\nfunction serializeStorage(model: Storage): StorageDto {\r\n return {\r\n kind: model.kind,\r\n specs: model.specs,\r\n model: model.model,\r\n customName: model.customName,\r\n customAbbreviation: model.customAbbreviation,\r\n customData: model.customData,\r\n size: serializeSizingVar(model.sizing),\r\n cost: serializeCostTable(model.cost),\r\n omEscalator: serializeMultiYearVar(model.omEscalator),\r\n augmentationCost: model.augmentationCost,\r\n augmentationDegradationLimit: serializeSensitivityVar(model.augmentationDegradationLimit),\r\n augmentationPriceDecline: serializeMultiYearVar(model.augmentationPriceDecline),\r\n hasConverter: model.hasConverter,\r\n converter: serializeConverter(model.converter),\r\n useCycleLimitPerDay: model.useCycleLimitPerDay,\r\n optimizeCycleLimitPerDay: model.optimizeCycleLimitPerDay,\r\n cycleLimitPerDay: serializeSensitivityVar(model.cycleLimitPerDay),\r\n useAuxiliaryLoad: model.useAuxiliaryLoad,\r\n auxiliaryLoadSensitivity: serializeSensitivityVar(model.auxiliaryLoadSensitivity),\r\n storageServesAuxiliaryLoad: model.storageServesAuxiliaryLoad,\r\n useAuxiliaryLoadFlatPrice: model.useAuxiliaryLoadFlatPrice,\r\n auxiliaryLoadFlatPrice: model.auxiliaryLoadFlatPrice,\r\n energyMarketKind: model.energyMarket?.kind ?? undefined,\r\n auxiliaryLoadPriceMultiYear: serializeMultiYearVar(model.auxiliaryLoadPriceMultiYear),\r\n }\r\n}\r\n\r\n\r\nfunction serializeConverter(model: Inverter): ConverterDto {\r\n return {\r\n size: serializeSizingVar(model.sizing),\r\n cost: serializeCostTable(model.cost),\r\n omEscalator: serializeMultiYearVar(model.omEscalator),\r\n replacementEscalator: serializeMultiYearVar(model.replacementEscalator),\r\n efficiency: serializeSensitivityVar(model.efficiency),\r\n lifetime: serializeSensitivityVar(model.lifetime),\r\n }\r\n}\r\n\r\n\r\nfunction serializeResource(model: Resource): ResourceDto {\r\n return {\r\n kind: model.kind,\r\n scale: serializeSensitivityVar(model.scale),\r\n data: serializeTimeSeries(model.data),\r\n }\r\n}\r\n\r\n\r\nfunction serializeMultiYearVar(model: MultiYearVar): MultiYearVarDto {\r\n return {\r\n enabled: model.enabled,\r\n multiYearKind: model.multiYearKind,\r\n linearValue: model.linearValue,\r\n customValues: model.customValues.map(x => ({ year: x.year, value: x.value })),\r\n }\r\n}\r\n\r\n\r\nexport function serializeSensitivityVar(model: SensitivityVar): SensitivityVarDto {\r\n return {\r\n values: model.values.map(x => x.value),\r\n }\r\n}\r\n\r\n\r\nfunction serializeSizingVar(model: Sizing): SizingVarDto {\r\n const values = model.values.map(x => x.value)\r\n return {\r\n sizingKind: model.kind,\r\n values: values,\r\n }\r\n}\r\n\r\n\r\nfunction serializeMonthlyVar(model: MonthlyVar): MonthlyVarDto {\r\n return {\r\n values: model.values.map(x => x.value),\r\n }\r\n}\r\n\r\n\r\nfunction serializeCostTable(model: CostTable): CostTableDto {\r\n return {\r\n costTableKind: model.costTableType,\r\n simpleCostTable: model.costTableType === CostTableType.simple ? serializeSimpleCostTable(model.simple) : undefined,\r\n complexCostTable: model.costTableType === CostTableType.complex ? serializeComplexCostTable(model.complex) : undefined,\r\n }\r\n}\r\n\r\n\r\nfunction getRelative(x: number, base: number) {\r\n return eq(base, 0) ? 1 : x / base\r\n}\r\n\r\nfunction serializeSimpleCostTable(model: SimpleCostTable): SimpleCostTableDto {\r\n const base = model.items[0]\r\n return {\r\n capital: base.capital,\r\n operating: base.operating,\r\n replacement: base.replacement,\r\n augmentation: base.augmentation,\r\n capitalSensitivity: { values: model.items.map(x => getRelative(x.capital, base.capital)) },\r\n operatingSensitivity: { values: model.items.map(x => getRelative(x.operating, base.operating)) },\r\n replacementSensitivity: { values: model.items.map(x => getRelative(x.replacement, base.replacement)) },\r\n }\r\n}\r\n\r\n\r\nfunction serializeComplexCostTable(model: ComplexCostTable): ComplexCostTableDto {\r\n return {\r\n directCapital: model.directCapital.items.map(x => serializeComplexCostItem(x)),\r\n indirectCapital: model.indirectCapital.items.map(x => serializeComplexCostItem(x)),\r\n operating: model.operating.items.map(x => serializeComplexCostItem(x)),\r\n replacement: model.replacement.items.map(x => serializeComplexCostItem(x)),\r\n }\r\n}\r\n\r\n\r\nfunction serializeComplexCostItem(model: ComplexCostItem): ComplexCostItemDto {\r\n return {\r\n name: model.name,\r\n units: model.unit,\r\n value: model.value,\r\n }\r\n}\r\n\r\n\r\nfunction serializeTimeSeries(model: TimeSeries): TimeSeriesDto {\r\n return {\r\n data: model.data,\r\n year: model.year,\r\n }\r\n}\r\n\r\nfunction serializeMultiYearTimeSeries(model: MultiYearTimeSeries): MultiYearTimeSeriesDto {\r\n return {\r\n data: model.price.data,\r\n year: model.price.year,\r\n projectYearsValid: model.projectYearsValid,\r\n timeSeriesFileBaseName: model.timeSeriesFileBaseName\r\n }\r\n}\r\n\r\nfunction serializeIncentive(model: Incentive): IncentiveDto {\r\n let rv: IncentiveDto = {\r\n kind: model.kind,\r\n solar: model.solar,\r\n storage: model.storage,\r\n wind: model.wind,\r\n }\r\n switch (model.kind) {\r\n case 'itc': {\r\n const x = model as InvestmentTaxCredit\r\n rv.eligiblePercent = x.eligiblePercent\r\n rv.itcPercent = x.itcPercent\r\n break\r\n }\r\n case 'macrs': {\r\n const x = model as Macrs\r\n rv.eligiblePercent = x.eligiblePercent\r\n rv.marginalTaxPercent = x.marginalTaxPercent\r\n break\r\n }\r\n case 'bonus': {\r\n const x = model as BonusDepreciation\r\n rv.eligiblePercent = x.eligiblePercent\r\n rv.marginalTaxPercent = x.marginalTaxPercent\r\n rv.bonusPercent = x.bonusPercent\r\n break\r\n }\r\n case 'prod': {\r\n const x = model as ProductionBased\r\n rv.credit = x.credit\r\n rv.maxCredit = x.maxCredit\r\n rv.useDuration = x.useDuration\r\n rv.duration = x.duration\r\n rv.useCreditTaxPercent = x.useCreditTaxPercent\r\n rv.creditTaxPercent = x.creditTaxPercent\r\n break\r\n }\r\n }\r\n return rv\r\n}\r\n\r\n\r\nfunction serializeDate(x: Date): string {\r\n // Adjust time to have the same time as entered by user but in UTC time zone for a server\r\n // Example: user 22:35 at UTC+3 -> server 22:35 at UTC+0\r\n const offsetMs = x.getTimezoneOffset() * 60 * 1000\r\n const server = new Date(x.getTime() - offsetMs)\r\n return server.toISOString()\r\n}\r\n\r\n\r\nexport function deserializeInputs(dto: InputsDto, model: Project) {\r\n maintainCompatibility(dto)\r\n\r\n model.location.pos = { lat: dto.location.pos.latitude, lng: dto.location.pos.longitude }\r\n model.location.address = dto.location.address\r\n model.location.countryName = dto.location.countryName ?? 'United States'\r\n model.location.countryCode = dto.location.countryCode ?? 'US'\r\n model.useCommaAsDecimalPoint = (model.useCommaAsDecimalPoint != null && model.useCommaAsDecimalPoint !== undefined) ? model.useCommaAsDecimalPoint : false\r\n model.dateFormat = (model.dateFormat != null && model.dateFormat !== undefined) ? model.dateFormat : 0\r\n model.name = dto.name\r\n model.author = dto.author\r\n model.earlyAnalysis = dto.earlyAnalysis\r\n model.notes = dto.notes\r\n model.expectedDate = deserializeDate(dto.expectedCommercialOperationalDate)\r\n model.noticeToProceed = deserializeDate(dto.expectedNoticeToProceed)\r\n model.electricityMarket = dto.electricityMarket ?? 'other'\r\n model.ignoreWarnings = dto.ignoreWarnings ?? false\r\n\r\n model.useEnergyMarket = dto.energyMarkets?.length > 0\r\n model.useCapacityMarket = dto.capacityMarkets?.length > 0\r\n model.useContract = dto.contracts?.length > 0\r\n model.energyMarkets.splice(0, model.energyMarkets.length,\r\n ...dto.energyMarkets?.map(x => deserializeEnergyMarket(x, model.lifetime, dto.version!)) ?? [])\r\n model.capacityMarkets.splice(0, model.capacityMarkets.length,\r\n ...dto.capacityMarkets?.map(x => deserializeCapacityMarket(x, model.energyMarkets, model.lifetime, dto.version!)) ?? [])\r\n model.contracts.splice(0, model.contracts.length,\r\n ...dto.contracts?.map(x => deserializeContract(x, model.lifetime, dto.version!)) ?? [])\r\n model.regulationMarkets.splice(0, model.regulationMarkets.length,\r\n ...dto.regulationMarkets?.map(x => deserializeRegulationMarket(x, model.energyMarkets)) ?? [])\r\n if (model.regulationMarkets.length === 0 && dto.useRegulationMarket === true) {\r\n model.regulationMarkets.push(deserializeRegulationMarket(dto.regulationMarket, model.energyMarkets))\r\n }\r\n model.useRegulationMarket = model.regulationMarkets?.length > 0\r\n\r\n model.useSolar = dto.solar.length > 0\r\n model.useStorage = dto.storage.length > 0\r\n model.useWind = dto.wind?.length > 0\r\n model.solar.splice(0, model.solar.length,\r\n ...dto.solar.map(x => deserializeSolar(x)))\r\n model.storage.splice(0, model.storage.length,\r\n ...dto.storage.map(x => deserializeStorage(x, model.energyMarkets, dto.version!)))\r\n model.wind.splice(0, model.wind.length,\r\n ...dto.wind?.map(x => deserializeWind(x)))\r\n model.inverter = deserializeConverter(dto.converter)\r\n model.bus = dto.bus as BusKind\r\n model.canBatteryChargeFromGrid = dto.canBatteryChargeFromGrid.toString()\r\n model.interconnectionLimit = -1;\r\n\r\n model.hasImportLimit = dto.hasImportLimit ?? false\r\n model.importLimit = dto.interconnectionLimit >= 0 ? dto.interconnectionLimit : dto.importLimit != undefined ? dto.importLimit : 100000\r\n model.hasImportLimitTimeSeries = dto.hasImportLimitTimeSeries ?? false\r\n model.importLimitTimeSeriesData = deserializeTimeSeries(dto.importLimitTimeSeriesData)\r\n model.hasImportLimitSchedule = dto.hasImportLimitSchedule ?? false\r\n model.importLimitSchedule = deserializeRateSchedule(dto.importScheduleLimitRates, dto.importScheduleLimits)\r\n\r\n model.hasExportLimit = dto.hasExportLimit ?? true\r\n model.exportLimit = dto.interconnectionLimit >= 0 ? dto.interconnectionLimit : dto.exportLimit != undefined ? dto.exportLimit : 100000\r\n model.hasExportLimitTimeSeries = dto.hasExportLimitTimeSeries ?? false\r\n model.exportLimitTimeSeriesData = deserializeTimeSeries(dto.exportLimitTimeSeriesData)\r\n model.hasExportLimitSchedule = dto.hasExportLimitSchedule ?? false\r\n model.exportLimitSchedule = deserializeRateSchedule(dto.exportScheduleLimitRates, dto.exportScheduleLimits)\r\n\r\n model.acLineEfficiencySensitivity = dto.acLineEfficiencySensitivity != undefined ? deserializeSensitivityVar(dto.acLineEfficiencySensitivity) : deserializeSensitivityVar(100)\r\n model.acTransfomerEfficiencySensitivity = dto.acTransfomerEfficiencySensitivity != undefined ? deserializeSensitivityVar(dto.acTransfomerEfficiencySensitivity) : deserializeSensitivityVar(100)\r\n\r\n model.solarResource = deserializeResource(dto.solarResource)\r\n model.windResource = deserializeResource(dto.windResource)\r\n model.temperatureResource = deserializeResource(dto.temperatureResource)\r\n\r\n model.systemFixedCost = dto.systemFixedCost\r\n model.systemOmCost = dto.systemOmCost\r\n model.discountRate = dto.discountRate\r\n model.inflationRate = dto.inflationRate\r\n model.lifetime = dto.lifetime\r\n model.timeStepSize = dto.timeStepSize\r\n model.isNewSystemConverter = model.isNewSystemConverter\r\n model.incentives.splice(0, model.incentives.length,\r\n ...dto.incentives.map(x => deserializeIncentive(x)))\r\n if (dto.version! < 2 && (dto.fileVersion === undefined || dto.fileVersion !== '1.0')) {\r\n if (model.regulationMarkets?.length > 0 && !model.regulationMarkets[0].useEnergyPrice)\r\n model.regulationMarkets[0].throughputPercentage = deserializeSensitivityVar(100)\r\n }\r\n}\r\n\r\n\r\nfunction deserializeEnergyMarket(dto: EnergyMarketDto, lifetime: number, fileVersion: number): EnergyMarket {\r\n let rv = new EnergyMarket(lifetime)\r\n rv.kind = dto.kind as EnergyMarketKind\r\n rv.useMultiYearPrice = dto.useMultiYearPrice ?? false\r\n rv.price = deserializeTimeSeries(dto.price)\r\n rv.multiYearPrice = dto.multiYearPrice ? dto.multiYearPrice.map(x => deserializeMultiYearTimeSeries(x)) : new Array()\r\n rv.priceAverage = deserializeSensitivityVar(dto.priceAverage)\r\n rv.priceEscalator = deserializeMultiYearVar(dto.priceEscalator)\r\n rv.allocation = dto.allocation\r\n //Maintain compatibility with old projects with single Allocation\r\n if (dto.allocationSensitivity)\r\n rv.allocationSensitivity = deserializeSensitivityVar(dto.allocationSensitivity)\r\n else if (dto.allocation)\r\n rv.allocationSensitivity = deserializeSensitivityVar(dto.allocation)\r\n else\r\n rv.allocationSensitivity = deserializeSensitivityVar(100)\r\n if (dto.maxStorageCommitmentSensitivity != undefined && dto.maxStorageCommitmentSensitivity.values.length > 0)\r\n rv.maxStorageCommitmentSensitivity = deserializeSensitivityVar(dto.maxStorageCommitmentSensitivity)\r\n else\r\n rv.maxStorageCommitmentSensitivity = rv.allocationSensitivity\r\n if (dto.pvAllocationSensitivity != undefined && dto.pvAllocationSensitivity.values.length > 0)\r\n rv.pvAllocationSensitivity = deserializeSensitivityVar(dto.pvAllocationSensitivity)\r\n else\r\n rv.pvAllocationSensitivity = rv.allocationSensitivity\r\n if (dto.windAllocationSensitivity != undefined && dto.windAllocationSensitivity.values.length > 0)\r\n rv.windAllocationSensitivity = deserializeSensitivityVar(dto.windAllocationSensitivity)\r\n else\r\n rv.windAllocationSensitivity = rv.allocationSensitivity\r\n return rv\r\n}\r\n\r\nfunction deserializeRegulationMarket(dto?: RegulationMarketDto, energyMarkets?: EnergyMarket[]): RegulationMarket {\r\n let rv = new RegulationMarket()\r\n if (!dto || !energyMarkets) return rv\r\n\r\n rv.name = dto.name\r\n rv.abbreviation = dto.abbreviation\r\n rv.useRegUp = dto.useRegUp\r\n rv.regUpPriceYear = dto.regUpPriceYear\r\n rv.regUpPrice = deserializeTimeSeries(dto.regUpPrice)\r\n if (dto.maxCommitmentRegUp)\r\n rv.maxCommitmentRegUp = deserializeSensitivityVar(dto.maxCommitmentRegUp)\r\n if (dto.minRegUpPrice)\r\n rv.minRegUpPrice = deserializeSensitivityVar(dto.minRegUpPrice)\r\n\r\n rv.useRegDown = dto.useRegDown\r\n rv.regDownPriceYear = dto.regDownPriceYear\r\n rv.regDownPrice = deserializeTimeSeries(dto.regDownPrice)\r\n if (dto.maxCommitmentRegDown)\r\n rv.maxCommitmentRegDown = deserializeSensitivityVar(dto.maxCommitmentRegDown)\r\n if (dto.minRegDownPrice)\r\n rv.minRegDownPrice = deserializeSensitivityVar(dto.minRegDownPrice)\r\n\r\n rv.useEnergyPrice = dto.useEnergyPrice\r\n rv.energyPriceYear = dto.energyPriceYear\r\n const x = energyMarkets.find(m => m.kind === dto.energyMarketKind)\r\n if (!x) {\r\n rv.energyMarket = energyMarkets[0]\r\n } else {\r\n rv.energyMarket = x\r\n }\r\n \r\n rv.throughputPercentage = dto.throughputPercentage?.values.length > 0 ? deserializeSensitivityVar(dto.throughputPercentage) : deserializeSensitivityVar(100)\r\n return rv\r\n}\r\n\r\nfunction deserializeCapacityMarket(dto: CapacityMarketDto, energyMarkets: EnergyMarket[], lifetime: number, fileVersion: number): CapacityMarket {\r\n let rv = new CapacityMarket(lifetime)\r\n rv.schedule = dto.schedule\r\n rv.price = deserializeMonthlyVar(dto.capacityPrice)\r\n rv.capacityPriceSensitivity = dto.capacityPriceSensitivity == undefined ? deserializeSensitivityVar(1) : deserializeSensitivityVar(dto.capacityPriceSensitivity)\r\n rv.priceUnit = dto.priceUnit ? dto.priceUnit as PriceUnit : '$/kW-mo' as PriceUnit\r\n rv.capacityEscalator = deserializeMultiYearVar(dto.capacityPriceEscalator)\r\n rv.energyEscalator = deserializeMultiYearVar(dto.energyPriceEscalator)\r\n rv.eventKind = dto.eventKind as RaEventKind\r\n\r\n rv.energyPriceKind = dto.energyPriceKind as EnergyPriceKind\r\n if (rv.energyPriceKind === 'market') {\r\n const x = energyMarkets.find(m => m.kind === dto.energyMarketKind)\r\n if (!x) {\r\n rv.energyPriceKind = 'flat'\r\n rv.energyMarket = null\r\n } else {\r\n rv.energyMarket = x\r\n }\r\n }\r\n rv.energyPrice = dto.energyPrice\r\n\r\n rv.totalCallsPerYear = dto.totalCallsPerYear\r\n rv.averageCallDuration = dto.callDuration\r\n rv.numberOfHighestPriceDays = dto.numberOfHighestPriceDays ?? 0\r\n rv.allocatedStorageCapacity = dto.allocatedStorageCapacity ?? 0\r\n\r\n rv.events.splice(0, rv.events.length,\r\n ...dto.events.map(x => new RaEvent({ date: deserializeDate(x.date), duration: x.duration })))\r\n return rv\r\n}\r\n\r\n\r\nfunction deserializeContract(dto: ContractDto, lifetime: number, fileVersion: number): Contract {\r\n let rv = new Contract(lifetime)\r\n rv.energyPriceKind = dto.energyPriceKind as ContractEnergyPriceKind\r\n rv.energyPriceSchedule.scheduleRates.splice(0, rv.energyPriceSchedule.scheduleRates.length,\r\n ...dto.energyPriceRates.map(x => new ScheduleRate({\r\n color: x.color,\r\n value: x.value,\r\n })))\r\n rv.energyPriceSchedule.schedule = dto.energyPriceSchedule\r\n rv.energyPriceTimeSeries = deserializeTimeSeries(dto.energyPriceTimeSeries)\r\n rv.energyPriceEscalator = deserializeMultiYearVar(dto.energyPriceEscalator)\r\n\r\n rv.obligationKind = dto.obligationKind as ContractObligationKind\r\n rv.obligations.splice(0, rv.obligations.length,\r\n ...dto.obligations.map(x => new ContractObligationRequirement({\r\n dayKind: x.dayKind as DayKind,\r\n startDate: deserializeDate(x.startDate),\r\n endDate: deserializeDate(x.endDate),\r\n startHour: x.startHour,\r\n endHour: x.endHour,\r\n value: x.value,\r\n obligationTimeSeries: deserializeTimeSeries(x.customData)\r\n })))\r\n rv.dailyObligationsTimeSeries = deserializeTimeSeries(dto.dailyObligationsTimeSeries)\r\n\r\n rv.obligationTimeSeries = deserializeTimeSeries(dto.obligationTimeSeries)\r\n rv.contractedSolarCapacity = dto.contractedSolarCapacity ?? 0\r\n rv.contractedWindCapacity = dto.contractedWindCapacity ?? 0\r\n rv.contractedStorageCapacity = dto.contractedStorageCapacity ?? 0\r\n rv.competeWithWholesaleMarket = dto.competeWithWholesaleMarket ?? false\r\n return rv\r\n}\r\n\r\n\r\nfunction deserializeSolar(x: SolarDto): Solar {\r\n let rv = new Solar()\r\n rv.kind = x.solarKind ?? ComponentKind.homer\r\n rv.customSize = x.customSize ?? 1\r\n rv.customName = x.customName ?? ''\r\n rv.customAbbreviation = x.customAbbreviation ?? ''\r\n rv.customData = deserializeTimeSeries(x.customData)\r\n rv.sizing = deserializeSizingVar(x.size)\r\n rv.cost = deserializeCostTable(x.cost)\r\n rv.omEscalator = deserializeMultiYearVar(x.omEscalator)\r\n rv.degradation = deserializeMultiYearVar(x.degradation)\r\n rv.hasConverter = x.hasConverter\r\n rv.converter = deserializeConverter(x.converter)\r\n rv.deratingFactor = x.deratingFactor?.values.length > 0 ? deserializeSensitivityVar(x.deratingFactor) : deserializeSensitivityVar(100)\r\n return rv\r\n}\r\n\r\n\r\n\r\nfunction deserializeWind(x: WindDto): Wind {\r\n let rv = new Wind()\r\n rv.kind = x.kind as WindTurbineKind ?? 'library' as WindTurbineKind\r\n rv.specs = x.specs\r\n rv.model = x.model\r\n rv.customSizing = !Number.isNaN(x.customSize) && Number(x.customSize) > 0 ? deserializeSizingVar({ sizingKind: SizingKind.absolute, values: [Number(x.customSize)] }) : deserializeSizingVar(x.customSizing)\r\n rv.data = deserializeTimeSeries(x.data)\r\n rv.sizing = deserializeSizingVar(x.size)\r\n rv.cost = deserializeCostTable(x.cost)\r\n rv.hubHeight = deserializeSensitivityVar(x.hubHeight)\r\n rv.lifetime = deserializeSensitivityVar(x.lifetime)\r\n rv.availabilityLosses = x.availabilityLosses\r\n rv.performanceLosses = x.performanceLosses\r\n rv.environmentalLosses = x.environmentalLosses\r\n rv.wakeEffectLosses = x.wakeEffectLosses\r\n rv.electricalLosses = x.electricalLosses\r\n rv.curtailmentLosses = x.curtailmentLosses\r\n rv.otherLosses = x.otherLosses\r\n rv.altitude = x.altitude\r\n rv.anemometerHeight = x.anemometerHeight\r\n rv.customName = x.customName ?? ''\r\n rv.customData = x.customData ?? ''\r\n rv.omEscalator = deserializeMultiYearVar(x.omEscalator)\r\n return rv\r\n}\r\n\r\n\r\nfunction deserializeStorage(x: StorageDto, energyMarkets: EnergyMarket[], fileVersion: number): Storage {\r\n let rv = new Storage()\r\n rv.kind = x.kind as StorageKind ?? 'library' as StorageKind\r\n rv.specs = x.specs\r\n rv.model = x.model\r\n rv.customName = x.customName ?? ''\r\n rv.customAbbreviation = x.customAbbreviation ?? ''\r\n rv.customData = x.customData ?? ''\r\n rv.sizing = deserializeSizingVar(x.size)\r\n rv.cost = deserializeCostTable(x.cost)\r\n rv.omEscalator = deserializeMultiYearVar(x.omEscalator)\r\n rv.augmentationCost = x.augmentationCost ?? 0\r\n rv.augmentationDegradationLimit = deserializeSensitivityVar(x.augmentationDegradationLimit)\r\n rv.augmentationPriceDecline = deserializeMultiYearVar(x.augmentationPriceDecline)\r\n rv.optimizeCycleLimitPerDay = x.optimizeCycleLimitPerDay ?? false\r\n rv.useCycleLimitPerDay = x.useCycleLimitPerDay ?? false\r\n rv.cycleLimitPerDay = x.cycleLimitPerDay ? deserializeSensitivityVar(x.cycleLimitPerDay) : deserializeSensitivityVar(1)\r\n\r\n rv.useAuxiliaryLoad = x.useAuxiliaryLoad ?? false\r\n rv.auxiliaryLoadSensitivity = x.auxiliaryLoadSensitivity ? deserializeSensitivityVar(x.auxiliaryLoadSensitivity) : deserializeSensitivityVar(1)\r\n rv.storageServesAuxiliaryLoad = x.storageServesAuxiliaryLoad ?? false\r\n rv.useAuxiliaryLoadFlatPrice = x.useAuxiliaryLoadFlatPrice ?? true\r\n rv.auxiliaryLoadFlatPrice = x.auxiliaryLoadFlatPrice ?? 1\r\n if (!rv.useAuxiliaryLoadFlatPrice) {\r\n const mkt = energyMarkets.find(m => m.kind === x.energyMarketKind)\r\n if (!mkt) {\r\n rv.useAuxiliaryLoadFlatPrice = true\r\n rv.energyMarket = null\r\n } else {\r\n rv.energyMarket = mkt\r\n }\r\n }\r\n rv.auxiliaryLoadPriceMultiYear = deserializeMultiYearVar(x.auxiliaryLoadPriceMultiYear)\r\n\r\n rv.hasConverter = x.hasConverter\r\n rv.converter = deserializeConverter(x.converter)\r\n return rv\r\n}\r\n\r\n\r\nfunction deserializeConverter(x?: ConverterDto): Inverter {\r\n if (!x) { return new Inverter() }\r\n let rv = new Inverter()\r\n rv.sizing = deserializeSizingVar(x.size)\r\n rv.cost = deserializeCostTable(x.cost)\r\n rv.omEscalator = deserializeMultiYearVar(x.omEscalator)\r\n rv.replacementEscalator = deserializeMultiYearVar(x.replacementEscalator)\r\n rv.efficiency = deserializeSensitivityVar(x.efficiency)\r\n rv.lifetime = deserializeSensitivityVar(x.lifetime)\r\n return rv\r\n}\r\n\r\n\r\nfunction deserializeResource(x?: ResourceDto): Resource {\r\n let rv = new Resource()\r\n if (x) {\r\n rv.kind = x.kind as ResourceKind\r\n rv.data = deserializeTimeSeries(x.data)\r\n rv.scale = deserializeSensitivityVar(x.scale)\r\n }\r\n return rv\r\n}\r\n\r\n\r\nfunction deserializeIncentive(x: IncentiveDto): Incentive {\r\n switch (x.kind) {\r\n case 'itc': {\r\n let rv = new InvestmentTaxCredit()\r\n rv.solar = x.solar\r\n rv.storage = x.storage\r\n rv.wind = x.wind\r\n if (x.eligiblePercent) rv.eligiblePercent = x.eligiblePercent\r\n if (x.itcPercent) rv.itcPercent = x.itcPercent\r\n return rv\r\n }\r\n case 'macrs': {\r\n let rv = new Macrs()\r\n rv.solar = x.solar\r\n rv.storage = x.storage\r\n rv.wind = x.wind\r\n if (x.eligiblePercent) rv.eligiblePercent = x.eligiblePercent\r\n if (x.marginalTaxPercent) rv.marginalTaxPercent = x.marginalTaxPercent\r\n return rv\r\n }\r\n case 'bonus': {\r\n let rv = new BonusDepreciation()\r\n rv.solar = x.solar\r\n rv.storage = x.storage\r\n rv.wind = x.wind\r\n if (x.eligiblePercent) rv.eligiblePercent = x.eligiblePercent\r\n if (x.marginalTaxPercent) rv.marginalTaxPercent = x.marginalTaxPercent\r\n if (x.bonusPercent) rv.bonusPercent = x.bonusPercent\r\n return rv\r\n }\r\n case 'prod': {\r\n let rv = new ProductionBased()\r\n rv.solar = x.solar\r\n rv.storage = x.storage\r\n rv.wind = x.wind\r\n if (x.credit) rv.credit = x.credit\r\n if (x.maxCredit) rv.maxCredit = x.maxCredit\r\n if (x.useDuration) rv.useDuration = x.useDuration\r\n if (x.duration) rv.duration = x.duration\r\n if (x.useCreditTaxPercent) rv.useCreditTaxPercent = x.useCreditTaxPercent\r\n if (x.creditTaxPercent) rv.creditTaxPercent = x.creditTaxPercent\r\n return rv\r\n }\r\n default:\r\n throw new Error()\r\n }\r\n}\r\n\r\n\r\nfunction deserializeTimeSeries(x?: TimeSeriesDto): TimeSeries {\r\n let rv = new TimeSeries()\r\n if (x?.data.length)\r\n rv.setData(x?.data, x?.year ?? 2007)\r\n return rv\r\n}\r\n\r\nfunction deserializeMultiYearTimeSeries(x?: MultiYearTimeSeriesDto): MultiYearTimeSeries {\r\n let rv = new MultiYearTimeSeries()\r\n if (x?.data.length)\r\n rv.setData(x?.data, x?.year ?? 2007, x.timeSeriesFileBaseName, x.projectYearsValid)\r\n return rv\r\n}\r\n\r\nexport function deserializeSensitivityVar(dto: SensitivityVarDto | number): SensitivityVar {\r\n let rv = new SensitivityVar()\r\n if (typeof dto === 'number') {\r\n rv.values.splice(0, rv.values.length, new SensitivityItem({ value: dto }))\r\n } else {\r\n rv.values.splice(0, rv.values.length, ...dto.values.map(x => new SensitivityItem({ value: x })))\r\n }\r\n if (rv.values.length === 0) { rv.values.push(new SensitivityItem()) }\r\n return rv\r\n}\r\n\r\n\r\nfunction deserializeMultiYearVar(dto?: MultiYearVarDto): MultiYearVar {\r\n let rv = new MultiYearVar()\r\n if (!dto) return rv\r\n rv.enabled = dto.enabled\r\n rv.multiYearKind = dto.multiYearKind\r\n rv.linearValue = dto.linearValue\r\n rv.customValues.splice(0, rv.customValues.length,\r\n ...dto.customValues.map(x => new MultiYearItem({ year: x.year, value: x.value })))\r\n return rv\r\n}\r\n\r\n\r\nexport function deserializeSizingVar(dto: SizingVarDto): Sizing {\r\n let rv = new Sizing()\r\n rv.kind = dto.sizingKind as SizingKind\r\n const values = dto.values.map(x => new SizeItem({ value: x }))\r\n if (dto.sizingKind === SizingKind.absolute)\r\n rv.absoluteValues.splice(0, rv.absoluteValues.length, ...values)\r\n else if (dto.sizingKind === SizingKind.relative)\r\n rv.relativeValues.splice(0, rv.relativeValues.length, ...values)\r\n return rv\r\n}\r\n\r\n\r\nfunction deserializeMonthlyVar(dto: MonthlyVarDto): MonthlyVar {\r\n let rv = new MonthlyVar()\r\n rv.values.splice(0, rv.values.length,\r\n ...dto.values.map((x, index) => new MonthlyVarItem(index, { value: x })))\r\n rv.average = dto.values.length > 0 ? dto.values[0] : 0\r\n return rv\r\n}\r\n\r\n\r\nfunction deserializeCostTable(x: CostTableDto): CostTable {\r\n let rv = new CostTable()\r\n rv.costTableType = x.costTableKind as CostTableType\r\n rv.simple = deserializeSimpleCostTable(x.simpleCostTable)\r\n rv.complex = deserializeComplexCostTable(x.complexCostTable)\r\n return rv\r\n}\r\n\r\n\r\nfunction deserializeSimpleCostTable(x?: SimpleCostTableDto): SimpleCostTable {\r\n if (!x) { return new SimpleCostTable() }\r\n let rv = new SimpleCostTable()\r\n\r\n const base = new CostSensitivityItem({ capital: x.capital, operating: x.operating, replacement: x.replacement, augmentation: x.augmentation })\r\n\r\n const n = Math.min(\r\n x.capitalSensitivity.values.length,\r\n x.operatingSensitivity.values.length,\r\n x.replacementSensitivity.values.length)\r\n rv.items.splice(0)\r\n rv.items.push(base)\r\n for (let i = 1; i < n; i++) {\r\n rv.items.push(new CostSensitivityItem({\r\n capital: x.capitalSensitivity.values[i] * base.capital,\r\n operating: x.operatingSensitivity.values[i] * base.operating,\r\n replacement: x.replacementSensitivity.values[i] * base.replacement,\r\n augmentation: x.replacementSensitivity.values[i] * base.augmentation,\r\n }))\r\n }\r\n return rv\r\n}\r\n\r\n\r\nexport function deserializeComplexCostTable(dto?: ComplexCostTableDto): ComplexCostTable {\r\n if (!dto) { return new ComplexCostTable() }\r\n let rv = new ComplexCostTable()\r\n rv.directCapital.items.splice(0, rv.directCapital.items.length,\r\n ...dto.directCapital.map(x => new ComplexCostItem({ name: x.name, unit: x.units as CostUnit, value: x.value })))\r\n rv.indirectCapital.items.splice(0, rv.indirectCapital.items.length,\r\n ...dto.indirectCapital.map(x => new ComplexCostItem({ name: x.name, unit: x.units as CostUnit, value: x.value })))\r\n rv.operating.items.splice(0, rv.operating.items.length,\r\n ...dto.operating.map(x => new ComplexCostItem({ name: x.name, unit: x.units as CostUnit, value: x.value })))\r\n rv.replacement.items.splice(0, rv.replacement.items.length,\r\n ...dto.replacement.map(x => new ComplexCostItem({ name: x.name, unit: x.units as CostUnit, value: x.value })))\r\n return rv\r\n}\r\n\r\n\r\nfunction deserializeDate(x: string): Date {\r\n // translate back to user time zone from UTC\r\n const server = new Date(x)\r\n const offsetMs = server.getTimezoneOffset() * 60 * 1000\r\n return new Date(server.getTime() + offsetMs)\r\n}\r\n\r\nfunction deserializeRateSchedule(rate?: ScheduleRateDto[], schedule?: number[][]): RateSchedule {\r\n let rv = new RateSchedule()\r\n rv.schedule = schedule != null && schedule.length > 0 ? schedule : defaultSchedule()\r\n if (rate != undefined && rate.length > 0) {\r\n rv.scheduleRates.splice(0, rv.scheduleRates.length,\r\n ...rate.map(x => new ScheduleRate({\r\n color: x.color,\r\n value: x.value,\r\n }))\r\n )\r\n }\r\n return rv\r\n}\r\n\r\nfunction maintainCompatibility(dto: InputsDto) {\r\n if (dto.version === undefined || dto.version < 2) {\r\n dto.solar.forEach(x => {\r\n x.solarKind = x.kind === undefined || x.kind === '' ? x.solarKind : x.kind === \"custom\" ? ComponentKind.custom : ComponentKind.homer;\r\n x.size.sizingKind = convertSizingKind(x.size)\r\n x.omEscalator.multiYearKind = convertMultiYearKind(x.omEscalator.multiYearKind, x.omEscalator.kind)\r\n x.degradation.multiYearKind = convertMultiYearKind(x.degradation.multiYearKind, x.degradation.kind)\r\n x.cost.costTableKind = convertCostTableKind(x.cost)\r\n if (x.converter) {\r\n x.converter.size.sizingKind = convertSizingKind(x.converter.size)\r\n x.converter.omEscalator.multiYearKind = convertMultiYearKind(x.converter.omEscalator.multiYearKind, x.converter.omEscalator.kind)\r\n x.converter.replacementEscalator.multiYearKind = convertMultiYearKind(x.converter.replacementEscalator.multiYearKind, x.converter.replacementEscalator.kind)\r\n x.converter.cost.costTableKind = convertCostTableKind(x.converter.cost)\r\n }\r\n })\r\n dto.wind.forEach(x => {\r\n //x.solarKind = x.kind !== undefined && x.kind === \"custom\" ? ComponentKind.custom : x.solarKind;\r\n x.size.sizingKind = convertSizingKind(x.size)\r\n x.customSizing.sizingKind = convertSizingKind(x.customSizing)\r\n x.omEscalator.multiYearKind = convertMultiYearKind(x.omEscalator.multiYearKind, x.omEscalator.kind)\r\n x.cost.costTableKind = convertCostTableKind(x.cost)\r\n })\r\n dto.storage.forEach(x => {\r\n //x.solarKind = x.kind !== undefined && x.kind === \"custom\" ? ComponentKind.custom : x.solarKind;\r\n x.size.sizingKind = convertSizingKind(x.size)\r\n if (x.converter !== undefined)\r\n x.converter.size.sizingKind = convertSizingKind(x.converter.size)\r\n x.omEscalator.multiYearKind = convertMultiYearKind(x.omEscalator.multiYearKind, x.omEscalator.kind)\r\n x.augmentationPriceDecline.multiYearKind = convertMultiYearKind(x.augmentationPriceDecline.multiYearKind, x.augmentationPriceDecline.kind)\r\n if (x.auxiliaryLoadPriceMultiYear !== undefined)\r\n x.auxiliaryLoadPriceMultiYear.multiYearKind = convertMultiYearKind(x.auxiliaryLoadPriceMultiYear.multiYearKind, x.auxiliaryLoadPriceMultiYear.kind)\r\n x.cost.costTableKind = convertCostTableKind(x.cost)\r\n if (x.converter) {\r\n x.converter.size.sizingKind = convertSizingKind(x.converter.size)\r\n x.converter.omEscalator.multiYearKind = convertMultiYearKind(x.converter.omEscalator.multiYearKind, x.converter.omEscalator.kind)\r\n x.converter.replacementEscalator.multiYearKind = convertMultiYearKind(x.converter.replacementEscalator.multiYearKind, x.converter.replacementEscalator.kind)\r\n x.converter.cost.costTableKind = convertCostTableKind(x.converter.cost)\r\n }\r\n })\r\n dto.energyMarkets.forEach(x => {\r\n x.priceEscalator.multiYearKind = convertMultiYearKind(x.priceEscalator.multiYearKind, x.priceEscalator.kind)\r\n })\r\n dto.contracts.forEach(x => {\r\n x.energyPriceEscalator.multiYearKind = convertMultiYearKind(x.energyPriceEscalator.multiYearKind, x.energyPriceEscalator.kind)\r\n })\r\n dto.capacityMarkets.forEach(x => {\r\n x.capacityPriceEscalator.multiYearKind = convertMultiYearKind(x.capacityPriceEscalator.multiYearKind, x.capacityPriceEscalator.kind)\r\n x.energyPriceEscalator.multiYearKind = convertMultiYearKind(x.energyPriceEscalator.multiYearKind, x.energyPriceEscalator.kind)\r\n })\r\n dto.incentives.forEach(x => {\r\n\r\n })\r\n if (dto.converter !== undefined) {\r\n dto.converter.size.sizingKind = convertSizingKind(dto.converter.size)\r\n dto.converter.omEscalator.multiYearKind = convertMultiYearKind(dto.converter.omEscalator.multiYearKind, dto.converter.omEscalator.kind)\r\n dto.converter.replacementEscalator.multiYearKind = convertMultiYearKind(dto.converter.replacementEscalator.multiYearKind, dto.converter.replacementEscalator.kind)\r\n dto.converter.cost.costTableKind = convertCostTableKind(dto.converter.cost)\r\n }\r\n dto.version = 1\r\n }\r\n function convertMultiYearKind(x: MultiYearKind, y: string | undefined) {\r\n return y === undefined || y === '' ? x : y === 'custom' ? MultiYearKind.custom : MultiYearKind.linear\r\n }\r\n function convertCostTableKind(x: CostTableDto) {\r\n return x.kind === undefined || x.kind === '' ? x.costTableKind : x.kind === 'complex' ? CostTableType.complex : CostTableType.simple\r\n }\r\n function convertSizingKind(x: SizingVarDto) {\r\n return x.kind === undefined || x.kind === '' ? x.sizingKind : x.kind === 'relative' ? SizingKind.relative : SizingKind.absolute\r\n }\r\n}\r\n","import {v4} from 'uuid'\r\nimport {action, computed, makeObservable, observable} from 'mobx'\r\nimport {defaultSchedule, Schedule} from 'components/project/model/Schedule'\r\nimport {MultiYearVar} from 'components/project/model/MultiYearVar'\r\nimport {EnergyMarket} from 'components/project/model/EnergyMarket'\r\nimport { SensitivityVar } from 'components/project/model/SensitivityVar'\r\n\r\nexport type RaEventKind = 'random' | 'scheduled'\r\n\r\nexport type EnergyPriceKind = 'market' | 'flat'\r\n\r\nexport type PriceUnit = '$/kW-yr' | '$/kW-mo'\r\n\r\n\r\nexport class RaEvent {\r\n id: string = v4()\r\n constructor(init: Partial = {}) {\r\n Object.assign(this, init)\r\n makeObservable(this)\r\n }\r\n\r\n @observable date: Date = new Date() // start date-time\r\n @observable duration: number = 0 // (hours)\r\n\r\n @computed get begin(): Date {\r\n return this.date\r\n }\r\n @computed get end(): Date {\r\n const ms = this.duration * 60 * 60 * 1000\r\n return new Date(this.date.getTime() + ms)\r\n }\r\n}\r\n\r\n\r\nconst raEventOverlap = (a: RaEvent, b: RaEvent): boolean => {\r\n const ab = a.end.getTime() <= b.begin.getTime()\r\n const ba = b.end.getTime() <= a.begin.getTime()\r\n return !ab && !ba\r\n}\r\n\r\nconst months: string[] = Array(12).fill(null).map((_, index) =>\r\n new Date(2007, index, 1).toLocaleString('en', {month: 'long'}))\r\n\r\n\r\nexport class MonthlyVarItem {\r\n id: string = v4()\r\n\r\n constructor(public index: number, init: Partial = {}) {\r\n Object.assign(this, init)\r\n makeObservable(this)\r\n }\r\n\r\n @observable value: number = 0\r\n @action setValue(x: number) { this.value = x }\r\n get month(): string { return months[this.index] }\r\n}\r\n\r\n\r\nexport class MonthlyVar {\r\n constructor() { makeObservable(this) }\r\n\r\n @observable values: MonthlyVarItem[] = Array(12).fill(null).map((_, index) => new MonthlyVarItem(index))\r\n @observable average: number = 0\r\n\r\n @action setAverage(x: number) {\r\n for (const value of this.values) { value.setValue(x) }\r\n this.average = x\r\n }\r\n\r\n @action setValue(month: number, x: number) {\r\n this.values[month].setValue(x)\r\n this.average = this.values.map(x => x.value).reduce((x, acc) => x + acc) / 12\r\n }\r\n}\r\n\r\n\r\nexport class CapacityMarket {\r\n constructor(lifetime: number) {\r\n makeObservable(this)\r\n this.capacityEscalator.updateLifetime(lifetime)\r\n this.energyEscalator.updateLifetime(lifetime)\r\n }\r\n @observable id: string = v4()\r\n @observable schedule: Schedule = defaultSchedule()\r\n\r\n @observable priceUnit: PriceUnit = '$/kW-yr'\r\n @observable price: MonthlyVar = new MonthlyVar()\r\n @observable capacityEscalator: MultiYearVar = new MultiYearVar()\r\n @observable energyEscalator: MultiYearVar = new MultiYearVar()\r\n @observable eventKind: RaEventKind = 'random'\r\n\r\n @observable energyPriceKind: EnergyPriceKind = 'flat'\r\n @observable energyMarket: EnergyMarket | null = null\r\n @observable energyPrice: number = 20\r\n\r\n @observable allocatedStorageCapacity: number = 100;\r\n // random\r\n @observable totalCallsPerYear = 10 // (#)\r\n @observable averageCallDuration = 4 // (hours)\r\n @observable numberOfHighestPriceDays = 10 // (#)\r\n\r\n // scheduled\r\n @observable events: RaEvent[] = observable([])\r\n\r\n // capacity price sensitivity\r\n @observable capacityPriceSensitivity: SensitivityVar = new SensitivityVar(1)\r\n @action setSchedule(x: Schedule) { this.schedule = x }\r\n\r\n @action setEventKind(x: RaEventKind) { this.eventKind = x }\r\n\r\n @action setTotalCallsPerYear(x: number) { this.totalCallsPerYear = x }\r\n @action setAverageCallDuration(x: number) { this.averageCallDuration = x }\r\n @action setNumberOfHighestPriceDays(x: number) { this.numberOfHighestPriceDays = x }\r\n\r\n @action addEvent(date: Date, duration: number) {\r\n const event = new RaEvent()\r\n event.date = date\r\n event.duration = duration\r\n this.events.push(event)\r\n }\r\n\r\n @action removeEvent(id: string) {\r\n const i = this.events.findIndex(x => x.id === id)\r\n if (i === -1) { return }\r\n this.events.splice(i, 1)\r\n }\r\n @action setPriceUnit(x: string) {\r\n this.priceUnit = x as PriceUnit\r\n }\r\n\r\n @action setEnergyPriceKind(kind: EnergyPriceKind) { this.energyPriceKind = kind }\r\n @action setEnergyPrice(x: number) { this.energyPrice = x }\r\n @action setEnergyMarket(x: EnergyMarket | null) { this.energyMarket = x }\r\n\r\n @action setAllocatedStorageCapacity(x: number) { this.allocatedStorageCapacity = x }\r\n * getOverlappingEvents() {\r\n for (let a = 0; a < this.events.length; a++)\r\n for (let b = 0; b < a; b++)\r\n if (raEventOverlap(this.events[a], this.events[b]))\r\n yield [this.events[a], this.events[b]]\r\n }\r\n \r\n * getMidNightSpanEvents() {\r\n for (let a = 0; a < this.events.length; a++)\r\n if ((this.events[a].date.getHours() + this.events[a].duration) >= 24)\r\n yield [this.events[a]]\r\n }\r\n * getMidNightSpanRAEvents() {\r\n var isSpanned = false;\r\n for (var a = 0; a < this.schedule.length - 1; a++) {\r\n for (var j = 0; j < this.schedule[a].length - 1; j++) {\r\n if (isSpanned) {\r\n break;\r\n }\r\n if (this.schedule[a][j] && (j + this.averageCallDuration > 23)) {\r\n yield [{ duration: this.averageCallDuration, hour: j }]\r\n isSpanned = true\r\n }\r\n }\r\n }\r\n }\r\n * getShorterRAEvents() {\r\n var start = 0, end = 0, initial = 0;\r\n for (var a = 0; a < this.schedule.length - 1; a++) {\r\n for (var j = 0; j < this.schedule[a].length - 1; j++) {\r\n if (this.schedule[a][j]) {\r\n start = start ? start : j;\r\n end = (start !== j && !initial) ? j : end;\r\n }\r\n if ((start !== j) && j >= 1 && (!this.schedule[a][j + 1])) {\r\n if ((end) && ((end - start) < (this.averageCallDuration - 1))) {\r\n initial = initial + 1;\r\n break;\r\n }\r\n else if (this.schedule[a][j + 2]) {\r\n start = j + 2;\r\n end = j + 2;\r\n }\r\n }\r\n }\r\n if (((end - start) < (this.averageCallDuration - 1))) {\r\n if (end || this.schedule[a][0]) {\r\n yield [a];\r\n break\r\n }\r\n }\r\n if (initial) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n @computed get hasEmptySchedule(): boolean { return this.schedule.every(x => x.every(x => !x)) }\r\n}\r\n","import {action, computed, makeObservable, observable} from 'mobx'\r\nimport {v4} from 'uuid'\r\nimport {TimeSeries} from 'components/project/model/TimeSeries'\r\nimport {SensitivityVar} from 'components/project/model/SensitivityVar'\r\nimport {MultiYearVar} from 'components/project/model/MultiYearVar'\r\nimport { MultiYearTimeSeries } from 'components/project/model/MultiYearTimeSeries'\r\n\r\nexport type EnergyMarketKind = 'dam' | 'fmm' | 'rtm'\r\n\r\nexport const allEnergyMarkets: EnergyMarketKind[] = ['dam', 'fmm', 'rtm']\r\n\r\nexport const getEnergyMarketKindLabel = (kind: EnergyMarketKind) => {\r\n switch (kind) {\r\n case 'dam':\r\n return 'Day-ahead'\r\n case 'fmm':\r\n return 'Fifteen-minute'\r\n case 'rtm':\r\n return 'Real-time'\r\n }\r\n}\r\n\r\n\r\nexport class EnergyMarket {\r\n constructor(lifetime: number) {\r\n makeObservable(this)\r\n this.priceEscalator.updateLifetime(lifetime)\r\n }\r\n id: string = v4()\r\n\r\n @observable kind: EnergyMarketKind = 'dam'\r\n @observable useMultiYearPrice: boolean = false\r\n @observable price: TimeSeries = new TimeSeries()\r\n @observable multiYearPrice: MultiYearTimeSeries[] = new Array()\r\n @observable priceAverage: SensitivityVar = new SensitivityVar() // ($/MWh)\r\n @observable priceEscalator: MultiYearVar = new MultiYearVar() // (%)\r\n @observable allocation: number = 100\r\n @observable allocationSensitivity: SensitivityVar = new SensitivityVar(100) // (%)\r\n @observable maxStorageCommitmentSensitivity: SensitivityVar = new SensitivityVar(100) // (%)\r\n @observable windAllocationSensitivity: SensitivityVar = new SensitivityVar(100) // (%)\r\n @observable pvAllocationSensitivity: SensitivityVar = new SensitivityVar(100) // (%)\r\n\r\n\r\n @computed get name(): string { return getEnergyMarketKindLabel(this.kind) }\r\n\r\n @action setAllocation(x: number) { this.allocation = x }\r\n\r\n @action setData(data: number[], year: number) {\r\n this.price.setData(data, year)\r\n const average = this.price.calculateAverage()\r\n this.priceAverage.setSingleValue(average)\r\n }\r\n\r\n //@action setMultiData(data)\r\n @action setUseMultiYearPrice(x: boolean) {this.useMultiYearPrice = x}\r\n}\r\n","import {v4} from 'uuid'\r\nimport {action, computed, makeObservable, observable} from 'mobx'\r\nimport {WindTurbineSpec} from 'services/api'\r\nimport {Sizing} from 'components/project/model/Sizing'\r\nimport {CostTable} from 'components/project/model/CostTable'\r\nimport {SensitivityVar} from 'components/project/model/SensitivityVar'\r\nimport { TimeSeries } from 'components/project/model/TimeSeries'\r\nimport { MultiYearVar } from './MultiYearVar'\r\n\r\n\r\nconst DEFAULT_WIND: string = '1 MW Turbine'\r\n\r\nexport type WindTurbineKind = 'library' | 'custom' | 'production'\r\n\r\n\r\nexport class Wind {\r\n id: string = v4()\r\n constructor() {\r\n makeObservable(this)\r\n }\r\n\r\n @observable kind: WindTurbineKind = 'library'\r\n @observable specs?: WindTurbineSpec\r\n\r\n // library\r\n @observable model: string = DEFAULT_WIND\r\n\r\n // custom\r\n @observable customName: string = ''\r\n @observable customData: string = ''\r\n\r\n @observable sizing: Sizing = new Sizing()\r\n @observable customSizing: Sizing = new Sizing(); //kW\r\n @observable cost: CostTable = new CostTable()\r\n @observable omEscalator: MultiYearVar = new MultiYearVar()\r\n @observable hubHeight: SensitivityVar = new SensitivityVar()\r\n @observable lifetime: SensitivityVar = new SensitivityVar(20)\r\n @observable data: TimeSeries = new TimeSeries()\r\n\r\n @action setSpecs(x: WindTurbineSpec) { this.specs = x }\r\n @action setModel(x: string) { this.model = x }\r\n @action setKind(x: WindTurbineKind) { this.kind = x }\r\n\r\n @action setCustomName(x: string) { this.customName = x }\r\n @action setCustomData(x: string) { this.customData = x }\r\n\r\n @observable availabilityLosses: number = 0 // %\r\n @observable performanceLosses: number = 0 // %\r\n @observable environmentalLosses: number = 0 // %\r\n @observable wakeEffectLosses: number = 0 // %\r\n @observable electricalLosses: number = 0 // %\r\n @observable curtailmentLosses: number = 0 // %\r\n @observable otherLosses: number = 0 // %\r\n\r\n @action setAvailabilityLosses(x: number) { this.availabilityLosses = x }\r\n @action setPerformanceLosses(x: number) { this.performanceLosses = x }\r\n @action setEnvironmentalLosses(x: number) { this.environmentalLosses = x }\r\n @action setWakeEffectLosses(x: number) { this.wakeEffectLosses = x }\r\n @action setElectricalLosses(x: number) { this.electricalLosses = x }\r\n @action setCurtailmentLosses(x: number) { this.curtailmentLosses = x }\r\n @action setOtherLosses(x: number) { this.otherLosses = x }\r\n\r\n @computed get totalLosses(): number {\r\n const factors = [\r\n this.availabilityLosses,\r\n this.performanceLosses,\r\n this.environmentalLosses,\r\n this.wakeEffectLosses,\r\n this.electricalLosses,\r\n this.curtailmentLosses,\r\n this.otherLosses,\r\n ]\r\n // combine loss factors multiplicatively (% -> *)\r\n const value = factors.reduce((acc, f) => (1.0 - f / 100.0) * acc, 1)\r\n return (1.0 - value) * 100.0\r\n }\r\n\r\n // wind resource details\r\n @observable altitude: number = 0 // m\r\n @observable anemometerHeight: number = 10 // m\r\n\r\n @action setAltitude(x: number) { this.altitude = x }\r\n @action setAnemometerHeight(x: number) { this.anemometerHeight = x }\r\n @action setCost(x: any) {\r\n this.cost.simple.items[0].capital = x[0].capitalCostDetail[0].unitCost;\r\n this.cost.simple.items[0].operating = x[0].operating;\r\n\r\n }\r\n @action setLifeTime(x: number) {\r\n this.lifetime.values[0].value = x;\r\n }\r\n\r\n @action setHubHeight(x: number) {\r\n this.hubHeight.values[0].value = x\r\n }\r\n @computed get isZero(): boolean { return this.sizing.onlyZero }\r\n\r\n estimateSimulations(): number {\r\n const sens =\r\n this.hubHeight.estimateSimulations() *\r\n this.lifetime.estimateSimulations()\r\n const size = this.sizing.estimateSimulations()\r\n const cost = this.cost.estimateSimulations()\r\n return sens * size * cost\r\n }\r\n}\r\n","import {action, makeObservable, observable} from 'mobx'\r\nimport {v4} from 'uuid'\r\nimport { TimeSeries } from './TimeSeries'\r\n\r\n\r\nexport type TimeSeriesState = 'blank' | 'ready'\r\n\r\n\r\nexport class MultiYearTimeSeries {\r\n constructor() { makeObservable(this) }\r\n id: string = v4()\r\n\r\n @observable price: TimeSeries = new TimeSeries()\r\n @observable timeSeriesFileBaseName: string = \"\"\r\n @observable projectYearsValid: boolean[] = []\r\n\r\n @action setData(data: number[], year: number, name: string, projectYearsValid: boolean[]) {\r\n this.price.setData(data, year)\r\n this.timeSeriesFileBaseName = name\r\n this.projectYearsValid = projectYearsValid\r\n }\r\n\r\n calculateAverage(): number {\r\n const sum = this.price.data.reduce((acc, x) => acc + x)\r\n const n = this.price.data.length === 0 ? 1 : this.price.data.length\r\n return sum / n\r\n }\r\n}\r\n","import { action, makeObservable, observable } from \"mobx\"\r\nimport { v4 } from \"uuid\"\r\nimport { EnergyMarket } from \"./EnergyMarket\"\r\nimport { SensitivityVar } from \"./SensitivityVar\"\r\nimport { TimeSeries } from \"./TimeSeries\"\r\n\r\nexport class RegulationMarket {\r\n id: string = v4()\r\n constructor() { makeObservable(this) }\r\n\r\n @observable name: string = ''\r\n @observable abbreviation: string = ''\r\n @observable useRegUp: boolean = false\r\n @observable useRegDown: boolean = false\r\n @observable regUpPriceYear: number = 2023\r\n @observable regDownPriceYear: number = 2023\r\n @observable regUpPrice: TimeSeries = new TimeSeries()\r\n @observable regDownPrice: TimeSeries = new TimeSeries()\r\n @observable maxCommitmentRegUp: SensitivityVar = new SensitivityVar(30) // (%)\r\n @observable maxCommitmentRegDown: SensitivityVar = new SensitivityVar(30) // (%)\r\n @observable minRegUpPrice: SensitivityVar = new SensitivityVar(0) // ($/MWh)\r\n @observable minRegDownPrice: SensitivityVar = new SensitivityVar(0) // ($/MWh)\r\n @observable useEnergyPrice: boolean = false\r\n @observable energyPriceYear: number = 2023\r\n //@observable energyPrice: TimeSeries = new TimeSeries()\r\n @observable throughputPercentage: SensitivityVar = new SensitivityVar(10) // (%)\r\n @observable energyMarket: EnergyMarket | null = null\r\n\r\n\r\n @action setName(x: string) { this.name = x }\r\n @action setAbbreviation(x: string) { this.abbreviation = x }\r\n @action setUseRegUp(x: boolean) { this.useRegUp = x }\r\n @action setUseRegDown(x: boolean) { this.useRegDown = x }\r\n @action setRegUpData(data: number[], year: number) {\r\n this.regUpPrice.setData(data, year)\r\n this.regUpPriceYear = year\r\n //const average = this.price.calculateAverage()\r\n //this.priceAverage.setSingleValue(average)\r\n } \r\n @action setRegDownData(data: number[], year: number) {\r\n this.regDownPrice.setData(data, year)\r\n this.regDownPriceYear = year\r\n }\r\n @action setUseEnergyPrice(x: boolean) { this.useEnergyPrice = x }\r\n @action setEnergyPriceYear(x: number) { this.energyPriceYear = x }\r\n //@action setEnergyData(data: number[], year: number) {\r\n // this.energyPrice.setData(data, year)\r\n // this.energyPriceYear = year\r\n //}\r\n @action setEnergyMarket(x: EnergyMarket | null) { this.energyMarket = x }\r\n\r\n}\r\n","import { action, makeObservable, observable, runInAction } from \"mobx\";\r\nimport api, { StorageCurveItem, StorageSpec } from \"../../services/api\";\r\nimport { ComplexCostTableDto, ConverterDto, CostTableDto, deserializeSensitivityVar, SensitivityVarDto, serializeSensitivityVar, SimpleCostTableDto, SizingKind, SizingVarDto } from \"../../services/inputs\";\r\nimport { ComplexCostItem, CostTable, CostTableType, CostUnit } from \"../project/model/CostTable\";\r\nimport { Inverter } from \"../project/model/Inverter\";\r\nimport { SensitivityItem, SensitivityVar } from \"../project/model/SensitivityVar\";\r\n\r\nexport class UserStorage {\r\n constructor() { makeObservable(this) }\r\n\r\n @observable specs: UserStorageClass | null = null\r\n\r\n @action async getUserStorage(id: string) {\r\n var spec = await api.getUserStorage(id!)\r\n runInAction(() => {\r\n this.specs = spec\r\n })\r\n }\r\n\r\n}\r\n\r\nexport class UserStorageClass {\r\n constructor() { makeObservable(this) }\r\n\r\n @observable id: string = \"\"\r\n @observable name: string = \"\"\r\n @observable abbreviation: string = \"\"\r\n @observable nominalCapacity: number = 0 // kWh\r\n @observable nominalPower: number = 0 // kW\r\n @observable maximumCapacity: number = 0 // Ah\r\n @observable nominalVoltage: number = 0 // V\r\n @observable chargeCurrent: number = 0 // A\r\n @observable rangeOfCharge: number = 0 // %\r\n @observable minimumStateOfCharge: number = 0 // %\r\n @observable estimatedLifetimeThroughput: number = 0 // kWh\r\n @observable lifetimeCurve: StorageCurveItem[] = []\r\n @observable chemistry: string = \"\" \r\n @observable manufacturer: string = \"\" \r\n @observable requiresOneMinuteTimestep: boolean = false\r\n @observable rateConstant: number = 0\r\n @observable capacityRatio: number = 0\r\n @observable effectiveSeriesResistance: number = 0\r\n @observable fittedD0: number = 0\r\n @observable fittedD1: number = 0\r\n @observable fittedD2: number = 0\r\n @observable fittedA: number = 0\r\n @observable fittedBeta: number = 0\r\n @observable arrheniusDegredationB: number = 0\r\n @observable arrheniusDegredationD: number = 0\r\n @observable capacityDegradationLimitForFitCyclelifetimeModel: number = 0\r\n @observable notes: string = \"\"\r\n @observable initialStateOfCharge: number = 0\r\n @observable useDedicatedConverter: boolean = false\r\n @observable capacityCurve: StorageCurveItem[] = []\r\n @observable useLifetimeCurve: boolean = false\r\n @observable applyMaxDischargeCurrent: boolean = false\r\n @observable applyMaxChargeCurrent: boolean = false\r\n @observable applyMaxChargeRate: boolean = false\r\n @observable maxDischargeCurrent: number = 0\r\n @observable maxChargeCurrent: number = 0\r\n @observable maxChargeRate: number = 0\r\n @observable otherLosses: number = 0\r\n @observable additiveEndOfLifeCalculation: boolean = false\r\n @observable degradationUsesNominalSoc: boolean = false\r\n @observable ignoreCapacityVsTemperatureInModel: boolean = false\r\n @observable capacityTemperatureCurve: StorageCurveItem[] = []\r\n @observable ignoreTemperatureEffectOnLifetime: boolean = false\r\n @observable simpleLifetimeInYears: number = 0\r\n @observable stringSize: number = 0\r\n @observable lifetimeTemperatureCurve: StorageCurveItem[] = []\r\n @observable maximumOperatingTemperature: number = 0\r\n @observable minimumOperatingTemperature: number = 0\r\n @observable mass: number = 0\r\n @observable fixedTemperature: number = 0\r\n @observable thermalH: number = 0\r\n @observable thermalCSpecific: number = 0\r\n @observable augmentationPrice: number = 0\r\n @observable augmentationDegradationLimitSensitivity: SensitivityVar = new SensitivityVar(0)\r\n @observable capacityDegradationLimitForFitLifetimeTemperatureModel: number = 0\r\n @observable dedicatedConverter: Inverter = new Inverter()\r\n @observable applyMinimumLifetime: boolean = false\r\n @observable minimumLifetime: number = 0\r\n @observable isAc: boolean = false\r\n @observable useFixedTemperature: boolean = false\r\n @observable costTable: CostTable = new CostTable()\r\n\r\n @action.bound setUserStorageName(x: string) { this.name = x }\r\n @action.bound setUserStorageAbbreviation(x: string) { this.abbreviation = x }\r\n @action.bound setUserStorageManufacturer(x: string) { this.manufacturer = x }\r\n @action.bound setUserStorageChemistry(x: string) { this.chemistry = x }\r\n @action.bound setUserStorageNotes(x: string) { this.notes = x }\r\n @action.bound setUserStorageRequiresOneMinuteTimestep(x: boolean) { this.requiresOneMinuteTimestep = x }\r\n @action.bound setUserStorageNominalVoltage(x: number) { this.nominalVoltage = x }\r\n @action.bound setUserStorageUseMaxChargeRate(x: boolean) { this.applyMaxChargeRate = x }\r\n @action.bound setUseDedicatedConverter(x: boolean) { this.useDedicatedConverter = x }\r\n @action.bound setUserStorageUseMaxChargeCurrent(x: boolean) { this.applyMaxChargeCurrent = x }\r\n @action.bound setUserStorageUseMaxDischargeCurrent(x: boolean) { this.applyMaxDischargeCurrent = x }\r\n @action.bound setUserStorageMaxChargeRate(x: number) { this.maxChargeRate = x }\r\n @action.bound setUserStorageMaxChargeCurrent(x: number) { this.maxChargeCurrent = x }\r\n @action.bound setUserStorageMaxDischargeCurrent(x: number) { this.maxDischargeCurrent = x }\r\n @action.bound setUserStorageAdditiveEndOfLifeCalculation(x: boolean) { this.additiveEndOfLifeCalculation = x }\r\n @action.bound setUserStorageDegradationUsesNominalSoc(x: boolean) { this.degradationUsesNominalSoc = x }\r\n @action.bound userStorageLifetimeCurveAddRow() { this.lifetimeCurve.push({ x: 0, y: 0 }) }\r\n @action.bound userStorageCapacityCurveAddRow() { this.capacityCurve.push({ x: 0, y: 0 }) }\r\n @action.bound userStorageCapacityTemperatureCurveAddRow() { this.capacityTemperatureCurve.push({ x: 0, y: 0 }) }\r\n @action.bound userStorageLifetimeTemperatureCurveAddRow() { this.lifetimeTemperatureCurve.push({ x: 0, y: 0 }) }\r\n @action.bound setUserStorageLifetimeCurveItem(value: number, index: number, x: boolean) { if (x) this.lifetimeCurve[index].x = value; else this.lifetimeCurve[index].y = value }\r\n @action.bound setUserStorageCapacityCurveItem(value: number, index: number, x: boolean) { if (x) this.capacityCurve[index].x = value; else this.capacityCurve[index].y = value }\r\n @action.bound setUserStorageCapacityTemperatureCurveItem(value: number, index: number, x: boolean) { if (x) this.capacityTemperatureCurve[index].x = value; else this.capacityTemperatureCurve[index].y = value }\r\n @action.bound setUserStorageLifetimeTemperatureCurveItem(value: number, index: number, x: boolean) { if (x) this.lifetimeTemperatureCurve[index].x = value; else this.lifetimeTemperatureCurve[index].y = value }\r\n @action.bound userStorageLifetimeCurveDeleteItem(index: number) { this.lifetimeCurve.splice(index, 1) }\r\n @action.bound userStorageCapacityCurveDeleteItem(index: number) { this.capacityCurve.splice(index, 1) }\r\n @action.bound userStorageCapacityTemperatureCurveDeleteItem(index: number) { this.capacityTemperatureCurve.splice(index, 1) }\r\n @action.bound userStorageLifetimeTemperatureCurveDeleteItem(index: number) { this.lifetimeTemperatureCurve.splice(index, 1) }\r\n @action.bound setUserStorageNominalCapacity(x: number) { this.nominalCapacity = x }\r\n @action.bound setUserStorageNominalPower(x: number) { this.nominalPower = x }\r\n @action.bound setUserStorageMaximumCapacity(x: number) { this.maximumCapacity = x }\r\n @action.bound setUserStorageChargeCurrent(x: number) { this.chargeCurrent = x }\r\n @action.bound setUserStorageRangeOfCharge(x: number) { this.rangeOfCharge = x }\r\n @action.bound setUserStorageMinimumStateOfCharge(x: number) { this.minimumStateOfCharge = x }\r\n @action.bound setUserStorageEstimatedLifetimeThroughput(x: number) { this.estimatedLifetimeThroughput = x }\r\n @action.bound setUserStorageRateConstant(x: number) { this.rateConstant = x }\r\n @action.bound setUserStorageCapacityRatio(x: number) { this.capacityRatio = x }\r\n @action.bound setUserStorageEffectiveSeriesResistance(x: number) { this.effectiveSeriesResistance = x }\r\n @action.bound setUserStorageFittedD0(x: number) { this.fittedD0 = x }\r\n @action.bound setUserStorageFittedD1(x: number) { this.fittedD1 = x }\r\n @action.bound setUserStorageFittedD2(x: number) { this.fittedD2 = x }\r\n @action.bound setUserStorageFittedA(x: number) { this.fittedA = x }\r\n @action.bound setUserStorageFittedBeta(x: number) { this.fittedBeta = x }\r\n @action.bound setUserStorageArrheniusDegredationB(x: number) { this.arrheniusDegredationB = x }\r\n @action.bound setUserStorageArrheniusDegredationD(x: number) { this.arrheniusDegredationD = x }\r\n @action.bound setUserStorageCapacityDegradationLimitForFitCyclelifetimeModel(x: number) { this.capacityDegradationLimitForFitCyclelifetimeModel = x }\r\n @action.bound setUserStorageInitialStateOfCharge(x: number) { this.initialStateOfCharge = x }\r\n @action.bound setUserStorageUseLifetimeCurve(x: boolean) { this.useLifetimeCurve = x }\r\n @action.bound setUserStorageOtherLosses(x: number) { this.otherLosses = x }\r\n @action.bound setUserStorageIgnoreCapacityVsTemperatureInModel(x: boolean) { this.ignoreCapacityVsTemperatureInModel = x }\r\n @action.bound setUserStorageIgnoreTemperatureEffectOnLifetime(x: boolean) { this.ignoreTemperatureEffectOnLifetime = x }\r\n @action.bound setUserStorageSimpleLifetimeInYears(x: number) { this.simpleLifetimeInYears = x }\r\n @action.bound setUserStorageStringSize(x: number) { this.stringSize = x }\r\n @action.bound setUserStorageMaximumOperatingTemperature(x: number) { this.maximumOperatingTemperature = x }\r\n @action.bound setUserStorageMinimumOperatingTemperature(x: number) { this.minimumOperatingTemperature = x }\r\n @action.bound setUserStorageMass(x: number) { this.mass = x }\r\n @action.bound setUserStorageFixedTemperature(x: number) { this.fixedTemperature = x }\r\n @action.bound setUserStorageThermalH(x: number) { this.thermalH = x }\r\n @action.bound setUserStorageThermalCSpecific(x: number) { this.thermalCSpecific = x }\r\n @action.bound setUserStorageAugmentationPrice(x: number) { this.augmentationPrice = x }\r\n //@action.bound setUserStorageAugmentationDegradationLimitSensitivity: number[] = []\r\n @action.bound setUserStorageCapacityDegradationLimitForFitLifetimeTemperatureModel(x: number) { this.capacityDegradationLimitForFitLifetimeTemperatureModel = x }\r\n //@action.bound setUserStorageDedicatedConverter: Inverter = new Inverter()\r\n @action.bound setUserStorageApplyMinimumLifetime(x: boolean) { this.applyMinimumLifetime = x }\r\n @action.bound setUserStorageMinimumLifetime(x: number) { this.minimumLifetime = x }\r\n @action.bound setUserStorageIsAc(x: boolean) { this.isAc = x }\r\n @action.bound setUserStorageUseFixedTemperature(x: boolean) { this.useFixedTemperature = x }\r\n //@action.bound setUserStorageCostTable: CostTable = new CostTable()\r\n\r\n @action.bound initialize(storage: StorageSpec) {\r\n this.id = storage.id\r\n this.name = storage.name\r\n this.abbreviation = storage.abbreviation\r\n this.nominalCapacity = storage.nominalCapacity\r\n this.nominalPower = storage.nominalPower\r\n this.maximumCapacity = storage.maximumCapacity\r\n this.rateConstant = storage.rateConstant\r\n this.capacityRatio = storage.capacityRatio\r\n this.effectiveSeriesResistance = storage.effectiveSeriesResistance\r\n this.fittedD0 = storage.fittedD0\r\n this.fittedD1 = storage.fittedD1\r\n this.fittedD2 = storage.fittedD2\r\n this.nominalVoltage = storage.nominalVoltage\r\n this.chargeCurrent = storage.chargeCurrent\r\n this.rangeOfCharge = storage.rangeOfCharge\r\n this.minimumStateOfCharge = storage.minimumStateOfCharge\r\n this.fittedA = storage.fittedA\r\n this.fittedBeta = storage.fittedBeta\r\n this.capacityDegradationLimitForFitCyclelifetimeModel = storage.capacityDegradationLimitForFitCyclelifetimeModel\r\n this.capacityDegradationLimitForFitLifetimeTemperatureModel = storage.capacityDegradationLimitForFitLifetimeTemperatureModel\r\n this.arrheniusDegredationB = storage.arrheniusDegredationB\r\n this.arrheniusDegredationD = storage.arrheniusDegredationD\r\n this.estimatedLifetimeThroughput = storage.estimatedLifetimeThroughput\r\n this.lifetimeCurve = storage.lifetimeCurve\r\n this.chemistry = storage.chemistry\r\n this.manufacturer = storage.manufacturer\r\n this.requiresOneMinuteTimestep = storage.requiresOneMinuteTimestep\r\n this.notes = storage.notes\r\n this.initialStateOfCharge = storage.initialStateOfCharge\r\n this.capacityCurve = storage.capacityCurve\r\n this.useLifetimeCurve = storage.useLifetimeCurve\r\n this.useDedicatedConverter = storage.useDedicatedConverter\r\n this.capacityCurve = storage.capacityCurve\r\n this.useLifetimeCurve = storage.useLifetimeCurve\r\n this.applyMaxDischargeCurrent = storage.applyMaxDischargeCurrent\r\n this.applyMaxChargeCurrent = storage.applyMaxChargeCurrent\r\n this.applyMaxChargeRate = storage.applyMaxChargeRate\r\n this.maxDischargeCurrent = storage.maxDischargeCurrent\r\n this.maxChargeCurrent = storage.maxChargeCurrent\r\n this.maxChargeRate = storage.maxChargeRate\r\n this.otherLosses = storage.otherLosses\r\n this.additiveEndOfLifeCalculation = storage.additiveEndOfLifeCalculation\r\n this.degradationUsesNominalSoc = storage.degradationUsesNominalSoc\r\n this.ignoreCapacityVsTemperatureInModel = storage.ignoreCapacityVsTemperatureInModel\r\n this.capacityTemperatureCurve = storage.capacityTemperatureCurve\r\n this.ignoreTemperatureEffectOnLifetime = storage.ignoreTemperatureEffectOnLifetime\r\n this.simpleLifetimeInYears = storage.simpleLifetimeInYears\r\n this.stringSize = storage.stringSize\r\n this.lifetimeTemperatureCurve = storage.lifetimeTemperatureCurve\r\n this.maximumOperatingTemperature = storage.maximumOperatingTemperature\r\n this.minimumOperatingTemperature = storage.minimumOperatingTemperature\r\n this.mass = storage.mass\r\n this.fixedTemperature = storage.fixedTemperature\r\n this.thermalH = storage.thermalH\r\n this.thermalCSpecific = storage.thermalCSpecific\r\n this.augmentationDegradationLimitSensitivity = deserializeSensitivityVar(storage.augmentationDegradationLimitSensitivity)\r\n this.augmentationPrice = storage.augmentationCost\r\n var converter = new Inverter()\r\n converter.efficiency.values = []\r\n storage.dedicatedConverter?.efficiency?.values?.map(x => {\r\n var item = new SensitivityItem()\r\n item.setValue(x)\r\n converter.efficiency.values.push(item)\r\n })\r\n converter.lifetime.values = []\r\n storage.dedicatedConverter?.lifetime?.values?.map(x => {\r\n var item = new SensitivityItem()\r\n item.setValue(x)\r\n converter.lifetime.values.push(item)\r\n })\r\n converter.sizing.kind = SizingKind.relative\r\n converter.sizing.relativeValues = []\r\n storage.dedicatedConverter?.size?.values?.map(x => {\r\n var item = new SensitivityItem()\r\n item.setValue(x)\r\n converter.sizing.relativeValues.push(item)\r\n })\r\n converter.cost.costTableType = CostTableType.simple\r\n converter.cost.simple.base.capital = Number(storage.dedicatedConverter?.cost?.simpleCostTable?.capital)\r\n converter.cost.simple.base.operating = Number(storage.dedicatedConverter?.cost?.simpleCostTable?.operating)\r\n converter.cost.simple.base.replacement = Number(storage.dedicatedConverter?.cost?.simpleCostTable?.replacement)\r\n converter.cost.simple.items[0].capital = Number(storage.dedicatedConverter?.cost?.simpleCostTable?.capital)\r\n converter.cost.simple.items[0].operating = Number(storage.dedicatedConverter?.cost?.simpleCostTable?.operating)\r\n converter.cost.simple.items[0].replacement = Number(storage.dedicatedConverter?.cost?.simpleCostTable?.replacement)\r\n this.dedicatedConverter = converter\r\n\r\n this.applyMinimumLifetime = storage.applyMinimumLifetime\r\n this.minimumLifetime = storage.minimumLifetime\r\n this.isAc = storage.isAc\r\n this.useFixedTemperature = storage.useFixedTemperature\r\n this.costTable.costTableType = storage.useComplexCost ? CostTableType.complex : CostTableType.simple\r\n this.costTable.simple.base.capital = storage.simpleCostTable.capital\r\n this.costTable.simple.base.operating = storage.simpleCostTable.operating\r\n this.costTable.simple.base.replacement = storage.simpleCostTable.replacement\r\n\r\n storage.complexCostTable?.directCapital?.map(x => {\r\n var item = new ComplexCostItem();\r\n item.setName(x.name)\r\n item.setUnit(x.units as CostUnit)\r\n item.setValue(x.value)\r\n this.costTable.complex.directCapital.items.push(item)\r\n })\r\n storage.complexCostTable?.indirectCapital?.map(x => {\r\n var item = new ComplexCostItem();\r\n item.setName(x.name)\r\n item.setUnit(x.units as CostUnit)\r\n item.setValue(x.value)\r\n this.costTable.complex.indirectCapital.items.push(item)\r\n })\r\n storage.complexCostTable?.operating?.map(x => {\r\n var item = new ComplexCostItem();\r\n item.setName(x.name)\r\n item.setUnit(x.units as CostUnit)\r\n item.setValue(x.value)\r\n this.costTable.complex.operating.items.push(item)\r\n })\r\n }\r\n}\r\n\r\nexport function SerializeStorageSpecs(storage: UserStorageClass): StorageSpec {\r\n var spec = {} as StorageSpec\r\n\r\n spec.id = storage.id\r\n spec.name = storage.name\r\n spec.abbreviation = storage.abbreviation\r\n spec.maximumCapacity = storage.maximumCapacity\r\n spec.nominalVoltage = storage.nominalVoltage\r\n spec.chargeCurrent = storage.chargeCurrent\r\n spec.rangeOfCharge = storage.rangeOfCharge\r\n spec.minimumStateOfCharge = storage.minimumStateOfCharge\r\n spec.estimatedLifetimeThroughput = storage.estimatedLifetimeThroughput\r\n spec.lifetimeCurve = storage.lifetimeCurve\r\n spec.chemistry = storage.chemistry\r\n spec.manufacturer = storage.manufacturer\r\n spec.requiresOneMinuteTimestep = storage.requiresOneMinuteTimestep\r\n spec.notes = storage.notes\r\n spec.initialStateOfCharge = storage.initialStateOfCharge\r\n spec.capacityCurve = storage.capacityCurve\r\n spec.useLifetimeCurve = storage.useLifetimeCurve\r\n spec.capacityCurve = storage.capacityCurve\r\n spec.useLifetimeCurve = storage.useLifetimeCurve\r\n spec.applyMaxChargeCurrent = storage.applyMaxChargeCurrent\r\n spec.applyMaxChargeRate = storage.applyMaxChargeRate\r\n spec.applyMaxDischargeCurrent = storage.applyMaxDischargeCurrent\r\n spec.maxDischargeCurrent = storage.maxDischargeCurrent\r\n spec.maxChargeCurrent = storage.maxChargeCurrent\r\n spec.maxChargeRate = storage.maxChargeRate\r\n spec.otherLosses = storage.otherLosses\r\n spec.additiveEndOfLifeCalculation = storage.additiveEndOfLifeCalculation\r\n spec.degradationUsesNominalSoc = storage.degradationUsesNominalSoc\r\n spec.ignoreCapacityVsTemperatureInModel = storage.ignoreCapacityVsTemperatureInModel\r\n spec.capacityTemperatureCurve = storage.capacityTemperatureCurve\r\n spec.ignoreTemperatureEffectOnLifetime = storage.ignoreTemperatureEffectOnLifetime\r\n spec.simpleLifetimeInYears = storage.simpleLifetimeInYears\r\n spec.stringSize = storage.stringSize\r\n spec.lifetimeTemperatureCurve = storage.lifetimeTemperatureCurve\r\n spec.maximumOperatingTemperature = storage.maximumOperatingTemperature\r\n spec.minimumOperatingTemperature = storage.minimumOperatingTemperature\r\n spec.mass = storage.mass\r\n spec.fixedTemperature = storage.fixedTemperature\r\n spec.thermalH = storage.thermalH\r\n spec.thermalCSpecific = storage.thermalCSpecific\r\n spec.augmentationDegradationLimitSensitivity = serializeSensitivityVar(storage.augmentationDegradationLimitSensitivity)\r\n spec.applyMinimumLifetime = storage.applyMinimumLifetime\r\n spec.minimumLifetime = storage.minimumLifetime\r\n spec.isAc = storage.isAc\r\n spec.useFixedTemperature = storage.useFixedTemperature\r\n spec.rateConstant = storage.rateConstant\r\n spec.capacityRatio = storage.capacityRatio\r\n spec.effectiveSeriesResistance = storage.effectiveSeriesResistance\r\n spec.fittedA = storage.fittedA\r\n spec.fittedBeta = storage.fittedBeta\r\n spec.fittedD0 = storage.fittedD0\r\n spec.fittedD1 = storage.fittedD1\r\n spec.fittedD2 = storage.fittedD2\r\n spec.capacityDegradationLimitForFitCyclelifetimeModel = storage.capacityDegradationLimitForFitCyclelifetimeModel\r\n spec.capacityDegradationLimitForFitLifetimeTemperatureModel = storage.capacityDegradationLimitForFitLifetimeTemperatureModel\r\n spec.arrheniusDegredationB = storage.arrheniusDegredationB\r\n spec.arrheniusDegredationD = storage.arrheniusDegredationD\r\n spec.augmentationCost = storage.augmentationPrice\r\n\r\n spec.useComplexCost = storage.costTable.costTableType == CostTableType.complex\r\n spec.simpleCostTable = {} as SimpleCostTableDto\r\n spec.simpleCostTable.capital = storage.costTable.simple.base.capital\r\n spec.simpleCostTable.operating = storage.costTable.simple.base.operating\r\n spec.simpleCostTable.replacement = storage.costTable.simple.base.replacement\r\n spec.complexCostTable = {} as ComplexCostTableDto\r\n spec.complexCostTable.directCapital = []\r\n spec.complexCostTable.replacement = []\r\n spec.complexCostTable.indirectCapital = []\r\n spec.complexCostTable.operating = []\r\n storage.costTable?.complex?.replacement?.items?.map(x => spec.complexCostTable.replacement.push({ name: x.name, units: x.unit, value: x.value }))\r\n storage.costTable?.complex?.operating?.items?.map(x => spec.complexCostTable.operating.push({ name: x.name, units: x.unit, value: x.value }))\r\n storage.costTable?.complex?.directCapital?.items?.map(x => spec.complexCostTable.directCapital.push({ name: x.name, units: x.unit, value: x.value }))\r\n storage.costTable?.complex?.indirectCapital?.items?.map(x => spec.complexCostTable.indirectCapital.push({ name: x.name, units: x.unit, value: x.value }))\r\n\r\n spec.useDedicatedConverter = storage.useDedicatedConverter\r\n spec.dedicatedConverter = {} as ConverterDto\r\n spec.dedicatedConverter.size = {} as SizingVarDto\r\n spec.dedicatedConverter.size.values = []\r\n spec.dedicatedConverter.size.sizingKind = SizingKind.relative\r\n storage.dedicatedConverter.sizing.values.map(x => spec.dedicatedConverter.size.values.push(x.value))\r\n spec.dedicatedConverter.cost = {} as CostTableDto\r\n spec.dedicatedConverter.cost.simpleCostTable = {} as SimpleCostTableDto\r\n spec.dedicatedConverter.cost.costTableKind = CostTableType.simple\r\n spec.dedicatedConverter.cost.simpleCostTable = {} as SimpleCostTableDto\r\n spec.dedicatedConverter.cost.simpleCostTable.augmentation = storage.dedicatedConverter.cost.simple.base.augmentation\r\n spec.dedicatedConverter.cost.simpleCostTable.capital = storage.dedicatedConverter.cost.simple.base.capital\r\n spec.dedicatedConverter.cost.simpleCostTable.operating = storage.dedicatedConverter.cost.simple.base.operating\r\n spec.dedicatedConverter.cost.simpleCostTable.replacement = storage.dedicatedConverter.cost.simple.base.replacement\r\n spec.dedicatedConverter.efficiency = {} as SensitivityVarDto\r\n spec.dedicatedConverter.efficiency.values = []\r\n storage.dedicatedConverter.efficiency.values.map(x => spec.dedicatedConverter.efficiency.values.push(x.value))\r\n spec.dedicatedConverter.lifetime = {} as SensitivityVarDto\r\n spec.dedicatedConverter.lifetime.values = []\r\n storage.dedicatedConverter.lifetime.values.map(x => spec.dedicatedConverter.lifetime.values.push(x.value))\r\n\r\n return spec\r\n}\r\n","import { BaseProjectInfo, DetailsResponse, ImportResponse, ImportStorageRequest, ImportStorageResponse, ProjectInfo, StatusResponse, StorageSpec, TableResponse, TimeSeriesResponse, WindTurbineSpec, ImportWindResponse, ImportWindRequest, UserData, OstResponse, DimensionResponse, UserEmailNotification, ComponentOperationResponse, ReportResponse } from './api'\r\nimport {ComplexCostTableDto} from 'services/inputs'\r\nimport download from 'downloadjs'\r\nimport {parse} from 'shared/content-disposition'\r\nimport {Err, Ok, Result} from 'shared/Result'\r\nimport { OstDimension } from '../components/project/results'\r\nimport { observable } from 'mobx'\r\nimport { UserStorage, UserStorageClass } from '../components/userLibrary/UserStorage'\r\nimport { CustomerTestimonial } from '../components/project/pages/Results/ResultReport'\r\n\r\n\r\nconst JSON_HEADER = {'Content-Type': 'application/json','charset': 'utf-8'}\r\nconst TEXT_HEADER = {'Content-Type': 'text/plain'}\r\n\r\nconst GET: RequestInit = {\r\n method: 'GET',\r\n headers: {...JSON_HEADER},\r\n}\r\n\r\nconst POST: RequestInit = {\r\n method: 'POST',\r\n headers: {...JSON_HEADER},\r\n body: '',\r\n}\r\n\r\nconst PUT: RequestInit = {\r\n method: 'PUT',\r\n headers: {...JSON_HEADER},\r\n body: '',\r\n}\r\n\r\nconst PATCH: RequestInit = {\r\n method: 'PATCH',\r\n headers: {...JSON_HEADER},\r\n}\r\n\r\nconst DELETE: RequestInit = {\r\n method: 'DELETE',\r\n}\r\n\r\n\r\nasync function check(response: Response): Promise> {\r\n const data = await response.json()\r\n if (!response.ok) {\r\n const error = data as ErrorDetails\r\n const message = `[${error.status}] ${error.title}\\n\\n${error.detail}`\r\n console.error(message)\r\n return Err({name: response.statusText, message})\r\n }\r\n return Ok(data as T)\r\n}\r\n\r\nasync function checkUnsafe(response: Response): Promise {\r\n const result = await check(response)\r\n if (result.ok) {return result.value} else {throw result.error}\r\n}\r\n\r\n\r\nexport class Service {\r\n constructor(authenticationHandler?: () => void) {\r\n this.authenticationHandler = authenticationHandler\r\n }\r\n\r\n // called on `401:Unauthorized`\r\n authenticationHandler?: () => void\r\n\r\n // credentials to refresh token\r\n name: string = ''\r\n password: string = ''\r\n\r\n // current session token\r\n token: string = ''\r\n clearToken() {this.token = ''}\r\n setToken(v: string) {this.token = v}\r\n\r\n //userinfo\r\n email: string = \"\"\r\n defaultCurrency: string = \"\"\r\n defaultDecimalPoint: boolean = false\r\n defaultDateFormat: number = 0\r\n showBaseYearAsYearZero: boolean = false\r\n\r\n // fetch + authentication\r\n async fetch(input: RequestInfo, init?: RequestInit, failOn401?: boolean): Promise {\r\n if (!init) init = {}\r\n const headers = new Headers(init?.headers)\r\n headers.set('Authorization', `Bearer ${this.token}`)\r\n\r\n try {\r\n const response = await fetch(input, {...init, headers})\r\n if (response.status === 401) {\r\n if (!failOn401) {\r\n // try to refresh token\r\n const loginResult = await this.login(this.name, this.password)\r\n if (!loginResult.success) {\r\n this.clearToken()\r\n this.authenticationHandler?.()\r\n } else {\r\n return await this.fetch(input, init, true)\r\n }\r\n }\r\n this.clearToken()\r\n this.authenticationHandler?.()\r\n } \r\n return response\r\n } catch (error) {\r\n console.error(error)\r\n throw error\r\n }\r\n }\r\n\r\n async login(name: string, password: string): Promise {\r\n // save `name` and `password` to refresh token later\r\n this.name = name\r\n this.password = password\r\n\r\n // internal user names\r\n const internal = ['guest', 'reports', 'samples', 'daniel']\r\n const scheme = internal.includes(name) ? 'internal' : 'homer'\r\n\r\n try {\r\n const data: TokenRequest = {scheme, name, password}\r\n const response = await fetch('/api/auth/token', {...POST, body: JSON.stringify(data)})\r\n\r\n // handle `400:BadRequest` error\r\n if (response.status === 400) {\r\n const json = await response.json()\r\n const result = json as TokenResponse\r\n return {success: false, errors: result.errors}\r\n }\r\n\r\n // handle other errors\r\n if (!response.ok) {\r\n const body = await response.text()\r\n console.error(body)\r\n return { success: false, errors: ['The system is unavailable. If this error persists, please send us a message at support@homerenergy.com.']}\r\n }\r\n\r\n const json = await response.json()\r\n const result = json as TokenResponse\r\n this.setToken(result.token)\r\n\r\n //get user data\r\n var userData = await this.readUserData()\r\n this.defaultCurrency = userData.defaultCurrency\r\n this.defaultDateFormat = userData.defaultDateFormat\r\n this.defaultDecimalPoint = userData.defaultDecimalPoint\r\n this.showBaseYearAsYearZero = userData.showBaseYearAsYearZero\r\n\r\n return {success: true, errors: []}\r\n } catch (error) {\r\n // handle network errors\r\n console.error(error)\r\n return {success: false, errors: [error.message]}\r\n }\r\n }\r\n\r\n // API\r\n\r\n async list(): Promise {\r\n const r = await this.fetch(`/api/project`, {...GET})\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async create(): Promise {\r\n const r = await this.fetch(`/api/project`, {...POST, body: '{}'})\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async read(id: string): Promise {\r\n const r = await this.fetch(`/api/project/${id}`, {...GET})\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async update(id: string, x: BaseProjectInfo): Promise {\r\n await this.fetch(`/api/project/${id}`, {...PUT, body: JSON.stringify(x)})\r\n }\r\n\r\n async updateLock(id: string, status: boolean, lockId: string, forceLock = false): Promise {\r\n const request = { status: status, lockId: lockId, forceLock: forceLock}\r\n const r = await this.fetch(`/api/project/${id}/lock`, { ...POST, body: JSON.stringify(request) })\r\n return r.status === 200\r\n }\r\n\r\n async delete(id: string): Promise {\r\n await this.fetch(`/api/project/${id}`, {...DELETE})\r\n }\r\n\r\n async duplicate(id: string): Promise {\r\n const r = await this.fetch(`/api/project/${id}/duplicate`, {...POST, body: '{}'})\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async readRawData(id: string): Promise {\r\n const r = await this.fetch(`/api/project/${id}/input`, {...GET, headers: {...TEXT_HEADER}})\r\n const t = await r.text()\r\n console.log(t)\r\n return t\r\n }\r\n\r\n async updateRawData(id: string, data: string): Promise {\r\n const r = await this.fetch(`/api/project/${id}/input`, {...PUT, headers: {...TEXT_HEADER}, body: data})\r\n return r.status === 204 // no content\r\n }\r\n\r\n async patchRawData(id: string, hashExistingData: string, hashNewData: string, patch: string): Promise {\r\n const request = { hashExistingData, hashNewData, patch}\r\n const r = await this.fetch(`/api/project/${id}/input`, {...PATCH, body: JSON.stringify(request)})\r\n // possible errors: 409 - conflict; 404 - not found; 500 - internal server error\r\n return r.status === 204 // no content\r\n }\r\n\r\n async readUserData(): Promise {\r\n const r = await this.fetch(`/api/project/user`, { ...GET })\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async updateUserDefaultCurrency(defaultCurrency: string): Promise {\r\n var data = JSON.stringify(defaultCurrency)\r\n const r = await this.fetch(`/api/project/user/currency`, { ...PUT, headers: { ...JSON_HEADER }, body: data })\r\n this.defaultCurrency = defaultCurrency\r\n return r.status === 204 // no content\r\n }\r\n\r\n async updateUserDefaultDateFormat(defaultDateFormat: number): Promise {\r\n var data = JSON.stringify(defaultDateFormat)\r\n const r = await this.fetch(`/api/project/user/dateFormat`, { ...PUT, headers: { ...JSON_HEADER }, body: data })\r\n this.defaultDateFormat = defaultDateFormat\r\n return r.status === 204 // no content\r\n }\r\n\r\n async updateUserDefaultDecimalPoint(defaultDecimalPoint: boolean): Promise {\r\n var data = JSON.stringify(defaultDecimalPoint)\r\n const r = await this.fetch(`/api/project/user/decimalPoint`, { ...PUT, headers: { ...JSON_HEADER }, body: data })\r\n this.defaultDecimalPoint = defaultDecimalPoint\r\n return r.status === 204 // no content\r\n }\r\n\r\n async updateUserShowBaseYearAsYearZero(showBaseYearAsYearZero: boolean): Promise {\r\n var data = JSON.stringify(showBaseYearAsYearZero)\r\n const r = await this.fetch(`/api/project/user/showBaseYearAsYearZero`, { ...PUT, headers: { ...JSON_HEADER }, body: data })\r\n this.showBaseYearAsYearZero = showBaseYearAsYearZero\r\n return r.status === 204 // no content\r\n }\r\n\r\n async import(content?: string, year?: number): Promise {\r\n let url = '/api/info/import'\r\n if (year)\r\n url += `?year=${year}`\r\n const r = await this.fetch(url, {\r\n ...POST,\r\n headers: {'Content-Type': 'text/plain'},\r\n body: content,\r\n })\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async importStorage(content: string): Promise {\r\n const url = '/api/info/import/storage'\r\n const request: ImportStorageRequest = {content}\r\n const r = await this.fetch(url, {...POST, body: JSON.stringify(request)})\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async importWind(content: string): Promise {\r\n const url = '/api/info/import/windTurbine'\r\n const request: ImportWindRequest = { content }\r\n const r = await this.fetch(url, { ...POST, body: JSON.stringify(request) })\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async getResultTable(id: string, index?: number, kind?: 'all' | 'group', baseCaseIndex?: number): Promise {\r\n let url = `/api/project/${id}/result/table`\r\n if (index !== undefined) {\r\n url += `/${index}`\r\n if (kind !== undefined) {\r\n url += `/${kind}`\r\n }\r\n if (baseCaseIndex != undefined)\r\n url += `/${baseCaseIndex}`\r\n }\r\n const r = await this.fetch(url, {...POST})\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async getOstDimensions(id: string): Promise {\r\n let url = `/api/project/${id}/result/ost`\r\n const r = await this.fetch(url, { ...GET })\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async getOstResult(id: string, x: OstDimension[]): Promise {\r\n let url = `/api/project/${id}/result/ost`\r\n const r = await this.fetch(url, { ...POST, body: JSON.stringify(x) })\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async getDetails(id: string, resultId: string): Promise> {\r\n let url = `/api/project/${id}/result/details/${resultId}`\r\n const r = await this.fetch(url, {...POST})\r\n return await check(r)\r\n }\r\n\r\n async getTimeSeries(id: string, resultId: string, year: number): Promise {\r\n let url = `/api/project/${id}/result/details/${resultId}/timeseries/${year}`\r\n const r = await this.fetch(url, {...POST})\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async exportTimeSeries(id: string, resultId: string, year: number): Promise {\r\n const url = `/api/project/${id}/result/export/${resultId}/timeseries/${year}`\r\n const r = await this.fetch(url, {...POST})\r\n const t = await r.text()\r\n console.log(t)\r\n return t\r\n }\r\n\r\n async exportMultiYearTimeSeries(id: string, resultId: string): Promise {\r\n const url = `/api/project/${id}/result/export/${resultId}/timeseries`\r\n const r = await this.fetch(url, { ...POST })\r\n const t = await r.text()\r\n console.log(t)\r\n return t\r\n }\r\n\r\n async exportCashFlow(id: string, resultId: string): Promise {\r\n const url = `/api/project/${id}/result/export/${resultId}/cashflow`\r\n const r = await this.fetch(url, {...POST})\r\n const t = await r.text()\r\n console.log(t)\r\n return t\r\n }\r\n\r\n async getStatus(id: string): Promise {\r\n let url = `/api/project/${id}/result/status`\r\n const r = await this.fetch(url, {...POST})\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async calculate(id: string): Promise {\r\n let url = `/api/project/${id}/result/calculate`\r\n const r = await this.fetch(url, {...POST})\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async cancelCalculation(id: string): Promise {\r\n let url = `/api/project/${id}/result/stop`\r\n const r = await this.fetch(url, { ...POST })\r\n return r.status == 200\r\n }\r\n\r\n async getStatusDetails(id: string, resultId: string): Promise {\r\n let url = `/api/project/${id}/result/details/status/${resultId}`\r\n const r = await this.fetch(url, {...POST})\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async calculateDetails(id: string, resultId: string): Promise {\r\n let url = `/api/project/${id}/result/details/calculate/${resultId}`\r\n const r = await this.fetch(url, {...POST})\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async setUserEmailNotification(problemId: string, userEmail: UserEmailNotification): Promise {\r\n var data = JSON.stringify(userEmail)\r\n const r = await this.fetch(`/api/project/${problemId}/result/email`, { ...PUT, headers: { ...JSON_HEADER }, body: data }) \r\n return r.ok // no content\r\n }\r\n\r\n async cancelDetailsCalculation(id: string, resultId: string): Promise {\r\n let url = `/api/project/${id}/result/details/stop/${resultId}`\r\n const r = await this.fetch(url, { ...POST }) \r\n return r.status == 200\r\n }\r\n\r\n async deleteUserEmailNotification(problemId: string): Promise { \r\n const r = await this.fetch(`/api/project/${problemId}/result/email`, { ...DELETE })\r\n return r.ok // no content\r\n }\r\n\r\n async downloadReportFile(id: string, resultId: string, sensitivity: number, optimization: number, request: ResultReportRequest): Promise {\r\n let url = `/api/project/${id}/result/${resultId}/reportFile/${sensitivity}/${optimization}`\r\n const r = await this.fetch(url, { ...POST, body: JSON.stringify(request) })\r\n if (r.status == 204)\r\n return { succeded: false }\r\n else {\r\n const reportData = await r.blob()\r\n return { succeded: true, data: reportData, fileName: getFileName(r.headers) ?? 'Result.pdf' }\r\n }\r\n }\r\n\r\n async downloadHomerFile(id: string) {\r\n let url = `/api/project/${id}/result/file`\r\n const r = await this.fetch(url, {...POST})\r\n const data = await r.blob()\r\n const filename = getFileName(r.headers) ?? 'Project.hfront'\r\n download(data, filename, 'application/octet-stream')\r\n }\r\n\r\n async reportIssue(id: string, description?: string) {\r\n const request: ShareProject = {description}\r\n const r = await this.fetch(`/api/project/${id}/report`, {...POST, body: JSON.stringify(request)})\r\n const t = await r.text()\r\n console.log(t)\r\n }\r\n\r\n async shareProject(id: string, email: string, description?: string): Promise {\r\n const request: ReportRequest = { email, description }\r\n const r = await this.fetch(`/api/project/${id}/share`, { ...POST, body: JSON.stringify(request) })\r\n const t = await r.status\r\n console.log(t)\r\n return t\r\n }\r\n\r\n storages?: string[]\r\n storageSpecs?: StorageSpec[]\r\n userStorageSpecs?: StorageSpec[]\r\n windSpecs?: WindTurbineSpec[]\r\n\r\n @observable userStorage: UserStorage = new UserStorage()\r\n\r\n async listStorages(): Promise {\r\n if (!this.storages) {\r\n const url = `/api/info/storages`\r\n const r = await this.fetch(url, {...POST})\r\n const result = await checkUnsafe(r)\r\n this.storages = result.data\r\n }\r\n return this.storages\r\n }\r\n\r\n async listStorageSpecs(): Promise {\r\n if (!this.storageSpecs) {\r\n const url = `/api/info/storages/specs`\r\n const r = await this.fetch(url, {...POST})\r\n const result = await checkUnsafe(r)\r\n this.storageSpecs = result.data\r\n }\r\n return this.storageSpecs\r\n }\r\n\r\n async listWindTurbineSpecs(): Promise {\r\n if (!this.windSpecs) {\r\n const url = `/api/info/winds/specs`\r\n const r = await this.fetch(url, {...POST})\r\n const result = await checkUnsafe(r)\r\n this.windSpecs = result.data\r\n }\r\n return this.windSpecs\r\n }\r\n\r\n solarCosts?: ComplexCostTableDto\r\n\r\n async getSolarCostItems(name?: string): Promise {\r\n if (!this.solarCosts) {\r\n const url = `/api/info/cost/solar`\r\n const content = JSON.stringify({name})\r\n const r = await this.fetch(url, {...POST, body: content})\r\n const result = await checkUnsafe(r)\r\n this.solarCosts = result.data\r\n }\r\n return this.solarCosts\r\n }\r\n\r\n storageCosts?: ComplexCostTableDto\r\n\r\n async getStorageCostItems(name?: string): Promise {\r\n if (!this.storageCosts) {\r\n const url = `/api/info/cost/storage`\r\n const content = JSON.stringify({name})\r\n const r = await this.fetch(url, {...POST, body: content})\r\n const result = await checkUnsafe(r)\r\n this.storageCosts = result.data\r\n }\r\n return this.storageCosts\r\n }\r\n\r\n samples?: SampleDto[]\r\n\r\n async listSamples(): Promise {\r\n if (!this.samples) {\r\n const url = `/api/sample/list`\r\n const r = await this.fetch(url, {...GET})\r\n const result = await checkUnsafe(r)\r\n this.samples = result\r\n }\r\n return this.samples\r\n }\r\n\r\n async cloneSample(id: string): Promise {\r\n const r = await this.fetch(`/api/sample/clone/${id}`, {...POST, body: '{}'})\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async addStorageFromSample(): Promise {\r\n const url = `/api/userLibrary/storage/sample`\r\n const r = await this.fetch(url, { ...POST })\r\n this.userStorageSpecs = undefined\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async importStorageFromFile(data: string): Promise {\r\n const url = `/api/userLibrary/storage/import`\r\n const r = await this.fetch(url, { ...POST, body: JSON.stringify({ data }) })\r\n this.userStorageSpecs = undefined\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async duplicateUserStorage(data: string): Promise {\r\n const url = `/api/userLibrary/storage/duplicate`\r\n const r = await this.fetch(url, { ...POST, body: JSON.stringify({ data }) })\r\n this.userStorageSpecs = undefined\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async deleteUserStorage(data: string): Promise {\r\n const url = `/api/userLibrary/storage/delete`\r\n const r = await this.fetch(url, { ...POST, body: JSON.stringify({ data }) })\r\n this.userStorageSpecs = undefined\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async updateUserStorage(data: StorageSpec): Promise {\r\n const url = `/api/userLibrary/storage/update`\r\n const r = await this.fetch(url, { ...POST, body: JSON.stringify({ data }) })\r\n this.userStorageSpecs = undefined\r\n this.userStorage.specs = null\r\n return await checkUnsafe(r)\r\n }\r\n\r\n async downloadUserStorage(id: string) {\r\n const url = `/api/userLibrary/storage/download`\r\n const r = await this.fetch(url, { ...POST, body: JSON.stringify({ id }) })\r\n const data = await r.blob()\r\n const filename = getFileName(r.headers) ?? 'Storage.xml'\r\n download(data, filename, 'application/octet-stream')\r\n }\r\n\r\n async listUserStorageSpecs(): Promise {\r\n if (!this.userStorageSpecs) {\r\n const url = `/api/userLibrary/storages/specs`\r\n const r = await this.fetch(url, { ...POST })\r\n if (r.status != 200) return []\r\n const result = await checkUnsafe(r)\r\n this.userStorageSpecs = result.data\r\n }\r\n return this.userStorageSpecs\r\n }\r\n\r\n async getUserStorage(id: string) {\r\n if (this.userStorage.specs == undefined || this.userStorage.specs == null || this.userStorage.specs.name == \"\" || this.userStorage.specs.id != id) {\r\n if (!this.userStorageSpecs) {\r\n await this.listUserStorageSpecs()\r\n }\r\n var spec = this.userStorageSpecs!.filter(x => x.id == id)[0]\r\n this.userStorage.specs = new UserStorageClass()\r\n this.userStorage.specs.initialize(spec)\r\n }\r\n return this.userStorage.specs\r\n }\r\n}\r\n\r\n\r\nexport interface TokenRequest {\r\n scheme?: string\r\n name: string\r\n password: string\r\n}\r\n\r\nexport interface TokenResponse {\r\n success: boolean\r\n errors: string[]\r\n token: string\r\n}\r\n\r\nexport interface LoginResult {\r\n success: boolean\r\n errors: string[]\r\n}\r\n\r\n\r\ninterface ErrorDetails {\r\n type?: string\r\n title?: string\r\n status?: number\r\n detail?: string\r\n}\r\n\r\n\r\ninterface ListComponentResponse {data: string[]}\r\n\r\ninterface ListStorageSpecResponse {data: StorageSpec[]}\r\n\r\ninterface ListWindSpecResponse {data: WindTurbineSpec[]}\r\n\r\ninterface GetCostItemsResponse {data: ComplexCostTableDto}\r\n\r\ninterface ReportRequest {\r\n email: string\r\n description?: string\r\n}\r\n\r\nexport interface ResultReportRequest {\r\n isClientProposal: boolean\r\n //Client Proposal\r\n clientName: string\r\n clientTitle: string\r\n projectAddress: string\r\n userName: string\r\n userTitle: string\r\n userEmail: string\r\n userPhone: string\r\n companyName: string\r\n companyDescription: string\r\n companyLogo: string\r\n customerTestimonials: CustomerTestimonial[]\r\n //Engineer Detail\r\n projectDescription: string\r\n customLogo: string\r\n paperSize: string\r\n}\r\n\r\ninterface ShareProject { description?: string }\r\n\r\n\r\nexport interface SampleDto {\r\n id: string\r\n name: string\r\n}\r\n\r\n\r\nfunction getFileName(headers: Headers): string | undefined {\r\n const value = headers.get('content-disposition')\r\n if (!value) return\r\n const result = parse(value)\r\n return result.parameters['filename'] as string | undefined\r\n}\r\n","import {Service} from './Service'\r\nimport {OstDimension, OstResult, ResultTable} from 'components/project/results'\r\nimport {ResultDetails, ResultTimeSeries} from 'components/project/results-details'\r\nimport {CostTable} from 'components/project/model/CostTable'\r\n\r\nimport { ComplexCostTableDto, ConverterDto, CostTableDto, SensitivityVarDto, SimpleCostTableDto } from './inputs'\r\n\r\n\r\nexport interface BaseProjectInfo {\r\n name: string\r\n author: string\r\n location: string\r\n phase: string\r\n type: string // Solar | Storage | Solar + Storage\r\n coupling: string // AC | DC | AC vs. DC\r\n solarSize?: number\r\n storageSize?: number\r\n irr?: number\r\n poi?: number\r\n dateCod: string\r\n dateNtp: string\r\n electricityMarket: string\r\n earlyAnalysis: boolean\r\n notes: string\r\n currency: string\r\n currencySymbol: string\r\n useCommaAsDecimalPoint: boolean\r\n dateFormat: number\r\n isNewSystemConverter?: boolean | null\r\n locked?: boolean | null\r\n lockId?: string | null\r\n}\r\n\r\nexport interface ProjectInfo extends BaseProjectInfo {\r\n id: string\r\n created: string\r\n updated: string\r\n locked?: boolean\r\n lockId?: string\r\n}\r\n\r\nexport interface UserStorageInfo {\r\n id: string\r\n}\r\n\r\nexport interface UserData {\r\n email: string\r\n defaultCurrency: string\r\n defaultDecimalPoint: boolean\r\n defaultDateFormat: number\r\n showBaseYearAsYearZero: boolean\r\n}\r\n\r\nconst service = new Service()\r\nconst api = service\r\nexport default api\r\n\r\n\r\nexport interface ImportResponse {\r\n success: boolean\r\n message: string\r\n data: number[]\r\n year: number\r\n}\r\n\r\nexport interface UserEmailNotification {\r\n userEmail: string\r\n}\r\n\r\nexport interface TableResponse {\r\n data: ResultTable\r\n}\r\n\r\nexport interface DimensionResponse {\r\n data: OstDimension[]\r\n}\r\n\r\nexport interface OstResponse {\r\n data: OstResult\r\n}\r\nexport interface DetailsResponse {\r\n data: ResultDetails\r\n}\r\n\r\n\r\nexport interface TimeSeriesResponse {\r\n data: ResultTimeSeries\r\n}\r\n\r\n\r\nexport type StatusKind = 'changed' | 'calculating' | 'ready' | 'cancelled'\r\n\r\nexport interface StatusResponse {\r\n success: boolean\r\n message: string\r\n status: StatusKind\r\n progress?: number\r\n estimatedRemainingTime: string\r\n}\r\n\r\nexport interface ReportResponse {\r\n succeded: boolean\r\n data?: Blob\r\n fileName?: string\r\n}\r\n\r\nexport interface ImportStorageRequest {\r\n content: string\r\n}\r\n\r\nexport interface ImportWindRequest{\r\n content:string\r\n}\r\n\r\nexport interface ImportStorageResponse {\r\n success: boolean\r\n message: string\r\n spec?: StorageSpec\r\n}\r\n\r\nexport interface ImportWindResponse {\r\n success: boolean\r\n message: string\r\n spec?: WindTurbineSpec\r\n}\r\n\r\n\r\nexport interface StorageCurveItem {\r\n x: number\r\n y: number\r\n}\r\n\r\nexport interface StorageSpec {\r\n id: string\r\n name: string\r\n abbreviation: string\r\n nominalCapacity: number // kWh\r\n nominalPower: number // kW\r\n maximumCapacity: number // Ah\r\n rateConstant: number\r\n capacityRatio: number\r\n effectiveSeriesResistance: number\r\n nominalVoltage: number // V\r\n chargeCurrent: number // A\r\n dischargeCurrent: number // A\r\n roundtripEfficiency: number // %\r\n oneWayEfficiency: number // %\r\n rangeOfCharge: number // %\r\n minimumStateOfCharge: number // %\r\n estimatedLifetimeThroughput: number // kWh\r\n lifetimeCurve: StorageCurveItem[]\r\n chemistry: string\r\n manufacturer: string\r\n requiresOneMinuteTimestep: boolean\r\n fittedD0: number\r\n fittedD1: number\r\n fittedD2: number\r\n fittedA: number\r\n fittedBeta: number\r\n capacityDegradationLimitForFitCyclelifetimeModel: number\r\n capacityDegradationLimitForFitLifetimeTemperatureModel: number\r\n arrheniusDegredationB: number\r\n arrheniusDegredationD: number\r\n //max discharge current\r\n //mode: string\r\n //duration: number\r\n notes: string\r\n stringsize: number\r\n initialStateOfCharge: number\r\n ///capacityCurve: StorageCurveItem[]\r\n lifetimeLimit: number\r\n ///useLifetimeCurve: boolean\r\n ///useDedicatedConverter: boolean\r\n capacityCurve: StorageCurveItem[]\r\n useLifetimeCurve: boolean\r\n useDedicatedConverter: boolean\r\n applyMaxDischargeCurrent: boolean\r\n applyMaxChargeCurrent: boolean\r\n applyMaxChargeRate: boolean\r\n maxDischargeCurrent: number\r\n maxChargeCurrent: number\r\n maxChargeRate: number\r\n otherLosses: number\r\n additiveEndOfLifeCalculation: boolean\r\n degradationUsesNominalSoc: boolean\r\n ignoreCapacityVsTemperatureInModel: boolean\r\n capacityTemperatureCurve: StorageCurveItem[]\r\n ignoreTemperatureEffectOnLifetime: boolean\r\n simpleLifetimeInYears: number\r\n stringSize: number\r\n lifetimeTemperatureCurve: StorageCurveItem[]\r\n maximumOperatingTemperature: number\r\n minimumOperatingTemperature: number\r\n mass: number\r\n fixedTemperature: number\r\n thermalH: number\r\n thermalCSpecific: number\r\n augmentationDegradationLimitSensitivity: SensitivityVarDto\r\n augmentationCost: number\r\n //AugmentationPriceDecline: \r\n dedicatedConverter: ConverterDto\r\n applyMinimumLifetime: boolean\r\n minimumLifetime: number\r\n isAc: boolean\r\n useFixedTemperature: boolean\r\n useComplexCost: boolean\r\n costTable: CostTableDto\r\n simpleCostTable: SimpleCostTableDto\r\n complexCostTable: ComplexCostTableDto\r\n //SimpleCostTable:\r\n}\r\n\r\n\r\nexport interface WindTurbinePowerCurveItem {\r\n x: number // speed (m/s)\r\n y: number // power (kW)\r\n}\r\n\r\nexport interface WindTurbineSpec {\r\n name: string\r\n hubHeight: number\r\n powerCurve: WindTurbinePowerCurveItem[]\r\n costMatrix: CostTable\r\n availabilityLosses: number\r\n turbinePerformanceLosses: number\r\n environmentalLosses: number\r\n wakeEffectsLosses: number\r\n electricalLosses: number\r\n curtailmentLosses: number\r\n otherLosses: number\r\n altitude: number\r\n anemometerHeight: number\r\n lifeTime:number\r\n}\r\n\r\nexport interface ComponentOperationResponse {\r\n success: boolean\r\n message: string\r\n component: LibraryComponent\r\n}\r\n\r\nexport interface LibraryComponent {\r\n type: string\r\n name: string\r\n}\r\n","import { Image } from '@progress/kendo-drawing'\r\nimport { DimensionState, OstDimension, OstResult, ResultTable } from 'components/project/results'\r\nimport api, { DetailsResponse } from 'services/api'\r\nimport { Result } from 'shared/Result'\r\n\r\n\r\nexport class ResultCache {\r\n constructor(public id: string) { }\r\n\r\n // cache\r\n sensitivity: ResultTable | null = null\r\n optimizationGroup: Map = new Map()\r\n optimizationAll: Map = new Map()\r\n details: Map> = new Map>()\r\n ostDimensions: OstDimension[] | null = null\r\n ostResultState: DimensionState = 'loading'\r\n ostResult: OstResult | null = null\r\n\r\n clear() {\r\n this.sensitivity = null\r\n this.optimizationGroup.clear()\r\n this.optimizationAll.clear()\r\n this.details.clear()\r\n }\r\n\r\n\r\n async getSensitivity(): Promise {\r\n if (!this.sensitivity) {\r\n const rv = await api.getResultTable(this.id)\r\n this.sensitivity = rv.data\r\n if (!this.ostDimensions || this.ostDimensions.length == 0 || this.ostResultState == 'loading' || this.ostResultState == 'error') {\r\n const dim = await api.getOstDimensions(this.id)\r\n this.ostDimensions = dim.data\r\n if (this.ostDimensions.length > 1)\r\n this.ostResultState = 'changed'\r\n else\r\n this.ostResultState = 'unavailable'\r\n }\r\n }\r\n return this.sensitivity\r\n }\r\n\r\n async getOstResult(): Promise {\r\n if (!this.ostDimensions || this.ostDimensions.length == 0 || this.ostResultState == 'loading' || this.ostResultState == 'error') {\r\n const dim = await api.getOstDimensions(this.id)\r\n this.ostDimensions = dim.data\r\n if (this.ostDimensions.length > 1)\r\n this.ostResultState = 'changed'\r\n else\r\n this.ostResultState = 'error'\r\n }\r\n if (this.ostDimensions && this.ostResultState == 'changed') {\r\n let ost = await api.getOstResult(this.id, this.ostDimensions)\r\n this.ostResult = ost.data\r\n }\r\n //}\r\n return this.ostResult\r\n }\r\n\r\n\r\n setXAxis(index: number, key: selectedValue) {\r\n var tempDimensions = this.ostDimensions\r\n tempDimensions = []\r\n this.ostDimensions?.map(x => {\r\n x.isXAxis = false\r\n tempDimensions?.push(x)\r\n })\r\n tempDimensions[index].isXAxis = true\r\n this.ostDimensions = tempDimensions\r\n }\r\n setYAxis(index: number, key: selectedValue) {\r\n var tempDimensions = this.ostDimensions\r\n tempDimensions = []\r\n this.ostDimensions?.map(x => {\r\n x.isYAxis = false\r\n tempDimensions?.push(x)\r\n })\r\n tempDimensions[index].isYAxis = true\r\n this.ostDimensions = tempDimensions\r\n }\r\n setDimValue(index: number, key: number) {\r\n var tempDimensions = this.ostDimensions\r\n tempDimensions = []\r\n this.ostDimensions?.map(x => {\r\n x.isYAxis = false\r\n x.isXAxis = false\r\n tempDimensions?.push(x)\r\n })\r\n tempDimensions[index].selectedValue = key\r\n this.ostDimensions = tempDimensions\r\n }\r\n axisSelect(index: number, key: selectedValue) {\r\n if (key == 'xAxis')\r\n this.setXAxis(index, key)\r\n else if (key == 'yAxis')\r\n this.setYAxis(index, key)\r\n else\r\n this.setDimValue(index, key)\r\n }\r\n selectDimension(index: number, key: selectedValue): OstDimension[] | null {\r\n this.ostResultState = 'changed'\r\n //this.axisSelect(index, key)\r\n if (key == 'xAxis') {\r\n this.ostDimensions![index].isYAxis = false\r\n this.ostDimensions![index].isXAxis = true\r\n }\r\n else if (key == 'yAxis') {\r\n this.ostDimensions![index].isXAxis = false\r\n this.ostDimensions![index].isYAxis = true\r\n }\r\n else {\r\n this.ostDimensions![index].isXAxis = false\r\n this.ostDimensions![index].isYAxis = false\r\n this.ostDimensions![index].selectedValue = key\r\n }\r\n return this.ostDimensions\r\n }\r\n\r\n async getOptimization(index: number, kind: 'all' | 'group'): Promise {\r\n switch (kind) {\r\n case 'all':\r\n if (!this.optimizationAll.has(index)) {\r\n const rv = await api.getResultTable(this.id, index, kind)\r\n this.optimizationAll.set(index, rv.data)\r\n }\r\n return this.optimizationAll.get(index)!\r\n case 'group':\r\n if (!this.optimizationGroup.has(index)) {\r\n const rv = await api.getResultTable(this.id, index, kind)\r\n this.optimizationGroup.set(index, rv.data)\r\n }\r\n return this.optimizationGroup.get(index)!\r\n }\r\n }\r\n\r\n async getBaseCaseOptimization(index: number, baseCaseIndex: number): Promise {\r\n const rv = await api.getResultTable(this.id, index, 'all', baseCaseIndex)\r\n return rv.data\r\n }\r\n\r\n async getDetails(resultId: string): Promise> {\r\n if (!this.details.has(resultId)) {\r\n const rv = await api.getDetails(this.id, resultId)\r\n this.details.set(resultId, rv)\r\n }\r\n return this.details.get(resultId)!\r\n }\r\n\r\n async removeDetails(resultId: string) {\r\n if (this.details.has(resultId)) {\r\n this.details.delete(resultId)\r\n }\r\n }\r\n}\r\n\r\ntype selectedValue = 'xAxis' | 'yAxis' | number\r\n","import {ResultTimeSeries} from 'components/project/results-details'\r\nimport {action, computed, makeObservable, observable, runInAction} from 'mobx'\r\nimport {v4} from 'uuid'\r\nimport {ensureBounds, ensureMinLength, makeRange, Range, zoomIn, zoomOut, panLeft, panRight, round} from 'components/project/pages/Results/time-series/Range'\r\nimport api from 'services/api'\r\nimport download from 'downloadjs'\r\n\r\n\r\nconst MIN_RANGE = 12\r\n\r\nexport class TimeSeriesViewerModel {\r\n constructor(private projectId: string, private resultId: string, private ts: ResultTimeSeries) {\r\n makeObservable(this)\r\n this.initData(ts)\r\n this.initRange()\r\n }\r\n\r\n initData(ts: ResultTimeSeries, year?: number) {\r\n this.year = year ?? 0\r\n var prevSelectedTop: boolean[] = []\r\n var prevSelectedBottom: boolean[] = []\r\n var getSelection = this.items.length > 0\r\n if (getSelection) {\r\n this.items.map(x => prevSelectedTop.push(x.selectedTop))\r\n this.items.map(x => prevSelectedBottom.push(x.selectedBottom))\r\n }\r\n \r\n this.items = ts.items.map((x, i) => new TimeSeriesItem({\r\n id: x.id,\r\n name: x.name,\r\n units: x.units,\r\n color: x.color,\r\n data: x.data,\r\n selectedTop: prevSelectedTop[i],\r\n selectedBottom: prevSelectedBottom[i]\r\n }))\r\n\r\n this.nameToItem = new Map(this.items.map(x => [x.name, x]))\r\n\r\n this.groups = ts.groups.map(x => new TimeSeriesGroup({\r\n name: x.name,\r\n mainItems: x.mainNames.map(name => this.nameToItem.get(name)!),\r\n extraItems: x.extraNames.map(name => this.nameToItem.get(name)!),\r\n }))\r\n\r\n this.size = this.ts.items.length > 0 ? this.ts.items[0].data.length : 1\r\n }\r\n\r\n initRange() {\r\n this.range = makeRange(0, this.size)\r\n this.bounds = makeRange(0, this.size)\r\n }\r\n\r\n @observable loading: boolean = false\r\n\r\n @observable year: number = 0\r\n\r\n @action\r\n async setYear(year: number) {\r\n if (this.year === year) return\r\n this.year = year\r\n this.loading = true\r\n const rv = await api.getTimeSeries(this.projectId, this.resultId, this.year)\r\n runInAction(() => {\r\n this.initData(rv.data, year)\r\n //this.initRange()\r\n this.loading = false\r\n })\r\n }\r\n\r\n @observable items: TimeSeriesItem[] = []\r\n @observable groups: TimeSeriesGroup[] = []\r\n @observable nameToItem: Map = new Map()\r\n\r\n @observable size: number = 0\r\n @observable range: Range = makeRange(0, this.size)\r\n @observable bounds: Range = makeRange(0, this.size)\r\n\r\n @computed get itemsTop(): TimeSeriesItem[] {\r\n return this.items.filter(x => x.selectedTop)\r\n }\r\n\r\n @computed get itemsBottom(): TimeSeriesItem[] {\r\n return this.items.filter(x => x.selectedBottom)\r\n }\r\n\r\n @computed get axisTop(): string[] {\r\n const units = this.itemsTop.map(x => x.units)\r\n const unique = [...new Set(units)]\r\n return unique\r\n }\r\n\r\n @computed get axisBottom(): string[] {\r\n const units = this.itemsBottom.map(x => x.units)\r\n const unique = [...new Set(units)]\r\n return unique\r\n }\r\n\r\n @computed get hasTop(): boolean {\r\n return this.items.some(x => x.selectedTop)\r\n }\r\n\r\n @computed get hasBottom(): boolean {\r\n return this.items.some(x => x.selectedBottom)\r\n }\r\n\r\n @action selectTop(name: string, selected: boolean) {\r\n const item = this.nameToItem.get(name)\r\n if (!item) { return }\r\n item.selectedTop = selected\r\n }\r\n\r\n @action selectBottom(name: string, selected: boolean) {\r\n const item = this.nameToItem.get(name)\r\n if (!item) { return }\r\n item.selectedBottom = selected\r\n }\r\n\r\n @action setColor(name: string, color: string) {\r\n const item = this.nameToItem.get(name)\r\n if (!item) { return }\r\n item.color = color\r\n }\r\n\r\n\r\n @action setRange(r: Range) {\r\n let rv = round(r)\r\n rv = ensureMinLength(rv, MIN_RANGE)\r\n rv = ensureBounds(rv, this.bounds)\r\n this.range = rv\r\n }\r\n\r\n @action panLeft() {\r\n const r = panLeft(this.range)\r\n this.setRange(r)\r\n }\r\n\r\n @action panRight() {\r\n const r = panRight(this.range)\r\n this.setRange(r)\r\n }\r\n\r\n @action zoomIn() {\r\n const r = zoomIn(this.range)\r\n this.setRange(r)\r\n }\r\n\r\n @action zoomOut() {\r\n const r = zoomOut(this.range)\r\n this.setRange(r)\r\n }\r\n\r\n\r\n // export time series data\r\n @observable loadingCsv: boolean = false\r\n\r\n @action\r\n async exportCsv() {\r\n this.loadingCsv = true\r\n const content = await api.exportTimeSeries(this.projectId, this.resultId, this.year)\r\n runInAction(() => {\r\n this.loadingCsv = false\r\n download(content, 'timeseries.csv', 'text/csv')\r\n })\r\n }\r\n\r\n // export multi year time series data\r\n @observable loadingMultiYearCsv: boolean = false\r\n\r\n @action\r\n async exportMultiYearCsv() {\r\n this.loadingMultiYearCsv = true\r\n const content = await api.exportMultiYearTimeSeries(this.projectId, this.resultId)\r\n runInAction(() => {\r\n this.loadingMultiYearCsv = false\r\n download(content, 'timeseries.csv', 'text/csv')\r\n })\r\n }\r\n}\r\n\r\n\r\nexport class TimeSeriesGroup {\r\n constructor(x: Partial) {\r\n Object.assign(this, x)\r\n this.items = this.mainItems.concat(...this.extraItems)\r\n makeObservable(this)\r\n }\r\n\r\n id: string = v4()\r\n name: string = ''\r\n mainItems: TimeSeriesItem[] = []\r\n extraItems: TimeSeriesItem[] = []\r\n items: TimeSeriesItem[] = []\r\n\r\n @observable showExtra: boolean = false\r\n @action toggleShowExtra() { this.showExtra = !this.showExtra }\r\n}\r\n\r\n\r\nexport class TimeSeriesItem {\r\n constructor(x: Partial) {\r\n Object.assign(this, x)\r\n this.points = this.data.map((x, index) => [index, x])\r\n makeObservable(this)\r\n }\r\n\r\n id: string = v4()\r\n name: string = ''\r\n units: string = ''\r\n data: number[] = []\r\n points: [number, number][] = []\r\n\r\n @observable color: string = '#000000'\r\n @observable selectedTop: boolean = false\r\n @observable selectedBottom: boolean = false\r\n}\r\n","import {action, makeObservable, observable, runInAction} from 'mobx'\r\nimport {TimeSeriesViewerModel} from 'components/project/pages/Results/time-series/TimeSeriesViewerModel'\r\nimport api from 'services/api'\r\nimport download from 'downloadjs'\r\n\r\nexport interface ResultDetails {\r\n // summary\r\n financial: FinancialSummary\r\n price: EnergyPriceSummary\r\n revenue: RevenueSummary\r\n performance: PerformanceSummary\r\n\r\n summaryChart: ResultSummaryChart\r\n\r\n cashflow: number[]\r\n cashflowCumulative: number[]\r\n cashflowTableRevenues: string[]\r\n cashflowTable: ResultCashFlowTableItem[]\r\n cashflowTree: ResultCashFlowTreeItem[]\r\n\r\n regulationMarketResult: RegulationMarketResult[]\r\n storage: StorageResult\r\n wind: WindResult\r\n solar: SolarResult\r\n revenueResult: RevenueResult\r\n\r\n timeSeries: ResultTimeSeries\r\n}\r\n\r\n\r\nexport interface ResultMetric {\r\n child: boolean\r\n label: string\r\n value: string\r\n valueAverage: string\r\n unit?: string\r\n}\r\n\r\nexport interface ResultValueItem {\r\n first: number\r\n average: number\r\n}\r\n\r\nexport interface FinancialSummary {\r\n realDiscountRate: number\r\n projectLifeTime: number\r\n capitalCost: number\r\n operatingCost: number\r\n augmentationCost:number\r\n contractParticipation: string\r\n marketParticipation: string\r\n capacityMarketParticipation :string\r\n revenue: number\r\n irr: number | null\r\n npv: number\r\n lcoe: number\r\n}\r\n\r\nexport interface EnergyPriceSummaryItem {\r\n name: string\r\n purchasePrice: ResultValueItem\r\n salePrice: ResultValueItem\r\n}\r\n\r\nexport interface EnergyPriceSummary {\r\n markets: EnergyPriceSummaryItem[]\r\n capacityPrice: number | null\r\n}\r\n\r\nexport interface EnergyMarketPerformanceSummaryItem {\r\n name: string\r\n solarEnergy: ResultValueItem\r\n windEnergy: ResultValueItem\r\n storageEnergy: ResultValueItem\r\n}\r\n\r\nexport interface CapacityMarketPerformanceSummaryItem {\r\n name: string\r\n storageEnergy: ResultValueItem\r\n}\r\n\r\nexport interface EnergyRevenueSummaryItem {\r\n name: string\r\n solarRevenue: ResultValueItem\r\n windRevenue: ResultValueItem\r\n storageRevenue: ResultValueItem\r\n}\r\n\r\nexport interface RegulationRevenueSummaryItems {\r\n name: string\r\n regUpEnergyRevenue: ResultValueItem\r\n regUpCapacityRevenue: ResultValueItem\r\n regUpMileageRevenue: ResultValueItem\r\n regDownEnergyExpense: ResultValueItem\r\n regDownCapacityRevenue: ResultValueItem\r\n regDownMileageRevenue: ResultValueItem\r\n}\r\n\r\nexport interface CapacityRevenueSummaryItems {\r\n name: string\r\n energyRevenue: ResultValueItem\r\n capacityRevenue: ResultValueItem\r\n capacityBid:ResultValueItem\r\n}\r\n\r\nexport interface ContractRevenueSummaryItem {\r\n name: string\r\n revenue: ResultValueItem\r\n}\r\n\r\nexport interface RevenueSummary {\r\n energyMarkets: EnergyRevenueSummaryItem[]\r\n regulationMarkets: RegulationRevenueSummaryItems[]\r\n capacityMarkets: CapacityRevenueSummaryItems[]\r\n contracts: ContractRevenueSummaryItem[]\r\n}\r\n\r\nexport interface RegulationPerformanceSummaryItems {\r\n name: string\r\n regUpEnergyExports: ResultValueItem\r\n regUpCapacityCommitted: ResultValueItem\r\n regDownEnergyImports: ResultValueItem\r\n regDownCapacityCommitted: ResultValueItem\r\n}\r\n\r\nexport interface PerformanceSummary {\r\n solarProduction: ResultValueItem\r\n storageThroughput: ResultValueItem\r\n solarToStorage: ResultValueItem\r\n gridToStorage: ResultValueItem\r\n solarClippedEnergy: ResultValueItem\r\n curtailedEnergy: ResultValueItem\r\n otherClippedEnergy: ResultValueItem\r\n excessElectricity: ResultValueItem | null\r\n meanStateOfCharge: ResultValueItem | null\r\n cycleCost: ResultValueItem | null\r\n hoursFromGrid: ResultValueItem | null\r\n hoursToGrid: ResultValueItem | null\r\n hoursIdle: ResultValueItem | null\r\n utilizationRate: ResultValueItem | null\r\n energyMarkets: EnergyMarketPerformanceSummaryItem[]\r\n capacityMarkets: CapacityMarketPerformanceSummaryItem[]\r\n totalEnergy: ResultValueItem\r\n windProduction: ResultValueItem\r\n acLineLosses: ResultValueItem\r\n transformerLosses: ResultValueItem\r\n regulationMarketsThroughputRegUp: ResultValueItem\r\n regulationMarketsThroughputRegDown: ResultValueItem\r\n regulationMarkets: RegulationPerformanceSummaryItems[]\r\n}\r\n\r\n\r\nexport interface ResultSummaryChartSeries {\r\n name: string\r\n color: string\r\n}\r\n\r\nexport interface ResultSummaryChartDay {\r\n prices: number[][]\r\n revenues: number[][]\r\n}\r\n\r\nexport interface ResultSummaryChart {\r\n prices: ResultSummaryChartSeries[]\r\n revenues: ResultSummaryChartSeries[]\r\n days: ResultSummaryChartDay[]\r\n average: ResultSummaryChartDay\r\n highestRevenueDayIndex: number\r\n lowestRevenueDayIndex: number\r\n}\r\n\r\n\r\nexport interface ResultTimeSeries {\r\n groups: ResultTimeSeriesGroup[],\r\n items: ResultTimeSeriesItem[],\r\n}\r\n\r\n\r\nexport interface ResultTimeSeriesGroup {\r\n name: string,\r\n mainNames: string[],\r\n extraNames: string[],\r\n}\r\n\r\n\r\nexport interface ResultTimeSeriesItem {\r\n id: string,\r\n color: string,\r\n name: string,\r\n units: string,\r\n data: number[],\r\n}\r\n\r\n\r\nexport interface ResultCashFlowTableItem {\r\n year: number\r\n solar: number\r\n wind: number\r\n storage: number\r\n capEx: number\r\n opEx: number\r\n augmentation:number\r\n revenues: number[]\r\n revenue: number\r\n income: number\r\n cumulative: number\r\n}\r\n\r\n\r\nexport interface ResultCashFlowTreeItem {\r\n name: string\r\n values: number[]\r\n children?: ResultCashFlowTreeItem[]\r\n}\r\n\r\n\r\nexport interface MonthMetricResultItem {\r\n minimum: number\r\n averageMinimum: number\r\n average: number\r\n averageMaximum: number\r\n maximum: number\r\n byHour: number[] // (x24)\r\n}\r\n\r\nexport interface StorageResult {\r\n status: number\r\n nameplateCapacity: number // MWh\r\n nameplatePower?: number // MW\r\n capitalCost: number // $\r\n augmentationLimit: number // %\r\n levelizedCostOfStorage: number\r\n hasConverter?: boolean\r\n saleMarketNames?: string[]\r\n purchaseMarketNames?: string[]\r\n items: StorageResultItem[]\r\n stateOfChargeTimeSeries: number[] // %\r\n stateOfChargeByMonth: MonthMetricResultItem[] // (x12)\r\n capacityBid: number\r\n annualEffectiveFullCycles: number\r\n dailyEffectiveFullCycles: number\r\n}\r\n\r\nexport interface StorageResultItem {\r\n year: number\r\n maximum: number // MWh\r\n minimum: number // MWh\r\n augmentation: number // MWh\r\n augmentationFraction: number // *\r\n augmentationCost: number // $/kWh\r\n augmentationTotalCost: number // $\r\n energySold?: number[]\r\n energyPurchased?: number[]\r\n stateOfChargePercentile25: number // % of steps > 25% SOC\r\n stateOfChargePercentile50: number // % of steps > 50% SOC\r\n stateOfChargePercentile75: number // % of steps > 75% SOC\r\n equivalentCycles: number // #\r\n energyInput: number // MWh\r\n energyOutput: number // MWh\r\n roundtripEfficiency: number // %\r\n utilizationRate: number // %\r\n cycleCost: number // $/MWh\r\n converterEnergyInput?: number // MWh\r\n converterEnergyOutput?: number // MWh\r\n operatingTotalCost: number // $, in cash flow as \"operating\"\r\n}\r\n\r\n\r\nexport interface SolarResult {\r\n status: number\r\n pvs: SolarPvResult[]\r\n}\r\n\r\nexport interface SolarPvResult {\r\n nameplateCapacity: number // MW\r\n derateFactor: number // %\r\n capitalExpenses: number // $\r\n items: SolarResultItem[]\r\n totalProductionByMonth: number[] // MW (x12)\r\n}\r\n\r\nexport interface SolarResultItem {\r\n year: number // 0 .. lifetime-1\r\n production: number // MWh\r\n clippedProduction: number // MWh\r\n energyYield: number // MWh/MW\r\n degradation: number // % for this year\r\n capacityFactor: number // %\r\n operatingTotalCost: number // $\r\n}\r\n\r\n\r\nexport interface WindResult {\r\n status: number\r\n windTurbines: WindTurbineResult[]\r\n}\r\n\r\nexport interface WindTurbineResult {\r\n nameplateCapacity: number\r\n totalLosses: number\r\n capitalExpenses: number\r\n items: WindTurbineResultItem[]\r\n totalProductionByMonth: number[] // MW (x12)\r\n}\r\n\r\nexport interface WindTurbineResultItem {\r\n year: number\r\n production: number\r\n energyYield: number\r\n capacityFactor: number\r\n operatingTotalCost: number\r\n}\r\n\r\nexport interface RegulationMarketResult {\r\n regUpCapacityRevenueTimeseries: number[]\r\n regUpEnergyRevenueTimeseries: number[]\r\n regUpCapacityRevenue: number\r\n regUpCapacityCommitted: number\r\n regUpEnergyRevenue: number\r\n regUpMileageRevenue: number\r\n regUpEnergyExports: number\r\n regUpMileage: number\r\n regDownCapacityRevenueTimeseries: number[]\r\n regDownEnergyExpenseTimeseries: number[]\r\n regDownCapacityRevenue: number\r\n regDownCapacityCommitted: number\r\n regDownEnergyExpense: number\r\n regDownMileageRevenue: number\r\n regDownMileage: number\r\n regDownEnergyImports: number\r\n}\r\n\r\nexport interface RevenueResult {\r\n columns: RevenueResultCol\r\n items: RevenueResultItem[]\r\n}\r\n\r\nexport interface RevenueResultCol {\r\n energyMarkets: string[]\r\n capacityMarkets: string[]\r\n contracts: string[]\r\n regulationMarkets: string[]\r\n}\r\n\r\nexport interface RevenueResultItem {\r\n year: number // 0 .. lifetime-1\r\n operatingCost: number\r\n augmentationCost:number\r\n energyMarkets: RevenueResultEnergyMarketItem[]\r\n capacityMarkets: RevenueResultCapacityMarketItem[]\r\n regulationMarkets: RevenueResultRegulationMarketItem[]\r\n contracts: RevenueResultContractItem[]\r\n}\r\n\r\nexport interface RevenueResultRegulationMarketItem {\r\n totalRegUpRevenue: number\r\n totalRegUpRevenueChange: number\r\n totalRegDownRevenue: number\r\n totalRegDownRevenueChange: number\r\n regUpEnergyExported: number\r\n regDownEnergyImported: number\r\n}\r\n\r\nexport interface RevenueResultEnergyMarketItem {\r\n revenue: number\r\n energy: number\r\n price: number\r\n revenueChange: number\r\n priceChange: number\r\n solarRevenue: number\r\n storageRevenue: number\r\n solarEnergy: number\r\n storageEnergy: number,\r\n windRevenue: number,\r\n windEnergy: number\r\n}\r\n\r\nexport interface RevenueResultCapacityMarketItem {\r\n revenue: number\r\n energy: number\r\n price: number\r\n revenueChange: number\r\n priceChange: number\r\n}\r\n\r\nexport interface RevenueResultContractItem {\r\n revenue: number\r\n revenueChange: number,\r\n energy:number\r\n}\r\n\r\n\r\nexport const defaultDetails: ResultDetails = {\r\n financial: {\r\n projectLifeTime: 0,\r\n realDiscountRate: 0,\r\n capitalCost: 0,\r\n operatingCost: 0,\r\n contractParticipation: '',\r\n marketParticipation: '',\r\n capacityMarketParticipation:'',\r\n revenue: 0,\r\n irr: 0,\r\n npv: 0,\r\n lcoe: 0,\r\n augmentationCost:0\r\n },\r\n price: {\r\n markets: [\r\n {name: 'DAM', salePrice: {first: 1, average: 0.5}, purchasePrice: {first: 2, average: 1.5}},\r\n ],\r\n capacityPrice: 0,\r\n },\r\n revenue: {\r\n energyMarkets: [{ name: 'EM', solarRevenue: { first: 10, average: 20.5 }, windRevenue: { first: 3211, average: 4111.5 }, storageRevenue: { first: 32, average: 41.5 } }],\r\n regulationMarkets: [{ name: 'RM', regUpEnergyRevenue: { first: 10, average: 20.5 }, regUpCapacityRevenue: { first: 32, average: 41.5 }, regUpMileageRevenue: { first: 32, average: 41.5 }, regDownEnergyExpense: { first: 10, average: 20.5 }, regDownCapacityRevenue: { first: 32, average: 41.5 }, regDownMileageRevenue: { first: 32, average: 41.5 } }],\r\n capacityMarkets: [{name: 'CM', energyRevenue: {first: 10, average: 20.5}, capacityRevenue: {first: 32, average: 41.5},capacityBid:{first:0,average:0}}],\r\n contracts: [],\r\n },\r\n performance: {\r\n windProduction: { first: 1, average: 0.5 },\r\n solarProduction: {first: 1, average: 0.5},\r\n storageThroughput: {first: 1, average: 0.5},\r\n solarToStorage: {first: 1, average: 0.5},\r\n gridToStorage: { first: 1, average: 0.5 },\r\n curtailedEnergy: {first: 1, average: 0.5},\r\n solarClippedEnergy: {first: 1, average: 0.5},\r\n otherClippedEnergy: { first: 1, average: 0.5 },\r\n excessElectricity: { first: 1, average: 0.5 },\r\n meanStateOfCharge: {first: 1, average: 0.5},\r\n cycleCost: {first: 1, average: 0.5},\r\n hoursFromGrid: {first: 1, average: 0.5},\r\n hoursToGrid: {first: 1, average: 0.5},\r\n hoursIdle: {first: 1, average: 0.5},\r\n utilizationRate: {first: 1, average: 0.5},\r\n energyMarkets: [\r\n {name: 'DAM', solarEnergy: {first: 1, average: 0.5}, windEnergy: {first: 211, average: 111.5}, storageEnergy: {first: 2, average: 1.5}},\r\n ],\r\n capacityMarkets: [\r\n {name: 'CM', storageEnergy: {first: 2, average: 1.5}},\r\n ],\r\n totalEnergy: { first: 1, average: 0.5 },\r\n acLineLosses: { first: 1, average: 0.5 },\r\n transformerLosses: { first: 1, average: 0.5 },\r\n regulationMarketsThroughputRegUp: { first: 1, average: 0.5 },\r\n regulationMarketsThroughputRegDown: { first: 1, average: 0.5 },\r\n regulationMarkets: [\r\n { name: 'Reg Mkt', regDownCapacityCommitted: { first: 1, average: 0.5 }, regDownEnergyImports: { first: 1, average: 0.5 }, regUpCapacityCommitted: { first: 1, average: 0.5 }, regUpEnergyExports: { first: 1, average: 0.5 } }\r\n ]\r\n },\r\n\r\n summaryChart: {\r\n prices: [],\r\n revenues: [],\r\n days: [],\r\n average: {prices: [], revenues: []},\r\n highestRevenueDayIndex: 0,\r\n lowestRevenueDayIndex: 0,\r\n },\r\n\r\n cashflow: [],\r\n cashflowCumulative: [],\r\n cashflowTableRevenues: [],\r\n cashflowTable: [],\r\n cashflowTree: [],\r\n\r\n regulationMarketResult:[],\r\n\r\n storage: {\r\n status: 1,\r\n nameplateCapacity: 0, nameplatePower: 0, capitalCost: 0, augmentationLimit: 0, levelizedCostOfStorage: 0,\r\n hasConverter: false,\r\n items: [],\r\n stateOfChargeTimeSeries: [],\r\n stateOfChargeByMonth: [],\r\n capacityBid: 0,\r\n annualEffectiveFullCycles: 0,\r\n dailyEffectiveFullCycles: 0\r\n },\r\n wind: {\r\n status: 1,\r\n windTurbines: [],\r\n },\r\n solar: {\r\n status: 1,\r\n pvs: [],\r\n },\r\n revenueResult: {\r\n columns: {\r\n energyMarkets: [],\r\n capacityMarkets: [],\r\n contracts: [],\r\n regulationMarkets: []\r\n },\r\n items: [],\r\n },\r\n\r\n timeSeries: {\r\n groups: [],\r\n items: [],\r\n },\r\n}\r\n\r\n\r\nexport type ResultDetailsSectionKind\r\n = 'summary'\r\n | 'wind'\r\n | 'solar'\r\n | 'storage'\r\n | 'augmentation'\r\n | 'revenue'\r\n | 'timeseries'\r\n | 'cashflow'\r\n | 'proforma'\r\n | 'regMarket'\r\n | 'compareEconomics'\r\n\r\n\r\nexport class ResultDetailsModel {\r\n constructor(public projectId: string, public resultId: string, public details: ResultDetails) {\r\n makeObservable(this)\r\n this.timeSeriesViewerModel = new TimeSeriesViewerModel(this.projectId, this.resultId, details.timeSeries)\r\n }\r\n\r\n @observable section: ResultDetailsSectionKind = 'summary'\r\n\r\n @observable timeSeriesViewerModel: TimeSeriesViewerModel\r\n\r\n @action selectSection(x: ResultDetailsSectionKind) {\r\n this.section = x\r\n }\r\n\r\n\r\n // export cash flow data\r\n @observable loadingCashFlowCsv: boolean = false\r\n\r\n @action\r\n async exportCashFlowCsv() {\r\n this.loadingCashFlowCsv = true\r\n const content = await api.exportCashFlow(this.projectId, this.resultId)\r\n runInAction(() => {\r\n this.loadingCashFlowCsv = false\r\n download(content, 'cashflow.csv', 'text/csv')\r\n })\r\n }\r\n}\r\n","import { navigate } from '@reach/router'\r\nimport { action, computed, makeObservable, observable, runInAction } from 'mobx'\r\nimport api, { UserEmailNotification } from 'services/api'\r\nimport { ResultCache } from 'components/project/ResultCache'\r\nimport { delay } from 'utils'\r\nimport { defaultDetails, ResultDetailsModel } from 'components/project/results-details'\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web'\r\nimport envVariables from 'env-variables.json'\r\nimport internal from 'stream'\r\nimport { useInternationalization } from 'Kendo-Intl-5'\r\n\r\nexport interface ResultTable {\r\n header: ResultHeader\r\n items: ResultItem[]\r\n}\r\n\r\ninterface SuperimposedValue {\r\n id: string\r\n name: string\r\n format: string\r\n value: string\r\n}\r\n\r\ninterface SimulationPoint {\r\n superimposedValues: SuperimposedValue[]\r\n xIndex: number\r\n yIndex: number\r\n}\r\nexport interface OstResult {\r\n planes: OstPlane[]\r\n blendedPlane: number[]\r\n ostLegends: OstLegend[]\r\n superimposedValues: SuperimposedValue[]\r\n simulationPoints: SimulationPoint[]\r\n}\r\n\r\nexport interface OstPlane {\r\n name: string\r\n color: string\r\n data: number[][]\r\n}\r\n\r\nexport interface OstLegend {\r\n name: string\r\n color: string\r\n}\r\n\r\nexport interface OstDimension {\r\n ids: string[]\r\n displayNames: string[]\r\n components: string[]\r\n units: string[]\r\n points: number[][]\r\n steps: number[]\r\n isXAxis: boolean\r\n isYAxis: boolean\r\n selectedValue: number\r\n}\r\n\r\nexport interface ResultHeader {\r\n sensitivity: SensitivityCol[]\r\n optimization: OptimizationCol[]\r\n revenue: RevenueCol[]\r\n}\r\n\r\nexport interface SensitivityCol {\r\n name: string\r\n units: string\r\n}\r\n\r\nexport type OptimizationColKind = 'solar' | 'storage' | 'wind' | 'converter'\r\n\r\nexport interface OptimizationCol {\r\n name: string\r\n units: string[]\r\n discrete: boolean\r\n kind: OptimizationColKind\r\n}\r\n\r\nexport interface RevenueCol {\r\n name: string\r\n}\r\n\r\n\r\nexport interface ResultItem {\r\n id: string\r\n baseCaseId: string\r\n\r\n // sensitivity group\r\n sensitivity: number[]\r\n\r\n // optimization group\r\n optimization: ((number | null)[])[]\r\n\r\n // revenue group\r\n revenue: number[]\r\n totalRevenue: number\r\n\r\n // cost group\r\n capex: number\r\n opex: number\r\n\r\n // economics group\r\n npv: number\r\n irr: number | null\r\n payback: number | null\r\n lcoe: number | null\r\n}\r\n\r\nexport const formatOptimization = (xs: (number | null)[]) => xs\r\n .filter(x => x !== null)\r\n .map(x => useInternationalization().formatNumber(x!, 'n'))\r\n .join(' / ')\r\n\r\nconst defaultTable: ResultTable = {\r\n header: {\r\n sensitivity: [],\r\n optimization: [],\r\n revenue: [],\r\n },\r\n items: [],\r\n}\r\n\r\nexport const defaultOstDimension: OstDimension = {\r\n ids: [],\r\n displayNames: [],\r\n components: [],\r\n units: [],\r\n points: [],\r\n steps: [],\r\n isXAxis: false,\r\n isYAxis: false,\r\n selectedValue: 0,\r\n}\r\n\r\nexport const defaultOstResult: OstResult = {\r\n planes: [],\r\n blendedPlane: [],\r\n ostLegends: [],\r\n superimposedValues: [],\r\n simulationPoints: []\r\n}\r\n\r\nexport type ResultState = 'loading' | 'error' | 'ready' | 'cancelled' | 'blank'\r\n\r\nexport type OptimizationTableKind = 'all' | 'group'\r\n\r\nexport type DetailsKind = 'summary' | 'cashflow' | 'timeseries'\r\n\r\nexport type ResultTabKind = 'sensitivity' | 'graph' | 'optimization' | 'details'\r\n\r\nexport type DimensionState = 'loading' | 'unavailable' | 'ready' | 'changed' | 'error'\r\n\r\nexport type ResultSelection =\r\n { kind: 'none' } |\r\n { kind: 'sensitivity', sensitivity: number, tableKind: OptimizationTableKind } |\r\n { kind: 'optimization', sensitivity: number, tableKind: OptimizationTableKind, optimization: number/*, baseCase?: number*/ }\r\n\r\nconst formatSelection = (s: ResultSelection): string => {\r\n switch (s.kind) {\r\n case 'none':\r\n return '-'\r\n case 'sensitivity':\r\n return `${s.sensitivity}+${s.tableKind}`\r\n case 'optimization':\r\n return `${s.sensitivity}+${s.tableKind}+${s.optimization}`/*+${s.baseCase}*/\r\n }\r\n}\r\n\r\nconst parseSelection = (query: string): ResultSelection => {\r\n const params = (query ?? '').split('+')\r\n if (params.length === 3)\r\n return { kind: 'optimization', sensitivity: Number(params[0]), tableKind: params[1] as OptimizationTableKind, optimization: Number(params[2]) }\r\n if (params.length === 2)\r\n return { kind: 'sensitivity', sensitivity: Number(params[0]), tableKind: params[1] as OptimizationTableKind }\r\n return { kind: 'none' }\r\n}\r\n\r\n\r\nexport class ResultModel {\r\n constructor(public id: string) { makeObservable(this) }\r\n\r\n cache = new ResultCache(this.id)\r\n\r\n @observable state: ResultState = 'loading'\r\n @observable detailState: ResultState = 'loading'\r\n @observable progress: number = 0\r\n @observable detailProgress: number = 0;\r\n @observable selection: ResultSelection = { kind: 'none' }\r\n @observable estimatedRemainingTime: string = \"00:00:00\"\r\n\r\n @action\r\n async calculate() {\r\n this.cache.clear()\r\n this.selection = { kind: 'none' }\r\n\r\n this.state = 'loading'\r\n this.progress = 0\r\n const rv = await api.calculate(this.id)\r\n runInAction(() => {\r\n this.progress = rv.progress ?? 0\r\n if (rv.status !== 'ready') return\r\n this.state = 'ready'\r\n })\r\n }\r\n\r\n @action\r\n async checkStatus() {\r\n if (this.state === 'ready') return\r\n const rv = await api.getStatus(this.id)\r\n runInAction(() => {\r\n this.progress = Math.max(this.progress, rv.progress ?? 0)\r\n this.estimatedRemainingTime = rv.estimatedRemainingTime\r\n if (rv.status === 'cancelled') {\r\n this.state = 'cancelled'\r\n }\r\n if (rv.status !== 'ready') return\r\n this.state = 'ready'\r\n })\r\n }\r\n\r\n @action\r\n async cancelCalculation(): Promise {\r\n if (this.state === 'ready') return false\r\n const rv = await api.cancelCalculation(this.id)\r\n //if (rv == true)\r\n //this.state = 'cancelled'\r\n return rv\r\n }\r\n\r\n @action\r\n async cancelDetailedCalculation(): Promise {\r\n if (this.detailsState === 'ready') return false\r\n const rv = await api.cancelDetailsCalculation(this.id, this.resultId)\r\n //if (rv == true)\r\n //this.detailState = 'cancelled'\r\n return rv\r\n }\r\n\r\n // selection\r\n @action\r\n async selectSensitivity(index: number) {\r\n this.selection = {\r\n kind: 'sensitivity',\r\n sensitivity: index,\r\n tableKind: 'all',\r\n }\r\n await this.navigateSelection('optimization')\r\n }\r\n\r\n @action\r\n async selectOptimizationKind(kind: OptimizationTableKind) {\r\n if (this.selection.kind === 'none') return\r\n this.selection = {\r\n kind: 'sensitivity',\r\n sensitivity: this.selection.sensitivity,\r\n tableKind: kind,\r\n }\r\n await this.navigateSelection('optimization')\r\n }\r\n\r\n @action\r\n async selectOptimization(index: number) {\r\n if (this.selection.kind === 'none') return\r\n this.selection = {\r\n kind: 'optimization',\r\n sensitivity: this.selection.sensitivity,\r\n tableKind: this.selection.tableKind,\r\n optimization: index,\r\n //baseCase: this.selection.baseCase\r\n }\r\n await this.navigateSelection('details')\r\n\r\n }\r\n\r\n @action\r\n async navigateSelection(view: ResultTabKind) {\r\n //if (view == 'graph')\r\n //await navigate(`/project/${this.id}/results/${view}`)\r\n this.detailProgress = 0\r\n if (view == 'graph') {\r\n this.selection = { kind: 'none' }\r\n }\r\n const selection = formatSelection(this.selection)\r\n\r\n await navigate(`/project/${this.id}/results/${view}/${selection}`)\r\n\r\n const appInsights = new ApplicationInsights({\r\n config: {\r\n connectionString: envVariables[process.env.NODE_ENV].appInsightsConnString\r\n }\r\n });\r\n appInsights.loadAppInsights();\r\n appInsights.trackPageView();\r\n }\r\n\r\n @action\r\n async select(query: string) {\r\n const selection = parseSelection(query)\r\n this.selection = selection\r\n await this.fetchDataForSelection()\r\n }\r\n\r\n @action\r\n async fetchDataForSelection() {\r\n await this.fetchSensitivityTable()\r\n if (this.selection.kind === 'sensitivity' || this.selection.kind === 'optimization')\r\n await this.fetchOptimizationTable(this.selection.sensitivity, this.selection.tableKind)\r\n if (this.selection.kind === 'optimization')\r\n await this.fetchDetails(this.selection.optimization/*, this.selection.baseCase*/)\r\n\r\n runInAction(() => {\r\n // if there is single sensitivity case -> select it\r\n if (this.selection.kind === 'none' && this.sensitivityTable.items.length === 1)\r\n this.selectSensitivity(0)\r\n })\r\n }\r\n\r\n\r\n // sensitivity tables\r\n @observable sensitivityTable: ResultTable = defaultTable\r\n @observable sensitivityTableState: ResultState = 'loading'\r\n @observable sensitivityGraphState: DimensionState = 'loading'\r\n @observable ostDimension: OstDimension[] | null = [defaultOstDimension]\r\n @observable ostResult: OstResult | null = defaultOstResult\r\n\r\n @action\r\n async fetchSensitivityTable() {\r\n this.sensitivityTableState = 'loading'\r\n const t = await this.cache.getSensitivity()\r\n this.ostDimension = this.cache.ostDimensions\r\n runInAction(() => {\r\n this.sensitivityTable = t\r\n this.sensitivityTableState = 'ready'\r\n })\r\n }\r\n\r\n @action\r\n async fetchOstResult() {\r\n const rv = await this.cache.getOstResult(/*this.ostDimension*/)\r\n if (rv && rv.blendedPlane && rv.planes.length > 0) {\r\n this.ostResult = rv\r\n this.cache.ostResultState = 'ready'\r\n this.sensitivityGraphState = 'ready'\r\n }\r\n else\r\n this.cache.ostResultState = 'error'\r\n }\r\n\r\n @action selectDimension(index: number, key: selectedValue) {\r\n const rv = this.cache.selectDimension(index, key)\r\n this.ostDimension = rv\r\n return this.ostDimension\r\n }\r\n\r\n @computed get selectedSensitivityCaseItem(): ResultItem | null {\r\n return this.selection.kind === 'sensitivity' || this.selection.kind === 'optimization' ?\r\n this.sensitivityTable.items[this.selection.sensitivity] : null\r\n }\r\n\r\n\r\n // optimization table\r\n @observable optimizationTable: ResultTable = defaultTable\r\n @observable optimizationTableState: ResultState = 'loading'\r\n\r\n @observable baseCaseOptimizationTable: ResultTable = defaultTable\r\n @observable compareEconomicsOptimizationTable: ResultTable = defaultTable\r\n @observable compareEconomicsOptimizationTableState: ResultState = 'blank'\r\n @observable compareEconomicsBaseCaseOptimizationTable: ResultTable = defaultTable\r\n @observable baseCaseOptimizationState: ResultState = 'blank'\r\n @observable baseCaseOptimizationTableState: ResultState = 'blank'\r\n @observable baseCaseOptimizationTableKind: OptimizationTableKind = 'all'\r\n @observable useZeroCashFlow: boolean = true\r\n\r\n @action\r\n async fetchOptimizationTable(index: number, kind: OptimizationTableKind) {\r\n this.optimizationTableState = 'loading'\r\n const t = await this.cache.getOptimization(index, kind)\r\n runInAction(() => {\r\n this.clearBaseCaseSelection()\r\n this.optimizationTable = t\r\n this.optimizationTableState = 'ready'\r\n\r\n })\r\n }\r\n @action\r\n async fetchSelectBaseCaseOptimizationTable(index: number, kind: OptimizationTableKind) {\r\n this.baseCaseOptimizationTableState = 'loading'\r\n const t = await this.cache.getOptimization(index, kind)\r\n this.baseCaseOptimizationTable = t\r\n this.baseCaseOptimizationTableState = 'ready'\r\n }\r\n @action clearBaseCaseSelection = () => {\r\n this.baseCaseState = 'blank'\r\n this.baseCaseOptimizationTableState = 'blank'\r\n this.baseCaseOptimizationState = 'blank'\r\n }\r\n @action\r\n async fetchBaseCaseOptimizationTable(index: number) {\r\n const t = await this.cache.getBaseCaseOptimization(index, this.baseCaseIndex)\r\n this.compareEconomicsBaseCaseOptimizationTable = t\r\n }\r\n @action setUseZeroCashFlow(x: boolean) { this.useZeroCashFlow = x }\r\n\r\n @computed get selectedOptimizationCaseItem(): ResultItem | null {\r\n return this.selection.kind === 'optimization' ?\r\n this.optimizationTable.items[this.selection.optimization] : null\r\n }\r\n\r\n\r\n // details\r\n @observable details: ResultDetailsModel = new ResultDetailsModel(this.id, '', defaultDetails)\r\n @observable detailsState: ResultState = 'loading'\r\n @observable detailsError: Error | null = null\r\n\r\n @observable resultId: string = ''\r\n @action\r\n async fetchDetails(index?: number) {\r\n this.detailsState = 'loading'\r\n if (index == undefined) {\r\n this.cache.removeDetails(this.resultId)\r\n this.detailsError = null\r\n }\r\n else {\r\n this.resultId = this.optimizationTable.items[index].id\r\n }\r\n\r\n await this.calculateDetails(this.resultId)\r\n if (this.detailState != 'cancelled') {\r\n const t = await this.cache.getDetails(this.resultId)\r\n runInAction(() => {\r\n if (t.ok) {\r\n this.details = new ResultDetailsModel(this.id, this.resultId, t.value.data)\r\n this.detailsState = 'ready'\r\n this.detailsError = null\r\n } else {\r\n this.details = new ResultDetailsModel(this.id, '', defaultDetails)\r\n this.detailsState = 'error'\r\n this.detailsError = t.error\r\n }\r\n })\r\n }\r\n }\r\n\r\n @action\r\n async fetchBaseCaseDetails() {\r\n //this.baseCaseId = this.optimizationTable.items[index].id\r\n\r\n await this.calculateBaseCaseDetails(this.baseCaseId)\r\n if (this.baseCaseState != 'cancelled') {\r\n const t = await this.cache.getDetails(this.baseCaseId)\r\n runInAction(() => {\r\n if (t.ok) {\r\n this.baseCaseDetails = new ResultDetailsModel(this.id, this.resultId, t.value.data)\r\n this.baseCaseDetailsState = 'ready'\r\n this.baseCaseError = null\r\n } else {\r\n this.baseCaseDetails = new ResultDetailsModel(this.id, '', defaultDetails)\r\n this.baseCaseDetailsState = 'error'\r\n this.baseCaseError = t.error\r\n }\r\n })\r\n }\r\n }\r\n\r\n @action\r\n async calculateDetails(resultId: string) {\r\n this.detailState = 'loading'\r\n let s = await api.getStatusDetails(this.id, resultId)\r\n if (s.status === 'ready') {\r\n this.detailState = 'ready'\r\n return\r\n }\r\n runInAction(() => {\r\n this.detailProgress = s.progress ?? 0\r\n this.estimatedRemainingTime = s.estimatedRemainingTime\r\n if (s.status !== 'ready') return\r\n this.detailState = 'ready'\r\n })\r\n await api.calculateDetails(this.id, resultId)\r\n\r\n let it = 0\r\n const MAX = 1000\r\n while (it < MAX) {\r\n s = await api.getStatusDetails(this.id, resultId)\r\n if (s.status == 'cancelled') {\r\n this.detailState = 'cancelled'\r\n this.detailsError = null\r\n break\r\n }\r\n this.detailProgress = s.progress ?? 0\r\n this.estimatedRemainingTime = s.estimatedRemainingTime\r\n await delay(5 * 1000)\r\n if (s.status === 'ready') break\r\n }\r\n runInAction(() => {\r\n this.detailProgress = s.progress ?? 0\r\n this.estimatedRemainingTime = s.estimatedRemainingTime\r\n if (s.status !== 'ready') return\r\n this.detailState = 'ready'\r\n })\r\n }\r\n\r\n @action\r\n async calculateBaseCaseDetails(resultId: string) {\r\n this.baseCaseDetailsState = 'loading'\r\n let s = await api.getStatusDetails(this.id, resultId)\r\n if (s.status === 'ready') {\r\n this.baseCaseDetailsState = 'ready'\r\n return\r\n }\r\n runInAction(() => {\r\n this.baseCaseProgress = s.progress ?? 0\r\n this.estimatedBaseCaseRemainingTime = s.estimatedRemainingTime\r\n if (s.status !== 'ready') return\r\n this.baseCaseDetailsState = 'ready'\r\n })\r\n await api.calculateDetails(this.id, resultId)\r\n\r\n let it = 0\r\n const MAX = 1000\r\n while (it < MAX) {\r\n s = await api.getStatusDetails(this.id, resultId)\r\n if (s.status == 'cancelled') {\r\n this.baseCaseDetailsState = 'cancelled'\r\n this.baseCaseError = null\r\n break\r\n }\r\n this.baseCaseProgress = s.progress ?? 0\r\n this.estimatedBaseCaseRemainingTime = s.estimatedRemainingTime\r\n await delay(5 * 1000)\r\n if (s.status === 'ready') break\r\n }\r\n runInAction(() => {\r\n this.baseCaseProgress = s.progress ?? 0\r\n this.estimatedBaseCaseRemainingTime = s.estimatedRemainingTime\r\n if (s.status !== 'ready') return\r\n this.baseCaseDetailsState = 'ready'\r\n })\r\n }\r\n\r\n // infeasible\r\n @computed get infeasible(): boolean {\r\n switch (this.selection.kind) {\r\n case 'none':\r\n return this.sensitivityTableState === 'ready' && this.sensitivityTable.items.length === 0\r\n case 'sensitivity':\r\n return this.optimizationTableState === 'ready' && this.optimizationTable.items.length === 0\r\n case 'optimization':\r\n return false // unreachable\r\n default:\r\n return true\r\n }\r\n }\r\n\r\n @action async setEmailNotification(userEmailNotification: UserEmailNotification): Promise {\r\n let r = await api.setUserEmailNotification(this.id, userEmailNotification)\r\n return r\r\n }\r\n @action async deleteEmailNotification(): Promise {\r\n let r = await api.deleteUserEmailNotification(this.id)\r\n return r\r\n }\r\n\r\n @observable baseCaseState: ResultState = 'blank'\r\n @observable baseCaseId: string = ''\r\n @observable baseCaseIndex: number = -1\r\n @observable proposedCaseId: string = ''\r\n @observable baseCaseDetails: ResultDetailsModel = new ResultDetailsModel(this.id, this.baseCaseId, defaultDetails)\r\n @observable baseCaseDetailsState: ResultState = 'blank'\r\n @observable baseCaseError: Error | null = null\r\n @action setBaseCaseId(x: string) { this.baseCaseId = x }\r\n @action setBaseCaseIndex(x: number) { this.baseCaseIndex = x }\r\n @action setBaseCaseDetailsState(x: ResultState) { this.baseCaseDetailsState = x }\r\n @action setBaseCaseDetailsError(x: Error | null) { this.baseCaseError = x }\r\n @observable baseCaseProgress: number = 0;\r\n @observable estimatedBaseCaseRemainingTime: string = \"00:00:00\"\r\n\r\n\r\n}\r\nexport type selectedValue = 'xAxis' | 'yAxis' | number\r\n\r\n","import {useState, useEffect, ChangeEvent, FocusEvent, KeyboardEvent,ClipboardEvent} from 'react'\r\nimport {ValidationFunc} from 'components/helper/validation'\r\nimport { useInternationalization } from 'Kendo-Intl-5'\r\n\r\n\r\ninterface NumberInputProps {\r\n value: number\r\n onChange?: (x: number) => void\r\n onEnter?: () => void\r\n\r\n id?: string\r\n className?: string\r\n disabled?: boolean,\r\n autoFocus?: boolean\r\n\r\n validator?: ValidationFunc\r\n onPaste?: (x: ClipboardEvent) => void\r\n useCommaAsDecimalPoint: boolean\r\n}\r\n\r\n\r\nconst NumberInput = ({value, onChange, onEnter, id, className, disabled, autoFocus, validator, onPaste, useCommaAsDecimalPoint}: NumberInputProps) => {\r\n let formatedText = String(value)\r\n const intl = useInternationalization()\r\n if (useCommaAsDecimalPoint)\r\n formatedText = formatedText.replace(/\\,/g, \"\").replace(/\\./g, \",\")\r\n\r\n const [text, setText] = useState(formatedText)\r\n const [errors, setErrors] = useState([])\r\n\r\n useEffect(() => {\r\n formatedText = String(value)\r\n if (useCommaAsDecimalPoint)\r\n formatedText = formatedText.replace(/\\,/g, \"\").replace(/\\./g, \",\")\r\n setText(String(formatedText))\r\n }, [value])\r\n\r\n useEffect(() => {\r\n setText(formatedText)\r\n }, [useCommaAsDecimalPoint])\r\n\r\n const commit = (inputText: string) => {\r\n let formatedInputText = inputText\r\n if (useCommaAsDecimalPoint)\r\n formatedInputText = formatedInputText.replace(/\\./g, \"\").replace(/\\,/g, \".\")\r\n const value = Number(formatedInputText)\r\n const good = !Number.isNaN(value)\r\n if (!good) {\r\n const errors = ['Enter a number']\r\n setErrors(errors)\r\n if (useCommaAsDecimalPoint)\r\n formatedInputText = formatedInputText.replace(/\\./g, \"\").replace(/\\,/g, \".\")\r\n } else {\r\n const errors = validator?.(value) ?? []\r\n setErrors(errors)\r\n onChange?.(value)\r\n }\r\n }\r\n\r\n const handleChange = (ev: ChangeEvent) => {\r\n setText(ev.target.value)\r\n setErrors([])\r\n }\r\n\r\n const handleOnPaste = (ev: ClipboardEvent) => {\r\n onPaste?.(ev)\r\n }\r\n const handleBlur = (ev: FocusEvent) => {\r\n commit(text)\r\n }\r\n\r\n const handleKey = (ev: KeyboardEvent) => {\r\n if (ev.key !== 'Enter') return\r\n commit(text)\r\n onEnter?.()\r\n }\r\n\r\n const c = 'form-control ' +\r\n (errors.length > 0 ? 'is-invalid ' : '') +\r\n (className ?? '')\r\n\r\n return (\r\n <>\r\n \r\n {errors.length > 0 &&\r\n
    \r\n {errors.join('\\n')}\r\n
    }\r\n \r\n )\r\n}\r\n\r\n\r\nexport default NumberInput\r\n","import {GoX} from 'react-icons/all'\r\nimport React from 'react'\r\n\r\ninterface ButtonDeleteProps {\r\n onClick?: () => void\r\n}\r\n\r\nconst ButtonDelete = ({onClick}: ButtonDeleteProps) =>\r\n \r\n\r\nexport default ButtonDelete\r\n","import {observer} from 'mobx-react-lite'\r\nimport Collapse from 'react-bootstrap/Collapse'\r\nimport React, {useState} from 'react'\r\nimport {BiCaretDown, BiCaretRight, BiPlusCircle} from 'react-icons/all'\r\nimport FormControl from 'react-bootstrap/FormControl'\r\nimport {CostTable, ComplexCostItem, CostUnit, ComplexCostItems} from 'components/project/model/CostTable'\r\nimport NumberInput from 'components/helper/NumberInput'\r\nimport {Dropdown} from 'react-bootstrap'\r\nimport ButtonDelete from 'components/helper/ButtonDelete'\r\n\r\n\r\ninterface ComplexCostItemProps {\r\n model: CostTable\r\n unitsSet: UnitOptionSet\r\n showReplacement: boolean\r\n useCommaAsDecimalPoint: boolean\r\n}\r\n\r\n\r\nconst DetailCostBreakup = observer(({ model, unitsSet, showReplacement, useCommaAsDecimalPoint }: ComplexCostItemProps) => {\r\n const table = model.complex\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {showReplacement &&\r\n }\r\n \r\n )\r\n})\r\n\r\nexport default DetailCostBreakup\r\n\r\n\r\ninterface ComplexCostTableGroupProps {\r\n label: string\r\n model: ComplexCostItems\r\n units: UnitOption[]\r\n useCommaAsDecimalPoint: boolean\r\n}\r\n\r\n\r\nconst ComplexCostTableGroup = observer(({ label, model, units, useCommaAsDecimalPoint }: ComplexCostTableGroupProps) => {\r\n const [open, setOpen] = useState(false)\r\n const handleAdd = () => model.addNewItem()\r\n const handleDelete = (id: string) => model.removeItem(id)\r\n\r\n return (\r\n
    \r\n
    setOpen(!open)}>\r\n
    \r\n {open ? : }\r\n
    {label}
    \r\n
    \r\n {open &&
    }\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 interface CostGroupTableProps {\r\n items: ComplexCostItem[]\r\n units: UnitOption[]\r\n onDelete?: (id: string) => void\r\n useCommaAsDecimalPoint: boolean\r\n}\r\n\r\nconst CostGroupTable = observer(({ items, units, onDelete, useCommaAsDecimalPoint }: CostGroupTableProps) =>\r\n \r\n \r\n {items.map(item =>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n item.setName(ev.target.value)}/>\r\n \r\n item.setValue(v)}/>\r\n \r\n item.setUnit(v)}/>\r\n \r\n onDelete?.(item.id)}/>\r\n
    )\r\n\r\n\r\nexport interface UnitOption {\r\n units: CostUnit\r\n label: string\r\n}\r\n\r\n\r\nexport interface UnitOptionSet {\r\n capital: UnitOption[]\r\n operating: UnitOption[]\r\n replacement: UnitOption[]\r\n}\r\n\r\n\r\nexport var defaultUnits: UnitOptionSet = {\r\n capital: [{label: '$', units: 'Cost'}],\r\n operating: [{label: '$/yr', units: 'CostPerYear'}],\r\n replacement: [{label: '$', units: 'Cost'}],\r\n}\r\n\r\n\r\nexport var storageUnits: UnitOptionSet = {\r\n capital: [\r\n {label: '$', units: 'Cost'},\r\n {label: '% direct', units: 'PercentOfDirectCapital'},\r\n {label: '$/kW', units: 'CostPerKw'},\r\n {label: '$/kWh', units: 'CostPerKwh'},\r\n {label: '$/unit', units: 'CostPerUnit'},\r\n ],\r\n operating: [\r\n {label: '$/yr', units: 'CostPerYear'},\r\n {label: '% direct/yr', units: 'PercentOfDirectCapitalPerYear'},\r\n {label: '$/kW capacity-yr', units: 'CostPerKwYear'},\r\n {label: '$/MWh throughput', units: 'CostPerMwhThroughput'},\r\n {label: '$/kWh throughput', units: 'CostPerKwhThroughput'},\r\n {label: '$/kWh capacity-yr', units: 'CostPerKwhYear'},\r\n\r\n ],\r\n replacement: [\r\n {label: '$', units: 'Cost'},\r\n {label: '$/kWh', units: 'CostPerKwh'},\r\n ],\r\n}\r\n\r\n\r\nexport var solarUnits: UnitOptionSet = {\r\n capital: [\r\n {label: '$', units: 'Cost'},\r\n {label: '% direct', units: 'PercentOfDirectCapital'},\r\n {label: '$/Wdc', units: 'CostPerWattDc'},\r\n ],\r\n operating: [\r\n {label: '$/yr', units: 'CostPerYear'},\r\n {label: '% direct/yr', units: 'PercentOfDirectCapitalPerYear'},\r\n {label: '$/kWdc-yr', units: 'CostPerKwDcYear'},\r\n {label: '$/MWh-ac', units: 'CostPerMwhAc'},\r\n {label: '$/kWh-ac', units: 'CostPerKwhAc'},\r\n ],\r\n replacement: [\r\n {label: '$', units: 'Cost'},\r\n {label: '$/Wdc', units: 'CostPerWattDc'},\r\n {label: '% direct', units: 'PercentOfDirectCapital'},\r\n ],\r\n}\r\n\r\n\r\ninterface UnitsSelectorProps {\r\n options: UnitOption[]\r\n value: CostUnit\r\n onValueChanged: (x: CostUnit) => void\r\n}\r\n\r\nconst UnitsSelector = ({options, value, onValueChanged}: UnitsSelectorProps) => {\r\n const label = options.find(x => x.units === value)?.label\r\n const error = label === undefined\r\n return (\r\n \r\n \r\n {label ?? '?'}\r\n \r\n \r\n {options.map(option =>\r\n onValueChanged(option.units)}>\r\n {option.label}\r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport function ChangeUnitOptionSetCurrency({ ...unitOptionSet }: UnitOptionSet, currency: string): UnitOptionSet{\r\n for (let [key, value] of Object.entries(unitOptionSet.capital)) {\r\n if (value != undefined) {\r\n var unitOptionAux: UnitOption = value;\r\n value.label = unitOptionAux.label.replace(\"$\", currency)\r\n }\r\n }\r\n for (let [key, value] of Object.entries(unitOptionSet.operating)) {\r\n if (value != undefined) {\r\n var unitOptionAux: UnitOption = value;\r\n value.label = unitOptionAux.label.replace(\"$\", currency)\r\n }\r\n }\r\n for (let [key, value] of Object.entries(unitOptionSet.replacement)) {\r\n if (value != undefined) {\r\n var unitOptionAux: UnitOption = value;\r\n value.label = unitOptionAux.label.replace(\"$\", currency)\r\n }\r\n }\r\n return unitOptionSet\r\n}\r\n","import { navigate } from '@reach/router'\r\nimport {action, computed, makeObservable, observable, runInAction} from 'mobx'\r\nimport { AnalyzerItem } from './analyze'\r\n\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport envVariables from 'env-variables.json'\r\nexport interface ProjectStep {\r\n readonly label: string\r\n readonly url: string\r\n}\r\n\r\nexport const URL_SETUP = 'setup'\r\nexport const URL_APPLICATION = 'revenue'\r\nexport const URL_EQUIPMENT = 'equipment'\r\nexport const URL_OTHER = 'other'\r\nexport const URL_RESULTS = 'results'\r\n\r\nconst allSteps: ProjectStep[] = [\r\n {label: 'Setup', url: URL_SETUP},\r\n {label: 'Application', url: URL_APPLICATION},\r\n {label: 'Equipment', url: URL_EQUIPMENT},\r\n {label: 'Project Economics', url: URL_OTHER},\r\n {label: 'Results', url: URL_RESULTS},\r\n]\r\n\r\nexport class ProjectStatus {\r\n constructor(public id: string, public onNav?: (from: string, to: string) => Promise) {\r\n makeObservable(this)\r\n }\r\n\r\n @observable transition = false\r\n\r\n steps: ProjectStep[] = [...allSteps]\r\n @observable currentStep: number = 0\r\n @observable completedStep: number = 0\r\n\r\n get firstStep(): number { return 0 }\r\n get lastStep(): number { return this.steps.length - 1 }\r\n\r\n @computed get isFirst(): boolean { return this.currentStep === this.firstStep }\r\n @computed get isLast(): boolean { return this.currentStep === this.lastStep }\r\n isDisabled(i: number,issues?:AnalyzerItem[]): boolean {\r\n return i > this.completedStep && issues?.filter(x => x.link?.includes(this.steps[this.completedStep].url)).length == 0\r\n }\r\n\r\n @action\r\n async goToPrevious(errors:AnalyzerItem[]) {\r\n await this.navigate(this.currentStep - 1,'',errors,true)\r\n }\r\n\r\n @action\r\n async goToNext(errors:AnalyzerItem[]) {\r\n await this.navigate(this.currentStep + 1,'',errors)\r\n }\r\n\r\n @action\r\n async goTo(i: number) {\r\n await this.navigate(i)\r\n }\r\n\r\n @action\r\n async navigate(to: number, ref?: string,currentStepErrors?:AnalyzerItem[],isBack?:boolean) {\r\n const from = this.currentStep\r\n const newStep = Math.min(Math.max(to, this.firstStep), this.lastStep)\r\n if (newStep === from || (isBack?false:(currentStepErrors?currentStepErrors.length>0:false))) { return }\r\n\r\n this.transition = true\r\n\r\n await this.onNav?.(this.steps[from].url, this.steps[to].url)\r\n\r\n runInAction(() => {\r\n this.transition = false\r\n this.currentStep = newStep\r\n window.localStorage.setItem('currentStep', newStep.toString())\r\n this.completedStep = Math.max(newStep, this.completedStep)\r\n })\r\n\r\n const url = this.steps[this.currentStep].url + (ref ? `#${ref}` : '')\r\n await navigate(`/project/${this.id}/${url}`)\r\n\r\n const appInsights = new ApplicationInsights({\r\n config: {\r\n connectionString: envVariables[process.env.NODE_ENV].appInsightsConnString\r\n }\r\n });\r\n appInsights.loadAppInsights();\r\n appInsights.trackPageView();\r\n }\r\n\r\n @action\r\n async navigateUrl(link: string) {\r\n const parts = link.split('#')\r\n const page = parts[0]\r\n const ref = parts.length > 1 ? parts[1] : undefined\r\n const index = allSteps.findIndex(x => x.url === page)\r\n if (index !== -1)\r\n await this.navigate(index, ref)\r\n }\r\n\r\n @action setCurrentStep(x: number) {\r\n this.currentStep = x;\r\n }\r\n}\r\n","import {\r\n Project,\r\n MAX_SIMULATION_ERROR_THRESHOLD, MAX_SIMULATION_WARNING_THRESHOLD,\r\n} from 'components/project/model'\r\nimport { ValidationFunc } from 'components/helper/validation'\r\nimport { eq } from 'utils'\r\nimport { ComplexCostItems, ComplexCostTable, CostTableType } from 'components/project/model/CostTable'\r\nimport { solarUnits, storageUnits, UnitOption, UnitOptionSet } from 'components/project/pages/equipment/shared/DetailCostBreakup'\r\nimport { BonusDepreciation, InvestmentTaxCredit, Macrs } from 'components/project/model/Incentive'\r\nimport { Contract } from 'components/project/model/Contract'\r\nimport { CapacityMarket } from 'components/project/model/CapacityMarket'\r\nimport { URL_APPLICATION, URL_EQUIPMENT, URL_OTHER } from 'components/project/ProjectStatus'\r\nimport { EnergyMarket, EnergyMarketKind } from 'components/project/model/EnergyMarket'\r\nimport { ComponentKind, SizingKind } from '../../services/inputs'\r\n\r\n\r\nexport interface AnalyzerItem {\r\n label: string\r\n link?: string\r\n warning?: boolean\r\n}\r\n\r\n\r\nexport function* analyze(model: Project) {\r\n // has revenue stream?\r\n if (!model.useEnergyMarket && !model.useCapacityMarket && !model.useContract && !model.useRegulationMarket)\r\n yield { label: 'Add a revenue stream', link: URL_APPLICATION }\r\n\r\n // has components?\r\n if (model.useCapacityMarket) {\r\n if (!model.useStorage || model.storage.every(x => x.isZero))\r\n yield { label: 'Capacity markets require storage (with size > 0)', link: URL_EQUIPMENT }\r\n if (!model.useEnergyMarket &&\r\n (!model.useSolar || model.solar.every(x => x.isZero)) && (!model.useWind || model.wind.every(x => x.isZero)))\r\n yield { label: 'Capacity markets require a source of power to charge the battery (with size > 0)', link: URL_EQUIPMENT }\r\n } else {\r\n if ((!model.useSolar || model.solar.every(x => x.isZero)) && (!model.useWind || model.wind.every(x => x.isZero)) &&\r\n (!model.useStorage || model.storage.every(x => x.isZero)))\r\n yield { label: 'Add storage or a non-market source of power (with size > 0)', link: URL_EQUIPMENT }\r\n }\r\n\r\n // EM\r\n if (model.useEnergyMarket) {\r\n const hasImport = model.energyMarkets.every(item => (item.useMultiYearPrice != true && item.price.state === 'ready') || (item.useMultiYearPrice && item.multiYearPrice.length > 0))\r\n if (!hasImport)\r\n yield { label: 'No imported energy market price', link: URL_APPLICATION }\r\n\r\n const hasInvalidYears = model.energyMarkets.every(item => !item.useMultiYearPrice || item.multiYearPrice.length == 0 || checkMultiYearEnergyPrice(item))\r\n if (!hasInvalidYears)\r\n yield { label: 'One or more years have not being assigned a price strip file', link: URL_APPLICATION }\r\n\r\n if (model.energyMarkets.length > 0) {\r\n for (let y = 0; y < model.energyMarkets[0].pvAllocationSensitivity.values.length; y++) {\r\n let totalPvAllocation: number = 0\r\n model.energyMarkets.map(x => totalPvAllocation += x.pvAllocationSensitivity.values[y].value)\r\n if (totalPvAllocation != 100)\r\n yield { label: 'The sum of PV allocation sensitivity across Energy Markets should be 100%', link: URL_APPLICATION }\r\n }\r\n for (let y = 0; y < model.energyMarkets[0].windAllocationSensitivity.values.length; y++) {\r\n let totalPvAllocation: number = 0\r\n model.energyMarkets.map(x => totalPvAllocation += x.windAllocationSensitivity.values[y].value)\r\n if (totalPvAllocation != 100)\r\n yield { label: 'The sum of Wind allocation sensitivity across Energy Markets should be 100%', link: URL_APPLICATION }\r\n }\r\n }\r\n }\r\n\r\n //Reg Market\r\n if (model.useRegulationMarket) {\r\n if (!model.useEnergyMarket)\r\n yield { label: 'Add an Energy Market', link: URL_APPLICATION }\r\n\r\n //let hasEnergyMktStream = model.regulationMarkets.every(x => x.useEnergyPrice || x.useRegUp || x.useRegDown) //TODO can settlement work without reg up or down?\r\n //if (!hasEnergyMktStream)\r\n // yield { label: 'Add a Regulation Market revenue stream', link: URL_APPLICATION }\r\n\r\n let hasRegUpImport = model.regulationMarkets.every(x => !x.useRegUp || (x.regUpPrice.data.length > 0 && x.regUpPrice.state === 'ready'))\r\n if (!hasRegUpImport)\r\n yield { label: 'No imported Reg-Up market price', link: URL_APPLICATION }\r\n\r\n let hasRegUpMaxCommitment = model.regulationMarkets.every(x => !x.useRegUp || (x.maxCommitmentRegUp.singleValue !== 0 || x.maxCommitmentRegUp.values.some(item => item.value !== 0)))\r\n if (!hasRegUpMaxCommitment)\r\n yield { label: 'At least one optimization value for Max Reg-Up Commitment must be more than 0', link: URL_APPLICATION }\r\n\r\n let hasRegDownImport = model.regulationMarkets.every(x => !x.useRegDown || (x.regDownPrice.data.length > 0 && x.regDownPrice.state === 'ready'))\r\n if (!hasRegDownImport)\r\n yield { label: 'No imported Reg-Down market price', link: URL_APPLICATION }\r\n\r\n let hasRegDownMaxCommitment = model.regulationMarkets.every(x => !x.useRegDown || (x.maxCommitmentRegDown.singleValue !== 0 || x.maxCommitmentRegDown.values.some(item => item.value !== 0)))\r\n if (!hasRegDownMaxCommitment)\r\n yield { label: 'At least one optimization value for Max Reg-Down Commitment must be more than 0', link: URL_APPLICATION }\r\n\r\n let hasEnergyPrice = model.regulationMarkets.every(x => !x.useEnergyPrice || (x.energyMarket != null || x.energyMarket !== undefined))\r\n if (!hasEnergyPrice)\r\n yield { label: 'Select an Energy Market as Regulation Market energy price', link: URL_APPLICATION }\r\n\r\n let usesRegUpOrRegDown = model.regulationMarkets.every(x => /*!x.useEnergyPrice ||*/(x.useRegUp || x.useRegDown)) //TODO can settlement be used without reg up or down?\r\n if (!usesRegUpOrRegDown)\r\n yield { label: 'Select Reg-Up or Reg-Down', link: URL_APPLICATION }\r\n\r\n let hasSettlementAllocation = model.regulationMarkets.every(x => !x.useEnergyPrice || (x.throughputPercentage.singleValue !== 0 || x.throughputPercentage.values.some(item => item.value !== 0)))\r\n if (!hasSettlementAllocation)\r\n yield { label: 'At least one optimization value for Settlement Allocation must be more than 0', link: URL_APPLICATION }\r\n\r\n if (model.regulationMarkets.length > 0) {\r\n let regMktNames: string[] = []\r\n model.regulationMarkets.map(x => regMktNames.push(x.name))\r\n let hasDuplicatedRegMktNames = Analyzer.checkIfDuplicateExists(regMktNames)\r\n if (hasDuplicatedRegMktNames)\r\n yield { label: 'One or more Regulation Markets have the same name', link: URL_APPLICATION }\r\n }\r\n }\r\n\r\n // CM events\r\n if (model.useCapacityMarket) {\r\n const energyMarketKind = model.energyMarkets.map(i => i.kind);\r\n for (const capacityMarket of model.capacityMarkets) {\r\n for (const x of analyzeCapacityMarket(capacityMarket, energyMarketKind, model.useEnergyMarket))\r\n yield { ...x, link: URL_APPLICATION + '#' + capacityMarket.id }\r\n }\r\n }\r\n\r\n // ToD\r\n if (model.useContract) {\r\n for (const contract of model.contracts) {\r\n for (const x of analyzeContract(contract, model))\r\n yield { ...x, link: x.link ? x.link : (URL_APPLICATION + '#' + contract.id) }\r\n }\r\n }\r\n\r\n //if (model.useCapacityMarket && model.useContract && model.contracts.map(i=>i.obligationKind).every(x => x=='none')) {\r\n // let capPercentage = model.capacityMarkets.map(i => i.allocatedStorageCapacity).reduce((a, b) => a + b,0);\r\n // let todPercentage = model.contracts.map(i => i.contractedStorageCapacity).reduce((a, b) => a + b,0);\r\n // if ((capPercentage + todPercentage) > 100) {\r\n // yield { label: 'Storage allocation for RA + TOD should not be greater that 100%', link: URL_APPLICATION }\r\n // }\r\n //}\r\n // fields\r\n for (const x of Analyzer.range('Project Lifetime', 1, 40, true)(model.lifetime))\r\n yield { label: x, link: URL_OTHER }\r\n\r\n if (model.hasExportLimitTimeSeries) {\r\n const hasExportTimeseries = (model.hasExportLimitTimeSeries == true && model.exportLimitTimeSeriesData.state === 'ready')\r\n if (!hasExportTimeseries)\r\n yield { label: 'No export limit timeseries', link: URL_EQUIPMENT }\r\n }\r\n if (model.hasExportLimit) {\r\n for (const x of Analyzer.min('Export Limit', 0, true)(model.exportLimit))\r\n yield { label: x, link: URL_EQUIPMENT }\r\n }\r\n\r\n if (model.hasImportLimitTimeSeries) {\r\n const hasImportTimeseries = (model.hasImportLimitTimeSeries == true && model.importLimitTimeSeriesData.state === 'ready')\r\n if (!hasImportTimeseries)\r\n yield { label: 'No import limit timeseries', link: URL_EQUIPMENT }\r\n }\r\n if (model.hasImportLimit) {\r\n for (const x of Analyzer.min('Import Limit', 0, true)(model.importLimit))\r\n yield { label: x, link: URL_EQUIPMENT }\r\n }\r\n\r\n if (model.useSolar) {\r\n const requiresSolarResource = model.solar.some(x => x.kind !== ComponentKind.custom)\r\n if (model.solarResource.kind === 'timeseries' && requiresSolarResource)\r\n for (const x of Analyzer.min('Solar GHI', 0, true)(model.solarResource.scale.singleValue))\r\n yield { label: x, link: URL_EQUIPMENT }\r\n\r\n if (model.temperatureResource.kind === 'timeseries')\r\n for (const x of Analyzer.range('Temperature', -100, 100, true, true)(model.temperatureResource.scale.singleValue))\r\n yield { label: x, link: URL_EQUIPMENT }\r\n\r\n for (const solar of model.solar) {\r\n if (solar.cost.costTableType === CostTableType.complex && !checkCostTableHasCorrectUnits(solar.cost.complex, solarUnits))\r\n yield { label: 'Solar complex cost structure has incorrect units', link: URL_EQUIPMENT }\r\n if ((solar.kind === ComponentKind.homer && solar.sizing.onlyZero) ||\r\n (solar.kind === ComponentKind.custom && eq(solar.customSize, 0)))\r\n yield { label: 'Solar size is 0 MW', link: URL_EQUIPMENT, warning: true }\r\n if (solar.kind === ComponentKind.custom && eq(solar.customData.calculateAverage(), 0))\r\n yield { label: 'Imported PV production undefined', link: URL_EQUIPMENT }\r\n\r\n // dedicated converter\r\n const converterLabel = model.bus === 'ac' ? 'Solar DC/AC Inverter' : 'Solar DC/DC Converter'\r\n if (solar.hasConverter\r\n && solar.converter.sizing.kind === SizingKind.relative\r\n && !solar.converter.sizing.relativeValues.map(x => x.value).every(x => 0 < x && x < 10))\r\n yield { label: `${converterLabel} relative size must be > 0 and < 10`, link: URL_EQUIPMENT }\r\n if (solar.hasConverter && solar.converter.sizing.onlyZero)\r\n yield { label: `${converterLabel} size is 0 MW`, link: URL_EQUIPMENT, warning: true }\r\n\r\n if (solar.hasConverter) {\r\n if (!solar.converter.efficiency.values.map(x => x.value).every(x => 0 < x && x <= 100))\r\n yield { label: 'Solar Inverter/Converter efficiency must be > 0 and ≤ 100', link: URL_EQUIPMENT }\r\n if (!solar.converter.lifetime.values.map(x => x.value).every(x => 0 < x))\r\n yield { label: 'Solar Inverter/Converter lifetime must be > 0', link: URL_EQUIPMENT }\r\n }\r\n }\r\n }\r\n\r\n if (model.useStorage) {\r\n for (const storage of model.storage) {\r\n if (storage.cost.costTableType === CostTableType.complex && !checkCostTableHasCorrectUnits(storage.cost.complex, storageUnits))\r\n yield { label: 'Storage complex cost structure has incorrect units', link: URL_EQUIPMENT }\r\n if (!storage.augmentationDegradationLimit.values.map(x => x.value).every(x => 0 < x))\r\n yield { label: 'Storage augmentation degradation limit must be > 0', link: URL_EQUIPMENT }\r\n if (storage.sizing.values.some(x => !Number.isInteger(x.value)))\r\n yield { label: 'Storage units must be an integer', link: URL_EQUIPMENT }\r\n if (storage.sizing.onlyZero)\r\n yield { label: 'Storage units is set to 0', link: URL_EQUIPMENT, warning: true }\r\n if (storage.hasConverter) {\r\n const converterLabel = model.bus === 'ac' ? 'Storage DC/AC Inverter' : 'Storage DC/DC Converter'\r\n if (!storage.converter.efficiency.values.map(x => x.value).every(x => 0 < x && x <= 100))\r\n yield { label: `${converterLabel} efficiency must be > 0 and ≤ 100`, link: URL_EQUIPMENT }\r\n if (!storage.converter.lifetime.values.map(x => x.value).every(x => 0 < x))\r\n yield { label: `${converterLabel} lifetime must be > 0`, link: URL_EQUIPMENT }\r\n if (storage.hasConverter && storage.converter.sizing.onlyZero)\r\n yield { label: `${converterLabel} size is 0 MW`, link: URL_EQUIPMENT, warning: true }\r\n }\r\n }\r\n\r\n }\r\n\r\n if (model.hasSystemConverter) {\r\n if (!model.inverter.efficiency.values.map(x => x.value).every(x => 0 < x && x <= 100))\r\n yield { label: 'System Converter efficiency must be > 0 and ≤ 100', link: URL_EQUIPMENT }\r\n if (!model.inverter.lifetime.values.map(x => x.value).every(x => 0 < x))\r\n yield { label: 'System Converter lifetime must be > 0', link: URL_EQUIPMENT }\r\n if (model.inverter.sizing.onlyZero)\r\n yield { label: 'System Converter size is 0 MW', link: URL_EQUIPMENT, warning: true }\r\n }\r\n\r\n for (const x of Analyzer.range('Inflation Rate', -100, 100)(model.inflationRate))\r\n yield { label: x, link: URL_OTHER }\r\n\r\n for (const x of Analyzer.range('Discount Rate', 0, 100)(model.discountRate))\r\n yield { label: x, link: URL_OTHER }\r\n\r\n for (const incentive of model.incentives) {\r\n switch (incentive.kind) {\r\n case 'itc': {\r\n const v = incentive as InvestmentTaxCredit\r\n for (const x of Analyzer.range('Portion of capital cost eligible for incentive', 0, 100)(v.eligiblePercent))\r\n yield { label: x, link: URL_OTHER + '#' + v.id }\r\n break\r\n }\r\n case 'macrs': {\r\n const v = incentive as Macrs\r\n for (const x of Analyzer.range('Portion of capital cost eligible for incentive', 0, 100)(v.eligiblePercent))\r\n yield { label: x, link: URL_OTHER + '#' + v.id }\r\n for (const x of Analyzer.range('Marginal tax rate for an incentive', 0, 100)(v.marginalTaxPercent))\r\n yield { label: x, link: URL_OTHER + '#' + v.id }\r\n break\r\n }\r\n case 'bonus': {\r\n const v = incentive as BonusDepreciation\r\n for (const x of Analyzer.range('Portion of capital cost eligible for incentive', 0, 100)(v.eligiblePercent))\r\n yield { label: x, link: URL_OTHER + '#' + v.id }\r\n for (const x of Analyzer.range('Marginal tax rate for an incentive', 0, 100)(v.marginalTaxPercent))\r\n yield { label: x, link: URL_OTHER + '#' + v.id }\r\n break\r\n }\r\n }\r\n }\r\n\r\n function checkMultiYearEnergyPrice(energyMarket: EnergyMarket) {\r\n var checkedYears = 0\r\n for (let i = 0; i < energyMarket.multiYearPrice.length; i++) {\r\n checkedYears += energyMarket.multiYearPrice[i].projectYearsValid.filter(Boolean).length\r\n }\r\n return checkedYears == model.lifetime\r\n }\r\n\r\n const simulations = model.estimateTotalSimulations()\r\n if (simulations > MAX_SIMULATION_ERROR_THRESHOLD) {\r\n // main message\r\n yield { label: `This project will run ${numFormatter.format(simulations)} simulations.\\nThe max simulations is ${numFormatter.format(MAX_SIMULATION_ERROR_THRESHOLD)}.\\nReduce the number of simulations.` }\r\n // extra suggestions\r\n for (const x of analyzeSearchSpace(model)) yield x\r\n } else if (simulations > MAX_SIMULATION_WARNING_THRESHOLD) {\r\n const time = model.estimateTotalSimulationTime()\r\n const hours = time / 60\r\n // main message\r\n yield { label: `This project will run ${numFormatter.format(simulations)} simulations.\\nEstimated run time is ${num1Formatter.format(hours)} hours.\\nConsider reducing number of simulations.`, warning: true }\r\n // extra suggestions\r\n for (const x of analyzeSearchSpace(model, true)) yield x\r\n }\r\n}\r\n\r\nconst numFormatter = new Intl.NumberFormat('en', { maximumFractionDigits: 0 })\r\nconst num1Formatter = new Intl.NumberFormat('en', { maximumFractionDigits: 1 })\r\n\r\nconst dateFormatter = new Intl.DateTimeFormat('en', {\r\n month: 'short', day: 'numeric',\r\n hour: 'numeric', minute: 'numeric', hour12: false,\r\n})\r\n\r\nfunction* analyzeCapacityMarket(capacityMarket: CapacityMarket, energyMarketKind: EnergyMarketKind[], useEnergyMarket?: boolean) {\r\n if (capacityMarket.eventKind === 'scheduled') {\r\n for (const x of capacityMarket.getOverlappingEvents())\r\n yield { label: `Events overlap: ${dateFormatter.format(x[0].date)} and ${dateFormatter.format(x[1].date)}`, link: URL_APPLICATION + '#' + capacityMarket.id }\r\n for (const x of capacityMarket.getMidNightSpanEvents())\r\n yield { label: `Capacity market events may not span midnight: date is ${dateFormatter.format(x[0].date)} and ${x[0].duration} hours duration `, link: URL_APPLICATION + '#' + capacityMarket.id }\r\n }\r\n if (capacityMarket.eventKind === 'random') {\r\n if (capacityMarket.hasEmptySchedule)\r\n yield { label: `No specified period for random events in capacity market`, link: URL_APPLICATION + '#' + capacityMarket.id }\r\n // for (const x of capacityMarket.getMidNightSpanRAEvents())\r\n // yield { label: `Capacity market events may not span midnight: starting hour is ${String(x[0].hour).padStart(2, '0') + ':00'} and ${x[0].duration} hours duration `, link: URL_APPLICATION + '#' + capacityMarket.id } \r\n for (const x of capacityMarket.getShorterRAEvents())\r\n yield { label: `One or more windows selected for Random Events is smaller than the event duration`, link: URL_APPLICATION + '#' + capacityMarket.id }\r\n }\r\n if (capacityMarket.energyPriceKind === 'market' && capacityMarket.energyMarket?.name && (energyMarketKind.includes(capacityMarket.energyMarket?.kind) == false || !useEnergyMarket)) {\r\n yield { label: `Capacity market references an energy market which does not exist.`, link: URL_APPLICATION + '#' + capacityMarket.id }\r\n }\r\n}\r\n\r\nfunction* analyzeContract(contract: Contract, model: Project,) {\r\n if (contract.obligationKind === 'daily' && contract.obligations.length === 0)\r\n yield { label: 'Time of delivery energy obligation unspecified', link: URL_APPLICATION + '#' + contract.id }\r\n if (contract.obligationKind === 'import' && contract.obligationTimeSeries.state == 'blank')\r\n yield { label: 'Time of delivery import obligation unspecified', link: URL_APPLICATION + '#' + contract.id }\r\n if (contract.energyPriceKind === 'import' && contract.energyPriceTimeSeries.state == 'blank')\r\n yield { label: 'Time of delivery import annual price profile unspecified', link: URL_APPLICATION + '#' + contract.id }\r\n if (model.useStorage && (!model.useWind && !model.useSolar && model.energyMarkets.length == 0))\r\n yield { label: 'Add power generation source', link: URL_EQUIPMENT }\r\n}\r\n\r\nfunction* analyzeSearchSpace(model: Project, warning?: boolean) {\r\n if (model.useSolar && model.solar.some(x => x.sizing.estimateSimulations() > 1))\r\n yield { label: 'Reduce possible storage array sizes', link: URL_EQUIPMENT, warning }\r\n if (model.useStorage && model.storage.some(x => x.sizing.estimateSimulations() > 1))\r\n yield { label: 'Reduce possible storage sizes', link: URL_EQUIPMENT, warning }\r\n if (model.lifetime > 1)\r\n yield { label: 'Reduce project lifetime', link: URL_OTHER, warning }\r\n yield { label: 'Reduce sensitivities', link: URL_EQUIPMENT, warning }\r\n}\r\n\r\n\r\n\r\nconst checkCostTableHasCorrectUnits = (table: ComplexCostTable, units: UnitOptionSet) =>\r\n checkItemsHasCorrectUnits(table.directCapital, units.capital) &&\r\n checkItemsHasCorrectUnits(table.indirectCapital, units.capital) &&\r\n checkItemsHasCorrectUnits(table.operating, units.operating) &&\r\n checkItemsHasCorrectUnits(table.replacement, units.replacement)\r\n\r\nconst checkItemsHasCorrectUnits = (items: ComplexCostItems, units: UnitOption[]) =>\r\n items.items.every(item => units.some(u => u.units === item.unit))\r\n\r\n\r\n// checks\r\n\r\nclass Analyzer {\r\n static min(name: string, x: number, strict?: boolean): ValidationFunc {\r\n return (value: number) => {\r\n return strict ?\r\n (x < value ? [] : [`${name} must be > ${x}`]) :\r\n (x <= value ? [] : [`${name} must be ≥ ${x}`])\r\n }\r\n }\r\n\r\n static max(name: string, x: number, strict?: boolean): ValidationFunc {\r\n return (value: number) => {\r\n return strict ?\r\n (x > value ? [] : [`${name} must be < ${x}`]) :\r\n (x >= value ? [] : [`${name} must be ≤ ${x}`])\r\n }\r\n }\r\n\r\n static range(name: string, min: number, max: number, strictMin?: boolean, strictMax?: boolean): ValidationFunc {\r\n return (value: number) => {\r\n if (strictMin && strictMax)\r\n return (min < value && value < max) ? [] : [`${name} must be > ${min} and < ${max}`]\r\n if (strictMin && !strictMax)\r\n return (min < value && value <= max) ? [] : [`${name} must be > ${min} and ≤ ${max}`]\r\n if (!strictMin && strictMax)\r\n return (min <= value && value < max) ? [] : [`${name} must be ≥ ${min} and < ${max}`]\r\n if (!strictMin && !strictMax)\r\n return (min <= value && value <= max) ? [] : [`${name} must be ≥ ${min} and ≤ ${max}`]\r\n return []\r\n }\r\n }\r\n\r\n static checkIfDuplicateExists(arr: string[]) {\r\n return new Set(arr).size !== arr.length\r\n }\r\n}\r\n","import { action, computed, makeObservable, observable, runInAction } from 'mobx'\r\nimport api from 'services/api'\r\nimport { ResultModel } from 'components/project/results'\r\nimport { SchematicComponent, Schematics } from 'components/project/SchematicModel'\r\nimport { analyze, AnalyzerItem } from 'components/project/analyze'\r\nimport { deserializeComplexCostTable } from 'services/inputs'\r\nimport { Resource } from 'components/project/model/Resource'\r\nimport { Inverter } from 'components/project/model/Inverter'\r\nimport { Solar } from 'components/project/model/Solar'\r\nimport { createIncentive, Incentive, IncentiveKind } from 'components/project/model/Incentive'\r\nimport { Storage } from 'components/project/model/Storage'\r\nimport { Contract } from 'components/project/model/Contract'\r\nimport { CapacityMarket } from 'components/project/model/CapacityMarket'\r\nimport { allEnergyMarkets, EnergyMarket, EnergyMarketKind } from 'components/project/model/EnergyMarket'\r\nimport { Wind } from 'components/project/model/Wind'\r\nimport { Location } from 'components/project/model/Location'\r\nimport { ProjectStatus } from 'components/project/ProjectStatus'\r\nimport { MultiYearItem } from './model/MultiYearVar'\r\nimport { Commitments } from 'components/project/model/Commitments'\r\nimport { SensitivityVar } from 'components/project/model/SensitivityVar'\r\nimport Currency from 'Currency'\r\nimport { RegulationMarket } from './model/RegulationMarket'\r\nimport { RateSchedule } from './model/Schedule'\r\nimport { TimeSeries } from './model/TimeSeries'\r\nimport { CostTableType } from './model/CostTable'\r\n\r\nexport type BusKind = 'ac' | 'dc'\r\n\r\nexport const allElectricityMarkets: string[] = ['CAISO', 'ERCOT', 'NY-ISO', 'PJM', 'ISO-NE', 'SPP', 'MISO', 'Other']\r\n\r\nexport const allCurrencies: Currencies[] = Currency\r\n\r\nexport interface Currencies {\r\n CountryAndCurrency: string;\r\n Code: string;\r\n Symbol: string;\r\n}\r\n\r\nexport enum DecimalSeparator {\r\n comma,\r\n dot\r\n}\r\n\r\nexport enum DateFormatLabel {\r\n MMddyyyy = '01-30-2030',\r\n ddMMyyyy = '30-01-2030',\r\n yyyyMMdd = '2030-01-30',\r\n}\r\n\r\nexport enum DateFormat {\r\n MMddyyyy = 'MM-dd-yyyy',\r\n ddMMyyyy = 'dd-MM-yyyy',\r\n yyyyMMdd = 'yyyy-MM-dd',\r\n\r\n}\r\n\r\ntype NavCallback = (from: string, to: string) => Promise\r\n\r\nexport const MAX_SIMULATION_WARNING_THRESHOLD = 500\r\nexport const MAX_SIMULATION_ERROR_THRESHOLD = 5000\r\n\r\n\r\nexport class Project {\r\n constructor(public id: string, private onNavCallback?: NavCallback) {\r\n makeObservable(this)\r\n }\r\n\r\n //@observable readonly: boolean = false\r\n\r\n @observable status: ProjectStatus = new ProjectStatus(this.id,\r\n async (f: string, t: string) => {\r\n await onNav(this, f, t)\r\n this.onNavCallback?.(f, t)\r\n })\r\n\r\n location: Location = new Location()\r\n @observable currency: string = ''\r\n @observable dateFormat: number = 0\r\n @observable useCommaAsDecimalPoint: boolean = false\r\n @observable isNewSystemConverter: boolean | null = true;\r\n @observable currencySymbol: string = ''\r\n\r\n @observable name: string = ''\r\n @observable author: string = ''\r\n @observable notes: string = ''\r\n @observable expectedDate: Date = new Date()\r\n @observable noticeToProceed: Date = new Date()\r\n @observable electricityMarket: string = allElectricityMarkets[0]\r\n \r\n @observable useEnergyMarket: boolean = false\r\n @observable useCapacityMarket: boolean = false\r\n @observable useContract: boolean = false\r\n @observable useRegulationMarket: boolean = false\r\n\r\n @observable energyMarkets: EnergyMarket[] = observable([])\r\n @observable capacityMarkets: CapacityMarket[] = observable([])\r\n @observable contracts: Contract[] = observable([])\r\n //@observable regulationMarket: RegulationMarket = new RegulationMarket()\r\n @observable regulationMarkets: RegulationMarket[] = observable([])\r\n\r\n @observable useSolar: boolean = false\r\n @observable useWind: boolean = false\r\n @observable useStorage: boolean = false\r\n @computed get hasSystemConverter(): boolean { return this.bus === 'dc' }\r\n\r\n @observable solar: Solar[] = observable([])\r\n @observable wind: Wind[] = observable([])\r\n @observable storage: Storage[] = observable([])\r\n @observable inverter: Inverter = new Inverter()\r\n\r\n @observable bus: BusKind = 'ac'\r\n @observable canBatteryChargeFromGrid: string = 'true'\r\n @observable interconnectionLimit: number = 1000 // kW\r\n @observable hasImportLimit: boolean = false\r\n @observable importLimit: number = 999\r\n @observable hasImportLimitTimeSeries: boolean = false\r\n @observable importLimitTimeSeriesData: TimeSeries = new TimeSeries()\r\n @observable hasImportLimitSchedule: boolean = false\r\n @observable importLimitSchedule: RateSchedule = new RateSchedule()\r\n @computed get importLimitsDisabled(): boolean { return ((this.useSolar && this.useStorage && this.canBatteryChargeFromGrid === \"false\") || !this.useStorage) }\r\n\r\n @observable acLineEfficiencySensitivity: SensitivityVar = new SensitivityVar()\r\n @observable acTransfomerEfficiencySensitivity: SensitivityVar = new SensitivityVar()\r\n\r\n @observable hasExportLimit: boolean = true\r\n @observable exportLimit: number = 999\r\n @observable hasExportLimitTimeSeries: boolean = false\r\n @observable exportLimitTimeSeriesData: TimeSeries = new TimeSeries()\r\n @observable hasExportLimitSchedule: boolean = false\r\n @observable exportLimitSchedule: RateSchedule = new RateSchedule()\r\n \r\n @observable solarResource: Resource = new Resource()\r\n @observable windResource: Resource = new Resource()\r\n @observable temperatureResource: Resource = new Resource()\r\n\r\n @observable systemFixedCost: number = 0\r\n @observable systemOmCost: number = 0\r\n @observable discountRate: number = 0\r\n @observable inflationRate: number = 0\r\n @observable lifetime: number = 25\r\n @observable timeStepSize: number = 60\r\n\r\n @observable incentives: Incentive[] = observable([])\r\n\r\n @observable commitments: Commitments[] = observable([])\r\n @observable orderOfCommitments: Commitments[] = observable([])\r\n\r\n @observable earlyAnalysis: boolean = true\r\n @computed get baseYear(): number { return this.expectedDate.getFullYear() }\r\n\r\n @observable locked: boolean = false\r\n @observable lockId: string = ''\r\n \r\n @action setName(x: string) { this.name = x }\r\n @action setAuthor(x: string) { this.author = x }\r\n @action setNotes(x: string) { this.notes = x }\r\n @action setCurrency(x: string, y: string) { this.currency = x; this.currencySymbol = y }\r\n @action setUseCommaAsDecimalPoint(x: boolean) {this.useCommaAsDecimalPoint = x}\r\n @action setDateFormat(x: number) { this.dateFormat = x }\r\n @action setExpectedDate(x: Date) { this.expectedDate = x }\r\n @action setNoticeToProceed(x: Date) { this.noticeToProceed = x }\r\n @action setElectricityMarket(x: string) { this.electricityMarket = x }\r\n @action setEarlyAnalysis(x: boolean) { this.earlyAnalysis = x; if (x === true && this.canBatteryChargeFromGrid === \"ITC\") this.canBatteryChargeFromGrid = \"true\" }\r\n\r\n @action setUseEnergyMarket(x: boolean) {\r\n this.useEnergyMarket = x\r\n if (this.useEnergyMarket && this.energyMarkets.length === 0) {\r\n this.energyMarkets.push(new EnergyMarket(this.lifetime))\r\n this.addCommitments('Day-ahead energy market')\r\n }\r\n else if (this.energyMarkets.length === 1 && !this.commitments.map(i => i.name === this.energyMarkets[0].name)) {\r\n this.commitments.filter(x => x.name === this.energyMarkets[0].name) && this.addCommitments(`${this.energyMarkets[0].name} energy market`)\r\n }\r\n }\r\n\r\n @action setUseRegulationMarket(x: boolean) {\r\n this.useRegulationMarket = x\r\n if (this.useRegulationMarket && this.regulationMarkets.length === 0 ) {\r\n this.regulationMarkets.push(new RegulationMarket())\r\n this.addCommitments('Regulation market')\r\n }\r\n else if (this.useRegulationMarket && this.commitments.filter(i => i.name === 'Regulation market')?.length === 0) {\r\n this.addCommitments('Regulation market')\r\n }\r\n else {\r\n this.removeCommitments('Regulation market')\r\n }\r\n }\r\n\r\n @action addNewRegulationMarket() {\r\n this.regulationMarkets.push(new RegulationMarket())\r\n }\r\n @action removeRegulationMarket(id: string) {\r\n const i = this.regulationMarkets.findIndex(x => x.id === id)\r\n if (i === -1) { return }\r\n this.regulationMarkets.splice(i, 1)\r\n if (this.regulationMarkets.length === 0) {\r\n this.useRegulationMarket = false\r\n }\r\n }\r\n\r\n @action setUseCapacityMarket(x: boolean) {\r\n this.useCapacityMarket = x\r\n if (this.useCapacityMarket && this.capacityMarkets.length === 0) {\r\n this.capacityMarkets.push(new CapacityMarket(this.lifetime))\r\n this.addCommitments('Capacity market')\r\n }\r\n else if (this.useCapacityMarket && this.capacityMarkets.length > 0 && this.commitments.filter(i => i.name === 'Capacity market')?.length == 0) {\r\n this.addCommitments('Capacity market')\r\n }\r\n else {\r\n this.removeCommitments('Capacity market')\r\n }\r\n }\r\n\r\n @action setUseContract(x: boolean) {\r\n this.useContract = x\r\n if (this.useContract && this.contracts.length === 0) {\r\n this.contracts.push(new Contract(this.lifetime))\r\n this.addCommitments('Time of Delivery Contract')\r\n }\r\n else if (this.useContract && this.contracts.length > 0 && this.commitments.filter(i => i.name === 'Time of Delivery Contract').length === 0) {\r\n this.addCommitments('Time of Delivery Contract')\r\n }\r\n else {\r\n this.removeCommitments('Time of Delivery Contract')\r\n }\r\n }\r\n\r\n @computed get availableEnergyMarkets(): EnergyMarketKind[] {\r\n const current = this.energyMarkets.map(x => x.kind)\r\n const available = allEnergyMarkets.filter(x => !current.includes(x))\r\n return available\r\n }\r\n\r\n @computed get canAddEnergyMarket(): boolean { return this.availableEnergyMarkets.length > 0 }\r\n @computed get canAddRegulationMarket(): boolean { return this.useEnergyMarket }\r\n\r\n @computed get totalEnergyAllocation(): number {\r\n return this.energyMarkets.map(x => x.allocation).reduce((acc, x) => acc + x)\r\n }\r\n\r\n @action addNewEnergyMarket(kind: EnergyMarketKind) {\r\n const item = new EnergyMarket(this.lifetime)\r\n item.kind = kind\r\n if (this.energyMarkets.length > 0) {\r\n let max = Math.max(...this.energyMarkets.map(i => i.allocationSensitivity.values.length))\r\n for (let i = 0; i <= max - 2; i++) {\r\n item.allocationSensitivity.addNewValue()\r\n }\r\n let maxStorage = Math.max(...this.energyMarkets.map(i => i.maxStorageCommitmentSensitivity.values.length))\r\n for (let i = 0; i <= maxStorage - 2; i++) {\r\n item.maxStorageCommitmentSensitivity.addNewValue()\r\n }\r\n let maxWind = Math.max(...this.energyMarkets.map(i => i.windAllocationSensitivity.values.length))\r\n for (let i = 0; i <= maxWind - 2; i++) {\r\n item.windAllocationSensitivity.addNewValue()\r\n }\r\n let maxPv = Math.max(...this.energyMarkets.map(i => i.pvAllocationSensitivity.values.length))\r\n for (let i = 0; i <= maxPv - 2; i++) {\r\n item.pvAllocationSensitivity.addNewValue()\r\n }\r\n }\r\n this.energyMarkets.push(item)\r\n this.energyMarkets.sort((a, b) => a.kind > b.kind ? 1 : -1)\r\n }\r\n\r\n @action removeEnergyMarket(id: string) {\r\n const i = this.energyMarkets.findIndex(x => x.id === id)\r\n if (i === -1) { return }\r\n this.energyMarkets.splice(i, 1)\r\n if (this.energyMarkets.length === 0) {\r\n this.useEnergyMarket = false\r\n }\r\n }\r\n\r\n\r\n @action\r\n async setUseSolar(x: boolean) {\r\n this.useSolar = x\r\n if (this.useSolar && this.solar.length === 0) {\r\n await this.addNewSolar()\r\n }\r\n if (!this.useStorage || !this.useSolar || this.useWind)\r\n this.bus = 'ac'\r\n }\r\n\r\n @action\r\n async setUseWind(x: boolean) {\r\n this.useWind = x\r\n if (this.useWind && this.wind.length === 0) {\r\n await this.addNewWind()\r\n }\r\n if (!this.useStorage || !this.useSolar || this.useWind)\r\n this.bus = 'ac'\r\n }\r\n\r\n @action\r\n async setUseStorage(x: boolean) {\r\n this.useStorage = x\r\n if (this.useStorage && this.storage.length === 0) {\r\n await this.addNewStorage()\r\n }\r\n if (!this.useStorage || !this.useSolar || this.useWind)\r\n this.bus = 'ac'\r\n }\r\n\r\n @action setIsNewSystemConverter(x: boolean) {\r\n this.isNewSystemConverter = x;\r\n }\r\n @computed get projectLabel(): string {\r\n if (this.useSolar && this.useStorage) return 'Solar + Storage'\r\n if (this.useSolar) return 'Solar'\r\n if (this.useStorage) return 'Storage'\r\n return ''\r\n }\r\n\r\n\r\n @action setBus(x: BusKind) {\r\n this.bus = x\r\n if (x === 'dc' && this.isNewSystemConverter) {\r\n this.inverter.cost.simple.items[0].capital = 50;\r\n this.inverter.cost.simple.items[0].operating = 0;\r\n this.inverter.cost.simple.items[0].replacement = 50;\r\n }\r\n }\r\n @action setBatteryCanChargeFromGrid(x: boolean) { if (x == true) this.canBatteryChargeFromGrid = 'true' }\r\n @action setBatteryCantChargeFromGrid(x: boolean) { if (x == true) this.canBatteryChargeFromGrid = 'false' }\r\n @action setBatteryChargeFromGridItcRestriction(x: boolean) { if (x == true) this.canBatteryChargeFromGrid = 'ITC' }\r\n\r\n @action setInterconnectionLimit(x: number) { this.interconnectionLimit = x }\r\n\r\n @action setHasImportLimit(x: boolean) { this.hasImportLimit = x }\r\n @action setImportLimit(x: number) { this.importLimit = x }\r\n @action setHasImportLimitTimeSeries(x: boolean) { this.hasImportLimitTimeSeries = x }\r\n @action setHasImportLimitSchedule(x: boolean) { this.hasImportLimitSchedule = x }\r\n\r\n @action setHasExportLimit(x: boolean) { this.hasExportLimit = x }\r\n @action setExportLimit(x: number) { this.exportLimit = x }\r\n @action setHasExportLimitTimeSeries(x: boolean) { this.hasExportLimitTimeSeries = x }\r\n @action setHasExportLimitSchedule(x: boolean) { this.hasExportLimitSchedule = x }\r\n\r\n @action\r\n async addNewSolar() {\r\n const item = new Solar()\r\n const costs = await api.getSolarCostItems()\r\n\r\n runInAction(() => {\r\n item.cost.complex = deserializeComplexCostTable(costs)\r\n item.cost.costTableType = CostTableType.complex\r\n\r\n item.converter.cost.simple.items[0].capital = 50;\r\n item.converter.cost.simple.items[0].operating = 0;\r\n item.converter.cost.simple.items[0].replacement = 50;\r\n\r\n item.deratingFactor.values[0].value = 80;\r\n this.solar.push(item)\r\n })\r\n }\r\n\r\n @action removeSolar(id: string) {\r\n const i = this.solar.findIndex(x => x.id === id)\r\n if (i === -1) { return }\r\n this.solar.splice(i, 1)\r\n if (this.solar.length === 0) { this.useSolar = false }\r\n }\r\n\r\n @action\r\n async addNewWind() {\r\n const item = new Wind()\r\n const specs = await api.listWindTurbineSpecs()\r\n\r\n runInAction(() => {\r\n if (specs.length > 0) {\r\n const spec = specs[0]\r\n item.setModel(spec.name)\r\n item.setSpecs(spec)\r\n item.hubHeight.setSingleValue(spec.hubHeight)\r\n }\r\n\r\n this.wind.push(item)\r\n })\r\n }\r\n\r\n @action removeWind(id: string) {\r\n const i = this.wind.findIndex(x => x.id === id)\r\n if (i === -1) { return }\r\n this.wind.splice(i, 1)\r\n if (this.wind.length === 0) { this.useWind = false }\r\n }\r\n\r\n @action\r\n async addNewStorage() {\r\n const item = new Storage()\r\n const costs = await api.getStorageCostItems()\r\n const specs = await api.listStorageSpecs()\r\n const defaultCosts = [150, 137, 123, 110, 103, 97, 91, 85, 79, 74, 70, 66, 62, 59, 55, 52, 49, 47, 44, 42, 41, 40, 39, 38, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37]\r\n runInAction(() => {\r\n if (specs.length > 0) {\r\n const spec = specs[0]\r\n item.setModel(spec.name)\r\n item.setSpecs(spec)\r\n }\r\n\r\n item.cost.complex = deserializeComplexCostTable(costs)\r\n item.cost.costTableType = CostTableType.complex\r\n for (var year = 0; year <= this.lifetime - 1; year++) {\r\n item.augmentationPriceDecline.customValues.push(new MultiYearItem({ year: year, value: defaultCosts[year] }))\r\n }\r\n item.converter.cost.simple.items[0].capital = 27;\r\n item.converter.cost.simple.items[0].operating = 0;\r\n item.converter.cost.simple.items[0].replacement = 27;\r\n\r\n this.storage.push(item)\r\n })\r\n }\r\n\r\n @action removeStorage(id: string) {\r\n const i = this.storage.findIndex(x => x.id === id)\r\n if (i === -1) { return }\r\n this.storage.splice(i, 1)\r\n if (this.storage.length === 0) { this.useStorage = false }\r\n }\r\n\r\n @action setSystemFixedCost(x: number) { this.systemFixedCost = x }\r\n @action setSystemOmCost(x: number) { this.systemOmCost = x }\r\n @action setDiscountRate(x: number) { this.discountRate = x }\r\n @action setInflationRate(x: number) { this.inflationRate = x }\r\n @action setTimeStepSize(x: number) { this.timeStepSize = x }\r\n\r\n @action setLifetime(x: number) {\r\n this.lifetime = x\r\n\r\n // update all multi-year variables\r\n for (const multiYearVar of this.allMultiYearVars()) {\r\n multiYearVar.updateLifetime(x)\r\n }\r\n\r\n //update ProjectYearsValid from EnergyMarket MultiYearPrice\r\n this.energyMarkets.forEach((market, marketIndex) => {\r\n if (market.useMultiYearPrice)\r\n if (market.multiYearPrice[0].projectYearsValid.length >= x) {\r\n market.multiYearPrice.forEach((price, priceIndex) => {\r\n this.energyMarkets[marketIndex].multiYearPrice[priceIndex].projectYearsValid = price.projectYearsValid.slice(0, x)\r\n })\r\n }\r\n else {\r\n market.multiYearPrice.forEach((price, priceIndex) => {\r\n const yearsToAdd = x - price.projectYearsValid.length\r\n for (let y = 0; y < yearsToAdd; y++)\r\n this.energyMarkets[marketIndex].multiYearPrice[priceIndex].projectYearsValid.push(false)\r\n })\r\n }\r\n })\r\n }\r\n\r\n * allMultiYearVars() {\r\n for (const energyMarket of this.energyMarkets) {\r\n yield energyMarket.priceEscalator\r\n }\r\n for (const contract of this.contracts) {\r\n yield contract.energyPriceEscalator\r\n }\r\n for (const capacityMarket of this.capacityMarkets) {\r\n yield capacityMarket.capacityEscalator\r\n yield capacityMarket.energyEscalator\r\n }\r\n for (const solar of this.solar) {\r\n yield solar.omEscalator\r\n yield solar.degradation\r\n if (solar.converter) {\r\n yield solar.converter.omEscalator\r\n yield solar.converter.replacementEscalator\r\n }\r\n }\r\n for (const storage of this.storage) {\r\n yield storage.omEscalator\r\n yield storage.augmentationPriceDecline\r\n if (storage.converter) {\r\n yield storage.converter.omEscalator\r\n yield storage.converter.replacementEscalator\r\n }\r\n }\r\n if (this.inverter) {\r\n yield this.inverter.omEscalator\r\n yield this.inverter.replacementEscalator\r\n }\r\n }\r\n\r\n estimateTotalSimulations(): number {\r\n const solars = this.useSolar ? this.solar.map(x => x.estimateSimulations()) : []\r\n const winds = this.useWind ? this.wind.map(x => x.estimateSimulations()) : []\r\n const storages = this.useStorage ? this.storage.map(x => x.estimateSimulations()) : []\r\n const converter = this.hasSystemConverter ? [this.inverter.estimateSimulations()] : []\r\n const resources = [\r\n this.useSolar ? this.solarResource.estimateSimulations() : 1,\r\n this.useSolar ? this.temperatureResource.estimateSimulations() : 1,\r\n this.useWind ? this.windResource.estimateSimulations() : 1,\r\n ]\r\n\r\n const all = [...solars, ...winds, ...storages, ...converter, ...resources]\r\n const simulations = all.reduce((a, b) => a * b, 1)\r\n return simulations * this.lifetime\r\n }\r\n\r\n estimateTotalSimulationTime(): number {\r\n const timePerSimulation = 5 // seconds\r\n const time = this.estimateTotalSimulations() * timePerSimulation / 60 // minutes\r\n return Math.trunc(time)\r\n }\r\n\r\n\r\n @action addNewIncentive(kind: IncentiveKind) {\r\n const x = createIncentive(kind)\r\n this.incentives.push(x)\r\n }\r\n\r\n @action removeIncentive(id: string) {\r\n const i = this.incentives.findIndex(x => x.id === id)\r\n if (i === -1) { return }\r\n this.incentives.splice(i, 1)\r\n }\r\n\r\n // commitments\r\n @action addCommitments(cmt: string) {\r\n var recCmt = ['Capacity market', 'Time of Delivery Contract', 'Day-ahead energy market', 'Fifteen-minute energy market', 'Real-time energy market', 'Regulation market'];\r\n let newCmt = new Commitments()\r\n newCmt.name = cmt;\r\n newCmt.reCorder = recCmt.indexOf(cmt) + 1;\r\n this.commitments.push(newCmt)\r\n this.updateOrderOfCommitments()\r\n }\r\n\r\n @action updateOrderOfCommitments() {\r\n var ordRecCmt = ['Capacity market', 'Time of Delivery Contract', 'Energy markets', 'Energy and Regulation markets'];\r\n var cmtToRpl = ['Day-ahead energy market', 'Fifteen-minute energy market', 'Real-time energy market', 'Regulation market']\r\n var recCmt: string[] = []\r\n this.commitments.forEach(x => {\r\n if (!cmtToRpl.includes(x.name))\r\n recCmt.push(x.name)\r\n })\r\n if (this.useEnergyMarket && this.useRegulationMarket)\r\n recCmt.push('Energy and Regulation markets')\r\n else if (this.useEnergyMarket)\r\n recCmt.push('Energy markets')\r\n this.orderOfCommitments = []\r\n recCmt.map(x => {\r\n let newOrdCmt = new Commitments()\r\n newOrdCmt.name = x;\r\n newOrdCmt.reCorder = ordRecCmt.indexOf(x) + 1;\r\n this.orderOfCommitments.push(newOrdCmt)\r\n })\r\n }\r\n\r\n @action removeCommitments(cmt: string) {\r\n const i = this.commitments.findIndex(x => x.name === cmt)\r\n if (i === -1) { return }\r\n this.commitments.splice(i, 1)\r\n this.updateOrderOfCommitments()\r\n }\r\n // SCHEMATICS:\r\n @computed get schematics(): Schematics {\r\n const solar: SchematicComponent[] = this.useSolar ?\r\n this.solar.map(x => ({ id: x.id, kind: 'solar', hasConverter: x.hasConverter })) : []\r\n const storage: SchematicComponent[] = this.useStorage ?\r\n this.storage.map(x => ({ id: x.id, kind: 'storage', hasConverter: x.hasConverter })) : []\r\n const wind: SchematicComponent[] = this.useWind ?\r\n this.wind.map(x => ({ id: x.id, kind: 'wind', hasConverter: false })) : []\r\n return {\r\n bus: this.bus,\r\n components: solar.concat(storage).concat(wind),\r\n }\r\n }\r\n\r\n\r\n // RESULTS:\r\n\r\n @observable results: ResultModel = new ResultModel(this.id)\r\n\r\n\r\n // VALIDATION:\r\n\r\n @observable issues: AnalyzerItem[] = observable([])\r\n @computed get errors(): AnalyzerItem[] { return this.issues.filter(x => !x.warning) }\r\n @computed get currentStepErrors(): AnalyzerItem[] {\r\n return this.issues.filter(x => !x.warning && x.link?.includes(this.status.steps[this.status.currentStep].url))\r\n }\r\n @computed get warnings(): AnalyzerItem[] { return this.issues.filter(x => x.warning) }\r\n @computed get hasErrors(): boolean { return this.errors.length > 0 }\r\n @computed get hasWarnings(): boolean { return this.warnings.length > 0 } \r\n\r\n @observable ignoreWarnings: boolean = false\r\n @action setIgnoreWarnings() { this.ignoreWarnings = true }\r\n @computed get canNotCalculate(): boolean {\r\n return this.issues.filter(x => !x.warning).length > 0 || (this.issues.filter(x => x.warning).length > 0 && !this.ignoreWarnings)\r\n }\r\n\r\n @action analyze() {\r\n this.issues.splice(0, this.issues.length, ...analyze(this))\r\n }\r\n\r\n @observable restartCalculation: boolean = false\r\n @action setRestartCalculation(x: boolean) { this.restartCalculation = x }\r\n}\r\n\r\n\r\nasync function onNav(project: Project, from: string, to: string): Promise {\r\n project.analyze()\r\n}\r\n","import {action, computed, makeObservable, observable} from 'mobx'\r\nimport {geocode} from 'utils'\r\n\r\n\r\nexport interface Pos {\r\n lat: number\r\n lng: number\r\n}\r\n\r\n\r\nexport class Location {\r\n constructor() { makeObservable(this) }\r\n\r\n @observable pos: Pos = {lat: 40.014984, lng: -105.270546}\r\n @observable address: string = 'Boulder, CO, USA'\r\n @observable countryName: string = 'United States'\r\n @observable countryCode: string = 'US'\r\n\r\n @action setPos(x: Pos) { this.pos = x }\r\n @action setAddress(x: string) { this.address = x }\r\n @action setCountry(name: string, code: string) {\r\n this.countryName = name\r\n this.countryCode = code\r\n }\r\n\r\n @computed get isInternational(): boolean { return this.countryCode !== 'US' }\r\n\r\n @action\r\n async updatePos(x: Pos) {\r\n this.setPos(x)\r\n const results = await geocode(x)\r\n this.setAddress(results.address)\r\n this.setCountry(results.countryName, results.countryCode)\r\n }\r\n\r\n @action async updateCountry() {\r\n const results = await geocode(this.pos)\r\n this.setCountry(results.countryName, results.countryCode)\r\n }\r\n}\r\n","import { v4 } from \"uuid\"\r\n\r\nexport class Commitments {\r\n id: string = v4();\r\n name: string = '';\r\n reCorder: number = 0;\r\n percentage?:number=0;\r\n}","import {DateFormat, Project} from 'components/project/model'\r\nimport {SolarPvResult} from 'components/project/results-details'\r\nimport {IntlService} from 'Kendo-Intl-5'\r\nimport ContextHelp from 'components/helper/ContextHelp'\r\nimport { useProjectStore } from 'components/project/ProjectProvider'\r\n\r\ninterface ResultSolarEnergyMetricTableProps {\r\n result: SolarPvResult\r\n model: Project\r\n intlCulture: string\r\n dateFormat: number\r\n}\r\n\r\ninterface RowProps {\r\n label: string\r\n value: string\r\n}\r\n\r\nconst Row = ({label, value}: RowProps) => {\r\n return (\r\n \r\n {label}\r\n {value}\r\n )\r\n}\r\n\r\nconst ResultSolarEnergyMetricTable = ({ result, model, intlCulture, dateFormat }: ResultSolarEnergyMetricTableProps) => {\r\n const intl = new IntlService(intlCulture)\r\n const dateFormatArray = Object.values(DateFormat)\r\n\r\n const currency = useProjectStore().project!.currencySymbol ?? \"$\"\r\n\r\n return (<>\r\n
    \r\n
    Project Metrics
    \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 ResultSolarEnergyMetricTable\r\n","import {Chart, ChartCategoryAxis, ChartCategoryAxisItem, ChartLegend, ChartSeries, ChartSeriesItem, ChartTooltip, ChartValueAxis, ChartValueAxisItem} from '@progress/kendo-react-charts'\r\n\r\ninterface ResultSolarEnergyProductionByMonthChartProps {\r\n values: number[]\r\n}\r\n\r\nconst MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\r\n\r\ninterface ChartItem {\r\n month: string\r\n value: number\r\n}\r\n\r\nconst ResultSolarEnergyProductionByMonthChart = ({values}: ResultSolarEnergyProductionByMonthChartProps) => {\r\n const data: ChartItem[] = values.map(\r\n (value, index) => ({month: MONTHS[index], value}))\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 \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ResultSolarEnergyProductionByMonthChart\r\n","import {RouteComponentProps} from '@reach/router'\r\nimport ResultSolarEnergyProductionChart from 'components/project/pages/Results/ResultSolarEnergyProductionChart'\r\nimport ResultSolarEnergyTable from './ResultSolarEnergyTable'\r\nimport {observer} from 'mobx-react-lite'\r\nimport {SolarResult} from 'components/project/results-details'\r\nimport {Project} from 'components/project/model'\r\nimport ResultSolarEnergyMetricTable from 'components/project/pages/Results/ResultSolarEnergyMetricTable'\r\nimport ResultSolarEnergyProductionByMonthChart from 'components/project/pages/Results/ResultSolarEnergyProductionByMonthChart'\r\nimport ContextHelp from 'components/helper/ContextHelp'\r\nimport DropDownSelector from '../SharedComponents/DropDownSelector'\r\nimport { useState } from 'react'\r\n\r\ninterface ResultSolarEnergyProps extends RouteComponentProps {\r\n result: SolarResult\r\n model: Project\r\n showBaseYearAsYearZero: boolean\r\n}\r\n\r\nconst ResultSolarEnergy = observer(({ result, model, showBaseYearAsYearZero }: ResultSolarEnergyProps) => {\r\n const intlCulture = model.useCommaAsDecimalPoint ? 'es' : 'en'\r\n const dateFormat = model.dateFormat\r\n\r\n const [index, setIndex] = useState(0)\r\n return (<>\r\n
    \r\n
    \r\n

    {model.solar[index].customName != undefined && model.solar[index].customName.length > 0 ? model.solar[index].customName : 'Solar PV'}

    \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 ResultSolarEnergy\r\n","import {StorageResult} from 'components/project/results-details'\r\nimport {IntlService} from 'Kendo-Intl-5'\r\nimport {useProjectStore} from 'components/project/ProjectProvider'\r\nimport api from '../../../../services/api'\r\n\r\ninterface ResultStorageTableProps {\r\n result: StorageResult\r\n intlCulture: string\r\n showBaseYearAsYearZero: boolean\r\n}\r\n\r\nconst ResultStorageTable = ({result, intlCulture, showBaseYearAsYearZero}: ResultStorageTableProps) => {\r\n const intl = new IntlService(intlCulture)\r\n\r\n const currency = useProjectStore().project!.currencySymbol ?? \"$\"\r\n const items = result.items\r\n\r\n const project = useProjectStore().project!\r\n const hasConverter = result.hasConverter ?? false\r\n const converterLabel = project.bus === 'ac' ? 'DC/AC Converter' : 'DC/DC Converter'\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {hasConverter && }\r\n {hasConverter && }\r\n {result.saleMarketNames && result.saleMarketNames.map(item =>\r\n )}\r\n {result.purchaseMarketNames && result.purchaseMarketNames.map(item =>\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 {items.map(x =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {hasConverter && }\r\n {hasConverter && }\r\n {x.energySold && x.energySold.map((item, i) =>\r\n )}\r\n {x.energyPurchased && x.energyPurchased.map((item, i) =>\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
    YearMaximum Usable Energy Capacity (MWh)Minimum Usable Energy Capacity (MWh)Storage Energy Input (MWh)Storage Energy Output (MWh)Storage {converterLabel} Input Energy (MWh)Storage {converterLabel} Output Energy (MWh)Storage Energy Sold to {item} (MWh)Storage Energy Purchased from {item} (MWh)Utilization Rate (%)Cycle Cost ({currency}/MWh)State of Charge Percentiles, 25 (%)State of Charge Percentiles, 50 (%)State of Charge Percentiles, 75 (%)Storage Operating Expenses, Excl. Augmentation ({currency})Augmentation Cost ({currency})Augmentation (MWh)Equivalent Cycles
    {showBaseYearAsYearZero ? project.baseYear + x.year + 1 : x.year + 1}{intl.formatNumber(x.maximum, 'n')}{intl.formatNumber(x.minimum, 'n')}{intl.formatNumber(x.energyInput, 'n')}{intl.formatNumber(x.energyOutput, 'n')}{intl.formatNumber(x.converterEnergyInput!, 'n')}{intl.formatNumber(x.converterEnergyOutput!, 'n')}{intl.formatNumber(item, 'n')}{intl.formatNumber(item, 'n')}{intl.formatNumber(x.utilizationRate, 'n0')}{`${intl.formatNumber(x.cycleCost, 'n')} ${currency}`}{intl.formatNumber(x.stateOfChargePercentile25, 'n0')}{intl.formatNumber(x.stateOfChargePercentile50, 'n0')}{intl.formatNumber(x.stateOfChargePercentile75, 'n0')}{`${intl.formatNumber(x.operatingTotalCost, 'n0')} ${currency}`}{`${intl.formatNumber(x.augmentationTotalCost !== 0 ? x.augmentationTotalCost : 0, 'n0')} ${currency}`}{intl.formatNumber(x.augmentation, 'n2')}{intl.formatNumber(x.equivalentCycles, 'n0')}
    \r\n )\r\n}\r\n\r\nexport default ResultStorageTable\r\n","import {BusKind, DateFormat, Project} from 'components/project/model'\r\nimport {StorageResult} from 'components/project/results-details'\r\nimport {IntlService} from 'Kendo-Intl-5'\r\nimport ContextHelp from 'components/helper/ContextHelp'\r\nimport { useProjectStore } from 'components/project/ProjectProvider'\r\n\r\ninterface ResultStorageMetricTableProps {\r\n result: StorageResult\r\n model: Project\r\n intlCulture: string\r\n dateFormat: number\r\n}\r\n\r\ninterface RowProps {\r\n label: string\r\n value: string\r\n isHelp?:boolean\r\n}\r\n\r\nconst Row = ({label, value, isHelp}: RowProps) => {\r\n return (\r\n \r\n {label} {isHelp && }\r\n {value}\r\n )\r\n}\r\n\r\nfunction getCouplingLabel(bus: BusKind): string {\r\n switch (bus) {\r\n case 'ac': {return 'AC'}\r\n case 'dc': {return 'DC'}\r\n }\r\n}\r\n\r\nconst ResultStorageMetricTable = ({ result, model, intlCulture, dateFormat }: ResultStorageMetricTableProps) => {\r\n const intl = new IntlService(intlCulture)\r\n const dateFormatArray = Object.values(DateFormat)\r\n const currency = useProjectStore().project!.currencySymbol ?? \"$\"\r\n\r\n return (<>\r\n
    \r\n
    Project Metrics
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {result.nameplatePower &&\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 ResultStorageMetricTable\r\n","import { useEffect, useState } from 'react'\r\nimport { observer } from 'mobx-react-lite'\r\nimport { BiSpaceBar, BiZoomIn, BiZoomOut, BiChevronLeft, BiChevronRight } from 'react-icons/all'\r\nimport { Chart, ChartSeries, ChartSeriesItem, ChartXAxis, ChartXAxisItem, ChartYAxis, ChartYAxisItem, DragEndEvent, ZoomEndEvent, ChartTooltip, SharedTooltipContext, TooltipContext } from '@progress/kendo-react-charts'\r\nimport { Range, defaultRange, ensureBounds, ensureMinLength, zoomIn, zoomOut, makeRange, round, panLeft, panRight } from 'components/project/pages/Results/time-series/Range'\r\nimport RangeSelector from 'components/project/pages/Results/time-series/RangeSelector'\r\nimport { TimeSeries } from 'components/project/model/TimeSeries'\r\nimport { IntlProvider, IntlService, LocalizationProvider } from 'Kendo-Intl-5'\r\n\r\n\r\ninterface TimeSeriesViewProps {\r\n model: TimeSeries,\r\n chartTitle?: string,\r\n yAxisTitle?: string,\r\n intlCulture: string\r\n}\r\n\r\n\r\nconst AXIS_NAME = 'x'\r\nconst START_DATE = new Date(2007, 0, 1)\r\n\r\nconst dateFormatter = new Intl.DateTimeFormat('en', { month: 'short', day: 'numeric' })\r\nconst timeFormatter = new Intl.DateTimeFormat('en', { hour: 'numeric', minute: 'numeric', hour12: false })\r\n\r\nconst formatLabel = (ms: number, rangeHours: number): string => {\r\n if (rangeHours < 24 * 7) {\r\n return dateFormatter.format(ms) + '\\n' + timeFormatter.format(ms)\r\n }\r\n return dateFormatter.format(ms)\r\n}\r\n\r\nconst getMajorUnits = (rangeHours: number): number => {\r\n // 1 day -> each hour\r\n if (rangeHours < 24) {\r\n return 1\r\n }\r\n // 2 days -> each hour\r\n if (rangeHours < 24 * 2) {\r\n return 4\r\n }\r\n // 1 week -> each 12 hours\r\n else if (rangeHours < 24 * 7) {\r\n return 12\r\n }\r\n // 4 weeks -> each day\r\n else if (rangeHours < 24 * 7 * 2) {\r\n return 24\r\n }\r\n // 3 months -> each week\r\n else if (rangeHours < 24 * 30 * 3) {\r\n return 24 * 7\r\n }\r\n // year -> each month\r\n else {\r\n return 24 * 30\r\n }\r\n}\r\n\r\nconst MIN_RANGE = 12\r\n\r\nconst TimeSeriesView = observer(({ model, chartTitle, yAxisTitle, intlCulture }: TimeSeriesViewProps) => {\r\n // x -> index, y -> value\r\n const data = model.data.map((x, index) => [index, x])\r\n\r\n const [range, setRange] = useState(defaultRange())\r\n const [bounds, setBounds] = useState(defaultRange())\r\n\r\n useEffect(() => {\r\n const l = model.data.length\r\n setBounds(makeRange(0, l))\r\n setRange(makeRange(0, l))\r\n }, [model.data, model.data.length])\r\n\r\n const setNewRange = (range: Range) => {\r\n let r = round(range)\r\n r = ensureMinLength(r, MIN_RANGE)\r\n r = ensureBounds(r, bounds)\r\n setRange(r)\r\n }\r\n\r\n const handleZoomEnd = (ev: ZoomEndEvent) => {\r\n const axis = ev.axisRanges[AXIS_NAME]\r\n let r = makeRange(Number(axis.min), Number(axis.max))\r\n setNewRange(r)\r\n }\r\n\r\n const handleDragEnd = (ev: DragEndEvent) => {\r\n const isZooming = ev.nativeEvent.event?.shiftKey ?? false\r\n if (isZooming) return\r\n const axis = ev.axisRanges[AXIS_NAME]\r\n let r = makeRange(Number(axis.min), Number(axis.max))\r\n setNewRange(r)\r\n }\r\n\r\n const handlePanLeft = () => { setNewRange(panLeft(range)) }\r\n const handlePanRight = () => { setNewRange(panRight(range)) }\r\n const handleZoomIn = () => { setNewRange(zoomIn(range)) }\r\n const handleZoomOut = () => { setNewRange(zoomOut(range)) }\r\n const handleResetZoom = () => { setRange(bounds) }\r\n\r\n const handleRangeChange = (r: Range) => { setRange(r) }\r\n\r\n const stepsPerHour = model.data.length / (365 * 24)\r\n const rangeHours = (range.max - range.min) / stepsPerHour\r\n\r\n const labelContent = (e: any): string => {\r\n const step = Number(e.value)\r\n const ms = (step / stepsPerHour) * 60 * 60 * 1000\r\n const t = START_DATE.getTime() + ms\r\n return formatLabel(t, rangeHours)\r\n }\r\n const intl = new IntlService(intlCulture)\r\n\r\n const tooltipContent = (context: TooltipContext | SharedTooltipContext) => {\r\n if (!context.hasOwnProperty('point')) return\r\n const point = (context as TooltipContext).point\r\n const y = (intl.formatNumber(point.value.y, 'n2') + (yAxisTitle ? (\" \" + `(${yAxisTitle})`) : ''))\r\n return (
    {y}
    )\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    {chartTitle ?? ''}
    \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 TimeSeriesView\r\n","import {Chart, ChartCategoryAxis, ChartCategoryAxisItem, ChartLegend, ChartSeries, ChartSeriesItem, ChartTooltip, ChartValueAxis, ChartValueAxisItem, SharedTooltipContext} from '@progress/kendo-react-charts'\r\nimport {MonthMetricResultItem} from 'components/project/results-details'\r\nimport {TooltipContext} from '@progress/kendo-react-charts/dist/npm/tooltip/Context'\r\nimport { IntlService } from 'Kendo-Intl-5'\r\nimport { useProjectStore } from '../../ProjectProvider'\r\n\r\ninterface ResultStorageChartByMonthProps {\r\n items: MonthMetricResultItem[]\r\n}\r\n\r\nconst MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\r\n\r\ninterface ChartItem {\r\n month: string\r\n minimum: number\r\n averageMinimum: number\r\n average: number\r\n averageMaximum: number\r\n maximum: number\r\n}\r\n\r\nconst ResultStorageChartByMonth = ({items}: ResultStorageChartByMonthProps) => {\r\n const data: ChartItem[] = items.map(\r\n (item, index) => ({month: MONTHS[index], ...item}))\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 \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ResultStorageChartByMonth\r\n\r\nconst Tooltip = (context: TooltipContext | SharedTooltipContext) => {\r\n const {point} = context as TooltipContext\r\n const { minimum, averageMinimum, average, averageMaximum, maximum } = point.dataItem as ChartItem\r\n const intl = new IntlService('en')\r\n const format = (x: number) => intl.formatNumber(x, 'n0') + '%'\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 \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
    {point.category}
    Max{format(maximum)}
    Average Max{format(averageMaximum)}
    Average{format(average)}
    Average Min{format(averageMinimum)}
    Min{format(minimum)}
    \r\n
    \r\n )\r\n}\r\n","import {Chart, ChartSeries, ChartSeriesItem, ChartCategoryAxis, ChartLegend, ChartCategoryAxisItem, ChartTooltip, ChartValueAxisItem, ChartValueAxis} from '@progress/kendo-react-charts'\r\nimport {MonthMetricResultItem} from 'components/project/results-details'\r\n\r\ninterface ResultStorageChartByHourProps {\r\n items: MonthMetricResultItem[]\r\n}\r\n\r\n// color for each month\r\nconst COLORS = [\r\n '#ff0000', '#ffc0cb', '#ffa500', '#ffff00',\r\n '#32CD32', '#008000', '#008080', '#add8e6',\r\n '#00008b', '#cbc3e3', '#301934', '#ff00ff',\r\n]\r\nconst MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\r\nconst HOURS = Array(24).fill(true).map((x, index) => index)\r\n\r\nconst ResultStorageChartByHour = ({items}: ResultStorageChartByHourProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {items.map((item, index) =>\r\n )}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ResultStorageChartByHour\r\n","import {BiPlusCircle} from 'react-icons/all'\r\nimport React from 'react'\r\n\r\ninterface ButtonAddProps {\r\n onClick?: () => void\r\n}\r\n\r\nconst ButtonAdd = ({onClick}: ButtonAddProps) =>\r\n \r\n\r\nexport default ButtonAdd\r\n","import {observer} from 'mobx-react-lite'\r\nimport {CostSensitivityItem, SimpleCostTable} from '../../../model/CostTable'\r\nimport './sensitivityView.scss'\r\nimport NumberInput from 'components/helper/NumberInput'\r\nimport ButtonDelete from 'components/helper/ButtonDelete'\r\nimport ButtonAdd from 'components/helper/ButtonAdd'\r\nimport { useProjectStore } from 'components/project/ProjectProvider'\r\n\r\n\r\ninterface SensitivityViewProps {\r\n model: SimpleCostTable\r\n\r\n showCapital?: boolean\r\n showOperating?: boolean\r\n showReplacement?: boolean\r\n showAugmentation?: boolean\r\n\r\n capitalLabel?: string\r\n operatingLabel?: string\r\n replacementLabel?: string\r\n augmentationLabel?: string\r\n\r\n capitalUnits?: string\r\n operatingUnits?: string\r\n replacementUnits?: string\r\n augmentationUnits?: string\r\n\r\n useCommaAsDecimalPoint: boolean\r\n}\r\n\r\n\r\nconst SensitivityView = observer(({\r\n model,\r\n showCapital, showOperating, showReplacement, showAugmentation,\r\n capitalLabel, operatingLabel, replacementLabel, augmentationLabel,\r\n capitalUnits, operatingUnits, replacementUnits, augmentationUnits,\r\n useCommaAsDecimalPoint\r\n }: SensitivityViewProps) => {\r\n const handleAdd = () => model.addNewItem()\r\n const handleDelete = (id: string) => model.removeItem(id)\r\n const currency = useProjectStore().project!.currencySymbol ?? \"$\"\r\n\r\n return (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n item.capital}\r\n setter={item => item.setCapital.bind(item)}/>\r\n\r\n item.operating}\r\n setter={item => item.setOperating.bind(item)}/>\r\n\r\n item.replacement}\r\n setter={item => item.setReplacement.bind(item)}/>\r\n\r\n item.augmentation}\r\n setter={item => item.setAugmentation.bind(item)}/>\r\n \r\n
    \r\n {model.items.map(item =>\r\n \r\n handleDelete(item.id)}/>\r\n
    \r\n )\r\n})\r\n\r\nexport default SensitivityView\r\n\r\n\r\ninterface CostRowProps {\r\n show: boolean\r\n label: string\r\n items: CostSensitivityItem[]\r\n getter: (item: CostSensitivityItem) => number\r\n setter: (item: CostSensitivityItem) => ((x: number) => void)\r\n useCommaAsDecimalPoint: boolean\r\n}\r\n\r\nconst CostRow = observer(({ show, label, items, getter, setter, useCommaAsDecimalPoint }: CostRowProps) => {\r\n if (!show) return null\r\n return (\r\n \r\n {label}\r\n {items.map(item =>\r\n \r\n \r\n )}\r\n \r\n )\r\n})\r\n","import NumberInput from 'components/helper/NumberInput'\r\nimport {ValidationFunc} from 'components/helper/validation'\r\n\r\n\r\ninterface NumberFieldProps {\r\n value: number\r\n onChange: (x: number) => void\r\n label: string\r\n validator?: ValidationFunc\r\n disabled?: boolean\r\n id?: string\r\n className?: string\r\n useCommaAsDecimalPoint: boolean\r\n}\r\n\r\n\r\nconst NumberField = ({ label, value, onChange, id, disabled, className, validator, useCommaAsDecimalPoint }: NumberFieldProps) => {\r\n return (\r\n
    \r\n
    {label}
    \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\n\r\nexport default NumberField\r\n","export default __webpack_public_path__ + \"static/media/sensitivity-var.65a469ec.svg\";","import sensitivityIcon from 'assets/images/sensitivity-var.svg'\r\n\r\n\r\ninterface SensitivityViewProps {\r\n count: number,\r\n onClick: () => void\r\n hideSensitivity?: boolean\r\n}\r\n\r\nconst SensitivityVarIcon = ({ count, onClick, hideSensitivity = false }: SensitivityViewProps) => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default SensitivityVarIcon\r\n","import Form from 'react-bootstrap/Form'\r\nimport Col from 'react-bootstrap/Col'\r\nimport React, {useState} from 'react'\r\nimport DetailCostBreakup, {defaultUnits, UnitOptionSet} from './DetailCostBreakup'\r\nimport {CostTable, CostTableType} from 'components/project/model/CostTable'\r\nimport {observer} from 'mobx-react-lite'\r\nimport Modal from 'react-bootstrap/Modal'\r\nimport SensitivityView from './SensitivityView'\r\nimport Button from 'react-bootstrap/Button'\r\nimport NumberField from 'components/helper/NumberField'\r\nimport SensitivityVarIcon from 'components/project/pages/EnergyMarket/SensitivityVarIcon'\r\nimport ContextHelp from 'components/helper/ContextHelp'\r\nimport { useProjectStore } from 'components/project/ProjectProvider'\r\n\r\n\r\ninterface CostTableProps {\r\n cost: CostTable\r\n id: string\r\n\r\n simpleCostLabel: string\r\n complexCostLabel: string\r\n\r\n showDetailedCostTable?: boolean\r\n unitsSet?: UnitOptionSet\r\n\r\n showCapital?: boolean // default `true`\r\n showOperating?: boolean // default `true`\r\n showReplacement?: boolean // default `false`\r\n showAugmentation?: boolean // default `false`\r\n\r\n capitalLabel?: string // default `Capital Expenses`\r\n operatingLabel?: string // default `Operating Expenses`\r\n replacementLabel?: string // default `Replacement`\r\n augmentationLabel?: string // default `Augmentation`\r\n\r\n capitalUnits?: string // default `$/kW`\r\n operatingUnits?: string // default `$/kW-yr`\r\n replacementUnits?: string // default `$/kW`\r\n augmentationUnits?: string // default `$/kW`\r\n\r\n showDetailedReplacement?: boolean\r\n isStorage?: boolean\r\n isWind?: boolean\r\n type?: string\r\n\r\n useCommaAsDecimalPoint: boolean\r\n\r\n hideSensitivity?: boolean\r\n hideHelp?: boolean\r\n}\r\n\r\n\r\nconst CostTableView = observer(({\r\n id, cost, simpleCostLabel, complexCostLabel, showDetailedCostTable, unitsSet,\r\n showCapital, showOperating, showReplacement, showAugmentation,\r\n capitalLabel, operatingLabel, replacementLabel, augmentationLabel,\r\n capitalUnits, operatingUnits, replacementUnits, augmentationUnits,\r\n showDetailedReplacement, isStorage,\r\n isWind, type, useCommaAsDecimalPoint, hideSensitivity = false, hideHelp = false\r\n }: CostTableProps) => {\r\n const [show, setShow] = useState(false)\r\n const handleOpen = () => setShow(true)\r\n const handleClose = () => setShow(false)\r\n const project = useProjectStore().project\r\n const currency = useProjectStore().project?.currencySymbol ?? \"$\"\r\n\r\n return (<>\r\n
    \r\n
    \r\n
    Cost
    \r\n {!hideHelp && }\r\n
    \r\n\r\n {showDetailedCostTable &&\r\n \r\n \r\n ev.target.value && cost.setType(CostTableType.simple)}/>\r\n \r\n\r\n \r\n ev.target.value && cost.setType(CostTableType.complex)}\r\n checked={cost.costTableType === CostTableType.complex}\r\n custom/>\r\n \r\n }\r\n\r\n {cost.costTableType === CostTableType.simple && <>\r\n {(showCapital ?? true) &&\r\n {cost.simple.base.setCapital(x);if(type){project?.setIsNewSystemConverter(false)}}}/>}\r\n {(showOperating ?? true) &&\r\n {cost.simple.base.setOperating(x);if(type){project?.setIsNewSystemConverter(false)}}}/>}\r\n {(showReplacement ?? false) &&\r\n {cost.simple.base.setReplacement(x);if(type){project?.setIsNewSystemConverter(false)}}}/>}\r\n {(showAugmentation ?? false) &&\r\n cost.simple.base.setAugmentation(x)}/>}\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n\r\n {cost.costTableType === CostTableType.complex &&\r\n }\r\n
    \r\n\r\n \r\n \r\n Cost Sensitivity\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 CostTableView\r\n","export type ValidationFunc = (value: number) => string[]\r\n\r\nexport class Validation {\r\n static all(...params: ValidationFunc[]): ValidationFunc {\r\n return (value: number) => {\r\n return params.flatMap(f => f(value))\r\n }\r\n }\r\n\r\n static min(x: number, strict?: boolean): ValidationFunc {\r\n return (value: number) => {\r\n return strict ?\r\n (x < value ? [] : [`The value must be > ${x}`]) :\r\n (x <= value ? [] : [`The value must be ≥ ${x}`])\r\n }\r\n }\r\n\r\n static max(x: number, strict?: boolean): ValidationFunc {\r\n return (value: number) => {\r\n return strict ?\r\n (x > value ? [] : [`The value must be < ${x}`]) :\r\n (x >= value ? [] : [`The value must be ≤ ${x}`])\r\n }\r\n }\r\n\r\n static range(min: number, max: number, strictMin?: boolean, strictMax?: boolean): ValidationFunc {\r\n return (value: number) => {\r\n if (strictMin && strictMax)\r\n return (min < value && value < max) ? [] : [`The value must be > ${min} and < ${max}`]\r\n if (strictMin && !strictMax)\r\n return (min < value && value <= max) ? [] : [`The value must be > ${min} and ≤ ${max}`]\r\n if (!strictMin && strictMax)\r\n return (min <= value && value < max) ? [] : [`The value must be ≥ ${min} and < ${max}`]\r\n if (!strictMin && !strictMax)\r\n return (min <= value && value <= max) ? [] : [`The value must be ≥ ${min} and ≤ ${max}`]\r\n return []\r\n }\r\n }\r\n\r\n static get percent(): ValidationFunc {\r\n return (value: number) => {\r\n return 0 <= value && value <= 100 ? [] : ['The values must be between 0% and 100%']\r\n }\r\n }\r\n\r\n static get percentAbs(): ValidationFunc {\r\n return (value: number) => {\r\n return -100 <= value && value <= 100 ? [] : ['The values must be between -100% and 100%']\r\n }\r\n }\r\n\r\n static get integer(): ValidationFunc {\r\n return (value: number) => {\r\n return Number.isInteger(value) ? [] : ['The value must be an integer']\r\n }\r\n }\r\n}\r\n","import './MultiYearView.scss'\r\nimport { observer } from 'mobx-react-lite'\r\nimport { MultiYearVar } from '../../model/MultiYearVar'\r\nimport Form from 'react-bootstrap/Form'\r\nimport { Dropdown } from 'react-bootstrap'\r\nimport { useProjectStore } from '../../ProjectProvider'\r\nimport NumberInput from 'components/helper/NumberInput'\r\nimport { Validation } from 'components/helper/validation'\r\nimport ContextHelp from 'components/helper/ContextHelp'\r\nimport ToolTipInfo from 'components/helper/ToolTipInfo'\r\nimport { ClipboardEvent } from 'react';\r\nimport { ValidationFunc } from 'components/helper/validation'\r\nimport api from '../../../../services/api'\r\nimport { MultiYearKind } from '../../../../services/inputs'\r\n\r\n\r\ninterface MultiYearViewProps {\r\n model: MultiYearVar\r\n id: string\r\n\r\n label: string\r\n linearLabel?: string\r\n customLabel?: string\r\n header?: string\r\n\r\n helpId?: string\r\n validator?: ValidationFunc\r\n disabled?: boolean\r\n}\r\n\r\n\r\nconst MultiYearView = observer(({ model, id, label, linearLabel, customLabel, header, helpId, validator, disabled = false }: MultiYearViewProps) => {\r\n const project = useProjectStore().project!\r\n const baseYear = project.baseYear\r\n const useCommaAsDecimalPoint = project.useCommaAsDecimalPoint\r\n\r\n const handleSelect = (kind: MultiYearKind) => model.setType(kind, project.lifetime)\r\n\r\n const getLabel = (kind: MultiYearKind) => {\r\n switch (kind) {\r\n case MultiYearKind.linear: { return linearLabel ?? '%/year' }\r\n case MultiYearKind.custom: { return customLabel ?? 'Escalation by year' }\r\n }\r\n }\r\n\r\n const isLinear = model.multiYearKind === MultiYearKind.linear\r\n const isCustom = model.multiYearKind === MultiYearKind.custom\r\n\r\n return (<>\r\n
    \r\n
    \r\n model.setEnabled(ev.target.checked)} />\r\n {project.earlyAnalysis && }\r\n
    \r\n\r\n {model.enabled && !project.earlyAnalysis && <>\r\n {isLinear &&\r\n
    \r\n model.setLinearValue(x)}\r\n validator={validator ? validator : Validation.range(-100, +100)}\r\n disabled={!model.enabled || disabled} useCommaAsDecimalPoint={useCommaAsDecimalPoint} />\r\n
    }\r\n\r\n
    \r\n
    \r\n \r\n \r\n {getLabel(model.multiYearKind)}\r\n \r\n \r\n handleSelect(MultiYearKind.linear)}>{getLabel(MultiYearKind.linear)}\r\n handleSelect(MultiYearKind.custom)}>{getLabel(MultiYearKind.custom)}\r\n \r\n \r\n
    \r\n {helpId && }\r\n
    \r\n
    \r\n }\r\n
    \r\n\r\n {model.enabled && isCustom && !project.earlyAnalysis &&\r\n
    \r\n
    \r\n \r\n
    \r\n
    }\r\n )\r\n})\r\n\r\nexport default MultiYearView\r\n\r\n\r\ninterface MultiYearTableProps {\r\n model: MultiYearVar\r\n header: string\r\n baseYear: number\r\n validator?: ValidationFunc\r\n useCommaAsDecimalPoint: boolean\r\n}\r\n\r\nconst MultiYearTable = observer(({ model, header, baseYear, validator, useCommaAsDecimalPoint }: MultiYearTableProps) => {\r\n const showBaseYearAsYearZero = api.showBaseYearAsYearZero \r\n\r\n const handleClipboardEvent = (ev: ClipboardEvent, indx: number) => {\r\n ev.preventDefault();\r\n if (ev.clipboardData) {\r\n let clipboardText = ev.clipboardData.getData('text/plain');\r\n let clipboardRows = clipboardText.split('\\n');\r\n for (var i = 0; i < clipboardRows.length; i++) {\r\n let t = clipboardRows[i];\r\n if (parseFloat(clipboardRows[i]) && (clipboardRows[i].replace(/\\s/g, \" \").indexOf(\" \") !== 0) && (indx + i) <= model.customValues.length - 1) {\r\n model.customValues[indx + i].value = parseFloat(clipboardRows[i]);\r\n }\r\n }\r\n }\r\n }\r\n return \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {model.customValues.map((item, indx) =>\r\n \r\n \r\n \r\n )}\r\n \r\n
    Project Year{header}
    {showBaseYearAsYearZero ? baseYear + item.year : item.year + 1}\r\n item.setValue(x)}\r\n className='h-100 border-0 rounded-0'\r\n onPaste={(ev) => handleClipboardEvent(ev, indx)} useCommaAsDecimalPoint={useCommaAsDecimalPoint} />\r\n
    \r\n})\r\n","import './SensitivityVarView.scss'\r\nimport {observer} from 'mobx-react-lite'\r\nimport {SensitivityVar} from '../../model/SensitivityVar'\r\nimport React, {useState} from 'react'\r\nimport Button from 'react-bootstrap/Button'\r\nimport Modal from 'react-bootstrap/Modal'\r\nimport NumberInput from 'components/helper/NumberInput'\r\nimport SensitivityVarIcon from 'components/project/pages/EnergyMarket/SensitivityVarIcon'\r\nimport ButtonAdd from 'components/helper/ButtonAdd'\r\nimport ButtonDelete from 'components/helper/ButtonDelete'\r\nimport {ValidationFunc} from 'components/helper/validation'\r\n\r\n\r\ninterface SensitivityVarViewProps {\r\n model: SensitivityVar\r\n label: string\r\n units: string\r\n validator?: ValidationFunc\r\n isNumHide?: boolean\r\n hideLabel?: boolean\r\n useCommaAsDecimalPoint: boolean\r\n isDisabled?: boolean\r\n customClass?: string\r\n labelWidth?: string\r\n}\r\n\r\n\r\nconst SensitivityVarView = observer(({ model, label, units, validator, isNumHide, useCommaAsDecimalPoint, hideLabel = false, isDisabled = false, customClass = \"\", labelWidth = \"\" }: SensitivityVarViewProps) => {\r\n const [show, setShow] = useState(false)\r\n const handleOpen = () => setShow(true)\r\n const handleClose = () => setShow(false)\r\n\r\n return (<>\r\n
    \r\n {!isNumHide && !hideLabel &&
    {label}
    }\r\n {!isNumHide &&
    \r\n model.values[0].setValue(x)}\r\n validator={validator}\r\n useCommaAsDecimalPoint={useCommaAsDecimalPoint}\r\n disabled={isDisabled}\r\n />\r\n
    }\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n {label}\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 SensitivityVarView\r\n\r\n\r\ninterface SensitivityTableProps {\r\n model: SensitivityVar\r\n header: string\r\n validator?: ValidationFunc\r\n useCommaAsDecimalPoint: boolean\r\n}\r\n\r\nconst SensitivityTable = observer(({ model, header, validator, useCommaAsDecimalPoint }: SensitivityTableProps) => {\r\n const handleAdd = () => model.addNewValue()\r\n const handleRemove = (id: string) => model.removeValue(id)\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {model.values.map(item =>\r\n \r\n \r\n \r\n )}\r\n \r\n
    {header}
    \r\n item.setValue(x)}\r\n validator={validator}\r\n className='h-100 border-0 rounded-0'\r\n useCommaAsDecimalPoint={useCommaAsDecimalPoint} />\r\n \r\n handleRemove(item.id)}/>\r\n
    \r\n )\r\n})\r\n","import Form from 'react-bootstrap/Form'\r\nimport {observer} from 'mobx-react-lite'\r\nimport NumberInput from 'components/helper/NumberInput'\r\nimport React from 'react'\r\nimport {ValidationFunc} from 'components/helper/validation'\r\nimport ContextHelp from 'components/helper/ContextHelp'\r\nimport ButtonAdd from 'components/helper/ButtonAdd'\r\nimport ButtonDelete from 'components/helper/ButtonDelete'\r\nimport {Sizing} from 'components/project/model/Sizing'\r\nimport { SizingKind } from '../../../../../services/inputs'\r\n\r\n\r\ninterface SizingViewProps {\r\n id: string\r\n model: Sizing\r\n absoluteUnits?: string // `undefined` to exclude\r\n relativeUnits?: string // `undefined` to exclude\r\n absoluteLabel?: string\r\n relativeLabel?: string\r\n validator?: ValidationFunc,\r\n customTblHead?: string\r\n componentId?: string\r\n useCommaAsDecimalPoint: boolean\r\n hideHelp?: boolean\r\n customLabel?: string\r\n}\r\n\r\n\r\nconst SizingView = observer(({ id, model, absoluteUnits, relativeUnits, absoluteLabel, relativeLabel, validator, customTblHead, useCommaAsDecimalPoint, componentId = 'componentId', hideHelp = false, customLabel = \"\" }: SizingViewProps) => {\r\n const absoluteText = absoluteLabel ?? `Size in ${absoluteUnits}`\r\n const relativeText = relativeLabel ?? `Size in ${relativeUnits}`\r\n\r\n return (\r\n
    \r\n
    \r\n
    {`Size ${customLabel}`}
    \r\n {!hideHelp && }\r\n
    \r\n\r\n
    \r\n {(absoluteUnits && relativeUnits) &&\r\n <>\r\n ev.target.checked && model.setKind(SizingKind.absolute)}/>\r\n ev.target.checked && model.setKind(SizingKind.relative)}/>\r\n }\r\n {(absoluteUnits && !relativeUnits) &&
    {absoluteText}
    }\r\n {(!absoluteUnits && relativeUnits) &&
    {relativeText}
    }\r\n
    \r\n\r\n \r\n
    \r\n )\r\n})\r\n\r\n\r\nexport default SizingView\r\n\r\n\r\ninterface SizingTableProps {\r\n model: Sizing\r\n units: string\r\n validator?: ValidationFunc\r\n customTblHead?: string\r\n componentId?: string\r\n useCommaAsDecimalPoint: boolean\r\n}\r\n\r\nconst SizingTable = observer(({ model, units, validator, customTblHead, componentId, useCommaAsDecimalPoint }: SizingTableProps) => {\r\n const handleAdd = () => {model.addNewValue()}\r\n const handleRemove = (id: string) => {model.removeValue(id)}\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {model.values.map(v =>\r\n \r\n \r\n \r\n )}\r\n \r\n
    {customTblHead?customTblHead:units}
    \r\n v.setValue(x)} className='h-100 border-0 rounded-0' onEnter={handleAdd} autoFocus={true} validator={validator} useCommaAsDecimalPoint={useCommaAsDecimalPoint} />\r\n \r\n handleRemove(v.id)}/>\r\n
    \r\n )\r\n})\r\n","import {observer} from 'mobx-react-lite'\r\nimport CostTableView from './shared/CostTableView'\r\nimport MultiYearView from 'components/project/pages/SharedComponents/MultiYearView'\r\nimport SensitivityVarView from 'components/project/pages/EnergyMarket/SensitivityVarView'\r\nimport SizingView from 'components/project/pages/equipment/shared/SizingView'\r\nimport ContextHelp from 'components/helper/ContextHelp'\r\nimport {Validation, ValidationFunc} from 'components/helper/validation'\r\nimport {Inverter} from 'components/project/model/Inverter'\r\nimport { v4 } from 'uuid'\r\n\r\n\r\ninterface InverterViewProps {\r\n model: Inverter\r\n label: string\r\n absoluteUnits?: string\r\n relativeUnits?: string\r\n absoluteLabel?: string\r\n relativeLabel?: string\r\n type?: string\r\n sizeValidator?: ValidationFunc\r\n useCommaAsDecimalPoint: boolean\r\n hideSensitivity?: boolean\r\n hideHelp?: boolean\r\n}\r\n\r\n\r\nconst InverterView = observer(({ model, label, absoluteUnits, relativeUnits, absoluteLabel, relativeLabel, type, sizeValidator, useCommaAsDecimalPoint, hideSensitivity = false, hideHelp = false }: InverterViewProps) => {\r\n return (\r\n <>\r\n {type &&
    \r\n
    {!hideHelp && < ContextHelp helpId='SYSTEM' />}
    \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 InverterView\r\n","import {ChangeEvent} from 'react'\r\nimport {readFile} from 'utils'\r\nimport './FilePicker.css'\r\n\r\n\r\ninterface FilePickerProps {\r\n onSelect?: (content: string, file: File) => void\r\n label?: string\r\n types?: string\r\n disabled?: boolean\r\n}\r\n\r\n\r\nconst FilePicker = ({onSelect, label, types, disabled}: FilePickerProps) => {\r\n const handleSelectFile = async (ev: ChangeEvent) => {\r\n if (disabled) {\r\n ev.preventDefault()\r\n return\r\n }\r\n const files = ev.target.files\r\n const file = files![0]\r\n const content = await readFile(file)\r\n onSelect?.(content, file)\r\n }\r\n\r\n const css = `btn btn-file btn-primary pillButton ${disabled ? 'disabled' : ''}`\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default FilePicker\r\n","import { useState, useEffect, ChangeEvent, FocusEvent, KeyboardEvent, ClipboardEvent } from 'react'\r\nimport { StrValidationFunc } from 'components/helper/StringValidation'\r\n\r\n\r\ninterface StringInputProps {\r\n value: string\r\n onChange?: (x: string) => void\r\n onEnter?: () => void\r\n\r\n id?: string\r\n className?: string\r\n disabled?: boolean,\r\n autoFocus?: boolean\r\n\r\n validator?: StrValidationFunc\r\n onPaste?: (x: ClipboardEvent) => void\r\n textArea?: boolean\r\n}\r\n\r\n\r\nconst StringInput = ({ value, onChange, onEnter, id, className, disabled, autoFocus, validator, onPaste, textArea = false }: StringInputProps) => {\r\n const [text, setText] = useState(value)\r\n const [errors, setErrors] = useState([])\r\n\r\n useEffect(() => {\r\n setText(value)\r\n }, [value])\r\n\r\n const commit = (s: string) => {\r\n const error = validator?.(s) ?? []\r\n setErrors(error)\r\n onChange?.(s) \r\n }\r\n\r\n const handleChange = (ev: ChangeEvent) => {\r\n setText(ev.target.value)\r\n setErrors([])\r\n }\r\n\r\n const handleBlur = (ev: FocusEvent) => {\r\n commit(text)\r\n }\r\n\r\n const c = 'form-control ' +\r\n (errors.length > 0 ? 'is-invalid ' : '') +\r\n (className ?? '')\r\n\r\n return (\r\n <>{!textArea && <>\r\n \r\n {errors.length > 0 &&\r\n
    \r\n {errors.join('\\n')}\r\n
    }\r\n }\r\n {textArea && <>\r\n