components/path-parameters/path-parameters.component.ts
Control panel form fields for GMM path parameters.
OnInit
selector | app-path-parameters |
imports |
MatLabel
MatFormField
MatInput
MatError
ReactiveFormsModule
NshmpSectionComponent
|
templateUrl | ./path-parameters.component.html |
styleUrl | ./path-parameters.component.scss |
Properties |
Methods |
constructor(service: AppService, destroyRef: DestroyRef)
|
|||||||||
Parameters :
|
ngOnInit |
ngOnInit()
|
Returns :
void
|
controls |
Default value : this.service.formGroup.controls
|
Form controls state |
form |
Default value : this.service.formGroup
|
Control panel form field state |
parameters |
Default value : computed(() => this.service.usage()?.response.parameters)
|
Usage parameters |
import {Component, computed, DestroyRef, OnInit} from '@angular/core';
import {takeUntilDestroyed} from '@angular/core/rxjs-interop';
import {ReactiveFormsModule} from '@angular/forms';
import {MatError, MatFormField, MatLabel} from '@angular/material/form-field';
import {MatInput} from '@angular/material/input';
import {NshmpSectionComponent} from '@ghsc/nshmp-lib-ng/nshmp';
import {AppService} from '../../services/app.service';
/**
* Control panel form fields for GMM path parameters.
*/
@Component({
imports: [MatLabel, MatFormField, MatInput, MatError, ReactiveFormsModule, NshmpSectionComponent],
selector: 'app-path-parameters',
styleUrl: './path-parameters.component.scss',
templateUrl: './path-parameters.component.html',
})
export class PathParametersComponent implements OnInit {
/** Form controls state */
controls = this.service.formGroup.controls;
/** Control panel form field state */
form = this.service.formGroup;
/** Usage parameters */
parameters = computed(() => this.service.usage()?.response.parameters);
constructor(
private service: AppService,
private destroyRef: DestroyRef,
) {}
ngOnInit(): void {
this.controls.distance.valueChanges
.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => this.service.resetState());
}
}
<!-- Path Parameters -->
<nshmp-section label="Path Parameters">
<!-- Event parameters: Distance input -->
<div class="distance-input">
<mat-form-field class="grid-col-12">
<mat-label>
Distance (km)
<span class="form-required">*</span>
</mat-label>
<input
matInput
[max]="parameters()?.distance?.max"
[min]="parameters()?.distance?.min"
[formControl]="controls.distance"
step="1"
type="number"
/>
<mat-error>
[
{{ parameters()?.distance?.min }},
{{ parameters()?.distance?.max }}
]
</mat-error>
</mat-form-field>
</div>
</nshmp-section>