File

components/content/content.component.ts

Description

Application main content with Angular material tabs with:

  • Plots tab: GMM response spectra plot
  • Median data tab: table with response spectra median data
  • Sigma data tab: table with response spectra sigma data

Metadata

Index

Properties

Constructor

constructor(service: AppService)
Parameters :
Name Type Optional
service AppService No

Properties

commonXValues
Default value : true

Whether the data has common X values

hasData
Default value : computed(() => this.service.serviceResponse()?.length > 0)

Whether service has been called and data exists

padValues
Default value : true

Whether to pad values

Public service
Type : AppService
sigmaExp
Default value : false

Whether sigma data is shown is exponential form

sigmaTable
Default value : computed(() => { const plot = this.service.sigmaPlotState(); return gmmUtils.plotToTable( plot.plotData, this.sigmaExp, this.commonXValues, this.padValues, plot.xValues, ); })

Table data for sigma

spectraExp
Default value : true

Whether spectra data is shown is exponential form

spectraTable
Default value : computed(() => { const plot = this.service.spectraPlotState(); return gmmUtils.plotToTable( plot.plotData, this.spectraExp, this.commonXValues, this.padValues, plot.xValues, ); })

Table data for mean

import {Component, computed} from '@angular/core';
import {MatTab, MatTabContent, MatTabGroup} from '@angular/material/tabs';
import {gmmUtils} from '@ghsc/nshmp-lib-ng/gmm';
import {NshmpLibNgDataTablePanelComponent} from '@ghsc/nshmp-lib-ng/nshmp';

import {AppService} from '../../services/app.service';
import {PlotsComponent} from '../plots/plots.component';

/**
 * Application main content with Angular material tabs with:
 *  - Plots tab: GMM response spectra plot
 *  - Median data tab: table with response spectra median data
 *  - Sigma data tab: table with response spectra sigma data
 */
@Component({
  imports: [
    NshmpLibNgDataTablePanelComponent,
    MatTabGroup,
    MatTab,
    MatTabContent,
    PlotsComponent,
  ],
  selector: 'app-content',
  styleUrl: './content.component.scss',
  templateUrl: './content.component.html',
})
export class ContentComponent {
  /** Whether the data has common X values */
  commonXValues = true;
  /** Whether to pad values */
  padValues = true;
  /** Whether sigma data is shown is exponential form */
  sigmaExp = false;
  /** Whether spectra data is shown is exponential form */
  spectraExp = true;

  /** Whether service has been called and data exists */
  hasData = computed(() => this.service.serviceResponse()?.length > 0);

  /** Table data for sigma */
  sigmaTable = computed(() => {
    const plot = this.service.sigmaPlotState();

    return gmmUtils.plotToTable(
      plot.plotData,
      this.sigmaExp,
      this.commonXValues,
      this.padValues,
      plot.xValues,
    );
  });

  /** Table data for mean */
  spectraTable = computed(() => {
    const plot = this.service.spectraPlotState();

    return gmmUtils.plotToTable(
      plot.plotData,
      this.spectraExp,
      this.commonXValues,
      this.padValues,
      plot.xValues,
    );
  });

  constructor(public service: AppService) {}
}
<mat-tab-group class="height-full">
  <!-- Plots tab -->
  <mat-tab labelClass="plots-tab" label="Plots">
    <ng-template matTabContent>
      <app-plots />
    </ng-template>
  </mat-tab>

  <!-- Median data tab -->
  <mat-tab
    labelClass="medians-tab"
    label="Medians"
    [disabled]="hasData() === false"
  >
    <ng-template matTabContent>
      <nshmp-lib-ng-data-table-panel
        [table]="spectraTable()"
        filename="spectra-medians.csv"
        buttonText="Export Medians as CSV"
        title="Median Data"
      />
    </ng-template>
  </mat-tab>

  <!-- Sigma data tab -->
  <mat-tab
    labelClass="sigmas-tab"
    label="Sigmas"
    [disabled]="hasData() === false"
  >
    <ng-template matTabContent>
      <nshmp-lib-ng-data-table-panel
        [table]="sigmaTable()"
        filename="spectra-sigmas.csv"
        buttonText="Export Sigmas as CSV"
        title="Sigma Data"
      />
    </ng-template>
  </mat-tab>
</mat-tab-group>
Legend
Html element
Component
Html element with directive

results matching ""

    No results matching ""