{"version":3,"file":"ng-zorro-antd-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/ng-zorro-antd-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 'ng-zorro-antd/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 (!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 (!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 (!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) ? this.calculateViewHour(this.hours!) : 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  NgZone,\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 { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { reqAnimFrame } from 'ng-zorro-antd/core/polyfill';\nimport { BooleanInput } from 'ng-zorro-antd/core/types';\nimport { InputBoolean, isNotNil } from 'ng-zorro-antd/core/util';\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\n\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 NzTimePickerUnit = 'hour' | 'minute' | 'second' | '12-hour';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'nz-time-picker-panel',\n  exportAs: 'nzTimePickerPanel',\n  template: `\n    <div *ngIf=\"nzInDatePicker\" class=\"ant-picker-header\">\n      <div class=\"ant-picker-header-view\">{{ dateHelper.format($any(time?.value), format) || '&nbsp;' }}</div>\n    </div>\n    <div class=\"ant-picker-content\">\n      <ul *ngIf=\"hourEnabled\" #hourListElement class=\"ant-picker-time-panel-column\" style=\"position: relative;\">\n        <ng-container *ngFor=\"let hour of hourRange; trackBy: trackByFn\">\n          <li\n            *ngIf=\"!(nzHideDisabledOptions && hour.disabled)\"\n            class=\"ant-picker-time-panel-cell\"\n            (click)=\"selectHour(hour)\"\n            [class.ant-picker-time-panel-cell-selected]=\"isSelectedHour(hour)\"\n            [class.ant-picker-time-panel-cell-disabled]=\"hour.disabled\"\n          >\n            <div class=\"ant-picker-time-panel-cell-inner\">{{ hour.index | number: '2.0-0' }}</div>\n          </li>\n        </ng-container>\n      </ul>\n      <ul *ngIf=\"minuteEnabled\" #minuteListElement class=\"ant-picker-time-panel-column\" style=\"position: relative;\">\n        <ng-container *ngFor=\"let minute of minuteRange; trackBy: trackByFn\">\n          <li\n            *ngIf=\"!(nzHideDisabledOptions && minute.disabled)\"\n            class=\"ant-picker-time-panel-cell\"\n            (click)=\"selectMinute(minute)\"\n            [class.ant-picker-time-panel-cell-selected]=\"isSelectedMinute(minute)\"\n            [class.ant-picker-time-panel-cell-disabled]=\"minute.disabled\"\n          >\n            <div class=\"ant-picker-time-panel-cell-inner\">{{ minute.index | number: '2.0-0' }}</div>\n          </li>\n        </ng-container>\n      </ul>\n      <ul *ngIf=\"secondEnabled\" #secondListElement class=\"ant-picker-time-panel-column\" style=\"position: relative;\">\n        <ng-container *ngFor=\"let second of secondRange; trackBy: trackByFn\">\n          <li\n            *ngIf=\"!(nzHideDisabledOptions && second.disabled)\"\n            class=\"ant-picker-time-panel-cell\"\n            (click)=\"selectSecond(second)\"\n            [class.ant-picker-time-panel-cell-selected]=\"isSelectedSecond(second)\"\n            [class.ant-picker-time-panel-cell-disabled]=\"second.disabled\"\n          >\n            <div class=\"ant-picker-time-panel-cell-inner\">{{ second.index | number: '2.0-0' }}</div>\n          </li>\n        </ng-container>\n      </ul>\n      <ul *ngIf=\"nzUse12Hours\" #use12HoursListElement class=\"ant-picker-time-panel-column\" style=\"position: relative;\">\n        <ng-container *ngFor=\"let range of use12HoursRange\">\n          <li\n            *ngIf=\"!nzHideDisabledOptions\"\n            (click)=\"select12Hours(range)\"\n            class=\"ant-picker-time-panel-cell\"\n            [class.ant-picker-time-panel-cell-selected]=\"isSelected12Hours(range)\"\n          >\n            <div class=\"ant-picker-time-panel-cell-inner\">{{ range.value }}</div>\n          </li>\n        </ng-container>\n      </ul>\n    </div>\n    <div *ngIf=\"!nzInDatePicker\" class=\"ant-picker-footer\">\n      <div *ngIf=\"nzAddOn\" class=\"ant-picker-footer-extra\">\n        <ng-template [ngTemplateOutlet]=\"nzAddOn\"></ng-template>\n      </div>\n      <ul class=\"ant-picker-ranges\">\n        <li class=\"ant-picker-now\">\n          <a (click)=\"onClickNow()\">\n            {{ nzNowText || ('Calendar.lang.now' | nzI18n) }}\n          </a>\n        </li>\n        <li class=\"ant-picker-ok\">\n          <button nz-button type=\"button\" nzSize=\"small\" nzType=\"primary\" (click)=\"onClickOk()\">\n            {{ nzOkText || ('Calendar.lang.ok' | nzI18n) }}\n          </button>\n        </li>\n      </ul>\n    </div>\n  `,\n  host: {\n    class: 'ant-picker-time-panel',\n    '[class.ant-picker-time-panel-column-0]': `enabledColumns === 0 && !nzInDatePicker`,\n    '[class.ant-picker-time-panel-column-1]': `enabledColumns === 1 && !nzInDatePicker`,\n    '[class.ant-picker-time-panel-column-2]': `enabledColumns === 2 && !nzInDatePicker`,\n    '[class.ant-picker-time-panel-column-3]': `enabledColumns === 3 && !nzInDatePicker`,\n    '[class.ant-picker-time-panel-narrow]': `enabledColumns < 3`,\n    '[class.ant-picker-time-panel-placement-bottomLeft]': `!nzInDatePicker`\n  },\n  providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: NzTimePickerPanelComponent, multi: true }]\n})\nexport class NzTimePickerPanelComponent implements ControlValueAccessor, OnInit, OnDestroy, OnChanges {\n  static ngAcceptInputType_nzUse12Hours: BooleanInput;\n\n  private _nzHourStep = 1;\n  private _nzMinuteStep = 1;\n  private _nzSecondStep = 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 }) minuteListElement?: DebugElement;\n  @ViewChild('secondListElement', { static: false }) secondListElement?: DebugElement;\n  @ViewChild('use12HoursListElement', { static: false }) use12HoursListElement?: DebugElement;\n\n  @Input() nzInDatePicker: boolean = false; // If inside a date-picker, more diff works need to be done\n  @Input() nzAddOn?: TemplateRef<void>;\n  @Input() nzHideDisabledOptions = false;\n  @Input() nzClearText?: string;\n  @Input() nzNowText?: string;\n  @Input() nzOkText?: string;\n  @Input() nzPlaceHolder?: string | null;\n  @Input() @InputBoolean() nzUse12Hours = false;\n  @Input() nzDefaultOpenValue?: Date;\n\n  @Output() readonly closePanel = new EventEmitter<void>();\n\n  @Input()\n  set nzAllowEmpty(value: boolean) {\n    if (isNotNil(value)) {\n      this._allowEmpty = value;\n    }\n  }\n\n  get nzAllowEmpty(): boolean {\n    return this._allowEmpty;\n  }\n\n  @Input()\n  set nzDisabledHours(value: undefined | (() => number[])) {\n    this._disabledHours = value;\n    if (this._disabledHours) {\n      this.buildHours();\n    }\n  }\n\n  get nzDisabledHours(): undefined | (() => number[]) {\n    return this._disabledHours;\n  }\n\n  @Input()\n  set nzDisabledMinutes(value: undefined | ((hour: number) => number[])) {\n    if (isNotNil(value)) {\n      this._disabledMinutes = value;\n      this.buildMinutes();\n    }\n  }\n\n  get nzDisabledMinutes(): undefined | ((hour: number) => number[]) {\n    return this._disabledMinutes;\n  }\n\n  @Input()\n  set nzDisabledSeconds(value: undefined | ((hour: number, minute: number) => number[])) {\n    if (isNotNil(value)) {\n      this._disabledSeconds = value;\n      this.buildSeconds();\n    }\n  }\n\n  get nzDisabledSeconds(): 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.nzUse12Hours) {\n        this.build12Hours();\n      }\n    }\n  }\n\n  get format(): string {\n    return this._format;\n  }\n\n  @Input()\n  set nzHourStep(value: number) {\n    if (isNotNil(value)) {\n      this._nzHourStep = value;\n      this.buildHours();\n    }\n  }\n\n  get nzHourStep(): number {\n    return this._nzHourStep;\n  }\n\n  @Input()\n  set nzMinuteStep(value: number) {\n    if (isNotNil(value)) {\n      this._nzMinuteStep = value;\n      this.buildMinutes();\n    }\n  }\n\n  get nzMinuteStep(): number {\n    return this._nzMinuteStep;\n  }\n\n  @Input()\n  set nzSecondStep(value: number) {\n    if (isNotNil(value)) {\n      this._nzSecondStep = value;\n      this.buildSeconds();\n    }\n  }\n\n  get nzSecondStep(): number {\n    return this._nzSecondStep;\n  }\n\n  trackByFn(index: number): number {\n    return index;\n  }\n\n  buildHours(): void {\n    let hourRanges = 24;\n    let disabledHours = this.nzDisabledHours?.();\n    let startIndex = 0;\n    if (this.nzUse12Hours) {\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.filter(i => i < 12 || i === 24).map(i => (i === 24 || i === 0 ? 12 : i));\n        }\n      }\n      startIndex = 1;\n    }\n    this.hourRange = makeRange(hourRanges, this.nzHourStep, startIndex).map(r => ({\n      index: r,\n      disabled: !!disabledHours && disabledHours.indexOf(r) !== -1\n    }));\n    if (this.nzUse12Hours && 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.nzMinuteStep).map(r => ({\n      index: r,\n      disabled: !!this.nzDisabledMinutes && this.nzDisabledMinutes(this.time.hours!).indexOf(r) !== -1\n    }));\n  }\n\n  buildSeconds(): void {\n    this.secondRange = makeRange(60, this.nzSecondStep).map(r => ({\n      index: r,\n      disabled:\n        !!this.nzDisabledSeconds && this.nzDisabledSeconds(this.time.hours!, this.time.minutes!).indexOf(r) !== -1\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(this.hourListElement.nativeElement, this.time.viewHours!, delay, 'hour');\n    }\n    if (this.minuteEnabled && this.minuteListElement) {\n      this.scrollToSelected(this.minuteListElement.nativeElement, this.time.minutes!, delay, 'minute');\n    }\n    if (this.secondEnabled && this.secondListElement) {\n      this.scrollToSelected(this.secondListElement.nativeElement, this.time.seconds!, delay, 'second');\n    }\n    if (this.nzUse12Hours && 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    this.time.setHours(hour.index, hour.disabled);\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(instance: HTMLElement, index: number, duration: number = 0, unit: NzTimePickerUnit): 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: NzTimePickerUnit): number {\n    if (unit === 'hour') {\n      return this.calcIndex(this.nzDisabledHours?.(), this.hourRange.map(item => item.index).indexOf(index));\n    } else if (unit === 'minute') {\n      return this.calcIndex(\n        this.nzDisabledMinutes?.(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.nzDisabledSeconds?.(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    this.ngZone.runOutsideAngular(() => {\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\n  calcIndex(array: number[] | undefined, index: number): number {\n    if (array?.length && this.nzHideDisabledOptions) {\n      return index - array.reduce((pre, value) => pre + (value < index ? 1 : 0), 0);\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.nzDisabledHours?.().indexOf(hour) ?? -1) > -1 ||\n      (this.nzDisabledMinutes?.(hour).indexOf(minute) ?? -1) > -1 ||\n      (this.nzDisabledSeconds?.(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.nzUse12Hours);\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 ngZone: NgZone,\n    private cdr: ChangeDetectorRef,\n    public dateHelper: DateHelperService,\n    private elementRef: ElementRef<HTMLElement>\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\n    this.ngZone.runOutsideAngular(() => {\n      setTimeout(() => {\n        this.scrollToTime();\n        this.firstScrolled = true;\n      });\n\n      fromEvent(this.elementRef.nativeElement, 'mousedown')\n        .pipe(takeUntil(this.unsubscribe$))\n        .subscribe(event => {\n          event.preventDefault();\n        });\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.unsubscribe$.next();\n    this.unsubscribe$.complete();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { nzUse12Hours, nzDefaultOpenValue } = changes;\n    if (!nzUse12Hours?.previousValue && nzUse12Hours?.currentValue) {\n      this.build12Hours();\n      this.enabledColumns++;\n    }\n    if (nzDefaultOpenValue?.currentValue) {\n      this.time.setDefaultOpenValue(this.nzDefaultOpenValue || new Date());\n    }\n  }\n\n  writeValue(value: Date): void {\n    this.time.setValue(value, this.nzUse12Hours);\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 * 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 { CdkOverlayOrigin, ConnectionPositionPair } 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 { Observable, of, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { isValid } from 'date-fns';\n\nimport { slideMotion } from 'ng-zorro-antd/core/animation';\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { warn } from 'ng-zorro-antd/core/logger';\nimport { BooleanInput, NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { InputBoolean, isNil } from 'ng-zorro-antd/core/util';\nimport { DateHelperService, NzI18nInterface, NzI18nService } from 'ng-zorro-antd/i18n';\n\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'timePicker';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'nz-time-picker',\n  exportAs: 'nzTimePicker',\n  template: `\n    <div class=\"ant-picker-input\">\n      <input\n        #inputElement\n        [attr.id]=\"nzId\"\n        type=\"text\"\n        [size]=\"inputSize\"\n        autocomplete=\"off\"\n        [placeholder]=\"nzPlaceHolder || (i18nPlaceHolder$ | async)\"\n        [(ngModel)]=\"inputValue\"\n        [disabled]=\"nzDisabled\"\n        (focus)=\"onFocus(true)\"\n        (blur)=\"onFocus(false)\"\n        (keyup.enter)=\"onKeyupEnter()\"\n        (keyup.escape)=\"onKeyupEsc()\"\n        (ngModelChange)=\"onInputChange($event)\"\n      />\n      <span class=\"ant-picker-suffix\">\n        <ng-container *nzStringTemplateOutlet=\"nzSuffixIcon; let suffixIcon\">\n          <i nz-icon [nzType]=\"suffixIcon\"></i>\n        </ng-container>\n      </span>\n      <span *ngIf=\"nzAllowEmpty && !nzDisabled && value\" class=\"ant-picker-clear\" (click)=\"onClickClearBtn($event)\">\n        <i nz-icon nzType=\"close-circle\" nzTheme=\"fill\" [attr.aria-label]=\"nzClearText\" [attr.title]=\"nzClearText\"></i>\n      </span>\n    </div>\n\n    <ng-template\n      cdkConnectedOverlay\n      nzConnectedOverlay\n      [cdkConnectedOverlayHasBackdrop]=\"nzBackdrop\"\n      [cdkConnectedOverlayPositions]=\"overlayPositions\"\n      [cdkConnectedOverlayOrigin]=\"origin\"\n      [cdkConnectedOverlayOpen]=\"nzOpen\"\n      [cdkConnectedOverlayTransformOriginOn]=\"'.ant-picker-dropdown'\"\n      (detach)=\"close()\"\n      (overlayOutsideClick)=\"onClickOutside($event)\"\n    >\n      <div [@slideMotion]=\"'enter'\" class=\"ant-picker-dropdown\" style=\"position: relative\">\n        <div class=\"ant-picker-panel-container\">\n          <div tabindex=\"-1\" class=\"ant-picker-panel\">\n            <nz-time-picker-panel\n              [ngClass]=\"nzPopupClassName\"\n              [format]=\"nzFormat\"\n              [nzHourStep]=\"nzHourStep\"\n              [nzMinuteStep]=\"nzMinuteStep\"\n              [nzSecondStep]=\"nzSecondStep\"\n              [nzDisabledHours]=\"nzDisabledHours\"\n              [nzDisabledMinutes]=\"nzDisabledMinutes\"\n              [nzDisabledSeconds]=\"nzDisabledSeconds\"\n              [nzPlaceHolder]=\"nzPlaceHolder || (i18nPlaceHolder$ | async)\"\n              [nzHideDisabledOptions]=\"nzHideDisabledOptions\"\n              [nzUse12Hours]=\"nzUse12Hours\"\n              [nzDefaultOpenValue]=\"nzDefaultOpenValue\"\n              [nzAddOn]=\"nzAddOn\"\n              [nzClearText]=\"nzClearText\"\n              [nzNowText]=\"nzNowText\"\n              [nzOkText]=\"nzOkText\"\n              [nzAllowEmpty]=\"nzAllowEmpty\"\n              [(ngModel)]=\"value\"\n              (ngModelChange)=\"onPanelValueChange($event)\"\n              (closePanel)=\"setCurrentValueAndClose()\"\n            ></nz-time-picker-panel>\n          </div>\n        </div>\n      </div>\n    </ng-template>\n  `,\n  host: {\n    class: 'ant-picker',\n    '[class.ant-picker-large]': `nzSize === 'large'`,\n    '[class.ant-picker-small]': `nzSize === 'small'`,\n    '[class.ant-picker-disabled]': `nzDisabled`,\n    '[class.ant-picker-focused]': `focused`,\n    '[class.ant-picker-rtl]': `dir === 'rtl'`,\n    '(click)': 'open()'\n  },\n  animations: [slideMotion],\n  providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: NzTimePickerComponent, multi: true }]\n})\nexport class NzTimePickerComponent implements ControlValueAccessor, OnInit, AfterViewInit, OnChanges, OnDestroy {\n  readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n\n  static ngAcceptInputType_nzUse12Hours: BooleanInput;\n  static ngAcceptInputType_nzHideDisabledOptions: BooleanInput;\n  static ngAcceptInputType_nzAllowEmpty: BooleanInput;\n  static ngAcceptInputType_nzDisabled: BooleanInput;\n  static ngAcceptInputType_nzAutoFocus: 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  inputSize?: number;\n  i18nPlaceHolder$: Observable<string | undefined> = of(undefined);\n  overlayPositions: ConnectionPositionPair[] = [\n    {\n      offsetY: 3,\n      originX: 'start',\n      originY: 'bottom',\n      overlayX: 'start',\n      overlayY: 'top'\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  ] as ConnectionPositionPair[];\n  dir: Direction = 'ltr';\n\n  @ViewChild('inputElement', { static: true }) inputRef!: ElementRef<HTMLInputElement>;\n  @Input() nzId: string | null = null;\n  @Input() nzSize: string | null = null;\n  @Input() @WithConfig() nzHourStep: number = 1;\n  @Input() @WithConfig() nzMinuteStep: number = 1;\n  @Input() @WithConfig() nzSecondStep: number = 1;\n  @Input() @WithConfig() nzClearText: string = 'clear';\n  @Input() @WithConfig() nzNowText: string = '';\n  @Input() @WithConfig() nzOkText: string = '';\n  @Input() @WithConfig() nzPopupClassName: string = '';\n  @Input() nzPlaceHolder = '';\n  @Input() nzAddOn?: TemplateRef<void>;\n  @Input() nzDefaultOpenValue?: Date;\n  @Input() nzDisabledHours?: () => number[];\n  @Input() nzDisabledMinutes?: (hour: number) => number[];\n  @Input() nzDisabledSeconds?: (hour: number, minute: number) => number[];\n  @Input() @WithConfig() nzFormat: string = 'HH:mm:ss';\n  @Input() nzOpen = false;\n  @Input() @WithConfig() @InputBoolean() nzUse12Hours: boolean = false;\n  @Input() @WithConfig() nzSuffixIcon: string | TemplateRef<NzSafeAny> = 'clock-circle';\n\n  @Output() readonly nzOpenChange = new EventEmitter<boolean>();\n\n  @Input() @InputBoolean() nzHideDisabledOptions = false;\n  @Input() @WithConfig() @InputBoolean() nzAllowEmpty: boolean = true;\n  @Input() @InputBoolean() nzDisabled = false;\n  @Input() @InputBoolean() nzAutoFocus = false;\n  @Input() @WithConfig() nzBackdrop = 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.nzFormat);\n    this.cdr.markForCheck();\n  }\n\n  open(): void {\n    if (this.nzDisabled || this.nzOpen) {\n      return;\n    }\n    this.focus();\n    this.nzOpen = true;\n    this.nzOpenChange.emit(this.nzOpen);\n  }\n\n  close(): void {\n    this.nzOpen = false;\n    this.cdr.markForCheck();\n    this.nzOpenChange.emit(this.nzOpen);\n  }\n\n  updateAutoFocus(): void {\n    if (this.isInit && !this.nzDisabled) {\n      if (this.nzAutoFocus) {\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    if (!value) {\n      if (this.checkTimeValid(this.value)) {\n        this.setCurrentValueAndClose();\n      } else {\n        this.setValue(this.preValue);\n        this.close();\n      }\n    }\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.nzOpen && isValid(this.value)) {\n      this.setCurrentValueAndClose();\n    } else if (!this.nzOpen) {\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 nzConfigService: NzConfigService,\n    protected i18n: NzI18nService,\n    private element: ElementRef,\n    private renderer: Renderer2,\n    private cdr: ChangeDetectorRef,\n    private dateHelper: DateHelperService,\n    private platform: Platform,\n    @Optional() private directionality: Directionality\n  ) {}\n\n  ngOnInit(): void {\n    this.inputSize = Math.max(8, this.nzFormat.length) + 2;\n    this.origin = new CdkOverlayOrigin(this.element);\n\n    this.i18nPlaceHolder$ = this.i18n.localeChange.pipe(\n      map((nzLocale: NzI18nInterface) => nzLocale.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 { nzUse12Hours, nzFormat, nzDisabled, nzAutoFocus } = changes;\n    if (nzUse12Hours && !nzUse12Hours.previousValue && nzUse12Hours.currentValue && !nzFormat) {\n      this.nzFormat = 'h:mm:ss a';\n    }\n    if (nzDisabled) {\n      const value = nzDisabled.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 (nzAutoFocus) {\n      this.updateAutoFocus();\n    }\n  }\n\n  parseTimeString(str: string): void {\n    const value = this.dateHelper.parseTime(str, this.nzFormat) || 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.nzDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  private checkTimeValid(value: Date | null): boolean {\n    if (!value) {\n      return true;\n    }\n\n    const disabledHours = this.nzDisabledHours?.();\n    const disabledMinutes = this.nzDisabledMinutes?.(value.getHours());\n    const disabledSeconds = this.nzDisabledSeconds?.(value.getHours(), value.getMinutes());\n\n    return !(\n      disabledHours?.includes(value.getHours()) ||\n      disabledMinutes?.includes(value.getMinutes()) ||\n      disabledSeconds?.includes(value.getSeconds())\n    );\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';\n\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzOverlayModule } from 'ng-zorro-antd/core/overlay';\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NzTimePickerPanelComponent } from './time-picker-panel.component';\nimport { NzTimePickerComponent } from './time-picker.component';\n\n@NgModule({\n  declarations: [NzTimePickerComponent, NzTimePickerPanelComponent],\n  exports: [NzTimePickerPanelComponent, NzTimePickerComponent],\n  imports: [\n    BidiModule,\n    CommonModule,\n    FormsModule,\n    NzI18nModule,\n    OverlayModule,\n    NzIconModule,\n    NzOverlayModule,\n    NzOutletModule,\n    NzButtonModule\n  ]\n})\nexport class NzTimePickerModule {}\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":[],"mappings":"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"}