components/disagg-contributors/disagg-contributors.component.ts
DisaggSource
Properties |
| epsilon |
epsilon:
|
Type : number
|
import {DecimalPipe, NgClass} from '@angular/common';
import {ChangeDetectionStrategy, Component, computed, inject, input, Signal} from '@angular/core';
import {MatButton} from '@angular/material/button';
import {MatDivider} from '@angular/material/divider';
import {MatIcon} from '@angular/material/icon';
import {FormatLatitudePipe, FormatLongitudePipe} from '@ghsc/nshmp-lib-ng/hazard';
import {
DisaggComponentData,
DisaggSource,
} from '@ghsc/nshmp-utils-ts/libs/nshmp-haz/www/disagg-service';
import {AppService} from '../../services/app.service';
interface DisaggSourceEpsilon extends DisaggSource {
epsilon: number;
}
/**
* Table with disaggregation contributions from service response.
*/
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
host: {id: 'hazard-disagg-disagg-contributors'},
imports: [
MatDivider,
NgClass,
DecimalPipe,
FormatLatitudePipe,
FormatLongitudePipe,
MatIcon,
MatButton,
],
selector: 'app-disagg-contributors',
styleUrl: './disagg-contributors.component.scss',
templateUrl: './disagg-contributors.component.html',
})
export class DisaggContributorsComponent {
service = inject(AppService);
/** Disaggregation component data state */
readonly componentData = input.required<DisaggComponentData>();
readonly showExportButton = input(true);
readonly sources: Signal<DisaggSourceEpsilon[]> = computed(() => {
const componentData = this.componentData();
if (componentData) {
return componentData?.sources.map(source => ({
...source,
epsilon: source.ε,
}));
} else {
return [];
}
});
/** Form field state */
form = this.service.formGroup;
/** Disaggregation service response state */
serviceResponse = this.service.serviceResponse;
}