{"version":3,"file":"time-input.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/time-input/time-input.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/time-input/time-input.module.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, HostListener, inject, Input, Renderer2 } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { SbbInput } from '@sbb-esta/angular/input';\n\nconst REGEX_PATTERN = /[0-9]{3,4}/;\nconst REGEX_GROUPS_WITH_COLON = /([0-9]{1,2})[.:,\\-;_hH]?([0-9]{1,2})?/;\nconst REGEX_GROUPS_WO_COLON = /([0-9]{1,2})([0-9]{2})/;\nconst PLACEHOLDER_DEFAULT = 'HH:MM';\n\n@Directive({\n  selector: 'input[sbbTimeInput]',\n  exportAs: 'sbbTimeInput',\n  host: {\n    class: 'sbb-time-input sbb-input-element',\n    type: 'text',\n    pattern: '[0-9]*',\n    inputmode: 'numeric',\n    '[attr.placeholder]': 'placeholder',\n  },\n})\nexport class SbbTimeInput {\n  private _elementRef = inject(ElementRef);\n  private _renderer = inject(Renderer2);\n  private _control = inject(NgControl, { self: true, optional: true })!;\n  private _input = inject(SbbInput, { optional: true })!;\n\n  /** The placeholder value display in the input field (defaults to HH:MM) */\n  @Input()\n  get placeholder(): string {\n    return this._placeholder;\n  }\n  set placeholder(value: string) {\n    this._placeholder = value ?? PLACEHOLDER_DEFAULT;\n\n    if (this._input) {\n      this._input.placeholder = this._placeholder;\n    }\n  }\n  private _placeholder!: string;\n\n  private _document = inject(DOCUMENT);\n\n  constructor(...args: unknown[]);\n  constructor() {\n    this.placeholder = PLACEHOLDER_DEFAULT;\n  }\n\n  /** Method that sets the input value in 'hours:mins' format on blur event */\n  @HostListener('blur', ['$event'])\n  _onBlur(event: Event) {\n    const value = (event.target as HTMLInputElement).value;\n    const regGroups = this._validateInput(value);\n    if (!regGroups || regGroups.length <= 2) {\n      return;\n    }\n\n    const hours = this._parseHour(regGroups[1]);\n    const mins = this._parseMinute(regGroups[2]);\n    if (this._control && this._control.control) {\n      this._control.control.setValue(`${hours}:${mins}`);\n    } else {\n      this._renderer.setProperty(this._elementRef.nativeElement, 'value', `${hours}:${mins}`);\n      const event = this._document.createEvent('Event');\n      event.initEvent('input', true, true);\n      this._elementRef.nativeElement.dispatchEvent(event);\n    }\n  }\n\n  private _validateInput(value: string) {\n    if (REGEX_PATTERN.test(value)) {\n      // special case: the input is 3 or 4 digits; split like so: AB?:CD\n      return value.match(REGEX_GROUPS_WO_COLON);\n    } else if (value) {\n      return value.match(REGEX_GROUPS_WITH_COLON);\n    } else {\n      return null;\n    }\n  }\n\n  private _parseHour(regGroupHours: string) {\n    return regGroupHours.length > 1 ? regGroupHours : '0' + regGroupHours;\n  }\n\n  private _parseMinute(regGroupMin: string) {\n    regGroupMin = regGroupMin || '00';\n    return regGroupMin.length > 1 ? regGroupMin : '0' + regGroupMin;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { SbbCommonModule } from '@sbb-esta/angular/core';\n\nimport { SbbTimeInput } from './time-input';\n\n@NgModule({\n  imports: [SbbCommonModule, SbbTimeInput],\n  exports: [SbbTimeInput],\n})\nexport class SbbTimeInputModule {}\n"],"names":[],"mappings":"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"}