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

100% Statements 109/109
100% Branches 10/10
100% Functions 5/5
100% Lines 109/109

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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 1101x 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 1x 1x 1x 1x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 1x 1x 1x 2x 2x 1x 1x 1x 2x 2x 1x  
/*******************************************************************************
 * Copyright bei
 * Entwicklungs- und Pflegeverbund für das gemeinsame Fachverfahren gefa
 *
 *******************************************************************************/
import {
  ChangeDetectionStrategy,
  Component,
  Input,
  TemplateRef,
  ViewChild,
} from '@angular/core';
 
import { Item, WidgetKeySet } from '../utils/util.types';
import { createWidgetKeySet } from '../utils/utilities';
 
import { BaseRangeInputFieldComponent } from '../base-range-input-field/base-range-input-field.component';
import { PickerComponent } from '../picker/picker.component';
 
/**
 * `gc-date-range-input-field` can be used to enter a range between two date values.
 */
@Component({
  selector: 'gc-picker-range-input-field',
  templateUrl: './picker-range-input-field.component.html',
  styleUrls: ['./picker-range-input-field.component.css'],
  changeDetection: ChangeDetectionStrategy.Default,
  standalone: false,
})
export class PickerRangeInputFieldComponent extends BaseRangeInputFieldComponent<Item | null> {
  /**
   * Items to display in the start slot selection list
   */
  @Input()
  public startSlotItems: readonly Item[] = [];
 
  /**
   * Items to display in the end slot selection list
   */
  @Input()
  public endSlotItems: readonly Item[] = [];
 
  /**
   * Start slot value represents the selected value in the start slot
   */
  @Input()
  public override startSlotValue: Item | null = null;
 
  /**
   * End slot value represents the selected value in the end slot
   */
  @Input()
  public override endSlotValue: Item | null = null;
 
  /**
   * Set of item keys that will be rendered as disabled items in the start slot
   */
  @Input()
  public startSlotDisabledItems: ReadonlySet<string> = new Set();
 
  /**
   * Set of item keys that will be rendered as disabled items in the end slot
   */
  @Input()
  public endSlotDisabledItems: ReadonlySet<string> = new Set();
 
  /**
   * Enables resetting the value i.e. the selection of a no-value (undefined) item.
   */
  @Input()
  public resetEnabled = false;
 
  /** Optional icon provider to use for the selected entry */
  @Input()
  public iconProvider?: TemplateRef<unknown>;
 
  /** Optional icon provider to use for the entries in the popup list */
  @Input()
  public listIconProvider?: TemplateRef<unknown>;
 
  /** @ignore */
  @ViewChild('startSlotEl')
  protected override startSlotElement!: PickerComponent<Item>;
 
  /** @ignore */
  @ViewChild('endSlotEl')
  protected override endSlotElement!: PickerComponent<Item>;
 
  /** @ignore */
  protected override readonly _widgetKeys: WidgetKeySet = createWidgetKeySet(
    'gc-picker-range-input',
  );
 
  /** @ignore */
  protected hideStartSlotFocusBorder = false;
 
  /** @ignore */
  protected hideEndSlotFocusBorder = false;
 
  /** @ignore */
  onHideStartSlotFocusBorder(value: boolean) {
    this.hideStartSlotFocusBorder = value;
  }
 
  /** @ignore */
  onHideEndlotFocusBorder(value: boolean) {
    this.hideEndSlotFocusBorder = value;
  }
}