{"version":3,"sources":["webpack:///src/app/shared/components/donut-chart/donut-chart.component.ts","webpack:///src/app/shared/components/donut-chart/donut-chart.component.html","webpack:///src/app/components/date-selector/date-selector.component.ts","webpack:///src/app/components/date-selector/date-selector.component.html","webpack:///src/app/components/campus-spreadsheet/campus-spreadsheet.component.ts","webpack:///src/app/components/campus-spreadsheet/campus-spreadsheet.component.html","webpack:///src/app/shared/components/svg-definitions/svg-definitions.component.ts","webpack:///src/app/shared/components/svg-definitions/svg-definitions.component.html","webpack:///src/app/components/campus-spreadsheet/campus-spreadsheet.model.ts","webpack:///src/app/services/stub-services/client-summary.stub.service.ts","webpack:///src/app/components/building-contacts/building-contacts.component.ts","webpack:///src/app/components/building-contacts/building-contacts.component.html","webpack:///src/app/pages/campus-page/campus-page.component.ts","webpack:///src/app/pages/campus-page/campus-page.component.html","webpack:///src/app/shared/components/svg-icon/svg-icon.component.ts","webpack:///src/app/shared/components/svg-icon/svg-icon.component.html","webpack:///src/app/components/building-event-modal/building-event-modal.model.ts","webpack:///src/app/services/real-services/event-snapshot.service.ts","webpack:///src/app/components/header/header.component.ts","webpack:///src/app/components/header/header.component.html","webpack:///src/app/components/building-spreadsheet/building-tag-filter.ts","webpack:///src/app/services/services.module.ts","webpack:///src/app/components/building-contact-modal/building-contact-modal.component.ts","webpack:///src/app/components/building-contact-modal/building-contact-modal.component.html","webpack:///src/app/services/real-services/go-live-date.service.ts","webpack:///src/app/components/event-snapshot/event-snapshot.component.ts","webpack:///src/app/components/event-snapshot/event-snapshot.component.html","webpack:///src/app/components/building-asset-list/building-asset-list.model.ts","webpack:///src/app/components/date-selector/date-selector.service.ts","webpack:///src/app/components/building-asset-list/building-asset/building-asset.component.ts","webpack:///src/app/components/building-asset-list/building-asset/building-asset.component.html","webpack:///src/app/services/real-services/benchmarks.service.ts","webpack:///src/app/services/interfaces/event-snapshot.interface.ts","webpack:///src/app/components/building-benchmarks/utility-benchmarks/utility-benchmarks.model.ts","webpack:///src/app/shared/utils.ts","webpack:///src/app/pages/admin/translation-items-filter.ts","webpack:///src/app/services/admin.service.ts","webpack:///src/app/shared/services/with-credentials-interceptor.service.ts","webpack:///src/environments/environment.ts","webpack:///src/app/services/stub-services/building-spreadshee.stub.service.ts","webpack:///src/app/pages/page-not-found/page-not-found.component.ts","webpack:///src/app/pages/page-not-found/page-not-found.component.html","webpack:///src/app/components/note-manager/note-manager.component.ts","webpack:///src/app/components/note-manager/note-manager.component.html","webpack:///src/app/services/selected-client.service.ts","webpack:///src/app/components/client-summary/client-summary.component.ts","webpack:///src/app/components/client-summary/client-summary.component.html","webpack:///src/app/shared/interceptors/auth.interceptor.ts","webpack:///src/app/shared/excel-utils.ts","webpack:///src/app/components/building-equipment-modal/building-equipment-modal.component.ts","webpack:///src/app/components/building-equipment-modal/building-equipment-modal.component.html","webpack:///src/app/shared/components/info-block/info-block.component.ts","webpack:///src/app/shared/components/info-block/info-block.component.html","webpack:///src/app/components/building-event-modal/building-event-modal.component.ts","webpack:///src/app/components/building-event-modal/building-event-modal.component.html","webpack:///src/app/services/real-services/endpoint-const.ts","webpack:///src/app/services/interfaces/go-live-date.interface.ts","webpack:///src/app/shared/services/token-provider.service.ts","webpack:///src/app/services/selected-building.service.ts","webpack:///src/app/shared/components/card/card.component.ts","webpack:///src/app/shared/components/card/card.component.html","webpack:///src/app/shared/guards/auth.guard.ts","webpack:///src/app/components/footer/footer.component.ts","webpack:///src/app/components/footer/footer.component.html","webpack:///src/app/shared/pipes/value-format.pipe.ts","webpack:///src/app/services/real-services/client-summary.service.ts","webpack:///src/app/models/BuildingInfo.ts","webpack:///src/app/shared/shared.module.ts","webpack:///src/app/shared/components/base/base.component.ts","webpack:///src/app/components/building-alerts/building-alerts.component.ts","webpack:///src/app/components/building-alerts/building-alerts.component.html","webpack:///src/app/pages/building-page/building-page.component.ts","webpack:///src/app/pages/building-page/building-page.component.html","webpack:///src/app/components/campus-summary/campus-summary.model.ts","webpack:///src/app/routing-const.ts","webpack:///src/app/components/building-spreadsheet/building-spreadsheet.model.ts","webpack:///src/app/services/interfaces/building-spreadsheet.interface.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/shared/services/authentication.service.ts","webpack:///src/app/components/dashboard-btn-group/dashboard-btn-group.component.ts","webpack:///src/app/components/dashboard-btn-group/dashboard-btn-group.component.html","webpack:///src/app/shared/pipes/map-to-iterable.pipe.ts","webpack:///src/app/services/real-services/image.service.ts","webpack:///src/app/components/building-event-modal/building-event-filter.ts","webpack:///src/app/app.module.ts","webpack:///src/app/shared/models/NumberFormat.ts","webpack:///src/app/services/stub-services/dashboard.stub.service.ts","webpack:///src/app/services/real-services/building-summary.service.ts","webpack:///src/app/shared/components/event-modal/event-modal.component.ts","webpack:///src/app/shared/components/event-modal/event-modal.component.html","webpack:///src/app/shared/components/bar-chart/bar-chart.model.ts","webpack:///src/app/shared/pipes/localize-text.pipe.ts","webpack:///src/app/pages/client-select/client-select.component.ts","webpack:///src/app/pages/client-select/client-select.component.html","webpack:///src/app/components/building-spreadsheet/building-spreadsheet.component.ts","webpack:///src/app/components/building-spreadsheet/building-spreadsheet.component.html","webpack:///src/app/models/EquipmentsEvents.ts","webpack:///src/app/authentication/login/login.component.ts","webpack:///src/app/authentication/login/login.component.html","webpack:///src/app/components/client-summary/client-summary.model.ts","webpack:///src/app/components/building-benchmarks/facility-benchmarks/facility-benchmarks.component.ts","webpack:///src/app/components/building-benchmarks/facility-benchmarks/facility-benchmarks.component.html","webpack:///src/app/components/building-equipment-modal/building-equipment-modal.model.ts","webpack:///src/app/services/dashboard-excel.service.ts","webpack:///src/app/components/building-benchmarks/facility-benchmarks/facility-benchmarks.model.ts","webpack:///src/app/shared/services/local-storage.service.ts","webpack:///src/app/components/building-benchmarks/utility-benchmarks/utility-benchmarks.component.ts","webpack:///src/app/components/building-benchmarks/utility-benchmarks/utility-benchmarks.component.html","webpack:///src/app/services/real-services/building-spreadsheet.service.ts","webpack:///src/app/shared/interceptors/http-error.interceptor.ts","webpack:///src/app/services/real-services/building-asset-list.service.ts","webpack:///src/app/components/campus-summary/campus-summary.component.ts","webpack:///src/app/components/campus-summary/campus-summary.component.html","webpack:///src/app/services/interfaces/client-summary.interface.ts","webpack:///src/app/pages/main-dashboard/main-dashboard.component.ts","webpack:///src/app/pages/main-dashboard/main-dashboard.component.html","webpack:///src/app/services/go-live-date-storage.service.ts","webpack:///src/app/services/interfaces/building-summary.interface.ts","webpack:///src/app/pages/admin/admin.component.ts","webpack:///src/app/pages/admin/admin.component.html","webpack:///src/app/components/building-events/building-events.component.ts","webpack:///src/app/components/building-events/building-events.component.html","webpack:///src/app/app-routing.module.ts","webpack:///src/app/components/building-info/building-info.model.ts","webpack:///src/app/services/stub-services/building-summary.stub.service.ts","webpack:///src/app/components/building-info/building-info.component.ts","webpack:///src/app/components/building-info/building-info.component.html","webpack:///src/app/shared/components/bar-chart/bar-chart.component.ts","webpack:///src/app/shared/components/bar-chart/bar-chart.component.html","webpack:///src/main.ts","webpack:///src/app/components/building-asset-list/building-asset-list.component.ts","webpack:///src/app/components/building-asset-list/building-asset-list.component.html","webpack:///$_lazy_route_resource lazy namespace object"],"names":["DonutChartComponent","data","enterCount","changes","createSvg","width","options","outerRadius","height","backgroundArc","innerRadius","startAngle","endAngle","Math","PI","mainArc","cornerRadius","d","svg","id","append","attr","relativeSize","charts","selectAll","enter","innerColor","arcColor","selector","templateUrl","styleUrls","changeDetection","OnPush","DateSelectorComponent","dataFilterService","formBuilder","localizeText","maxDate","Date","defaultDateRangeTitle","transform","selectedIndexChanged$","menuClosed","rangeLabels","customRangeIndex","length","datePipe","dateRange","range","group","start","end","index","setSelectedIndex","reset","startDate","controls","value","endDate","goLiveDate","undefined","getTime","setValue","customRangeChanged","setStartEndDates","closeMenu","openMenu","$event","stopPropagation","CampusSpreadsheetComponent","model","router","activateRoute","selectedClientService","dateFilterService","clientGoLiveDateService","buildingSpreadsheetService","buildingSummaryService","changeDetectorRef","showCampusChanged","format","tagName","campusInfo$","campusData","rangeSavingsTitle","rangeSavingsTitleShort","arrowType","blocks","defaultInfoBlockData","liveDate$","clientGoLiveDate$","savingsTitle","electricityGraphs","gasGraphs","waterGraphs","isElectricityPresented","isGasPresented","isWaterPresented","fixedUsageType","currentUsageViewName","setInterval","changeUsageView","detectChanges","usageType","usagesByDates","getValueFunc","resultArray","isZeroItems","reverse","forEach","p","resourceName","lineColor","graph","hasData","chartType","dataTable","title","chartArea","legend","series","type","color","cleanUsagesByDates","removeTrailingNulls","date","toLocaleDateString","campusDataList","map","createGraph","t","electricity","rangeElectricitySavings","gas","rangeNaturalGasSavings","water","filter","selectedClientId$","dateRangeChanged$","pipe","clientId","getCampusSpredsheetData","addSubscription","subscribe","emit","initGraphs","campus","getCampusSummaryAdditional","energyEfficiencyScore","energyStarScore","campusId","navigate","relativeTo","provide","useExisting","providers","SvgDefinitionsComponent","ArrowType","CampusModel","electricitySavings","icon","name","gasSavings","savings","increased","Increased","decreased","Decreased","unaltered","Unaltered","providedIn","ClientSummaryStubService","msInHour","buildingGroupName","buildingCount","totalSavings","eui","totalBeds","totalSquareFootage","commonSavings","clientName","buildingsCount","bedsCount","totalSqFt","hasElectricity","hasGas","hasWater","todaySavings","rangeSavings","electricityCost","naturalGasCost","totalEnergySpend","weekSavings","monthSavings","quarterSavings","yearSavings","Error","dateDiff","diffDays","ceil","BuildingContactsComponent","dialog","selectedBuildingService","contacts","buildingId","getContacts","contact","contactModal","open","panelClass","maxWidth","minHeight","afterClosed","result","selectedBuildingId$","getBuildingContacts","res","openContactEditModal","CampusPageComponent","benchmarksService","anchor","advanced$","facilityBenchmarksData$","getClientFacilityBenchmarks","params","tryGetNumberFromAny","setTimeout","scrollToAnchor","currentLocalization$","localization","advanced","next","nativeElement","scrollIntoView","behavior","block","inline","backToOverview","onChanged","SvgIconComponent","window","location","href","BuildingEventModalModel","valuePipe","propMap","addedBy","getter","arg","isEditable","engineer","addedDate","daysImplemented","description","EventSnapshotService","httpClient","REST_API_SERVER","apiUrl","BUILDING_EVENTS","post","DASHBOARD","dateStart","dateEnd","BUILDING","HeaderComponent","authService","tokenProvider","qmetDashboardLink","isUserAuthenticated$","isEditMode","isEditor","isEngCoAdmin","authChanged$","currentIsEditMode$","currentIsEditor$","currentIsEngCoAdmin$","logout","navigateToLogin","targetLink","authParam","getToken","toggleIsEditMode","ev","selectedLanguage","languages","code","currentLanguage","changeLanguage","openQmet","TagFilterPipe","items","filterTag","item","tags","tag","toUpperCase","includes","pure","services","CLIENT_SUMMARY_SERVICE","stub","real","BUILDING_SPREADSHEET_SERVICE","BUILDING_SUMMARY_SERVICE","EVENT_SNAPSHOT_SERVICE","GO_LIVE_DATE_SERVICE","IMAGE_SERVICE","ServicesModule","getProviders","Object","keys","key","useClass","useStubServices","BuildingContactModalComponent","dialogRef","isNewContact","notes","text","saveContact","confirm","deleteBuildingContact","close","isCloseAfterSave","saveBuildingContact","saveNotes","GoLiveDateService","GO_LIVE_DATE","get","EventSnapshotComponent","eventSnapshotService","chartDescription","volumeByBuildingChartOptions","chartTitle","maxHeight","datasets","label","shortNumberFormat","maxValueStrategy","maxDataset","volumeByTypeChartOptions","volumeByBuildingData$","volumeByTypeData$","eventSummary$","selectedCampusId$","getEventSummary","createVolumeByBuildingData","eventsByBuilding","createVolumeByTypeData","eventsVolumeByType","events","reduce","volumeByBuildingData","curr","titles","push","buildingName","values","lb1","emptyVolumeByBuildingData","volumeByTypeData","typedEvents","eventsType","lb2","commonImpact","emptyVolumeByTypeData","AssetListModel","manufacturerNameCaption","controllabilityCaption","ageCaption","eventsColumn","caption","alignRight","c","chillersGridOptions","columnOptions","e","equipment","controllability","manufacturerName","tonnage","serial","chillerType","formatDate","dateInstalled","getTitle","boilersGridOptions","size","coolingTowersGridOptions","chillers","airHandlersGridOptions","areaServed","chillerServed","mainType","floorName","hwConvertersGridOptions","manufacturer","loopName","basControlsGridOptions","informationModel","formatBool","remoteAccess","formatPercents","percentPneumatic","percentDdc","mriGridOptions","wishListGridOptions","hideEventsLink","i","energyUsesGridOptions","electricEnergySource","naturalGasSource","formatAge","age","bool","DateSelectorService","initialSelectedIndex","dateArray","getFirstDate","getFullYear","getInitDateRange","selectedIndex","asObservable","setDateRangeByIndex","setDateRange","getValue","day","month","year","setDate","getDate","setMonth","getMonth","setFullYear","ClientSummaryDateService","BuildingSpreadsheetDateService","EventSnapshotDateService","AlarmDateService","GridOptions","ColumnOption","BuildingAssetComponent","equipmentName","equimpmentsList","boilers","onRegetRequested","totalWidth","equimpmentsCount","detailsInfo","showEventsLink","assetListInfo","toString","gridOptions","option","acc","equipmentType","equipmentModal","equipmentEvents","instanceOfEquipmentEvents","eventsModal","object","BenchmarksService","FACILITY_BENCHMARKS","UTILITY_BENCHMARKS","UtilityBenchmarkModel","UsageVsCostTitle","KwhRateVsBenchmarksTitle","MCFRateVsBenchmarksTitle","currencyFormatWithMaxAllStrategy","defaultCurrencyFormat","maxAll","percentsFormatWithMaxStrategy","defaultPercentsFormat","percentsMax","percentOfUsageDataset","barColor","percentOfCostDataset","startDataset","currentDataset","industryDataset","usageVsCostElectricityAnalysisOptions","showLegendInDataset","usageVsCostGasAnalysisOptions","kwhRateVsBenchmarksOptions","mcfRateVsBenchmarksOptions","Utils","param","isNaN","TranslationItemsFilterPipe","filterString","sourceText","AdminService","LANGUAGE_INFO","ADMIN","languageInfo","WithCredentialsInterceptorService","req","handle","clone","withCredentials","environment","production","BuildingSpreadsheetStubService","temperature","gasDynamics","electricityDynamics","PageNotFoundComponent","NoteManagerComponent","currentNote","loginId","noteItems","onSaveNotes","noteItem","isInEditMode","creationTime","SelectedClientService","selectedClientId","v","selectedCampusId","currentIsEditMode","currentIsEditor","currentIsEngCoAdmin","currentLoginId","currentLoginId$","currentLocalization","availableClients","ClientSummaryComponent","clientSummaryService","summaryChanged","alarmChanged","ROWS_COUNT","columnsCount","buildingsGroupName","savingsData","defaultSavingsData","detailsData","defaultDetailsData","consumptionDetailsData","defaultConsumptionDetailsData","overviewData","defaultOverviewData","rangeSavingsDescriptions","isSpendView","getClientSummaryData","setSavingsValues","setDetailsValues","getColumsCount","getClientSummaryAdditionalData","setAdditionalDetailsValues","rangeToDateSavings","hideIfUndefined","hide","isAlarmView","itemsCount","getDetailsVisibleItemsCount","isDetailsItemVisible","additionalValue","round","naturalGasSavings","co2Emission","carbonEmission","co2Reduced","carbonReduced","waterSpend","waterCost","waterUsage","rangeWaterSpent","electricConsumption","electricSavingVolume","naturalGasConsumption","gasConsumption","unitOfMeasure","gasMeasure","gasSavingsVolume","onChange","onAlarmViewChange","onSpendViewChange","AuthInterceptor","tokenProviderService","request","token","url","setHeaders","Authorization","ExcelUtils","fileName","blob","Blob","EXCEL_TYPE","navigator","msSaveBlob","link","document","createElement","download","URL","createObjectURL","setAttribute","style","visibility","body","appendChild","click","removeChild","ImageSnippet","src","file","BuildingEquipmentModalComponent","imageService","assetListService","keepOriginalOrder","prop","mainHeader","getEquipmentNameByType","subHeader","buttonName","getPropMapByEquipmentType","BuildingEnergyUses","WishList","getDefaultEquipmentByEquipmentType","MRI","saveEquipment","regetEquipmentAndClosePopup","hyperlinks","hyperlink","pdfInputRef","pdf","pdfs","imageInputRef","image","images","imageInput","files","reader","FileReader","addEventListener","event","selectedFile","target","uploadImage","imageAdded","imageUrl","readAsDataURL","pdfInput","pdfAdded","obj","propertyName","deleteEquipment","note","trim","sendNotes","InfoBlockComponent","BuildingEventModalComponent","unshift","eventType","equipmentId","impact","deleted","saveEvents","console","log","EndpointConst","CAMPUS","IMAGE","TokenProviderService","localStorageService","TOKEN_KEY","set","remove","SelectedBuildingService","selectedBuildingId","CardComponent","AuthGuard","route","state","isUserAuthenticated","queryParams","returnUrl","FooterComponent","ValueFormatPipe","shortPostfixes","maxFractionDigitsInShort","defaultDigitsInfo","defaultLocale","defaultValue","isShort","abs","formattedNumber","digitsInfo","prefix","postfix","getShortFormattedNumber","isPositive","digits","floor","log10","exp","digitsBeforeDot","shortNumber","pow","maxFractionDigits","min","max","Number","minIntegerDigits","minFractionDigits","ClientSummaryRealService","CLIENT_SUMMARY","CAMPUS_SUMMARY","ALERTS","CLIENT_SUMMARY_ADDITIONAL","CAMPUS_SUMMARY_ADDITIONAL","BuildingContact","SharedModule","declarations","imports","exports","BaseComponent","subscriptions","subscriptionsMap","subscription","unsubscribe","subscriptionName","BuildingAlertsComponent","alertsItems","hasCampus","getAlerts","campusName","TagHolder","isConfirmed","BuildingPageComponent","_location","dashboardExcelService","buildingBenchmarksData$","utilityBenchmarksData$","buildingGoLiveDate$","spendViewChanged","backToPageNotFound","getTags","getBuildingFacilityBenchmarks","benchmark","getBuildingUtilityBenchmarks","back","buildingEventsComponent","getEvents","buildingAssetListComponent","getEquipmentInfo","tagItem","saveTags","print","getDateRange","downloadBuildingExcelReport","saveBuildingTags","getBuildingTags","exportToExcel","switchSpendView","regetRequestedForAssets","regetRequested","SavingsData","DetailsData","isGreen","CampusSummaryModel","integerCurrencyFormat","shortCurrencyFormat","emptyBlock","emptyBlockA","emptyBlockH","LOGIN_ROUTE","CLIENT_SELECT_ROUTE","DASHBOARD_ROUTE","BUILDING_ROUTE","CAMPUS_ROUTE","ADMIN_ROUTE","NOT_FOUND_ROUTE","BuildingsModel","AppComponent","AuthenticationService","http","jwtHelper","LOGIN","LOGOUT","AUTH_INFO","CHANGE_LANGUAGE","authChangeSub","initAuthResponse","language","reload","removeToken","logoutUser","isAuthSuccessful","setToken","clients","DashboardBtnGroupComponent","isAdvancedView","isAlarmsView","isShowLeftButtons","advancedViewChanged","alarmViewChanged","downloadExcelReport","downloadAlarmsExcelReport","switchView","switchAlarmView","exportToExcelAlarms","MapToIterablePipe","ImageResponse","ImageService","UPLOAD_PATH","formData","FormData","EventFilterPipe","JwtOptions","config","whitelistedDomains","blacklistedRoutes","interceptorProviders","multi","configFactory","authenticationService","getAuthInfo","toPromise","AppModule","useFactory","deps","forRoot","bootstrap","NumberFormat","GoLiveDateStubService","electricityGoLiveDate","gasGoLiveDate","BuildingSummaryRealService","BUILDING_SUMMARY","BUILDING_SUMMARY_ADDITIONAL","TAGS","PRIMARY_FUNCTION","PRIMARY_FUNCTIONS","BUILDING_CONTACTS","BUILDING_CONTACT","DELETE_BUILDING_CONTACT","primaryFunctionId","buildingContact","EventModalComponent","DEFAULT_COLORS","MaxValueStrategy","HorizontalBarChartOptions","DatasetData","LocalizeTextPipe","originalText","translationItems","ClientSelectComponent","sort","a","b","client","BuildingSpreadsheetComponent","buildingsInfo$","buildingsData","getBuildingSpredsheetData","buildingData","building","getBuildingSummaryAdditional","NoteItem","EquipmentType","SaveEquipmentResult","EquipmentInfo","LoginComponent","loginForm","username","required","password","errorMessage","snapshot","controlName","invalid","touched","errorName","hasError","loginFormValue","loginAndPass","userForAuth","loginUser","error","ClientSummaryModel","FacilityBenchmarksComponent","_document","isEditIndustryEnabled","euiChartData","costPerBedChartData","costPerSqftChartData","primaryFunctions","industries","selectedIndustry","primaryFunction","buildingIndustry","getPrimaryFunctions","thing","arr","findIndex","setChartsData","getBuildingInfo","savePrimaryFunction","defaultView","getPrimaryFunction","createEuiChartData","createCostPerSqFtData","costPerBedData","createCostPerBedChartData","barChartData","euiData","starting","current","industry","emptyEuiChartData","national","region","emptyCostPerBedChartData","costPerSqFtData","emptyCostPerSqFtChartData","Document","BuildingEquipmentModalModel","propMapChiller","purchasePrice","annualMaintenanceFee","vintage","lifeOfEquipment","propMapBoiler","boilerType","propMapCoolingTower","propMapAirHandler","propMapHWConverter","propMapBASControl","propMapMRI","propMapBuildingEnergyUses","propMapWishList","Chiller","Boiler","CoolingTower","AirHandler","HWConverter","BASControl","approxAge","pmProcedures","basinType","towerType","fanType","hoursOfOperation","numberOfAHU","secondaryType","numberOfExhaustAirExchangerOrRecapture","any_VAV_PIU_CAV","preExistingSetBacksInPlace","preExistingSetBacksSpecific","currentSetBacks","userName","percentBuildingControlled","numberOfFloorsControlled","DashboardExcelService","clientSummaryDateService","buildingDateService","eventSnapshotDateService","alarmDateService","EXCEL","ALARMS_EXCEL","clientSummaryRange","buildingSpreadsheetRange","eventSnapshotRange","responseType","now","downloadExcelFile","FacilityBenchmarkModel","nationalDataset","regionDataset","stateDataset","euiChartOptions","integerNumberFormat","costPerBedChartOptions","costPerSqftChartOptions","LocalStorageService","localStorage","setItem","getItem","removeItem","UtilityBenchmarksComponent","usageVsCostElectricityData","kwhRateVsBenchmarksData","usageVsCostGasData","mcfRateVsBenchmarksData","createUsageVsCostElData","createKwhRateVsBenchmarksData","createUsageVsCostNgData","createMcfRateVsBenchmarksData","percentOfUsage","electricityAnalysis","percentOfCost","emptyUsageVsCostData","gasAnalysis","emptyRateVsBenchmarksData","BuildingSpreadsheetRealService","BUILDING_SPREADSHEET","CAMPUS_SPREADSHEET","HttpErrorInterceptor","errorResponse","ErrorEvent","message","BuildingAssetListService","EQUIPMENTS","EQUIPMENT","DELETE_EQUIPMENT","EQUIPMENT_EVENTS","NOTES","CampusSummaryComponent","getCampusSummaryData","MainDashboardComponent","isShowCampus","alarm$","onAlarmChanged","GoLiveDateStorage","goLiveDateService","getGoLiveDate","getBuildingGoLiveDate","AdminComponent","adminService","isSaveInProgress","currentLanguageCode","onLanguageChanged","getLanguageInfo","currentLanguageInfo","isNew","saveProgressMessage","saveLanguageInfo","isSuccess","BuildingEventsComponent","goLiveDateStorage","buildingEvents","eventsByTypeChartOptions","barFunction","clickableText","clickFunction","openDetails","buildingGoLiveDate","filteredData","find","x","getBuildingEventVolumeByType","eventsByTypeData","routes","path","component","canActivate","children","AppRoutingModule","anchorScrolling","scrollPositionRestoration","ScoreData","BuildingModel","defaultScoreData","efficiencyScore","chartOptions","starScore","consumptionDefaultDetailsData","BuildingSummaryStubService","electricityCostPercent","naturalGasCostPercent","BuildingInfoComponent","parentModel","scoreData","meterNames","buildingInfo","getBuildingSummary","join","setBlockData","setScoreValues","electricityBuildingGoLiveDate","electricityBuildingGoLiveDateString","gasBuildingGoLiveDateString","inText","arrow","energyType","getDateString","payloadLink","BarChartComponent","bluredTitleTemplateRef","visibleDatasets","hiddenDatasets","barRatesByKey","colorsByKey","defaultRateForBluredBars","initChart","visibleBarsCount","getVisibleBarsCount","slice","getColorsDictionary","calculateBarsRate","defaultColorIndex","dataset","rates","maxValues","Map","ds","maxAllValue","maxValue","getMaxValueDependsOnStrategy","getBarsRate","hiddenBarsCount","getHiddenBarsCount","bluredBarsCount","bootstrapModule","err","BuildingAssetListComponent","assetListModel","changeDetectionRef","chillersList","boilersList","coolingTowersList","airHandlersList","hwConvertersList","basControlsList","wishListItems","mriList","buildingEnergyUses","getEquipmentsEvents","coolingTowers","airHandlers","hwConverters","mriItems","webpackEmptyAsyncContext","Promise","resolve","then","module"],"mappings":"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","file":"main-es5.js","sourcesContent":["import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport * as d3 from 'd3';\nimport { IconDataAdaptive } from 'src/app/components/building-info/building-info.model';\nimport { BaseComponent } from '../base/base.component';\n\nexport interface DonutChartOptions {\n id: string;\n innerRadius: number;\n outerRadius: number;\n startAngle: number;\n cornerRadius: number;\n arcColor: string;\n innerColor: string;\n icon?: IconDataAdaptive;\n relativeSize: string;\n}\n\n@Component({\n selector: 'br-donut-chart',\n templateUrl: './donut-chart.component.html',\n styleUrls: ['./donut-chart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DonutChartComponent extends BaseComponent implements OnChanges {\n\n @Input()\n public options!: DonutChartOptions;\n\n @Input()\n public data: number | null = null;\n\n public enterCount: number = 0;\n\n constructor() {\n super();\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.data) {\n this.createSvg();\n }\n }\n\n private createSvg(): void {\n const width = this.options.outerRadius * 2;\n const height = width;\n const backgroundArc = d3.arc()\n .innerRadius(this.options.innerRadius)\n .outerRadius(this.options.outerRadius)\n .startAngle(0)\n .endAngle(Math.PI * 2);\n\n const mainArc = d3.arc()\n .innerRadius(this.options.innerRadius)\n .outerRadius(this.options.outerRadius)\n .cornerRadius(this.options.cornerRadius)\n .startAngle(this.options.startAngle)\n .endAngle((d: any) => this.options.startAngle + (d / 100 * Math.PI * 2));\n\n this.enterCount += 1; //todo\n if (this.enterCount > 2){\n return;\n }\n\n const svg = d3.select('#' + this.options.id).append('svg')\n .attr('width', this.options.relativeSize)\n .attr('height', this.options.relativeSize)\n .attr('viewBox', (-width / 2) + ' ' + (-height / 2) + ' ' + width + ' ' + height)\n .attr('preserveAspectRatio', 'xMaxYMax meet')\n .attr('position', 'relative');\n\n const charts = svg.selectAll('g')\n .data([this.data ?? 0])\n .enter()\n .append('g');\n\n charts.append('path')\n .attr('d', backgroundArc as any)\n .attr('fill', this.options.innerColor);\n\n charts.append('path')\n .attr('d', mainArc as any)\n .attr('fill', this.options.arcColor);\n\n charts.append('circle')\n .attr('cx', 0)\n .attr('cy', 0)\n .attr('r', this.options.innerRadius)\n .attr('fill', this.options.innerColor);\n }\n}\n","
\n \n
\n\n","import { DatePipe } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { DateSelectorService } from './date-selector.service';\n\n@Component({\n selector: 'br-date-selector',\n templateUrl: './date-selector.component.html',\n styleUrls: ['./date-selector.component.scss']\n})\nexport class DateSelectorComponent {\n\n @Input()\n public goLiveDate?: Date | null;\n\n public maxDate: Date = new Date();\n public defaultDateRangeTitle = this.localizeText.transform('Date Range');\n\n public selectedIndexChanged$ = this.dataFilterService.selectedIndexChanged$;\n public menuClosed = true;\n public rangeLabels = [this.localizeText.transform('Yesterday'), this.localizeText.transform('Week'), this.localizeText.transform('Month'), this.localizeText.transform('Quarter'), this.localizeText.transform('Year'), this.localizeText.transform('YTD')];\n public customRangeIndex = this.rangeLabels.length;\n private datePipe = new DatePipe('en-US'); //!!todo\n public dateRange = '';\n public range: FormGroup;\n\n constructor(private readonly dataFilterService: DateSelectorService,\n formBuilder: FormBuilder,\n private localizeText: LocalizeTextPipe) {\n this.range = formBuilder.group({\n start: [],\n end: []\n });\n }\n\n public changeTab(index: number): void {\n this.dataFilterService.setSelectedIndex(index);\n this.range.reset();\n }\n\n public closeMenu(): void {\n this.menuClosed = true;\n let startDate = this.range.controls.start.value;\n const endDate = this.range.controls.end.value;\n\n if (this.goLiveDate !== undefined && this.goLiveDate !== null && !!startDate && !!endDate\n && startDate.getTime() < new Date(this.goLiveDate).getTime()\n && endDate.getTime() >= new Date(this.goLiveDate).getTime()) {\n this.range.controls.start.setValue(this.goLiveDate);\n startDate = this.range.controls.start.value;\n }\n\n if (!!startDate && !!endDate) {\n this.dateRange = this.datePipe.transform(startDate, 'M/d/yy') + ' - '\n + this.datePipe.transform(endDate, 'M/d/yy');\n this.customRangeChanged(startDate, endDate);\n }\n }\n\n public openMenu(): void {\n this.menuClosed = false;\n }\n\n private customRangeChanged(startDate: Date, endDate: Date): void {\n this.dataFilterService.setSelectedIndex(this.customRangeIndex);\n this.dataFilterService.setStartEndDates(startDate, endDate);\n }\n}\n","{{ rangeLabel }}\n\n {{ ((selectedIndexChanged$ | async) !== customRangeIndex ? defaultDateRangeTitle : dateRange)\n + (menuClosed ? ' â–¾' : ' â–´') }}\n\n\n
\n \n {{ 'Enter a date range' | localizeText }}\n \n \n \n \n \n \n {{ 'Invalid start date' | localizeText }}\n {{ 'Invalid end date' | localizeText }}\n \n
\n
\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { combineLatest, Observable } from 'rxjs';\nimport { NumberFormat } from '../../shared/models/NumberFormat';\nimport { BaseComponent } from '../../shared/components/base/base.component';\nimport { ArrowType, CampusModel } from './campus-spreadsheet.model';\nimport { CampusData, UsageByDate } from '../../models/CampusData';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BuildingSpreadsheetDateService, DateSelectorService } from '../date-selector/date-selector.service';\nimport { BUILDING_SPREADSHEET_SERVICE, IBuildingSpreadsheetService } from 'src/app/services/interfaces/building-spreadsheet.interface';\nimport { switchMap } from 'rxjs/operators';\nimport { SelectedClientService } from '../../services/selected-client.service';\nimport { CAMPUS_ROUTE } from '../../routing-const';\nimport { GoLiveDateStorage } from '../../services/go-live-date-storage.service';\nimport { BUILDING_SUMMARY_SERVICE, IBuildingSummaryService } from 'src/app/services/interfaces/building-summary.interface';\nimport { DateRange } from '@angular/material/datepicker';\nimport { BuildingInfoAdditional } from 'src/app/models/BuildingInfo';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'br-campus-spreadsheet',\n templateUrl: './campus-spreadsheet.component.html',\n styleUrls: ['./campus-spreadsheet.component.scss'],\n providers: [CampusModel,\n {\n provide: DateSelectorService,\n useExisting: BuildingSpreadsheetDateService\n }],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CampusSpreadsheetComponent extends BaseComponent implements OnInit {\n\n @Output()\n public showCampusChanged = new EventEmitter();\n\n public format = NumberFormat;\n\n public tagName: string = \"\";\n\n public campusInfo$ = new Observable();\n public campusData = [] as CampusData[];\n public rangeSavingsTitle = this.model.rangeSavingsTitleShort;\n public arrowType = this.model.arrowType;\n public blocks = this.model.defaultInfoBlockData;\n public liveDate$ = this.clientGoLiveDateService.clientGoLiveDate$;\n public savingsTitle = '';\n\n public electricityGraphs: any = [];\n public gasGraphs: any = [];\n public waterGraphs: any = [];\n public isElectricityPresented = false;\n public isGasPresented = false;\n public isWaterPresented = false;\n\n public fixedUsageType: string = null;\n\n currentUsageViewName = \"Water\"; \n\n constructor(private readonly model: CampusModel,\n private readonly router: Router,\n private readonly activateRoute: ActivatedRoute,\n private readonly selectedClientService: SelectedClientService,\n private readonly dateFilterService: DateSelectorService,\n private readonly clientGoLiveDateService: GoLiveDateStorage,\n @Inject(BUILDING_SPREADSHEET_SERVICE) private readonly buildingSpreadsheetService: IBuildingSpreadsheetService,\n @Inject(BUILDING_SUMMARY_SERVICE) private readonly buildingSummaryService: IBuildingSummaryService,\n private changeDetectorRef: ChangeDetectorRef,) {\n super();\n\n setInterval(() => {\n this.changeUsageView();\n this.changeDetectorRef.detectChanges();\n }, 5000);\n }\n\n public clickUsageType(usageType: string) {\n if (this.fixedUsageType === usageType) {\n this.fixedUsageType = null;\n return;\n }\n\n this.fixedUsageType = usageType;\n\n this.currentUsageViewName = usageType;\n }\n\n public changeUsageView() {\n if (this.fixedUsageType != null) {\n return;\n }\n\n switch (this.currentUsageViewName) {\n case \"Electricity\":\n if (this.isGasPresented) {\n this.currentUsageViewName = \"Gas\";\n } else if (this.isWaterPresented) {\n this.currentUsageViewName = \"Water\";\n } \n break;\n case \"Gas\":\n if (this.isWaterPresented) {\n this.currentUsageViewName = \"Water\";\n } else if (this.isElectricityPresented) {\n this.currentUsageViewName = \"Electricity\";\n }\n break;\n case \"Water\":\n if (this.isElectricityPresented) {\n this.currentUsageViewName = \"Electricity\";\n } else if (this.isGasPresented) {\n this.currentUsageViewName = \"Gas\";\n }\n break;\n }\n }\n\n private removeTrailingNulls (usagesByDates: UsageByDate[], getValueFunc: (t: UsageByDate) => number): UsageByDate[] {\n const resultArray = [] as UsageByDate[];\n\n let isZeroItems = true;\n [...usagesByDates].reverse().forEach(p => {\n const value = getValueFunc(p);\n\n if (value && value != 0) {\n isZeroItems = false;\n }\n\n if (!isZeroItems) {\n resultArray[resultArray.length] = p;\n }\n });\n\n return resultArray.reverse();\n }\n\n public createGraph(campusData: CampusData, resourceName: string, getValueFunc: (t: UsageByDate) => number, lineColor: string): any {\n var graph = {\n hasData: false,\n chartType: \"LineChart\",\n dataTable: [] as any,\n options: {\n title: resourceName,\n chartArea: {\n width: \"250\",\n height: \"100\"\n },\n legend: 'none',\n series: {\n 0: { type: 'line', color: lineColor },\n },\n }, \n };\n\n graph.dataTable[0] = [\"Date\", resourceName];\n\n const cleanUsagesByDates = this.removeTrailingNulls(campusData.usagesByDates, getValueFunc);\n\n cleanUsagesByDates.forEach(p => {\n const value = getValueFunc(p);\n graph.dataTable[graph.dataTable.length] = [(new Date(p.date)).toLocaleDateString(), value];\n\n if (value > 0) {\n graph.hasData = true;\n }\n });\n\n return graph;\n }\n\n public initGraphs(campusDataList: CampusData[]): void {\n this.electricityGraphs = campusDataList.map(p => this.createGraph(p, \"Electricity\", t => t.electricity, p.rangeElectricitySavings >= 0 ? 'green' : 'red'));\n this.gasGraphs = campusDataList.map(p => this.createGraph(p, \"Gas\", t => t.gas, p.rangeNaturalGasSavings >= 0 ? 'green' : 'red'));\n this.waterGraphs = campusDataList.map(p => this.createGraph(p, \"Water\", t => t.water, 'blue'));\n \n this.isElectricityPresented = campusDataList.filter(p => p.usagesByDates.filter(t => t.electricity > 0).length > 0).length > 0;\n this.isGasPresented = campusDataList.filter(p => p.usagesByDates.filter(t => t.gas > 0).length > 0).length > 0;\n this.isWaterPresented = campusDataList.filter(p => p.usagesByDates.filter(t => t.water > 0).length > 0).length > 0;\n\n this.fixedUsageType = null;\n\n this.changeUsageView();\n }\n\n public ngOnInit(): void {\n this.campusInfo$ = combineLatest([\n this.selectedClientService.selectedClientId$,\n this.dateFilterService.dateRangeChanged$,\n ]).pipe(\n switchMap(([clientId, dateRange]) => this.buildingSpreadsheetService.getCampusSpredsheetData(clientId, dateRange))\n );\n\n this.addSubscription(\n this.campusInfo$.subscribe((campusData) => {\n this.showCampusChanged.emit(campusData.length > 1);\n this.campusData = campusData;\n this.initGraphs(this.campusData);\n this.changeDetectorRef.detectChanges();\n campusData.forEach(campus => {\n this.addSubscription(\n this.buildingSummaryService.getCampusSummaryAdditional(campus.id, new DateRange(new Date(), new Date())).subscribe((data: BuildingInfoAdditional) => {\n const campusData = this.campusData.filter(p => p.id === campus.id)[0];\n campusData.energyEfficiencyScore = data.energyEfficiencyScore;\n campusData.energyStarScore = data.energyStarScore;\n this.changeDetectorRef.detectChanges();\n })\n );\n });\n })\n );\n\n this.addSubscription(\n this.dateFilterService.selectedIndexChanged$.subscribe(index => {\n this.savingsTitle = this.rangeSavingsTitle[index];\n })\n );\n }\n\n public cardClick(campusId: number): void {\n this.router.navigate([`${CAMPUS_ROUTE}/${campusId}`], { relativeTo: this.activateRoute });\n\n }\n\n public get arrow(): typeof ArrowType {\n return ArrowType;\n }\n}\n","
\n
{{ 'Campus Spreadsheet' | localizeText }}
\n \n
\n
\n Electricity\n Gas\n Water\n
\n
\n
0\"\n > \n
\n
\n
\n {{ data.campusName }} \n
\n
\n \n {{ data.temperature | valueFormat: format.temperatureFormat }}\n
\n
\n
\n {{ data.location }}\n
\n
\n
\n
\n
1 && electricityGraphs[i].hasData\" class=\"graph-block\"\n [ngStyle]=\"{'background-color': electricityGraphs[i].options.series[0].color}\">\n
\n \n
\n
\n
\n No Data/Model\n
\n
\n
\n
1 && gasGraphs[i].hasData\" class=\"graph-block\"\n [ngStyle]=\"{'background-color': gasGraphs[i].options.series[0].color}\">\n
\n \n
\n
\n
\n No Data/Model\n
\n
\n
\n
1 && waterGraphs[i].hasData\" class=\"graph-block\"\n [ngStyle]=\"{'background-color': waterGraphs[i].options.series[0].color}\">\n
\n \n
\n
\n
\n No Data/Model\n
\n
\n
\n
\n
\n
\n
\n \n {{ data.rangeElectricitySavings | valueFormat: format.integerCurrencyFormat }}\n \n
\n \n
\n
\n
\n \n {{ data.rangeNaturalGasSavings | valueFormat: format.integerCurrencyFormat }}\n \n
\n \n
\n
\n \n
\n
\n \n {{ data.savings | valueFormat: format.integerCurrencyFormat }} {{ savingsTitle }}\n
\n
\n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'br-svg-definitions',\n templateUrl: './svg-definitions.component.html'\n})\nexport class SvgDefinitionsComponent { }\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n","import { Injectable } from '@angular/core';\nimport { InfoBlockData } from 'src/app/shared/components/info-block/info-block.model';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { NumberFormat } from '../../shared/models/NumberFormat';\n\nexport enum ArrowType {\n Increased = 'arrow-increase',\n Decreased = 'arrow-decrease',\n Unaltered = 'vector'\n}\n\nexport interface ArrowData {\n icon: string;\n width: number;\n height: number;\n color: string;\n}\n\nexport interface FormattedNumber {\n value: number;\n format: NumberFormat;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CampusModel {\n\n constructor(private localizeText: LocalizeTextPipe) {\n }\n\n public defaultInfoBlockData: Record = {\n electricitySavings: {\n icon: { name: 'plug', width: 13.5, height: 18, color: '#53698F' }\n },\n gasSavings: {\n icon: { name: 'fire-alt', width: 15.75, height: 18, color: '#3EB049' }\n },\n savings: {\n icon: { name: 'usd-circle', width: 16, height: 16, color: '#3EB049' }\n }\n };\n\n public rangeSavingsTitleShort = [\n this.localizeText.transform('Yesterday Savings'),\n this.localizeText.transform('Last 7 Day Savings'),\n this.localizeText.transform('Last 30 Day Savings'),\n this.localizeText.transform('Last 90 Day Savings'),\n this.localizeText.transform('Last 365 Day Savings'),\n this.localizeText.transform('YTD Savings'),\n this.localizeText.transform('Savings')\n ];\n\n public arrowType: Record = {\n increased: {\n icon: ArrowType.Increased,\n width: 8,\n height: 16,\n color: '#3EB049'\n },\n decreased: {\n icon: ArrowType.Decreased,\n width: 8,\n height: 16,\n color: '#CD0402'\n },\n unaltered: {\n icon: ArrowType.Unaltered,\n width: 13,\n height: 15,\n color: '#FFA26B'\n }\n };\n}\n","import { Injectable } from '@angular/core';\nimport { DateRange } from '@angular/material/datepicker';\nimport { Observable, of } from 'rxjs';\nimport { AlertsData } from 'src/app/models/AlertsData';\nimport { CampusSummaryData } from 'src/app/models/CampusSummaryData';\nimport { ClientSummaryAdditionalData } from 'src/app/models/ClientSummaryAdditionalData';\nimport { ClientSummaryData } from '../../models/ClientSummaryData';\nimport { IClientSummaryService } from '../interfaces/client-summary.interface';\n\n@Injectable()\nexport class ClientSummaryStubService implements IClientSummaryService {\n getAlerts(clientId: number, campusId: number, dateRange: DateRange): Observable {\n throw new Error('Method not implemented.');\n }\n getCampusSummaryData(clientId: number, campusId: number, dateRange: DateRange): Observable {\n throw new Error('Method not implemented.');\n }\n getCampusSummaryAdditionalData(campusId: number, dateRange: DateRange): Observable {\n throw new Error('Method not implemented.');\n }\n private readonly msInHour = 1000 * 3600 * 24;\n private readonly buildingGroupName = 'Hospitals Group Name';\n private readonly buildingCount = 6;\n private readonly totalSavings = 1483392.56;\n private readonly eui = 522;\n private readonly totalBeds = 130500;\n private readonly totalSquareFootage = 2345000;\n\n private readonly commonSavings: ClientSummaryData = {\n clientName: this.buildingGroupName,\n totalSavings: this.totalSavings,\n buildingsCount: this.buildingCount,\n bedsCount: this.totalBeds,\n totalSqFt: this.totalSquareFootage,\n hasElectricity: true,\n hasGas: true,\n hasWater: true\n };\n\n private readonly todaySavings: ClientSummaryData = {\n ...this.commonSavings,\n rangeSavings: 31567,\n rangeElectricitySavings: 25000,\n rangeNaturalGasSavings: 6000,\n electricityCost: 79,\n naturalGasCost: 21,\n totalEnergySpend: 250000\n };\n\n private readonly weekSavings: ClientSummaryData = {\n ...this.commonSavings,\n rangeSavings: 205645,\n rangeElectricitySavings: 175000,\n rangeNaturalGasSavings: 39000,\n electricityCost: 82,\n naturalGasCost: 18,\n totalEnergySpend: 1250000\n };\n\n private readonly monthSavings: ClientSummaryData = {\n ...this.commonSavings,\n rangeSavings: 891543,\n rangeElectricitySavings: 723000,\n rangeNaturalGasSavings: 150000,\n electricityCost: 83,\n naturalGasCost: 17,\n totalEnergySpend: 5230000\n };\n\n private readonly quarterSavings: ClientSummaryData = {\n ...this.commonSavings,\n rangeSavings: 3021567,\n rangeElectricitySavings: 2883000,\n rangeNaturalGasSavings: 600000,\n electricityCost: 82,\n naturalGasCost: 18,\n totalEnergySpend: 20300000\n };\n\n private readonly yearSavings: ClientSummaryData = {\n ...this.commonSavings,\n rangeSavings: 10124752,\n rangeElectricitySavings: 9113000,\n rangeNaturalGasSavings: 1900000,\n electricityCost: 81,\n naturalGasCost: 19,\n totalEnergySpend: 74560000\n };\n\n public getClientSummaryData(clientId: number, dateRange: DateRange): Observable {\n const savings = {...this.commonSavings};\n const startDate = dateRange.start?.getTime();\n const endDate = dateRange.end?.getTime();\n if (!startDate || !endDate) {\n return of(savings);\n }\n const dateDiff = endDate - startDate;\n const diffDays = Math.ceil(dateDiff / this.msInHour);\n if (diffDays <= 2) {\n return of(this.todaySavings);\n } else if (diffDays <= 8) {\n return of(this.weekSavings);\n } else if (diffDays <= 31) {\n return of(this.monthSavings);\n } else if (diffDays <= 125) {\n return of(this.quarterSavings);\n } else if (diffDays <= 400) {\n return of(this.yearSavings);\n }\n return of(this.monthSavings);\n }\n\n public getClientSummaryAdditionalData(clientId: number, dateRange: DateRange): Observable { \n return of({eui: this.eui});\n }\n}\n","import { ChangeDetectorRef, Component, Inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { switchMap } from 'rxjs/operators';\nimport { BuildingContact } from 'src/app/models/BuildingInfo';\nimport { BUILDING_SUMMARY_SERVICE, IBuildingSummaryService } from 'src/app/services/interfaces/building-summary.interface';\nimport { SelectedBuildingService } from 'src/app/services/selected-building.service';\nimport { SelectedClientService } from 'src/app/services/selected-client.service';\nimport { BaseComponent } from 'src/app/shared/components/base/base.component';\nimport { BuildingContactModalComponent } from '../building-contact-modal/building-contact-modal.component';\n\n@Component({\n selector: 'br-building-contacts',\n templateUrl: './building-contacts.component.html',\n styleUrls: ['./building-contacts.component.scss']\n})\nexport class BuildingContactsComponent extends BaseComponent implements OnChanges { \n\n @Input()\n public buildingId: number;\n\n public contacts: BuildingContact[]=[];\n\n constructor(private changeDetectorRef: ChangeDetectorRef,\n private selectedClientService: SelectedClientService,\n private dialog: MatDialog,\n public readonly selectedBuildingService: SelectedBuildingService,\n @Inject(BUILDING_SUMMARY_SERVICE) private readonly buildingSummaryService: IBuildingSummaryService\n ) { \n super(); \n }\n\n \n ngOnChanges(changes: SimpleChanges): void {\n if (changes.buildingId) {\n this.getContacts(); \n }\n }\n\n public openContactEditModal(contact: BuildingContact): void {\n\n const contactModal = this.dialog.open(BuildingContactModalComponent, {\n panelClass: 'app-full-bleed-dialog',\n width: '88.9vw',\n data: contact,\n maxWidth: '88.9vw',\n minHeight: '600px'\n });\n\n contactModal.afterClosed().subscribe(result => {\n if (result === 'reget') {\n this.getContacts();\n }\n });\n }\n\n private getContacts(): void {\n this.addSubscription(\n this.selectedBuildingService.selectedBuildingId$.pipe(\n switchMap(buildingId => this.buildingSummaryService.getBuildingContacts(buildingId)),\n ).subscribe(res => {\n this.contacts = res;\n this.changeDetectorRef.detectChanges();\n })\n );\n }\n}\n\n\n","\n \n \n
{{ 'Contacts' | localizeText }}
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{ 'Name' | localizeText }}{{ 'Title' | localizeText }}{{ 'Office Number' | localizeText }}{{ 'Email' | localizeText }}{{ 'Cell Phone Number' | localizeText }}
{{ contact.name }}{{ contact.title }}{{ contact.officeNumber }}{{ contact.email }}{{ contact.cellPhoneNumber }}
\n
\n
","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { FacilityBenchmarkData } from '../../models/FacilityBenchmarkData';\nimport { BenchmarksService } from '../../services/real-services/benchmarks.service';\nimport { BaseComponent } from '../../shared/components/base/base.component';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Utils } from '../../shared/utils';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { SelectedClientService } from '../../services/selected-client.service';\nimport { NOT_FOUND_ROUTE } from '../../routing-const';\n\n@Component({\n selector: 'br-campus-page',\n templateUrl: './campus-page.component.html',\n styleUrls: ['./campus-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CampusPageComponent extends BaseComponent implements OnInit {\n\n @ViewChild('anchor')\n public anchor: ElementRef | null = null;\n\n public advanced$ = new BehaviorSubject(false);\n public facilityBenchmarksData$ = new Observable();\n constructor(\n private readonly selectedClientService: SelectedClientService,\n private readonly benchmarksService: BenchmarksService,\n private readonly activateRoute: ActivatedRoute,\n private readonly router: Router,\n private changeDetectorRef: ChangeDetectorRef,\n ) {\n super();\n }\n\n ngOnInit(): void { \n this.facilityBenchmarksData$ = this.selectedClientService.selectedClientId$.pipe(\n switchMap(clientId => this.benchmarksService.getClientFacilityBenchmarks(clientId, this.selectedClientService.campusId))\n );\n\n this.addSubscription(\n this.activateRoute.params.pipe(\n map(params => Utils.tryGetNumberFromAny(params.clientId))\n ).subscribe(clientId => {\n if (clientId !== undefined) {\n this.selectedClientService.clientId = clientId;\n } else {\n //!!todo this.router.navigate([NOT_FOUND_ROUTE]);\n }\n })\n );\n\n this.addSubscription(\n this.activateRoute.params.pipe(\n map(params => Utils.tryGetNumberFromAny(params.campusId))\n ).subscribe(campusId => {\n if (campusId !== undefined) {\n this.selectedClientService.campusId = campusId;\n } else {\n //!!todo this.router.navigate([NOT_FOUND_ROUTE]);\n }\n })\n );\n\n this.addSubscription(\n this.advanced$.subscribe((value) => {\n if (value) {\n setTimeout(() => this.scrollToAnchor(), 0);\n }\n })\n );\n\n this.selectedClientService.currentLocalization$.subscribe(localization => {\n if (localization) {\n this.changeDetectorRef.detectChanges(); \n }\n });\n }\n\n public onChanged(advanced: boolean): void {\n this.advanced$.next(advanced);\n }\n\n private scrollToAnchor(): void {\n this.anchor?.nativeElement?.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' });\n }\n\n public backToOverview(): void {\n this.router.navigate(['../../'], { relativeTo: this.activateRoute });\n }\n}\n","\n\n\n
\n\n\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'br-svg-icon',\n templateUrl: './svg-icon.component.html',\n styleUrls: ['./svg-icon.component.scss']\n})\nexport class SvgIconComponent {\n\n @Input()\n public name = '';\n\n @Input()\n public width: number | undefined;\n\n @Input()\n public height: number | undefined;\n\n @Input()\n public color: string | undefined;\n\n public get absUrl(): string {\n return window.location.href;\n }\n}\n","\n \n\n","import { DatePipe } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { NumberFormat } from 'src/app/shared/models/NumberFormat';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { ValueFormatPipe } from 'src/app/shared/pipes/value-format.pipe';\n\nexport interface EventProperty {\n name: string;\n width: string;\n getter: (arg: any) => string | null | undefined;\n isEditable: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BuildingEventModalModel {\n\n private valuePipe = new ValueFormatPipe();\n private datePipe = new DatePipe('en-US');\n\n constructor(private localizeText: LocalizeTextPipe) {\n }\n\n public propMap: Record = {\n addedBy: { name: this.localizeText.transform('Added By'), width: '9.82%', getter: (arg: string) => arg, isEditable: false },\n engineer: { name: this.localizeText.transform('Engineer'), width: '16.72%', getter: (arg: string) => arg, isEditable: true },\n addedDate: { name: this.localizeText.transform('Added date'), width: '13.15%', getter: (arg: Date) => this.datePipe.transform(arg, 'MM/dd/yyyy'), isEditable: false },\n daysImplemented: { name: this.localizeText.transform('Days Implemented'), width: '13.15%', getter: (arg: number) => `${arg} Days`, isEditable: false },\n // impact: { name: this.localizeText.transform('Impact %'), width: '8.85%', getter:\n // (arg: number) => this.valuePipe.transform(arg, NumberFormat.defaultPercentsFormat), isEditable: false },\n description: { name: this.localizeText.transform('Description'), width: '38.31%', getter: (arg: string) => arg, isEditable: true },\n // id: { name: 'â„–', width: '0%', getter: (arg: number) => arg.toString(), isEditable: false },\n // eventType: { name: 'Equipment', width: '0%', getter: (arg: string) => arg, isEditable: false },\n };\n}\n\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { environment } from '../../../environments/environment';\nimport { EndpointConst } from './endpoint-const';\nimport { DateRange } from '@angular/material/datepicker';\nimport { IEventSnapshotService } from '../interfaces/event-snapshot.interface';\nimport { EventsByType, EventSummary } from 'src/app/components/building-events/building-event.model';\nimport { ClientDateRange } from '../../models/ClientDateRange';\nimport { BuildingDateRange } from '../../models/BuildingDateRange';\n\n@Injectable()\nexport class EventSnapshotService implements IEventSnapshotService {\n private REST_API_SERVER = environment.apiUrl;\n private readonly BUILDING_EVENTS = 'events';\n\n constructor(private httpClient: HttpClient) { }\n\n public getEventSummary(clientId: number, campusId: number | undefined, dateRange: DateRange): Observable {\n const data = this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.DASHBOARD}/${this.BUILDING_EVENTS}`,\n {\n clientId,\n campusId,\n dateStart: dateRange.start,\n dateEnd: dateRange.end\n } as ClientDateRange);\n return data;\n }\n\n public getBuildingEventVolumeByType(buildingId: number, dateRange: DateRange): Observable {\n const data = this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${this.BUILDING_EVENTS}`,\n {\n buildingId,\n dateStart: dateRange.start,\n dateEnd: dateRange.end\n } as BuildingDateRange);\n return data;\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { environment } from '../../../environments/environment';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AuthenticationService } from '../../shared/services/authentication.service';\nimport { LOGIN_ROUTE, ADMIN_ROUTE, CLIENT_SELECT_ROUTE } from '../../routing-const';\nimport { TokenProviderService } from 'src/app/shared/services/token-provider.service';\nimport { SelectedClientService } from 'src/app/services/selected-client.service';\nimport { LocalizationInfo } from 'src/app/models/AuthModel';\nimport { takeLast } from 'rxjs/operators';\n\n@Component({\n selector: 'br-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n public qmetDashboardLink = environment.qmetDashboardLink;\n public isUserAuthenticated$ = new Observable();\n\n public isEditMode: boolean = false;\n public isEditor: boolean = false;\n public isEngCoAdmin: boolean = false;\n\n public localization: LocalizationInfo;\n\n constructor(private authService: AuthenticationService,\n private router: Router,\n private tokenProvider: TokenProviderService,\n private selectedClientService: SelectedClientService,\n ) { }\n\n ngOnInit(): void {\n this.isUserAuthenticated$ = this.authService.authChanged$;\n\n this.selectedClientService.currentIsEditMode$.subscribe(isEditMode => {\n this.isEditMode = isEditMode;\n });\n\n this.selectedClientService.currentIsEditor$.subscribe(isEditor => {\n this.isEditor = isEditor;\n });\n\n this.selectedClientService.currentIsEngCoAdmin$.subscribe(isEngCoAdmin => {\n this.isEngCoAdmin = isEngCoAdmin;\n });\n\n this.selectedClientService.currentLocalization$.subscribe(localization => {\n this.localization = localization;\n });\n }\n\n public logout(): void {\n this.authService.logout();\n this.navigateToLogin();\n }\n\n public navigateToLogin(): void {\n this.router.navigate([LOGIN_ROUTE]);\n }\n\n public openClientSelect(): void {\n this.router.navigate([CLIENT_SELECT_ROUTE]);\n }\n\n public openQmet(): void {\n //document.cookie = \"auth=\" + this.tokenProvider.getToken();\n\n let targetLink = this.qmetDashboardLink;\n let authParam = '?key=' + this.tokenProvider.getToken();\n targetLink += authParam;\n\n window.open(targetLink);\n }\n\n public toggleEditMode(): void {\n this.selectedClientService.toggleIsEditMode();\n }\n\n public onLanguageChanged(ev: any): void {\n var selectedLanguage = this.localization.languages.filter(p => p.code == this.localization.currentLanguage.code)[0];\n this.authService.changeLanguage(selectedLanguage)\n .pipe(takeLast(1))\n .subscribe(res => {\n \n });\n }\n\n public navigateToAdmin(): void {\n this.router.navigate([ADMIN_ROUTE]);\n }\n}\n\n\n","\n
\n \"Brogdon \n
\n
\n \"Everest\n \"Everest\n
\n \n {{ 'Switch to Edit Mode' | localizeText }}{{ 'Switch to View Mode' | localizeText }}\n \n {{ language.name === language.nativeName ? language.name : language.name + ' (' + language.nativeName + ')' }} \n \n Admin\n {{ 'QMET Modeling Dashboard' | localizeText }} \n {{ 'Login' | localizeText }}\n {{ 'Logout' | localizeText }}\n
\n
\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { BuildingData } from 'src/app/models/BuildingData';\r\n@Pipe({\r\n name: 'tagfilter',\r\n pure: false\r\n})\r\nexport class TagFilterPipe implements PipeTransform {\r\n transform(items: BuildingData[], filterTag: string): any {\r\n if (!items || !filterTag) {\r\n return items;\r\n }\r\n\r\n return items.filter(\r\n item => item.tags &&\r\n item.tags.filter(\r\n tag => tag.toUpperCase().includes(filterTag.toUpperCase())\r\n ).length > 0\r\n );\r\n }\r\n}","import { Provider } from '@angular/core';\nimport { NgModule, Type } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { environment } from '../../environments/environment';\nimport { BuildingSpreadsheetStubService } from './stub-services/building-spreadshee.stub.service';\nimport { BuildingSummaryStubService } from './stub-services/building-summary.stub.service';\nimport { ClientSummaryStubService } from './stub-services/client-summary.stub.service';\nimport { BuildingSpreadsheetRealService } from './real-services/building-spreadsheet.service';\nimport { BuildingSummaryRealService } from './real-services/building-summary.service';\nimport { ClientSummaryRealService } from './real-services/client-summary.service';\nimport { GoLiveDateService } from './real-services/go-live-date.service';\nimport { GoLiveDateStubService } from './stub-services/dashboard.stub.service';\nimport { EventSnapshotService } from './real-services/event-snapshot.service';\nimport { ImageService } from './real-services/image.service';\n\nexport interface ServiceMetadata {\n stub?: any;\n real?: any;\n}\n\nconst services: Dictionary = {\n CLIENT_SUMMARY_SERVICE: {\n stub: ClientSummaryStubService,\n real: ClientSummaryRealService\n },\n BUILDING_SPREADSHEET_SERVICE: {\n stub: BuildingSpreadsheetStubService,\n real: BuildingSpreadsheetRealService\n },\n BUILDING_SUMMARY_SERVICE: {\n stub: BuildingSummaryStubService,\n real: BuildingSummaryRealService\n },\n EVENT_SNAPSHOT_SERVICE: {\n stub: EventSnapshotService,\n real: EventSnapshotService\n },\n GO_LIVE_DATE_SERVICE: {\n stub: GoLiveDateStubService,\n real: GoLiveDateService\n },\n IMAGE_SERVICE: {\n stub: ImageService,\n real: ImageService\n } \n};\n\n@NgModule({\n providers: [\n ...getProviders()\n ]\n})\nexport class ServicesModule { }\n\nexport function getProviders(): Provider[] {\n return Object.keys(services).map(key => ({\n provide: key,\n useClass: !!environment.useStubServices[key] ? services[key].stub : services[key].real\n } as Provider));\n}\n","import { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { switchMap } from 'rxjs/operators';\nimport { BuildingContact } from 'src/app/models/BuildingInfo';\nimport { NoteItem } from 'src/app/models/EquipmentsEvents';\nimport { BUILDING_SUMMARY_SERVICE, IBuildingSummaryService } from 'src/app/services/interfaces/building-summary.interface';\nimport { SelectedBuildingService } from 'src/app/services/selected-building.service';\nimport { BaseComponent } from 'src/app/shared/components/base/base.component';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\n\n@Component({\n selector: 'br-building-contact-modal',\n templateUrl: './building-contact-modal.component.html',\n styleUrls: ['./building-contact-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BuildingContactModalComponent extends BaseComponent {\n\n public isEditMode: boolean = false;\n public isNewContact: boolean = false;\n public contact: BuildingContact = null;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: BuildingContact,\n public readonly selectedBuildingService: SelectedBuildingService,\n @Inject(BUILDING_SUMMARY_SERVICE) private readonly buildingSummaryService: IBuildingSummaryService,\n private localizeText: LocalizeTextPipe) {\n super();\n\n this.contact = data;\n\n if (this.contact === null) {\n this.isNewContact = true;\n this.contact = new BuildingContact();\n this.isEditMode = true;\n }\n }\n\n public saveNotes(notes: NoteItem[]): void {\n this.contact.notes = notes;\n this.contact.notes = this.contact.notes.filter(p => p.text !== '');\n\n if (!this.isNewContact) {\n this.saveContact(false);\n }\n }\n\n public deleteClicked() {\n if (confirm(this.localizeText.transform(\"Are you sure you want to delete this Contact?\"))) {\n this.addSubscription(\n this.selectedBuildingService.selectedBuildingId$.pipe(\n switchMap(buildingId => this.buildingSummaryService.deleteBuildingContact(buildingId, this.contact)),\n ).subscribe(res => {\n this.dialogRef.close('reget');\n })\n );\n }\n }\n\n public saveClicked() { \n this.saveContact();\n }\n\n public editClicked() {\n this.isEditMode = true;\n }\n\n private saveContact(isCloseAfterSave: boolean = true) {\n this.addSubscription(\n this.selectedBuildingService.selectedBuildingId$.pipe(\n switchMap(buildingId => this.buildingSummaryService.saveBuildingContact(buildingId, this.contact)),\n ).subscribe(res => {\n if (isCloseAfterSave) {\n this.dialogRef.close('reget');\n } \n })\n );\n }\n}\n","
\n {{ 'Contact' | localizeText }}\n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n
\n \n {{ 'Name' | localizeText }}\n \n \n \n \n {{ 'Title' | localizeText }}\n \n \n \n \n {{ 'Office Number' | localizeText }}\n \n \n
\n \n {{ 'Cell Phone Number' | localizeText }}\n \n \n \n \n {{ 'Email' | localizeText }}\n \n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{ 'Name' | localizeText }}{{ contact.name }}
{{ 'Title' | localizeText }}{{ contact.title }}
{{ 'Office Number' | localizeText }}{{ contact.officeNumber }}
{{ 'Cell Phone Number' | localizeText }}{{ contact.cellPhoneNumber }}
{{ 'Email' | localizeText }}{{ contact.email }}
\n
\n \n \n
\n \n \n \n
\n
\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { environment } from '../../../environments/environment';\nimport { EndpointConst } from './endpoint-const';\nimport { IGoLiveDateService } from '../interfaces/go-live-date.interface';\nimport { shareReplay } from 'rxjs/operators';\nimport { GoLiveDateInfo } from 'src/app/shared/models/GoLiveDateInfo';\n\n@Injectable()\nexport class GoLiveDateService implements IGoLiveDateService {\n\n private readonly REST_API_SERVER = environment.apiUrl;\n private readonly GO_LIVE_DATE = 'goLiveDate';\n\n constructor(private httpClient: HttpClient) { }\n\n public getBuildingGoLiveDate(buildingId: number): Observable {\n return this.httpClient.get(`${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${buildingId}/${this.GO_LIVE_DATE}`);\n }\n\n public getGoLiveDate(clientId: number): Observable {\n return this.httpClient.get(`${this.REST_API_SERVER}/${EndpointConst.DASHBOARD}/${clientId}/${this.GO_LIVE_DATE}`);\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject, Input, OnInit } from '@angular/core';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\nimport { EVENT_SNAPSHOT_SERVICE, IEventSnapshotService } from 'src/app/services/interfaces/event-snapshot.interface';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { GoLiveDateStorage } from '../../services/go-live-date-storage.service';\nimport { SelectedClientService } from '../../services/selected-client.service';\nimport { BarChartData, HorizontalBarChartOptions, MaxValueStrategy } from '../../shared/components/bar-chart/bar-chart.model';\nimport { BaseComponent } from '../../shared/components/base/base.component';\nimport { NumberFormat } from '../../shared/models/NumberFormat';\nimport { BuildingEventCommonImpact, EventsByBuilding, EventSummary } from '../building-events/building-event.model';\nimport { DateSelectorService, EventSnapshotDateService } from '../date-selector/date-selector.service';\n\n@Component({\n selector: 'br-event-snapshot',\n templateUrl: './event-snapshot.component.html',\n styleUrls: ['./event-snapshot.component.scss'],\n providers: [DateSelectorService,\n { provide: DateSelectorService,\n useExisting: EventSnapshotDateService\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EventSnapshotComponent extends BaseComponent implements OnInit {\n private readonly chartDescription = this.localizeText.transform('To view event details, select a building from the Building Spreadsheet area above.');\n\n public volumeByBuildingChartOptions: HorizontalBarChartOptions = {\n chartTitle: this.localizeText.transform('Event Volume by Building'),\n description: this.chartDescription,\n maxHeight: 520,\n datasets: [\n {\n key: 'lb1',\n label: this.localizeText.transform('Events'),\n format: NumberFormat.shortNumberFormat,\n maxValueStrategy: MaxValueStrategy.maxDataset\n }\n ]\n };\n\n public volumeByTypeChartOptions: HorizontalBarChartOptions = {\n chartTitle: this.localizeText.transform('Event Volume by Type'),\n description: this.chartDescription,\n maxHeight: 520,\n datasets: [\n {\n key: 'lb1',\n label: this.localizeText.transform('Events'),\n format: NumberFormat.shortNumberFormat,\n maxValueStrategy: MaxValueStrategy.maxDataset\n },\n // {\n // key: 'lb2',\n // label: this.localizeText.transform('Usage'),\n // format: NumberFormat.defaultPercentsFormat,\n // maxValueStrategy: MaxValueStrategy.percentsMax\n // }\n ]\n };\n\n public volumeByBuildingData$ = new Observable();\n public volumeByTypeData$ = new Observable();\n public liveDate$ = this.clientGoLiveDateService.clientGoLiveDate$;\n\n constructor(\n private readonly selectedClientService: SelectedClientService,\n private readonly dateFilterService: DateSelectorService,\n @Inject(EVENT_SNAPSHOT_SERVICE) private readonly eventSnapshotService: IEventSnapshotService,\n private readonly clientGoLiveDateService: GoLiveDateStorage,\n private localizeText: LocalizeTextPipe\n ) {\n super();\n }\n\n ngOnInit(): void {\n const eventSummary$ = combineLatest([\n this.selectedClientService.selectedClientId$,\n this.selectedClientService.selectedCampusId$,\n this.dateFilterService.dateRangeChanged$,\n ]).pipe(\n switchMap(([clientId, campusId, dateRange]) => this.eventSnapshotService.getEventSummary(clientId, campusId, dateRange)),\n shareReplay()\n );\n\n this.volumeByBuildingData$ = eventSummary$.pipe(map(data => this.createVolumeByBuildingData(data.eventsByBuilding)));\n this.volumeByTypeData$ = eventSummary$.pipe(map(data => this.createVolumeByTypeData(data.eventsVolumeByType)));\n }\n\n public createVolumeByBuildingData(events: EventsByBuilding[]): BarChartData {\n return events.reduce((volumeByBuildingData, curr) => {\n volumeByBuildingData.titles.push(curr.buildingName);\n volumeByBuildingData.values.lb1.push(curr.events.length);\n return volumeByBuildingData;\n }, this.emptyVolumeByBuildingData);\n }\n\n public createVolumeByTypeData(events: BuildingEventCommonImpact[]): BarChartData {\n return events.reduce((volumeByTypeData, curr) => {\n volumeByTypeData.titles.push(curr.typedEvents.eventsType);\n volumeByTypeData.values.lb1.push(curr.typedEvents.events.length);\n volumeByTypeData.values.lb2.push(curr.commonImpact);\n return volumeByTypeData;\n }, this.emptyVolumeByTypeData);\n }\n\n private get emptyVolumeByBuildingData(): BarChartData {\n return {\n titles: [],\n values: {\n lb1: [],\n }\n } as BarChartData;\n }\n\n private get emptyVolumeByTypeData(): BarChartData {\n return {\n titles: [],\n values: {\n lb1: [],\n lb2: []\n }\n } as BarChartData;\n }\n}\n","
\n
{{ 'Event Snapshot' | localizeText }}
\n \n
\n
\n \n \n \n \n \n \n
\n","import { DatePipe } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { AirHandlersEvents, BasControlsEvents, BoilerEvents, ChillerEvents,\n CoolingTowersEvents, EnergyUsesItem, Equipment, EquipmentEvents, HotWaterConvertersEvents, MriEvents, WishListEvents, WishListItem } from '../../models/EquipmentsEvents';\nimport { GridOptions } from './building-asset/building-asset.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AssetListModel {\n constructor(private localizeText: LocalizeTextPipe,\n private datePipe: DatePipe) { \n }\n\n private readonly manufacturerNameCaption = this.localizeText.transform('Manufacturer');\n private readonly controllabilityCaption = this.localizeText.transform('Controllability');\n private readonly ageCaption = this.localizeText.transform('Age');\n private readonly eventsColumn = { caption: this.localizeText.transform('Events'), alignRight: true, getter: (c: EquipmentEvents) => c.events.length };\n\n public readonly chillersGridOptions: GridOptions = {\n columnOptions: [\n { caption: this.localizeText.transform('Name'), width: 260, getter: (e: ChillerEvents) => e.equipment.name },\n { caption: this.controllabilityCaption, width: 260, getter: (e: ChillerEvents) => e.equipment.controllability },\n { caption: this.manufacturerNameCaption, width: 320, getter: (e: ChillerEvents) => e.equipment.manufacturerName },\n { caption: this.localizeText.transform('Tonnage'), width: 240, getter: (e: ChillerEvents) => e.equipment.tonnage },\n { caption: this.localizeText.transform('Model #'), width: 240, getter: (e: ChillerEvents) => e.equipment.model },\n { caption: this.localizeText.transform('Serial #'), width: 240, getter: (e: ChillerEvents) => e.equipment.serial }, \n { caption: this.localizeText.transform('Type'), width: 260, getter: (e: ChillerEvents) => e.equipment.chillerType }, \n { caption: this.localizeText.transform('Date Installed'), width: 240, getter: (e: ChillerEvents) => this.formatDate(e.equipment.dateInstalled) },\n \n this.eventsColumn\n ],\n getTitle: (e: ChillerEvents) => e.equipment.manufacturerName\n };\n\n public readonly boilersGridOptions: GridOptions = {\n columnOptions: [\n { caption: this.localizeText.transform('Name'), width: 260, getter: (e: BoilerEvents) => e.equipment.name },\n { caption: this.controllabilityCaption, width: 230, getter: (e: BoilerEvents) => e.equipment.controllability },\n { caption: this.manufacturerNameCaption, width: 260, getter: (e: BoilerEvents) => e.equipment.manufacturerName },\n { caption: this.localizeText.transform('Size (HP)'), width: 150, getter: (e: BoilerEvents) => e.equipment.size },\n { caption: this.localizeText.transform('Model #'), width: 240, getter: (e: BoilerEvents) => e.equipment.model },\n { caption: this.localizeText.transform('Serial #'), width: 240, getter: (e: BoilerEvents) => e.equipment.serial },\n { caption: this.localizeText.transform('Date Installed'), width: 240, getter: (e: BoilerEvents) => this.formatDate(e.equipment.dateInstalled) },\n this.eventsColumn\n ],\n getTitle: (e: BoilerEvents) => e.equipment.manufacturerName\n };\n\n public readonly coolingTowersGridOptions: GridOptions = {\n columnOptions: [\n { caption: this.localizeText.transform('Name'), width: 260, getter: (e: CoolingTowersEvents) => e.equipment.name },\n { caption: this.localizeText.transform('Chiller(s)'), width: 200, getter: (e: CoolingTowersEvents) => e.equipment.chillers },\n { caption: this.controllabilityCaption, width: 200, getter: (e: CoolingTowersEvents) => e.equipment.controllability },\n { caption: this.manufacturerNameCaption, width: 280, getter: (e: CoolingTowersEvents) => e.equipment.manufacturerName },\n { caption: this.localizeText.transform('Model #'), width: 240, getter: (e: CoolingTowersEvents) => e.equipment.model },\n { caption: this.localizeText.transform('Serial #'), width: 240, getter: (e: CoolingTowersEvents) => e.equipment.serial },\n { caption: this.localizeText.transform('Date Installed'), width: 240, getter: (e: CoolingTowersEvents) => this.formatDate(e.equipment.dateInstalled) }, \n this.eventsColumn\n ],\n getTitle: (e: CoolingTowersEvents) => e.equipment.manufacturerName\n };\n\n public readonly airHandlersGridOptions: GridOptions = {\n columnOptions: [\n { caption: this.localizeText.transform('Name'), width: 260, getter: (e: AirHandlersEvents) => e.equipment.name },\n { caption: this.controllabilityCaption, width: 110, getter: (e: AirHandlersEvents) => e.equipment.controllability },\n { caption: this.localizeText.transform('Area Served'), width: 120, getter: (e: AirHandlersEvents) => e.equipment.areaServed },\n { caption: this.localizeText.transform('Chiller Served'), width: 120, getter: (e: AirHandlersEvents) => e.equipment.chillerServed },\n { caption: this.localizeText.transform('Type'), width: 120, getter: (e: AirHandlersEvents) => e.equipment.mainType },\n this.eventsColumn\n ],\n getTitle: (e: AirHandlersEvents) => e.equipment.floorName\n };\n\n public readonly hwConvertersGridOptions: GridOptions = {\n columnOptions: [\n { caption: this.localizeText.transform('Name'), width: 260, getter: (e: HotWaterConvertersEvents) => e.equipment.name },\n { caption: this.controllabilityCaption, width: 100, getter: (e: HotWaterConvertersEvents) => e.equipment.controllability },\n { caption: this.manufacturerNameCaption, width: 280, getter: (e: HotWaterConvertersEvents) => e.equipment.manufacturer },\n { caption: this.localizeText.transform('Date Installed'), width: 240, getter: (e: HotWaterConvertersEvents) => this.formatDate(e.equipment.dateInstalled) }, \n \n this.eventsColumn\n ],\n getTitle: (e: HotWaterConvertersEvents) => e.equipment.loopName\n };\n\n public readonly basControlsGridOptions: GridOptions = {\n columnOptions: [\n { caption: this.manufacturerNameCaption, width: 300, getter: (e: BasControlsEvents) => e.equipment.manufacturerName },\n { caption: this.localizeText.transform('Model'), width: 240, getter: (e: BasControlsEvents) => e.equipment.informationModel },\n { caption: this.localizeText.transform('Date Installed'), width: 240, getter: (e: BasControlsEvents) => this.formatDate(e.equipment.dateInstalled) },\n { caption: this.localizeText.transform('Remote Access'), width: 200,\n getter: (e: BasControlsEvents) => this.formatBool(e.equipment.remoteAccess) }, \n { caption: this.localizeText.transform('% Pneumatic'), width: 240,\n getter: (e: BasControlsEvents) => this.formatPercents(e.equipment.percentPneumatic) },\n { caption: this.localizeText.transform('% DDC'), width: 200, getter: (e: BasControlsEvents) => e.equipment.percentDdc },\n this.eventsColumn\n ],\n getTitle: (e: BasControlsEvents) => e.equipment.manufacturerName\n };\n\n public readonly mriGridOptions: GridOptions = {\n columnOptions: [\n { caption: this.localizeText.transform('Description'), width: 100, getter: (e: MriEvents) => e.equipment.description },\n this.eventsColumn\n ],\n getTitle: (e: MriEvents) => this.localizeText.transform('MRI')\n };\n\n public readonly wishListGridOptions: GridOptions = {\n hideEventsLink: true,\n columnOptions: [\n { caption: this.localizeText.transform('Item'), width: 100, getter: (i: WishListItem) => i.description },\n ],\n };\n\n public readonly energyUsesGridOptions: GridOptions = {\n hideEventsLink: true,\n columnOptions: [\n { caption: this.localizeText.transform('Large Equipment/Room'), width: 370, getter: (i: EnergyUsesItem) => i.name },\n { caption: this.localizeText.transform('Electric Energy Source'), width: 300, getter: (i: EnergyUsesItem) => i.electricEnergySource },\n { caption: this.localizeText.transform('Natural Gas Source'), width: 300, getter: (i: EnergyUsesItem) => i.naturalGasSource }\n ],\n };\n\n private formatAge = (age: number) => `${age} ${this.localizeText.transform('yr')}`;\n private formatBool = (bool: boolean) => bool ? this.localizeText.transform('True') : this.localizeText.transform('False');\n private formatPercents = (value: number) => value ? `${value}%` : '';\n private formatDate = (value?: Date) => `${value ? this.datePipe.transform(value,\"yyyy-MM-dd\") : ''}`;\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { DateRange } from '@angular/material/datepicker';\n\n@Injectable()\nexport class DateSelectorService {\n\n private initialSelectedIndex = 2;\n private dateArray = [this.getFirstDate(1), this.getFirstDate(7), this.getFirstDate(0, 1),\n this.getFirstDate(0, 3), this.getFirstDate(0, 0, 1), new Date(new Date().getFullYear(), 0, 1, 0, 0 , 0 ,0) ];\n private dateRange = new BehaviorSubject>(this.getInitDateRange());\n private selectedIndex = new BehaviorSubject(this.initialSelectedIndex);\n public readonly dateRangeChanged$ = this.dateRange.asObservable();\n public readonly selectedIndexChanged$ = this.selectedIndex.asObservable();\n\n public setSelectedIndex(index: number): void {\n this.selectedIndex.next(index);\n if (index < 6) {\n this.setDateRangeByIndex(index);\n }\n }\n\n public setDateRangeByIndex(index: number): void {\n const startDate = this.dateArray[index];\n const endDate = new Date();\n this.setStartEndDates(startDate, endDate);\n }\n\n public setStartEndDates(startDate: Date, endDate: Date): void {\n this.setDateRange(new DateRange(startDate, endDate));\n }\n\n public setDateRange(value: DateRange): void {\n this.dateRange.next(value);\n }\n\n public getDateRange(): DateRange {\n return this.dateRange.getValue();\n }\n\n private getInitDateRange(): DateRange {\n return new DateRange(this.dateArray[this.initialSelectedIndex], new Date());\n }\n\n private getFirstDate(day = 0, month = 0, year = 0): Date {\n const date = new Date();\n if (day !== 0) {\n date.setDate(date.getDate() - day);\n }\n else if (month !== 0) {\n date.setMonth(date.getMonth() - month);\n }\n else if (year !== 0) {\n date.setFullYear(date.getFullYear() - year);\n }\n return date;\n }\n}\n\n@Injectable()\nexport class ClientSummaryDateService extends DateSelectorService {}\n\n@Injectable()\nexport class BuildingSpreadsheetDateService extends DateSelectorService {}\n\n@Injectable()\nexport class EventSnapshotDateService extends DateSelectorService {}\n\n@Injectable()\nexport class AlarmDateService extends DateSelectorService {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { BoilerEvents, BoilerInfo, ChillerEvents, Equipment, EquipmentEvents, EquipmentType } from 'src/app/models/EquipmentsEvents';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { BuildingEquipmentModalComponent } from '../../building-equipment-modal/building-equipment-modal.component';\nimport { BuildingEventModalComponent } from '../../building-event-modal/building-event-modal.component';\nimport { ChillerInfo } from 'src/app/models/EquipmentsEvents';\nimport { SelectedClientService } from 'src/app/services/selected-client.service';\n\nexport class GridOptions {\n columnOptions: ColumnOption[] = [];\n hideEventsLink?: boolean;\n getTitle?: (value: T) => any = (value: T) => '';\n\n}\n\nexport class ColumnOption {\n caption = '';\n width?: number;\n alignRight ? = false;\n getter: (value: T) => any = (value: T) => undefined;\n}\n\n@Component({\n selector: 'br-building-asset',\n templateUrl: './building-asset.component.html',\n styleUrls: ['./building-asset.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BuildingAssetComponent | Equipment> extends BaseComponent implements OnChanges, OnInit {\n\n @Input()\n public equipmentName = '';\n\n @Input()\n public equipmentType!: string;\n\n @Input()\n public equimpmentsList: T[] = [];\n\n @Input()\n public gridOptions!: GridOptions;\n\n @Input()\n public assetListInfo?: string;\n\n @Input()\n public chillers: ChillerEvents[] = [];\n\n @Input()\n public boilers: BoilerEvents[] = [];\n\n @Output() \n public onRegetRequested = new EventEmitter();\n\n public totalWidth = 0;\n public equimpmentsCount = 0;\n public detailsInfo = '';\n public showEventsLink = true;\n\n public isEditMode: boolean = false;\n\n constructor(private dialog: MatDialog,\n private selectedClientService: SelectedClientService,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n super();\n }\n\n public ngOnInit(): void { \n this.selectedClientService.currentIsEditMode$.subscribe(isEditMode => {\n this.isEditMode = isEditMode;\n this.changeDetectorRef.detectChanges(); \n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.equimpmentsList) {\n this.equimpmentsCount = this.equimpmentsList?.length ?? 0;\n this.detailsInfo = this.assetListInfo || this.equimpmentsCount.toString();\n }\n if (changes.gridOptions) {\n this.showEventsLink = !this.gridOptions.hideEventsLink;\n this.totalWidth = this.gridOptions.columnOptions\n .map(option => option.width)\n .reduce((acc: number, value) => acc + (value ?? 0), 0);\n }\n }\n\n public openEquipmentEditModal(equipment : T | null, equipmentType : string){\n\n const equipmentModal = this.dialog.open(BuildingEquipmentModalComponent, {\n panelClass: 'app-full-bleed-dialog',\n width: '88.9vw',\n data: {\n equipmentEvents: equipment,\n equipmentType: this.equipmentType,\n chillers: this.chillers,\n boilers: this.boilers,\n },\n maxWidth: '88.9vw',\n minHeight: '600px'\n });\n\n equipmentModal.afterClosed().subscribe(result => {\n if (result === 'reget') {\n this.onRegetRequested.emit(true);\n }\n });\n }\n\n public openEventsModal(equipment: T): void {\n if (this.instanceOfEquipmentEvents(equipment)) {\n equipment.equipment.equipmentType = EquipmentType[this.equipmentType];\n const eventsModal = this.dialog.open(BuildingEventModalComponent, {\n panelClass: 'app-full-bleed-dialog',\n width: '88.9vw',\n data:\n {\n events: equipment.events,\n eventsType: this.gridOptions.getTitle && this.gridOptions.getTitle(equipment),\n equipment: equipment.equipment\n },\n maxWidth: '88.9vw',\n minHeight: '600px'\n });\n\n eventsModal.afterClosed().subscribe(result => {\n if (result === 'reget') {\n this.onRegetRequested.emit(true);\n }\n });\n } \n }\n\n private instanceOfEquipmentEvents(object: any): object is EquipmentEvents {\n return 'events' in object;\n }\n}\n\n","\n \n \n {{ equipmentName }}\n {{ detailsInfo }}\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {{ option.caption }}\n
\n {{ option.getter(equipment) }}\n {{ 'View' | localizeText }}
\n
\n
\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { publishReplay, share, shareReplay } from 'rxjs/operators';\nimport { environment } from '../../../environments/environment';\nimport { FacilityBenchmarkData } from '../../models/FacilityBenchmarkData';\nimport { UtilityBenchmarkData } from '../../models/UtilityBenchmarkData';\nimport { EndpointConst } from './endpoint-const';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BenchmarksService {\n private readonly REST_API_SERVER = environment.apiUrl;\n private readonly FACILITY_BENCHMARKS = 'facilityBenchmarks';\n private readonly UTILITY_BENCHMARKS = 'utilityBenchmarks';\n\n constructor(private httpClient: HttpClient) { }\n\n public getBuildingFacilityBenchmarks(buildingId: number): Observable {\n return this.httpClient.get(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${buildingId}/${this.FACILITY_BENCHMARKS}`\n );\n }\n\n public getBuildingUtilityBenchmarks(buildingId: number): Observable {\n return this.httpClient.get(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${buildingId}/${this.UTILITY_BENCHMARKS}`\n );\n }\n\n public getClientFacilityBenchmarks(clientId: number, campusId: number | undefined): Observable {\n return this.httpClient.get(\n `${this.REST_API_SERVER}/${EndpointConst.DASHBOARD}/${clientId}/${campusId}/${this.FACILITY_BENCHMARKS}`\n );\n }\n}\n","import { DateRange } from '@angular/material/datepicker';\nimport { Observable } from 'rxjs';\nimport { EventsByType, EventSummary } from 'src/app/components/building-events/building-event.model';\n\nexport const EVENT_SNAPSHOT_SERVICE = 'EVENT_SNAPSHOT_SERVICE';\nexport interface IEventSnapshotService {\n\n getEventSummary(clientId: number, campusId: number | undefined, dateRange: DateRange): Observable;\n\n getBuildingEventVolumeByType(buildingId: number, dateRange: DateRange): Observable;\n}\n","import { Injectable } from '@angular/core';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { DatasetData, HorizontalBarChartOptions, MaxValueStrategy } from '../../../shared/components/bar-chart/bar-chart.model';\nimport { NumberFormat } from '../../../shared/models/NumberFormat';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilityBenchmarkModel {\n\n constructor(private localizeText: LocalizeTextPipe) {\n }\n\n public readonly UsageVsCostTitle = this.localizeText.transform('Usage vs. Cost');\n public readonly KwhRateVsBenchmarksTitle = this.localizeText.transform('kWh Rate vs. Benchmarks');\n public readonly MCFRateVsBenchmarksTitle = this.localizeText.transform('MCF Rate vs. Benchmarks');\n\n private readonly currencyFormatWithMaxAllStrategy = {\n format: NumberFormat.defaultCurrencyFormat,\n maxValueStrategy: MaxValueStrategy.maxAll\n };\n\n private readonly percentsFormatWithMaxStrategy = {\n format: NumberFormat.defaultPercentsFormat,\n maxValueStrategy: MaxValueStrategy.percentsMax\n };\n\n private readonly percentOfUsageDataset: DatasetData = {\n key: 'percentOfUsage',\n label: this.localizeText.transform('% of Usage'),\n ...this.percentsFormatWithMaxStrategy,\n barColor: '#CD0402'\n };\n\n private readonly percentOfCostDataset: DatasetData = {\n key: 'percentOfCost',\n label: this.localizeText.transform('% of Cost ($)'),\n ...this.percentsFormatWithMaxStrategy,\n barColor: '#EA9595'\n };\n\n private readonly startDataset: DatasetData = {\n key: 'start',\n label: this.localizeText.transform('Start'),\n ...this.currencyFormatWithMaxAllStrategy,\n barColor: '#3EB049'\n };\n\n private readonly currentDataset: DatasetData = {\n key: 'current',\n label: this.localizeText.transform('Current'),\n ...this.currencyFormatWithMaxAllStrategy,\n barColor: '#193769'\n };\n\n private readonly industryDataset: DatasetData = {\n key: 'industry',\n label: this.localizeText.transform('Industry'),\n ...this.currencyFormatWithMaxAllStrategy,\n barColor: '#FFCF5C'\n };\n\n public usageVsCostElectricityAnalysisOptions: HorizontalBarChartOptions = {\n chartTitle: this.localizeText.transform('Electricity Analysis'),\n showLegendInDataset: true,\n datasets: [this.percentOfUsageDataset, this.percentOfCostDataset]\n };\n\n public usageVsCostGasAnalysisOptions: HorizontalBarChartOptions = {\n chartTitle: this.localizeText.transform('Natural Gas/Heating Analysis'),\n showLegendInDataset: true,\n datasets: [this.percentOfUsageDataset, this.percentOfCostDataset]\n };\n\n public kwhRateVsBenchmarksOptions: HorizontalBarChartOptions = {\n showLegendInDataset: true,\n datasets: [this.startDataset, this.currentDataset, this.industryDataset]\n };\n\n public mcfRateVsBenchmarksOptions: HorizontalBarChartOptions = {\n showLegendInDataset: true,\n datasets: [this.startDataset, this.currentDataset, this.industryDataset]\n };\n}\n","export class Utils {\n public static tryGetNumberFromAny(param: any): number | undefined {\n return !isNaN(+param) ? +param : undefined;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslationItem } from 'src/app/models/AuthModel';\r\n@Pipe({\r\n name: 'translationItemsfilter',\r\n pure: false\r\n})\r\nexport class TranslationItemsFilterPipe implements PipeTransform {\r\n transform(items: TranslationItem[], filterString: string): any {\r\n if (!items || !filterString) {\r\n return items;\r\n }\r\n\r\n return items.filter(\r\n item => item.sourceText.toUpperCase().includes(filterString.toUpperCase()) ||\r\n item.text.toUpperCase().includes(filterString.toUpperCase())\r\n );\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { environment } from '../../environments/environment';\nimport { LanguageInfo } from '../models/AuthModel';\nimport { SaveEquipmentResult } from '../models/EquipmentsEvents';\nimport { EndpointConst } from './real-services/endpoint-const';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AdminService {\n\n private REST_API_SERVER = environment.apiUrl;\n private readonly LANGUAGE_INFO = 'language-info';\n\n constructor(private readonly httpClient: HttpClient) {\n }\n\n public getLanguageInfo(code: string): Observable {\n return this.httpClient.get(\n `${this.REST_API_SERVER}/${EndpointConst.ADMIN}/${this.LANGUAGE_INFO}/${code}`\n );\n }\n\n public saveLanguageInfo(languageInfo: LanguageInfo): Observable {\n return this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.ADMIN}/${this.LANGUAGE_INFO}`,\n languageInfo\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class WithCredentialsInterceptorService implements HttpInterceptor {\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(req.clone({\n withCredentials: true\n }));\n }\n}","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nimport { EnvConfig } from './env-config';\n\nexport const environment: EnvConfig = {\n production: false,\n useStubServices: {\n CLIENT_SUMMARY_SERVICE: false,\n BUILDING_SPREADSHEET_SERVICE: false,\n BUILDING_SUMMARY_SERVICE: false\n },\n //apiUrl: 'https://energy-api-test.azurewebsites.net',\n apiUrl: 'https://energy-api-live.azurewebsites.net',\n //apiUrl: 'https://localhost:44342',\n //qmetDashboardLink: 'http://apps.brogdonenergy.com'\n //qmetDashboardLink: 'http://qmet-app-test.azurewebsites.net/'\n qmetDashboardLink: 'http://qmet-app-live.azurewebsites.net/'\n //qmetDashboardLink: 'http://localhost:58192'\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { Injectable } from '@angular/core';\nimport { DateRange } from '@angular/material/datepicker';\nimport { of } from 'rxjs';\nimport { Observable } from 'rxjs';\nimport { CampusData } from 'src/app/models/CampusData';\nimport { BuildingData } from '../../models/BuildingData';\nimport { IBuildingSpreadsheetService } from '../interfaces/building-spreadsheet.interface';\n\n@Injectable()\nexport class BuildingSpreadsheetStubService implements IBuildingSpreadsheetService {\n public getCampusSpredsheetData(clientId: number, dateRange: DateRange): Observable {\n throw new Error('Method not implemented.');\n }\n public getBuildingSpredsheetData(): Observable {\n return of(\n [\n {\n id: 0,\n buildingName: 'Citizens Baptist Medical Center South',\n location: 'Talladega, AL',\n temperature: 55,\n rangeNaturalGasSavings: 3313,\n rangeElectricitySavings: 10382,\n energyEfficiencyScore: 63,\n energyStarScore: 64,\n savings: 18231,\n gasDynamics: 'increased',\n electricityDynamics: 'increased'\n },\n {\n id: 1,\n buildingName: 'Citizens Baptist Medical Center East',\n location: 'Talladega, AL',\n temperature: 55,\n rangeNaturalGasSavings: 3313,\n rangeElectricitySavings: 10382,\n energyEfficiencyScore: 85,\n energyStarScore: 87,\n savings: 18231,\n gasDynamics: 'increased',\n electricityDynamics: 'decreased'\n },\n {\n id: 2,\n buildingName: 'Citizens Baptist Medical Center North',\n location: 'Talladega, AL',\n temperature: 55,\n rangeNaturalGasSavings: 3313,\n rangeElectricitySavings: 10382,\n energyEfficiencyScore: 98,\n energyStarScore: 98,\n savings: 18231,\n gasDynamics: 'increased',\n electricityDynamics: 'unaltered'\n },\n {\n id: 3,\n buildingName: 'Citizens Baptist Medical Center West',\n location: 'Talladega, AL',\n temperature: 55,\n rangeNaturalGasSavings: 3313,\n rangeElectricitySavings: 10382,\n energyEfficiencyScore: 98,\n energyStarScore: 96,\n savings: 18231,\n gasDynamics: 'increased',\n electricityDynamics: 'decreased'\n },\n {\n id: 4,\n buildingName: 'Citizens Baptist Medical Center Central',\n location: 'Talladega, AL',\n temperature: 55,\n rangeNaturalGasSavings: 3313,\n rangeElectricitySavings: 10382,\n energyEfficiencyScore: 78,\n energyStarScore: 84,\n savings: 18231,\n gasDynamics: 'decreased',\n electricityDynamics: 'decreased'\n },\n {\n id: 5,\n buildingName: 'Citizens Baptist Medical Center Beach',\n location: 'Talladega, AL',\n temperature: 55,\n rangeNaturalGasSavings: 3313,\n rangeElectricitySavings: 10382,\n energyEfficiencyScore: 98,\n energyStarScore: 97,\n savings: 18231,\n gasDynamics: 'increased',\n electricityDynamics: 'increased'\n },\n ] as BuildingData[]\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'br-page-not-found',\n templateUrl: './page-not-found.component.html',\n styleUrls: ['./page-not-found.component.scss']\n})\nexport class PageNotFoundComponent {\n}\n","{{ 'Page not found' | localizeText }}!\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { SelectedClientService } from 'src/app/services/selected-client.service';\nimport { NoteItem } from 'src/app/models/EquipmentsEvents';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'br-note-manager',\n templateUrl: './note-manager.component.html',\n styleUrls: ['./note-manager.component.scss']\n})\nexport class NoteManagerComponent implements OnChanges {\n\n public currentNote: string = \"\";\n public loginId: string = \"\";\n\n constructor(private changeDetectorRef: ChangeDetectorRef,\n private selectedClientService: SelectedClientService\n ) {\n this.loginId = selectedClientService.loginId;\n }\n\n @Input()\n public noteItems: NoteItem[] = [];\n\n @Output()\n public onSaveNotes = new EventEmitter();\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.noteItems) {\n }\n }\n\n public formatDate(date: Date): string {\n var datePipe = new DatePipe('en-US');\n return datePipe.transform(date, 'MM-dd-yyyy HH:mm');\n }\n\n public editNote(noteItem: NoteItem): void {\n noteItem.isInEditMode = true;\n }\n\n public saveNote(noteItem: NoteItem): void {\n noteItem.isInEditMode = false;\n this.onSaveNotes.emit(this.noteItems);\n }\n\n public addNoteClicked(): void {\n this.noteItems[this.noteItems.length] = { creationTime: new Date(), loginId: this.loginId, text: this.currentNote };\n\n this.currentNote = \"\";\n\n this.onSaveNotes.emit(this.noteItems);\n this.changeDetectorRef.detectChanges();\n }\n\n}\n\n\n","
\n {{ formatDate(noteItem.creationTime) }} {{ noteItem.loginId }}\n {{ noteItem.text }}\n \n \n \n \n \n
\n\n {{ 'Note' | localizeText }}\n \n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Client, LocalizationInfo } from '../models/AuthModel';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SelectedClientService {\n private selectedClientId = new BehaviorSubject(undefined);\n public selectedClientId$ = this.selectedClientId.asObservable().pipe(map(v => v as number)); \n\n public set clientId(value: number) {\n this.selectedClientId.next(value);\n }\n\n public get clientId() {\n return this.selectedClientId.value;\n }\n\n private selectedCampusId = new BehaviorSubject(undefined);\n public selectedCampusId$ = this.selectedCampusId.asObservable().pipe(map(v => v as number));\n\n public set campusId(value: number) {\n this.selectedCampusId.next(value);\n }\n\n public get campusId() {\n return this.selectedCampusId.value;\n }\n\n private currentIsEditMode = new BehaviorSubject(false);\n public currentIsEditMode$ = this.currentIsEditMode.asObservable().pipe(map(v => v as boolean));\n\n public set isEditMode(value: boolean) {\n this.currentIsEditMode.next(value);\n }\n\n public get isEditMode() {\n return this.currentIsEditMode.value;\n }\n\n public toggleIsEditMode() {\n this.currentIsEditMode.next(!this.currentIsEditMode.value);\n }\n\n private currentIsEditor = new BehaviorSubject(false);\n public currentIsEditor$ = this.currentIsEditor.asObservable().pipe(map(v => v as boolean));\n\n public set isEditor(value: boolean) {\n this.currentIsEditor.next(value);\n }\n\n public get isEditor() {\n return this.currentIsEditor.value;\n }\n\n private currentIsEngCoAdmin = new BehaviorSubject(false);\n public currentIsEngCoAdmin$ = this.currentIsEngCoAdmin.asObservable().pipe(map(v => v as boolean));\n\n public set isEngCoAdmin(value: boolean) {\n this.currentIsEngCoAdmin.next(value);\n }\n\n public get isEngCoAdmin() {\n return this.currentIsEngCoAdmin.value;\n }\n\n private currentLoginId = new BehaviorSubject(\"\");\n public currentLoginId$ = this.currentLoginId.asObservable().pipe(map(v => v as string));\n\n public set loginId(value: string) {\n this.currentLoginId.next(value);\n }\n\n public get loginId() {\n return this.currentLoginId.value;\n }\n\n private currentLocalization = new BehaviorSubject(null);\n public currentLocalization$ = this.currentLocalization.asObservable().pipe(map(v => v as LocalizationInfo));\n\n public set localization(value: LocalizationInfo) {\n this.currentLocalization.next(value);\n }\n\n public get localization() {\n return this.currentLocalization.value;\n }\n\n\n public availableClients: Client[] = [];\n}\n","import { Component, EventEmitter, OnInit, Output, Input, Inject, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { switchMap } from 'rxjs/operators';\nimport { CLIENT_SUMMARY_SERVICE, IClientSummaryService } from '../../services/interfaces/client-summary.interface';\nimport { BaseComponent } from '../../shared/components/base/base.component';\nimport { ClientSummaryDateService, DateSelectorService } from '../date-selector/date-selector.service';\nimport { ClientSummaryModel, DetailsData } from './client-summary.model';\nimport { ClientSummaryData } from '../../models/ClientSummaryData';\nimport { combineLatest, Observable } from 'rxjs';\nimport { SelectedClientService } from '../../services/selected-client.service';\nimport { GoLiveDateStorage } from '../../services/go-live-date-storage.service';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { ClientSummaryAdditionalData } from 'src/app/models/ClientSummaryAdditionalData';\n\n@Component({\n selector: 'br-client-summary',\n templateUrl: './client-summary.component.html',\n styleUrls: ['./client-summary.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ClientSummaryModel,\n {\n provide: DateSelectorService,\n useExisting: ClientSummaryDateService\n }\n ]\n})\nexport class ClientSummaryComponent extends BaseComponent implements OnInit {\n\n @Output()\n public summaryChanged = new EventEmitter();\n\n @Output()\n public alarmChanged = new EventEmitter();\n public ROWS_COUNT = 2;\n\n public columnsCount = 5;\n public buildingsGroupName = '';\n public savingsData = this.model.defaultSavingsData;\n public detailsData = this.model.defaultDetailsData;\n public consumptionDetailsData = this.model.defaultConsumptionDetailsData;\n public overviewData = this.model.defaultOverviewData;\n public rangeSavingsTitle = this.model.rangeSavingsTitle;\n public rangeSavingsDescriptions = this.model.rangeSavingsDescriptions;\n public dateRangeChanged$ = this.dateFilterService.dateRangeChanged$;\n public liveDate$ = this.clientGoLiveDateService.clientGoLiveDate$;\n public isSpendView = true;\n\n constructor(private readonly model: ClientSummaryModel,\n private readonly dateFilterService: DateSelectorService,\n private readonly selectedClientService: SelectedClientService,\n @Inject(CLIENT_SUMMARY_SERVICE) private readonly clientSummaryService: IClientSummaryService,\n private readonly clientGoLiveDateService: GoLiveDateStorage,\n private changeDetectorRef: ChangeDetectorRef,\n private localizeText: LocalizeTextPipe) {\n super();\n }\n\n public ngOnInit(): void {\n this.addSubscription(\n combineLatest([\n this.selectedClientService.selectedClientId$,\n this.dateFilterService.dateRangeChanged$,\n ]).pipe(\n switchMap(([clientId, dateRange]) => this.clientSummaryService.getClientSummaryData(clientId, dateRange))\n ).subscribe((data: ClientSummaryData) => {\n this.buildingsGroupName = data.clientName;\n this.setSavingsValues(data);\n this.setDetailsValues(data);\n this.columnsCount = this.getColumsCount();\n this.changeDetectorRef.detectChanges();\n })\n );\n\n this.addSubscription(\n combineLatest([\n this.selectedClientService.selectedClientId$,\n this.dateFilterService.dateRangeChanged$,\n ]).pipe(\n switchMap(([clientId, dateRange]) => this.clientSummaryService.getClientSummaryAdditionalData(clientId, dateRange))\n ).subscribe((data: ClientSummaryAdditionalData) => { \n this.setAdditionalDetailsValues(data); \n this.changeDetectorRef.detectChanges();\n })\n );\n\n this.addSubscription(\n this.dateFilterService.selectedIndexChanged$.subscribe(index => {\n this.savingsData.rangeToDateSavings.title = this.rangeSavingsTitle[index];\n this.savingsData.rangeToDateSavings.description = this.rangeSavingsDescriptions[index];\n })\n );\n}\n\n public isDetailsItemVisible(data: DetailsData): boolean { \n if (data.description === this.localizeText.transform('Total Beds') && data.value === 0){\n return false;\n }\n return !(data.value === undefined && data.hideIfUndefined) && !data.hide;\n }\n\n public onChange(advanced: boolean): void {\n this.summaryChanged.emit(advanced);\n }\n\n public onAlarmViewChange(isAlarmView: boolean): void {\n this.alarmChanged.emit(isAlarmView);\n }\n\n public onSpendViewChange(isSpendView: boolean): void {\n this.isSpendView = isSpendView;\n } \n\n private getColumsCount(): number {\n const itemsCount = this.getDetailsVisibleItemsCount();\n return Math.ceil(itemsCount / this.ROWS_COUNT);\n }\n\n private getDetailsVisibleItemsCount(): number {\n return Object.keys(this.detailsData)\n .map(key => this.detailsData[key])\n .filter(data => this.isDetailsItemVisible(data)).length;\n }\n\n private setSavingsValues(data: ClientSummaryData): void {\n this.savingsData.rangeToDateSavings.value = data.rangeSavings;\n this.savingsData.rangeToDateSavings.additionalValue = Math.round((data.rangeSavings / data.totalEnergySpend * 100) * 100) / 100;\n this.savingsData.totalSavings.value = data.totalSavings;\n }\n\n private setDetailsValues(data: ClientSummaryData): void {\n this.overviewData.buildingCount.value = data.buildingsCount;\n this.detailsData.electricityCost.value = data.electricityCost;\n this.detailsData.electricityCost.hide = !data.hasElectricity;\n this.detailsData.electricitySavings.value = data.rangeElectricitySavings;\n this.detailsData.electricitySavings.hide = !data.hasElectricity;\n this.overviewData.totalBeds.value = data.bedsCount;\n this.overviewData.totalSquareFootage.value = data.totalSqFt;\n this.detailsData.totalEnergySpend.value = data.totalEnergySpend;\n this.detailsData.naturalGasCost.value = data.naturalGasCost;\n this.detailsData.naturalGasCost.hide = !data.hasGas;\n this.detailsData.naturalGasSavings.value = data.rangeNaturalGasSavings; \n this.detailsData.naturalGasSavings.hide = !data.hasGas;\n this.detailsData.co2Emission.value = data.carbonEmission;\n this.detailsData.co2Reduced.value = data.carbonReduced;\n this.detailsData.waterSpend.value = data.waterCost;\n this.detailsData.waterSpend.hide = !data.hasWater;\n this.detailsData.waterUsage.value = data.rangeWaterSpent; \n this.detailsData.waterUsage.hide = !data.hasWater;\n\n this.consumptionDetailsData.electricConsumption.value = data.electricConsumption;\n this.consumptionDetailsData.electricConsumption.hide = !data.hasElectricity;\n this.consumptionDetailsData.electricSavingVolume.value = data.electricSavingVolume;\n this.consumptionDetailsData.electricSavingVolume.hide = !data.hasElectricity;\n this.consumptionDetailsData.naturalGasConsumption.value = data.gasConsumption;\n this.consumptionDetailsData.naturalGasConsumption.unitOfMeasure = data.gasMeasure && data.gasMeasure !='' ? ` (${data.gasMeasure})` : \"\";\n this.consumptionDetailsData.naturalGasConsumption.hide = !data.hasGas;\n this.consumptionDetailsData.naturalGasSavings.value = data.gasSavingsVolume;\n this.consumptionDetailsData.naturalGasSavings.unitOfMeasure = data.gasMeasure && data.gasMeasure !='' ? ` (${data.gasMeasure})` : \"\";\n this.consumptionDetailsData.naturalGasSavings.hide = !data.hasGas;\n this.consumptionDetailsData.co2Emission.value = data.carbonEmission;\n this.consumptionDetailsData.co2Reduced.value = data.carbonReduced;\n this.consumptionDetailsData.waterSpend.hide = !data.hasWater;\n this.consumptionDetailsData.waterUsage.value = data.rangeWaterSpent; \n this.consumptionDetailsData.waterUsage.hide = !data.hasWater;\n }\n\n private setAdditionalDetailsValues(data: ClientSummaryAdditionalData): void {\n if (this.detailsData.eui){\n this.detailsData.eui.value = data.eui;\n } \n }\n}\n","{{ buildingsGroupName }}\n\n
\n
{{ 'Overview' | localizeText }}
\n
\n
\n
{{ data.value | valueFormat: data.format }}
\n {{ data.description }}\n
\n
\n \n
\n
\n \n \n
\n
{{ data.value | valueFormat: data.format }}
\n
\n
\n {{ data.value | valueFormat: data.format }}
({{ data.additionalValue }} %)
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n {{ data.value | valueFormat: data.format }}\n {{ data.description }}\n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n {{ data.value | valueFormat: data.format }}\n {{ data.description }}{{data.unitOfMeasure}}\n
\n
\n
\n
\n
\n{{ 'Launch Date' | localizeText }}: {{ (liveDate$ | async) === undefined ? 'Unspecified' : ((liveDate$ | async) | date: 'MM/dd/yyyy') }}","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TokenProviderService } from '../services/token-provider.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthInterceptor implements HttpInterceptor {\n constructor(private tokenProviderService: TokenProviderService) { }\n\n public intercept(request: HttpRequest, next: HttpHandler): Observable> {\n const token = this.tokenProviderService.getToken();\n if (!!token) {\n request = request.clone({\n url: request.url,\n setHeaders: {\n Authorization: `Bearer ${token}`\n }\n });\n }\n return next.handle(request);\n }\n}\n","export class ExcelUtils {\n public static readonly EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8;';\n\n public static downloadExcelFile(data: Blob, fileName: string): void {\n const blob = new Blob([data], { type: ExcelUtils.EXCEL_TYPE });\n if (navigator.msSaveBlob) { // IE 10+\n navigator.msSaveBlob(blob, fileName);\n } else {\n const link = document.createElement('a');\n if (link.download !== undefined) {\n // Browsers that support HTML5 download attribute\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', fileName);\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, ViewChild } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { of } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { BoilerEvents, BoilerInfo, ChillerEvents, ChillerInfo, EnergyUsesItem, Equipment, EquipmentEvents, EquipmentInfo, EquipmentType, HyperlinkItem, ImageItem, NoteItem, PdfItem } from 'src/app/models/EquipmentsEvents';\nimport { BuildingAssetListService } from 'src/app/services/real-services/building-asset-list.service';\nimport { ImageService } from 'src/app/services/real-services/image.service';\nimport { SelectedBuildingService } from 'src/app/services/selected-building.service';\nimport { SelectedClientService } from 'src/app/services/selected-client.service';\nimport { BaseComponent } from 'src/app/shared/components/base/base.component';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { EventsByType } from '../building-events/building-event.model';\nimport { BuildingEquipmentModalModel, EventProperty } from './building-equipment-modal.model';\n\nclass ImageSnippet {\n constructor(public src: string, public file: File) { }\n}\n\n@Component({\n selector: 'br-building-equipment-modal',\n templateUrl: './building-equipment-modal.component.html',\n styleUrls: ['./building-equipment-modal.component.scss'],\n providers: [BuildingEquipmentModalModel],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BuildingEquipmentModalComponent extends BaseComponent {\n\n public isEditMode: boolean = false;\n public mainHeader: string;\n public subHeader: string;\n public buttonName: string;\n\n public propMap: Record;\n public keepOriginalOrder = (prop: any) => prop.key;\n\n public selectedFile!: ImageSnippet; \n\n public equipmentName: string;\n\n @ViewChild('imageInput')\n imageInputRef!: ElementRef;\n\n @ViewChild('pdfInput')\n pdfInputRef!: ElementRef;\n\n public equipmentEvents: EquipmentEvents | null = null;\n\n public chillers: ChillerEvents[];\n public boilers: BoilerEvents[];\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: EquipmentInfo,\n private readonly model: BuildingEquipmentModalModel,\n @Inject(\"IMAGE_SERVICE\") private imageService: ImageService,\n public readonly selectedBuildingService: SelectedBuildingService,\n private changeDetectorRef: ChangeDetectorRef,\n private readonly assetListService: BuildingAssetListService,\n private selectedClientService: SelectedClientService,\n private localizeText: LocalizeTextPipe) {\n super();\n this.isEditMode = selectedClientService.isEditMode; \n this.mainHeader = this.localizeText.transform(`Equipment`);\n this.equipmentName = this.getEquipmentNameByType(data.equipmentType);\n this.subHeader = (this.isEditMode ? (data.equipmentEvents ? this.localizeText.transform('Edit') : this.localizeText.transform('Add')) : this.localizeText.transform('View'));\n this.buttonName = data.equipmentEvents ? this.localizeText.transform('Save') : this.localizeText.transform('Add');\n\n this.propMap = this.model.getPropMapByEquipmentType(data.equipmentType);\n\n if (data.equipmentType === EquipmentType.BuildingEnergyUses || data.equipmentType === EquipmentType.WishList) {\n this.equipmentEvents = { equipment: (!data.equipmentEvents ? this.model.getDefaultEquipmentByEquipmentType(data.equipmentType) : data.equipmentEvents), events: [] };\n }\n else {\n this.equipmentEvents = !data.equipmentEvents ? { equipment: this.model.getDefaultEquipmentByEquipmentType(data.equipmentType), events: [] } : data.equipmentEvents; \n } \n this.equipmentEvents.equipment.equipmentType = data.equipmentType; \n \n this.chillers = data.chillers;\n this.boilers = data.boilers;\n }\n\n private getEquipmentNameByType(equipmentType: EquipmentType): string {\n return equipmentType === EquipmentType.MRI ? this.localizeText.transform(\"Other Asset\") : equipmentType.toString();\n }\n\n public trackByFn(index: number, item: any) {\n return index;\n }\n\n public buttonClicked() { \n this.addSubscription(\n this.selectedBuildingService.selectedBuildingId$.pipe(\n switchMap(buildingId => this.assetListService.saveEquipment(buildingId, this.equipmentEvents.equipment || {})),\n ).subscribe(res => {\n this.regetEquipmentAndClosePopup();\n })\n ); \n }\n\n public addHyperlinkClicked() {\n if (this.equipmentEvents.equipment == null){\n return;\n }\n\n this.equipmentEvents.equipment.hyperlinks[this.equipmentEvents.equipment?.hyperlinks?.length || 0] = { url: \"\", name: \"\" };\n\n this.changeDetectorRef.detectChanges();\n }\n\n public deleteHyperlinkClicked(hyperlink: HyperlinkItem) {\n if (this.equipmentEvents.equipment == null){\n return;\n }\n\n this.equipmentEvents.equipment.hyperlinks = this.equipmentEvents.equipment?.hyperlinks.filter(p => p != hyperlink);\n\n this.changeDetectorRef.detectChanges();\n }\n\n public addPdfClicked() {\n this.pdfInputRef.nativeElement.click();\n } \n\n public deletePdfClicked(pdf: PdfItem) {\n if (this.equipmentEvents.equipment == null){\n return;\n }\n\n this.equipmentEvents.equipment.pdfs = this.equipmentEvents.equipment?.pdfs.filter(p => p != pdf);\n\n this.changeDetectorRef.detectChanges();\n }\n\n public addImageClicked() {\n this.imageInputRef.nativeElement.click();\n } \n\n public deleteImageClicked(image: ImageItem) {\n if (this.equipmentEvents.equipment == null){\n return;\n }\n\n this.equipmentEvents.equipment.images = this.equipmentEvents.equipment?.images.filter(p => p != image);\n\n this.changeDetectorRef.detectChanges();\n }\n\n public processFile(imageInput: any) {\n const file: File = imageInput.files[0];\n const reader = new FileReader();\n\n reader.addEventListener('load', (event: any) => {\n\n this.selectedFile = new ImageSnippet(event.target.result, file);\n\n this.addSubscription(\n this.selectedBuildingService.selectedBuildingId$.pipe(\n switchMap(buildingId => this.imageService.uploadImage(this.selectedFile.file)),\n ).subscribe(res => {\n this.imageAdded(res.imageUrl);\n })\n );\n });\n\n reader.readAsDataURL(file);\n }\n\n public processPdfFile(pdfInput: any) {\n const file: File = pdfInput.files[0];\n const reader = new FileReader();\n\n reader.addEventListener('load', (event: any) => {\n\n this.selectedFile = new ImageSnippet(event.target.result, file);\n\n this.addSubscription(\n this.selectedBuildingService.selectedBuildingId$.pipe(\n switchMap(buildingId => this.imageService.uploadImage(this.selectedFile.file)),\n ).subscribe(res => {\n this.pdfAdded(res.imageUrl);\n })\n );\n });\n\n reader.readAsDataURL(file);\n }\n\n public keys(obj: Equipment | null): Array {\n if (obj == null) {\n return [];\n }\n return Object.keys(obj) as Array;\n }\n\n public getPrimitiveType(obj: any, propertyName: string): string {\n if (propertyName === \"dateInstalled\"){\n return \"date\";\n }\n return typeof obj;\n }\n\n public deleteClicked() {\n if (confirm(this.localizeText.transform(\"Are you sure you want to delete this item?\"))){\n this.addSubscription(\n this.selectedBuildingService.selectedBuildingId$.pipe(\n switchMap(buildingId => this.assetListService.deleteEquipment(buildingId, this.equipmentEvents.equipment || {})),\n ).subscribe(res => {\n this.regetEquipmentAndClosePopup();\n })\n ); \n }\n }\n\n public getEquipmentAsEnergyUses(equipment: Equipment): EnergyUsesItem {\n return equipment as EnergyUsesItem;\n }\n\n public saveNotes(noteItems: NoteItem[]): void {\n this.equipmentEvents.equipment.note = noteItems.filter(p => p.text.trim() !== '');\n this.sendNotes();\n }\n\n private sendNotes(): void {\n this.equipmentEvents.equipment.note = this.equipmentEvents.equipment.note.filter(p => p.text.trim() !== '');\n this.changeDetectorRef.detectChanges();\n\n if (this.equipmentEvents.equipment.id === 0) {\n return;\n }\n\n this.addSubscription(\n this.assetListService.saveNotes(this.equipmentEvents.equipment).subscribe(res => {\n //!!todo\n })\n ); \n }\n\n private regetEquipmentAndClosePopup(){\n this.dialogRef.close('reget');\n }\n\n private imageAdded(imageUrl: string) {\n if (this.equipmentEvents.equipment == null){\n return;\n }\n\n this.equipmentEvents.equipment.images[this.equipmentEvents.equipment?.images?.length || 0] = { imageUrl: imageUrl, name: \"\" };\n\n this.changeDetectorRef.detectChanges();\n }\n\n private pdfAdded(imageUrl: string) {\n if (this.equipmentEvents.equipment == null){\n return;\n }\n\n this.equipmentEvents.equipment.pdfs[this.equipmentEvents.equipment?.pdfs?.length || 0] = { url: imageUrl, name: \"\" };\n\n this.changeDetectorRef.detectChanges();\n }\n}\n","
\n {{ mainHeader }}\n \n {{ subHeader }} {{ equipmentName | localizeText }}\n
\n\n\n\n \n \n \n \n \n \n
\n {{ propMap[item.key].name }}\n \n {{ equipmentEvents.equipment[item.key] }}\n
\n\n\n\n\n\n \n \n \n \n \n\n\n\n \n \n \n \n \n\n\n
\n
\n
\n \n
\n
\n {{ image.name }}\n
\n
\n
\n\n
\n
\n
\n \n {{ 'Select Chiller' | localizeText }}\n \n \n {{ chiller.equipment.chillerType }} \n \n \n \n {{ 'Select Boiler' | localizeText }}\n \n \n {{ boiler.equipment.boilerType }} \n \n \n
\n
\n \n \n \n \n \n {{ propMap[item.key].name }}\n \n {{ propMap[item.key].name }}\n \n \n
\n
\n
\n\n\n\n\n\n\n\n
\n
\n
x
\n
\n \n
\n \n {{ 'Name' | localizeText }}\n \n \n
\n \n \n
\n\n
\n \n \n
","import { Component, Input, OnInit } from '@angular/core';\nimport { NumberFormat } from '../../models/NumberFormat';\nimport { InfoBlockData } from './info-block.model';\n\n@Component({\n selector: 'br-info-block',\n templateUrl: './info-block.component.html',\n styleUrls: ['./info-block.component.scss']\n})\nexport class InfoBlockComponent implements OnInit {\n\n @Input()\n public data!: InfoBlockData;\n\n @Input()\n public text?: string;\n\n public format = NumberFormat;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n\n\n{{ data.value | valueFormat: format.integerCurrencyFormat }}\n{{ text }}\n\n \n \n\n","import { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { switchMap } from 'rxjs/operators';\nimport { BuildingAssetListService } from 'src/app/services/real-services/building-asset-list.service';\nimport { SelectedBuildingService } from 'src/app/services/selected-building.service';\nimport { SelectedClientService } from 'src/app/services/selected-client.service';\nimport { BaseComponent } from 'src/app/shared/components/base/base.component';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { BuildingEvent, EventsByType, EventsInfo } from '../building-events/building-event.model';\nimport { BuildingEventModalModel } from './building-event-modal.model';\n\n@Component({\n selector: 'br-building-event-modal',\n templateUrl: './building-event-modal.component.html',\n styleUrls: ['./building-event-modal.component.scss'],\n providers: [BuildingEventModalModel],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BuildingEventModalComponent extends BaseComponent implements OnInit {\n\n public mainHeader: string;\n public subHeader: string;\n\n public propMap = this.model.propMap;\n public keepOriginalOrder = (prop: any) => prop.key;\n\n public isEditMode: boolean = false;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: EventsInfo,\n private readonly model: BuildingEventModalModel,\n private selectedClientService: SelectedClientService,\n public readonly selectedBuildingService: SelectedBuildingService,\n private readonly assetListService: BuildingAssetListService,\n private localizeText: LocalizeTextPipe) {\n super();\n this.mainHeader = `${this.localizeText.transform('Event History')} - ${data.events?.length || 0} ${this.localizeText.transform('Events')}`;\n this.subHeader = data.eventsType || '';\n }\n\n public ngOnInit(): void {\n this.selectedClientService.currentIsEditMode$.subscribe(isEditMode => {\n this.isEditMode = isEditMode;\n });\n }\n\n public addEventClicked(): void {\n\n if (!this.data.events) {\n this.data.events = [];\n }\n\n this.data.events.unshift({\n id: 0, eventType: this.data.equipment ? this.data.equipment.equipmentType : null,\n equipmentId: this.data.equipment ? this.data.equipment.id : null,\n addedBy: \"\", engineer: \"\", addedDate: new Date(), daysImplemented: 0, impact: 0, description: \"\", deleted: false\n });\n }\n\n public deleteEventClicked(event: BuildingEvent): void {\n event.deleted = true;\n }\n\n public saveClicked(): void {\n this.addSubscription(\n this.selectedBuildingService.selectedBuildingId$.pipe(\n switchMap(buildingId => this.assetListService.saveEvents(buildingId, this.data.events)),\n ).subscribe(res => {\n this.regetEquipmentAndClosePopup();\n })\n );\n console.log(this.data);\n }\n\n public trackByFn(index: number, item: any) {\n return index;\n }\n\n public toAny(obj: any) {\n return obj as any;\n }\n\n private regetEquipmentAndClosePopup(){\n this.dialogRef.close('reget');\n }\n}\n","
\n {{ mainHeader }}\n \n {{ subHeader }}\n
\n\n
\n \n \n
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n {{ propMap[item.key].name }}\n
\n
\n x\n
\n
\n {{ propMap[item.key].getter(event[item.key])}}\n \n \n \n
\n","export class EndpointConst {\n public static readonly DASHBOARD = 'dashboard';\n public static readonly BUILDING = 'building';\n public static readonly CAMPUS = 'campus';\n public static readonly IMAGE = 'image';\n public static readonly ADMIN = 'admin';\n}\n","import { Observable } from 'rxjs';\nimport { GoLiveDateInfo } from 'src/app/shared/models/GoLiveDateInfo';\n\nexport const GO_LIVE_DATE_SERVICE = 'GO_LIVE_DATE_SERVICE';\nexport interface IGoLiveDateService {\n getGoLiveDate(clientId: number): Observable;\n getBuildingGoLiveDate(buildingId: number): Observable;\n}\n","import { Injectable } from '@angular/core';\nimport { LocalStorageService } from './local-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenProviderService {\n private readonly TOKEN_KEY = 'token';\n constructor(private localStorageService: LocalStorageService) { }\n\n setToken(value: string): void {\n this.localStorageService.set(this.TOKEN_KEY, value);\n }\n\n public getToken(): string | null {\n return this.localStorageService.get(this.TOKEN_KEY);\n }\n\n public removeToken(): void {\n this.localStorageService.remove(this.TOKEN_KEY);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SelectedBuildingService {\n private selectedBuildingId = new BehaviorSubject(undefined);\n public selectedBuildingId$ = this.selectedBuildingId.asObservable().pipe(map(v => v as number));\n\n public set buildingId(value: number) {\n this.selectedBuildingId.next(value);\n }\n\n public get buildingId() {\n return this.selectedBuildingId.getValue();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'br-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss']\n})\nexport class CardComponent {\n @Input()\n public title = '';\n\n @Input()\n public description = '';\n}\n","{{ title }}\n{{ description }}\n\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { LOGIN_ROUTE } from '../../routing-const';\nimport { AuthenticationService } from '../services/authentication.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate {\n constructor(private authService: AuthenticationService, private router: Router) {\n }\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n if (this.authService.isUserAuthenticated()) {\n return true;\n }\n this.router.navigate([LOGIN_ROUTE], { queryParams: { returnUrl: state.url }});\n return false;\n }\n}\n\n\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'br-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent implements OnInit {\n\n ngOnInit(): void {\n }\n}\n\n\n","
\n
\n TBGenergy, LLC | 1500 Resource Drive, Birmingham, AL 35242 | (205) 278 – 2608 \n energysupport@brogdonenergy.com\n \n \n
\n
\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatNumber } from '@angular/common';\nimport { NumberFormat } from '../models/NumberFormat';\n\n@Pipe({\n name: 'valueFormat'\n})\nexport class ValueFormatPipe implements PipeTransform {\n private readonly shortPostfixes = ['K', 'M', 'B'];\n private readonly maxFractionDigitsInShort = 2;\n private readonly defaultDigitsInfo = '1.0-2';\n private readonly defaultLocale = 'en-US';\n\n public transform(value: any, format: NumberFormat | undefined, defaultValue: string = '-'): string | undefined {\n if (!value) {\n return defaultValue;\n }\n\n if (typeof value !== 'number') {\n return value;\n }\n\n if (format === undefined) {\n return formatNumber(value, this.defaultLocale, this.defaultDigitsInfo);\n }\n\n if (!format.isShort || Math.abs(value) < 1000) {\n const formattedNumber = formatNumber(value, this.defaultLocale, format.digitsInfo);\n return `${format.prefix}${formattedNumber}${format.postfix}`;\n }\n\n return this.getShortFormattedNumber(value, format);\n }\n\n private getShortFormattedNumber(value: number, format: NumberFormat): string {\n const isPositive = value >= 0;\n value = Math.abs(value);\n const digits = Math.floor(Math.log10(value));\n const exp = Math.floor(digits / 3);\n const digitsBeforeDot = digits % 3;\n const shortNumber = value / Math.pow(1000, exp);\n const maxFractionDigits = Math.min(format.maxFractionDigits, Math.max(this.maxFractionDigitsInShort - digitsBeforeDot, 0));\n const formattedNumber = formatNumber(Number(shortNumber), this.defaultLocale, `${format.minIntegerDigits}.${format.minFractionDigits}-${maxFractionDigits}`);\n return `${format.prefix}${isPositive?'':'-'}${formattedNumber}${this.shortPostfixes[exp - 1]}${format.postfix}`;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { IClientSummaryService } from '../interfaces/client-summary.interface';\nimport { ClientSummaryData } from '../../models/ClientSummaryData';\nimport { ClientSummaryAdditionalData } from '../../models/ClientSummaryAdditionalData';\nimport { environment } from '../../../environments/environment';\nimport { EndpointConst } from './endpoint-const';\nimport { DateRange } from '@angular/material/datepicker';\nimport { ClientDateRange } from '../../models/ClientDateRange';\nimport { CampusSummaryData } from 'src/app/models/CampusSummaryData';\nimport { CampusDateRange } from 'src/app/models/BuildingDateRange';\nimport { AlertsData } from 'src/app/models/AlertsData';\n\n@Injectable()\nexport class ClientSummaryRealService implements IClientSummaryService {\n private REST_API_SERVER = environment.apiUrl;\n private readonly CLIENT_SUMMARY = 'summary';\n private readonly CAMPUS_SUMMARY = 'campus-summary';\n private readonly ALERTS = 'alerts';\n private readonly CLIENT_SUMMARY_ADDITIONAL = 'summary-additional';\n private readonly CAMPUS_SUMMARY_ADDITIONAL = 'campus-summary-additional';\n\n constructor(private httpClient: HttpClient) { }\n getAlerts(clientId: number, campusId: number, dateRange: DateRange): Observable {\n const data = this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.DASHBOARD}/${this.ALERTS}`,\n {\n clientId,\n campusId,\n dateStart: dateRange.start,\n dateEnd: dateRange.end\n } as CampusDateRange);\n return data;\n }\n\n public getCampusSummaryData(clientId: number, campusId: number, dateRange: DateRange): Observable {\n const data = this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.DASHBOARD}/${this.CAMPUS_SUMMARY}`,\n {\n clientId,\n campusId,\n dateStart: dateRange.start,\n dateEnd: dateRange.end\n } as CampusDateRange);\n return data;\n }\n public getCampusSummaryAdditionalData(campusId: number, dateRange: DateRange): Observable {\n const data = this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.DASHBOARD}/${this.CAMPUS_SUMMARY_ADDITIONAL}`,\n {\n campusId,\n dateStart: dateRange.start,\n dateEnd: dateRange.end\n } as CampusDateRange);\n return data;\n }\n\n public getClientSummaryData(clientId: number, dateRange: DateRange): Observable {\n const data = this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.DASHBOARD}/${this.CLIENT_SUMMARY}`,\n {\n clientId,\n dateStart: dateRange.start,\n dateEnd: dateRange.end\n } as ClientDateRange);\n return data;\n }\n\n public getClientSummaryAdditionalData(clientId: number, dateRange: DateRange): Observable {\n const data = this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.DASHBOARD}/${this.CLIENT_SUMMARY_ADDITIONAL}`,\n {\n clientId,\n dateStart: dateRange.start,\n dateEnd: dateRange.end\n } as ClientDateRange);\n return data;\n }\n}\n","import { NoteItem } from \"./EquipmentsEvents\";\n\nexport interface BuildingInfo {\n id: number;\n clientId: number;\n buildingName: string;\n temperature: number;\n rangeElectricitySavings: number;\n rangeNaturalGasSavings: number;\n electricityDynamics: string;\n gasDynamics: string;\n goLiveDate: Date;\n rangeSavings?: number;\n totalSavings?: number;\n eui?: number;\n electricityCostPercent?: number;\n electricityCost?: number;\n totalSquareFootage?: number;\n totalEnergySpend?: number;\n naturalGasCostPercent?: number;\n naturalGasCost?: number;\n tags: string[];\n meterNames: string[];\n bedsCount: number;\n carbonEmission?: number;\n carbonReduced?: number;\n rangeWaterSpent?: number; \n waterCost?: number;\n electricConsumption?: number;\n electricSavingVolume?: number;\n gasConsumption?: number;\n gasSavingsVolume?: number;\n gasMeasure?: string;\n hasElectricity: boolean;\n hasGas: boolean;\n hasWater: boolean;\n}\n\nexport interface BuildingInfoAdditional {\n energyEfficiencyScore: number;\n energyStarScore: number;\n}\n\nexport class BuildingContact {\n id: number;\n buildingId: number;\n name: string;\n title: string;\n email: string;\n officeNumber: string;\n cellPhoneNumber: string;\n notes: NoteItem[]=[];\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SvgIconComponent } from './components/svg-icon/svg-icon.component';\nimport { CardComponent } from './components/card/card.component';\nimport { MapToIterablePipe } from './pipes/map-to-iterable.pipe';\nimport { SvgDefinitionsComponent } from './components/svg-definitions/svg-definitions.component';\nimport { ValueFormatPipe } from './pipes/value-format.pipe';\nimport { BarChartComponent } from './components/bar-chart/bar-chart.component';\nimport { DonutChartComponent } from './components/donut-chart/donut-chart.component';\nimport { InfoBlockComponent } from './components/info-block/info-block.component';\nimport { EventModalComponent } from './components/event-modal/event-modal.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n declarations: [\n SvgIconComponent,\n CardComponent,\n MapToIterablePipe,\n SvgDefinitionsComponent,\n ValueFormatPipe,\n BarChartComponent,\n DonutChartComponent,\n InfoBlockComponent,\n EventModalComponent\n ],\n imports: [\n CommonModule,\n MatDialogModule,\n MatButtonModule\n ],\n exports: [\n SvgIconComponent,\n CardComponent,\n MapToIterablePipe,\n SvgDefinitionsComponent,\n ValueFormatPipe,\n BarChartComponent,\n DonutChartComponent,\n InfoBlockComponent,\n EventModalComponent\n ]\n})\nexport class SharedModule { }\n","import { Directive, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n@Directive()\n// tslint:disable:directive-class-suffix\nexport abstract class BaseComponent implements OnDestroy {\n\n public subscriptions: Subscription[] = [];\n public subscriptionsMap: Record = {};\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n Object.keys(this.subscriptionsMap)\n .map(key => this.subscriptionsMap[key])\n .forEach(subscription => subscription.unsubscribe());\n }\n\n public addSubscription(subscription: Subscription, subscriptionName?: string): void {\n if (!!subscriptionName) {\n this.subscriptionsMap[subscriptionName] = subscription;\n } else {\n this.subscriptions.push(subscription);\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\nimport { combineLatest } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { AlertsData, AlertsItem } from 'src/app/models/AlertsData';\nimport { CLIENT_SUMMARY_SERVICE, IClientSummaryService } from 'src/app/services/interfaces/client-summary.interface';\nimport { SelectedClientService } from '../../services/selected-client.service';\nimport { BaseComponent } from '../../shared/components/base/base.component';\nimport { AlarmDateService, DateSelectorService, EventSnapshotDateService } from '../date-selector/date-selector.service';\n\n@Component({\n selector: 'br-building-alerts',\n templateUrl: './building-alerts.component.html',\n styleUrls: ['./building-alerts.component.scss'],\n providers: [DateSelectorService,\n { provide: DateSelectorService,\n useExisting: AlarmDateService\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BuildingAlertsComponent extends BaseComponent implements OnInit {\n public alertsItems: AlertsItem[] = null;\n public hasCampus: boolean = false;\n\n constructor(\n private readonly selectedClientService: SelectedClientService,\n @Inject(CLIENT_SUMMARY_SERVICE) private readonly clientSummaryService: IClientSummaryService,\n private readonly dateFilterService: DateSelectorService,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.addSubscription(\n combineLatest([\n this.selectedClientService.selectedClientId$,\n this.selectedClientService.selectedCampusId$,\n this.dateFilterService.dateRangeChanged$,\n ]).pipe(\n switchMap(([clientId, campusId, dateRange]) => this.clientSummaryService.getAlerts(clientId, campusId, dateRange))\n ).subscribe((data: AlertsData) => {\n this.alertsItems = data.alertsItems;\n this.hasCampus = this.alertsItems.filter(p => p.campusName && p.campusName !== '').length > 0;\n this.changeDetectorRef.detectChanges();\n })\n );\n } \n}\n","
\n
{{ 'Model Alarms' | localizeText }}
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
CampusBuildingModelPreset Daily LimitActual Daily % Difference / Usage DifferenceDate Implemented
{{ alertItem.campusName }}{{ alertItem.buildingName }}{{ alertItem.modelName }}{{ alertItem.presetLimit }} {{ alertItem.units }}{{ alertItem.actual }} {{ alertItem.units }} ({{ alertItem.days }} days){{ alertItem.dateImplemented }}
\n
\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, OnInit, Output, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map, switchMap, takeLast } from 'rxjs/operators';\nimport { FacilityBenchmarkData } from '../../models/FacilityBenchmarkData';\nimport { UtilityBenchmarkData } from '../../models/UtilityBenchmarkData';\nimport { BenchmarksService } from '../../services/real-services/benchmarks.service';\nimport { BaseComponent } from '../../shared/components/base/base.component';\nimport { GO_LIVE_DATE_SERVICE, IGoLiveDateService } from 'src/app/services/interfaces/go-live-date.interface';\nimport { Location } from '@angular/common';\nimport { Utils } from '../../shared/utils';\nimport { SelectedClientService } from '../../services/selected-client.service';\nimport { NOT_FOUND_ROUTE } from '../../routing-const';\nimport { SelectedBuildingService } from '../../services/selected-building.service';\nimport { GoLiveDateStorage } from '../../services/go-live-date-storage.service';\nimport { BuildingEventsComponent } from 'src/app/components/building-events/building-events.component';\nimport { BuildingAssetListComponent } from 'src/app/components/building-asset-list/building-asset-list.component';\nimport { BUILDING_SUMMARY_SERVICE, IBuildingSummaryService } from 'src/app/services/interfaces/building-summary.interface';\nimport { SaveEquipmentResult } from 'src/app/models/EquipmentsEvents';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { DashboardExcelService } from 'src/app/services/dashboard-excel.service';\nimport { DateSelectorService } from 'src/app/components/date-selector/date-selector.service';\n\nexport class TagHolder {\n name: string;\n isConfirmed: boolean = true;\n}\n\n@Component({\n selector: 'br-building-page',\n templateUrl: './building-page.component.html',\n styleUrls: ['./building-page.component.scss'],\n providers: [DateSelectorService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BuildingPageComponent extends BaseComponent implements OnInit {\n\n @ViewChild(BuildingEventsComponent) buildingEventsComponent: BuildingEventsComponent;\n @ViewChild(BuildingAssetListComponent) buildingAssetListComponent: BuildingAssetListComponent;\n\n public buildingBenchmarksData$ = new Observable();\n public utilityBenchmarksData$ = new Observable();\n public buildingGoLiveDate$ = new Observable();\n public buildingId!: number;\n\n public tags: TagHolder[] = [];\n\n public isSpendView = true;\n\n @Output()\n public spendViewChanged = new EventEmitter();\n\n constructor(\n private readonly router: Router,\n private _location: Location,\n private readonly activateRoute: ActivatedRoute,\n private readonly selectedBuildingService: SelectedBuildingService,\n private readonly benchmarksService: BenchmarksService,\n @Inject(BUILDING_SUMMARY_SERVICE) private readonly buildingSummaryService: IBuildingSummaryService,\n private localizeText: LocalizeTextPipe,\n private readonly selectedClientService: SelectedClientService,\n private changeDetectorRef: ChangeDetectorRef,\n public readonly dashboardExcelService: DashboardExcelService,\n private readonly dateFilterService: DateSelectorService,\n ) {\n super();\n\n this.addSubscription(\n this.activateRoute.params.pipe(\n map(params => Utils.tryGetNumberFromAny(params.buildingId))\n ).subscribe(buildingId => {\n if (buildingId !== undefined) {\n this.selectedBuildingService.buildingId = buildingId;\n this.buildingId = buildingId;\n } else {\n this.backToPageNotFound();\n }\n })\n );\n\n this.getTags();\n }\n\n ngOnInit(): void {\n this.buildingBenchmarksData$ = this.selectedBuildingService.selectedBuildingId$.pipe(\n switchMap(buildingId => this.benchmarksService.getBuildingFacilityBenchmarks(buildingId)),\n map(benchmark => [benchmark])\n );\n\n this.utilityBenchmarksData$ = this.selectedBuildingService.selectedBuildingId$.pipe(\n switchMap(buildingId => this.benchmarksService.getBuildingUtilityBenchmarks(buildingId)),\n map(benchmark => [benchmark])\n );\n\n this.selectedClientService.currentLocalization$.subscribe(localization => {\n if (localization) {\n this.changeDetectorRef.detectChanges();\n }\n });\n }\n\n public switchSpendView(): void {\n this.isSpendView = !this.isSpendView;\n this.spendViewChanged.emit(this.isSpendView);\n }\n\n public backToPageNotFound(): void {\n //!!todo this.router.navigate([NOT_FOUND_ROUTE]);\n }\n\n public backToOverview(): void {\n this._location.back();\n //this.router.navigate(['../../'], { relativeTo: this.activateRoute });\n }\n\n public regetRequested(): void {\n this.buildingEventsComponent.getEvents();\n }\n\n public regetRequestedForAssets(): void {\n this.buildingAssetListComponent.getEquipmentInfo();\n }\n\n public addTagClicked(): void {\n this.tags[this.tags.length] = { name: \"\", isConfirmed: false };\n }\n\n public deleteTagClicked(tagItem: TagHolder): void {\n if (confirm(this.localizeText.transform(\"Are you sure you want to delete this tag?\"))) {\n this.tags = this.tags.filter(p => p != tagItem);\n this.saveTags();\n }\n }\n\n public confirmTagClicked(tagItem: TagHolder): void {\n tagItem.isConfirmed = true;\n this.saveTags();\n }\n\n public allConfirmed(): boolean {\n return this.tags.filter(p => !p.isConfirmed).length === 0;\n }\n\n public print(): void {\n window.print();\n }\n\n public exportToExcel() {\n const buildingId = this.selectedBuildingService.buildingId;\n const dateRange = this.dateFilterService.getDateRange();\n this.dashboardExcelService.downloadBuildingExcelReport(buildingId, dateRange); \n }\n\n private saveTags(): void {\n this.addSubscription(\n this.selectedBuildingService.selectedBuildingId$.pipe(\n switchMap((buildingId: number) => this.buildingSummaryService.saveBuildingTags(buildingId, this.tags.map(p => p.name))\n ))\n .subscribe((data: SaveEquipmentResult) => {\n console.log(\"tags saved\");\n })\n );\n }\n\n private getTags(): void {\n this.addSubscription(\n this.selectedBuildingService.selectedBuildingId$.pipe(\n switchMap((buildingId: number) => this.buildingSummaryService.getBuildingTags(buildingId)\n ))\n .subscribe((data: string[]) => {\n this.tags = data.map(p => { name: p, isConfirmed: true });\n })\n );\n }\n}\n","\n
{{ 'Building Summary' | localizeText }}
\n
\n\n\n \n \n\n\n
\n\n\n\n
\n
{{ 'Building Tags' | localizeText }}
\n
\n
\n \n
\n
\n x\n
\n \n
\n {{ tagItem.name }}\n
\n
\n \n
\n \n {{ 'Tag Name' | localizeText }}\n \n \n \n \n
\n
\n \n
\n
\n\n\n
\n \n
\n","import { Injectable } from '@angular/core';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { NumberFormat } from '../../shared/models/NumberFormat';\n\nexport class SavingsData {\n title = '';\n description = '';\n value?: number;\n additionalValue?: number;\n format?: NumberFormat;\n}\n\nexport class DetailsData {\n description = '';\n icon = '';\n value?: number;\n hideIfUndefined?: boolean;\n hide?: boolean;\n format?: NumberFormat;\n isGreen?: boolean = false;\n unitOfMeasure? = '';\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CampusSummaryModel {\n\n constructor(private localizeText: LocalizeTextPipe) {\n }\n\n public rangeSavingsTitle = [\n this.localizeText.transform('Yesterday Savings'),\n this.localizeText.transform('Last 7 Day Savings'),\n this.localizeText.transform('Last 30 Day Savings'),\n this.localizeText.transform('Last 90 Day Savings'),\n this.localizeText.transform('Last 365 Day Savings'),\n this.localizeText.transform('\"Year to Date\" Savings'),\n this.localizeText.transform('Custom Range Savings')\n ];\n\n public rangeSavingsDescriptions = [\n this.localizeText.transform('Yesterday Savings'),\n this.localizeText.transform('Savings of This Week'),\n this.localizeText.transform('Savings of This Month'),\n this.localizeText.transform('Savings of This Quarter'),\n this.localizeText.transform('Savings of This Year'),\n this.localizeText.transform('\"Year to Date\" Savings'),\n this.localizeText.transform('Custom Range Savings')\n ];\n public defaultSavingsData: Record = {\n totalSavings: {\n title: this.localizeText.transform('Total Savings'),\n description: this.localizeText.transform('Savings of All Time'),\n format: NumberFormat.integerCurrencyFormat\n },\n rangeToDateSavings: {\n title: ' ' + this.localizeText.transform('Savings'),\n description: this.localizeText.transform('Savings of This Year'),\n format: NumberFormat.integerCurrencyFormat\n }\n };\n\n public defaultOverviewData: Record = {\n buildingCount: {\n icon: 'building',\n description: this.localizeText.transform('Building Count'),\n isGreen: false,\n },\n totalBeds: {\n icon: 'bed',\n description: this.localizeText.transform('Total Beds'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n }, \n totalSquareFootage: {\n icon: 'ruler',\n description: this.localizeText.transform('Total sq. ft.'),\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n }, \n };\n\n public defaultDetailsData: Record = { \n totalEnergySpend: {\n icon: 'lightbulb',\n description: this.localizeText.transform('Total Energy Spend'),\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n },\n // eui: {\n // icon: 'fire',\n // description: this.localizeText.transform('EUI'),\n // format: NumberFormat.shortNumberFormat\n // },\n electricityCost: {\n icon: 'plug',\n description: this.localizeText.transform('Electricity Spend'),\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n },\n naturalGasCost: {\n icon: 'fire-alt',\n description: this.localizeText.transform('Natural Gas Spend'),\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n },\n co2Emission: {\n icon: 'fire',\n description: this.localizeText.transform('lbs CO2 Emissions'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n }, \n waterSpend: {\n icon: 'water',\n description: this.localizeText.transform('Water Spend'),\n hideIfUndefined: true,\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n }, \n emptyBlock: {\n icon: '',\n description: '',\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n }, \n electricitySavings: {\n icon: 'plug',\n description: this.localizeText.transform('Electricity Savings'),\n format: NumberFormat.shortCurrencyFormat,\n isGreen: true,\n }, \n naturalGasSavings: {\n icon: 'fire-alt',\n description: this.localizeText.transform('Natural Gas Savings'),\n format: NumberFormat.shortCurrencyFormat,\n isGreen: true,\n }, \n co2Reduced: {\n icon: 'fire',\n description: this.localizeText.transform('lbs CO2 Reduced'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: true,\n },\n waterUsage: {\n icon: 'water',\n description: this.localizeText.transform('Water Usage CCF'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n },\n };\n\n public defaultConsumptionDetailsData: Record = { \n emptyBlockA: {\n icon: '',\n description: '',\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n },\n electricConsumption: {\n icon: 'plug',\n description: this.localizeText.transform('Electric Consumption'),\n format: NumberFormat.shortNumberFormat,\n unitOfMeasure: ' (kWh)',\n isGreen: false,\n }, \n naturalGasConsumption: {\n icon: 'fire-alt',\n description: this.localizeText.transform('Natural Gas Consumption'),\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n }, \n co2Emission: {\n icon: 'fire',\n description: this.localizeText.transform('lbs CO2 Emissions'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n }, \n emptyBlockH: {\n icon: '',\n description: '',\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n }, \n waterSpend: {\n icon: '',\n description: '',\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n }, \n electricSavingVolume: {\n icon: 'plug',\n description: this.localizeText.transform('Electric Savings'),\n format: NumberFormat.shortNumberFormat,\n unitOfMeasure: ' (kWh)',\n isGreen: true,\n },\n naturalGasSavings: {\n icon: 'fire-alt',\n description: this.localizeText.transform('Natural Gas Savings'),\n format: NumberFormat.shortNumberFormat,\n isGreen: true,\n }, \n co2Reduced: {\n icon: 'fire',\n description: this.localizeText.transform('lbs CO2 Reduced'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: true,\n },\n waterUsage: {\n icon: 'water',\n description: this.localizeText.transform('Water Usage CCF'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n },\n };\n}\n","export const LOGIN_ROUTE = 'login';\nexport const CLIENT_SELECT_ROUTE = 'client-select';\nexport const DASHBOARD_ROUTE = 'dashboard';\nexport const BUILDING_ROUTE = 'building';\nexport const CAMPUS_ROUTE = 'campus';\nexport const ADMIN_ROUTE = 'admin';\nexport const NOT_FOUND_ROUTE = '404';\n","import { Injectable } from '@angular/core';\nimport { InfoBlockData } from 'src/app/shared/components/info-block/info-block.model';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { NumberFormat } from '../../shared/models/NumberFormat';\n\nexport enum ArrowType {\n Increased = 'arrow-increase',\n Decreased = 'arrow-decrease',\n Unaltered = 'vector'\n}\n\nexport interface ArrowData {\n icon: string;\n width: number;\n height: number;\n color: string;\n}\n\nexport interface FormattedNumber {\n value: number;\n format: NumberFormat;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BuildingsModel {\n\n constructor(private localizeText: LocalizeTextPipe) {\n }\n\n public defaultInfoBlockData: Record = {\n electricitySavings: {\n icon: { name: 'plug', width: 13.5, height: 18, color: '#53698F' }\n },\n gasSavings: {\n icon: { name: 'fire-alt', width: 15.75, height: 18, color: '#3EB049' }\n },\n savings: {\n icon: { name: 'usd-circle', width: 16, height: 16, color: '#3EB049' }\n }\n };\n\n public rangeSavingsTitleShort = [\n this.localizeText.transform('Yesterday Savings'),\n this.localizeText.transform('Last 7 Day Savings'),\n this.localizeText.transform('Last 30 Day Savings'),\n this.localizeText.transform('Last 90 Day Savings'),\n this.localizeText.transform('Last 365 Day Savings'),\n this.localizeText.transform('YTD Savings'),\n this.localizeText.transform('Savings')\n ];\n\n public arrowType: Record = {\n increased: {\n icon: ArrowType.Increased,\n width: 8,\n height: 16,\n color: '#3EB049'\n },\n decreased: {\n icon: ArrowType.Decreased,\n width: 8,\n height: 16,\n color: '#CD0402'\n },\n unaltered: {\n icon: ArrowType.Unaltered,\n width: 13,\n height: 15,\n color: '#FFA26B'\n }\n };\n}\n","import { DateRange } from '@angular/material/datepicker';\nimport { Observable } from 'rxjs';\nimport { BuildingData } from '../../models/BuildingData';\nimport { CampusData } from '../../models/CampusData';\n\nexport const BUILDING_SPREADSHEET_SERVICE = 'BUILDING_SPREADSHEET_SERVICE';\nexport interface IBuildingSpreadsheetService {\n getBuildingSpredsheetData(clientId: number, campusId: number, dateRange: DateRange): Observable;\n getCampusSpredsheetData(clientId: number, dateRange: DateRange): Observable;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'br-app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n}\n","\n
\n \n
\n\n\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, map, tap } from 'rxjs/operators';\nimport { SelectedClientService } from 'src/app/services/selected-client.service';\nimport { environment } from '../../../environments/environment';\nimport { AuthResponse, LanguageInfo, UserForAuthentication } from '../../models/AuthModel';\nimport { LOGIN_ROUTE } from '../../routing-const';\nimport { TokenProviderService } from './token-provider.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthenticationService {\n private readonly REST_API_SERVER = environment.apiUrl;\n private readonly LOGIN = 'accounts/login';\n private readonly LOGOUT = 'accounts/logout';\n private readonly AUTH_INFO = 'accounts/auth-info';\n private readonly CHANGE_LANGUAGE = 'accounts/change-language';\n private authChangeSub = new BehaviorSubject(this.isUserAuthenticated());\n public authChanged$ = this.authChangeSub.asObservable();\n\n constructor(\n private tokenProvider: TokenProviderService,\n private http: HttpClient,\n private jwtHelper: JwtHelperService,\n private readonly selectedClientService: SelectedClientService,\n private router: Router\n ) { }\n\n public loginUser(body: UserForAuthentication): Observable {\n return this.http.post(`${this.REST_API_SERVER}/${this.LOGIN}`, body).pipe(\n tap(result => {\n this.initAuthResponse(result);\n })\n );\n }\n\n public logoutUser(): Observable {\n return this.http.post(`${this.REST_API_SERVER}/${this.LOGOUT}`, \"\");\n }\n\n public getAuthInfo(): Observable {\n return this.http.get(`${this.REST_API_SERVER}/${this.AUTH_INFO}`).pipe(\n tap(result => {\n this.initAuthResponse(result);\n })\n );\n }\n\n public changeLanguage(language: LanguageInfo): Observable { \n return this.http.post(`${this.REST_API_SERVER}/${this.CHANGE_LANGUAGE}`, language).pipe(\n tap(result => {\n //this.initAuthResponse(result);\n window.location.reload();\n })\n );\n }\n\n public isUserAuthenticated(): boolean {\n //console.log(this.authChangeSub?.value === true);\n return this.authChangeSub?.value === true;\n // const token = this.tokenProvider.getToken();\n // return !!token; //!!todo && !this.jwtHelper.isTokenExpired(token);\n }\n\n public logout(): void {\n this.tokenProvider.removeToken();\n this.authChangeSub.next(false);\n\n this.logoutUser().subscribe((res)=>{ \n this.selectedClientService.isEditor = false;\n this.selectedClientService.isEngCoAdmin = false;\n });\n\n this.router.navigate([LOGIN_ROUTE]);\n }\n\n private initAuthResponse(result: AuthResponse): void {\n this.authChangeSub.next(result.isAuthSuccessful);\n\n if (!result.isAuthSuccessful) {\n return;\n }\n\n this.tokenProvider.setToken(result.token);\n this.selectedClientService.isEditor = result.isEditor;\n this.selectedClientService.isEngCoAdmin = result.isEngCoAdmin;\n this.selectedClientService.loginId = result.loginId;\n this.selectedClientService.localization = result.localization;\n if (result.clients.length > 1) {\n this.selectedClientService.availableClients = result.clients;\n }\n else {\n let clientId = result.clients[0].id;\n this.selectedClientService.clientId = clientId;\n }\n\n //this.router.navigate([this.router.url])\n }\n}\n","import { EventEmitter, Input } from '@angular/core';\nimport { Output } from '@angular/core';\nimport { Component } from '@angular/core';\nimport { SelectedClientService } from 'src/app/services/selected-client.service';\nimport { DashboardExcelService } from '../../services/dashboard-excel.service';\nimport { DateSelectorService } from '../date-selector/date-selector.service';\n\n@Component({\n selector: 'br-dashboard-btn-group',\n templateUrl: './dashboard-btn-group.component.html',\n styleUrls: ['./dashboard-btn-group.component.scss'],\n\n})\nexport class DashboardBtnGroupComponent {\n public isAdvancedView = false;\n public isAlarmsView = false;\n public isSpendView = true;\n\n @Input()\n public isShowLeftButtons = true;\n\n @Output()\n public advancedViewChanged = new EventEmitter();\n\n @Output()\n public alarmViewChanged = new EventEmitter();\n\n\n @Output()\n public spendViewChanged = new EventEmitter();\n\n constructor(public readonly dashboardExcelService: DashboardExcelService,\n private readonly selectedClientService: SelectedClientService,\n private readonly dateFilterService: DateSelectorService) { }\n\n public switchView(): void {\n this.isAdvancedView = !this.isAdvancedView;\n this.advancedViewChanged.emit(this.isAdvancedView);\n }\n\n public switchAlarmView(): void {\n this.isAlarmsView = !this.isAlarmsView;\n this.alarmViewChanged.emit(this.isAlarmsView);\n }\n\n public switchSpendView(): void {\n this.isSpendView = !this.isSpendView;\n this.spendViewChanged.emit(this.isSpendView);\n }\n\n public print(): void {\n window.print();\n }\n\n public exportToExcel(): void {\n this.dashboardExcelService.downloadExcelReport();\n }\n\n public exportToExcelAlarms(): void {\n this.dashboardExcelService.downloadAlarmsExcelReport(this.selectedClientService.clientId, this.selectedClientService.campusId, this.dateFilterService.getDateRange());\n }\n}\n","\n
\n \n \n \n \n \n
\n\n
\n \n \n \n \n
\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\ntype Args = 'keyval' | 'key' | 'value';\n\n@Pipe({\n name: 'mapToIterable',\n pure: false\n})\nexport class MapToIterablePipe implements PipeTransform {\n public transform(obj: any, arg: Args = 'keyval'): any[] | undefined {\n return arg === 'keyval'\n ? Object.keys(obj).map(key => ({key, value: obj[key]}))\n : arg === 'key'\n ? Object.keys(obj)\n : arg === 'value'\n ? Object.keys(obj).map(key => obj[key])\n : undefined;\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { environment } from '../../../environments/environment';\r\nimport { EndpointConst } from './endpoint-const';\r\n\r\nexport class ImageResponse {\r\n imageUrl!: string;\r\n}\r\n\r\n@Injectable()\r\nexport class ImageService {\r\n private REST_API_SERVER = environment.apiUrl;\r\n private UPLOAD_PATH = \"upload\"; \r\n\r\n constructor(private httpClient: HttpClient) {}\r\n \r\n \r\n public uploadImage(image: File): Observable {\r\n const formData = new FormData();\r\n \r\n formData.append('image', image);\r\n console.log(image);\r\n\r\n const data = this.httpClient.post(\r\n `${this.REST_API_SERVER}/${EndpointConst.IMAGE}/${this.UPLOAD_PATH}`, formData);\r\n return data;\r\n }\r\n }","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { BuildingEvent } from '../building-events/building-event.model';\r\n@Pipe({\r\n name: 'eventfilter',\r\n pure: false\r\n})\r\nexport class EventFilterPipe implements PipeTransform {\r\n transform(items: BuildingEvent[], filter: Object): any {\r\n if (!items || !filter) {\r\n return items;\r\n } \r\n return items.filter(item => item.deleted !== true);\r\n }\r\n}","import { BrowserModule } from '@angular/platform-browser';\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { AppRoutingModule } from './app-routing.module';\nimport { SharedModule } from './shared/shared.module';\nimport { AppComponent } from './app.component';\nimport { HeaderComponent } from './components/header/header.component';\nimport { ClientSummaryComponent } from './components/client-summary/client-summary.component';\nimport { BuildingSpreadsheetComponent } from './components/building-spreadsheet/building-spreadsheet.component';\nimport { EventSnapshotComponent } from './components/event-snapshot/event-snapshot.component';\nimport { MainDashboardComponent } from './pages/main-dashboard/main-dashboard.component';\nimport { DashboardBtnGroupComponent } from './components/dashboard-btn-group/dashboard-btn-group.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Ng2GoogleChartsModule } from 'ng2-google-charts';\nimport { FacilityBenchmarksComponent } from './components/building-benchmarks/facility-benchmarks/facility-benchmarks.component';\nimport { BuildingInfoComponent } from './components/building-info/building-info.component';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { BuildingPageComponent } from './pages/building-page/building-page.component';\nimport { ClientSelectComponent } from './pages/client-select/client-select.component';\nimport { BuildingEventsComponent } from './components/building-events/building-events.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { DateSelectorComponent } from './components/date-selector/date-selector.component';\nimport { ServicesModule } from './services/services.module';\nimport { HttpErrorInterceptor } from './shared/interceptors/http-error.interceptor';\nimport { BuildingAssetListComponent } from './components/building-asset-list/building-asset-list.component';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { BuildingAssetComponent } from './components/building-asset-list/building-asset/building-asset.component';\nimport { BuildingEventModalComponent } from './components/building-event-modal/building-event-modal.component';\nimport { UtilityBenchmarksComponent } from './components/building-benchmarks/utility-benchmarks/utility-benchmarks.component';\nimport { JwtConfig, JwtModule, JwtModuleOptions } from '@auth0/angular-jwt';\nimport { AuthInterceptor } from './shared/interceptors/auth.interceptor';\nimport { PageNotFoundComponent } from './pages/page-not-found/page-not-found.component';\nimport { LoginComponent } from './authentication/login/login.component';\nimport { AlarmDateService, BuildingSpreadsheetDateService, ClientSummaryDateService, EventSnapshotDateService } from './components/date-selector/date-selector.service';\nimport { WithCredentialsInterceptorService } from './shared/services/with-credentials-interceptor.service';\nimport { BuildingEquipmentModalComponent } from './components/building-equipment-modal/building-equipment-modal.component';\nimport { EventFilterPipe } from './components/building-event-modal/building-event-filter';\nimport { AuthenticationService } from './shared/services/authentication.service';\nimport { takeLast } from 'rxjs/operators';\nimport { TagFilterPipe } from './components/building-spreadsheet/building-tag-filter';\nimport { NoteManagerComponent } from './components/note-manager/note-manager.component';\nimport { BuildingContactsComponent } from './components/building-contacts/building-contacts.component';\nimport { BuildingContactModalComponent } from './components/building-contact-modal/building-contact-modal.component';\nimport { LocalizeTextPipe } from './shared/pipes/localize-text.pipe';\nimport { AdminComponent } from './pages/admin/admin.component';\nimport { TranslationItemsFilterPipe } from './pages/admin/translation-items-filter';\nimport { DatePipe } from '@angular/common';\nimport { FooterComponent } from './components/footer/footer.component';\nimport { CampusSpreadsheetComponent } from './components/campus-spreadsheet/campus-spreadsheet.component';\nimport { CampusPageComponent } from './pages/campus-page/campus-page.component';\nimport { CampusSummaryComponent } from './components/campus-summary/campus-summary.component';\nimport { BuildingAlertsComponent } from './components/building-alerts/building-alerts.component';\n\nconst JwtOptions: JwtModuleOptions = {\n config: {\n whitelistedDomains: [],\n blacklistedRoutes: []\n } as JwtConfig\n};\n\nexport const interceptorProviders = [\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: HttpErrorInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: WithCredentialsInterceptorService, multi: true },\n];\n\nexport function configFactory(authenticationService: AuthenticationService) {\n return () => authenticationService.getAuthInfo().toPromise();\n}\n\n@NgModule({\n declarations: [\n AppComponent,\n HeaderComponent,\n FooterComponent,\n ClientSummaryComponent,\n BuildingSpreadsheetComponent,\n CampusSpreadsheetComponent,\n EventSnapshotComponent,\n MainDashboardComponent,\n DashboardBtnGroupComponent,\n BuildingInfoComponent,\n BuildingPageComponent,\n ClientSelectComponent,\n AdminComponent,\n FacilityBenchmarksComponent,\n BuildingEventsComponent,\n UtilityBenchmarksComponent,\n DateSelectorComponent,\n BuildingAssetListComponent,\n BuildingAssetComponent,\n BuildingEventModalComponent,\n BuildingEquipmentModalComponent,\n LoginComponent,\n PageNotFoundComponent,\n EventFilterPipe,\n TagFilterPipe,\n NoteManagerComponent,\n BuildingContactsComponent,\n BuildingContactModalComponent,\n LocalizeTextPipe,\n TranslationItemsFilterPipe,\n CampusPageComponent,\n CampusSummaryComponent,\n BuildingAlertsComponent\n ],\n imports: [\n BrowserModule,\n HttpClientModule,\n AppRoutingModule,\n BrowserAnimationsModule,\n SharedModule,\n MatButtonModule,\n MatDatepickerModule,\n MatMenuModule,\n MatSelectModule,\n MatInputModule,\n MatNativeDateModule,\n MatExpansionModule,\n MatCheckboxModule,\n MatTabsModule,\n FormsModule,\n ReactiveFormsModule,\n MatDialogModule,\n ServicesModule,\n Ng2GoogleChartsModule,\n JwtModule.forRoot(JwtOptions)\n ],\n bootstrap: [AppComponent],\n providers: [...interceptorProviders,\n ClientSummaryDateService,\n BuildingSpreadsheetDateService,\n EventSnapshotDateService,\n AlarmDateService,\n LocalizeTextPipe,\n TranslationItemsFilterPipe,\n DatePipe,\n {\n provide: APP_INITIALIZER,\n useFactory: configFactory,\n deps: [AuthenticationService],\n multi: true\n }\n ]\n})\nexport class AppModule {\n\n // constructor(private authService: AuthenticationService) {\n // this.authService.getAuthInfo()\n // .pipe(takeLast(1))\n // .subscribe(result => {\n // });\n // }\n}\n","export class NumberFormat {\n constructor(public prefix: string = '',\n public postfix: string = '',\n public isShort: boolean = false,\n public minIntegerDigits: number = 1,\n public minFractionDigits: number = 0,\n public maxFractionDigits: number = 0) {\n }\n\n public static get defaultCurrencyFormat(): NumberFormat {\n return new NumberFormat('$', '', false, 1, 0, 2);\n }\n\n public static get defaultPercentsFormat(): NumberFormat {\n return new NumberFormat('', '%', false, 1, 0, 0);\n }\n\n public static get defaultNumberFormat(): NumberFormat {\n return new NumberFormat('', '', false, 1, 0, 2);\n }\n\n public static get integerCurrencyFormat(): NumberFormat {\n return new NumberFormat('$', '', false, 1, 0, 0);\n }\n\n public static get integerNumberFormat(): NumberFormat {\n return new NumberFormat('', '', false, 1, 0, 0);\n }\n\n public static get shortNumberFormat(): NumberFormat {\n return new NumberFormat('', '', true, 1, 0, 1);\n }\n\n public static get shortCurrencyFormat(): NumberFormat {\n return new NumberFormat('$', '', true, 1, 0, 1);\n }\n\n public static get temperatureFormat(): NumberFormat {\n return new NumberFormat('', '° F', false, 1, 0, 0);\n }\n\n public get digitsInfo(): string {\n return `${this.minIntegerDigits}.${this.minFractionDigits}-${this.maxFractionDigits}`;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { GoLiveDateInfo } from 'src/app/shared/models/GoLiveDateInfo';\nimport { IGoLiveDateService } from '../interfaces/go-live-date.interface';\n\n@Injectable()\nexport class GoLiveDateStubService implements IGoLiveDateService {\n\n public getBuildingGoLiveDate(buildingId: number): Observable {\n return of({ electricityGoLiveDate: new Date(2020, 12, 30), gasGoLiveDate: new Date(2020, 12, 30)});\n }\n\n public getGoLiveDate(): Observable {\n return of(new Date(2020, 12, 30));\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { DateRange } from '@angular/material/datepicker';\nimport { Observable } from 'rxjs';\nimport { CampusInfo, CampusInfoAdditional } from 'src/app/models/CampusInfo';\nimport { SaveEquipmentResult } from 'src/app/models/EquipmentsEvents';\nimport { PrimaryFunction } from 'src/app/models/FacilityBenchmarkData';\nimport { environment } from '../../../environments/environment';\nimport { BuildingDateRange, CampusDateRange } from '../../models/BuildingDateRange';\nimport { BuildingContact, BuildingInfo, BuildingInfoAdditional } from '../../models/BuildingInfo';\nimport { IBuildingSummaryService } from '../interfaces/building-summary.interface';\nimport { EndpointConst } from './endpoint-const';\n\n@Injectable()\nexport class BuildingSummaryRealService implements IBuildingSummaryService {\n\n private REST_API_SERVER = environment.apiUrl;\n private readonly BUILDING_SUMMARY = 'summary';\n private readonly BUILDING_SUMMARY_ADDITIONAL = 'summary-additional';\n private readonly TAGS = 'tags';\n private readonly PRIMARY_FUNCTION = 'primary-function';\n private readonly PRIMARY_FUNCTIONS = 'primary-functions';\n private readonly BUILDING_CONTACTS = 'building-contacts';\n private readonly BUILDING_CONTACT = 'building-contact';\n private readonly DELETE_BUILDING_CONTACT = 'delete-building-contact';\n\n constructor(private httpClient: HttpClient) { }\n\n public getBuildingSummary(buildingId: number, dateRange: DateRange): Observable {\n const data = this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${this.BUILDING_SUMMARY}`,\n {\n buildingId,\n dateStart: dateRange.start,\n dateEnd: dateRange.end\n } as BuildingDateRange);\n return data;\n }\n\n public getBuildingSummaryAdditional(buildingId: number, dateRange: DateRange): Observable {\n const data = this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${this.BUILDING_SUMMARY_ADDITIONAL}`,\n {\n buildingId,\n dateStart: dateRange.start,\n dateEnd: dateRange.end\n } as BuildingDateRange);\n return data;\n }\n\n public getCampusSummary(campusId: number, dateRange: DateRange): Observable {\n const data = this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.CAMPUS}/${this.BUILDING_SUMMARY}`,\n {\n campusId,\n dateStart: dateRange.start,\n dateEnd: dateRange.end\n } as CampusDateRange);\n return data;\n }\n\n public getCampusSummaryAdditional(campusId: number, dateRange: DateRange): Observable {\n const data = this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.CAMPUS}/${this.BUILDING_SUMMARY_ADDITIONAL}`,\n {\n campusId,\n dateStart: dateRange.start,\n dateEnd: dateRange.end\n } as CampusDateRange);\n return data;\n }\n\n public getBuildingTags(buildingId: number): Observable {\n return this.httpClient.get(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${buildingId}/${this.TAGS}`\n );\n }\n\n public saveBuildingTags(buildingId: number, tags: string[]): Observable {\n return this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${buildingId}/${this.TAGS}`, tags\n );\n }\n\n public getPrimaryFunction(buildingId: number): Observable {\n return this.httpClient.get(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${buildingId}/${this.PRIMARY_FUNCTION}`\n );\n }\n\n public getPrimaryFunctions(): Observable {\n return this.httpClient.get(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${this.PRIMARY_FUNCTIONS}`\n );\n }\n\n public savePrimaryFunction(buildingId: number, primaryFunctionId: number): Observable {\n return this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${buildingId}/${this.PRIMARY_FUNCTION}`, primaryFunctionId\n );\n }\n\n public getBuildingContacts(buildingId: number): Observable {\n return this.httpClient.get(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${buildingId}/${this.BUILDING_CONTACTS}`\n );\n }\n\n public saveBuildingContact(buildingId: number, buildingContact: BuildingContact): Observable {\n return this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${buildingId}/${this.BUILDING_CONTACT}`, buildingContact\n );\n }\n\n public deleteBuildingContact(buildingId: number, buildingContact: BuildingContact): Observable {\n return this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${buildingId}/${this.DELETE_BUILDING_CONTACT}`, buildingContact\n );\n }\n}\n","import { Component, Inject, Input } from '@angular/core';\n\n@Component({\n selector: 'br-event-modal',\n templateUrl: './event-modal.component.html',\n styleUrls: ['./event-modal.component.scss']\n})\nexport class EventModalComponent {\n\n @Input()\n public mainHeader?: string;\n\n @Input()\n public subHeader?: string;\n\n constructor() {\n }\n}\n","
\n {{ mainHeader }}\n \n {{ subHeader }}\n
\n\n","import { NumberFormat } from '../../models/NumberFormat';\n\nexport const DEFAULT_COLORS = [\n '#193769',\n '#3EB049',\n '#FFA26B',\n '#FFCF5C',\n '#A9B4C7'\n];\n\nexport enum MaxValueStrategy {\n default = 'default',\n percentsMax = 'percentsMax',\n maxDataset = 'maxDataset',\n maxAll = 'maxAll'\n}\n\nexport class HorizontalBarChartOptions {\n chartTitle?: string = undefined;\n description?: string = undefined;\n showLegendInDataset ? = false;\n datasets!: DatasetData[];\n maxHeight?: number;\n barFunction?: BarFunction;\n}\n\nexport class DatasetData {\n key!: string;\n label!: string;\n format?: NumberFormat;\n maxValueStrategy?: MaxValueStrategy = MaxValueStrategy.default;\n maxValue?: number;\n barColor ?= '';\n}\n\nexport interface BarChartData {\n titles: string[];\n values: Record;\n bluredBarsCount?: number;\n}\n\nexport interface BarFunction {\n clickableText: string;\n clickFunction: (params: any) => void;\n params?: any;\n}\n\nexport interface BlurOptions {\n barsBlured: number;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SelectedClientService } from 'src/app/services/selected-client.service';\r\n@Pipe({\r\n name: 'localizeText',\r\n pure: false\r\n})\r\nexport class LocalizeTextPipe implements PipeTransform {\r\n\r\n constructor(\r\n private readonly selectedClientService: SelectedClientService\r\n ) { }\r\n\r\n transform(originalText: string): string {\r\n\r\n if (this.selectedClientService?.localization?.currentLanguage == null) {\r\n return originalText;\r\n }\r\n\r\n if (!originalText) {\r\n return originalText;\r\n }\r\n\r\n var translationItems = this.selectedClientService.localization.currentLanguage.translationItems.filter(p => p.sourceText == originalText);\r\n\r\n return translationItems.length > 0 ? translationItems[0].text : originalText;\r\n }\r\n}","import { ChangeDetectionStrategy, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { FacilityBenchmarkData } from '../../models/FacilityBenchmarkData';\nimport { BenchmarksService } from '../../services/real-services/benchmarks.service';\nimport { BaseComponent } from '../../shared/components/base/base.component';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Utils } from '../../shared/utils';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { SelectedClientService } from '../../services/selected-client.service';\nimport { DASHBOARD_ROUTE, NOT_FOUND_ROUTE } from '../../routing-const';\nimport { Client } from 'src/app/models/AuthModel';\n\n@Component({\n templateUrl: './client-select.component.html',\n styleUrls: ['./client-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ClientSelectComponent extends BaseComponent implements OnInit {\n\n @ViewChild('anchor')\n public anchor: ElementRef | null = null;\n\n public advanced$ = new BehaviorSubject(false);\n public facilityBenchmarksData$ = new Observable();\n\n public clients: Client[] = [];\n\n constructor(\n private readonly selectedClientService: SelectedClientService,\n private readonly router: Router\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.clients = this.selectedClientService.availableClients.sort((a, b) => a.clientName > b.clientName ? 1 : -1); \n }\n\n public onChanged(advanced: boolean): void {\n this.advanced$.next(advanced);\n }\n\n public clientSelected(client: Client): void {\n let clientId = client.id;\n this.selectedClientService.clientId = clientId;\n this.router.navigate([`${DASHBOARD_ROUTE}/${clientId}`]);\n }\n}\n","

Select Client

\n
\n \n \n \n \n \n \n
\n
","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnInit } from '@angular/core';\nimport { combineLatest, Observable } from 'rxjs';\nimport { NumberFormat } from '../../shared/models/NumberFormat';\nimport { BaseComponent } from '../../shared/components/base/base.component';\nimport { ArrowType, BuildingsModel } from './building-spreadsheet.model';\nimport { BuildingData } from '../../models/BuildingData';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BuildingSpreadsheetDateService, DateSelectorService } from '../date-selector/date-selector.service';\nimport { BUILDING_SPREADSHEET_SERVICE, IBuildingSpreadsheetService } from 'src/app/services/interfaces/building-spreadsheet.interface';\nimport { switchMap } from 'rxjs/operators';\nimport { SelectedClientService } from '../../services/selected-client.service';\nimport { BUILDING_ROUTE, DASHBOARD_ROUTE } from '../../routing-const';\nimport { GoLiveDateStorage } from '../../services/go-live-date-storage.service';\nimport { BUILDING_SUMMARY_SERVICE, IBuildingSummaryService } from 'src/app/services/interfaces/building-summary.interface';\nimport { DateRange } from '@angular/material/datepicker';\nimport { BuildingInfoAdditional } from 'src/app/models/BuildingInfo';\nimport { UsageByDate } from 'src/app/models/CampusData';\n\n@Component({\n selector: 'br-building-spreadsheet',\n templateUrl: './building-spreadsheet.component.html',\n styleUrls: ['./building-spreadsheet.component.scss'],\n providers: [BuildingsModel,\n {\n provide: DateSelectorService,\n useExisting: BuildingSpreadsheetDateService\n }],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BuildingSpreadsheetComponent extends BaseComponent implements OnInit {\n\n public format = NumberFormat;\n\n public tagName: string = \"\";\n\n public buildingsInfo$ = new Observable();\n public buildingsData = [] as BuildingData[];\n public rangeSavingsTitle = this.model.rangeSavingsTitleShort;\n public arrowType = this.model.arrowType;\n public blocks = this.model.defaultInfoBlockData;\n public liveDate$ = this.clientGoLiveDateService.clientGoLiveDate$;\n public savingsTitle = '';\n\n public electricityGraphs: any = [];\n public gasGraphs: any = [];\n public waterGraphs: any = [];\n public isElectricityPresented = false;\n public isGasPresented = false;\n public isWaterPresented = false;\n\n public fixedUsageType: string = null;\n\n currentUsageViewName = \"Water\"; \n\n constructor(private readonly model: BuildingsModel,\n private readonly router: Router,\n private readonly activateRoute: ActivatedRoute,\n private readonly selectedClientService: SelectedClientService,\n private readonly dateFilterService: DateSelectorService,\n private readonly clientGoLiveDateService: GoLiveDateStorage,\n @Inject(BUILDING_SPREADSHEET_SERVICE) private readonly buildingSpreadsheetService: IBuildingSpreadsheetService,\n @Inject(BUILDING_SUMMARY_SERVICE) private readonly buildingSummaryService: IBuildingSummaryService,\n private changeDetectorRef: ChangeDetectorRef,) {\n super();\n\n setInterval(() => {\n this.changeUsageView();\n this.changeDetectorRef.detectChanges();\n }, 5000);\n }\n\n public clickUsageType(usageType: string) {\n if (this.fixedUsageType === usageType) {\n this.fixedUsageType = null;\n return;\n }\n\n this.fixedUsageType = usageType;\n\n this.currentUsageViewName = usageType;\n }\n\n public changeUsageView() {\n if (this.fixedUsageType != null) {\n return;\n }\n\n switch (this.currentUsageViewName) {\n case \"Electricity\":\n if (this.isGasPresented) {\n this.currentUsageViewName = \"Gas\";\n } else if (this.isWaterPresented) {\n this.currentUsageViewName = \"Water\";\n } \n break;\n case \"Gas\":\n if (this.isWaterPresented) {\n this.currentUsageViewName = \"Water\";\n } else if (this.isElectricityPresented) {\n this.currentUsageViewName = \"Electricity\";\n }\n break;\n case \"Water\":\n if (this.isElectricityPresented) {\n this.currentUsageViewName = \"Electricity\";\n } else if (this.isGasPresented) {\n this.currentUsageViewName = \"Gas\";\n }\n break;\n }\n }\n\n private removeTrailingNulls (usagesByDates: UsageByDate[], getValueFunc: (t: UsageByDate) => number): UsageByDate[] {\n const resultArray = [] as UsageByDate[];\n\n let isZeroItems = true;\n [...usagesByDates].reverse().forEach(p => {\n const value = getValueFunc(p);\n\n if (value && value != 0) {\n isZeroItems = false;\n }\n\n if (!isZeroItems) {\n resultArray[resultArray.length] = p;\n }\n });\n\n return resultArray.reverse();\n }\n\n public createGraph(campusData: BuildingData, resourceName: string, getValueFunc: (t: UsageByDate) => number, lineColor: string): any {\n var graph = {\n hasData: false,\n chartType: \"LineChart\",\n dataTable: [] as any,\n options: {\n title: resourceName,\n chartArea: {\n width: \"250\",\n height: \"100\"\n },\n legend: 'none',\n series: {\n 0: { type: 'line', color: lineColor },\n },\n }\n };\n\n graph.dataTable[0] = [\"Date\", resourceName];\n \n const cleanUsagesByDates = this.removeTrailingNulls(campusData.usagesByDates, getValueFunc);\n\n cleanUsagesByDates.forEach(p => {\n const value = getValueFunc(p);\n \n graph.dataTable[graph.dataTable.length] = [(new Date(p.date)).toLocaleDateString(), value];\n\n if (value > 0) {\n graph.hasData = true;\n }\n });\n\n return graph;\n }\n\n public initGraphs(campusDataList: BuildingData[]): void {\n this.electricityGraphs = campusDataList.map(p => this.createGraph(p, \"Electricity\", t => t.electricity, p.rangeElectricitySavings >= 0 ? 'green' : 'red'));\n this.gasGraphs = campusDataList.map(p => this.createGraph(p, \"Gas\", t => t.gas, p.rangeNaturalGasSavings >= 0 ? 'green' : 'red'));\n this.waterGraphs = campusDataList.map(p => this.createGraph(p, \"Water\", t => t.water, 'blue'));\n \n this.isElectricityPresented = campusDataList.filter(p => p.usagesByDates.filter(t => t.electricity > 0).length > 0).length > 0;\n this.isGasPresented = campusDataList.filter(p => p.usagesByDates.filter(t => t.gas > 0).length > 0).length > 0;\n this.isWaterPresented = campusDataList.filter(p => p.usagesByDates.filter(t => t.water > 0).length > 0).length > 0;\n\n this.fixedUsageType = null;\n\n this.changeUsageView();\n }\n\n public ngOnInit(): void {\n this.buildingsInfo$ = combineLatest([\n this.selectedClientService.selectedClientId$,\n this.selectedClientService.selectedCampusId$,\n this.dateFilterService.dateRangeChanged$,\n ]).pipe(\n switchMap(([clientId, campusId, dateRange]) => this.buildingSpreadsheetService.getBuildingSpredsheetData(clientId, campusId, dateRange))\n );\n\n this.addSubscription(\n this.buildingsInfo$.subscribe((buildingData)=>{\n this.buildingsData = buildingData;\n this.initGraphs(this.buildingsData);\n this.changeDetectorRef.detectChanges();\n buildingData.forEach(building => {\n this.addSubscription(\n this.buildingSummaryService.getBuildingSummaryAdditional(building.id, new DateRange(new Date(), new Date())).subscribe((data: BuildingInfoAdditional) => {\n const buildingData = this.buildingsData.filter(p => p.id === building.id)[0];\n buildingData.energyEfficiencyScore=data.energyEfficiencyScore;\n buildingData.energyStarScore=data.energyStarScore;\n this.changeDetectorRef.detectChanges();\n })\n );\n });\n })\n );\n\n this.addSubscription(\n this.dateFilterService.selectedIndexChanged$.subscribe(index => {\n this.savingsTitle = this.rangeSavingsTitle[index];\n })\n );\n }\n\n public cardClick(buildingId: number): void {\n this.router.navigate([`${DASHBOARD_ROUTE}/${this.selectedClientService.clientId}/${BUILDING_ROUTE}/${buildingId}`]);\n }\n\n public get arrow(): typeof ArrowType {\n return ArrowType;\n }\n\n public getBuildingTag(buildingData: BuildingData) {\n return buildingData.tags.filter(p=>p.toUpperCase().includes(this.tagName.toUpperCase()))[0];\n }\n}\n","
\n
{{ 'Building Spreadsheet' | localizeText }}
\n \n
\n
\n \n {{ 'Search by Tag' | localizeText }}\n \n \n
\n
\n Electricity\n Gas\n Water\n
\n
\n
0\"> \n
\n
\n
\n {{ data.buildingName }} \n
\n
\n \n {{ data.temperature | valueFormat: format.temperatureFormat }}\n
\n
\n
\n {{ data.location }}\n
\n
\n
0\" class=\"tag-block\">\n {{ 'Tag' | localizeText }}: {{ getBuildingTag(data) }} \n
\n
\n
\n
1 && electricityGraphs[i].hasData\" class=\"graph-block\"\n [ngStyle]=\"{'background-color': electricityGraphs[i].options.series[0].color}\">\n
\n \n
\n
\n
\n No Data/Model\n
\n
\n
\n
1 && gasGraphs[i].hasData\" class=\"graph-block\"\n [ngStyle]=\"{'background-color': gasGraphs[i].options.series[0].color}\">\n
\n \n
\n
\n
\n No Data/Model\n
\n
\n
\n
1 && waterGraphs[i].hasData\" class=\"graph-block\"\n [ngStyle]=\"{'background-color': waterGraphs[i].options.series[0].color}\">\n
\n \n
\n
\n
\n No Data/Model\n
\n
\n
\n
\n
\n
\n
\n \n {{ data.rangeElectricitySavings | valueFormat: format.integerCurrencyFormat }}\n \n
\n \n
\n
\n
\n \n {{ data.rangeNaturalGasSavings | valueFormat: format.integerCurrencyFormat }}\n \n
\n \n
\n
\n \n
\n
\n \n {{ data.savings | valueFormat: format.integerCurrencyFormat }} {{ savingsTitle }}\n
\n
\n
\n","import { BuildingEvent } from '../components/building-events/building-event.model';\n\nexport interface EquipmentsEvents {\n chillers: ChillerEvents[];\n boilers: BoilerEvents[];\n coolingTowers: CoolingTowersEvents[];\n airHandlers: AirHandlersEvents[];\n hwConverters: HotWaterConvertersEvents[];\n controls: BasControlsEvents[];\n mriItems: MriEvents[];\n wishListItems: WishListItem[];\n buildingEnergyUses: BuildingEnergyUses;\n}\n\nexport interface EquipmentEvents {\n equipment: T;\n events: BuildingEvent[];\n}\n\nexport interface ImageItem {\n imageUrl: string;\n name: string;\n}\n\nexport interface PdfItem {\n url: string;\n name: string;\n}\n\nexport interface HyperlinkItem {\n url: string;\n name: string;\n}\n\nexport class NoteItem {\n creationTime: Date;\n loginId: string;\n text: string;\n isInEditMode: boolean = false;\n}\n\nexport interface Equipment {\n id: number;\n buildingId: number;\n images: ImageItem[];\n hyperlinks: HyperlinkItem[];\n pdfs: PdfItem[];\n note: NoteItem[];\n equipmentType: EquipmentType;\n}\n\nexport enum EquipmentType {\n Chiller = \"Chiller\",\n Boiler = \"Boiler\",\n CoolingTower = \"CoolingTower\",\n AirHandler = \"AirHandler\",\n HWConverter = \"HWConverter\",\n BASControl = \"BASControl\",\n MRI = \"MRI\",\n BuildingEnergyUses = \"BuildingEnergyUses\",\n WishList = \"WishList\"\n}\n\nexport class SaveEquipmentResult {\n isSuccess!: boolean;\n}\n\nexport class EquipmentInfo {\n public equipmentEvents: EquipmentEvents | null = null;\n public equipmentType!: EquipmentType;\n public chillers: ChillerEvents[] = [];\n public boilers: BoilerEvents[] = [];\n}\n\nexport interface ChillerEvents extends EquipmentEvents { }\n\nexport interface ChillerInfo extends Equipment {\n manufacturerName: string;\n controllability: string;\n chillerType: string;\n tonnage: number;\n approxAge: number;\n name: string;\n model: string;\n serial: string;\n dateInstalled: Date;\n}\n\nexport interface BoilerEvents extends EquipmentEvents { }\n\nexport interface BoilerInfo extends Equipment {\n manufacturerName: string;\n controllability: string;\n boilerType: string;\n size: number;\n approxAge: number;\n pmProcedures: string;\n name: string;\n model: string;\n serial: string;\n dateInstalled: Date;\n}\n\nexport interface CoolingTowersEvents extends EquipmentEvents { }\n\nexport interface CoolingTowerInfo extends Equipment {\n manufacturerName: string;\n controllability: string;\n towerType: string;\n approxAge: number;\n basinType: string;\n fanType: string;\n tonnage: number;\n name: string;\n chillers: string;\n model: string;\n serial: string;\n dateInstalled: Date;\n}\n\nexport interface AirHandlersEvents extends EquipmentEvents { }\n\nexport interface AirHandlerInfo extends Equipment {\n controllability: string;\n floor: number;\n floorName: string;\n hoursOfOperation: string;\n numberOfAHU: number;\n mainType: string;\n secondaryType: string;\n numberOfExhaustAirExchangerOrRecapture: number;\n any_VAV_PIU_CAV: boolean;\n currentSetBacks?: string;\n preExistingSetBacksInPlace: string;\n preExistingSetBacksSpecific: string;\n name: string;\n areaServed: string;\n chillerServed: string;\n}\n\nexport interface HotWaterConvertersEvents extends EquipmentEvents { }\n\nexport interface HotWaterConverterInfo extends Equipment {\n loopName: string;\n controllability: string;\n name: string;\n manufacturer: string;\n dateInstalled: Date;\n}\n\nexport interface BasControlsEvents extends EquipmentEvents { }\nexport interface BasControlsInfo extends Equipment {\n manufacturerName: string;\n remoteAccess: boolean;\n // userName: string;\n // password: string;\n informationModel: string;\n percentBuildingControlled: number;\n numberOfFloorsControlled: number;\n approxAge: number;\n dateInstalled?: Date;\n percentPneumatic?: number;\n percentDdc?: number;\n}\n\nexport interface WishListEvents extends EquipmentEvents { }\n\nexport interface WishListItem extends Equipment {\n description: string;\n}\n\nexport interface MriEvents extends EquipmentEvents { }\n\nexport interface MriInfo extends Equipment {\n description: string;\n}\n\nexport interface EnergyUsesItem extends Equipment {\n name: string;\n description: string;\n electricEnergySource: string;\n naturalGasSource: string;\n chillerId: number;\n boilerId: number;\n}\n\nexport interface BuildingEnergyUses {\n description: string;\n items: EnergyUsesItem[];\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { takeLast } from 'rxjs/operators';\nimport { UserForAuthentication } from '../../models/AuthModel';\nimport { AuthenticationService } from '../../shared/services/authentication.service';\nimport { SelectedClientService } from '../../services/selected-client.service';\n\nimport { DASHBOARD_ROUTE, CLIENT_SELECT_ROUTE } from '../../routing-const';\n\n@Component({\n selector: 'br-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit {\n public loginForm = new FormGroup({\n username: new FormControl('', [Validators.required]),\n password: new FormControl('', [Validators.required])\n });\n\n public errorMessage: string | undefined = undefined;\n private returnUrl = '';\n\n constructor(private authService: AuthenticationService,\n private readonly selectedClientService: SelectedClientService,\n private router: Router,\n private route: ActivatedRoute\n ) { }\n\n ngOnInit(): void {\n if (this.authService.isUserAuthenticated()) {\n if (this.selectedClientService.availableClients && this.selectedClientService.availableClients.length > 1) {\n this.router.navigate([`${CLIENT_SELECT_ROUTE}`]); \n }\n else if (this.selectedClientService.clientId) {\n this.router.navigate([`${DASHBOARD_ROUTE}/${this.selectedClientService.clientId}`]); \n }\n }\n this.returnUrl = this.route.snapshot.queryParams.returnUrl || '/';\n }\n\n public validateControl(controlName: string): boolean {\n return this.loginForm.controls[controlName].invalid && this.loginForm.controls[controlName].touched;\n }\n\n public hasError(controlName: string, errorName: string): boolean {\n return this.loginForm.controls[controlName].hasError(errorName);\n }\n\n public loginUser(loginFormValue: any): void {\n this.errorMessage = undefined;\n const loginAndPass = {...loginFormValue };\n const userForAuth: UserForAuthentication = {\n username: loginAndPass.username,\n password: loginAndPass.password\n };\n this.authService.loginUser(userForAuth)\n .pipe(takeLast(1))\n .subscribe(result => {\n this.selectedClientService.isEditor = result.isEditor;\n this.selectedClientService.isEngCoAdmin = result.isEngCoAdmin;\n this.selectedClientService.loginId = result.loginId;\n if (result.clients.length > 1) {\n this.selectedClientService.availableClients = result.clients;\n this.router.navigate([`${CLIENT_SELECT_ROUTE}`]); \n }\n else {\n let clientId = result.clients[0].id;\n this.selectedClientService.clientId = clientId;\n this.router.navigate([`${DASHBOARD_ROUTE}/${clientId}`]); \n } \n },\n error => this.errorMessage = error);\n }\n}\n","
\n
{{ 'Login' | localizeText }}
\n
\n
\n \n {{ 'Username is required' | localizeText }}\n
\n
\n \n {{ 'Password is required' | localizeText }}\n
\n \n
\n
\n {{ errorMessage | localizeText }}\n
\n
\n","import { Injectable } from '@angular/core';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { NumberFormat } from '../../shared/models/NumberFormat';\n\nexport class SavingsData {\n title = '';\n description = '';\n value?: number;\n additionalValue?: number;\n format?: NumberFormat;\n}\n\nexport class DetailsData {\n description = '';\n icon = '';\n value?: number;\n hideIfUndefined?: boolean;\n hide?: boolean;\n format?: NumberFormat;\n isGreen?: boolean = false;\n unitOfMeasure? = '';\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ClientSummaryModel {\n\n constructor(private localizeText: LocalizeTextPipe) {\n }\n\n public rangeSavingsTitle = [\n this.localizeText.transform('Yesterday Savings'),\n this.localizeText.transform('Last 7 Day Savings'),\n this.localizeText.transform('Last 30 Day Savings'),\n this.localizeText.transform('Last 90 Day Savings'),\n this.localizeText.transform('Last 365 Day Savings'),\n this.localizeText.transform('\"Year to Date\" Savings'),\n this.localizeText.transform('Custom Range Savings')\n ];\n\n public rangeSavingsDescriptions = [\n this.localizeText.transform('Yesterday Savings'),\n this.localizeText.transform('Savings of This Week'),\n this.localizeText.transform('Savings of This Month'),\n this.localizeText.transform('Savings of This Quarter'),\n this.localizeText.transform('Savings of This Year'),\n this.localizeText.transform('\"Year to Date\" Savings'),\n this.localizeText.transform('Custom Range Savings')\n ];\n public defaultSavingsData: Record = {\n totalSavings: {\n title: this.localizeText.transform('Total Savings'),\n description: this.localizeText.transform('Savings of All Time'),\n format: NumberFormat.integerCurrencyFormat\n },\n rangeToDateSavings: {\n title: ' ' + this.localizeText.transform('Savings'),\n description: this.localizeText.transform('Savings of This Year'),\n format: NumberFormat.integerCurrencyFormat\n }\n };\n\n public defaultOverviewData: Record = {\n buildingCount: {\n icon: 'building',\n description: this.localizeText.transform('Building Count'),\n isGreen: false,\n },\n totalBeds: {\n icon: 'bed',\n description: this.localizeText.transform('Total Beds'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n }, \n totalSquareFootage: {\n icon: 'ruler',\n description: this.localizeText.transform('Total sq. ft.'),\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n }, \n };\n\n public defaultDetailsData: Record = { \n totalEnergySpend: {\n icon: 'lightbulb',\n description: this.localizeText.transform('Total Energy Spend'),\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n },\n // eui: {\n // icon: 'fire',\n // description: this.localizeText.transform('EUI'),\n // format: NumberFormat.shortNumberFormat\n // },\n electricityCost: {\n icon: 'plug',\n description: this.localizeText.transform('Electricity Spend'),\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n },\n naturalGasCost: {\n icon: 'fire-alt',\n description: this.localizeText.transform('Natural Gas Spend'),\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n },\n co2Emission: {\n icon: 'fire',\n description: this.localizeText.transform('lbs CO2 Emissions'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n }, \n waterSpend: {\n icon: 'water',\n description: this.localizeText.transform('Water Spend'),\n hideIfUndefined: true,\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n }, \n emptyBlock: {\n icon: '',\n description: '',\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n }, \n electricitySavings: {\n icon: 'plug',\n description: this.localizeText.transform('Electricity Savings'),\n format: NumberFormat.shortCurrencyFormat,\n isGreen: true,\n }, \n naturalGasSavings: {\n icon: 'fire-alt',\n description: this.localizeText.transform('Natural Gas Savings'),\n format: NumberFormat.shortCurrencyFormat,\n isGreen: true,\n }, \n co2Reduced: {\n icon: 'fire',\n description: this.localizeText.transform('lbs CO2 Reduced'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: true,\n },\n waterUsage: {\n icon: 'water',\n description: this.localizeText.transform('Water Usage CCF'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n },\n };\n\n public defaultConsumptionDetailsData: Record = { \n emptyBlockA: {\n icon: '',\n description: '',\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n },\n electricConsumption: {\n icon: 'plug',\n description: this.localizeText.transform('Electric Consumption'),\n format: NumberFormat.shortNumberFormat,\n unitOfMeasure: ' (kWh)',\n isGreen: false,\n }, \n naturalGasConsumption: {\n icon: 'fire-alt',\n description: this.localizeText.transform('Natural Gas Consumption'),\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n }, \n co2Emission: {\n icon: 'fire',\n description: this.localizeText.transform('lbs CO2 Emissions'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n }, \n emptyBlockH: {\n icon: '',\n description: '',\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n }, \n waterSpend: {\n icon: '',\n description: '',\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n }, \n electricSavingVolume: {\n icon: 'plug',\n description: this.localizeText.transform('Electric Savings'),\n format: NumberFormat.shortNumberFormat,\n unitOfMeasure: ' (kWh)',\n isGreen: true,\n },\n naturalGasSavings: {\n icon: 'fire-alt',\n description: this.localizeText.transform('Natural Gas Savings'),\n format: NumberFormat.shortNumberFormat,\n isGreen: true,\n }, \n co2Reduced: {\n icon: 'fire',\n description: this.localizeText.transform('lbs CO2 Reduced'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: true,\n },\n waterUsage: {\n icon: 'water',\n description: this.localizeText.transform('Water Usage CCF'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n },\n };\n}\n","import { DOCUMENT } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { SaveEquipmentResult } from 'src/app/models/EquipmentsEvents';\nimport { BUILDING_SUMMARY_SERVICE, IBuildingSummaryService } from 'src/app/services/interfaces/building-summary.interface';\nimport { SelectedClientService } from 'src/app/services/selected-client.service';\nimport { BaseComponent } from 'src/app/shared/components/base/base.component';\nimport { FacilityBenchmarkData, PrimaryFunction } from '../../../models/FacilityBenchmarkData';\nimport { BarChartData } from '../../../shared/components/bar-chart/bar-chart.model';\nimport { FacilityBenchmarkModel } from './facility-benchmarks.model';\n\n@Component({\n selector: 'br-facility-benchmarks',\n templateUrl: './facility-benchmarks.component.html',\n styleUrls: ['./facility-benchmarks.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FacilityBenchmarksComponent extends BaseComponent implements OnChanges, OnInit {\n\n @Input()\n public data: FacilityBenchmarkData[] = [];\n\n @Input()\n public buildingId?: number = null;\n\n @Input()\n public isEditIndustryEnabled: boolean = false;\n\n constructor(\n public readonly model: FacilityBenchmarkModel,\n @Inject(BUILDING_SUMMARY_SERVICE) private readonly buildingSummaryService: IBuildingSummaryService,\n private selectedClientService: SelectedClientService,\n private changeDetectorRef: ChangeDetectorRef,\n @Inject(DOCUMENT) private _document: Document\n ) {\n super();\n }\n\n public euiChartData: BarChartData| null = null;\n public costPerBedChartData: BarChartData | null = null;\n public costPerSqftChartData: BarChartData | null = null;\n\n public isEditMode: boolean = false;\n public primaryFunctions: PrimaryFunction[] = [];\n public industries: string[] = [];\n public selectedIndustry: string = null;\n public primaryFunction: PrimaryFunction = { buildingIndustry: \"\", primaryFunction: \"\", id: 0 };\n\n ngOnInit(): void { \n\n this.selectedClientService.currentIsEditMode$.subscribe(isEditMode => {\n this.isEditMode = isEditMode;\n\n if (this.isEditMode && this.primaryFunctions.length === 0) {\n this.addSubscription(\n this.buildingSummaryService.getPrimaryFunctions()\n .subscribe((data: PrimaryFunction[]) => {\n this.primaryFunctions = data; \n this.industries = this.primaryFunctions.map(p => p.buildingIndustry).filter((thing, i, arr) => arr.findIndex(t => t === thing) === i);\n this.changeDetectorRef.detectChanges();\n })\n );\n }\n\n this.changeDetectorRef.detectChanges();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.data && this.data) {\n this.setChartsData(this.data);\n }\n if (changes.buildingId) {\n this.getBuildingInfo();\n } \n }\n\n public getIndustryPrimaryFunctions(): PrimaryFunction[] {\n return this.primaryFunctions.filter(p => p.buildingIndustry === this.primaryFunction.buildingIndustry);\n }\n\n public saveClicked(): void {\n this.addSubscription(\n this.buildingSummaryService.savePrimaryFunction(this.buildingId, this.primaryFunction.id)\n .subscribe((data: SaveEquipmentResult) => {\n console.log(\"primary function saved\");\n this._document.defaultView.location.reload();\n })\n );\n }\n\n private getBuildingInfo(): void {\n this.addSubscription(\n this.buildingSummaryService.getPrimaryFunction(this.buildingId)\n .subscribe((data: PrimaryFunction) => {\n this.primaryFunction = data;\n })\n );\n }\n\n private setChartsData(data: FacilityBenchmarkData[]): void {\n this.euiChartData = this.createEuiChartData(data);\n this.costPerSqftChartData = this.createCostPerSqFtData(data);\n const costPerBedData = data?.filter(d => !!d.costPerBedData);\n if (!!costPerBedData?.length) {\n this.costPerBedChartData = this.createCostPerBedChartData(costPerBedData);\n }\n }\n\n private createEuiChartData(data: FacilityBenchmarkData[]): BarChartData {\n return data.reduce((barChartData, curr) => {\n barChartData.titles.push(curr.buildingName);\n if (!!curr.euiData) {\n barChartData.values.start.push(curr.euiData.starting);\n barChartData.values.current.push(curr.euiData.current);\n barChartData.values.industry.push(curr.euiData.industry);\n }\n return barChartData;\n }, this.emptyEuiChartData);\n }\n\n private createCostPerBedChartData(data: FacilityBenchmarkData[]): BarChartData {\n return data.reduce((barChartData, curr) => {\n barChartData.titles.push(curr.buildingName);\n if (!!curr.costPerBedData) {\n barChartData.values.start.push(curr.costPerBedData.starting);\n barChartData.values.current.push(curr.costPerBedData.current);\n barChartData.values.national.push(curr.costPerBedData.national);\n barChartData.values.region.push(curr.costPerBedData.region);\n barChartData.values.state.push(curr.costPerBedData.state);\n }\n return barChartData;\n }, this.emptyCostPerBedChartData);\n }\n\n private createCostPerSqFtData(data: FacilityBenchmarkData[]): BarChartData {\n return data.reduce((barChartData, curr) => {\n barChartData.titles.push(curr.buildingName);\n if (!!curr.costPerSqFtData) {\n barChartData.values.start.push(curr.costPerSqFtData.starting);\n barChartData.values.current.push(curr.costPerSqFtData.current);\n barChartData.values.national.push(curr.costPerSqFtData.national);\n barChartData.values.region.push(curr.costPerSqFtData.region);\n barChartData.values.industry.push(curr.costPerSqFtData.industry);\n }\n return barChartData;\n }, this.emptyCostPerSqFtChartData);\n }\n\n private get emptyEuiChartData(): BarChartData {\n return {\n titles: [],\n values: {\n start: [],\n current: [],\n industry: []\n }\n } as BarChartData;\n }\n\n private get emptyCostPerBedChartData(): BarChartData {\n return {\n titles: [],\n values: {\n start: [],\n current: [],\n national: [],\n region: [],\n state: []\n }\n } as BarChartData;\n }\n\n private get emptyCostPerSqFtChartData(): BarChartData {\n return {\n titles: [],\n values: {\n start: [],\n current: [],\n national: [],\n region: [],\n industry: []\n }\n } as BarChartData;\n }\n\n public clickUpgrade(): void {\n console.log('upgrade');\n }\n}\n","
{{ 'Facility Benchmarks' | localizeText }}
\n\n \n \n \n \n \n \n \n \n
\n {{ 'Industry' | localizeText }}: \n \n {{ primaryFunction.buildingIndustry | localizeText }}\n
\n {{ 'Primary Function' | localizeText }}: \n \n {{ primaryFunction.primaryFunction | localizeText }}\n
\n0 && isEditMode && isEditIndustryEnabled\">\n \n \n \n \n \n \n \n \n \n \n \n
\n {{ 'Industry' | localizeText }}: \n \n \n {{ 'Select Industry' | localizeText }}\n \n \n {{ industryItem | localizeText }} \n \n \n
\n {{ 'Primary Function' | localizeText }}: \n \n \n {{ 'Select Primary Function' | localizeText }}\n \n \n {{ primaryFunctionItem.primaryFunction | localizeText }} \n \n \n
\n
\n
\n \n EUI (Energy Use Intensity = Energy per sq. ft. per Year)\n \n \n \n \n \n Annual Cost per Bed\n \n \n \n \n \n
\n
\n \n Annual Cost per Square Foot\n \n \n \n \n
\n
\n\n\n {{ 'Upgrade to Pro' | localizeText }}\n {{ 'to View Region and State' | localizeText }}\n\n","import { DatePipe } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { AirHandlerInfo, BasControlsInfo, BoilerInfo, BuildingEnergyUses, ChillerInfo, CoolingTowerInfo, EnergyUsesItem, EquipmentType, HotWaterConverterInfo, MriInfo, WishListItem } from 'src/app/models/EquipmentsEvents';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { ValueFormatPipe } from 'src/app/shared/pipes/value-format.pipe';\n\nexport interface EventProperty {\n name: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BuildingEquipmentModalModel { \n\n constructor(private localizeText: LocalizeTextPipe) {\n }\n\n public propMapChiller: Record = {\n name: { name: this.localizeText.transform('Name') },\n controllability: { name: this.localizeText.transform('Controllability') },\n manufacturerName: { name: this.localizeText.transform('Manufacturer') },\n tonnage: { name: this.localizeText.transform('Tonnage') },\n model: { name: this.localizeText.transform('Model #') },\n serial: { name: this.localizeText.transform('Serial #') },\n chillerType: { name: this.localizeText.transform('Type') }, \n dateInstalled: { name: this.localizeText.transform('Date Installed') }, \n purchasePrice: { name: this.localizeText.transform('Purchase Price') }, \n annualMaintenanceFee: { name: this.localizeText.transform('Annual Maintenance Fee') }, \n vintage: { name: this.localizeText.transform('Vintage') }, \n lifeOfEquipment: { name: this.localizeText.transform('Life of Equipment') }, \n };\n\n public propMapBoiler: Record = {\n name: { name: this.localizeText.transform('Name') },\n controllability: { name: this.localizeText.transform('Controllability') },\n manufacturerName: { name: this.localizeText.transform('Manufacturer') },\n size: { name: this.localizeText.transform('Size (HP)') },\n boilerType: { name: this.localizeText.transform('Type') },\n model: { name: this.localizeText.transform('Model #') },\n serial: { name: this.localizeText.transform('Serial #') },\n dateInstalled: { name: this.localizeText.transform('Date Installed') }, \n purchasePrice: { name: this.localizeText.transform('Purchase Price') }, \n annualMaintenanceFee: { name: this.localizeText.transform('Annual Maintenance Fee') }, \n vintage: { name: this.localizeText.transform('Vintage') }, \n lifeOfEquipment: { name: this.localizeText.transform('Life of Equipment') },\n };\n\n public propMapCoolingTower: Record = {\n name: { name: this.localizeText.transform('Name') },\n chillers: { name: this.localizeText.transform('Chiller(s)') },\n controllability: { name: this.localizeText.transform('Controllability') },\n manufacturerName: { name: this.localizeText.transform('Manufacturer') },\n model: { name: this.localizeText.transform('Model #') },\n serial: { name: this.localizeText.transform('Serial #') },\n dateInstalled: { name: this.localizeText.transform('Date Installed') }, \n purchasePrice: { name: this.localizeText.transform('Purchase Price') }, \n annualMaintenanceFee: { name: this.localizeText.transform('Annual Maintenance Fee') }, \n vintage: { name: this.localizeText.transform('Vintage') }, \n lifeOfEquipment: { name: this.localizeText.transform('Life of Equipment') },\n };\n\n public propMapAirHandler: Record = {\n name: { name: this.localizeText.transform('Name') },\n controllability: { name: this.localizeText.transform('Controllability') },\n areaServed: { name: this.localizeText.transform('Area Served') },\n chillerServed: { name: this.localizeText.transform('Chiller Served') },\n mainType: { name: this.localizeText.transform('Type') },\n purchasePrice: { name: this.localizeText.transform('Purchase Price') }, \n annualMaintenanceFee: { name: this.localizeText.transform('Annual Maintenance Fee') }, \n vintage: { name: this.localizeText.transform('Vintage') }, \n lifeOfEquipment: { name: this.localizeText.transform('Life of Equipment') },\n };\n\n public propMapHWConverter: Record = {\n name: { name: this.localizeText.transform('Name') },\n controllability: { name: this.localizeText.transform('Controllability') },\n manufacturer: { name: this.localizeText.transform('Manufacturer') },\n dateInstalled: { name: this.localizeText.transform('Date Installed') },\n purchasePrice: { name: this.localizeText.transform('Purchase Price') }, \n annualMaintenanceFee: { name: this.localizeText.transform('Annual Maintenance Fee') }, \n vintage: { name: this.localizeText.transform('Vintage') }, \n lifeOfEquipment: { name: this.localizeText.transform('Life of Equipment') },\n };\n\n public propMapBASControl: Record = {\n manufacturerName: { name: this.localizeText.transform('Manufacturer') },\n informationModel: { name: this.localizeText.transform('Model') },\n dateInstalled: { name: this.localizeText.transform('Date Installed') },\n remoteAccess: { name: this.localizeText.transform('Remote Access') },\n percentPneumatic: { name: this.localizeText.transform('% Pneumatic') },\n percentDdc: { name: this.localizeText.transform('% DDC') },\n purchasePrice: { name: this.localizeText.transform('Purchase Price') }, \n annualMaintenanceFee: { name: this.localizeText.transform('Annual Maintenance Fee') }, \n vintage: { name: this.localizeText.transform('Vintage') }, \n lifeOfEquipment: { name: this.localizeText.transform('Life of Equipment') },\n };\n\n public propMapMRI: Record = {\n description: { name: this.localizeText.transform('Description') },\n purchasePrice: { name: this.localizeText.transform('Purchase Price') }, \n annualMaintenanceFee: { name: this.localizeText.transform('Annual Maintenance Fee') }, \n vintage: { name: this.localizeText.transform('Vintage') }, \n lifeOfEquipment: { name: this.localizeText.transform('Life of Equipment') },\n };\n\n public propMapBuildingEnergyUses: Record = {\n name: { name: this.localizeText.transform('Large Equipment/Room') },\n description: { name: this.localizeText.transform('Description') },\n electricEnergySource: { name: this.localizeText.transform('Electric Energy Source') },\n naturalGasSource: { name: this.localizeText.transform('Natural Gas Source') },\n };\n\n public propMapWishList: Record = {\n description: { name: this.localizeText.transform('Item') },\n };\n\n public getPropMapByEquipmentType(equipmentType: EquipmentType): Record {\n switch (equipmentType){\n case EquipmentType.Chiller: return this.propMapChiller; \n case EquipmentType.Boiler: return this.propMapBoiler;\n case EquipmentType.CoolingTower: return this.propMapCoolingTower;\n case EquipmentType.AirHandler: return this.propMapAirHandler;\n case EquipmentType.HWConverter: return this.propMapHWConverter;\n case EquipmentType.BASControl: return this.propMapBASControl; \n case EquipmentType.MRI: return this.propMapMRI;\n case EquipmentType.BuildingEnergyUses: return this.propMapBuildingEnergyUses; \n case EquipmentType.WishList: return this.propMapWishList;\n }\n }\n\n public getDefaultEquipmentByEquipmentType(equipmentType: EquipmentType) {\n switch (equipmentType){\n case EquipmentType.Chiller: return { manufacturerName: \"\", controllability: \"\", chillerType: \"\", tonnage: 0, approxAge: 0, images: [], pdfs: [], hyperlinks: [], note:[], id: 0, buildingId: 0, equipmentType: equipmentType };\n case EquipmentType.Boiler: return { manufacturerName: \"\", controllability: \"\", boilerType: \"\", size: 0, approxAge: 0, images: [], pdfs: [], hyperlinks: [], note:[], id: 0, buildingId: 0, pmProcedures: \"\", equipmentType: equipmentType };\n case EquipmentType.CoolingTower: return { manufacturerName: \"\", controllability: \"\", basinType: \"\", towerType: \"\", fanType: \"\", tonnage: 0, approxAge: 0, images: [], pdfs: [], hyperlinks: [], note:[], id: 0, buildingId: 0, equipmentType: equipmentType };\n case EquipmentType.AirHandler: return { floor: 0, floorName: \"\", hoursOfOperation: \"\", numberOfAHU: 0, mainType: \"\", secondaryType: \"\", \n controllability: \"\", numberOfExhaustAirExchangerOrRecapture: 0, any_VAV_PIU_CAV: false, preExistingSetBacksInPlace: \"\",\n preExistingSetBacksSpecific:\"\", currentSetBacks: \"\", images: [], pdfs: [], hyperlinks: [], note:[], id: 0, buildingId: 0, equipmentType: equipmentType };\n case EquipmentType.HWConverter: return { loopName: \"\", controllability: \"\", images: [], pdfs: [], hyperlinks: [], note:[], id: 0, buildingId: 0, equipmentType: equipmentType };\n case EquipmentType.BASControl: return { manufacturerName: \"\", remoteAccess: false, userName: \"\", password: \"\", informationModel: \"\", \n percentBuildingControlled: 0, numberOfFloorsControlled: 0, approxAge: 0, images: [], pdfs: [], hyperlinks: [], note:[], id: 0, buildingId: 0, equipmentType: equipmentType }; \n case EquipmentType.MRI: return { description: \"\", images: [], pdfs: [], hyperlinks: [], note:[], id: 0, buildingId: 0, equipmentType: equipmentType };\n case EquipmentType.BuildingEnergyUses: return { name: \"\", description: \"\", electricEnergySource: \"\", naturalGasSource: \"\", images: [], pdfs: [], hyperlinks: [], note:[], id: 0, buildingId: 0, equipmentType: equipmentType }; \n \n case EquipmentType.WishList: return { description: \"\", images: [], pdfs: [], hyperlinks: [], note:[], id: 0, buildingId: 0, equipmentType: equipmentType };\n } \n }\n}\n\n","import { DatePipe } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { DateRange } from '@angular/material/datepicker';\nimport { take } from 'rxjs/operators';\nimport { environment } from '../../environments/environment';\nimport { AlarmDateService, BuildingSpreadsheetDateService, ClientSummaryDateService, EventSnapshotDateService } from '../components/date-selector/date-selector.service';\nimport { AlarmsExcelRequest, BuildingDashboardExcelRequest, DashboardExcelRequest } from '../models/DashboardExcelRequest';\nimport { ExcelUtils } from '../shared/excel-utils';\nimport { LocalizeTextPipe } from '../shared/pipes/localize-text.pipe';\nimport { EndpointConst } from './real-services/endpoint-const';\nimport { SelectedClientService } from './selected-client.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardExcelService {\n\n private REST_API_SERVER = environment.apiUrl;\n private readonly EXCEL = 'excel';\n private readonly ALARMS_EXCEL = 'alerts-excel';\n\n constructor(private readonly httpClient: HttpClient,\n private readonly clientSummaryDateService: ClientSummaryDateService,\n private readonly buildingDateService: BuildingSpreadsheetDateService,\n private readonly eventSnapshotDateService: EventSnapshotDateService,\n private readonly alarmDateService: AlarmDateService,\n private readonly selectedClientService: SelectedClientService,\n private localizeText: LocalizeTextPipe) {\n }\n\n public async downloadExcelReport(): Promise {\n const clientSummaryRange = await this.clientSummaryDateService.dateRangeChanged$.pipe(take(1)).toPromise();\n const buildingSpreadsheetRange = await this.buildingDateService.dateRangeChanged$.pipe(take(1)).toPromise();\n const eventSnapshotRange = await this.eventSnapshotDateService.dateRangeChanged$.pipe(take(1)).toPromise();\n\n const data = await this.httpClient.post(`${this.REST_API_SERVER}/${EndpointConst.DASHBOARD}/${this.EXCEL}`,\n {\n clientId: this.selectedClientService.clientId,\n clientSummaryRange,\n buildingSpreadsheetRange,\n eventSnapshotRange\n } as DashboardExcelRequest,\n {\n responseType: 'blob' as 'json'\n }).toPromise();\n\n const fileName = `${this.localizeText.transform('Dashboard')}-${new DatePipe('en-US').transform(Date.now(), 'M/d/yy')}.xlsx`;\n if (data) {\n ExcelUtils.downloadExcelFile(data as Blob, fileName);\n }\n }\n\n public async downloadBuildingExcelReport(buildingId: number, dateRange: DateRange): Promise {\n const data = await this.httpClient.post(`${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${this.EXCEL}`,\n {\n buildingId,\n dateRange\n } as BuildingDashboardExcelRequest,\n {\n responseType: 'blob' as 'json'\n }).toPromise();\n\n const fileName = `${this.localizeText.transform('BuildingDashboard')}-${new DatePipe('en-US').transform(Date.now(), 'M/d/yy')}.xlsx`;\n if (data) {\n ExcelUtils.downloadExcelFile(data as Blob, fileName);\n }\n }\n\n public async downloadAlarmsExcelReport(clientId: number, campusId: number, dateRange: DateRange): Promise {\n dateRange = await this.alarmDateService.dateRangeChanged$.pipe(take(1)).toPromise();\n const data = await this.httpClient.post(`${this.REST_API_SERVER}/${EndpointConst.DASHBOARD}/${this.ALARMS_EXCEL}`,\n {\n clientId,\n campusId,\n dateRange\n } as AlarmsExcelRequest,\n {\n responseType: 'blob' as 'json'\n }).toPromise();\n\n const fileName = `${this.localizeText.transform('Alarms')}-${new DatePipe('en-US').transform(Date.now(), 'M/d/yy')}.xlsx`;\n if (data) {\n ExcelUtils.downloadExcelFile(data as Blob, fileName);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { DatasetData, HorizontalBarChartOptions, MaxValueStrategy } from '../../../shared/components/bar-chart/bar-chart.model';\nimport { NumberFormat } from '../../../shared/models/NumberFormat';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FacilityBenchmarkModel {\n\n constructor(private localizeText: LocalizeTextPipe) {\n }\n\n private readonly startDataset: DatasetData = {\n key: 'start',\n label: this.localizeText.transform('Start'),\n format: NumberFormat.shortCurrencyFormat,\n maxValueStrategy: MaxValueStrategy.maxAll,\n barColor: '#3EB049'\n };\n\n private readonly currentDataset: DatasetData = {\n key: 'current',\n label: this.localizeText.transform('Current'),\n format: NumberFormat.shortCurrencyFormat,\n maxValueStrategy: MaxValueStrategy.maxAll,\n barColor: '#193769'\n };\n\n private readonly industryDataset: DatasetData = {\n key: 'industry',\n label: this.localizeText.transform('Industry'),\n format: NumberFormat.shortCurrencyFormat,\n maxValueStrategy: MaxValueStrategy.maxAll,\n barColor: '#FFCF5C'\n };\n\n private readonly nationalDataset: DatasetData = {\n key: 'national',\n label: this.localizeText.transform('National'),\n format: NumberFormat.shortCurrencyFormat,\n maxValueStrategy: MaxValueStrategy.maxAll,\n barColor: '#A9B4C7'\n };\n\n private readonly regionDataset: DatasetData = {\n key: 'region',\n label: this.localizeText.transform('Region'),\n format: NumberFormat.shortCurrencyFormat,\n maxValueStrategy: MaxValueStrategy.maxAll,\n barColor: '#FFA26B'\n };\n\n private readonly stateDataset: DatasetData = {\n key: 'state',\n label: this.localizeText.transform('State'),\n format: NumberFormat.shortCurrencyFormat,\n maxValueStrategy: MaxValueStrategy.maxAll,\n barColor: '#FFCF5C'\n };\n\n public euiChartOptions: HorizontalBarChartOptions = {\n chartTitle: this.localizeText.transform('EUI (Energy Use Intensity = Energy per sq. ft. per Year)'),\n maxHeight: 650,\n datasets: [\n {\n ...this.startDataset,\n format: NumberFormat.integerNumberFormat\n },\n {\n ...this.currentDataset,\n format: NumberFormat.integerNumberFormat\n },\n {\n ...this.industryDataset,\n format: NumberFormat.integerNumberFormat\n }\n ]\n };\n\n public costPerBedChartOptions: HorizontalBarChartOptions = {\n chartTitle: this.localizeText.transform('Annual Cost per Bed'),\n maxHeight: 930,\n datasets: [\n this.startDataset,\n this.currentDataset,\n this.nationalDataset,\n this.regionDataset,\n this.stateDataset\n ]\n };\n\n public costPerSqftChartOptions: HorizontalBarChartOptions = {\n chartTitle: this.localizeText.transform('Annual Cost per Square Foot'),\n maxHeight: 930,\n datasets: [\n this.startDataset,\n this.currentDataset,\n this.nationalDataset,\n this.regionDataset,\n this.industryDataset\n ]\n };\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalStorageService {\n public set(key: string, value: string): void {\n localStorage.setItem(key, value);\n }\n\n public get(key: string): string | null {\n return localStorage.getItem(key);\n }\n\n public remove(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { UtilityBenchmarkData } from '../../../models/UtilityBenchmarkData';\nimport { BarChartData } from '../../../shared/components/bar-chart/bar-chart.model';\nimport { UtilityBenchmarkModel } from './utility-benchmarks.model';\n\n@Component({\n selector: 'br-utility-benchmarks',\n templateUrl: './utility-benchmarks.component.html',\n styleUrls: ['./utility-benchmarks.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UtilityBenchmarksComponent implements OnChanges {\n\n @Input()\n public data: UtilityBenchmarkData[] = [];\n\n public usageVsCostElectricityData: BarChartData | null = null;\n public kwhRateVsBenchmarksData: BarChartData | null = null;\n public usageVsCostGasData: BarChartData | null = null;\n public mcfRateVsBenchmarksData: BarChartData | null = null;\n\n constructor(public readonly model: UtilityBenchmarkModel) { }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.data && this.data) {\n this.setChartsData(this.data);\n }\n }\n\n private setChartsData(data: UtilityBenchmarkData[]): void {\n this.usageVsCostElectricityData = this.createUsageVsCostElData(data);\n this.kwhRateVsBenchmarksData = this.createKwhRateVsBenchmarksData(data);\n this.usageVsCostGasData = this.createUsageVsCostNgData(data);\n this.mcfRateVsBenchmarksData = this.createMcfRateVsBenchmarksData(data);\n }\n\n private createUsageVsCostElData(data: UtilityBenchmarkData[]): BarChartData {\n return data.reduce((barChartData: BarChartData, curr: UtilityBenchmarkData) => {\n barChartData.titles.push(this.model.UsageVsCostTitle);\n barChartData.values.percentOfUsage.push(curr.electricityAnalysis.percentOfUsage);\n barChartData.values.percentOfCost.push(curr.electricityAnalysis.percentOfCost);\n return barChartData;\n }, this.emptyUsageVsCostData);\n }\n\n private createUsageVsCostNgData(data: UtilityBenchmarkData[]): BarChartData {\n return data.reduce((barChartData: BarChartData, curr: UtilityBenchmarkData) => {\n barChartData.titles.push(this.model.UsageVsCostTitle);\n barChartData.values.percentOfUsage.push(curr.gasAnalysis.percentOfUsage);\n barChartData.values.percentOfCost.push(curr.gasAnalysis.percentOfCost);\n return barChartData;\n }, this.emptyUsageVsCostData);\n }\n\n private createKwhRateVsBenchmarksData(data: UtilityBenchmarkData[]): BarChartData {\n return data.reduce((barChartData: BarChartData, curr: UtilityBenchmarkData) => {\n barChartData.titles.push(this.model.KwhRateVsBenchmarksTitle);\n barChartData.values.start.push(curr.electricityAnalysis.start);\n barChartData.values.current.push(curr.electricityAnalysis.current);\n barChartData.values.industry.push(curr.electricityAnalysis.industry);\n return barChartData;\n }, this.emptyRateVsBenchmarksData);\n }\n\n private createMcfRateVsBenchmarksData(data: UtilityBenchmarkData[]): BarChartData {\n return data.reduce((barChartData: BarChartData, curr: UtilityBenchmarkData) => {\n barChartData.titles.push(this.model.MCFRateVsBenchmarksTitle);\n barChartData.values.start.push(curr.gasAnalysis.start);\n barChartData.values.current.push(curr.gasAnalysis.current);\n barChartData.values.industry.push(curr.gasAnalysis.industry);\n return barChartData;\n }, this.emptyRateVsBenchmarksData);\n }\n\n private get emptyRateVsBenchmarksData(): BarChartData {\n return {\n titles: [],\n values: {\n start: [],\n current: [],\n industry: []\n }\n };\n }\n\n private get emptyUsageVsCostData(): BarChartData {\n return {\n titles: [],\n values: {\n percentOfUsage: [],\n percentOfCost: []\n }\n };\n }\n}\n","
{{ 'Utility Benchmarks' | localizeText }}
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { DateRange } from '@angular/material/datepicker';\nimport { Observable, of } from 'rxjs';\nimport { environment } from '../../../environments/environment';\nimport { BuildingData } from '../../models/BuildingData';\nimport { CampusData } from '../../models/CampusData';\nimport { ClientDateRange } from '../../models/ClientDateRange';\nimport { IBuildingSpreadsheetService } from '../interfaces/building-spreadsheet.interface';\nimport { EndpointConst } from './endpoint-const';\n\n@Injectable()\nexport class BuildingSpreadsheetRealService implements IBuildingSpreadsheetService {\n\n private REST_API_SERVER = environment.apiUrl;\n private readonly BUILDING_SPREADSHEET = 'buildingSpreadsheet';\n private readonly CAMPUS_SPREADSHEET = 'campusSpreadsheet';\n\n constructor(private httpClient: HttpClient) { }\n\n public getBuildingSpredsheetData(clientId: number, campusId: number, dateRange: DateRange): Observable {\n const data = this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.DASHBOARD}/${this.BUILDING_SPREADSHEET}`,\n { \n clientId,\n campusId,\n dateStart: dateRange.start,\n dateEnd: dateRange.end\n } as ClientDateRange);\n return data;\n }\n\n public getCampusSpredsheetData(clientId: number, dateRange: DateRange): Observable {\n const data = this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.DASHBOARD}/${this.CAMPUS_SPREADSHEET}`,\n {\n clientId,\n dateStart: dateRange.start,\n dateEnd: dateRange.end\n } as ClientDateRange);\n return data;\n }\n}\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, retry } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HttpErrorInterceptor implements HttpInterceptor {\n public intercept(request: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(request)\n .pipe(\n catchError((errorResponse: HttpErrorResponse) => {\n let errorMessage = '';\n if (errorResponse.error instanceof ErrorEvent) {\n // client side error\n errorMessage = `${errorResponse.error.message}`;\n } else {\n // server side error\n errorMessage = `${errorResponse.error || errorResponse.message}`;\n }\n return throwError(errorMessage);\n })\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\nimport { BuildingEvent } from 'src/app/components/building-events/building-event.model';\nimport { environment } from '../../../environments/environment';\nimport { Equipment, EquipmentsEvents, NoteItem, SaveEquipmentResult } from '../../models/EquipmentsEvents';\nimport { EndpointConst } from './endpoint-const';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BuildingAssetListService {\n \n private readonly REST_API_SERVER = environment.apiUrl;\n private readonly EQUIPMENTS = 'equipments';\n private readonly EQUIPMENT = 'equipment';\n private readonly DELETE_EQUIPMENT = 'delete-equipment';\n private readonly EQUIPMENT_EVENTS = 'equipment-events';\n private readonly NOTES = 'notes';\n\n constructor(private httpClient: HttpClient) { }\n\n public getEquipmentsEvents(buildingId: number): Observable {\n return this.httpClient.get(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${buildingId}/${this.EQUIPMENTS}`\n );\n }\n\n public saveEquipment(buildingId: number, equipment: Equipment): Observable {\n return this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${buildingId}/${this.EQUIPMENT}`, equipment\n );\n }\n\n public deleteEquipment(buildingId: number, equipment: Equipment): Observable {\n return this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${buildingId}/${this.DELETE_EQUIPMENT}`, equipment\n );\n }\n\n public saveEvents(buildingId: number, events: BuildingEvent[]): Observable {\n return this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${buildingId}/${this.EQUIPMENT_EVENTS}`, events\n );\n }\n\n public saveNotes(equipment: Equipment): Observable {\n return this.httpClient.post(\n `${this.REST_API_SERVER}/${EndpointConst.BUILDING}/${this.NOTES}`, equipment\n );\n }\n}\n","import { Component, EventEmitter, OnInit, Output, Input, Inject, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { switchMap } from 'rxjs/operators';\nimport { CLIENT_SUMMARY_SERVICE, IClientSummaryService } from '../../services/interfaces/client-summary.interface';\nimport { BaseComponent } from '../../shared/components/base/base.component';\nimport { ClientSummaryDateService, DateSelectorService } from '../date-selector/date-selector.service';\nimport { CampusSummaryModel, DetailsData } from './campus-summary.model';\nimport { ClientSummaryData } from '../../models/ClientSummaryData';\nimport { combineLatest, Observable } from 'rxjs';\nimport { SelectedClientService } from '../../services/selected-client.service';\nimport { GoLiveDateStorage } from '../../services/go-live-date-storage.service';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { ClientSummaryAdditionalData } from 'src/app/models/ClientSummaryAdditionalData';\nimport { CampusSummaryData } from 'src/app/models/CampusSummaryData';\n\n@Component({\n selector: 'br-campus-summary',\n templateUrl: './campus-summary.component.html',\n styleUrls: ['./campus-summary.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [CampusSummaryModel,\n {\n provide: DateSelectorService,\n useExisting: ClientSummaryDateService\n }\n ]\n})\nexport class CampusSummaryComponent extends BaseComponent implements OnInit {\n\n @Output()\n public summaryChanged = new EventEmitter();\n public ROWS_COUNT = 2;\n\n public columnsCount = 5;\n public campusName = '';\n public savingsData = this.model.defaultSavingsData;\n public detailsData = this.model.defaultDetailsData;\n public consumptionDetailsData = this.model.defaultConsumptionDetailsData;\n public overviewData = this.model.defaultOverviewData;\n public rangeSavingsTitle = this.model.rangeSavingsTitle;\n public rangeSavingsDescriptions = this.model.rangeSavingsDescriptions;\n public dateRangeChanged$ = this.dateFilterService.dateRangeChanged$;\n public liveDate$ = this.clientGoLiveDateService.clientGoLiveDate$;\n public isSpendView = true;\n\n constructor(private readonly model: CampusSummaryModel,\n private readonly dateFilterService: DateSelectorService,\n private readonly selectedClientService: SelectedClientService,\n @Inject(CLIENT_SUMMARY_SERVICE) private readonly clientSummaryService: IClientSummaryService,\n private readonly clientGoLiveDateService: GoLiveDateStorage,\n private changeDetectorRef: ChangeDetectorRef,\n private localizeText: LocalizeTextPipe) {\n super();\n }\n\n public ngOnInit(): void {\n this.addSubscription(\n combineLatest([\n this.selectedClientService.selectedClientId$,\n this.selectedClientService.selectedCampusId$,\n this.dateFilterService.dateRangeChanged$,\n ]).pipe(\n switchMap(([clientId, campusId, dateRange]) => this.clientSummaryService.getCampusSummaryData(clientId, campusId, dateRange))\n ).subscribe((data: CampusSummaryData) => {\n this.campusName = data.campusName;\n this.setSavingsValues(data);\n this.setDetailsValues(data);\n this.columnsCount = this.getColumsCount();\n this.changeDetectorRef.detectChanges();\n })\n );\n\n this.addSubscription(\n combineLatest([\n this.selectedClientService.selectedClientId$,\n this.dateFilterService.dateRangeChanged$,\n ]).pipe(\n switchMap(([clientId, dateRange]) => this.clientSummaryService.getClientSummaryAdditionalData(clientId, dateRange))\n ).subscribe((data: ClientSummaryAdditionalData) => { \n this.setAdditionalDetailsValues(data); \n this.changeDetectorRef.detectChanges();\n })\n );\n\n this.addSubscription(\n this.dateFilterService.selectedIndexChanged$.subscribe(index => {\n this.savingsData.rangeToDateSavings.title = this.rangeSavingsTitle[index];\n this.savingsData.rangeToDateSavings.description = this.rangeSavingsDescriptions[index];\n })\n );\n}\n\n public isDetailsItemVisible(data: DetailsData): boolean { \n if (data.description === this.localizeText.transform('Total Beds') && data.value === 0){\n return false;\n }\n return !(data.value === undefined && data.hideIfUndefined) && !data.hide;\n }\n\n public onChange(advanced: boolean): void {\n this.summaryChanged.emit(advanced);\n }\n\n public onSpendViewChange(isSpendView: boolean): void {\n this.isSpendView = isSpendView;\n }\n\n private getColumsCount(): number {\n const itemsCount = this.getDetailsVisibleItemsCount();\n return Math.ceil(itemsCount / this.ROWS_COUNT);\n }\n\n private getDetailsVisibleItemsCount(): number {\n return Object.keys(this.detailsData)\n .map(key => this.detailsData[key])\n .filter(data => this.isDetailsItemVisible(data)).length;\n }\n\n private setSavingsValues(data: CampusSummaryData): void {\n this.savingsData.rangeToDateSavings.value = data.rangeSavings;\n this.savingsData.rangeToDateSavings.additionalValue = Math.round((data.rangeSavings / data.totalEnergySpend * 100) * 100) / 100;\n this.savingsData.totalSavings.value = data.totalSavings;\n }\n\n private setDetailsValues(data: CampusSummaryData): void {\n this.overviewData.buildingCount.value = data.buildingsCount;\n this.detailsData.electricityCost.value = data.electricityCost;\n this.detailsData.electricityCost.hide = !data.hasElectricity;\n this.detailsData.electricitySavings.value = data.rangeElectricitySavings;\n this.detailsData.electricitySavings.hide = !data.hasElectricity;\n this.overviewData.totalBeds.value = data.bedsCount;\n this.overviewData.totalSquareFootage.value = data.totalSqFt;\n this.detailsData.totalEnergySpend.value = data.totalEnergySpend;\n this.detailsData.naturalGasCost.value = data.naturalGasCost;\n this.detailsData.naturalGasCost.hide = !data.hasGas;\n this.detailsData.naturalGasSavings.value = data.rangeNaturalGasSavings;\n this.detailsData.naturalGasSavings.hide = !data.hasGas;\n this.detailsData.co2Emission.value = data.carbonEmission;\n this.detailsData.co2Reduced.value = data.carbonReduced;\n this.detailsData.waterSpend.value = data.waterCost;\n this.detailsData.waterSpend.hide = !data.hasWater;\n this.detailsData.waterUsage.value = data.rangeWaterSpent;\n this.detailsData.waterUsage.hide = !data.hasWater;\n\n this.consumptionDetailsData.electricConsumption.value = data.electricConsumption;\n this.consumptionDetailsData.electricConsumption.hide = !data.hasElectricity;\n this.consumptionDetailsData.electricSavingVolume.value = data.electricSavingVolume;\n this.consumptionDetailsData.electricSavingVolume.hide = !data.hasElectricity;\n this.consumptionDetailsData.naturalGasConsumption.value = data.gasConsumption;\n this.consumptionDetailsData.naturalGasConsumption.unitOfMeasure = data.gasMeasure && data.gasMeasure !='' ? ` (${data.gasMeasure})` : \"\";\n this.consumptionDetailsData.naturalGasConsumption.hide = !data.hasGas;\n this.consumptionDetailsData.naturalGasSavings.value = data.gasSavingsVolume;\n this.consumptionDetailsData.naturalGasSavings.unitOfMeasure = data.gasMeasure && data.gasMeasure !='' ? ` (${data.gasMeasure})` : \"\";\n this.consumptionDetailsData.naturalGasSavings.hide = !data.hasGas;\n this.consumptionDetailsData.co2Emission.value = data.carbonEmission;\n this.consumptionDetailsData.co2Reduced.value = data.carbonReduced;\n this.consumptionDetailsData.waterSpend.hide = !data.hasWater;\n this.consumptionDetailsData.waterUsage.value = data.rangeWaterSpent;\n this.consumptionDetailsData.waterUsage.hide = !data.hasWater;\n }\n\n private setAdditionalDetailsValues(data: ClientSummaryAdditionalData): void {\n if (this.detailsData.eui){\n this.detailsData.eui.value = data.eui;\n } \n }\n}\n","{{ campusName }}\n\n
\n
{{ 'Overview' | localizeText }}
\n
\n
\n
{{ data.value | valueFormat: data.format }}
\n {{ data.description }}\n
\n
\n \n
\n
\n \n \n
\n
{{ data.value | valueFormat: data.format }}
\n
\n
\n {{ data.value | valueFormat: data.format }}
({{ data.additionalValue }} %)
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n {{ data.value | valueFormat: data.format }}\n {{ data.description }}\n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n {{ data.value | valueFormat: data.format }}\n {{ data.description }}{{data.unitOfMeasure}}\n
\n
\n
\n
\n
\n","import { DateRange } from '@angular/material/datepicker';\nimport { Observable } from 'rxjs';\nimport { AlertsData } from 'src/app/models/AlertsData';\nimport { CampusSummaryData } from 'src/app/models/CampusSummaryData';\nimport { ClientSummaryAdditionalData } from 'src/app/models/ClientSummaryAdditionalData';\nimport { ClientSummaryData } from '../../models/ClientSummaryData';\n\nexport const CLIENT_SUMMARY_SERVICE = 'CLIENT_SUMMARY_SERVICE';\nexport interface IClientSummaryService {\n getClientSummaryData(clientId: number, dateRange: DateRange): Observable;\n getClientSummaryAdditionalData(clientId: number, dateRange: DateRange): Observable;\n\n getCampusSummaryData(clientId: number, campusId: number, dateRange: DateRange): Observable;\n getCampusSummaryAdditionalData(campusId: number, dateRange: DateRange): Observable;\n\n getAlerts(clientId: number, campusId: number, dateRange: DateRange): Observable;\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { FacilityBenchmarkData } from '../../models/FacilityBenchmarkData';\nimport { BenchmarksService } from '../../services/real-services/benchmarks.service';\nimport { BaseComponent } from '../../shared/components/base/base.component';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Utils } from '../../shared/utils';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { SelectedClientService } from '../../services/selected-client.service';\nimport { NOT_FOUND_ROUTE } from '../../routing-const';\n\n@Component({\n selector: 'br-main-dashboard',\n templateUrl: './main-dashboard.component.html',\n styleUrls: ['./main-dashboard.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MainDashboardComponent extends BaseComponent implements OnInit {\n\n @ViewChild('anchor')\n public anchor: ElementRef | null = null;\n\n public isShowCampus = true;\n\n public advanced$ = new BehaviorSubject(false);\n public alarm$ = new BehaviorSubject(false);\n public facilityBenchmarksData$ = new Observable();\n constructor(\n private readonly selectedClientService: SelectedClientService,\n private readonly benchmarksService: BenchmarksService,\n private readonly activateRoute: ActivatedRoute,\n private readonly router: Router,\n private changeDetectorRef: ChangeDetectorRef,\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.selectedClientService.campusId = undefined;\n\n this.facilityBenchmarksData$ = this.selectedClientService.selectedClientId$.pipe(\n switchMap(clientId => this.benchmarksService.getClientFacilityBenchmarks(clientId, null))\n );\n\n this.addSubscription(\n this.activateRoute.params.pipe(\n map(params => Utils.tryGetNumberFromAny(params.clientId))\n ).subscribe(clientId => {\n if (clientId !== undefined) {\n this.selectedClientService.clientId = clientId;\n } else {\n //!!todo this.router.navigate([NOT_FOUND_ROUTE]);\n }\n })\n );\n\n this.addSubscription(\n this.advanced$.subscribe((value) => {\n if (value) {\n setTimeout(() => this.scrollToAnchor(), 0);\n }\n })\n );\n\n this.addSubscription(\n this.alarm$.subscribe((value) => {\n if (value) {\n setTimeout(() => this.scrollToAnchor(), 0);\n }\n })\n );\n\n this.selectedClientService.currentLocalization$.subscribe(localization => {\n if (localization) {\n this.changeDetectorRef.detectChanges(); \n }\n });\n }\n\n public onChanged(advanced: boolean): void {\n this.advanced$.next(advanced);\n }\n\n public onAlarmChanged(isAlarmView: boolean): void {\n this.alarm$.next(isAlarmView);\n }\n\n public onShowCampusChanged(isShowCampus: boolean): void {\n this.isShowCampus = isShowCampus;\n }\n\n private scrollToAnchor(): void {\n this.anchor?.nativeElement?.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' });\n }\n}\n","\n\n\n
\n\n\n\n","import { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { share, shareReplay, switchMap } from 'rxjs/operators';\nimport { GoLiveDateInfo } from '../shared/models/GoLiveDateInfo';\nimport { GO_LIVE_DATE_SERVICE, IGoLiveDateService } from './interfaces/go-live-date.interface';\nimport { SelectedBuildingService } from './selected-building.service';\nimport { SelectedClientService } from './selected-client.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GoLiveDateStorage {\n public clientGoLiveDate$: Observable;\n public buildingGoLiveDate$: Observable;\n\n constructor(private readonly selectedClientService: SelectedClientService,\n private readonly selectedBuildingService: SelectedBuildingService,\n @Inject(GO_LIVE_DATE_SERVICE) private readonly goLiveDateService: IGoLiveDateService) {\n\n this.clientGoLiveDate$ = this.selectedClientService.selectedClientId$.pipe(\n switchMap(clientId => this.goLiveDateService.getGoLiveDate(clientId)),\n shareReplay()\n );\n\n this.buildingGoLiveDate$ = this.selectedBuildingService.selectedBuildingId$.pipe(\n switchMap(buildingId => this.goLiveDateService.getBuildingGoLiveDate(buildingId)),\n shareReplay()\n );\n }\n}\n","import { DateRange } from '@angular/material/datepicker';\nimport { Observable } from 'rxjs';\nimport { SaveEquipmentResult } from 'src/app/models/EquipmentsEvents';\nimport { PrimaryFunction } from 'src/app/models/FacilityBenchmarkData';\nimport { BuildingContact, BuildingInfo, BuildingInfoAdditional } from '../../models/BuildingInfo';\n\nexport const BUILDING_SUMMARY_SERVICE = 'BUILDING_SUMMARY_SERVICE';\nexport interface IBuildingSummaryService {\n getBuildingSummary(buildingId: number, dateRange: DateRange): Observable;\n getBuildingSummaryAdditional(buildingId: number, dateRange: DateRange): Observable;\n getCampusSummaryAdditional(campusId: number, dateRange: DateRange): Observable;\n getBuildingTags(buildingId: number): Observable;\n saveBuildingTags(buildingId: number, tags: string[]): Observable;\n getPrimaryFunction(buildingId: number): Observable;\n getPrimaryFunctions(): Observable;\n savePrimaryFunction(buildingId: number, primaryFunctionId: number): Observable;\n getBuildingContacts(buildingId: number): Observable;\n saveBuildingContact(buildingId: number, buildingContact: BuildingContact): Observable;\n deleteBuildingContact(buildingId: number, buildingContact: BuildingContact): Observable;\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { BaseComponent } from '../../shared/components/base/base.component';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { SelectedClientService } from '../../services/selected-client.service';\nimport { LanguageInfo, LocalizationInfo, TranslationItem } from 'src/app/models/AuthModel';\nimport { AdminService } from 'src/app/services/admin.service';\nimport { CLIENT_SELECT_ROUTE } from 'src/app/routing-const';\n\n@Component({\n templateUrl: './admin.component.html',\n styleUrls: ['./admin.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AdminComponent extends BaseComponent implements OnInit {\n\n public localization: LocalizationInfo;\n public currentLanguageCode: string;\n public currentLanguageInfo: LanguageInfo;\n public searchFilter: string;\n public saveProgressMessage: string;\n public isSaveInProgress: boolean = false;\n\n constructor(\n private readonly selectedClientService: SelectedClientService,\n private readonly router: Router,\n private readonly adminService: AdminService,\n private changeDetectorRef: ChangeDetectorRef,\n private readonly activateRoute: ActivatedRoute\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.selectedClientService.currentLocalization$.subscribe(localization => {\n this.localization = localization;\n this.currentLanguageCode = localization.currentLanguage.code;\n this.onLanguageChanged(null);\n });\n }\n\n public onLanguageChanged(ev: any): void {\n var selectedLanguage = this.localization.languages.filter(p => p.code == this.currentLanguageCode)[0];\n\n this.addSubscription(\n this.adminService.getLanguageInfo(selectedLanguage.code)\n .subscribe((res) => {\n this.currentLanguageInfo = res;\n this.changeDetectorRef.detectChanges();\n })\n );\n }\n\n public addClicked() {\n this.currentLanguageInfo.translationItems.unshift({ sourceText: 'new', text: '', isNew: true });\n }\n\n public saveClicked() {\n this.saveProgressMessage = \"Saving in progress. It can take several minutes. Please wait.\"\n this.isSaveInProgress = true;\n this.addSubscription(\n this.adminService.saveLanguageInfo(this.currentLanguageInfo)\n .subscribe((res) => {\n this.onLanguageChanged(null);\n if (res.isSuccess) {\n this.saveProgressMessage = \"Saved successfully.\"\n }\n else {\n this.saveProgressMessage = \"Something went wrong. Please try again later.\"\n }\n this.isSaveInProgress = false;\n setTimeout(() => { this.saveProgressMessage = \"\"; this.changeDetectorRef.detectChanges(); }, 3000);\n })\n );\n }\n\n public backToOverview(): void {\n this.router.navigate([`${CLIENT_SELECT_ROUTE}`]);\n }\n}\n","\n

Manage languages

\n\n {{ language.name === language.nativeName ? language.name : language.name + ' (' + language.nativeName + ')' }} \n\n\n Search\n \n\n
\n \n \n
\n{{ saveProgressMessage }}\n
\n \n \n \n \n \n \n \n \n \n \n \n
KeyValue
\n {{ translationItem.sourceText }}\n \n \n \n \n \n \n \n \n \n
\n
","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { combineLatest, Observable, of } from 'rxjs';\nimport { switchMap, take } from 'rxjs/operators';\nimport { HorizontalBarChartOptions, BarChartData, MaxValueStrategy } from '../../shared/components/bar-chart/bar-chart.model';\nimport { NumberFormat } from '../../shared/models/NumberFormat';\nimport { DateSelectorService } from '../date-selector/date-selector.service';\nimport { BaseComponent } from 'src/app/shared/components/base/base.component';\nimport { BuildingEventModalComponent } from '../building-event-modal/building-event-modal.component';\nimport { EVENT_SNAPSHOT_SERVICE, IEventSnapshotService } from 'src/app/services/interfaces/event-snapshot.interface';\nimport { EventsByType } from './building-event.model';\nimport { SelectedBuildingService } from '../../services/selected-building.service';\nimport { GoLiveDateStorage } from '../../services/go-live-date-storage.service';\nimport { SelectedClientService } from 'src/app/services/selected-client.service';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { GoLiveDateInfo } from 'src/app/shared/models/GoLiveDateInfo';\n\n@Component({\n selector: 'br-building-events',\n templateUrl: './building-events.component.html',\n styleUrls: ['./building-events.component.scss'],\n providers: [DateSelectorService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BuildingEventsComponent extends BaseComponent implements OnInit {\n\n @Output() \n public onRegetRequested = new EventEmitter();\n\n public buildingEvents: EventsByType[] = [];\n\n public isEditMode: boolean = false;\n\n public eventsByTypeChartOptions: HorizontalBarChartOptions = {\n chartTitle: this.localizeText.transform('Event Volume by Building'),\n datasets: [\n {\n key: 'lb1',\n label: this.localizeText.transform('Events'),\n format: NumberFormat.shortNumberFormat,\n maxValueStrategy: MaxValueStrategy.maxDataset\n }\n ],\n barFunction: {\n clickableText: this.localizeText.transform('View Events'),\n clickFunction: (param) => this.openDetails(param)\n }\n };\n\n public eventsByTypeData!: BarChartData;\n public buildingGoLiveDate: Date;\n\n constructor(\n private readonly selectedBuildingService: SelectedBuildingService,\n private readonly dateFilterService: DateSelectorService,\n @Inject(EVENT_SNAPSHOT_SERVICE) private readonly eventSnapshotService: IEventSnapshotService,\n private readonly goLiveDateStorage: GoLiveDateStorage,\n private dialog: MatDialog,\n private selectedClientService: SelectedClientService,\n private changeDetectorRef: ChangeDetectorRef,\n private localizeText: LocalizeTextPipe\n ) {\n super();\n this.goLiveDateStorage.buildingGoLiveDate$;\n this.goLiveDateStorage.buildingGoLiveDate$.subscribe(p => {\n this.buildingGoLiveDate = p.electricityGoLiveDate;\n });\n }\n\n ngOnInit(): void { \n\n this.getEvents();\n\n this.selectedClientService.currentIsEditMode$.subscribe(isEditMode => {\n this.isEditMode = isEditMode;\n this.changeDetectorRef.detectChanges();\n });\n }\n\n public openDetails(filter: string | null): void { \n const filteredData = filter != null ? this.buildingEvents.find(x => x.eventsType === filter) : { eventsType: '', events: []};\n if (filteredData !== undefined) {\n const eventsModal =this.dialog.open(BuildingEventModalComponent, {\n panelClass: 'app-full-bleed-dialog',\n width: '88.9vw',\n data: filteredData,\n maxWidth: '88.9vw',\n minHeight: '600px'\n });\n\n eventsModal.afterClosed().subscribe(result => {\n if (result === 'reget') {\n this.onRegetRequested.emit(true);\n this.getEvents();\n }\n });\n }\n }\n\n public getEvents(): void {\n this.addSubscription(\n combineLatest([\n this.selectedBuildingService.selectedBuildingId$,\n this.dateFilterService.dateRangeChanged$\n ]).pipe(\n switchMap(([buildingId, dateRange]) => this.eventSnapshotService.getBuildingEventVolumeByType(buildingId, dateRange))\n ).subscribe((data: EventsByType[]) => {\n this.buildingEvents = data;\n this.eventsByTypeData = {\n titles: this.buildingEvents.map(x => x.eventsType),\n values: {\n lb1: this.buildingEvents.map(x => x.events.length)\n }\n };\n\n this.changeDetectorRef.detectChanges();\n })\n );\n }\n}\n","
\n
{{ 'Building Events by Type' | localizeText }}
\n \n
\n
\n \n \n \n \n
\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './authentication/login/login.component';\nimport { BuildingPageComponent } from './pages/building-page/building-page.component';\nimport { MainDashboardComponent } from './pages/main-dashboard/main-dashboard.component';\nimport { ClientSelectComponent } from './pages/client-select/client-select.component';\nimport { PageNotFoundComponent } from './pages/page-not-found/page-not-found.component';\nimport { BUILDING_ROUTE, CAMPUS_ROUTE, DASHBOARD_ROUTE, LOGIN_ROUTE, CLIENT_SELECT_ROUTE, NOT_FOUND_ROUTE, ADMIN_ROUTE } from './routing-const';\nimport { AuthGuard } from './shared/guards/auth.guard';\nimport { AdminComponent } from './pages/admin/admin.component';\nimport { CampusPageComponent } from './pages/campus-page/campus-page.component';\n\nconst routes: Routes = [\n { path: \"\", component: LoginComponent },\n { path: LOGIN_ROUTE, component: LoginComponent },\n { path: ADMIN_ROUTE, component: AdminComponent },\n { path: CLIENT_SELECT_ROUTE, component: ClientSelectComponent },\n {\n path: DASHBOARD_ROUTE,\n canActivate: [AuthGuard],\n children: [\n {\n path: ':clientId',\n children: [\n {\n path: '',\n component: MainDashboardComponent\n },\n {\n path: `${BUILDING_ROUTE}/:buildingId`,\n component: BuildingPageComponent\n },\n {\n path: `${CAMPUS_ROUTE}/:campusId`,\n component: CampusPageComponent\n }\n ]\n }\n ]\n },\n //!!todo { path: NOT_FOUND_ROUTE, component: PageNotFoundComponent },\n //!!todo { path: '**', redirectTo: NOT_FOUND_ROUTE }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { anchorScrolling: 'enabled', scrollPositionRestoration: 'enabled' })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Injectable } from '@angular/core';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { DonutChartOptions } from '../../shared/components/donut-chart/donut-chart.component';\nimport { NumberFormat } from '../../shared/models/NumberFormat';\n\nexport class SavingsData {\n title = '';\n description = '';\n value?: number;\n additionalValue?: number;\n format?: NumberFormat;\n}\n\nexport class DetailsData {\n description = '';\n icon = '';\n value?: number;\n hideIfUndefined?: boolean;\n hide?: boolean;\n format?: NumberFormat;\n isGreen?: boolean = false;\n unitOfMeasure? = '';\n}\n\nexport interface IconDataAdaptive {\n name?: string;\n width?: string;\n height?: string;\n}\n\nexport interface IconData {\n name?: string;\n width?: number;\n height?: number;\n color?: string;\n}\n\nexport class ScoreData {\n title?: string;\n value?: number;\n chartOptions?: DonutChartOptions;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BuildingModel {\n\n constructor(private localizeText: LocalizeTextPipe) {\n }\n\n public rangeSavingsTitle = [\n this.localizeText.transform('Yesterday Savings'),\n this.localizeText.transform('Last 7 Day Savings'),\n this.localizeText.transform('Last 30 Day Savings'),\n this.localizeText.transform('Last 90 Day Savings'),\n this.localizeText.transform('Last 365 Day Savings'),\n this.localizeText.transform('\"Year to Date\" Savings'),\n this.localizeText.transform('Custom Range Savings')\n ];\n\n public rangeSavingsDescriptions = [\n this.localizeText.transform('Yesterday Savings'),\n this.localizeText.transform('Savings of This Week'),\n this.localizeText.transform('Savings of This Month'),\n this.localizeText.transform('Savings of This Quarter'),\n this.localizeText.transform('Savings of This Year'),\n this.localizeText.transform('\"Year to Date\" Savings'),\n this.localizeText.transform('Custom Range Savings')\n ];\n\n public defaultScoreData: Record = {\n efficiencyScore: {\n title: this.localizeText.transform('Energy Efficiency Score'),\n chartOptions: {\n id: 'efficiencyScore',\n innerRadius: 100,\n outerRadius: 113,\n startAngle: Math.PI / 2,\n relativeSize: '15.7vw',\n cornerRadius: 10,\n arcColor: '#193769',\n innerColor: '#F6F8FD'\n }\n },\n starScore: {\n title: this.localizeText.transform('Energy Star Score'),\n chartOptions: {\n id: 'starScore',\n innerRadius: 100,\n outerRadius: 113,\n startAngle: Math.PI / 2,\n relativeSize: '15.7vw',\n cornerRadius: 10,\n arcColor: '#3EB049',\n innerColor: '#F6FDF9',\n icon: {\n name: 'star',\n width: '2vw',\n height: '2vw'\n }\n }\n }\n };\n\n public defaultSavingsData: Record = {\n totalSavings: {\n title: this.localizeText.transform('Total Savings'),\n description: this.localizeText.transform('Savings of All Time'),\n format: NumberFormat.integerCurrencyFormat\n },\n rangeToDateSavings: {\n title: ' ' + this.localizeText.transform('Savings'),\n description: this.localizeText.transform('Savings of This Year'),\n format: NumberFormat.integerCurrencyFormat\n }\n };\n\n public defaultOverviewData: Record = {\n buildingCount: {\n icon: 'building',\n description: this.localizeText.transform('Building Count'),\n isGreen: false,\n },\n totalBeds: {\n icon: 'bed',\n description: this.localizeText.transform('Total Beds'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat\n }, \n totalSquareFootage: {\n icon: 'ruler',\n description: this.localizeText.transform('Total sq. ft.'),\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n }, \n };\n\n public defaultDetailsData: Record = {\n \n totalEnergySpend: {\n icon: 'lightbulb',\n description: this.localizeText.transform('Total Energy Spend'),\n format: NumberFormat.shortCurrencyFormat\n },\n electricityCost: {\n icon: 'plug',\n description: this.localizeText.transform('Electricity Spend'),\n format: NumberFormat.shortCurrencyFormat\n },\n naturalGasCost: {\n icon: 'fire-alt',\n description: this.localizeText.transform('Natural Gas Spend'),\n format: NumberFormat.shortCurrencyFormat\n },\n co2Emission: {\n icon: 'fire',\n description: this.localizeText.transform('lbs CO2 Emissions'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat\n }, \n waterSpend: {\n icon: 'water',\n description: this.localizeText.transform('Water Spend'),\n hideIfUndefined: true,\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n }, \n emptyBlock: {\n icon: '',\n description: '',\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n }, \n electricitySavings: {\n icon: 'plug',\n description: this.localizeText.transform('Electricity Savings'),\n format: NumberFormat.shortCurrencyFormat,\n isGreen: true,\n }, \n naturalGasSavings: {\n icon: 'fire-alt',\n description: this.localizeText.transform('Natural Gas Savings'),\n format: NumberFormat.shortCurrencyFormat,\n isGreen: true,\n }, \n co2Reduced: {\n icon: 'fire',\n description: this.localizeText.transform('lbs CO2 Reduced'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat\n }, \n waterUsage: {\n icon: 'water',\n description: this.localizeText.transform('Water Usage CCF'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n }, \n };\n\n public consumptionDefaultDetailsData: Record = { \n emptyBlockA: {\n icon: '',\n description: '',\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n },\n electricConsumption: {\n icon: 'plug',\n description: this.localizeText.transform('Electric Consumption'),\n format: NumberFormat.shortNumberFormat,\n unitOfMeasure: ' (kWh)'\n },\n naturalGasConsumption: {\n icon: 'fire-alt',\n description: this.localizeText.transform('Natural Gas Consumption'),\n format: NumberFormat.shortNumberFormat\n },\n co2Emission: {\n icon: 'fire',\n description: this.localizeText.transform('lbs CO2 Emissions'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat\n }, \n emptyBlockH: {\n icon: '',\n description: '',\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n }, \n waterSpend: {\n icon: '',\n description: '',\n format: NumberFormat.shortCurrencyFormat,\n isGreen: false,\n }, \n electricSavingVolume: {\n icon: 'plug',\n description: this.localizeText.transform('Electric Savings'),\n unitOfMeasure: ' (kWh)',\n format: NumberFormat.shortNumberFormat,\n isGreen: true,\n }, \n naturalGasSavings: {\n icon: 'fire-alt',\n description: this.localizeText.transform('Natural Gas Savings'),\n format: NumberFormat.shortNumberFormat,\n isGreen: true,\n }, \n co2Reduced: {\n icon: 'fire',\n description: this.localizeText.transform('lbs CO2 Reduced'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat\n }, \n waterUsage: {\n icon: 'water',\n description: this.localizeText.transform('Water Usage CCF'),\n hideIfUndefined: true,\n format: NumberFormat.shortNumberFormat,\n isGreen: false,\n }, \n };\n}\n","import { Injectable } from '@angular/core';\nimport { DateRange } from '@angular/material/datepicker';\nimport { Observable, of } from 'rxjs';\nimport { BuildingContact, BuildingInfo, BuildingInfoAdditional } from 'src/app/models/BuildingInfo';\nimport { SaveEquipmentResult } from 'src/app/models/EquipmentsEvents';\nimport { PrimaryFunction } from 'src/app/models/FacilityBenchmarkData';\nimport { IBuildingSummaryService } from '../interfaces/building-summary.interface';\n\n@Injectable()\nexport class BuildingSummaryStubService implements IBuildingSummaryService {\n getCampusSummaryAdditional(campusId: number, dateRange: DateRange): Observable {\n throw new Error('Method not implemented.');\n }\n getBuildingContacts(buildingId: number): Observable {\n throw new Error('Method not implemented.');\n }\n saveBuildingContact(buildingId: number, buildingContact: BuildingContact): Observable {\n throw new Error('Method not implemented.');\n }\n deleteBuildingContact(buildingId: number, buildingContact: BuildingContact): Observable {\n throw new Error('Method not implemented.');\n }\n getPrimaryFunction(buildingId: number): Observable {\n throw new Error('Method not implemented.');\n }\n getPrimaryFunctions(): Observable {\n throw new Error('Method not implemented.');\n }\n savePrimaryFunction(buildingId: number, primaryFunctionId: number): Observable {\n throw new Error('Method not implemented.');\n }\n getBuildingTags(buildingId: number): Observable {\n throw new Error('Method not implemented.');\n }\n saveBuildingTags(buildingId: number, tags: string[]): Observable {\n throw new Error('Method not implemented.');\n }\n\n public getBuildingSummary(): Observable {\n return of({\n buildingName: 'Citizens Baptist Medical Center Central',\n temperature: 55,\n rangeNaturalGasSavings: 3313,\n rangeElectricitySavings: 10382,\n electricityDynamics: 'increased',\n gasDynamics: 'decreased',\n totalSavings: 18231,\n eui: 102,\n electricityCostPercent: 76,\n totalSquareFootage: 232545,\n totalEnergySpend: 43654,\n naturalGasCostPercent: 24,\n goLiveDate: new Date(2020, 12, 12)\n } as BuildingInfo);\n }\n\n public getBuildingSummaryAdditional(): Observable {\n return of({\n energyEfficiencyScore: 65,\n energyStarScore: 84,\n } as BuildingInfoAdditional);\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest, Observable } from 'rxjs';\nimport { BaseComponent } from 'src/app/shared/components/base/base.component';\nimport { NumberFormat } from 'src/app/shared/models/NumberFormat';\nimport { BuildingsModel } from '../building-spreadsheet/building-spreadsheet.model';\nimport { DateSelectorService } from '../date-selector/date-selector.service';\nimport { BuildingModel, DetailsData } from './building-info.model';\nimport { BuildingInfo, BuildingInfoAdditional } from '../../models/BuildingInfo';\nimport { switchMap } from 'rxjs/operators';\nimport { BUILDING_SUMMARY_SERVICE, IBuildingSummaryService } from 'src/app/services/interfaces/building-summary.interface';\nimport { SelectedBuildingService } from '../../services/selected-building.service';\nimport { GoLiveDateStorage } from '../../services/go-live-date-storage.service';\nimport { TokenProviderService } from 'src/app/shared/services/token-provider.service';\nimport { environment } from '../../../environments/environment';\nimport { DateRange } from '@angular/material/datepicker';\nimport { LocalizeTextPipe } from 'src/app/shared/pipes/localize-text.pipe';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'br-building-info',\n templateUrl: './building-info.component.html',\n styleUrls: ['./building-info.component.scss', './building-info-secondary.component.scss'],\n providers: [BuildingModel, BuildingsModel, DateSelectorService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BuildingInfoComponent extends BaseComponent implements OnInit {\n\n @Input()\n public isSpendView = true;\n public ROWS_COUNT = 2;\n\n public columnsCount = 5;\n public qmetDashboardLink = environment.qmetDashboardLink;\n public format = NumberFormat;\n public blocks = this.parentModel.defaultInfoBlockData;\n public scoreData = this.model.defaultScoreData;\n public savingsData = this.model.defaultSavingsData;\n public overviewData = this.model.defaultOverviewData;\n public detailsData = this.model.defaultDetailsData;\n public consumptionDetailsData = this.model.consumptionDefaultDetailsData;\n public rangeSavingsTitle = this.model.rangeSavingsTitle;\n public rangeSavingsDescriptions = this.model.rangeSavingsDescriptions;\n public arrowType = this.parentModel.arrowType;\n public info!: BuildingInfo;\n public savingsTitle = '';\n public temperature = 0;\n public buildingName = '';\n public meterNames = '';\n public buildingGoLiveDate$ = this.goLiveDateStorage.buildingGoLiveDate$;\n public electricityBuildingGoLiveDate: Date;\n public electricityBuildingGoLiveDateString: string;\n public gasBuildingGoLiveDateString: string;\n\n constructor(\n private tokenProvider: TokenProviderService,\n private readonly model: BuildingModel,\n private readonly parentModel: BuildingsModel,\n private readonly selectedBuildingService: SelectedBuildingService, \n private readonly dateFilterService: DateSelectorService,\n private changeDetectorRef: ChangeDetectorRef,\n @Inject(BUILDING_SUMMARY_SERVICE) private readonly buildingSummaryService: IBuildingSummaryService,\n private readonly goLiveDateStorage: GoLiveDateStorage,\n private activateRoute: ActivatedRoute,\n private router: Router,\n private localizeText: LocalizeTextPipe,\n private datePipe: DatePipe) {\n super();\n }\n\n private buildingInfo: BuildingInfo | null = null;\n private dateRange: DateRange | null = null;\n\n ngOnInit(): void {\n this.addSubscription(\n combineLatest([\n this.selectedBuildingService.selectedBuildingId$,\n this.dateFilterService.dateRangeChanged$\n ]).pipe(\n switchMap(([buildingId, dateRange]) => { this.dateRange = dateRange; return this.buildingSummaryService.getBuildingSummary(buildingId, dateRange);})\n ).subscribe((data: BuildingInfo) => {\n this.buildingInfo = data;\n this.temperature = data.temperature;\n this.buildingName = data.buildingName;\n this.meterNames = `(${data.meterNames.join(', ')})`;\n this.setSavingsValues(data);\n this.setBlockData(data);\n this.setDetailsValues(data);\n this.columnsCount = this.getColumsCount();\n this.changeDetectorRef.detectChanges();\n })\n );\n\n this.addSubscription(\n combineLatest([\n this.selectedBuildingService.selectedBuildingId$,\n this.dateFilterService.dateRangeChanged$\n ]).pipe(\n switchMap(([buildingId, dateRange]) => { this.dateRange = dateRange; return this.buildingSummaryService.getBuildingSummaryAdditional(buildingId, dateRange);})\n ).subscribe((data: BuildingInfoAdditional) => {\n this.setScoreValues(data);\n this.changeDetectorRef.detectChanges();\n })\n );\n\n this.addSubscription(\n this.dateFilterService.selectedIndexChanged$.subscribe(index => {\n this.savingsTitle = this.parentModel.rangeSavingsTitleShort[index];\n this.savingsData.rangeToDateSavings.title = this.rangeSavingsTitle[index];\n this.savingsData.rangeToDateSavings.description = this.rangeSavingsDescriptions[index];\n })\n );\n\n this.buildingGoLiveDate$.subscribe(d=>{\n this.electricityBuildingGoLiveDate=d.electricityGoLiveDate;\n this.electricityBuildingGoLiveDateString=d.electricityGoLiveDate ? this.datePipe.transform(d.electricityGoLiveDate,\"MM/dd/yyyy\") : '';\n this.gasBuildingGoLiveDateString=d.gasGoLiveDate ? this.datePipe.transform(d.gasGoLiveDate,\"MM/dd/yyyy\") : '';\n });\n }\n\n private getColumsCount(): number {\n const itemsCount = this.getDetailsVisibleItemsCount();\n return Math.ceil(itemsCount / this.ROWS_COUNT);\n }\n\n private getDetailsVisibleItemsCount(): number {\n return Object.keys(this.detailsData)\n .map(key => this.detailsData[key])\n .filter(data => this.isDetailsItemVisible(data)).length;\n }\n\n public isDetailsItemVisible(data: DetailsData): boolean { \n if (data.description === this.localizeText.transform('Total Beds') && data.value === 0){\n return false;\n }\n return !(data.value === undefined && data.hideIfUndefined) && !data.hide;\n }\n\n public localize(inText: string): string {\n return this.localizeText.transform(inText);\n }\n\n private setBlockData(data: BuildingInfo): void {\n this.blocks.electricitySavings.value = data.rangeElectricitySavings;\n this.blocks.electricitySavings.arrow = this.arrowType[data.electricityDynamics];\n this.blocks.gasSavings.value = data.rangeNaturalGasSavings;\n this.blocks.gasSavings.arrow = this.arrowType[data.gasDynamics];\n this.blocks.savings.value = data.rangeSavings;\n }\n\n private setSavingsValues(data: BuildingInfo): void {\n this.savingsData.rangeToDateSavings.value = data.rangeSavings;\n this.savingsData.rangeToDateSavings.additionalValue = Math.round((data.rangeSavings / data.totalEnergySpend * 100) * 100) / 100;\n this.savingsData.totalSavings.value = data.totalSavings;\n }\n\n private setScoreValues(data: BuildingInfoAdditional): void {\n this.scoreData.efficiencyScore.value = data.energyEfficiencyScore;\n this.scoreData.starScore.value = data.energyStarScore;\n }\n\n private setDetailsValues(data: BuildingInfo): void {\n //this.detailsData.eui.value = data.eui;\n this.overviewData.buildingCount.value = 1;\n //this.detailsData.savings.value = data.totalSavings;\n this.detailsData.electricityCost.value = data.electricityCost;\n this.detailsData.electricityCost.hide = !data.hasElectricity;\n this.detailsData.electricitySavings.value = data.rangeElectricitySavings;\n this.detailsData.electricitySavings.hide = !data.hasElectricity;\n this.overviewData.totalSquareFootage.value = data.totalSquareFootage;\n this.detailsData.totalEnergySpend.value = data.totalEnergySpend;\n this.detailsData.naturalGasCost.value = data.naturalGasCost;\n this.detailsData.naturalGasCost.hide = !data.hasGas;\n this.detailsData.naturalGasSavings.value = data.rangeNaturalGasSavings;\n this.detailsData.naturalGasSavings.hide = !data.hasGas;\n this.overviewData.totalBeds.value = data.bedsCount;\n this.detailsData.co2Emission.value = data.carbonEmission;\n this.detailsData.co2Reduced.value = data.carbonReduced; \n this.detailsData.waterSpend.value = data.waterCost;\n this.detailsData.waterSpend.hide = !data.hasWater;\n this.detailsData.waterUsage.value = data.rangeWaterSpent;\n this.detailsData.waterUsage.hide = !data.hasWater;\n\n this.consumptionDetailsData.electricConsumption.value = data.electricConsumption;\n this.consumptionDetailsData.electricConsumption.hide = !data.hasElectricity;\n this.consumptionDetailsData.electricSavingVolume.value = data.electricSavingVolume;\n this.consumptionDetailsData.electricSavingVolume.hide = !data.hasElectricity;\n this.consumptionDetailsData.naturalGasConsumption.value = data.gasConsumption;\n this.consumptionDetailsData.naturalGasConsumption.unitOfMeasure = data.gasMeasure && data.gasMeasure !='' ? ` (${data.gasMeasure})` : \"\";\n this.consumptionDetailsData.naturalGasConsumption.hide = !data.hasGas;\n this.consumptionDetailsData.naturalGasSavings.value = data.gasSavingsVolume;\n this.consumptionDetailsData.naturalGasSavings.unitOfMeasure = data.gasMeasure && data.gasMeasure !='' ? ` (${data.gasMeasure})` : \"\";\n this.consumptionDetailsData.naturalGasSavings.hide = !data.hasGas;\n this.consumptionDetailsData.co2Emission.value = data.carbonEmission;\n this.consumptionDetailsData.co2Reduced.value = data.carbonReduced;\n this.consumptionDetailsData.waterSpend.hide = !data.hasWater;\n this.consumptionDetailsData.waterUsage.value = data.rangeWaterSpent;\n this.consumptionDetailsData.waterUsage.hide = !data.hasWater;\n }\n\n public backToOverview(): void {\n this.router.navigate(['../../'], { relativeTo: this.activateRoute });\n }\n\n public openQmet(energyType: number): void {\n // let authCookie = 'auth=' + this.tokenProvider.getToken();\n // document.cookie = authCookie;\n\n let targetLink = this.qmetDashboardLink;\n\n if (this.buildingInfo){\n\n let clientId = this.buildingInfo.clientId;\n let buildingId = this.buildingInfo.id; \n let startDate = this.getDateString(this.dateRange?.start);\n let endDate = this.getDateString(this.dateRange?.end);\n console.log(startDate);\n let payloadLink = \"?clientId=\" + clientId + '&buildingId=' + buildingId + '&energyType=' + energyType + '&start=' + startDate + '&end=' + endDate;\n targetLink += payloadLink;\n }\n\n let authParam = (this.buildingInfo ? '&' : '?') + 'key=' + this.tokenProvider.getToken();\n targetLink += authParam;\n \n window.open(targetLink);\n }\n\n private getDateString(data: Date | null | undefined): string {\n if (!data){\n data = new Date();\n }\n\n let year = data.getFullYear();\n let month = data.getMonth() + 1;\n let day = data.getDate();\n\n return month + \"/\" + day + \"/\" + year;\n }\n}\n","
\n
{{ 'Overview' | localizeText }}
\n
\n
\n
{{ data.value | valueFormat: data.format }}
\n {{ data.description }}\n
\n
\n \n
\n\n
\n
{{ buildingName }} {{meterNames}}
\n
\n \n {{ temperature | valueFormat: format.temperatureFormat }}\n
\n \n
\n
\n
\n \n
\n
{{ data.value | valueFormat: data.format }}
\n
\n
\n {{ data.value | valueFormat: data.format }}
({{ data.additionalValue }} %)
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n {{ data.value | valueFormat: data.format }}\n {{ data.description }}\n
\n
\n \n
\n
\n \n \n
\n
\n
\n \n
\n {{ data.value | valueFormat: data.format }}\n {{ data.description }}{{data.unitOfMeasure}}\n
\n
\n \n
\n
\n
\nELECTRIC Launch date: {{ electricityBuildingGoLiveDateString }}\nGAS Launch date: {{ gasBuildingGoLiveDateString }}\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChange, TemplateRef } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { LocalizeTextPipe } from '../../pipes/localize-text.pipe';\nimport { BaseComponent } from '../base/base.component';\nimport { HorizontalBarChartOptions, BarChartData, DatasetData, MaxValueStrategy, DEFAULT_COLORS } from './bar-chart.model';\n\n@Component({\n selector: 'br-bar-chart',\n templateUrl: './bar-chart.component.html',\n styleUrls: ['./bar-chart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BarChartComponent implements OnChanges {\n\n @Input()\n public options!: HorizontalBarChartOptions;\n\n @Input()\n public data: BarChartData | null = null;\n\n @Input()\n public bluredTitleTemplateRef: TemplateRef | undefined = undefined;\n\n public visibleDatasets: DatasetData[] = [];\n public hiddenDatasets: DatasetData[] = [];\n public barRatesByKey: Dictionary = {};\n public colorsByKey: Dictionary = {};\n public readonly defaultRateForBluredBars = 0.5;\n\n constructor(private localizeText: LocalizeTextPipe) {\n }\n\n ngOnChanges(changes: { [key: string]: SimpleChange }): void {\n if (changes.data || changes.options) {\n if (!!this.data && !!this.options) {\n this.initChart(this.data as BarChartData, this.options);\n }\n }\n }\n\n public localize(inText: string): string {\n return this.localizeText.transform(inText);\n }\n\n private initChart(data: BarChartData, options: HorizontalBarChartOptions): void {\n const visibleBarsCount = this.getVisibleBarsCount(data);\n this.visibleDatasets = options.datasets.slice(0, visibleBarsCount);\n this.hiddenDatasets = options.datasets.slice(visibleBarsCount);\n this.colorsByKey = this.getColorsDictionary(options.datasets);\n this.barRatesByKey = this.calculateBarsRate(this.visibleDatasets, data);\n }\n\n private getColorsDictionary(datasets: DatasetData[]): Dictionary {\n let defaultColorIndex = 0;\n const colorsByKey: Dictionary = {};\n datasets.forEach((dataset) => {\n if (!!dataset.barColor) {\n colorsByKey[dataset.key] = dataset.barColor;\n return;\n }\n colorsByKey[dataset.key] = DEFAULT_COLORS[defaultColorIndex];\n defaultColorIndex++;\n });\n return colorsByKey;\n }\n\n private calculateBarsRate(datasets: DatasetData[], data: BarChartData): Dictionary {\n const rates: Dictionary = {};\n const maxValues = new Map(datasets.map(ds => [ds.key, Math.max(...data.values[ds.key])]));\n const maxAllValue = Math.max(...maxValues.values());\n datasets.forEach(dataset => {\n const maxValue = this.getMaxValueDependsOnStrategy(dataset, maxValues, maxAllValue);\n rates[dataset.key] = this.getBarsRate(dataset, data, maxValue);\n });\n return rates;\n }\n\n private getBarsRate(dataset: DatasetData, data: BarChartData, maxValue: number): number[] {\n const values = data.values[dataset.key];\n return values.map(value => !!maxValue ? value / maxValue : 0);\n }\n\n private getVisibleBarsCount(data: BarChartData): number {\n const hiddenBarsCount = this.getHiddenBarsCount(data);\n return this.options.datasets.length - hiddenBarsCount;\n }\n\n private getHiddenBarsCount(data: BarChartData): number {\n return Math.min(this.options.datasets.length, data?.bluredBarsCount ?? 0);\n }\n\n private getMaxValueDependsOnStrategy(dataset: DatasetData, maxValues: Map, maxAllValue: number): number {\n switch (dataset.maxValueStrategy) {\n case MaxValueStrategy.percentsMax:\n return 100;\n case MaxValueStrategy.maxDataset:\n return maxValues.get(dataset.key) ?? maxAllValue;\n case MaxValueStrategy.maxAll:\n return maxAllValue;\n default:\n return dataset.maxValue ?? maxValues.get(dataset.key) ?? maxAllValue;\n }\n }\n}\n","\n
\n {{ options.chartTitle }}\n \n \n \n
\n
{{ options.description }}
\n
\n\t

{{ localize('No data') }}

\n
\n
\n {{ title }}\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n\n \n
\n
1\"\n [style.background]=\"color\">
\n {{ !!blured ? '--' : (data.values[group.key][index] | valueFormat:group.format) }}\n
\n
\n
\n\n\n
\n
\n
\n {{ dataset.label }}\n
\n
\n
\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { switchMap } from 'rxjs/operators';\nimport { AirHandlersEvents, BasControlsEvents, BoilerEvents, BuildingEnergyUses, ChillerEvents, CoolingTowersEvents,\n EquipmentType,\n HotWaterConvertersEvents, MriEvents, WishListItem } from '../../models/EquipmentsEvents';\nimport { BuildingAssetListService } from '../../services/real-services/building-asset-list.service';\nimport { SelectedBuildingService } from '../../services/selected-building.service';\nimport { BaseComponent } from '../../shared/components/base/base.component';\nimport { AssetListModel } from './building-asset-list.model';\n\n@Component({\n selector: 'br-building-asset-list',\n templateUrl: './building-asset-list.component.html',\n styleUrls: ['./building-asset-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BuildingAssetListComponent extends BaseComponent implements OnInit {\n\n @Output() \n public onRegetRequested = new EventEmitter();\n\n public chillersList: ChillerEvents[] = [];\n public boilersList: BoilerEvents[] = [];\n public coolingTowersList: CoolingTowersEvents[] = [];\n public airHandlersList: AirHandlersEvents[] = [];\n public hwConvertersList: HotWaterConvertersEvents[] = [];\n public basControlsList: BasControlsEvents[] = [];\n public wishListItems: WishListItem[] = [];\n public mriList: MriEvents[] = [];\n public buildingEnergyUses: BuildingEnergyUses | null = null;\n\n public get equipmentType(): typeof EquipmentType {\n return EquipmentType; \n }\n\n constructor(\n public readonly selectedBuildingService: SelectedBuildingService,\n public readonly assetListModel: AssetListModel,\n private readonly assetListService: BuildingAssetListService,\n private readonly changeDetectionRef: ChangeDetectorRef) {\n super();\n }\n\n public ngOnInit(): void {\n this.getEquipmentInfo();\n }\n\n public regetRequested(): void {\n this.getEquipmentInfo();\n this.onRegetRequested.emit(true);\n }\n\n public getEquipmentInfo(): void {\n this.addSubscription(\n this.selectedBuildingService.selectedBuildingId$.pipe(\n switchMap(buildingId => this.assetListService.getEquipmentsEvents(buildingId)),\n ).subscribe(events => {\n this.chillersList = events.chillers;\n this.boilersList = events.boilers;\n this.coolingTowersList = events.coolingTowers;\n this.airHandlersList = events.airHandlers;\n this.hwConvertersList = events.hwConverters;\n this.basControlsList = events.controls;\n this.mriList = events.mriItems;\n this.wishListItems = events.wishListItems;\n this.buildingEnergyUses = events.buildingEnergyUses;\n this.changeDetectionRef.detectChanges();\n })\n );\n }\n}\n","
{{ 'Building Asset List' | localizeText }}
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"]}