diff --git a/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/assessment-nebs-form.component.html b/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/assessment-nebs-form.component.html index 1045a689..f40772a2 100644 --- a/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/assessment-nebs-form.component.html +++ b/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/assessment-nebs-form.component.html @@ -24,9 +24,14 @@

- Use the " Add NEB" dropdown to add Non-Energy Benefits - () that are - not associated with any specific energy efficiency opportunity to this assessment . + Use the " Add NEB" dropdown to add Non-Energy Benefits + () that + are not associated with any specific energy efficiency opportunity to this assessment.

- \ No newline at end of file + + +
+ + + \ No newline at end of file diff --git a/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-list.pipe.spec.ts b/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-list.pipe.spec.ts new file mode 100644 index 00000000..d68e7086 --- /dev/null +++ b/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-list.pipe.spec.ts @@ -0,0 +1,8 @@ +import { EnergyOpportunityNebsListPipe } from './energy-opportunity-nebs-list.pipe'; + +describe('EnergyOpportunityNebsListPipe', () => { + it('create an instance', () => { + const pipe = new EnergyOpportunityNebsListPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-list.pipe.ts b/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-list.pipe.ts new file mode 100644 index 00000000..e7820c49 --- /dev/null +++ b/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-list.pipe.ts @@ -0,0 +1,36 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { IdbEnergyOpportunity } from 'src/app/models/energyOpportunity'; +import { IdbNonEnergyBenefit } from 'src/app/models/nonEnergyBenefit'; + +@Pipe({ + name: 'energyOpportunityNebsList' +}) +export class EnergyOpportunityNebsListPipe implements PipeTransform { + + transform(assessmentId: string, energyOpportunities: Array, nonEnergyBenefits: Array): Array<{ + energyOpportunity: IdbEnergyOpportunity, + opportunityNebs: Array + }> { + let energyOpportunityNebs: Array<{ + energyOpportunity: IdbEnergyOpportunity, + opportunityNebs: Array + }> = new Array(); + + energyOpportunities.forEach(opportunity => { + if (opportunity.assessmentId == assessmentId) { + let opportunityNebs: Array = nonEnergyBenefits.filter(neb => { + return neb.energyOpportunityId == opportunity.guid + }); + if (opportunityNebs.length > 0) { + energyOpportunityNebs.push({ + energyOpportunity: opportunity, + opportunityNebs: opportunityNebs + }); + } + } + }); + + return energyOpportunityNebs; + } + +} diff --git a/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-table.component.css b/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-table.component.css new file mode 100644 index 00000000..e69de29b diff --git a/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-table.component.html b/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-table.component.html new file mode 100644 index 00000000..1ccb1cc6 --- /dev/null +++ b/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-table.component.html @@ -0,0 +1,30 @@ + +
+
+ Energy Efficiency Opportunity NEBs +
+
+

+ Below are the Non-Energy Benefits added to "{{assessment.name}}" that are associated with + specific energy efficiency opportunities. +

+ + + + + + + + + + + +
+ + {{energyOpportunityNebs.energyOpportunity.name}} +
+ + {{neb.name}} +
+
\ No newline at end of file diff --git a/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-table.component.spec.ts b/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-table.component.spec.ts new file mode 100644 index 00000000..6d3d5375 --- /dev/null +++ b/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-table.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EnergyOpportunityNebsTableComponent } from './energy-opportunity-nebs-table.component'; + +describe('EnergyOpportunityNebsTableComponent', () => { + let component: EnergyOpportunityNebsTableComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [EnergyOpportunityNebsTableComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(EnergyOpportunityNebsTableComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-table.component.ts b/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-table.component.ts new file mode 100644 index 00000000..5c5fc235 --- /dev/null +++ b/src/app/setup-wizard/data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-table.component.ts @@ -0,0 +1,50 @@ +import { Component, Input } from '@angular/core'; +import { faFileLines, faWeightHanging, IconDefinition } from '@fortawesome/free-solid-svg-icons'; +import { Subscription } from 'rxjs'; +import { EnergyOpportunityIdbService } from 'src/app/indexed-db/energy-opportunity-idb.service'; +import { NonEnergyBenefitsIdbService } from 'src/app/indexed-db/non-energy-benefits-idb.service'; +import { IdbAssessment } from 'src/app/models/assessment'; +import { IdbEnergyOpportunity } from 'src/app/models/energyOpportunity'; +import { IdbNonEnergyBenefit } from 'src/app/models/nonEnergyBenefit'; + +@Component({ + selector: 'app-energy-opportunity-nebs-table', + templateUrl: './energy-opportunity-nebs-table.component.html', + styleUrl: './energy-opportunity-nebs-table.component.css' +}) +export class EnergyOpportunityNebsTableComponent { + @Input({required: true}) + assessment: IdbAssessment; + + faFileLines: IconDefinition = faFileLines; + faWeightHanging: IconDefinition = faWeightHanging; + + energyOpportunities: Array; + energyOpportunitiesSub: Subscription; + + nonEnergyBenefits: Array; + nonEnergyBenefitsSub: Subscription; + + + constructor( + private nonEnergyBenefitsIdbService: NonEnergyBenefitsIdbService, + private energyOpportunityIdbService: EnergyOpportunityIdbService + ){ + + } + + ngOnInit(){ + this.nonEnergyBenefitsSub = this.nonEnergyBenefitsIdbService.nonEnergyBenefits.subscribe(_nonEnergyBenefits => { + this.nonEnergyBenefits = _nonEnergyBenefits; + }); + + this.energyOpportunitiesSub = this.energyOpportunityIdbService.energyOpportunities.subscribe(_energyOpps => { + this.energyOpportunities = _energyOpps; + }); + } + + ngOnDestroy(){ + this.nonEnergyBenefitsSub.unsubscribe(); + this.energyOpportunitiesSub.unsubscribe(); + } +} diff --git a/src/app/setup-wizard/setup-wizard.module.ts b/src/app/setup-wizard/setup-wizard.module.ts index 28ba5857..cdfbfa5a 100644 --- a/src/app/setup-wizard/setup-wizard.module.ts +++ b/src/app/setup-wizard/setup-wizard.module.ts @@ -56,6 +56,8 @@ import { PerformanceMetricsModalComponent } from './data-collection/on-site-asse import { MetricOptionsModalListPipe } from './data-collection/on-site-assessment/neb-forms-accordion/neb-setup-form/performance-metrics-modal/metric-options-modal-list.pipe'; import { AssociatedMetricIndicatorPipe } from './data-collection/on-site-assessment/neb-forms-accordion/neb-setup-form/performance-metrics-modal/associated-metric-indicator.pipe'; import { KpmImpactsTableComponent } from './pre-visit/company-kpi-details/kpm-impacts-table/kpm-impacts-table.component'; +import { EnergyOpportunityNebsTableComponent } from './data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-table.component'; +import { EnergyOpportunityNebsListPipe } from './data-collection/on-site-assessment/assessment-nebs-form/energy-opportunity-nebs-table/energy-opportunity-nebs-list.pipe'; @NgModule({ declarations: [ @@ -105,7 +107,9 @@ import { KpmImpactsTableComponent } from './pre-visit/company-kpi-details/kpm-im PerformanceMetricsModalComponent, MetricOptionsModalListPipe, AssociatedMetricIndicatorPipe, - KpmImpactsTableComponent + KpmImpactsTableComponent, + EnergyOpportunityNebsTableComponent, + EnergyOpportunityNebsListPipe ], imports: [ CommonModule,