All files / lib/time-range-input-field time-range-input-field.component.ts

100% Statements 63/63
100% Branches 25/25
95.23% Functions 20/21
100% Lines 63/63

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 641x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 1x 1x  
import { Component, Input, ViewChild } from '@angular/core';
 
import {
  InvalidControlValue,
  Nullable,
  WidgetKeySet,
} from '../utils/util.types';
import { createWidgetKeySet } from '../utils/utilities';
 
import { BaseRangeInputFieldComponent } from '../base-range-input-field/base-range-input-field.component';
import { TimeInputComponent } from '../time-input/time-input.component';
 
type ValueType = Nullable<string | InvalidControlValue>;
 
/**
 * `gc-time-range-input-field` can be used to enter a range between two time values.
 */
@Component({
  selector: 'gc-time-range-input-field',
  templateUrl: './time-range-input-field.component.html',
  styleUrls: ['./time-range-input-field.component.css'],
  standalone: false,
})
export class TimeRangeInputFieldComponent extends BaseRangeInputFieldComponent<
  Nullable<string | InvalidControlValue>
> {
  /**
   * Start slot value
   */
  @Input()
  public startSlotValue: Nullable<string | InvalidControlValue> = null;
 
  /**
   * End slot value
   */
  @Input()
  public endSlotValue: Nullable<string | InvalidControlValue> = null;
 
  /**
   * Enables setting of the value on the start slot only when the Promise resolves with value "true".
   */
  @Input()
  public permitValueChangeStart?: (v: ValueType) => Promise<boolean> | boolean;
 
  /**
   * Enables setting of the value on the end slot only when the Promise resolves with value "true".
   */
  @Input()
  public permitValueChangeEnd?: (v: ValueType) => Promise<boolean> | boolean;
 
  /** @ignore */
  @ViewChild('startSlotEl')
  protected startSlotElement!: TimeInputComponent;
 
  /** @ignore */
  @ViewChild('endSlotEl')
  protected endSlotElement!: TimeInputComponent;
 
  /** @ignore */
  protected readonly _widgetKeys: WidgetKeySet = createWidgetKeySet(
    'gc-time-range-input',
  );
}