{"version":3,"file":"ui-vts-kit-ng-vts-time-picker.mjs","sources":["../../components/time-picker/time-holder.ts","../../components/time-picker/time-picker-panel.component.ts","../../components/time-picker/time-picker.component.ts","../../components/time-picker/time-picker.module.ts","../../components/time-picker/public-api.ts","../../components/time-picker/ui-vts-kit-ng-vts-time-picker.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { isNil, isNotNil } from '@ui-vts-kit/ng-vts/core/util';\n\nexport class TimeHolder {\n  selected12Hours: string | undefined = undefined;\n  private _value: Date | undefined;\n  private _use12Hours: boolean = false;\n  private _defaultOpenValue!: Date;\n  private _changes = new Subject<Date>();\n\n  setMinutes(value: number, disabled: boolean): this {\n    if (value !== this.minutes && !disabled) {\n      this.initValue();\n      this.value.setMinutes(value);\n      this.update();\n    }\n    return this;\n  }\n\n  setHours(value: number, disabled: boolean): this {\n    if (value !== this.hours && !disabled) {\n      this.initValue();\n      if (this._use12Hours) {\n        if (this.selected12Hours === 'PM' && value !== 12) {\n          this.value.setHours((value as number) + 12);\n        } else if (this.selected12Hours === 'AM' && value === 12) {\n          this.value.setHours(0);\n        } else {\n          this.value.setHours(value);\n        }\n      } else {\n        this.value.setHours(value);\n      }\n      this.update();\n    }\n    return this;\n  }\n\n  setSeconds(value: number, disabled: boolean): this {\n    if (value !== this.seconds && !disabled) {\n      this.initValue();\n      this.value.setSeconds(value);\n      this.update();\n    }\n    return this;\n  }\n\n  setUse12Hours(value: boolean): this {\n    this._use12Hours = value;\n    return this;\n  }\n\n  get changes(): Observable<Date> {\n    return this._changes.asObservable();\n  }\n\n  setValue(value: Date | undefined, use12Hours?: boolean): this {\n    if (isNotNil(use12Hours)) {\n      this._use12Hours = use12Hours as boolean;\n    }\n    if (value !== this.value) {\n      this._value = value;\n      if (isNotNil(this.value)) {\n        if (this._use12Hours && isNotNil(this.hours)) {\n          this.selected12Hours = this.hours >= 12 ? 'PM' : 'AM';\n        }\n      } else {\n        this._clear();\n      }\n    }\n\n    return this;\n  }\n\n  initValue(): void {\n    if (isNil(this.value)) {\n      this.setValue(new Date(), this._use12Hours);\n    }\n  }\n\n  clear(): void {\n    this._clear();\n    this.update();\n  }\n\n  get isEmpty(): boolean {\n    return !(isNotNil(this.hours) || isNotNil(this.minutes) || isNotNil(this.seconds));\n  }\n\n  private _clear(): void {\n    this._value = undefined;\n    this.selected12Hours = undefined;\n  }\n\n  private update(): void {\n    if (this.isEmpty) {\n      this._value = undefined;\n    } else {\n      if (isNotNil(this.hours)) {\n        this.value!.setHours(this.hours!);\n      }\n\n      if (isNotNil(this.minutes)) {\n        this.value!.setMinutes(this.minutes!);\n      }\n\n      if (isNotNil(this.seconds)) {\n        this.value!.setSeconds(this.seconds!);\n      }\n\n      if (this._use12Hours) {\n        if (this.selected12Hours === 'PM' && this.hours! < 12) {\n          this.value!.setHours(this.hours! + 12);\n        }\n        if (this.selected12Hours === 'AM' && this.hours! >= 12) {\n          this.value!.setHours(this.hours! - 12);\n        }\n      }\n    }\n    this.changed();\n  }\n\n  changed(): void {\n    this._changes.next(this.value);\n  }\n\n  /**\n   * @description\n   * UI view hours\n   * Get viewHours which is selected in `time-picker-panel` and its range is [12, 1, 2, ..., 11]\n   */\n  get viewHours(): number | undefined {\n    return this._use12Hours && isNotNil(this.hours)\n      ? this.calculateViewHour(this.hours!)\n      : this.hours;\n  }\n\n  setSelected12Hours(value: string | undefined): void {\n    if (value!.toUpperCase() !== this.selected12Hours) {\n      this.selected12Hours = value!.toUpperCase();\n      this.update();\n    }\n  }\n\n  get value(): Date {\n    return this._value || this._defaultOpenValue;\n  }\n\n  get hours(): number | undefined {\n    return this.value?.getHours();\n  }\n\n  get minutes(): number | undefined {\n    return this.value?.getMinutes();\n  }\n\n  get seconds(): number | undefined {\n    return this.value?.getSeconds();\n  }\n\n  setDefaultOpenValue(value: Date): this {\n    this._defaultOpenValue = value;\n    return this;\n  }\n\n  constructor() {}\n\n  private calculateViewHour(value: number): number {\n    const selected12Hours = this.selected12Hours;\n    if (selected12Hours === 'PM' && value > 12) {\n      return value - 12;\n    }\n    if (selected12Hours === 'AM' && value === 0) {\n      return 12;\n    }\n    return value;\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  DebugElement,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { reqAnimFrame } from '@ui-vts-kit/ng-vts/core/polyfill';\nimport { BooleanInput } from '@ui-vts-kit/ng-vts/core/types';\n\nimport { InputBoolean, isNotNil } from '@ui-vts-kit/ng-vts/core/util';\nimport { DateHelperService } from '@ui-vts-kit/ng-vts/i18n';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { TimeHolder } from './time-holder';\n\nfunction makeRange(length: number, step: number = 1, start: number = 0): number[] {\n  return new Array(Math.ceil(length / step)).fill(0).map((_, i) => (i + start) * step);\n}\n\nexport type VtsTimePickerUnit = 'hour' | 'minute' | 'second' | '12-hour';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'vts-time-picker-panel',\n  exportAs: 'vtsTimePickerPanel',\n  template: `\n    <div *ngIf=\"vtsInDatePicker\" class=\"vts-picker-header\">\n      <div class=\"vts-picker-header-view\">\n        <ng-container *ngIf=\"vtsCustomShowTimeFormat && vtsCustomShowTimeFormat.showLabel\">\n          {{ dateHelper.format($any(time?.value), format) || '&nbsp;' }}\n        </ng-container>\n      </div>\n    </div>\n    <div class=\"vts-picker-content\">\n      <ul\n        *ngIf=\"hourEnabled\"\n        #hourListElement\n        class=\"vts-picker-time-panel-column\"\n        style=\"position: relative;\"\n      >\n        <ng-container *ngFor=\"let hour of hourRange; trackBy: trackByFn\">\n          <li\n            *ngIf=\"!(vtsHideDisabledOptions && hour.disabled)\"\n            class=\"vts-picker-time-panel-cell\"\n            (click)=\"selectHour(hour)\"\n            [class.vts-picker-time-panel-cell-selected]=\"isSelectedHour(hour)\"\n            [class.vts-picker-time-panel-cell-disabled]=\"hour.disabled\"\n          >\n            <div class=\"vts-picker-time-panel-cell-inner\">\n              {{ hour.index | number : '2.0-0' }}\n            </div>\n          </li>\n        </ng-container>\n      </ul>\n      <ul\n        *ngIf=\"minuteEnabled\"\n        #minuteListElement\n        class=\"vts-picker-time-panel-column\"\n        style=\"position: relative;\"\n      >\n        <ng-container *ngFor=\"let minute of minuteRange; trackBy: trackByFn\">\n          <li\n            *ngIf=\"!(vtsHideDisabledOptions && minute.disabled)\"\n            class=\"vts-picker-time-panel-cell\"\n            (click)=\"selectMinute(minute)\"\n            [class.vts-picker-time-panel-cell-selected]=\"isSelectedMinute(minute)\"\n            [class.vts-picker-time-panel-cell-disabled]=\"minute.disabled\"\n          >\n            <div class=\"vts-picker-time-panel-cell-inner\">\n              {{ minute.index | number : '2.0-0' }}\n            </div>\n          </li>\n        </ng-container>\n      </ul>\n      <ul\n        *ngIf=\"secondEnabled\"\n        #secondListElement\n        class=\"vts-picker-time-panel-column\"\n        style=\"position: relative;\"\n      >\n        <ng-container *ngFor=\"let second of secondRange; trackBy: trackByFn\">\n          <li\n            *ngIf=\"!(vtsHideDisabledOptions && second.disabled)\"\n            class=\"vts-picker-time-panel-cell\"\n            (click)=\"selectSecond(second)\"\n            [class.vts-picker-time-panel-cell-selected]=\"isSelectedSecond(second)\"\n            [class.vts-picker-time-panel-cell-disabled]=\"second.disabled\"\n          >\n            <div class=\"vts-picker-time-panel-cell-inner\">\n              {{ second.index | number : '2.0-0' }}\n            </div>\n          </li>\n        </ng-container>\n      </ul>\n      <ul\n        *ngIf=\"vtsUse12Hours\"\n        #use12HoursListElement\n        class=\"vts-picker-time-panel-column\"\n        style=\"position: relative;\"\n      >\n        <ng-container *ngFor=\"let range of use12HoursRange\">\n          <li\n            *ngIf=\"!vtsHideDisabledOptions\"\n            (click)=\"select12Hours(range)\"\n            class=\"vts-picker-time-panel-cell\"\n            [class.vts-picker-time-panel-cell-selected]=\"isSelected12Hours(range)\"\n          >\n            <div class=\"vts-picker-time-panel-cell-inner\">\n              {{ range.value }}\n            </div>\n          </li>\n        </ng-container>\n      </ul>\n    </div>\n    <div *ngIf=\"!vtsInDatePicker\" class=\"vts-picker-footer\">\n      <div *ngIf=\"vtsAddOn\" class=\"vts-picker-footer-extra\">\n        <ng-template [ngTemplateOutlet]=\"vtsAddOn\"></ng-template>\n      </div>\n      <ul class=\"vts-picker-ranges\">\n        <li *ngIf=\"!!vtsNowText\" class=\"vts-picker-now\">\n          <a (click)=\"onClickNow()\">\n            {{ vtsNowText }}\n          </a>\n        </li>\n        <li class=\"vts-picker-ok\">\n          <button vts-button type=\"button\" vtsSize=\"sm\" vtsType=\"primary\" (click)=\"onClickOk()\">\n            {{ vtsOkText || ('Calendar.lang.ok' | vtsI18n) }}\n          </button>\n        </li>\n      </ul>\n    </div>\n  `,\n  host: {\n    '[class.vts-picker-time-panel-column-0]': `enabledColumns === 0 && !vtsInDatePicker`,\n    '[class.vts-picker-time-panel-column-1]': `enabledColumns === 1 && !vtsInDatePicker`,\n    '[class.vts-picker-time-panel-column-2]': `enabledColumns === 2 && !vtsInDatePicker`,\n    '[class.vts-picker-time-panel-column-3]': `enabledColumns === 3 && !vtsInDatePicker`,\n    '[class.vts-picker-time-panel-narrow]': `enabledColumns < 3`,\n    '[class.vts-picker-time-panel-placement-bottomLeft]': `!vtsInDatePicker`,\n    '(mousedown)': 'onMousedown($event)'\n  },\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: VtsTimePickerPanelComponent,\n      multi: true\n    }\n  ]\n})\nexport class VtsTimePickerPanelComponent\n  implements ControlValueAccessor, OnInit, OnDestroy, OnChanges {\n  static ngAcceptInputType_vtsUse12Hours: BooleanInput;\n\n  private _vtsHourStep = 1;\n  private _vtsMinuteStep = 1;\n  private _vtsSecondStep = 1;\n  private unsubscribe$ = new Subject<void>();\n  private onChange?: (value: Date) => void;\n  private onTouch?: () => void;\n  private _format = 'HH:mm:ss';\n  private _disabledHours?: () => number[] = () => [];\n  private _disabledMinutes?: (hour: number) => number[] = () => [];\n  private _disabledSeconds?: (hour: number, minute: number) => number[] = () => [];\n  private _allowEmpty = true;\n  time = new TimeHolder();\n  hourEnabled = true;\n  minuteEnabled = true;\n  secondEnabled = true;\n  firstScrolled = false;\n  enabledColumns = 3;\n  hourRange!: ReadonlyArray<{ index: number; disabled: boolean }>;\n  minuteRange!: ReadonlyArray<{ index: number; disabled: boolean }>;\n  secondRange!: ReadonlyArray<{ index: number; disabled: boolean }>;\n  use12HoursRange!: ReadonlyArray<{ index: number; value: string }>;\n\n  @ViewChild('hourListElement', { static: false })\n  hourListElement?: DebugElement;\n  @ViewChild('minuteListElement', { static: false })\n  minuteListElement?: DebugElement;\n  @ViewChild('secondListElement', { static: false })\n  secondListElement?: DebugElement;\n  @ViewChild('use12HoursListElement', { static: false })\n  use12HoursListElement?: DebugElement;\n\n  @Input() vtsInDatePicker: boolean = false; // If inside a date-picker, more diff works need to be done\n  @Input() vtsAddOn?: TemplateRef<void>;\n  @Input() vtsHideDisabledOptions = false;\n  @Input() vtsClearText?: string;\n  @Input() vtsNowText?: string;\n  @Input() vtsOkText?: string;\n  @Input() vtsPlaceHolder?: string | null;\n  @Input() @InputBoolean() vtsUse12Hours = false;\n  @Input() vtsDefaultOpenValue?: Date;\n  /**\n   * When second or minute field is off, this field can be used to show the full time, because the vtsFormat is used to hide second or minute field\n   */\n  @Input() vtsCustomShowTimeFormat: { showLabel: boolean, format: string | null } | null = null;\n\n  @Output() readonly closePanel = new EventEmitter<void>();\n\n  @Input()\n  set vtsAllowEmpty(value: boolean) {\n    if (isNotNil(value)) {\n      this._allowEmpty = value;\n    }\n  }\n\n  get vtsAllowEmpty(): boolean {\n    return this._allowEmpty;\n  }\n\n  @Input()\n  set vtsDisabledHours(value: undefined | (() => number[])) {\n    this._disabledHours = value;\n    if (!!this._disabledHours) {\n      this.buildHours();\n    }\n  }\n\n  get vtsDisabledHours(): undefined | (() => number[]) {\n    return this._disabledHours;\n  }\n\n  @Input()\n  set vtsDisabledMinutes(value: undefined | ((hour: number) => number[])) {\n    if (isNotNil(value)) {\n      this._disabledMinutes = value;\n      this.buildMinutes();\n    }\n  }\n\n  get vtsDisabledMinutes(): undefined | ((hour: number) => number[]) {\n    return this._disabledMinutes;\n  }\n\n  @Input()\n  set vtsDisabledSeconds(value: undefined | ((hour: number, minute: number) => number[])) {\n    if (isNotNil(value)) {\n      this._disabledSeconds = value;\n      this.buildSeconds();\n    }\n  }\n\n  get vtsDisabledSeconds(): undefined | ((hour: number, minute: number) => number[]) {\n    return this._disabledSeconds;\n  }\n\n  @Input()\n  set format(value: string) {\n    if (isNotNil(value)) {\n      this._format = value;\n      this.enabledColumns = 0;\n      const charSet = new Set(value);\n      this.hourEnabled = charSet.has('H') || charSet.has('h');\n      this.minuteEnabled = charSet.has('m');\n      this.secondEnabled = charSet.has('s');\n      if (this.hourEnabled) {\n        this.enabledColumns++;\n      }\n      if (this.minuteEnabled) {\n        this.enabledColumns++;\n      }\n      if (this.secondEnabled) {\n        this.enabledColumns++;\n      }\n      if (this.vtsUse12Hours) {\n        this.build12Hours();\n      }\n    }\n  }\n\n  get format(): string {\n    return (this.vtsCustomShowTimeFormat && this.vtsCustomShowTimeFormat.showLabel ? this.vtsCustomShowTimeFormat.format : \"\") || this._format;\n  }\n\n  @Input()\n  set vtsHourStep(value: number) {\n    if (isNotNil(value)) {\n      this._vtsHourStep = value;\n      this.buildHours();\n    }\n  }\n\n  get vtsHourStep(): number {\n    return this._vtsHourStep;\n  }\n\n  @Input()\n  set vtsMinuteStep(value: number) {\n    if (isNotNil(value)) {\n      this._vtsMinuteStep = value;\n      this.buildMinutes();\n    }\n  }\n\n  get vtsMinuteStep(): number {\n    return this._vtsMinuteStep;\n  }\n\n  @Input()\n  set vtsSecondStep(value: number) {\n    if (isNotNil(value)) {\n      this._vtsSecondStep = value;\n      this.buildSeconds();\n    }\n  }\n\n  get vtsSecondStep(): number {\n    return this._vtsSecondStep;\n  }\n\n  trackByFn(index: number): number {\n    return index;\n  }\n\n  buildHours(): void {\n    let hourRanges = 24;\n    let disabledHours = this.vtsDisabledHours?.();\n    let startIndex = 0;\n    if (this.vtsUse12Hours) {\n      hourRanges = 12;\n      if (disabledHours) {\n        if (this.time.selected12Hours === 'PM') {\n          /**\n           * Filter and transform hours which greater or equal to 12\n           * [0, 1, 2, ..., 12, 13, 14, 15, ..., 23] => [12, 1, 2, 3, ..., 11]\n           */\n          disabledHours = disabledHours.filter(i => i >= 12).map(i => (i > 12 ? i - 12 : i));\n        } else {\n          /**\n           * Filter and transform hours which less than 12\n           * [0, 1, 2,..., 12, 13, 14, 15, ...23] => [12, 1, 2, 3, ..., 11]\n           */\n          disabledHours = disabledHours\n            .filter(i => i < 12 || i === 24)\n            .map(i => (i === 24 || i === 0 ? 12 : i));\n        }\n      }\n      startIndex = 1;\n    }\n    this.hourRange = makeRange(hourRanges, this.vtsHourStep, startIndex).map(r => {\n      return {\n        index: r,\n        disabled: !!disabledHours && disabledHours.indexOf(r) !== -1\n      };\n    });\n    if (this.vtsUse12Hours && this.hourRange[this.hourRange.length - 1].index === 12) {\n      const temp = [...this.hourRange];\n      temp.unshift(temp[temp.length - 1]);\n      temp.splice(temp.length - 1, 1);\n      this.hourRange = temp;\n    }\n  }\n\n  buildMinutes(): void {\n    this.minuteRange = makeRange(60, this.vtsMinuteStep).map(r => {\n      return {\n        index: r,\n        disabled:\n          !!this.vtsDisabledMinutes && this.vtsDisabledMinutes(this.time.hours!).indexOf(r) !== -1\n      };\n    });\n  }\n\n  buildSeconds(): void {\n    this.secondRange = makeRange(60, this.vtsSecondStep).map(r => {\n      return {\n        index: r,\n        disabled:\n          !!this.vtsDisabledSeconds &&\n          this.vtsDisabledSeconds(this.time.hours!, this.time.minutes!).indexOf(r) !== -1\n      };\n    });\n  }\n\n  build12Hours(): void {\n    const isUpperFormat = this._format.includes('A');\n    this.use12HoursRange = [\n      {\n        index: 0,\n        value: isUpperFormat ? 'AM' : 'am'\n      },\n      {\n        index: 1,\n        value: isUpperFormat ? 'PM' : 'pm'\n      }\n    ];\n  }\n\n  buildTimes(): void {\n    this.buildHours();\n    this.buildMinutes();\n    this.buildSeconds();\n    this.build12Hours();\n  }\n\n  scrollToTime(delay: number = 0): void {\n    if (this.hourEnabled && this.hourListElement) {\n      this.scrollToSelected(\n        this.hourListElement.nativeElement,\n        this.time.viewHours!,\n        delay,\n        'hour'\n      );\n    }\n    if (this.minuteEnabled && this.minuteListElement) {\n      this.scrollToSelected(\n        this.minuteListElement.nativeElement,\n        this.time.minutes!,\n        delay,\n        'minute'\n      );\n    }\n    if (this.secondEnabled && this.secondListElement) {\n      this.scrollToSelected(\n        this.secondListElement.nativeElement,\n        this.time.seconds!,\n        delay,\n        'second'\n      );\n    }\n    if (this.vtsUse12Hours && this.use12HoursListElement) {\n      const selectedHours = this.time.selected12Hours;\n      const index = selectedHours === 'AM' ? 0 : 1;\n      this.scrollToSelected(this.use12HoursListElement.nativeElement, index, delay, '12-hour');\n    }\n  }\n\n  selectHour(hour: { index: number; disabled: boolean }): void {\n    if (this.time.value) {\n      this.time.setHours(hour.index, hour.disabled);\n    } else {\n      this.time.setHours(hour.index, hour.disabled);\n      this.time.setMinutes(0, false);\n      this.time.setSeconds(0, false);\n    }\n    if (!!this._disabledMinutes) {\n      this.buildMinutes();\n    }\n    if (this._disabledSeconds || this._disabledMinutes) {\n      this.buildSeconds();\n    }\n  }\n\n  selectMinute(minute: { index: number; disabled: boolean }): void {\n    this.time.setMinutes(minute.index, minute.disabled);\n    if (!!this._disabledSeconds) {\n      this.buildSeconds();\n    }\n  }\n\n  selectSecond(second: { index: number; disabled: boolean }): void {\n    this.time.setSeconds(second.index, second.disabled);\n  }\n\n  select12Hours(value: { index: number; value: string }): void {\n    this.time.setSelected12Hours(value.value);\n    if (!!this._disabledHours) {\n      this.buildHours();\n    }\n    if (!!this._disabledMinutes) {\n      this.buildMinutes();\n    }\n    if (!!this._disabledSeconds) {\n      this.buildSeconds();\n    }\n  }\n\n  scrollToSelected(\n    instance: HTMLElement,\n    index: number,\n    duration: number = 0,\n    unit: VtsTimePickerUnit\n  ): void {\n    if (!instance) {\n      return;\n    }\n    const transIndex = this.translateIndex(index, unit);\n    const currentOption = (instance.children[transIndex] || instance.children[0]) as HTMLElement;\n    this.scrollTo(instance, currentOption.offsetTop, duration);\n  }\n\n  translateIndex(index: number, unit: VtsTimePickerUnit): number {\n    if (unit === 'hour') {\n      return this.calcIndex(\n        this.vtsDisabledHours?.(),\n        this.hourRange.map(item => item.index).indexOf(index)\n      );\n    } else if (unit === 'minute') {\n      return this.calcIndex(\n        this.vtsDisabledMinutes?.(this.time.hours!),\n        this.minuteRange.map(item => item.index).indexOf(index)\n      );\n    } else if (unit === 'second') {\n      // second\n      return this.calcIndex(\n        this.vtsDisabledSeconds?.(this.time.hours!, this.time.minutes!),\n        this.secondRange.map(item => item.index).indexOf(index)\n      );\n    } else {\n      // 12-hour\n      return this.calcIndex([], this.use12HoursRange.map(item => item.index).indexOf(index));\n    }\n  }\n\n  scrollTo(element: HTMLElement, to: number, duration: number): void {\n    if (duration <= 0) {\n      element.scrollTop = to;\n      return;\n    }\n    const difference = to - element.scrollTop;\n    const perTick = (difference / duration) * 10;\n\n    reqAnimFrame(() => {\n      element.scrollTop = element.scrollTop + perTick;\n      if (element.scrollTop === to) {\n        return;\n      }\n      this.scrollTo(element, to, duration - 10);\n    });\n  }\n\n  calcIndex(array: number[] | undefined, index: number): number {\n    if (array?.length && this.vtsHideDisabledOptions) {\n      return (\n        index -\n        array.reduce((pre, value) => {\n          return pre + (value < index ? 1 : 0);\n        }, 0)\n      );\n    } else {\n      return index;\n    }\n  }\n\n  protected changed(): void {\n    if (this.onChange) {\n      this.onChange(this.time.value!);\n    }\n  }\n\n  protected touched(): void {\n    if (this.onTouch) {\n      this.onTouch();\n    }\n  }\n\n  timeDisabled(value: Date): boolean {\n    const hour = value.getHours();\n    const minute = value.getMinutes();\n    const second = value.getSeconds();\n    return (\n      (this.vtsDisabledHours?.().indexOf(hour) ?? -1) > -1 ||\n      (this.vtsDisabledMinutes?.(hour).indexOf(minute) ?? -1) > -1 ||\n      (this.vtsDisabledSeconds?.(hour, minute).indexOf(second) ?? -1) > -1\n    );\n  }\n\n  onClickNow(): void {\n    const now = new Date();\n    if (this.timeDisabled(now)) {\n      return;\n    }\n    this.time.setValue(now);\n    this.changed();\n    this.closePanel.emit();\n  }\n\n  onClickOk(): void {\n    this.time.setValue(this.time.value, this.vtsUse12Hours);\n    this.changed();\n    this.closePanel.emit();\n  }\n\n  isSelectedHour(hour: { index: number; disabled: boolean }): boolean {\n    return hour.index === this.time.viewHours;\n  }\n\n  isSelectedMinute(minute: { index: number; disabled: boolean }): boolean {\n    return minute.index === this.time.minutes;\n  }\n\n  isSelectedSecond(second: { index: number; disabled: boolean }): boolean {\n    return second.index === this.time.seconds;\n  }\n\n  isSelected12Hours(value: { index: number; value: string }): boolean {\n    return value.value.toUpperCase() === this.time.selected12Hours;\n  }\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    public dateHelper: DateHelperService,\n    private elementRef: ElementRef\n  ) {\n    // TODO: move to host after View Engine deprecation\n    this.elementRef.nativeElement.classList.add('vts-picker-time-panel');\n  }\n\n  ngOnInit(): void {\n    this.time.changes.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n      this.changed();\n      this.touched();\n      this.scrollToTime(120);\n    });\n    this.buildTimes();\n    setTimeout(() => {\n      this.scrollToTime();\n      this.firstScrolled = true;\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.unsubscribe$.next();\n    this.unsubscribe$.complete();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { vtsUse12Hours, vtsDefaultOpenValue } = changes;\n    if (!vtsUse12Hours?.previousValue && vtsUse12Hours?.currentValue) {\n      this.build12Hours();\n      this.enabledColumns++;\n    }\n    if (vtsDefaultOpenValue?.currentValue) {\n      this.time.setDefaultOpenValue(this.vtsDefaultOpenValue || new Date());\n    }\n  }\n\n  writeValue(value: Date): void {\n    this.time.setValue(value, this.vtsUse12Hours);\n    this.buildTimes();\n\n    if (value && this.firstScrolled) {\n      this.scrollToTime(120);\n    }\n    // Mark this component to be checked manually with internal properties changing (see: https://github.com/angular/angular/issues/10816)\n    this.cdr.markForCheck();\n  }\n\n  registerOnChange(fn: (value: Date) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouch = fn;\n  }\n\n  /**\n   * Prevent input losing focus when click panel\n   * @param event\n   */\n  onMousedown(event: MouseEvent): void {\n    event.preventDefault();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n  CdkConnectedOverlay,\n  CdkOverlayOrigin,\n  ConnectionPositionPair\n} from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  Renderer2,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { isValid } from 'date-fns';\nimport { slideMotion } from '@ui-vts-kit/ng-vts/core/animation';\n\nimport { VtsConfigKey, VtsConfigService, WithConfig } from '@ui-vts-kit/ng-vts/core/config';\nimport { warn } from '@ui-vts-kit/ng-vts/core/logger';\nimport { BooleanInput, VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\nimport { InputBoolean, isNil } from '@ui-vts-kit/ng-vts/core/util';\nimport { DateHelperService, VtsI18nInterface, VtsI18nService } from '@ui-vts-kit/ng-vts/i18n';\nimport { Observable, of, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nconst VTS_CONFIG_MODULE_NAME: VtsConfigKey = 'timePicker';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'vts-time-picker',\n  exportAs: 'vtsTimePicker',\n  template: `\n    <div class=\"vts-picker-input\">\n      <input\n        #inputElement\n        [attr.id]=\"vtsId\"\n        type=\"text\"\n        [size]=\"inputSize\"\n        [placeholder]=\"vtsPlaceHolder || (i18nPlaceHolder$ | async)\"\n        [(ngModel)]=\"inputValue\"\n        [disabled]=\"vtsDisabled\"\n        (focus)=\"onFocus(true)\"\n        (blur)=\"onFocus(false)\"\n        (keyup.enter)=\"onKeyupEnter()\"\n        (keyup.escape)=\"onKeyupEsc()\"\n        (ngModelChange)=\"onInputChange($event)\"\n        [readonly]=\"vtsInputReadOnly\"\n      />\n\n      <span\n        *ngIf=\"vtsAllowEmpty && !vtsDisabled && value\"\n        class=\"vts-picker-clear\"\n        (click)=\"onClickClearBtn($event)\"\n      >\n        <i\n          vts-icon\n          vtsType=\"Close\"\n          [attr.aria-label]=\"vtsClearText\"\n          [attr.title]=\"vtsClearText\"\n        ></i>\n      </span>\n      <span class=\"vts-picker-suffix\">\n        <ng-container *vtsStringTemplateOutlet=\"vtsSuffixIcon; let suffixIcon\">\n          <i vts-icon [vtsType]=\"suffixIcon\"></i>\n        </ng-container>\n      </span>\n    </div>\n\n    <ng-template\n      cdkConnectedOverlay\n      vtsConnectedOverlay\n      [cdkConnectedOverlayHasBackdrop]=\"vtsBackdrop\"\n      [cdkConnectedOverlayPositions]=\"overlayPositions\"\n      [cdkConnectedOverlayOrigin]=\"origin\"\n      [cdkConnectedOverlayOpen]=\"vtsOpen\"\n      [cdkConnectedOverlayTransformOriginOn]=\"'.vts-picker-dropdown'\"\n      (detach)=\"close()\"\n      (overlayOutsideClick)=\"onClickOutside($event)\"\n    >\n      <div\n        [@slideMotion]=\"'enter'\"\n        (@slideMotion.done)=\"onAnimateEnd()\"\n        class=\"vts-picker-dropdown\"\n        style=\"position: relative\"\n      >\n        <div class=\"vts-picker-panel-container\">\n          <div tabindex=\"-1\" class=\"vts-picker-panel\">\n            <vts-time-picker-panel\n              [ngClass]=\"vtsDropdownClassName\"\n              [format]=\"vtsFormat\"\n              [vtsHourStep]=\"vtsHourStep\"\n              [vtsMinuteStep]=\"vtsMinuteStep\"\n              [vtsSecondStep]=\"vtsSecondStep\"\n              [vtsDisabledHours]=\"vtsDisabledHours\"\n              [vtsDisabledMinutes]=\"vtsDisabledMinutes\"\n              [vtsDisabledSeconds]=\"vtsDisabledSeconds\"\n              [vtsPlaceHolder]=\"vtsPlaceHolder || (i18nPlaceHolder$ | async)\"\n              [vtsHideDisabledOptions]=\"vtsHideDisabledOptions\"\n              [vtsUse12Hours]=\"vtsUse12Hours\"\n              [vtsDefaultOpenValue]=\"vtsDefaultOpenValue\"\n              [vtsAddOn]=\"vtsAddOn\"\n              [vtsClearText]=\"vtsClearText\"\n              [vtsNowText]=\"vtsNowText\"\n              [vtsOkText]=\"vtsOkText\"\n              [vtsAllowEmpty]=\"vtsAllowEmpty\"\n              [(ngModel)]=\"value\"\n              (ngModelChange)=\"onPanelValueChange($event)\"\n              (closePanel)=\"setCurrentValueAndClose()\"\n            ></vts-time-picker-panel>\n          </div>\n        </div>\n      </div>\n    </ng-template>\n  `,\n  host: {\n    '[class.vts-picker-xl]': `vtsSize === 'xl'`,\n    '[class.vts-picker-lg]': `vtsSize === 'lg'`,\n    '[class.vts-picker-md]': `vtsSize === 'md'`,\n    '[class.vts-picker-sm]': `vtsSize === 'sm'`,\n    '[class.vts-picker-disabled]': `vtsDisabled`,\n    '[class.vts-picker-focused]': `focused`,\n    '[class.vts-picker-rtl]': `dir === 'rtl'`,\n    '(click)': 'open()'\n  },\n  styles: ['.vts-picker { width: 100%; }'],\n  animations: [slideMotion],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: VtsTimePickerComponent,\n      multi: true\n    }\n  ]\n})\nexport class VtsTimePickerComponent\n  implements ControlValueAccessor, OnInit, AfterViewInit, OnChanges, OnDestroy\n{\n  readonly _vtsModuleName: VtsConfigKey = VTS_CONFIG_MODULE_NAME;\n\n  static ngAcceptInputType_vtsUse12Hours: BooleanInput;\n  static ngAcceptInputType_vtsHideDisabledOptions: BooleanInput;\n  static ngAcceptInputType_vtsAllowEmpty: BooleanInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_vtsDisabled: BooleanInput;\n  static ngAcceptInputType_vtsAutoFocus: BooleanInput;\n  static ngAcceptInputType_vtsInputReadOnly: BooleanInput;\n\n  private _onChange?: (value: Date | null) => void;\n  private _onTouched?: () => void;\n  private destroy$ = new Subject<void>();\n  isInit = false;\n  focused = false;\n  inputValue: string = '';\n  value: Date | null = null;\n  preValue: Date | null = null;\n  origin!: CdkOverlayOrigin;\n  @ViewChild(CdkConnectedOverlay, { static: false })\n  cdkConnectedOverlay?: CdkConnectedOverlay;\n  inputSize?: number;\n  i18nPlaceHolder$: Observable<string | undefined> = of(undefined);\n  overlayPositions: ConnectionPositionPair[] = [\n    {\n      originX: 'start',\n      originY: 'bottom',\n      overlayX: 'start',\n      overlayY: 'top',\n      offsetY: 3\n    },\n    {\n      offsetY: -3,\n      originX: 'start',\n      originY: 'top',\n      overlayX: 'start',\n      overlayY: 'bottom'\n    },\n    {\n      offsetY: 3,\n      originX: 'end',\n      originY: 'bottom',\n      overlayX: 'end',\n      overlayY: 'top'\n    },\n    {\n      offsetY: -3,\n      originX: 'end',\n      originY: 'top',\n      overlayX: 'end',\n      overlayY: 'bottom'\n    }\n  ];\n  dir: Direction = 'ltr';\n\n  @ViewChild('inputElement', { static: true })\n  inputRef!: ElementRef<HTMLInputElement>;\n  @Input() vtsId: string | null = null;\n  @Input() vtsSize: string | null = 'md';\n  @Input() @WithConfig() vtsHourStep: number = 1;\n  @Input() @WithConfig() vtsMinuteStep: number = 1;\n  @Input() @WithConfig() vtsSecondStep: number = 1;\n  @Input() @WithConfig() vtsClearText: string = 'clear';\n  @Input() @WithConfig() vtsNowText: string = 'Now';\n  @Input() @WithConfig() vtsOkText: string = '';\n  @Input() @WithConfig() vtsDropdownClassName: string = '';\n  @Input() vtsPlaceHolder = '';\n  @Input() vtsAddOn?: TemplateRef<void>;\n  @Input() vtsDefaultOpenValue?: Date;\n  @Input() vtsDisabledHours?: () => number[];\n  @Input() vtsDisabledMinutes?: (hour: number) => number[];\n  @Input() vtsDisabledSeconds?: (hour: number, minute: number) => number[];\n  @Input() @WithConfig() vtsFormat: string = 'HH:mm:ss';\n  @Input() vtsOpen = false;\n  @Input() @WithConfig() @InputBoolean() vtsUse12Hours: boolean = false;\n  @Input() @WithConfig() vtsSuffixIcon: string | TemplateRef<VtsSafeAny> = 'Time';\n\n  @Output() readonly vtsOpenChange = new EventEmitter<boolean>();\n\n  @Input() @InputBoolean() vtsHideDisabledOptions = false;\n  @Input() @WithConfig() @InputBoolean() vtsAllowEmpty: boolean = true;\n  @Input() @InputBoolean() set disabled(value: boolean) {\n    this.vtsDisabled = value;\n  }\n  @Input() @InputBoolean() vtsDisabled = false;\n  @Input() @InputBoolean() vtsAutoFocus = false;\n  @Input() @WithConfig() vtsBackdrop = false;\n  @Input() @InputBoolean() vtsInputReadOnly: boolean = false;\n\n  emitValue(value: Date | null): void {\n    this.setValue(value, true);\n\n    if (this._onChange) {\n      this._onChange(this.value);\n    }\n\n    if (this._onTouched) {\n      this._onTouched();\n    }\n  }\n\n  setValue(value: Date | null, syncPreValue: boolean = false): void {\n    if (syncPreValue) {\n      this.preValue = isValid(value) ? new Date(value!) : null;\n    }\n    this.value = isValid(value) ? new Date(value!) : null;\n    this.inputValue = this.dateHelper.format(value, this.vtsFormat);\n    this.cdr.markForCheck();\n  }\n\n  open(): void {\n    if (this.vtsDisabled || this.vtsOpen) {\n      return;\n    }\n    this.focus();\n    this.vtsOpen = true;\n    this.vtsOpenChange.emit(this.vtsOpen);\n  }\n\n  close(): void {\n    this.vtsOpen = false;\n    this.cdr.markForCheck();\n    this.vtsOpenChange.emit(this.vtsOpen);\n  }\n\n  updateAutoFocus(): void {\n    if (this.isInit && !this.vtsDisabled) {\n      if (this.vtsAutoFocus) {\n        this.renderer.setAttribute(this.inputRef.nativeElement, 'autofocus', 'autofocus');\n      } else {\n        this.renderer.removeAttribute(this.inputRef.nativeElement, 'autofocus');\n      }\n    }\n  }\n\n  onClickClearBtn(event: MouseEvent): void {\n    event.stopPropagation();\n    this.emitValue(null);\n  }\n\n  onClickOutside(event: MouseEvent): void {\n    if (!this.element.nativeElement.contains(event.target)) {\n      this.setCurrentValueAndClose();\n    }\n  }\n\n  onFocus(value: boolean): void {\n    this.focused = value;\n  }\n\n  focus(): void {\n    if (this.inputRef.nativeElement) {\n      this.inputRef.nativeElement.focus();\n    }\n  }\n\n  blur(): void {\n    if (this.inputRef.nativeElement) {\n      this.inputRef.nativeElement.blur();\n    }\n  }\n\n  onKeyupEsc(): void {\n    this.setValue(this.preValue);\n  }\n\n  onKeyupEnter(): void {\n    if (this.vtsOpen && isValid(this.value)) {\n      this.setCurrentValueAndClose();\n    } else if (!this.vtsOpen) {\n      this.open();\n    }\n  }\n\n  onInputChange(str: string): void {\n    if (!this.platform.TRIDENT && document.activeElement === this.inputRef.nativeElement) {\n      this.open();\n      this.parseTimeString(str);\n    }\n  }\n\n  onPanelValueChange(value: Date): void {\n    this.setValue(value);\n    this.focus();\n  }\n\n  setCurrentValueAndClose(): void {\n    this.emitValue(this.value);\n    this.close();\n  }\n\n  constructor(\n    public vtsConfigService: VtsConfigService,\n    protected i18n: VtsI18nService,\n    private element: ElementRef,\n    private renderer: Renderer2,\n    private cdr: ChangeDetectorRef,\n    private dateHelper: DateHelperService,\n    private platform: Platform,\n    private elementRef: ElementRef,\n    @Optional() private directionality: Directionality\n  ) {\n    // TODO: move to host after View Engine deprecation\n    this.elementRef.nativeElement.classList.add('vts-picker');\n  }\n\n  ngOnInit(): void {\n    this.inputSize = Math.max(8, this.vtsFormat.length) + 2;\n    this.origin = new CdkOverlayOrigin(this.element);\n\n    this.i18nPlaceHolder$ = this.i18n.localeChange.pipe(\n      map((vtsLocale: VtsI18nInterface) => vtsLocale.TimePicker.placeholder)\n    );\n\n    this.dir = this.directionality.value;\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n      this.dir = direction;\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { vtsUse12Hours, vtsFormat, vtsDisabled, vtsAutoFocus } = changes;\n    if (vtsUse12Hours && !vtsUse12Hours.previousValue && vtsUse12Hours.currentValue && !vtsFormat) {\n      this.vtsFormat = 'h:mm:ss a';\n    }\n    if (vtsDisabled) {\n      const value = vtsDisabled.currentValue;\n      const input = this.inputRef.nativeElement as HTMLInputElement;\n      if (value) {\n        this.renderer.setAttribute(input, 'disabled', '');\n      } else {\n        this.renderer.removeAttribute(input, 'disabled');\n      }\n    }\n    if (vtsAutoFocus) {\n      this.updateAutoFocus();\n    }\n  }\n\n  parseTimeString(str: string): void {\n    const value = this.dateHelper.parseTime(str, this.vtsFormat) || null;\n    if (isValid(value)) {\n      this.value = value;\n      this.cdr.markForCheck();\n    }\n  }\n\n  ngAfterViewInit(): void {\n    this.isInit = true;\n    this.updateAutoFocus();\n  }\n\n  writeValue(time: Date | null | undefined): void {\n    let result: Date | null;\n\n    if (time instanceof Date) {\n      result = time;\n    } else if (isNil(time)) {\n      result = null;\n    } else {\n      warn('Non-Date type is not recommended for time-picker, use \"Date\" type.');\n      result = new Date(time);\n    }\n\n    this.setValue(result, true);\n  }\n\n  registerOnChange(fn: (time: Date | null) => void): void {\n    this._onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this._onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.vtsDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  // Handle wrong position on open\n  onAnimateEnd() {\n    this.cdkConnectedOverlay?.overlayRef?.updatePosition();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { VtsButtonModule } from '@ui-vts-kit/ng-vts/button';\nimport { VtsOutletModule } from '@ui-vts-kit/ng-vts/core/outlet';\nimport { VtsOverlayModule } from '@ui-vts-kit/ng-vts/core/overlay';\n\nimport { VtsI18nModule } from '@ui-vts-kit/ng-vts/i18n';\nimport { VtsIconModule } from '@ui-vts-kit/ng-vts/icon';\n\nimport { VtsTimePickerPanelComponent } from './time-picker-panel.component';\nimport { VtsTimePickerComponent } from './time-picker.component';\n\n@NgModule({\n  declarations: [VtsTimePickerComponent, VtsTimePickerPanelComponent],\n  exports: [VtsTimePickerPanelComponent, VtsTimePickerComponent],\n  imports: [\n    BidiModule,\n    CommonModule,\n    FormsModule,\n    VtsI18nModule,\n    OverlayModule,\n    VtsIconModule,\n    VtsOverlayModule,\n    VtsOutletModule,\n    VtsButtonModule\n  ]\n})\nexport class VtsTimePickerModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './time-picker.component';\nexport * from './time-picker.module';\nexport * from './time-picker-panel.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4","i5","i11","i12.VtsTimePickerPanelComponent"],"mappings":"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"}