{"version":3,"file":"ng-zorro-antd-date-picker.mjs","sources":["../../components/date-picker/standard-types.ts","../../components/date-picker/util.ts","../../components/date-picker/lib/util.ts","../../components/date-picker/calendar-footer.component.ts","../../components/date-picker/date-picker.service.ts","../../components/date-picker/lib/abstract-panel-header.ts","../../components/date-picker/lib/decade-header.component.ts","../../components/date-picker/lib/abstract-panel-header.html","../../components/date-picker/lib/abstract-table.ts","../../components/date-picker/lib/decade-table.component.ts","../../components/date-picker/lib/abstract-table.html","../../components/date-picker/lib/year-header.component.ts","../../components/date-picker/lib/year-table.component.ts","../../components/date-picker/lib/quarter-header.component.ts","../../components/date-picker/lib/quarter-table.component.ts","../../components/date-picker/lib/month-header.component.ts","../../components/date-picker/lib/month-table.component.ts","../../components/date-picker/lib/date-header.component.ts","../../components/date-picker/lib/date-table.component.ts","../../components/date-picker/lib/lib-packer.module.ts","../../components/date-picker/lib/public-api.ts","../../components/date-picker/lib/index.ts","../../components/date-picker/inner-popup.component.ts","../../components/date-picker/date-range-popup.component.ts","../../components/date-picker/date-picker.component.ts","../../components/date-picker/month-picker.component.ts","../../components/date-picker/quarter-picker.component.ts","../../components/date-picker/range-picker.component.ts","../../components/date-picker/week-picker.component.ts","../../components/date-picker/year-picker.component.ts","../../components/date-picker/date-picker.module.ts","../../components/date-picker/public-api.ts","../../components/date-picker/ng-zorro-antd-date-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 { TemplateRef } from '@angular/core';\n\nexport type DisabledDateFn = (d: Date) => boolean;\n\nexport type DisabledTimePartial = 'start' | 'end';\n\nexport type NzDateMode = 'decade' | 'year' | 'quarter' | 'month' | 'week' | 'date' | 'time';\n\nexport type RangePartType = 'left' | 'right';\n\nexport type CompatibleDate = Date | Date[];\n\nexport type DisabledTimeFn = (current: Date | Date[], partial?: DisabledTimePartial) => DisabledTimeConfig | undefined;\n\nexport type NzPanelChangeType =\n  | { mode: NzDateMode; date: Date }\n  | {\n      mode: [startMode: NzDateMode, endMode: NzDateMode];\n      date: [startDate: Date, endDate: Date];\n    };\n\nexport interface DisabledTimeConfig {\n  nzDisabledHours(): number[];\n\n  nzDisabledMinutes(hour: number): number[];\n\n  nzDisabledSeconds(hour: number, minute: number): number[];\n}\n\nexport interface SupportTimeOptions {\n  nzFormat?: string;\n  nzHourStep?: number;\n  nzMinuteStep?: number;\n  nzSecondStep?: number;\n\n  nzDisabledHours?(): number[];\n\n  nzDisabledMinutes?(hour: number): number[];\n\n  nzDisabledSeconds?(hour: number, minute: number): number[];\n\n  nzHideDisabledOptions?: boolean;\n  nzDefaultOpenValue?: Date;\n  nzAddOn?: TemplateRef<void>;\n  nzUse12Hours?: boolean;\n}\n\nexport interface PresetRanges {\n  [key: string]: Date[] | (() => Date[]);\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 { CandyDate } from 'ng-zorro-antd/core/time';\n\nimport { DisabledDateFn, DisabledTimeConfig, DisabledTimeFn } from './standard-types';\n\nexport const PREFIX_CLASS = 'ant-picker';\n\nconst defaultDisabledTime: DisabledTimeConfig = {\n  nzDisabledHours(): number[] {\n    return [];\n  },\n  nzDisabledMinutes(): number[] {\n    return [];\n  },\n  nzDisabledSeconds(): number[] {\n    return [];\n  }\n};\n\nexport function getTimeConfig(value: CandyDate, disabledTime?: DisabledTimeFn): DisabledTimeConfig {\n  let disabledTimeConfig = disabledTime ? disabledTime(value && value.nativeDate) : ({} as DisabledTimeConfig);\n  disabledTimeConfig = {\n    ...defaultDisabledTime,\n    ...disabledTimeConfig\n  };\n  return disabledTimeConfig;\n}\n\nexport function isTimeValidByConfig(value: CandyDate, disabledTimeConfig: DisabledTimeConfig): boolean {\n  let invalidTime = false;\n  if (value) {\n    const hour = value.getHours();\n    const minutes = value.getMinutes();\n    const seconds = value.getSeconds();\n    const disabledHours = disabledTimeConfig.nzDisabledHours();\n    if (disabledHours.indexOf(hour) === -1) {\n      const disabledMinutes = disabledTimeConfig.nzDisabledMinutes(hour);\n      if (disabledMinutes.indexOf(minutes) === -1) {\n        const disabledSeconds = disabledTimeConfig.nzDisabledSeconds(hour, minutes);\n        invalidTime = disabledSeconds.indexOf(seconds) !== -1;\n      } else {\n        invalidTime = true;\n      }\n    } else {\n      invalidTime = true;\n    }\n  }\n  return !invalidTime;\n}\n\nexport function isTimeValid(value: CandyDate, disabledTime: DisabledTimeFn): boolean {\n  const disabledTimeConfig = getTimeConfig(value, disabledTime);\n  return isTimeValidByConfig(value, disabledTimeConfig);\n}\n\nexport function isAllowedDate(value: CandyDate, disabledDate?: DisabledDateFn, disabledTime?: DisabledTimeFn): boolean {\n  if (!value) {\n    return false;\n  }\n  if (disabledDate) {\n    if (disabledDate(value.nativeDate)) {\n      return false;\n    }\n  }\n  if (disabledTime) {\n    if (!isTimeValid(value, disabledTime)) {\n      return false;\n    }\n  }\n  return true;\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\n/**\n * Compatible translate the moment-like format pattern to angular's pattern\n * Why? For now, we need to support the existing language formats in AntD, and AntD uses the default temporal syntax.\n *\n * TODO: compare and complete all format patterns\n * Each format docs as below:\n *\n * @link https://momentjs.com/docs/#/displaying/format/\n * @link https://angular.io/api/common/DatePipe#description\n * @param format input format pattern\n */\nexport function transCompatFormat(format: string): string {\n  return (\n    format &&\n    format\n      .replace(/Y/g, 'y') // only support y, yy, yyy, yyyy\n      .replace(/D/g, 'd')\n  ); // d, dd represent of D, DD for momentjs, others are not support\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 { NgTemplateOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation,\n  booleanAttribute,\n  inject\n} from '@angular/core';\n\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { DateHelperService, NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';\n\nimport { transCompatFormat } from './lib/util';\nimport { PREFIX_CLASS } from './util';\n\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'calendar-footer',\n  imports: [NgTemplateOutlet, NzButtonModule, NzStringTemplateOutletDirective],\n  template: `\n    <div class=\"{{ prefixCls }}-footer\">\n      @if (extraFooter) {\n        <div class=\"{{ prefixCls }}-footer-extra\">\n          <ng-template [nzStringTemplateOutlet]=\"extraFooter\">{{ extraFooter }}</ng-template>\n        </div>\n      }\n\n      @if (showToday) {\n        <a\n          class=\"{{ prefixCls }}-today-btn {{ isTodayDisabled ? prefixCls + '-today-btn-disabled' : '' }}\"\n          role=\"button\"\n          (click)=\"isTodayDisabled ? null : onClickToday()\"\n          title=\"{{ todayTitle }}\"\n        >\n          {{ locale.today }}\n        </a>\n      }\n\n      @if (hasTimePicker || rangeQuickSelector) {\n        <ul class=\"{{ prefixCls }}-ranges\">\n          <ng-container *ngTemplateOutlet=\"rangeQuickSelector\" />\n          @if (showNow) {\n            <li class=\"{{ prefixCls }}-now\">\n              <a class=\"{{ prefixCls }}-now-btn\" (click)=\"isTodayDisabled ? null : onClickToday()\">\n                {{ locale.now }}\n              </a>\n            </li>\n          }\n\n          @if (hasTimePicker) {\n            <li class=\"{{ prefixCls }}-ok\">\n              <button\n                nz-button\n                type=\"button\"\n                nzType=\"primary\"\n                nzSize=\"small\"\n                [disabled]=\"okDisabled\"\n                (click)=\"okDisabled ? null : clickOk.emit()\"\n              >\n                {{ locale.ok }}\n              </button>\n            </li>\n          }\n        </ul>\n      }\n    </div>\n  `,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CalendarFooterComponent implements OnChanges {\n  private dateHelper = inject(DateHelperService);\n  @Input() locale!: NzCalendarI18nInterface;\n  @Input({ transform: booleanAttribute }) showToday: boolean = false;\n  @Input({ transform: booleanAttribute }) showNow: boolean = false;\n  @Input({ transform: booleanAttribute }) hasTimePicker: boolean = false;\n  @Input({ transform: booleanAttribute }) isRange: boolean = false;\n\n  @Input({ transform: booleanAttribute }) okDisabled: boolean = false;\n  @Input() disabledDate?: (d: Date) => boolean;\n  @Input() extraFooter?: TemplateRef<void> | string;\n  @Input() rangeQuickSelector: TemplateRef<NzSafeAny> | null = null;\n\n  @Output() readonly clickOk = new EventEmitter<void>();\n  @Output() readonly clickToday = new EventEmitter<CandyDate>();\n\n  prefixCls: string = PREFIX_CLASS;\n  isTodayDisabled: boolean = false;\n  todayTitle: string = '';\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const now: Date = new Date();\n    if (changes.disabledDate) {\n      this.isTodayDisabled = !!(this.disabledDate && this.disabledDate(now));\n    }\n    if (changes.locale) {\n      // NOTE: Compat for DatePipe formatting rules\n      const dateFormat: string = transCompatFormat(this.locale.dateFormat);\n      this.todayTitle = this.dateHelper.format(now, dateFormat);\n    }\n  }\n\n  onClickToday(): void {\n    const now: CandyDate = new CandyDate();\n    this.clickToday.emit(now.clone()); // To prevent the \"now\" being modified from outside, we use clone\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 { Injectable, OnDestroy } from '@angular/core';\nimport { ReplaySubject, Subject } from 'rxjs';\n\nimport { CandyDate, cloneDate, CompatibleValue, NormalizedMode, normalizeRangeValue } from 'ng-zorro-antd/core/time';\n\nimport { CompatibleDate, NzDateMode, RangePartType } from './standard-types';\n\n@Injectable()\nexport class DatePickerService implements OnDestroy {\n  initialValue!: CompatibleValue;\n  value!: CompatibleValue;\n  activeDate?: CompatibleValue;\n  activeInput: RangePartType = 'left';\n  arrowLeft: number = 0;\n  isRange = false;\n\n  valueChange$ = new ReplaySubject<CompatibleValue>(1);\n  emitValue$ = new Subject<void>();\n  inputPartChange$ = new Subject<RangePartType | null>();\n\n  initValue(reset: boolean = false): void {\n    if (reset) {\n      this.initialValue = this.isRange ? [] : null;\n    }\n\n    this.setValue(this.initialValue);\n  }\n\n  hasValue(value: CompatibleValue = this.value): boolean {\n    if (Array.isArray(value)) {\n      return !!value[0] || !!value[1];\n    } else {\n      return !!value;\n    }\n  }\n\n  makeValue(value?: CompatibleDate): CompatibleValue {\n    if (this.isRange) {\n      return value ? (value as Date[]).map(val => new CandyDate(val)) : [];\n    } else {\n      return value ? new CandyDate(value as Date) : null;\n    }\n  }\n\n  setActiveDate(value: CompatibleValue, hasTimePicker: boolean = false, mode: NormalizedMode = 'month'): void {\n    const parentPanels: Partial<Record<NzDateMode, NormalizedMode>> = {\n      date: 'month',\n      month: 'year',\n      quarter: 'year',\n      year: 'decade'\n    };\n    if (this.isRange) {\n      this.activeDate = normalizeRangeValue(value as CandyDate[], hasTimePicker, parentPanels[mode], this.activeInput);\n    } else {\n      this.activeDate = cloneDate(value);\n    }\n  }\n\n  setValue(value: CompatibleValue): void {\n    this.value = value;\n    this.valueChange$.next(this.value);\n  }\n\n  getActiveIndex(part: RangePartType = this.activeInput): number {\n    return { left: 0, right: 1 }[part];\n  }\n\n  ngOnDestroy(): void {\n    this.valueChange$.complete();\n    this.emitValue$.complete();\n    this.inputPartChange$.complete();\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  booleanAttribute,\n  Directive,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChanges\n} from '@angular/core';\n\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';\n\nimport { NzDateMode, NzPanelChangeType } from '../standard-types';\nimport { PanelSelector } from './interface';\n\n@Directive()\nexport abstract class AbstractPanelHeader implements OnInit, OnChanges {\n  prefixCls: string = `ant-picker-header`;\n  selectors: PanelSelector[] = [];\n  mode!: NzDateMode;\n\n  @Input() value!: CandyDate;\n  @Input() locale!: NzCalendarI18nInterface;\n  @Input({ transform: booleanAttribute }) showSuperPreBtn: boolean = true;\n  @Input({ transform: booleanAttribute }) showSuperNextBtn: boolean = true;\n  @Input({ transform: booleanAttribute }) showPreBtn: boolean = true;\n  @Input({ transform: booleanAttribute }) showNextBtn: boolean = true;\n\n  @Output() readonly panelChange = new EventEmitter<NzPanelChangeType>();\n  @Output() readonly valueChange = new EventEmitter<CandyDate>();\n\n  abstract getSelectors(): PanelSelector[];\n\n  superPreviousTitle(): string {\n    return this.locale.previousYear;\n  }\n\n  previousTitle(): string {\n    return this.locale.previousMonth;\n  }\n\n  superNextTitle(): string {\n    return this.locale.nextYear;\n  }\n\n  nextTitle(): string {\n    return this.locale.nextMonth;\n  }\n\n  superPrevious(): void {\n    this.changeValue(this.value.addYears(-1));\n  }\n\n  superNext(): void {\n    this.changeValue(this.value.addYears(1));\n  }\n\n  previous(): void {\n    this.changeValue(this.value.addMonths(-1));\n  }\n\n  next(): void {\n    this.changeValue(this.value.addMonths(1));\n  }\n\n  changeValue(value: CandyDate): void {\n    if (this.value !== value) {\n      this.value = value;\n      this.valueChange.emit(this.value);\n      this.changeMode(this.mode);\n      this.render();\n    }\n  }\n\n  changeMode(mode: NzDateMode): void {\n    this.panelChange.emit({ mode, date: this.value.nativeDate });\n  }\n\n  private render(): void {\n    if (this.value) {\n      this.selectors = this.getSelectors();\n    }\n  }\n\n  ngOnInit(): void {\n    if (!this.value) {\n      this.value = new CandyDate(); // Show today by default\n    }\n    this.selectors = this.getSelectors();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.value || changes.locale) {\n      this.render();\n    }\n  }\n\n  trackBySelector(selector: PanelSelector): string {\n    return `${selector.title}-${selector.label}`;\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 { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { NzDateMode } from '../standard-types';\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'decade-header', // eslint-disable-line @angular-eslint/component-selector\n  templateUrl: './abstract-panel-header.html'\n})\nexport class DecadeHeaderComponent extends AbstractPanelHeader {\n  override previous(): void {}\n\n  override next(): void {}\n\n  override mode: NzDateMode = 'decade';\n\n  get startYear(): number {\n    return parseInt(`${this.value.getYear() / 100}`, 10) * 100;\n  }\n\n  get endYear(): number {\n    return this.startYear + 99;\n  }\n\n  override superPrevious(): void {\n    this.changeValue(this.value.addYears(-100));\n  }\n\n  override superNext(): void {\n    this.changeValue(this.value.addYears(100));\n  }\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-decade-btn`,\n        title: '',\n        onClick: () => {},\n        label: `${this.startYear}-${this.endYear}`\n      }\n    ];\n  }\n}\n","<div class=\"{{ prefixCls }}\">\n  <button\n    [style.visibility]=\"showSuperPreBtn ? 'visible' : 'hidden'\"\n    class=\"{{ prefixCls }}-super-prev-btn\"\n    role=\"button\"\n    type=\"button\"\n    tabindex=\"-1\"\n    title=\"{{ superPreviousTitle() }}\"\n    (click)=\"superPrevious()\"\n  >\n    <span class=\"ant-picker-super-prev-icon\"></span>\n  </button>\n  <button\n    [style.visibility]=\"showPreBtn ? 'visible' : 'hidden'\"\n    class=\"{{ prefixCls }}-prev-btn\"\n    role=\"button\"\n    type=\"button\"\n    title=\"{{ previousTitle() }}\"\n    tabindex=\"-1\"\n    (click)=\"previous()\"\n  >\n    <span class=\"ant-picker-prev-icon\"></span>\n  </button>\n\n  <div class=\"{{ prefixCls }}-view\">\n    @for (selector of selectors; track trackBySelector(selector)) {\n      <button\n        class=\"{{ selector.className }}\"\n        role=\"button\"\n        type=\"button\"\n        title=\"{{ selector.title || null }}\"\n        (click)=\"selector.onClick()\"\n      >\n        {{ selector.label }}\n      </button>\n    }\n  </div>\n  <button\n    [style.visibility]=\"showNextBtn ? 'visible' : 'hidden'\"\n    class=\"{{ prefixCls }}-next-btn\"\n    role=\"button\"\n    type=\"button\"\n    tabindex=\"-1\"\n    title=\"{{ nextTitle() }}\"\n    (click)=\"next()\"\n  >\n    <span class=\"ant-picker-next-icon\"></span>\n  </button>\n  <button\n    [style.visibility]=\"showSuperNextBtn ? 'visible' : 'hidden'\"\n    class=\"{{ prefixCls }}-super-next-btn\"\n    role=\"button\"\n    type=\"button\"\n    tabindex=\"-1\"\n    title=\"{{ superNextTitle() }}\"\n    (click)=\"superNext()\"\n  >\n    <span class=\"ant-picker-super-next-icon\"></span>\n  </button>\n</div>\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  Directive,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  SimpleChanges,\n  TemplateRef,\n  booleanAttribute\n} from '@angular/core';\n\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { FunctionProp } from 'ng-zorro-antd/core/types';\nimport { NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';\n\nimport { DateBodyRow, DateCell } from './interface';\n\n@Directive()\nexport abstract class AbstractTable implements OnInit, OnChanges {\n  headRow: DateCell[] = [];\n  bodyRows: DateBodyRow[] = [];\n  MAX_ROW = 6;\n  MAX_COL = 7;\n\n  @Input() prefixCls: string = 'ant-picker';\n  @Input() value!: CandyDate;\n  @Input() locale!: NzCalendarI18nInterface;\n  @Input() activeDate: CandyDate = new CandyDate();\n  @Input({ transform: booleanAttribute }) showWeek: boolean = false;\n  @Input() selectedValue: CandyDate[] = []; // Range ONLY\n  @Input() hoverValue: CandyDate[] = []; // Range ONLY\n  @Input() disabledDate?: (d: Date) => boolean;\n  @Input() cellRender?: string | TemplateRef<Date> | FunctionProp<TemplateRef<Date> | string>;\n  @Input() fullCellRender?: string | TemplateRef<Date> | FunctionProp<TemplateRef<Date> | string>;\n  @Input({ transform: booleanAttribute }) canSelectWeek: boolean = false;\n\n  @Output() readonly valueChange = new EventEmitter<CandyDate>();\n  @Output() readonly cellHover = new EventEmitter<CandyDate>(); // Emitted when hover on a day by mouse enter\n\n  protected render(): void {\n    if (this.activeDate) {\n      this.headRow = this.makeHeadRow();\n      this.bodyRows = this.makeBodyRows();\n    }\n  }\n\n  hasRangeValue(): boolean {\n    return this.selectedValue?.length > 0 || this.hoverValue?.length > 0;\n  }\n\n  getClassMap(cell: DateCell): Record<string, boolean> {\n    return {\n      [`ant-picker-cell`]: true,\n      [`ant-picker-cell-in-view`]: true,\n      [`ant-picker-cell-selected`]: cell.isSelected,\n      [`ant-picker-cell-disabled`]: cell.isDisabled,\n      [`ant-picker-cell-in-range`]: !!cell.isInSelectedRange,\n      [`ant-picker-cell-range-start`]: !!cell.isSelectedStart,\n      [`ant-picker-cell-range-end`]: !!cell.isSelectedEnd,\n      [`ant-picker-cell-range-start-single`]: !!cell.isStartSingle,\n      [`ant-picker-cell-range-end-single`]: !!cell.isEndSingle,\n      [`ant-picker-cell-range-hover`]: !!cell.isInHoverRange,\n      [`ant-picker-cell-range-hover-start`]: !!cell.isHoverStart,\n      [`ant-picker-cell-range-hover-end`]: !!cell.isHoverEnd,\n      [`ant-picker-cell-range-hover-edge-start`]: !!cell.isFirstCellInPanel,\n      [`ant-picker-cell-range-hover-edge-end`]: !!cell.isLastCellInPanel,\n      [`ant-picker-cell-range-start-near-hover`]: !!cell.isRangeStartNearHover,\n      [`ant-picker-cell-range-end-near-hover`]: !!cell.isRangeEndNearHover\n    };\n  }\n\n  abstract makeHeadRow(): DateCell[];\n  abstract makeBodyRows(): DateBodyRow[];\n\n  ngOnInit(): void {\n    this.render();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.activeDate && !changes.activeDate.currentValue) {\n      this.activeDate = new CandyDate();\n    }\n\n    if (\n      changes.disabledDate ||\n      changes.locale ||\n      changes.showWeek ||\n      changes.selectWeek ||\n      this.isDateRealChange(changes.activeDate) ||\n      this.isDateRealChange(changes.value) ||\n      this.isDateRealChange(changes.selectedValue) ||\n      this.isDateRealChange(changes.hoverValue)\n    ) {\n      this.render();\n    }\n  }\n\n  private isDateRealChange(change: SimpleChange): boolean {\n    if (change) {\n      const previousValue: CandyDate | CandyDate[] = change.previousValue;\n      const currentValue: CandyDate | CandyDate[] = change.currentValue;\n      if (Array.isArray(currentValue)) {\n        return (\n          !Array.isArray(previousValue) ||\n          currentValue.length !== previousValue.length ||\n          currentValue.some((value, index) => {\n            const previousCandyDate = previousValue[index];\n            return previousCandyDate instanceof CandyDate\n              ? previousCandyDate.isSameDay(value)\n              : previousCandyDate !== value;\n          })\n        );\n      } else {\n        return !this.isSameDate(previousValue as CandyDate, currentValue);\n      }\n    }\n    return false;\n  }\n\n  private isSameDate(left: CandyDate, right: CandyDate): boolean {\n    return (!left && !right) || (left && right && right.isSameDay(left));\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 { ChangeDetectionStrategy, Component, OnChanges, ViewEncapsulation } from '@angular/core';\n\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\n\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell, DecadeCell } from './interface';\n\nconst MAX_ROW = 4;\nconst MAX_COL = 3;\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'decade-table',\n  templateUrl: 'abstract-table.html',\n  imports: [NzStringTemplateOutletDirective]\n})\nexport class DecadeTableComponent extends AbstractTable implements OnChanges {\n  get startYear(): number {\n    return parseInt(`${this.activeDate.getYear() / 100}`, 10) * 100;\n  }\n\n  get endYear(): number {\n    return this.startYear + 99;\n  }\n\n  makeHeadRow(): DateCell[] {\n    return [];\n  }\n\n  makeBodyRows(): DateBodyRow[] {\n    const decades: DateBodyRow[] = [];\n    const currentYear = this.value && this.value.getYear();\n    const startYear = this.startYear;\n    const endYear = this.endYear;\n    const previousYear = startYear - 10;\n\n    let index = 0;\n    for (let rowIndex = 0; rowIndex < MAX_ROW; rowIndex++) {\n      const row: DateBodyRow = {\n        dateCells: [],\n        trackByIndex: rowIndex\n      };\n\n      for (let colIndex = 0; colIndex < MAX_COL; colIndex++) {\n        const start = previousYear + index * 10;\n        const end = previousYear + index * 10 + 9;\n        const content = `${start}-${end}`;\n\n        const cell: DecadeCell = {\n          trackByIndex: colIndex,\n          value: this.activeDate.setYear(start).nativeDate,\n          content,\n          title: content,\n          isDisabled: false,\n          isSelected: currentYear >= start && currentYear <= end,\n          isLowerThanStart: end < startYear,\n          isBiggerThanEnd: start > endYear,\n          classMap: {},\n          onClick(): void {},\n          onMouseEnter(): void {}\n        };\n\n        cell.classMap = this.getClassMap(cell);\n        cell.onClick = () => this.chooseDecade(start);\n        index++;\n        row.dateCells.push(cell);\n      }\n\n      decades.push(row);\n    }\n    return decades;\n  }\n\n  override getClassMap(cell: DecadeCell): Record<string, boolean> {\n    return {\n      [`${this.prefixCls}-cell`]: true,\n      [`${this.prefixCls}-cell-in-view`]: !cell.isBiggerThanEnd && !cell.isLowerThanStart,\n      [`${this.prefixCls}-cell-selected`]: cell.isSelected,\n      [`${this.prefixCls}-cell-disabled`]: cell.isDisabled\n    };\n  }\n\n  private chooseDecade(year: number): void {\n    this.value = this.activeDate.setYear(year);\n    this.valueChange.emit(this.value);\n  }\n}\n","<table class=\"ant-picker-content\" cellspacing=\"0\" role=\"grid\">\n  @if (headRow && headRow.length > 0) {\n    <thead>\n      <tr role=\"row\">\n        @if (showWeek) {\n          <th role=\"columnheader\"></th>\n        }\n        @for (cell of headRow; track $index) {\n          <th role=\"columnheader\" [title]=\"cell.title\"> {{ cell.content }}</th>\n        }\n      </tr>\n    </thead>\n  }\n\n  <tbody>\n    @for (row of bodyRows; track row.trackByIndex) {\n      <tr [class]=\"row.classMap!\" role=\"row\">\n        @if (row.weekNum) {\n          <td role=\"gridcell\" class=\"{{ prefixCls }}-cell-week\"> {{ row.weekNum }}</td>\n        }\n        @for (cell of row.dateCells; track cell.trackByIndex) {\n          <td\n            [title]=\"cell.title\"\n            role=\"gridcell\"\n            [class]=\"cell.classMap!\"\n            (click)=\"cell.isDisabled ? null : cell.onClick()\"\n            (mouseenter)=\"cell.onMouseEnter()\"\n          >\n            @switch (prefixCls) {\n              @case ('ant-picker') {\n                @if (cell.cellRender) {\n                  <ng-template\n                    [nzStringTemplateOutlet]=\"cell.cellRender\"\n                    [nzStringTemplateOutletContext]=\"{ $implicit: cell.value }\"\n                  >\n                    {{ cell.cellRender }}\n                  </ng-template>\n                } @else {\n                  <div\n                    class=\"{{ prefixCls }}-cell-inner\"\n                    [attr.aria-selected]=\"cell.isSelected\"\n                    [attr.aria-disabled]=\"cell.isDisabled\"\n                  >\n                    {{ cell.content }}\n                  </div>\n                }\n              }\n              @case ('ant-picker-calendar') {\n                <div\n                  class=\"{{ prefixCls }}-date ant-picker-cell-inner\"\n                  [class.ant-picker-calendar-date-today]=\"cell.isToday\"\n                >\n                  @if (cell.fullCellRender) {\n                    <ng-container *nzStringTemplateOutlet=\"cell.fullCellRender; context: { $implicit: cell.value }\">\n                      {{ cell.fullCellRender }}\n                    </ng-container>\n                  } @else {\n                    <div class=\"{{ prefixCls }}-date-value\">{{ cell.content }}</div>\n                    <div class=\"{{ prefixCls }}-date-content\">\n                      <ng-container *nzStringTemplateOutlet=\"cell.cellRender; context: { $implicit: cell.value }\">\n                        {{ cell.cellRender }}\n                      </ng-container>\n                    </div>\n                  }\n                </div>\n              }\n            }\n          </td>\n        }\n      </tr>\n    }\n  </tbody>\n</table>\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 { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { NzDateMode } from '../standard-types';\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'year-header', // eslint-disable-line @angular-eslint/component-selector\n  templateUrl: './abstract-panel-header.html'\n})\nexport class YearHeaderComponent extends AbstractPanelHeader {\n  override mode: NzDateMode = 'year';\n\n  get startYear(): number {\n    return parseInt(`${this.value.getYear() / 10}`, 10) * 10;\n  }\n\n  get endYear(): number {\n    return this.startYear + 9;\n  }\n\n  override superPrevious(): void {\n    this.changeValue(this.value.addYears(-10));\n  }\n\n  override superNext(): void {\n    this.changeValue(this.value.addYears(10));\n  }\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-year-btn`,\n        title: '',\n        onClick: () => {\n          this.mode = 'decade';\n          this.changeMode('decade');\n        },\n        label: `${this.startYear}-${this.endYear}`\n      }\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 { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\n\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\n\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell, YearCell } from './interface';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'year-table',\n  templateUrl: 'abstract-table.html',\n  imports: [NzStringTemplateOutletDirective]\n})\nexport class YearTableComponent extends AbstractTable {\n  private readonly dateHelper = inject(DateHelperService);\n\n  override MAX_ROW = 4;\n  override MAX_COL = 3;\n\n  makeHeadRow(): DateCell[] {\n    return [];\n  }\n\n  makeBodyRows(): DateBodyRow[] {\n    const currentYear = this.activeDate && this.activeDate.getYear();\n    const startYear = parseInt(`${currentYear / 10}`, 10) * 10;\n    const endYear = startYear + 9;\n    const previousYear = startYear - 1;\n    const years: DateBodyRow[] = [];\n    let yearValue = 0;\n\n    for (let rowIndex = 0; rowIndex < this.MAX_ROW; rowIndex++) {\n      const row: DateBodyRow = {\n        dateCells: [],\n        trackByIndex: rowIndex\n      };\n      for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n        const yearNum = previousYear + yearValue;\n        const year = this.activeDate.setYear(yearNum);\n        const content = this.dateHelper.format(year.nativeDate, 'yyyy');\n        const isDisabled = this.isDisabledYear(year);\n        const cell: YearCell = {\n          trackByIndex: colIndex,\n          value: year.nativeDate,\n          isDisabled,\n          isSameDecade: yearNum >= startYear && yearNum <= endYear,\n          isSelected: yearNum === (this.value && this.value.getYear()),\n          content,\n          title: content,\n          classMap: {},\n          isLastCellInPanel: year.getYear() === endYear,\n          isFirstCellInPanel: year.getYear() === startYear,\n          cellRender: valueFunctionProp(this.cellRender!, year), // Customized content\n          fullCellRender: valueFunctionProp(this.fullCellRender!, year),\n          onClick: () => this.chooseYear(cell.value.getFullYear()), // don't use yearValue here,\n          onMouseEnter: () => this.cellHover.emit(year)\n        };\n\n        this.addCellProperty(cell, year);\n        row.dateCells.push(cell);\n        yearValue++;\n      }\n      years.push(row);\n    }\n    return years;\n  }\n\n  override getClassMap(cell: YearCell): Record<string, boolean> {\n    return {\n      ...super.getClassMap(cell),\n      [`ant-picker-cell-in-view`]: !!cell.isSameDecade\n    };\n  }\n\n  private isDisabledYear(year: CandyDate): boolean {\n    if (!this.disabledDate) {\n      return false;\n    }\n\n    const firstOfMonth = year.setMonth(0).setDate(1);\n\n    for (let date = firstOfMonth; date.getYear() === year.getYear(); date = date.addDays(1)) {\n      if (!this.disabledDate(date.nativeDate)) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  private addCellProperty(cell: DateCell, year: CandyDate): void {\n    if (this.hasRangeValue()) {\n      const [startHover, endHover] = this.hoverValue;\n      const [startSelected, endSelected] = this.selectedValue;\n      // Selected\n      if (startSelected?.isSameYear(year)) {\n        cell.isSelectedStart = true;\n        cell.isSelected = true;\n      }\n\n      if (endSelected?.isSameYear(year)) {\n        cell.isSelectedEnd = true;\n        cell.isSelected = true;\n      }\n\n      if (startHover && endHover) {\n        cell.isHoverStart = startHover.isSameYear(year);\n        cell.isHoverEnd = endHover.isSameYear(year);\n        cell.isInHoverRange = startHover.isBeforeYear(year) && year.isBeforeYear(endHover);\n      }\n      cell.isStartSingle = startSelected && !endSelected;\n      cell.isEndSingle = !startSelected && endSelected;\n      cell.isInSelectedRange = startSelected?.isBeforeYear(year) && year?.isBeforeYear(endSelected);\n      cell.isRangeStartNearHover = startSelected && cell.isInHoverRange;\n      cell.isRangeEndNearHover = endSelected && cell.isInHoverRange;\n    } else if (year.isSameYear(this.value)) {\n      cell.isSelected = true;\n    }\n    cell.classMap = this.getClassMap(cell);\n  }\n\n  private chooseYear(year: number): void {\n    this.value = this.activeDate.setYear(year);\n    this.valueChange.emit(this.value);\n    this.render();\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 { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\n\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\n\nimport { NzDateMode } from '../standard-types';\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\nimport { transCompatFormat } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'quarter-header', // eslint-disable-line @angular-eslint/component-selector\n  templateUrl: './abstract-panel-header.html'\n})\nexport class QuarterHeaderComponent extends AbstractPanelHeader {\n  private readonly dateHelper = inject(DateHelperService);\n\n  override mode: NzDateMode = 'quarter';\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-quarter-btn`,\n        title: this.locale.yearSelect,\n        onClick: () => {\n          this.mode = 'year';\n          this.changeMode('year');\n        },\n        label: this.dateHelper.format(this.value.nativeDate, transCompatFormat(this.locale.yearFormat))\n      }\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 { ChangeDetectionStrategy, Component, inject, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { startOfQuarter } from 'date-fns';\n\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\n\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell } from './interface';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'quarter-table',\n  templateUrl: 'abstract-table.html',\n  imports: [NzStringTemplateOutletDirective]\n})\nexport class QuarterTableComponent extends AbstractTable implements OnChanges, OnInit {\n  private readonly dateHelper = inject(DateHelperService);\n\n  override MAX_ROW = 1;\n  override MAX_COL = 4;\n\n  private changeValueFromInside(value: CandyDate): void {\n    this.activeDate = value.clone();\n    this.valueChange.emit(this.activeDate);\n\n    if (!this.activeDate.isSameQuarter(this.value)) {\n      this.render();\n    }\n  }\n\n  makeHeadRow(): DateCell[] {\n    return [];\n  }\n\n  makeBodyRows(): DateBodyRow[] {\n    const dateCells: DateCell[] = [];\n    const months: DateBodyRow[] = [{ dateCells, trackByIndex: 0 }];\n    let quarterValue = 1;\n\n    for (let colIndex = 1; colIndex <= this.MAX_COL; colIndex++, quarterValue++) {\n      const date = this.activeDate.setQuarter(quarterValue);\n      const isDisabled = this.isDisabledQuarter(date);\n      const content = this.dateHelper.format(date.nativeDate, '[Q]Q');\n      const cell: DateCell = {\n        trackByIndex: colIndex,\n        value: date.nativeDate,\n        isDisabled,\n        isSelected: date.isSameQuarter(this.value),\n        content,\n        title: content,\n        classMap: {},\n        cellRender: valueFunctionProp(this.cellRender!, date),\n        fullCellRender: valueFunctionProp(this.fullCellRender!, date),\n        onClick: () => this.changeValueFromInside(date),\n        onMouseEnter: () => this.cellHover.emit(date)\n      };\n\n      this.addCellProperty(cell, date);\n      dateCells.push(cell);\n    }\n    return months;\n  }\n\n  private isDisabledQuarter(quarter: CandyDate): boolean {\n    if (!this.disabledDate) {\n      return false;\n    }\n\n    const firstDayOfQuarter = new CandyDate(startOfQuarter(quarter.nativeDate));\n    for (let date = firstDayOfQuarter; date.getQuarter() === quarter.getQuarter(); date = date.addMonths(1)) {\n      if (!this.disabledDate(date.nativeDate)) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  private addCellProperty(cell: DateCell, month: CandyDate): void {\n    if (this.hasRangeValue()) {\n      const [startHover, endHover] = this.hoverValue;\n      const [startSelected, endSelected] = this.selectedValue;\n\n      if (startSelected?.isSameQuarter(month)) {\n        cell.isSelectedStart = true;\n        cell.isSelected = true;\n      }\n\n      if (endSelected?.isSameQuarter(month)) {\n        cell.isSelectedEnd = true;\n        cell.isSelected = true;\n      }\n\n      if (startHover && endHover) {\n        cell.isHoverStart = startHover.isSameQuarter(month);\n        cell.isHoverEnd = endHover.isSameQuarter(month);\n        cell.isLastCellInPanel = month.getQuarter() === 4;\n        cell.isFirstCellInPanel = month.getQuarter() === 1;\n        cell.isInHoverRange = startHover.isBeforeQuarter(month) && month.isBeforeQuarter(endHover);\n      }\n      cell.isStartSingle = startSelected && !endSelected;\n      cell.isEndSingle = !startSelected && endSelected;\n      cell.isInSelectedRange = startSelected?.isBeforeQuarter(month) && month?.isBeforeQuarter(endSelected);\n      cell.isRangeStartNearHover = startSelected && cell.isInHoverRange;\n      cell.isRangeEndNearHover = endSelected && cell.isInHoverRange;\n    } else if (month.isSameQuarter(this.value)) {\n      cell.isSelected = true;\n    }\n    cell.classMap = this.getClassMap(cell);\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 { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\n\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\n\nimport { NzDateMode } from '../standard-types';\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\nimport { transCompatFormat } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'month-header', // eslint-disable-line @angular-eslint/component-selector\n  templateUrl: './abstract-panel-header.html'\n})\nexport class MonthHeaderComponent extends AbstractPanelHeader {\n  private readonly dateHelper = inject(DateHelperService);\n\n  override mode: NzDateMode = 'month';\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-month-btn`,\n        title: this.locale.yearSelect,\n        onClick: () => {\n          this.mode = 'year';\n          this.changeMode('year');\n        },\n        label: this.dateHelper.format(this.value.nativeDate, transCompatFormat(this.locale.yearFormat))\n      }\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 { ChangeDetectionStrategy, Component, inject, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\n\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell } from './interface';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'month-table',\n  templateUrl: 'abstract-table.html',\n  imports: [NzStringTemplateOutletDirective]\n})\nexport class MonthTableComponent extends AbstractTable implements OnChanges, OnInit {\n  private readonly dateHelper = inject(DateHelperService);\n\n  override MAX_ROW = 4;\n  override MAX_COL = 3;\n\n  makeHeadRow(): DateCell[] {\n    return [];\n  }\n\n  makeBodyRows(): DateBodyRow[] {\n    const months: DateBodyRow[] = [];\n    let monthValue = 0;\n\n    for (let rowIndex = 0; rowIndex < this.MAX_ROW; rowIndex++) {\n      const row: DateBodyRow = {\n        dateCells: [],\n        trackByIndex: rowIndex\n      };\n\n      for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n        const month = this.activeDate.setMonth(monthValue);\n        const isDisabled = this.isDisabledMonth(month);\n        const content = this.dateHelper.format(month.nativeDate, 'MMM');\n        const cell: DateCell = {\n          trackByIndex: colIndex,\n          value: month.nativeDate,\n          isDisabled,\n          isSelected: month.isSameMonth(this.value),\n          content,\n          title: content,\n          classMap: {},\n          cellRender: valueFunctionProp(this.cellRender!, month), // Customized content\n          fullCellRender: valueFunctionProp(this.fullCellRender!, month),\n          onClick: () => this.chooseMonth(cell.value.getMonth()), // don't use monthValue here,\n          onMouseEnter: () => this.cellHover.emit(month)\n        };\n\n        this.addCellProperty(cell, month);\n        row.dateCells.push(cell);\n        monthValue++;\n      }\n      months.push(row);\n    }\n    return months;\n  }\n\n  private isDisabledMonth(month: CandyDate): boolean {\n    if (!this.disabledDate) {\n      return false;\n    }\n\n    const firstOfMonth = month.setDate(1);\n\n    for (let date = firstOfMonth; date.getMonth() === month.getMonth(); date = date.addDays(1)) {\n      if (!this.disabledDate(date.nativeDate)) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  private addCellProperty(cell: DateCell, month: CandyDate): void {\n    if (this.hasRangeValue()) {\n      const [startHover, endHover] = this.hoverValue;\n      const [startSelected, endSelected] = this.selectedValue;\n      // Selected\n      if (startSelected?.isSameMonth(month)) {\n        cell.isSelectedStart = true;\n        cell.isSelected = true;\n      }\n\n      if (endSelected?.isSameMonth(month)) {\n        cell.isSelectedEnd = true;\n        cell.isSelected = true;\n      }\n\n      if (startHover && endHover) {\n        cell.isHoverStart = startHover.isSameMonth(month);\n        cell.isHoverEnd = endHover.isSameMonth(month);\n        cell.isLastCellInPanel = month.getMonth() === 11;\n        cell.isFirstCellInPanel = month.getMonth() === 0;\n        cell.isInHoverRange = startHover.isBeforeMonth(month) && month.isBeforeMonth(endHover);\n      }\n      cell.isStartSingle = startSelected && !endSelected;\n      cell.isEndSingle = !startSelected && endSelected;\n      cell.isInSelectedRange = startSelected?.isBeforeMonth(month) && month?.isBeforeMonth(endSelected);\n      cell.isRangeStartNearHover = startSelected && cell.isInHoverRange;\n      cell.isRangeEndNearHover = endSelected && cell.isInHoverRange;\n    } else if (month.isSameMonth(this.value)) {\n      cell.isSelected = true;\n    }\n    cell.classMap = this.getClassMap(cell);\n  }\n\n  private chooseMonth(month: number): void {\n    this.value = this.activeDate.setMonth(month);\n    this.valueChange.emit(this.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 { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\n\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\n\nimport { NzDateMode } from '../standard-types';\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\nimport { transCompatFormat } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'date-header', // eslint-disable-line @angular-eslint/component-selector\n  templateUrl: './abstract-panel-header.html'\n})\nexport class DateHeaderComponent extends AbstractPanelHeader {\n  private readonly dateHelper = inject(DateHelperService);\n\n  override mode: NzDateMode = 'date';\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-year-btn`,\n        title: this.locale.yearSelect,\n        onClick: () => {\n          this.mode = 'year';\n          this.changeMode('year');\n        },\n        label: this.dateHelper.format(this.value.nativeDate, transCompatFormat(this.locale.yearFormat))\n      },\n      {\n        className: `${this.prefixCls}-month-btn`,\n        title: this.locale.monthSelect,\n        onClick: () => {\n          this.mode = 'month';\n          this.changeMode('month');\n        },\n        label: this.dateHelper.format(this.value.nativeDate, this.locale.monthFormat || 'MMM')\n      }\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 { ChangeDetectionStrategy, Component, inject, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport { DateHelperService, NzI18nService } from 'ng-zorro-antd/i18n';\n\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell } from './interface';\nimport { transCompatFormat } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'date-table',\n  templateUrl: './abstract-table.html',\n  imports: [NzStringTemplateOutletDirective]\n})\nexport class DateTableComponent extends AbstractTable implements OnChanges, OnInit {\n  @Input() format?: string;\n\n  private i18n = inject(NzI18nService);\n  private dateHelper = inject(DateHelperService);\n\n  private changeValueFromInside(value: CandyDate): void {\n    // Only change date, does not change time\n    this.activeDate = this.activeDate.setYear(value.getYear()).setMonth(value.getMonth()).setDate(value.getDate());\n    this.valueChange.emit(this.activeDate);\n\n    if (!this.activeDate.isSameMonth(this.value)) {\n      this.render();\n    }\n  }\n\n  makeHeadRow(): DateCell[] {\n    const weekDays: DateCell[] = [];\n    const start = this.activeDate.calendarStart({ weekStartsOn: this.dateHelper.getFirstDayOfWeek() });\n    for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n      const day = start.addDays(colIndex);\n      weekDays.push({\n        trackByIndex: null,\n        value: day.nativeDate,\n        title: this.dateHelper.format(day.nativeDate, 'E'), // eg. Tue\n        content: this.dateHelper.format(day.nativeDate, this.getVeryShortWeekFormat()), // eg. Tu,\n        isSelected: false,\n        isDisabled: false,\n        onClick(): void {},\n        onMouseEnter(): void {}\n      });\n    }\n    return weekDays;\n  }\n\n  private getVeryShortWeekFormat(): string {\n    return this.i18n.getLocaleId().toLowerCase().indexOf('zh') === 0 ? 'EEEEE' : 'EEEEEE'; // Use extreme short for chinese\n  }\n\n  makeBodyRows(): DateBodyRow[] {\n    const weekRows: DateBodyRow[] = [];\n    const firstDayOfMonth = this.activeDate.calendarStart({ weekStartsOn: this.dateHelper.getFirstDayOfWeek() });\n\n    for (let week = 0; week < this.MAX_ROW; week++) {\n      const weekStart = firstDayOfMonth.addDays(week * 7);\n      const row: DateBodyRow = {\n        isActive: false,\n        dateCells: [],\n        trackByIndex: week\n      };\n\n      for (let day = 0; day < 7; day++) {\n        const date = weekStart.addDays(day);\n        const dateFormat = transCompatFormat(\n          this.format ?? this.i18n.getLocaleData('DatePicker.lang.dateFormat', 'YYYY-MM-DD')\n        );\n        const title = this.dateHelper.format(date.nativeDate, dateFormat);\n        const label = this.dateHelper.format(date.nativeDate, 'dd');\n        const cell: DateCell = {\n          trackByIndex: day,\n          value: date.nativeDate,\n          label,\n          isSelected: false,\n          isDisabled: false,\n          isToday: false,\n          title,\n          cellRender: valueFunctionProp(this.cellRender!, date), // Customized content\n          fullCellRender: valueFunctionProp(this.fullCellRender!, date),\n          content: `${date.getDate()}`,\n          onClick: () => this.changeValueFromInside(date),\n          onMouseEnter: () => this.cellHover.emit(date)\n        };\n\n        this.addCellProperty(cell, date);\n\n        if (this.showWeek && !row.weekNum) {\n          row.weekNum = this.dateHelper.getISOWeek(date.nativeDate);\n        }\n        if (date.isSameDay(this.value)) {\n          row.isActive = date.isSameDay(this.value);\n        }\n        row.dateCells.push(cell);\n      }\n      row.classMap = {\n        [`ant-picker-week-panel-row`]: this.canSelectWeek,\n        [`ant-picker-week-panel-row-selected`]: this.canSelectWeek && row.isActive\n      };\n      weekRows.push(row);\n    }\n    return weekRows;\n  }\n\n  addCellProperty(cell: DateCell, date: CandyDate): void {\n    if (this.hasRangeValue() && !this.canSelectWeek) {\n      const [startHover, endHover] = this.hoverValue;\n      const [startSelected, endSelected] = this.selectedValue;\n      // Selected\n      if (startSelected?.isSameDay(date)) {\n        cell.isSelectedStart = true;\n        cell.isSelected = true;\n      }\n\n      if (endSelected?.isSameDay(date)) {\n        cell.isSelectedEnd = true;\n        cell.isSelected = true;\n      }\n\n      if (startHover && endHover) {\n        cell.isHoverStart = startHover.isSameDay(date);\n        cell.isHoverEnd = endHover.isSameDay(date);\n        cell.isLastCellInPanel = date.isLastDayOfMonth();\n        cell.isFirstCellInPanel = date.isFirstDayOfMonth();\n        cell.isInHoverRange = startHover.isBeforeDay(date) && date.isBeforeDay(endHover);\n      }\n      cell.isStartSingle = startSelected && !endSelected;\n      cell.isEndSingle = !startSelected && endSelected;\n      cell.isInSelectedRange = startSelected?.isBeforeDay(date) && date.isBeforeDay(endSelected);\n      cell.isRangeStartNearHover = startSelected && cell.isInHoverRange;\n      cell.isRangeEndNearHover = endSelected && cell.isInHoverRange;\n    }\n\n    cell.isToday = date.isToday();\n    cell.isSelected = date.isSameDay(this.value);\n    cell.isDisabled = !!this.disabledDate?.(date.nativeDate);\n    cell.classMap = this.getClassMap(cell);\n  }\n\n  override getClassMap(cell: DateCell): Record<string, boolean> {\n    const date = new CandyDate(cell.value);\n    return {\n      ...super.getClassMap(cell),\n      [`ant-picker-cell-today`]: !!cell.isToday,\n      [`ant-picker-cell-in-view`]: date.isSameMonth(this.activeDate)\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\n/**\n * A collection module of standard output for all lib components\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { DateHeaderComponent } from './date-header.component';\nimport { DateTableComponent } from './date-table.component';\nimport { DecadeHeaderComponent } from './decade-header.component';\nimport { DecadeTableComponent } from './decade-table.component';\nimport { MonthHeaderComponent } from './month-header.component';\nimport { MonthTableComponent } from './month-table.component';\nimport { QuarterHeaderComponent } from './quarter-header.component';\nimport { QuarterTableComponent } from './quarter-table.component';\nimport { YearHeaderComponent } from './year-header.component';\nimport { YearTableComponent } from './year-table.component';\n\n@NgModule({\n  imports: [\n    DateHeaderComponent,\n    DateTableComponent,\n    DecadeHeaderComponent,\n    DecadeTableComponent,\n    MonthHeaderComponent,\n    MonthTableComponent,\n    YearHeaderComponent,\n    YearTableComponent,\n    QuarterHeaderComponent,\n    QuarterTableComponent\n  ],\n  exports: [\n    DateHeaderComponent,\n    DateTableComponent,\n    DecadeHeaderComponent,\n    DecadeTableComponent,\n    MonthHeaderComponent,\n    MonthTableComponent,\n    YearHeaderComponent,\n    YearTableComponent,\n    QuarterHeaderComponent,\n    QuarterTableComponent\n  ]\n})\nexport class LibPackerModule {}\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 { DecadeHeaderComponent as ɵDecadeHeaderComponent } from './decade-header.component';\nexport { DecadeTableComponent as ɵDecadeTableComponent } from './decade-table.component';\nexport { YearHeaderComponent as ɵYearHeaderComponent } from './year-header.component';\nexport { YearTableComponent as ɵYearTableComponent } from './year-table.component';\nexport { QuarterHeaderComponent as ɵQuarterHeaderComponent } from './quarter-header.component';\nexport { QuarterTableComponent as ɵQuarterTableComponent } from './quarter-table.component';\nexport { MonthHeaderComponent as ɵMonthHeaderComponent } from './month-header.component';\nexport { MonthTableComponent as ɵMonthTableComponent } from './month-table.component';\nexport { DateHeaderComponent as ɵDateHeaderComponent } from './date-header.component';\nexport { DateTableComponent as ɵDateTableComponent } from './date-table.component';\nexport { AbstractPanelHeader as ɵAbstractPanelHeader } from './abstract-panel-header';\nexport { AbstractTable as ɵAbstractTable } from './abstract-table';\nexport { LibPackerModule } from './lib-packer.module';\nexport { transCompatFormat } from './util';\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 './public-api';\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  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { FunctionProp } from 'ng-zorro-antd/core/types';\nimport { NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';\nimport { NzTimePickerModule } from 'ng-zorro-antd/time-picker';\n\nimport { LibPackerModule } from './lib';\nimport { DisabledDateFn, NzDateMode, NzPanelChangeType, RangePartType, SupportTimeOptions } from './standard-types';\nimport { PREFIX_CLASS } from './util';\n\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'inner-popup',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div (mouseleave)=\"onLeave()\" [class.ant-picker-datetime-panel]=\"showTimePicker\">\n      <div class=\"{{ prefixCls }}-{{ panelMode }}-panel\">\n        @switch (panelMode) {\n          @case ('decade') {\n            <decade-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"enablePrevNext('prev', 'decade')\"\n              [showSuperNextBtn]=\"enablePrevNext('next', 'decade')\"\n              [showNextBtn]=\"false\"\n              [showPreBtn]=\"false\"\n              (panelChange)=\"panelChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            />\n            <div class=\"{{ prefixCls }}-body\">\n              <decade-table\n                [activeDate]=\"activeDate\"\n                [value]=\"value\"\n                [locale]=\"locale\"\n                (valueChange)=\"onChooseDecade($event)\"\n                [disabledDate]=\"disabledDate\"\n              />\n            </div>\n          }\n          @case ('year') {\n            <year-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"enablePrevNext('prev', 'year')\"\n              [showSuperNextBtn]=\"enablePrevNext('next', 'year')\"\n              [showNextBtn]=\"false\"\n              [showPreBtn]=\"false\"\n              (panelChange)=\"panelChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            />\n            <div class=\"{{ prefixCls }}-body\">\n              <year-table\n                [activeDate]=\"activeDate\"\n                [value]=\"value\"\n                [locale]=\"locale\"\n                [disabledDate]=\"disabledDate\"\n                [selectedValue]=\"selectedValue\"\n                [hoverValue]=\"hoverValue\"\n                (valueChange)=\"onChooseYear($event)\"\n                (cellHover)=\"cellHover.emit($event)\"\n              />\n            </div>\n          }\n          @case ('month') {\n            <month-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"enablePrevNext('prev', 'month')\"\n              [showSuperNextBtn]=\"enablePrevNext('next', 'month')\"\n              [showNextBtn]=\"false\"\n              [showPreBtn]=\"false\"\n              (panelChange)=\"panelChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            />\n            <div class=\"{{ prefixCls }}-body\">\n              <month-table\n                [value]=\"value\"\n                [activeDate]=\"activeDate\"\n                [locale]=\"locale\"\n                [disabledDate]=\"disabledDate\"\n                [selectedValue]=\"selectedValue\"\n                [hoverValue]=\"hoverValue\"\n                (valueChange)=\"onChooseMonth($event)\"\n                (cellHover)=\"cellHover.emit($event)\"\n              />\n            </div>\n          }\n          @case ('quarter') {\n            <quarter-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"enablePrevNext('prev', 'month')\"\n              [showSuperNextBtn]=\"enablePrevNext('next', 'month')\"\n              [showNextBtn]=\"false\"\n              [showPreBtn]=\"false\"\n              (panelChange)=\"panelChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            />\n            <div class=\"{{ prefixCls }}-body\">\n              <quarter-table\n                [value]=\"value\"\n                [activeDate]=\"activeDate\"\n                [locale]=\"locale\"\n                [disabledDate]=\"disabledDate\"\n                [selectedValue]=\"selectedValue\"\n                [hoverValue]=\"hoverValue\"\n                (valueChange)=\"onChooseQuarter($event)\"\n                (cellHover)=\"cellHover.emit($event)\"\n                [cellRender]=\"dateRender\"\n              />\n            </div>\n          }\n          @default {\n            <date-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"panelMode === 'week' ? enablePrevNext('prev', 'week') : enablePrevNext('prev', 'date')\"\n              [showSuperNextBtn]=\"\n                panelMode === 'week' ? enablePrevNext('next', 'week') : enablePrevNext('next', 'date')\n              \"\n              [showPreBtn]=\"panelMode === 'week' ? enablePrevNext('prev', 'week') : enablePrevNext('prev', 'date')\"\n              [showNextBtn]=\"panelMode === 'week' ? enablePrevNext('next', 'week') : enablePrevNext('next', 'date')\"\n              (panelChange)=\"panelChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            />\n            <div class=\"{{ prefixCls }}-body\">\n              <date-table\n                [locale]=\"locale\"\n                [showWeek]=\"showWeek\"\n                [value]=\"value\"\n                [activeDate]=\"activeDate\"\n                [disabledDate]=\"disabledDate\"\n                [cellRender]=\"dateRender\"\n                [selectedValue]=\"selectedValue\"\n                [hoverValue]=\"hoverValue\"\n                [canSelectWeek]=\"panelMode === 'week'\"\n                [format]=\"format\"\n                (valueChange)=\"onSelectDate($event)\"\n                (cellHover)=\"cellHover.emit($event)\"\n              />\n            </div>\n          }\n        }\n      </div>\n      @if (showTimePicker && timeOptions) {\n        <nz-time-picker-panel\n          [nzInDatePicker]=\"true\"\n          [ngModel]=\"value?.nativeDate\"\n          (ngModelChange)=\"onSelectTime($event)\"\n          [format]=\"$any(timeOptions.nzFormat)\"\n          [nzHourStep]=\"$any(timeOptions.nzHourStep)\"\n          [nzMinuteStep]=\"$any(timeOptions.nzMinuteStep)\"\n          [nzSecondStep]=\"$any(timeOptions.nzSecondStep)\"\n          [nzDisabledHours]=\"$any(timeOptions.nzDisabledHours)\"\n          [nzDisabledMinutes]=\"$any(timeOptions.nzDisabledMinutes)\"\n          [nzDisabledSeconds]=\"$any(timeOptions.nzDisabledSeconds)\"\n          [nzHideDisabledOptions]=\"!!timeOptions.nzHideDisabledOptions\"\n          [nzDefaultOpenValue]=\"$any(timeOptions.nzDefaultOpenValue)\"\n          [nzUse12Hours]=\"!!timeOptions.nzUse12Hours\"\n          [nzAddOn]=\"$any(timeOptions.nzAddOn)\"\n        />\n      }\n    </div>\n  `,\n  imports: [LibPackerModule, NzTimePickerModule, FormsModule]\n})\nexport class InnerPopupComponent implements OnChanges {\n  @Input() activeDate!: CandyDate;\n  @Input() endPanelMode!: NzDateMode;\n  @Input() panelMode!: NzDateMode;\n  @Input({ transform: booleanAttribute }) showWeek!: boolean;\n  @Input() locale!: NzCalendarI18nInterface;\n  @Input({ transform: booleanAttribute }) showTimePicker!: boolean;\n  @Input() timeOptions!: SupportTimeOptions | null;\n  @Input() disabledDate?: DisabledDateFn;\n  @Input() dateRender?: string | TemplateRef<Date> | FunctionProp<TemplateRef<Date> | string>;\n  @Input() selectedValue!: CandyDate[]; // Range ONLY\n  @Input() hoverValue!: CandyDate[]; // Range ONLY\n  @Input() value!: CandyDate;\n  @Input() partType!: RangePartType;\n  @Input() format?: string;\n\n  @Output() readonly panelChange = new EventEmitter<NzPanelChangeType>();\n  // TODO: name is not proper\n  @Output() readonly headerChange = new EventEmitter<CandyDate>(); // Emitted when user changed the header's value\n  @Output() readonly selectDate = new EventEmitter<CandyDate>(); // Emitted when the date is selected by click the date panel\n  @Output() readonly selectTime = new EventEmitter<CandyDate>();\n  @Output() readonly cellHover = new EventEmitter<CandyDate | null>(); // Emitted when hover on a day by mouse enter\n\n  prefixCls: string = PREFIX_CLASS;\n\n  /**\n   * Hide \"next\" arrow in left panel,\n   * hide \"prev\" arrow in right panel\n   *\n   * @param direction\n   * @param panelMode\n   */\n  enablePrevNext(direction: 'prev' | 'next', panelMode: NzDateMode): boolean {\n    return !(\n      !this.showTimePicker &&\n      panelMode === this.endPanelMode &&\n      ((this.partType === 'left' && direction === 'next') || (this.partType === 'right' && direction === 'prev'))\n    );\n  }\n\n  onLeave(): void {\n    this.cellHover.emit(null);\n  }\n\n  onSelectTime(date: Date): void {\n    this.selectTime.emit(new CandyDate(date));\n  }\n\n  // The value real changed to outside\n  onSelectDate(date: CandyDate | Date): void {\n    const value = date instanceof CandyDate ? date : new CandyDate(date);\n    const timeValue = this.timeOptions && this.timeOptions.nzDefaultOpenValue;\n\n    // Display timeValue when value is null\n    if (!this.value && timeValue) {\n      value.setHms(timeValue.getHours(), timeValue.getMinutes(), timeValue.getSeconds());\n    }\n\n    this.selectDate.emit(value);\n  }\n\n  onChooseMonth(value: CandyDate): void {\n    this.activeDate = this.activeDate.setMonth(value.getMonth());\n    if (this.endPanelMode === 'month') {\n      this.value = value;\n      this.selectDate.emit(value);\n    } else {\n      this.headerChange.emit(value);\n      this.panelChange.emit({ mode: this.endPanelMode, date: value.nativeDate });\n    }\n  }\n\n  onChooseQuarter(value: CandyDate): void {\n    this.activeDate = this.activeDate.setQuarter(value.getQuarter());\n    this.value = value;\n    this.selectDate.emit(value);\n  }\n\n  onChooseYear(value: CandyDate): void {\n    this.activeDate = this.activeDate.setYear(value.getYear());\n    if (this.endPanelMode === 'year') {\n      this.value = value;\n      this.selectDate.emit(value);\n    } else {\n      this.headerChange.emit(value);\n      this.panelChange.emit({ mode: this.endPanelMode, date: value.nativeDate });\n    }\n  }\n\n  onChooseDecade(value: CandyDate): void {\n    this.activeDate = this.activeDate.setYear(value.getYear());\n    if (this.endPanelMode === 'decade') {\n      this.value = value;\n      this.selectDate.emit(value);\n    } else {\n      this.headerChange.emit(value);\n      this.panelChange.emit({ mode: 'year', date: value.nativeDate });\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.activeDate && !changes.activeDate.currentValue) {\n      this.activeDate = new CandyDate();\n    }\n    // New Antd vesion has merged 'date' ant 'time' to one panel,\n    // So there is not 'time' panel\n    if (changes.panelMode && changes.panelMode.currentValue === 'time') {\n      this.panelMode = 'date';\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 { Direction } from '@angular/cdk/bidi';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  DestroyRef,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { merge } from 'rxjs';\n\nimport {\n  CandyDate,\n  cloneDate,\n  CompatibleValue,\n  NormalizedMode,\n  SingleValue,\n  wrongSortOrder\n} from 'ng-zorro-antd/core/time';\nimport { FunctionProp } from 'ng-zorro-antd/core/types';\nimport { fromEventOutsideAngular } from 'ng-zorro-antd/core/util';\nimport { NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';\n\nimport { CalendarFooterComponent } from './calendar-footer.component';\nimport { DatePickerService } from './date-picker.service';\nimport { InnerPopupComponent } from './inner-popup.component';\nimport {\n  CompatibleDate,\n  DisabledDateFn,\n  DisabledTimeFn,\n  DisabledTimePartial,\n  NzDateMode,\n  NzPanelChangeType,\n  PresetRanges,\n  RangePartType,\n  SupportTimeOptions\n} from './standard-types';\nimport { getTimeConfig, isAllowedDate, PREFIX_CLASS } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'date-range-popup',\n  template: `\n    @if (isRange) {\n      <div class=\"{{ prefixCls }}-range-wrapper {{ prefixCls }}-date-range-wrapper\">\n        <div class=\"{{ prefixCls }}-range-arrow\" [style]=\"arrowPosition\"></div>\n        <div class=\"{{ prefixCls }}-panel-container {{ showWeek ? prefixCls + '-week-number' : '' }}\">\n          <div class=\"{{ prefixCls }}-panels\">\n            @if (hasTimePicker) {\n              <ng-container *ngTemplateOutlet=\"tplInnerPopup; context: { partType: datePickerService.activeInput }\" />\n            } @else {\n              <ng-container *ngTemplateOutlet=\"tplInnerPopup; context: { partType: 'left' }\" />\n              <ng-container *ngTemplateOutlet=\"tplInnerPopup; context: { partType: 'right' }\" />\n            }\n          </div>\n          <ng-container *ngTemplateOutlet=\"tplFooter\" />\n        </div>\n      </div>\n    } @else {\n      <div\n        class=\"{{ prefixCls }}-panel-container {{ showWeek ? prefixCls + '-week-number' : '' }} {{\n          hasTimePicker ? prefixCls + '-time' : ''\n        }} {{ isRange ? prefixCls + '-range' : '' }}\"\n      >\n        <div class=\"{{ prefixCls }}-panel\" [class.ant-picker-panel-rtl]=\"dir === 'rtl'\" tabindex=\"-1\">\n          <!-- Single ONLY -->\n          <ng-container *ngTemplateOutlet=\"tplInnerPopup\" />\n          <ng-container *ngTemplateOutlet=\"tplFooter\" />\n        </div>\n      </div>\n    }\n\n    <ng-template #tplInnerPopup let-partType=\"partType\">\n      <div class=\"{{ prefixCls }}-panel\" [class.ant-picker-panel-rtl]=\"dir === 'rtl'\">\n        <!-- TODO(@wenqi73) [selectedValue] [hoverValue] types-->\n        <inner-popup\n          [showWeek]=\"showWeek\"\n          [endPanelMode]=\"getPanelMode(endPanelMode, partType)\"\n          [partType]=\"partType\"\n          [locale]=\"locale!\"\n          [showTimePicker]=\"hasTimePicker\"\n          [timeOptions]=\"getTimeOptions(partType)\"\n          [panelMode]=\"getPanelMode(panelMode, partType)\"\n          (panelChange)=\"onPanelModeChange($event, partType)\"\n          [activeDate]=\"getActiveDate(partType)\"\n          [value]=\"getValue(partType)\"\n          [disabledDate]=\"disabledDate\"\n          [dateRender]=\"dateRender\"\n          [selectedValue]=\"$any(datePickerService?.value)\"\n          [hoverValue]=\"$any(hoverValue)\"\n          [format]=\"format\"\n          (cellHover)=\"onCellHover($event)\"\n          (selectDate)=\"changeValueFromSelect($event, !showTime)\"\n          (selectTime)=\"onSelectTime($event, partType)\"\n          (headerChange)=\"onActiveDateChange($event, partType)\"\n        />\n      </div>\n    </ng-template>\n\n    <ng-template #tplFooter>\n      @if (hasFooter) {\n        <calendar-footer\n          [locale]=\"locale!\"\n          [isRange]=\"isRange\"\n          [showToday]=\"showToday\"\n          [showNow]=\"showNow\"\n          [hasTimePicker]=\"hasTimePicker\"\n          [okDisabled]=\"!isAllowed($any(datePickerService?.value))\"\n          [extraFooter]=\"extraFooter\"\n          [rangeQuickSelector]=\"ranges ? tplRangeQuickSelector : null\"\n          (clickOk)=\"onClickOk()\"\n          (clickToday)=\"onClickToday($event)\"\n        />\n      }\n    </ng-template>\n\n    <!-- Range ONLY: Range Quick Selector -->\n    <ng-template #tplRangeQuickSelector>\n      @for (name of getObjectKeys(ranges); track name) {\n        <li\n          class=\"{{ prefixCls }}-preset\"\n          (click)=\"onClickPresetRange(ranges![name])\"\n          (mouseenter)=\"onHoverPresetRange(ranges![name])\"\n          (mouseleave)=\"onPresetRangeMouseLeave()\"\n        >\n          <span class=\"ant-tag ant-tag-blue\">{{ name }}</span>\n        </li>\n      }\n    </ng-template>\n  `,\n  imports: [InnerPopupComponent, NgTemplateOutlet, CalendarFooterComponent]\n})\nexport class DateRangePopupComponent implements OnInit, OnChanges {\n  public datePickerService = inject(DatePickerService);\n  public cdr = inject(ChangeDetectorRef);\n  private host = inject(ElementRef<HTMLElement>);\n  private destroyRef = inject(DestroyRef);\n\n  @Input({ transform: booleanAttribute }) isRange!: boolean;\n  @Input({ transform: booleanAttribute }) inline: boolean = false;\n  @Input({ transform: booleanAttribute }) showWeek!: boolean;\n  @Input() locale!: NzCalendarI18nInterface | undefined;\n  @Input() disabledDate?: DisabledDateFn;\n  @Input() disabledTime?: DisabledTimeFn; // This will lead to rebuild time options\n  @Input({ transform: booleanAttribute }) showToday!: boolean;\n  @Input({ transform: booleanAttribute }) showNow!: boolean;\n  @Input() showTime!: SupportTimeOptions | boolean;\n  @Input() extraFooter?: TemplateRef<void> | string;\n  @Input() ranges?: PresetRanges;\n  @Input() dateRender?: string | TemplateRef<Date> | FunctionProp<TemplateRef<Date> | string>;\n  @Input() panelMode!: NzDateMode | NzDateMode[];\n  @Input() defaultPickerValue!: CompatibleDate | undefined | null;\n  @Input() dir: Direction = 'ltr';\n  @Input() format?: string;\n\n  @Output() readonly panelModeChange = new EventEmitter<NzPanelChangeType>();\n  @Output() readonly calendarChange = new EventEmitter<CompatibleValue>();\n  @Output() readonly resultOk = new EventEmitter<void>(); // Emitted when done with date selecting\n\n  prefixCls: string = PREFIX_CLASS;\n  endPanelMode: NzDateMode | NzDateMode[] = 'date';\n  timeOptions: SupportTimeOptions | SupportTimeOptions[] | null = null;\n  hoverValue: SingleValue[] = []; // Range ONLY\n  checkedPartArr: boolean[] = [false, false];\n\n  get hasTimePicker(): boolean {\n    return !!this.showTime;\n  }\n\n  get hasFooter(): boolean {\n    return this.showToday || this.hasTimePicker || !!this.extraFooter || !!this.ranges;\n  }\n\n  get arrowPosition(): { left?: string; right?: string } {\n    return this.dir === 'rtl'\n      ? { right: `${this.datePickerService?.arrowLeft}px` }\n      : { left: `${this.datePickerService?.arrowLeft}px` };\n  }\n\n  ngOnInit(): void {\n    merge(this.datePickerService.valueChange$, this.datePickerService.inputPartChange$)\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.updateActiveDate();\n        this.cdr.markForCheck();\n      });\n\n    fromEventOutsideAngular(this.host.nativeElement, 'mousedown')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(event => event.preventDefault());\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    // Parse showTime options\n    if (changes.showTime || changes.disabledTime) {\n      if (this.showTime) {\n        this.buildTimeOptions();\n      }\n    }\n    if (changes.panelMode) {\n      this.endPanelMode = this.panelMode;\n    }\n    if (changes.defaultPickerValue) {\n      this.updateActiveDate();\n    }\n  }\n\n  updateActiveDate(): void {\n    const activeDate = this.datePickerService.hasValue()\n      ? this.datePickerService.value\n      : this.datePickerService.makeValue(this.defaultPickerValue!);\n    this.datePickerService.setActiveDate(\n      activeDate,\n      this.hasTimePicker,\n      this.getPanelMode(this.endPanelMode) as NormalizedMode\n    );\n  }\n\n  onClickOk(): void {\n    const inputIndex = { left: 0, right: 1 }[this.datePickerService.activeInput];\n    const value: CandyDate = this.isRange\n      ? (this.datePickerService.value as CandyDate[])[inputIndex]\n      : (this.datePickerService.value as CandyDate);\n    this.changeValueFromSelect(value);\n    this.resultOk.emit();\n  }\n\n  onClickToday(value: CandyDate): void {\n    this.changeValueFromSelect(value, !this.showTime);\n  }\n\n  onCellHover(value: CandyDate | null): void {\n    if (!this.isRange) {\n      return;\n    }\n    if (value === null) {\n      this.hoverValue = [];\n      return;\n    }\n    const otherInputIndex = { left: 1, right: 0 }[this.datePickerService.activeInput];\n    const base = (this.datePickerService.value as CandyDate[])[otherInputIndex]!;\n    if (base) {\n      if (base.isBeforeDay(value)) {\n        this.hoverValue = [base, value];\n      } else {\n        this.hoverValue = [value, base];\n      }\n    }\n  }\n\n  onPanelModeChange(panelChangeEvent: NzPanelChangeType, partType?: RangePartType): void {\n    if (this.isRange) {\n      const index = this.datePickerService.getActiveIndex(partType);\n      if (index === 0) {\n        this.panelMode = [panelChangeEvent.mode, this.panelMode[1]] as [NzDateMode, NzDateMode];\n      } else {\n        this.panelMode = [this.panelMode[0], panelChangeEvent.mode] as [NzDateMode, NzDateMode];\n      }\n      this.panelModeChange.emit({\n        mode: this.panelMode as [NzDateMode, NzDateMode],\n        date: (this.datePickerService.activeDate as SingleValue[]).map(d => d!.nativeDate) as [Date, Date]\n      });\n    } else {\n      this.panelMode = panelChangeEvent.mode as NzDateMode;\n      this.panelModeChange.emit({ mode: this.panelMode as NzDateMode, date: panelChangeEvent.date as Date });\n    }\n  }\n\n  onActiveDateChange(value: CandyDate, partType: RangePartType): void {\n    if (this.isRange) {\n      const activeDate: SingleValue[] = [];\n      activeDate[this.datePickerService.getActiveIndex(partType)] = value;\n      this.datePickerService.setActiveDate(\n        activeDate,\n        this.hasTimePicker,\n        this.getPanelMode(this.endPanelMode, partType) as NormalizedMode\n      );\n    } else {\n      this.datePickerService.setActiveDate(value);\n    }\n  }\n\n  onSelectTime(value: CandyDate, partType?: RangePartType): void {\n    if (this.isRange) {\n      const newValue = cloneDate(this.datePickerService.value) as SingleValue[];\n      const index = this.datePickerService.getActiveIndex(partType);\n      newValue[index] = this.overrideHms(value, newValue[index]);\n      this.datePickerService.setValue(newValue);\n    } else {\n      const newValue = this.overrideHms(value, this.datePickerService.value as CandyDate);\n      this.datePickerService.setValue(newValue); // If not select a date currently, use today\n    }\n    this.datePickerService.inputPartChange$.next(null);\n    this.buildTimeOptions();\n  }\n\n  changeValueFromSelect(value: CandyDate, emitValue: boolean = true): void {\n    if (this.isRange) {\n      const selectedValue: SingleValue[] = cloneDate(this.datePickerService.value) as CandyDate[];\n      const checkedPart: RangePartType = this.datePickerService.activeInput;\n      let nextPart: RangePartType = checkedPart;\n\n      selectedValue[this.datePickerService.getActiveIndex(checkedPart)] = value;\n      this.checkedPartArr[this.datePickerService.getActiveIndex(checkedPart)] = true;\n      this.hoverValue = selectedValue;\n\n      if (emitValue) {\n        if (this.inline) {\n          // For UE, Should always be reversed, and clear vaue when next part is right\n          nextPart = this.reversedPart(checkedPart);\n          if (nextPart === 'right') {\n            selectedValue[this.datePickerService.getActiveIndex(nextPart)] = null;\n            this.checkedPartArr[this.datePickerService.getActiveIndex(nextPart)] = false;\n          }\n          this.datePickerService.setValue(selectedValue);\n          this.calendarChange.emit(selectedValue);\n          if (this.isBothAllowed(selectedValue) && this.checkedPartArr[0] && this.checkedPartArr[1]) {\n            this.clearHoverValue();\n            this.datePickerService.emitValue$.next();\n          }\n        } else {\n          /**\n           * if sort order is wrong, output in reverse order.\n           */\n          if (wrongSortOrder(selectedValue)) {\n            selectedValue.reverse();\n          }\n          this.datePickerService.setValue(selectedValue);\n          /**\n           * range date usually selected paired,\n           * so we emit the date value only both date is allowed and both part are checked\n           */\n          if (this.isBothAllowed(selectedValue) && this.checkedPartArr[0] && this.checkedPartArr[1]) {\n            this.calendarChange.emit(selectedValue);\n            this.clearHoverValue();\n            this.datePickerService.emitValue$.next();\n          } else if (this.isAllowed(selectedValue)) {\n            nextPart = this.reversedPart(checkedPart);\n            this.calendarChange.emit([value.clone()]);\n          }\n        }\n      } else {\n        this.datePickerService.setValue(selectedValue);\n      }\n      this.datePickerService.inputPartChange$.next(nextPart);\n    } else {\n      this.datePickerService.setValue(value);\n      this.datePickerService.inputPartChange$.next(null);\n\n      if (emitValue && this.isAllowed(value)) {\n        this.datePickerService.emitValue$.next();\n      }\n    }\n\n    this.buildTimeOptions();\n  }\n\n  reversedPart(part: RangePartType): RangePartType {\n    return part === 'left' ? 'right' : 'left';\n  }\n\n  getPanelMode(panelMode: NzDateMode | NzDateMode[], partType?: RangePartType): NzDateMode {\n    if (this.isRange) {\n      return panelMode[this.datePickerService.getActiveIndex(partType)] as NzDateMode;\n    } else {\n      return panelMode as NzDateMode;\n    }\n  }\n\n  // Get single value or part value of a range\n  getValue(partType?: RangePartType): CandyDate {\n    if (this.isRange) {\n      return ((this.datePickerService.value as CandyDate[]) || [])[this.datePickerService.getActiveIndex(partType)];\n    } else {\n      return this.datePickerService.value as CandyDate;\n    }\n  }\n\n  getActiveDate(partType?: RangePartType): CandyDate {\n    if (this.isRange) {\n      return (this.datePickerService.activeDate as CandyDate[])[this.datePickerService.getActiveIndex(partType)];\n    } else {\n      return this.datePickerService.activeDate as CandyDate;\n    }\n  }\n\n  disabledStartTime: DisabledTimeFn = (value: Date | Date[]) => this.disabledTime && this.disabledTime(value, 'start');\n\n  disabledEndTime: DisabledTimeFn = (value: Date | Date[]) => this.disabledTime && this.disabledTime(value, 'end');\n\n  isOneAllowed(selectedValue: SingleValue[]): boolean {\n    const index = this.datePickerService.getActiveIndex();\n    const disabledTimeArr = [this.disabledStartTime, this.disabledEndTime];\n    return isAllowedDate(selectedValue[index]!, this.disabledDate, disabledTimeArr[index]);\n  }\n\n  isBothAllowed(selectedValue: SingleValue[]): boolean {\n    return (\n      isAllowedDate(selectedValue[0]!, this.disabledDate, this.disabledStartTime) &&\n      isAllowedDate(selectedValue[1]!, this.disabledDate, this.disabledEndTime)\n    );\n  }\n\n  isAllowed(value: CompatibleValue, isBoth: boolean = false): boolean {\n    if (this.isRange) {\n      return isBoth ? this.isBothAllowed(value as CandyDate[]) : this.isOneAllowed(value as CandyDate[]);\n    } else {\n      return isAllowedDate(value as CandyDate, this.disabledDate, this.disabledTime);\n    }\n  }\n\n  getTimeOptions(partType?: RangePartType): SupportTimeOptions | null {\n    if (this.showTime && this.timeOptions) {\n      return this.timeOptions instanceof Array\n        ? this.timeOptions[this.datePickerService.getActiveIndex(partType)]\n        : this.timeOptions;\n    }\n    return null;\n  }\n\n  onClickPresetRange(val: PresetRanges[keyof PresetRanges]): void {\n    const value = typeof val === 'function' ? val() : val;\n    if (value) {\n      this.datePickerService.setValue([new CandyDate(value[0]), new CandyDate(value[1])]);\n      this.datePickerService.emitValue$.next();\n    }\n  }\n\n  onPresetRangeMouseLeave(): void {\n    this.clearHoverValue();\n  }\n\n  onHoverPresetRange(val: PresetRanges[keyof PresetRanges]): void {\n    if (typeof val !== 'function') {\n      this.hoverValue = [new CandyDate(val[0]), new CandyDate(val[1])];\n    }\n  }\n\n  getObjectKeys(obj?: PresetRanges): string[] {\n    return obj ? Object.keys(obj) : [];\n  }\n\n  show(partType: RangePartType): boolean {\n    const hide = this.showTime && this.isRange && this.datePickerService.activeInput !== partType;\n    return !hide;\n  }\n\n  private clearHoverValue(): void {\n    this.hoverValue = [];\n  }\n\n  private buildTimeOptions(): void {\n    if (this.showTime) {\n      const showTime = typeof this.showTime === 'object' ? this.showTime : {};\n      if (this.isRange) {\n        const value = this.datePickerService.value as CandyDate[];\n        this.timeOptions = [\n          this.overrideTimeOptions(showTime, value[0], 'start'),\n          this.overrideTimeOptions(showTime, value[1], 'end')\n        ];\n      } else {\n        this.timeOptions = this.overrideTimeOptions(showTime, this.datePickerService.value as CandyDate);\n      }\n    } else {\n      this.timeOptions = null;\n    }\n  }\n\n  private overrideTimeOptions(\n    origin: SupportTimeOptions,\n    value: CandyDate,\n    partial?: DisabledTimePartial\n  ): SupportTimeOptions {\n    let disabledTimeFn;\n    if (partial) {\n      disabledTimeFn = partial === 'start' ? this.disabledStartTime : this.disabledEndTime;\n    } else {\n      disabledTimeFn = this.disabledTime;\n    }\n    return { ...origin, ...getTimeConfig(value, disabledTimeFn) };\n  }\n\n  private overrideHms(newValue: CandyDate | null, oldValue: CandyDate | null): CandyDate {\n    newValue = newValue || new CandyDate();\n    oldValue = oldValue || new CandyDate();\n    return oldValue.setHms(newValue.getHours(), newValue.getMinutes(), newValue.getSeconds());\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 { Directionality } from '@angular/cdk/bidi';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport {\n  CdkConnectedOverlay,\n  ConnectedOverlayPositionChange,\n  ConnectionPositionPair,\n  OriginConnectionPosition\n} from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n  AfterViewInit,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  computed,\n  DestroyRef,\n  DOCUMENT,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  inject,\n  input,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  QueryList,\n  Renderer2,\n  signal,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewChildren,\n  ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { of } from 'rxjs';\nimport { distinctUntilChanged, map, withLatestFrom } from 'rxjs/operators';\n\nimport { NzResizeObserver } from 'ng-zorro-antd/cdk/resize-observer';\nimport { slideAnimationEnter, slideAnimationLeave } from 'ng-zorro-antd/core/animation';\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport {\n  NZ_FORM_SIZE,\n  NZ_FORM_VARIANT,\n  NzFormItemFeedbackIconComponent,\n  NzFormNoStatusService,\n  NzFormStatusService\n} from 'ng-zorro-antd/core/form';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { DATE_PICKER_POSITION_MAP, DEFAULT_DATE_PICKER_POSITIONS, NzOverlayModule } from 'ng-zorro-antd/core/overlay';\nimport { CandyDate, cloneDate, CompatibleValue, wrongSortOrder } from 'ng-zorro-antd/core/time';\nimport {\n  BooleanInput,\n  FunctionProp,\n  NgClassInterface,\n  NzSafeAny,\n  NzSizeLDSType,\n  NzStatus,\n  NzValidateStatus,\n  NzVariant,\n  OnChangeType,\n  OnTouchedType,\n  type NzPlacement\n} from 'ng-zorro-antd/core/types';\nimport {\n  fromEventOutsideAngular,\n  generateClassName,\n  getStatusClassNames,\n  toBoolean,\n  valueFunctionProp\n} from 'ng-zorro-antd/core/util';\nimport {\n  DateHelperService,\n  NzDatePickerI18nInterface,\n  NzDatePickerLangI18nInterface,\n  NzI18nService\n} from 'ng-zorro-antd/i18n';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NZ_SPACE_COMPACT_ITEM_TYPE, NZ_SPACE_COMPACT_SIZE, NzSpaceCompactItemDirective } from 'ng-zorro-antd/space';\n\nimport { DatePickerService } from './date-picker.service';\nimport { DateRangePopupComponent } from './date-range-popup.component';\nimport {\n  CompatibleDate,\n  DisabledTimeFn,\n  NzDateMode,\n  NzPanelChangeType,\n  PresetRanges,\n  RangePartType,\n  SupportTimeOptions\n} from './standard-types';\nimport { PREFIX_CLASS } from './util';\n\nconst POPUP_STYLE_PATCH = { position: 'relative' }; // Aim to override antd's style to support overlay's position strategy (position:absolute will cause it not working because the overlay can't get the height/width of it's content)\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'datePicker';\n\nexport type NzDatePickerSizeType = 'large' | 'default' | 'small';\n\n/**\n * The base picker for all common APIs\n */\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'nz-date-picker,nz-week-picker,nz-month-picker,nz-quarter-picker,nz-year-picker,nz-range-picker',\n  exportAs: 'nzDatePicker',\n  template: `\n    @if (!nzInline()) {\n      @if (!isRange) {\n        <div class=\"{{ prefixCls }}-input\">\n          <input\n            #pickerInput\n            [attr.id]=\"nzId\"\n            [class.ant-input-disabled]=\"nzDisabled\"\n            [disabled]=\"nzDisabled\"\n            [readOnly]=\"nzInputReadOnly\"\n            [(ngModel)]=\"inputValue\"\n            placeholder=\"{{ getPlaceholder() }}\"\n            [size]=\"inputSize\"\n            autocomplete=\"off\"\n            (focus)=\"onFocus($event)\"\n            (focusout)=\"onFocusout($event)\"\n            (ngModelChange)=\"onInputChange($event)\"\n            (keyup.enter)=\"onKeyupEnter($event)\"\n          />\n          <ng-container *ngTemplateOutlet=\"tplRightRest\" />\n        </div>\n      } @else {\n        <div class=\"{{ prefixCls }}-input\">\n          <ng-container *ngTemplateOutlet=\"tplRangeInput; context: { partType: 'left' }\" />\n        </div>\n        <div #separatorElement class=\"{{ prefixCls }}-range-separator\">\n          <span class=\"{{ prefixCls }}-separator\">\n            <ng-container *nzStringTemplateOutlet=\"nzSeparator; let separator\">\n              @if (nzSeparator) {\n                {{ nzSeparator }}\n              } @else {\n                <nz-icon nzType=\"swap-right\" nzTheme=\"outline\" />\n              }\n            </ng-container>\n          </span>\n        </div>\n        <div class=\"{{ prefixCls }}-input\">\n          <ng-container *ngTemplateOutlet=\"tplRangeInput; context: { partType: 'right' }\" />\n        </div>\n        <ng-container *ngTemplateOutlet=\"tplRightRest\" />\n      }\n    } @else {\n      <ng-template [ngTemplateOutlet]=\"inlineMode\" />\n    }\n    <!-- Input for Range ONLY -->\n    <ng-template #tplRangeInput let-partType=\"partType\">\n      <input\n        #rangePickerInput\n        [attr.id]=\"nzId\"\n        [disabled]=\"nzDisabled\"\n        [readOnly]=\"nzInputReadOnly\"\n        [size]=\"inputSize\"\n        autocomplete=\"off\"\n        (click)=\"onClickInputBox($event)\"\n        (focusout)=\"onFocusout($event)\"\n        (focus)=\"onFocus($event, partType)\"\n        (keyup.enter)=\"onKeyupEnter($event)\"\n        [(ngModel)]=\"inputValue[datePickerService.getActiveIndex(partType)]\"\n        (ngModelChange)=\"onInputChange($event)\"\n        placeholder=\"{{ getPlaceholder(partType) }}\"\n      />\n    </ng-template>\n\n    <!-- Right operator icons -->\n    <ng-template #tplRightRest>\n      <div class=\"{{ prefixCls }}-active-bar\" [style]=\"activeBarStyle\"></div>\n      @if (showClear) {\n        <span class=\"{{ prefixCls }}-clear\" (click)=\"onClickClear($event)\">\n          <nz-icon nzType=\"close-circle\" nzTheme=\"fill\" />\n        </span>\n      }\n\n      <span class=\"{{ prefixCls }}-suffix\">\n        <ng-container *nzStringTemplateOutlet=\"nzSuffixIcon; let suffixIcon\">\n          <nz-icon [nzType]=\"suffixIcon\" />\n        </ng-container>\n        @if (hasFeedback && !!status) {\n          <nz-form-item-feedback-icon [status]=\"status\" />\n        }\n      </span>\n    </ng-template>\n\n    <ng-template #inlineMode>\n      <div\n        [class]=\"dropdownClass()\"\n        [class.ant-picker-dropdown-range]=\"!nzInline() && isRange\"\n        [class.ant-picker-active-left]=\"datePickerService.activeInput === 'left'\"\n        [class.ant-picker-active-right]=\"datePickerService.activeInput === 'right'\"\n        [style]=\"nzPopupStyle\"\n        [animate.enter]=\"$any(!nzInline() && datepickerAnimationEnter())\"\n        [animate.leave]=\"$any(!nzInline() && datepickerAnimationLeave())\"\n      >\n        <date-range-popup\n          [isRange]=\"isRange\"\n          [inline]=\"nzInline()\"\n          [defaultPickerValue]=\"nzDefaultPickerValue\"\n          [showWeek]=\"nzShowWeekNumber || nzMode === 'week'\"\n          [panelMode]=\"panelMode\"\n          (panelModeChange)=\"onPanelModeChange($event)\"\n          (calendarChange)=\"onCalendarChange($event)\"\n          [locale]=\"nzLocale?.lang!\"\n          [showToday]=\"nzMode === 'date' && nzShowToday && !isRange && !nzShowTime\"\n          [showNow]=\"nzMode === 'date' && nzShowNow && !isRange && !!nzShowTime\"\n          [showTime]=\"nzShowTime\"\n          [dateRender]=\"nzDateRender\"\n          [disabledDate]=\"nzDisabledDate\"\n          [disabledTime]=\"nzDisabledTime\"\n          [extraFooter]=\"extraFooter\"\n          [ranges]=\"nzRanges\"\n          [dir]=\"dir()\"\n          [format]=\"nzFormat\"\n          (resultOk)=\"onResultOk()\"\n        />\n      </div>\n    </ng-template>\n\n    <!-- Overlay -->\n    <ng-template\n      cdkConnectedOverlay\n      nzConnectedOverlay\n      cdkConnectedOverlayTransformOriginOn=\".{{ prefixCls }}-dropdown\"\n      [cdkConnectedOverlayHasBackdrop]=\"nzBackdrop\"\n      [cdkConnectedOverlayOrigin]=\"origin\"\n      [cdkConnectedOverlayOpen]=\"realOpenState\"\n      [cdkConnectedOverlayPositions]=\"overlayPositions\"\n      (positionChange)=\"onPositionChange($event)\"\n      (detach)=\"close()\"\n      (overlayKeydown)=\"onOverlayKeydown($event)\"\n    >\n      <ng-container *ngTemplateOutlet=\"inlineMode\" />\n    </ng-template>\n  `,\n  host: {\n    '[class.ant-picker]': `true`,\n    '[class.ant-picker-range]': `isRange`,\n    '[class.ant-picker-large]': `finalSize() === 'large'`,\n    '[class.ant-picker-small]': `finalSize() === 'small'`,\n    '[class.ant-picker-disabled]': `nzDisabled`,\n    '[class.ant-picker-rtl]': `dir() === 'rtl'`,\n    '[class.ant-picker-borderless]': `finalVariant() === 'borderless'`,\n    '[class.ant-picker-filled]': `finalVariant() === 'filled'`,\n    '[class.ant-picker-underlined]': `finalVariant() === 'underlined'`,\n    '[class.ant-picker-inline]': `nzInline()`,\n    '(click)': 'onClickInputBox($event)'\n  },\n  hostDirectives: [NzSpaceCompactItemDirective],\n  providers: [\n    DatePickerService,\n    { provide: NZ_SPACE_COMPACT_ITEM_TYPE, useValue: 'picker' },\n    {\n      provide: NG_VALUE_ACCESSOR,\n      multi: true,\n      useExisting: forwardRef(() => NzDatePickerComponent)\n    }\n  ],\n  imports: [\n    FormsModule,\n    NgTemplateOutlet,\n    NzOutletModule,\n    NzIconModule,\n    NzFormItemFeedbackIconComponent,\n    DateRangePopupComponent,\n    CdkConnectedOverlay,\n    NzOverlayModule\n  ]\n})\nexport class NzDatePickerComponent implements OnInit, OnChanges, AfterViewInit, ControlValueAccessor {\n  public nzConfigService = inject(NzConfigService);\n  public datePickerService = inject(DatePickerService);\n  protected i18n = inject(NzI18nService);\n  protected cdr = inject(ChangeDetectorRef);\n  private renderer = inject(Renderer2);\n  private elementRef = inject(ElementRef<HTMLElement>);\n  private dateHelper = inject(DateHelperService);\n  private nzResizeObserver = inject(NzResizeObserver);\n  private platform = inject(Platform);\n  private destroyRef = inject(DestroyRef);\n  protected readonly dir = inject(Directionality).valueSignal;\n\n  readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n\n  static ngAcceptInputType_nzShowTime: BooleanInput | SupportTimeOptions | null | undefined;\n  static ngAcceptInputType_nzMode: NzDateMode | string;\n\n  isRange: boolean = false; // Indicate whether the value is a range value\n  extraFooter?: TemplateRef<NzSafeAny> | string;\n\n  // status\n  statusCls: NgClassInterface = {};\n  status: NzValidateStatus = '';\n  hasFeedback: boolean = false;\n\n  public panelMode: NzDateMode | NzDateMode[] = 'date';\n  private isCustomPlaceHolder: boolean = false;\n  private isCustomFormat: boolean = false;\n  private showTime: SupportTimeOptions | boolean = false;\n  private isNzDisableFirstChange: boolean = true;\n  // --- Common API\n  readonly nzInline = input(false, { transform: booleanAttribute });\n  @Input({ transform: booleanAttribute }) nzAllowClear: boolean = true;\n  @Input({ transform: booleanAttribute }) nzAutoFocus: boolean = false;\n  @Input({ transform: booleanAttribute }) nzDisabled: boolean = false;\n  @Input({ transform: booleanAttribute }) nzInputReadOnly: boolean = false;\n  @Input({ transform: booleanAttribute }) nzOpen?: boolean;\n  @Input() nzDisabledDate?: (d: Date) => boolean;\n  @Input() nzLocale!: NzDatePickerI18nInterface;\n  @Input() nzPlaceHolder: string | string[] = '';\n  @Input() nzPopupStyle: object = POPUP_STYLE_PATCH;\n  readonly nzDropdownClassName = input<string>();\n  @Input() nzSize: NzDatePickerSizeType = 'default';\n  @Input() nzStatus: NzStatus = '';\n  @Input() nzFormat!: string;\n  @Input() @WithConfig() nzVariant: NzVariant | undefined = undefined;\n  @Input() nzDateRender?: TemplateRef<NzSafeAny> | string | FunctionProp<TemplateRef<Date> | string>;\n  @Input() nzDisabledTime?: DisabledTimeFn;\n  @Input() nzRenderExtraFooter?: TemplateRef<NzSafeAny> | string | FunctionProp<TemplateRef<NzSafeAny> | string>;\n  @Input({ transform: booleanAttribute }) nzShowToday: boolean = true;\n  @Input() nzMode: NzDateMode = 'date';\n  @Input({ transform: booleanAttribute }) nzShowNow: boolean = true;\n  @Input() nzRanges?: PresetRanges;\n  @Input() nzDefaultPickerValue: CompatibleDate | null = null;\n  @Input() @WithConfig() nzSeparator?: string | TemplateRef<NzSafeAny> = undefined;\n  @Input() @WithConfig() nzSuffixIcon: string | TemplateRef<NzSafeAny> = 'calendar';\n  @Input() @WithConfig() nzBackdrop = false;\n  @Input() nzId: string | null = null;\n  @Input() nzPlacement: NzPlacement = 'bottomLeft';\n  @Input({ transform: booleanAttribute }) nzShowWeekNumber: boolean = false;\n\n  @Output() readonly nzOnPanelChange = new EventEmitter<NzPanelChangeType>();\n  @Output() readonly nzOnCalendarChange = new EventEmitter<Array<Date | null>>();\n  @Output() readonly nzOnOk = new EventEmitter<CompatibleDate | null>();\n  @Output() readonly nzOnOpenChange = new EventEmitter<boolean>();\n\n  @Input() get nzShowTime(): SupportTimeOptions | boolean {\n    return this.showTime;\n  }\n\n  set nzShowTime(value: SupportTimeOptions | boolean) {\n    this.showTime = typeof value === 'object' ? value : toBoolean(value);\n  }\n\n  // ------------------------------------------------------------------------\n  // Input API Start\n  // ------------------------------------------------------------------------\n  @ViewChild(CdkConnectedOverlay, { static: false }) cdkConnectedOverlay?: CdkConnectedOverlay;\n  @ViewChild(DateRangePopupComponent, { static: false }) panel!: DateRangePopupComponent;\n  @ViewChild('separatorElement', { static: false }) separatorElement?: ElementRef;\n  @ViewChild('pickerInput', { static: false }) pickerInput?: ElementRef<HTMLInputElement>;\n  @ViewChildren('rangePickerInput') rangePickerInputs?: QueryList<ElementRef<HTMLInputElement>>;\n\n  get origin(): ElementRef {\n    return this.elementRef;\n  }\n\n  inputSize: number = 12;\n  inputWidth?: number;\n  prefixCls = PREFIX_CLASS;\n  inputValue!: NzSafeAny;\n  activeBarStyle: object = {};\n  overlayOpen: boolean = false; // Available when \"nzOpen\" = undefined\n  overlayPositions: ConnectionPositionPair[] = [...DEFAULT_DATE_PICKER_POSITIONS];\n\n  private readonly currentPosition = signal<OriginConnectionPosition>({ originX: 'start', originY: 'bottom' });\n\n  protected readonly datepickerAnimationEnter = slideAnimationEnter();\n  protected readonly datepickerAnimationLeave = slideAnimationLeave();\n\n  protected readonly dropdownClass = computed(() => {\n    const cls: string[] = [];\n    if (!this.nzInline()) {\n      cls.push(this.generateClass('dropdown'));\n\n      const customCls = this.nzDropdownClassName();\n      if (customCls) {\n        cls.push(customCls);\n      }\n\n      const { originX, originY } = this.currentPosition();\n\n      if (originX === 'start' && originY === 'bottom') {\n        cls.push(this.generateClass('dropdown-placement-bottomLeft'));\n      } else if (originX === 'start' && originY === 'top') {\n        cls.push(this.generateClass('dropdown-placement-topLeft'));\n      } else if (originX === 'end' && originY === 'bottom') {\n        cls.push(this.generateClass('dropdown-placement-bottomRight'));\n      } else if (originX === 'end' && originY === 'top') {\n        cls.push(this.generateClass('dropdown-placement-topRight'));\n      }\n\n      if (this.dir() === 'rtl') {\n        cls.push(this.generateClass('dropdown-rtl'));\n      }\n    }\n    return cls;\n  });\n\n  get realOpenState(): boolean {\n    // The value that really decide the open state of overlay\n    return this.isOpenHandledByUser() ? !!this.nzOpen : this.overlayOpen;\n  }\n\n  protected finalSize = computed(() => {\n    if (this.formSize?.()) {\n      return this.formSize();\n    }\n    if (this.compactSize) {\n      return this.compactSize();\n    }\n    return this.size();\n  });\n\n  protected readonly finalVariant = computed(() => this.variant() || this.formVariant?.() || 'outlined');\n\n  private size = signal<NzSizeLDSType>(this.nzSize);\n  private variant = signal<NzVariant | undefined>(this.nzVariant);\n\n  private readonly formSize = inject(NZ_FORM_SIZE, { optional: true });\n  private readonly formVariant = inject(NZ_FORM_VARIANT, { optional: true });\n\n  private compactSize = inject(NZ_SPACE_COMPACT_SIZE, { optional: true });\n  private document: Document = inject(DOCUMENT);\n\n  ngAfterViewInit(): void {\n    if (this.nzAutoFocus) {\n      this.focus();\n    }\n\n    if (this.isRange && this.platform.isBrowser) {\n      this.nzResizeObserver\n        .observe(this.elementRef)\n        .pipe(takeUntilDestroyed(this.destroyRef))\n        .subscribe(() => {\n          this.updateInputWidthAndArrowLeft();\n        });\n    }\n\n    this.datePickerService.inputPartChange$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(partType => {\n      if (partType) {\n        this.datePickerService.activeInput = partType;\n      }\n      this.focus();\n      this.updateInputWidthAndArrowLeft();\n    });\n\n    if (this.platform.isBrowser) {\n      // prevent mousedown event to trigger focusout event when click in date picker\n      // see: https://github.com/NG-ZORRO/ng-zorro-antd/issues/7450\n      fromEventOutsideAngular(this.elementRef.nativeElement, 'mousedown')\n        .pipe(takeUntilDestroyed(this.destroyRef))\n        .subscribe(event => {\n          if ((event.target as HTMLInputElement).tagName.toLowerCase() !== 'input') {\n            event.preventDefault();\n          }\n        });\n    }\n  }\n\n  updateInputWidthAndArrowLeft(): void {\n    this.inputWidth = this.rangePickerInputs?.first?.nativeElement.offsetWidth || 0;\n\n    const baseStyle = { position: 'absolute', width: `${this.inputWidth}px` };\n    this.datePickerService.arrowLeft =\n      this.datePickerService.activeInput === 'left'\n        ? 0\n        : this.inputWidth + this.separatorElement?.nativeElement.offsetWidth || 0;\n\n    if (this.dir() === 'rtl') {\n      this.activeBarStyle = { ...baseStyle, right: `${this.datePickerService.arrowLeft}px` };\n    } else {\n      this.activeBarStyle = { ...baseStyle, left: `${this.datePickerService.arrowLeft}px` };\n    }\n\n    this.cdr.markForCheck();\n  }\n\n  getInput(partType?: RangePartType): HTMLInputElement | undefined {\n    if (this.nzInline()) {\n      return undefined;\n    }\n    return this.isRange\n      ? partType === 'left'\n        ? this.rangePickerInputs?.first.nativeElement\n        : this.rangePickerInputs?.last.nativeElement\n      : this.pickerInput!.nativeElement;\n  }\n\n  focus(): void {\n    const activeInputElement = this.getInput(this.datePickerService.activeInput);\n    if (this.document.activeElement !== activeInputElement) {\n      activeInputElement?.focus();\n    }\n  }\n\n  onFocus(event: FocusEvent, partType?: RangePartType): void {\n    event.preventDefault();\n    if (partType) {\n      this.datePickerService.inputPartChange$.next(partType);\n    }\n    this.renderClass(true);\n  }\n\n  // blur event has not the relatedTarget in IE11, use focusout instead.\n  onFocusout(event: FocusEvent): void {\n    event.preventDefault();\n    this.onTouchedFn();\n    if (!this.elementRef.nativeElement.contains(event.relatedTarget as Node)) {\n      this.checkAndClose();\n    }\n    this.renderClass(false);\n  }\n\n  // Show overlay content\n  open(): void {\n    if (this.nzInline()) {\n      return;\n    }\n    if (!this.realOpenState && !this.nzDisabled) {\n      this.updateInputWidthAndArrowLeft();\n      this.overlayOpen = true;\n      this.nzOnOpenChange.emit(true);\n      this.focus();\n      this.cdr.markForCheck();\n    }\n  }\n\n  close(): void {\n    if (this.nzInline()) {\n      return;\n    }\n    if (this.realOpenState) {\n      this.overlayOpen = false;\n      this.nzOnOpenChange.emit(false);\n    }\n  }\n\n  get showClear(): boolean {\n    return !this.nzDisabled && !this.isEmptyValue(this.datePickerService.value) && this.nzAllowClear;\n  }\n\n  checkAndClose(): void {\n    if (!this.realOpenState) {\n      return;\n    }\n\n    if (this.panel.isAllowed(this.datePickerService.value!, true)) {\n      if (Array.isArray(this.datePickerService.value) && wrongSortOrder(this.datePickerService.value)) {\n        const index = this.datePickerService.getActiveIndex();\n        const value = this.datePickerService.value[index];\n        this.panel.changeValueFromSelect(value!, true);\n        return;\n      }\n      this.updateInputValue();\n      this.datePickerService.emitValue$.next();\n    } else {\n      this.datePickerService.setValue(this.datePickerService.initialValue!);\n      this.close();\n    }\n  }\n\n  onClickInputBox(event: MouseEvent): void {\n    event.stopPropagation();\n    this.focus();\n    if (!this.isOpenHandledByUser()) {\n      this.open();\n    }\n  }\n\n  onOverlayKeydown(event: KeyboardEvent): void {\n    if (event.keyCode === ESCAPE) {\n      this.datePickerService.initValue();\n    }\n  }\n\n  onPositionChange(position: ConnectedOverlayPositionChange): void {\n    this.currentPosition.set(position.connectionPair);\n  }\n\n  onClickClear(event: MouseEvent): void {\n    event.preventDefault();\n    event.stopPropagation();\n\n    this.datePickerService.initValue(true);\n    this.datePickerService.emitValue$.next();\n  }\n\n  updateInputValue(): void {\n    const newValue = this.datePickerService.value;\n    if (this.isRange) {\n      this.inputValue = newValue ? (newValue as CandyDate[]).map(v => this.formatValue(v)) : ['', ''];\n    } else {\n      this.inputValue = this.formatValue(newValue as CandyDate);\n    }\n    this.cdr.markForCheck();\n  }\n\n  formatValue(value: CandyDate): string {\n    return this.dateHelper.format(value && (value as CandyDate).nativeDate, this.nzFormat);\n  }\n\n  onInputChange(value: string, isEnter: boolean = false): void {\n    /**\n     * in IE11 focus/blur will trigger ngModelChange if placeholder changes,\n     * so we forbid IE11 to open panel through input change\n     */\n    if (\n      !this.platform.TRIDENT &&\n      this.document.activeElement === this.getInput(this.datePickerService.activeInput) &&\n      !this.realOpenState\n    ) {\n      this.open();\n      return;\n    }\n\n    const date = this.checkValidDate(value);\n    // Can only change date when it's open\n    if (date && this.realOpenState) {\n      this.panel.changeValueFromSelect(date, isEnter);\n    }\n  }\n\n  onKeyupEnter(event: Event): void {\n    this.onInputChange((event.target as HTMLInputElement).value, true);\n  }\n\n  private checkValidDate(value: string): CandyDate | null {\n    const date = new CandyDate(this.dateHelper.parseDate(value, this.nzFormat));\n\n    if (!date.isValid() || value !== this.dateHelper.format(date.nativeDate, this.nzFormat)) {\n      return null;\n    }\n\n    return date;\n  }\n\n  getPlaceholder(partType?: RangePartType): string {\n    return this.isRange\n      ? this.nzPlaceHolder[this.datePickerService.getActiveIndex(partType!)]\n      : (this.nzPlaceHolder as string);\n  }\n\n  isEmptyValue(value: CompatibleValue): boolean {\n    if (value === null) {\n      return true;\n    } else if (this.isRange) {\n      return !value || !Array.isArray(value) || value.every(val => !val);\n    } else {\n      return !value;\n    }\n  }\n\n  // Whether open state is permanently controlled by user himself\n  isOpenHandledByUser(): boolean {\n    return this.nzOpen !== undefined;\n  }\n\n  private nzFormStatusService = inject(NzFormStatusService, { optional: true });\n  private nzFormNoStatusService = inject(NzFormNoStatusService, { optional: true });\n\n  // ------------------------------------------------------------------------\n  // Input API End\n  // ------------------------------------------------------------------------\n\n  ngOnInit(): void {\n    this.nzFormStatusService?.formStatusChanges\n      .pipe(\n        distinctUntilChanged((pre, cur) => {\n          return pre.status === cur.status && pre.hasFeedback === cur.hasFeedback;\n        }),\n        withLatestFrom(this.nzFormNoStatusService ? this.nzFormNoStatusService.noFormStatus : of(false)),\n        map(([{ status, hasFeedback }, noStatus]) => ({ status: noStatus ? '' : status, hasFeedback })),\n        takeUntilDestroyed(this.destroyRef)\n      )\n      .subscribe(({ status, hasFeedback }) => {\n        this.setStatusStyles(status, hasFeedback);\n      });\n\n    // Subscribe the every locale change if the nzLocale is not handled by user\n    if (!this.nzLocale) {\n      this.i18n.localeChange.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.setLocale());\n    }\n\n    // Default value\n    this.datePickerService.isRange = this.isRange;\n    this.datePickerService.initValue(true);\n    this.datePickerService.emitValue$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n      const granularityComparison = this.showTime ? 'second' : 'day';\n      const value = this.datePickerService.value;\n      const datePickerPreviousValue = this.datePickerService.initialValue;\n\n      // Check if the value has change for a simple datepicker, let us avoid notify the control for nothing\n      if (\n        !this.isRange &&\n        (value as CandyDate)?.isSame((datePickerPreviousValue as CandyDate)?.nativeDate, granularityComparison)\n      ) {\n        this.onTouchedFn();\n        return this.close();\n      }\n\n      // check if the value has change for a range picker, let us avoid notify the control for nothing\n      if (this.isRange) {\n        const [previousStartDate, previousEndDate] = datePickerPreviousValue as CandyDate[];\n        const [currentStartDate, currentEndDate] = value as CandyDate[];\n        if (\n          previousStartDate?.isSame(currentStartDate?.nativeDate, granularityComparison) &&\n          previousEndDate?.isSame(currentEndDate?.nativeDate, granularityComparison)\n        ) {\n          this.onTouchedFn();\n          return this.close();\n        }\n      }\n\n      this.datePickerService.initialValue = cloneDate(value);\n      if (this.isRange) {\n        const vAsRange = value as CandyDate[];\n        if (vAsRange.length) {\n          this.onChangeFn([vAsRange[0]?.nativeDate ?? null, vAsRange[1]?.nativeDate ?? null]);\n        } else {\n          this.onChangeFn([]);\n        }\n      } else {\n        if (value) {\n          this.onChangeFn((value as CandyDate).nativeDate);\n        } else {\n          this.onChangeFn(null);\n        }\n      }\n      this.onTouchedFn();\n      // When value emitted, overlay will be closed\n      this.close();\n    });\n\n    this.inputValue = this.isRange ? ['', ''] : '';\n    this.setModeAndFormat();\n\n    this.datePickerService.valueChange$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n      this.updateInputValue();\n    });\n  }\n\n  ngOnChanges({\n    nzStatus,\n    nzPlacement,\n    nzPopupStyle,\n    nzPlaceHolder,\n    nzLocale,\n    nzFormat,\n    nzRenderExtraFooter,\n    nzMode,\n    nzSize,\n    nzVariant\n  }: SimpleChanges): void {\n    if (nzPopupStyle) {\n      // Always assign the popup style patch\n      this.nzPopupStyle = this.nzPopupStyle ? { ...this.nzPopupStyle, ...POPUP_STYLE_PATCH } : POPUP_STYLE_PATCH;\n    }\n\n    // Mark as customized placeholder by user once nzPlaceHolder assigned at the first time\n    if (nzPlaceHolder?.currentValue) {\n      this.isCustomPlaceHolder = true;\n    }\n\n    if (nzFormat?.currentValue) {\n      this.isCustomFormat = true;\n      this.updateInputValue();\n    }\n\n    if (nzLocale) {\n      // The nzLocale is currently handled by user\n      this.setDefaultPlaceHolder();\n    }\n\n    if (nzRenderExtraFooter) {\n      this.extraFooter = valueFunctionProp(this.nzRenderExtraFooter!);\n    }\n\n    if (nzMode) {\n      this.setDefaultPlaceHolder();\n      this.setModeAndFormat();\n    }\n\n    if (nzStatus) {\n      this.setStatusStyles(this.nzStatus, this.hasFeedback);\n    }\n\n    if (nzPlacement) {\n      this.setPlacement(this.nzPlacement);\n    }\n\n    if (nzSize) {\n      this.size.set(nzSize.currentValue);\n    }\n\n    if (nzVariant) {\n      this.variant.set(nzVariant.currentValue);\n    }\n  }\n\n  setModeAndFormat(): void {\n    const inputFormats: Partial<Record<NzDateMode, string>> = {\n      year: 'yyyy',\n      quarter: 'yyyy-[Q]Q',\n      month: 'yyyy-MM',\n      week: 'YYYY-ww',\n      date: this.nzShowTime ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd'\n    };\n\n    if (!this.nzMode) {\n      this.nzMode = 'date';\n    }\n\n    this.panelMode = this.isRange ? [this.nzMode, this.nzMode] : this.nzMode;\n\n    // Default format when it's empty\n    if (!this.isCustomFormat) {\n      this.nzFormat = inputFormats[this.nzMode as NzDateMode]!;\n    }\n\n    this.inputSize = Math.max(10, this.nzFormat.length) + 2;\n    this.updateInputValue();\n  }\n\n  /**\n   * Triggered when overlayOpen changes (different with realOpenState)\n   *\n   * @param open The overlayOpen in picker component\n   */\n  onOpenChange(open: boolean): void {\n    this.nzOnOpenChange.emit(open);\n  }\n\n  // ------------------------------------------------------------------------\n  // | Control value accessor implements\n  // ------------------------------------------------------------------------\n\n  // NOTE: onChangeFn/onTouchedFn will not be assigned if user not use as ngModel\n  onChangeFn: OnChangeType = () => void 0;\n  onTouchedFn: OnTouchedType = () => void 0;\n\n  writeValue(value: CompatibleDate): void {\n    this.setValue(value);\n    this.cdr.markForCheck();\n  }\n\n  registerOnChange(fn: OnChangeType): void {\n    this.onChangeFn = fn;\n  }\n\n  registerOnTouched(fn: OnTouchedType): void {\n    this.onTouchedFn = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.nzDisabled = (this.isNzDisableFirstChange && this.nzDisabled) || isDisabled;\n    this.cdr.markForCheck();\n    this.isNzDisableFirstChange = false;\n  }\n\n  // ------------------------------------------------------------------------\n  // | Internal methods\n  // ------------------------------------------------------------------------\n\n  // Reload locale from i18n with side effects\n  private setLocale(): void {\n    this.nzLocale = this.i18n.getLocaleData('DatePicker', {});\n    this.setDefaultPlaceHolder();\n    this.cdr.markForCheck();\n  }\n\n  private setDefaultPlaceHolder(): void {\n    if (!this.isCustomPlaceHolder && this.nzLocale) {\n      const defaultPlaceholder: Partial<Record<NzDateMode, string>> = {\n        year: this.getPropertyOfLocale('yearPlaceholder'),\n        quarter: this.getPropertyOfLocale('quarterPlaceholder'),\n        month: this.getPropertyOfLocale('monthPlaceholder'),\n        week: this.getPropertyOfLocale('weekPlaceholder'),\n        date: this.getPropertyOfLocale('placeholder')\n      };\n\n      const defaultRangePlaceholder: Partial<Record<NzDateMode, string[]>> = {\n        year: this.getPropertyOfLocale('rangeYearPlaceholder'),\n        quarter: this.getPropertyOfLocale('rangeQuarterPlaceholder'),\n        month: this.getPropertyOfLocale('rangeMonthPlaceholder'),\n        week: this.getPropertyOfLocale('rangeWeekPlaceholder'),\n        date: this.getPropertyOfLocale('rangePlaceholder')\n      };\n\n      this.nzPlaceHolder = this.isRange\n        ? defaultRangePlaceholder[this.nzMode as NzDateMode]!\n        : defaultPlaceholder[this.nzMode as NzDateMode]!;\n    }\n  }\n\n  private getPropertyOfLocale<T extends keyof NzDatePickerLangI18nInterface>(\n    type: T\n  ): NzDatePickerLangI18nInterface[T] {\n    return this.nzLocale.lang[type] || this.i18n.getLocaleData(`DatePicker.lang.${type}`);\n  }\n\n  // Safe way of setting value with default\n  private setValue(value: CompatibleDate): void {\n    const newValue = this.datePickerService.makeValue(value);\n    this.datePickerService.setValue(newValue);\n    this.datePickerService.initialValue = cloneDate(newValue);\n    this.cdr.detectChanges();\n  }\n\n  renderClass(value: boolean): void {\n    // TODO: avoid autoFocus cause change after checked error\n    if (value) {\n      this.renderer.addClass(this.elementRef.nativeElement, 'ant-picker-focused');\n    } else {\n      this.renderer.removeClass(this.elementRef.nativeElement, 'ant-picker-focused');\n    }\n  }\n\n  onPanelModeChange(panelChange: NzPanelChangeType): void {\n    this.nzOnPanelChange.emit(panelChange);\n  }\n\n  // Emit nzOnCalendarChange when select date by nz-range-picker\n  onCalendarChange(value: CompatibleValue): void {\n    if (this.isRange && Array.isArray(value)) {\n      const rangeValue = value.filter(x => x instanceof CandyDate).map(x => x!.nativeDate);\n      this.nzOnCalendarChange.emit(rangeValue);\n    }\n  }\n\n  onResultOk(): void {\n    if (this.isRange) {\n      const value = this.datePickerService.value as CandyDate[];\n      if (value.length) {\n        this.nzOnOk.emit([value[0]?.nativeDate || null, value[1]?.nativeDate || null]);\n      } else {\n        this.nzOnOk.emit([]);\n      }\n    } else {\n      if (this.datePickerService.value) {\n        this.nzOnOk.emit((this.datePickerService.value as CandyDate).nativeDate);\n      } else {\n        this.nzOnOk.emit(null);\n      }\n    }\n  }\n\n  // status\n  private setStatusStyles(status: NzValidateStatus, hasFeedback: boolean): void {\n    // set inner status\n    this.status = status;\n    this.hasFeedback = hasFeedback;\n    this.cdr.markForCheck();\n    // render status if nzStatus is set\n    this.statusCls = getStatusClassNames(this.prefixCls, status, hasFeedback);\n    Object.keys(this.statusCls).forEach(status => {\n      if (this.statusCls[status]) {\n        this.renderer.addClass(this.elementRef.nativeElement, status);\n      } else {\n        this.renderer.removeClass(this.elementRef.nativeElement, status);\n      }\n    });\n  }\n\n  private setPlacement(placement: NzPlacement): void {\n    const position: ConnectionPositionPair = DATE_PICKER_POSITION_MAP[placement];\n    this.overlayPositions = [position, ...DEFAULT_DATE_PICKER_POSITIONS];\n    this.currentPosition.set(position);\n  }\n\n  private generateClass(suffix: string): string {\n    return generateClassName(this.prefixCls, suffix);\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 { Directive, inject } from '@angular/core';\n\nimport { NzDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'nz-month-picker',\n  exportAs: 'nzMonthPicker'\n})\nexport class NzMonthPickerComponent {\n  datePicker = inject(NzDatePickerComponent, { host: true });\n\n  constructor() {\n    this.datePicker.nzMode = 'month';\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 { Directive, inject } from '@angular/core';\n\nimport { NzDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'nz-quarter-picker',\n  exportAs: 'nzQuarterPicker'\n})\nexport class NzQuarterPickerComponent {\n  datePicker = inject(NzDatePickerComponent, { host: true });\n\n  constructor() {\n    this.datePicker.nzMode = 'quarter';\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 { Directive, inject } from '@angular/core';\n\nimport { NzDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'nz-range-picker',\n  exportAs: 'nzRangePicker'\n})\nexport class NzRangePickerComponent {\n  datePicker = inject(NzDatePickerComponent, { host: true });\n\n  constructor() {\n    this.datePicker.isRange = true;\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 { Directive, inject } from '@angular/core';\n\nimport { NzDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'nz-week-picker',\n  exportAs: 'nzWeekPicker'\n})\nexport class NzWeekPickerComponent {\n  datePicker = inject(NzDatePickerComponent, { host: true });\n\n  constructor() {\n    this.datePicker.nzMode = 'week';\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 { Directive, inject } from '@angular/core';\n\nimport { NzDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'nz-year-picker',\n  exportAs: 'nzYearPicker'\n})\nexport class NzYearPickerComponent {\n  datePicker = inject(NzDatePickerComponent, { host: true });\n\n  constructor() {\n    this.datePicker.nzMode = 'year';\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 { NgModule } from '@angular/core';\n\nimport { CalendarFooterComponent } from './calendar-footer.component';\nimport { NzDatePickerComponent } from './date-picker.component';\nimport { DateRangePopupComponent } from './date-range-popup.component';\nimport { InnerPopupComponent } from './inner-popup.component';\nimport { NzMonthPickerComponent } from './month-picker.component';\nimport { NzQuarterPickerComponent } from './quarter-picker.component';\nimport { NzRangePickerComponent } from './range-picker.component';\nimport { NzWeekPickerComponent } from './week-picker.component';\nimport { NzYearPickerComponent } from './year-picker.component';\n\n@NgModule({\n  imports: [\n    NzDatePickerComponent,\n    NzMonthPickerComponent,\n    NzYearPickerComponent,\n    NzWeekPickerComponent,\n    NzRangePickerComponent,\n    CalendarFooterComponent,\n    InnerPopupComponent,\n    DateRangePopupComponent,\n    NzQuarterPickerComponent\n  ],\n  exports: [\n    NzDatePickerComponent,\n    NzRangePickerComponent,\n    NzMonthPickerComponent,\n    NzYearPickerComponent,\n    NzWeekPickerComponent,\n    NzQuarterPickerComponent\n  ]\n})\nexport class NzDatePickerModule {}\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 './standard-types';\nexport * from './util';\n\nexport { CalendarFooterComponent as ɵCalendarFooterComponent } from './calendar-footer.component';\nexport { NzDatePickerComponent } from './date-picker.component';\nexport type { NzDatePickerSizeType } from './date-picker.component';\nexport { NzDatePickerModule } from './date-picker.module';\nexport { DatePickerService as ɵDatePickerService } from './date-picker.service';\nexport { DateRangePopupComponent as ɵDateRangePopupComponent } from './date-range-popup.component';\nexport { InnerPopupComponent as ɵInnerPopupComponent } from './inner-popup.component';\nexport { NzMonthPickerComponent } from './month-picker.component';\nexport { NzQuarterPickerComponent } from './quarter-picker.component';\nexport { NzRangePickerComponent } from './range-picker.component';\nexport { NzWeekPickerComponent } from './week-picker.component';\nexport { NzYearPickerComponent } from './year-picker.component';\n\nexport * from './lib/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DateHeaderComponent","i2.DateTableComponent","i3.DecadeHeaderComponent","i4.DecadeTableComponent","i5.MonthHeaderComponent","i6.MonthTableComponent","i7.YearHeaderComponent","i8.YearTableComponent","i9.QuarterHeaderComponent","i10.QuarterTableComponent","i12","i1","i2","i3"],"mappings":"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"}