File

components/fault-control/fault-control.component.ts

Description

Fault control with slider and input box.

Metadata

Index

Properties
Inputs

Inputs

label
Default value : undefined

Label

parameter
Required :  true

GMM usage parameter with min and max values

textSuffix
Default value : undefined

Input text suffix

Properties

Readonly control
Default value : input.required<FormControl<number>>()

Form control state

Readonly controlClass
Default value : input<string>('')
Readonly label
Default value : undefined

Label

Readonly parameter

GMM usage parameter with min and max values

service
Default value : inject(AppService)
Readonly textSuffix
Default value : undefined

Input text suffix

import {NgClass} from '@angular/common';
import {Component, inject, input} from '@angular/core';
import {FormControl, ReactiveFormsModule} from '@angular/forms';
import {MatError, MatFormField, MatLabel, MatSuffix} from '@angular/material/form-field';
import {MatInput} from '@angular/material/input';
import {MatSlider, MatSliderThumb} from '@angular/material/slider';
import {MatTooltip} from '@angular/material/tooltip';
import {GmmUsageParameter} from '@ghsc/nshmp-utils-ts/libs/nshmp-ws/gmm-services';

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

/**
 * Fault control with slider and input box.
 */
@Component({
  imports: [
    MatLabel,
    MatSlider,
    MatTooltip,
    MatSliderThumb,
    MatFormField,
    MatInput,
    MatSuffix,
    MatError,
    ReactiveFormsModule,
    NgClass,
  ],
  selector: 'app-fault-control',
  styleUrl: './fault-control.component.scss',
  templateUrl: './fault-control.component.html',
})
export class FaultControlComponent {
  service = inject(AppService);

  /** Form control state */
  readonly control = input.required<FormControl<number>>();

  /** Label */
  readonly label = input<string>(undefined);

  /** GMM usage parameter with min and max values */
  readonly parameter = input.required<GmmUsageParameter>();

  /** Input text suffix */
  readonly textSuffix = input<string>(undefined);

  readonly controlClass = input<string>('');
}
<mat-label>{{ label() }}</mat-label>

<div class="grid-row grid-gap-lg" [ngClass]="controlClass()">
  <div class="grid-col-7">
    <mat-slider
      discrete
      [min]="parameter()?.min"
      [max]="parameter()?.max"
      matTooltip="Slide to change fault"
      (change)="service.callService()"
    >
      <input matSliderThumb [formControl]="control()" [value]="control().value" />
    </mat-slider>
  </div>

  <mat-form-field class="grid-col-5">
    <mat-label>{{ label() }}</mat-label>
    <input
      matInput
      [formControl]="control()"
      type="number"
      [min]="parameter()?.min"
      [max]="parameter()?.max"
      (input)="service.callService()"
      [value]="control().value"
    />

    @if (textSuffix()) {
      <span matTextSuffix>{{ textSuffix() }}</span>
    }

    <mat-error>
      [
      {{ parameter()?.min }},
      {{ parameter()?.max }}
      ]
    </mat-error>
  </mat-form-field>
</div>
Legend
Html element
Component
Html element with directive

results matching ""

    No results matching ""