components/parameter-summary/parameter-summary.component.ts
Summary of parameters entered, form field values to call service.
| selector | app-parameter-summary | 
            
| imports | 
                            MatList
                            MatListItem
                 | 
            
| templateUrl | ./parameter-summary.component.html | 
            
| styleUrl | ./parameter-summary.component.scss | 
            
                        Properties | 
                
| formGroup | 
                        Default value : this.service.formGroup
                     | 
                
| 
                     Form field state  | 
            
| isNaN | 
                        Default value : Number.isNaN
                     | 
                
| Number | 
                        Default value : Number
                     | 
                
| returnPeriodName | 
                        Default value : returnPeriodAltName
                     | 
                
| 
                     Return period value to name map  | 
            
| selectPlaceHolder | 
                        Default value : nshmpUtils.selectPlaceHolder()
                     | 
                
| 
                     Place holder for select menus  | 
            
| service | 
                        Default value : inject(AppService)
                     | 
                
| toDisplay | 
                        Default value : nshmpUtils.parameterToDisplay
                     | 
                
| 
                     Function to get display from a   | 
            
import {Component, computed, inject} from '@angular/core';
import {MatList, MatListItem} from '@angular/material/list';
import {hazardUtils} from '@ghsc/nshmp-lib-ng/hazard';
import {nshmpUtils, returnPeriodAltName} from '@ghsc/nshmp-lib-ng/nshmp';
import {AppService} from '../../services/app.service';
/**
 * Summary of parameters entered, form field values to call service.
 */
@Component({
  imports: [MatList, MatListItem],
  selector: 'app-parameter-summary',
  styleUrl: './parameter-summary.component.scss',
  templateUrl: './parameter-summary.component.html',
})
export class ParameterSummaryComponent {
  service = inject(AppService);
  isNaN = Number.isNaN;
  /** Return period value to name map */
  returnPeriodName = returnPeriodAltName;
  /** Place holder for select menus */
  selectPlaceHolder = nshmpUtils.selectPlaceHolder();
  /** Function to get display from a `Parameter` */
  toDisplay = nshmpUtils.parameterToDisplay;
  /** Form field state */
  formGroup = this.service.formGroup;
  /** Site classes from usage as `Parameter`s */
  siteClasses = computed(() => {
    const usage = this.service.usage();
    if (usage === undefined || usage === null) {
      return [];
    }
    return hazardUtils.siteClassesToParameters(usage.response.model.siteClasses);
  });
  Number = Number;
}
    <div class="grid-row parameter-summary">
  <div class="grid-col-12 tablet:grid-col-6">
    <mat-list class="parameter-list">
      <mat-list-item>
        <span class="parameter">Model</span>:
        {{ toDisplay(formGroup.value.model, service.availableModels()) }}
      </mat-list-item>
      <mat-list-item>
        <span class="parameter">Latitude</span>:
        @if (!isNaN(formGroup.value.latitude)) {
          {{ formGroup.value.latitude }}
        }
        °
      </mat-list-item>
      <mat-list-item>
        <span class="parameter">Longitude</span>:
        @if (!isNaN(formGroup.value.longitude)) {
          {{ formGroup.value.longitude }}
        }
        °
      </mat-list-item>
      <mat-list-item>
        @if (formGroup.value.siteClass !== selectPlaceHolder.value) {
          <span class="parameter">Site Class</span>:
          {{ toDisplay(formGroup.value.siteClass, siteClasses()) }}
        } @else {
          <span class="parameter">Vs30</span>: {{ formGroup.value.vs30 }} m/s
        }
      </mat-list-item>
    </mat-list>
  </div>
  <div class="grid-col-12 tablet:grid-col-6 print-flex-basis-half">
    <mat-list class="parameter-list">
      <mat-list-item>
        <span class="parameter">Return Period</span>:
        @if (formGroup.value.commonReturnPeriods !== Number.parseInt(selectPlaceHolder.value)) {
          {{ returnPeriodName[formGroup.value.returnPeriod] }}
        } @else {
          {{ formGroup.value.returnPeriod }} yr
        }
      </mat-list-item>
      <mat-list-item>
        <span class="parameter">Source Type</span>:
        {{ formGroup.value.sourceType }}
      </mat-list-item>
      <mat-list-item>
        <span class="parameter">Truncate</span>:
        {{ formGroup.value.truncate === true ? 'On' : 'Off' }}
      </mat-list-item>
      <mat-list-item>
        <span class="parameter">Max Direction</span>:
        {{ formGroup.value.maxDirection === true ? 'On' : 'Off' }}
      </mat-list-item>
    </mat-list>
  </div>
</div>