{"version":3,"file":"ng-zorro-antd-date-picker.mjs","sources":["../../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/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/inner-popup.component.ts","../../components/date-picker/date-range-popup.component.ts","../../components/date-picker/date-picker.component.ts","../../components/date-picker/lib/lib-packer.module.ts","../../components/date-picker/month-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/lib/public-api.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 { 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 {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\n\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { isNonEmptyString, isTemplateRef } from 'ng-zorro-antd/core/util';\nimport { DateHelperService, NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';\n\nimport { transCompatFormat } from './lib/util';\nimport { 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: 'calendar-footer',\n  exportAs: 'calendarFooter',\n  template: `\n    <div class=\"{{ prefixCls }}-footer\">\n      <div *ngIf=\"extraFooter\" class=\"{{ prefixCls }}-footer-extra\">\n        <ng-container [ngSwitch]=\"true\">\n          <ng-container *ngSwitchCase=\"isTemplateRef(extraFooter)\">\n            <ng-container *ngTemplateOutlet=\"$any(extraFooter)\"></ng-container>\n          </ng-container>\n          <ng-container *ngSwitchCase=\"isNonEmptyString(extraFooter)\">\n            <span [innerHTML]=\"extraFooter\"></span>\n          </ng-container>\n        </ng-container>\n      </div>\n      <a\n        *ngIf=\"showToday\"\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      <ul *ngIf=\"hasTimePicker || rangeQuickSelector\" class=\"{{ prefixCls }}-ranges\">\n        <ng-container *ngTemplateOutlet=\"rangeQuickSelector\"></ng-container>\n        <li *ngIf=\"showNow\" class=\"{{ prefixCls }}-now\">\n          <a class=\"{{ prefixCls }}-now-btn\" (click)=\"isTodayDisabled ? null : onClickToday()\">\n            {{ locale.now }}\n          </a>\n        </li>\n        <li *ngIf=\"hasTimePicker\" 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      </ul>\n    </div>\n  `\n})\nexport class CalendarFooterComponent implements OnChanges {\n  @Input() locale!: NzCalendarI18nInterface;\n  @Input() showToday: boolean = false;\n  @Input() showNow: boolean = false;\n  @Input() hasTimePicker: boolean = false;\n  @Input() isRange: boolean = false;\n\n  @Input() 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  isTemplateRef = isTemplateRef;\n  isNonEmptyString = isNonEmptyString;\n  isTodayDisabled: boolean = false;\n  todayTitle: string = '';\n\n  constructor(private dateHelper: DateHelperService) {}\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>();\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: { [key in NzDateMode]?: NormalizedMode } = {\n      date: 'month',\n      month: '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 { Directive, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';\nimport { NzDateMode } from '../standard-types';\nimport { PanelSelector } from './interface';\n\n@Directive()\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport abstract class AbstractPanelHeader implements OnInit, OnChanges {\n  prefixCls: string = `ant-picker-header`;\n  selectors: PanelSelector[] = [];\n\n  @Input() value!: CandyDate;\n  @Input() locale!: NzCalendarI18nInterface;\n  @Input() showSuperPreBtn: boolean = true;\n  @Input() showSuperNextBtn: boolean = true;\n  @Input() showPreBtn: boolean = true;\n  @Input() showNextBtn: boolean = true;\n\n  @Output() readonly panelModeChange = new EventEmitter<NzDateMode>();\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.render();\n    }\n  }\n\n  changeMode(mode: NzDateMode): void {\n    this.panelModeChange.emit(mode);\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","/**\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';\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  exportAs: 'decadeHeader',\n  templateUrl: './abstract-panel-header.html'\n})\nexport class DecadeHeaderComponent extends AbstractPanelHeader {\n  override previous(): void {}\n  override next(): void {}\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          // noop\n        },\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    <ng-container *ngFor=\"let selector of selectors\">\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    </ng-container>\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 { Directive, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, TemplateRef } from '@angular/core';\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { FunctionProp, NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { isNonEmptyString, isTemplateRef } from 'ng-zorro-antd/core/util';\nimport { NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';\nimport { DateBodyRow, DateCell } from './interface';\n\n@Directive()\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport abstract class AbstractTable implements OnInit, OnChanges {\n  isTemplateRef = isTemplateRef;\n  isNonEmptyString = isNonEmptyString;\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() 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\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  trackByBodyRow(_index: number, item: DateBodyRow): NzSafeAny {\n    return item.trackByIndex;\n  }\n\n  trackByBodyColumn(_index: number, item: DateCell): NzSafeAny {\n    return item.trackByIndex;\n  }\n\n  hasRangeValue(): boolean {\n    return this.selectedValue?.length > 0 || this.hoverValue?.length > 0;\n  }\n\n  getClassMap(cell: DateCell): { [key: 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      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 ? previousCandyDate.isSameDay(value) : 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';\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  exportAs: 'decadeTable',\n  templateUrl: 'abstract-table.html'\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): { [key: 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  <thead *ngIf=\"headRow && headRow.length > 0\">\n    <tr role=\"row\">\n      <th *ngIf=\"showWeek\" role=\"columnheader\"></th>\n      <th *ngFor=\"let cell of headRow\" role=\"columnheader\" title=\"{{ cell.title }}\">\n        {{ cell.content }}\n      </th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr *ngFor=\"let row of bodyRows; trackBy: trackByBodyRow\" [ngClass]=\"row.classMap!\" role=\"row\">\n      <td *ngIf=\"row.weekNum\" role=\"gridcell\" class=\"{{ prefixCls }}-cell-week\">\n        {{ row.weekNum }}\n      </td>\n      <td\n        *ngFor=\"let cell of row.dateCells; trackBy: trackByBodyColumn\"\n        title=\"{{ cell.title }}\"\n        role=\"gridcell\"\n        [ngClass]=\"cell.classMap!\"\n        (click)=\"cell.isDisabled ? null : cell.onClick()\"\n        (mouseenter)=\"cell.onMouseEnter()\"\n      >\n        <ng-container [ngSwitch]=\"prefixCls\">\n          <ng-container *ngSwitchCase=\"'ant-picker'\">\n            <ng-container [ngSwitch]=\"true\">\n              <ng-container *ngSwitchCase=\"isTemplateRef(cell.cellRender)\">\n                <!--           *ngSwitchCase not has type assertion support, the cellRender type here is TemplateRef -->\n                <ng-container\n                  *ngTemplateOutlet=\"$any(cell.cellRender); context: { $implicit: cell.value }\"\n                ></ng-container>\n              </ng-container>\n              <ng-container *ngSwitchCase=\"isNonEmptyString(cell.cellRender)\">\n                <span [innerHTML]=\"cell.cellRender\"></span>\n              </ng-container>\n              <ng-container *ngSwitchDefault>\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              </ng-container>\n            </ng-container>\n          </ng-container>\n          <ng-container *ngSwitchCase=\"'ant-picker-calendar'\">\n            <div\n              class=\"{{ prefixCls }}-date ant-picker-cell-inner\"\n              [class.ant-picker-calendar-date-today]=\"cell.isToday\"\n            >\n              <ng-container *ngIf=\"cell.fullCellRender; else defaultCell\">\n                <ng-container\n                  *ngTemplateOutlet=\"$any(cell.fullCellRender); context: { $implicit: cell.value }\"\n                >\n                </ng-container>\n              </ng-container>\n              <ng-template #defaultCell>\n                <div class=\"{{ prefixCls }}-date-value\">{{ cell.content }}</div>\n                <div class=\"{{ prefixCls }}-date-content\">\n                  <ng-container\n                    *ngTemplateOutlet=\"$any(cell.cellRender); context: { $implicit: cell.value }\"\n                  >\n                  </ng-container>\n                </div>\n              </ng-template>\n            </div>\n          </ng-container>\n        </ng-container>\n      </td>\n    </tr>\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';\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  exportAs: 'yearHeader',\n  templateUrl: './abstract-panel-header.html'\n})\nexport class YearHeaderComponent extends AbstractPanelHeader {\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: () => this.changeMode('decade'),\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, ViewEncapsulation } from '@angular/core';\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\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  exportAs: 'yearTable',\n  templateUrl: 'abstract-table.html'\n})\nexport class YearTableComponent extends AbstractTable {\n  override MAX_ROW = 4;\n  override MAX_COL = 3;\n\n  constructor(private dateHelper: DateHelperService) {\n    super();\n  }\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): { [key: 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, ViewEncapsulation } from '@angular/core';\n\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\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  exportAs: 'monthHeader',\n  templateUrl: './abstract-panel-header.html'\n})\nexport class MonthHeaderComponent extends AbstractPanelHeader {\n  constructor(private dateHelper: DateHelperService) {\n    super();\n  }\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-month-btn`,\n        title: this.locale.yearSelect,\n        onClick: () => this.changeMode('year'),\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, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\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  exportAs: 'monthTable',\n  templateUrl: 'abstract-table.html'\n})\nexport class MonthTableComponent extends AbstractTable implements OnChanges, OnInit {\n  override MAX_ROW = 4;\n  override MAX_COL = 3;\n\n  constructor(private dateHelper: DateHelperService) {\n    super();\n  }\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, ViewEncapsulation } from '@angular/core';\n\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\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  exportAs: 'dateHeader',\n  templateUrl: './abstract-panel-header.html'\n})\nexport class DateHeaderComponent extends AbstractPanelHeader {\n  constructor(private dateHelper: DateHelperService) {\n    super();\n  }\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-year-btn`,\n        title: this.locale.yearSelect,\n        onClick: () => this.changeMode('year'),\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: () => this.changeMode('month'),\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, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { valueFunctionProp } from 'ng-zorro-antd/core/util';\n\nimport { DateHelperService, NzCalendarI18nInterface, NzI18nService } from 'ng-zorro-antd/i18n';\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  exportAs: 'dateTable',\n  templateUrl: './abstract-table.html'\n})\nexport class DateTableComponent extends AbstractTable implements OnChanges, OnInit {\n  @Input() override locale!: NzCalendarI18nInterface;\n\n  constructor(private i18n: NzI18nService, private dateHelper: DateHelperService) {\n    super();\n  }\n\n  private changeValueFromInside(value: CandyDate): void {\n    // Only change date 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(this.i18n.getLocaleData('DatePicker.lang.dateFormat', 'YYYY-MM-DD'));\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.showWeek,\n        [`ant-picker-week-panel-row-selected`]: this.showWeek && 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.showWeek) {\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): { [key: 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\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation\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 { DisabledDateFn, NzDateMode, 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  exportAs: 'innerPopup',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div [class.ant-picker-datetime-panel]=\"showTimePicker\">\n      <div class=\"{{ prefixCls }}-{{ panelMode }}-panel\">\n        <ng-container [ngSwitch]=\"panelMode\">\n          <ng-container *ngSwitchCase=\"'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              (panelModeChange)=\"panelModeChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            ></decade-header>\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              ></decade-table>\n            </div>\n          </ng-container>\n          <ng-container *ngSwitchCase=\"'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              (panelModeChange)=\"panelModeChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            ></year-header>\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              ></year-table>\n            </div>\n          </ng-container>\n          <ng-container *ngSwitchCase=\"'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              (panelModeChange)=\"panelModeChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            ></month-header>\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              ></month-table>\n            </div>\n          </ng-container>\n\n          <ng-container *ngSwitchDefault>\n            <date-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"showWeek ? enablePrevNext('prev', 'week') : enablePrevNext('prev', 'date')\"\n              [showSuperNextBtn]=\"showWeek ? enablePrevNext('next', 'week') : enablePrevNext('next', 'date')\"\n              [showPreBtn]=\"showWeek ? enablePrevNext('prev', 'week') : enablePrevNext('prev', 'date')\"\n              [showNextBtn]=\"showWeek ? enablePrevNext('next', 'week') : enablePrevNext('next', 'date')\"\n              (panelModeChange)=\"panelModeChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            ></date-header>\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                (valueChange)=\"onSelectDate($event)\"\n                (cellHover)=\"cellHover.emit($event)\"\n              ></date-table>\n            </div>\n          </ng-container>\n        </ng-container>\n      </div>\n      <ng-container *ngIf=\"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        ></nz-time-picker-panel>\n        <!-- use [opened] to trigger time panel 'initPosition()' -->\n      </ng-container>\n    </div>\n  `\n})\nexport class InnerPopupComponent implements OnChanges {\n  @Input() activeDate!: CandyDate;\n  @Input() endPanelMode!: NzDateMode;\n  @Input() panelMode!: NzDateMode;\n  @Input() showWeek!: boolean;\n  @Input() locale!: NzCalendarI18nInterface;\n  @Input() 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\n  @Output() readonly panelModeChange = new EventEmitter<NzDateMode>();\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>(); // 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  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.panelModeChange.emit(this.endPanelMode);\n    }\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.panelModeChange.emit(this.endPanelMode);\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.panelModeChange.emit('year');\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 {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { fromEvent, merge, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\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 { NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';\n\nimport { DatePickerService } from './date-picker.service';\nimport {\n  CompatibleDate,\n  DisabledDateFn,\n  DisabledTimeFn,\n  DisabledTimePartial,\n  NzDateMode,\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  exportAs: 'dateRangePopup',\n  template: `\n    <ng-container *ngIf=\"isRange; else singlePanel\">\n      <div class=\"{{ prefixCls }}-range-wrapper {{ prefixCls }}-date-range-wrapper\">\n        <div class=\"{{ prefixCls }}-range-arrow\" [style.left.px]=\"datePickerService?.arrowLeft\"></div>\n        <div class=\"{{ prefixCls }}-panel-container\">\n          <div class=\"{{ prefixCls }}-panels\">\n            <ng-container *ngIf=\"hasTimePicker; else noTimePicker\">\n              <ng-container\n                *ngTemplateOutlet=\"tplInnerPopup; context: { partType: datePickerService.activeInput }\"\n              ></ng-container>\n            </ng-container>\n            <ng-template #noTimePicker>\n              <ng-container *ngTemplateOutlet=\"tplInnerPopup; context: { partType: 'left' }\"></ng-container>\n              <ng-container *ngTemplateOutlet=\"tplInnerPopup; context: { partType: 'right' }\"></ng-container>\n            </ng-template>\n          </div>\n          <ng-container *ngTemplateOutlet=\"tplFooter\"></ng-container>\n        </div>\n      </div>\n    </ng-container>\n    <ng-template #singlePanel>\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\"></ng-container>\n          <ng-container *ngTemplateOutlet=\"tplFooter\"></ng-container>\n        </div>\n      </div>\n    </ng-template>\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          (panelModeChange)=\"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          (cellHover)=\"onCellHover($event)\"\n          (selectDate)=\"changeValueFromSelect($event, !showTime)\"\n          (selectTime)=\"onSelectTime($event, partType)\"\n          (headerChange)=\"onActiveDateChange($event, partType)\"\n        ></inner-popup>\n      </div>\n    </ng-template>\n\n    <ng-template #tplFooter>\n      <calendar-footer\n        *ngIf=\"hasFooter\"\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      ></calendar-footer>\n    </ng-template>\n\n    <!-- Range ONLY: Range Quick Selector -->\n    <ng-template #tplRangeQuickSelector>\n      <li\n        *ngFor=\"let name of getObjectKeys(ranges)\"\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    </ng-template>\n  `\n})\nexport class DateRangePopupComponent implements OnInit, OnChanges, OnDestroy {\n  @Input() isRange!: boolean;\n  @Input() inline: boolean = false;\n  @Input() showWeek!: boolean;\n  @Input() locale!: NzCalendarI18nInterface | undefined;\n  @Input() disabledDate?: DisabledDateFn;\n  @Input() disabledTime?: DisabledTimeFn; // This will lead to rebuild time options\n  @Input() showToday!: boolean;\n  @Input() 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\n  @Output() readonly panelModeChange = new EventEmitter<NzDateMode | NzDateMode[]>();\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  destroy$ = new Subject();\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  constructor(\n    public datePickerService: DatePickerService,\n    public cdr: ChangeDetectorRef,\n    private ngZone: NgZone,\n    private host: ElementRef<HTMLElement>\n  ) {}\n\n  ngOnInit(): void {\n    merge(this.datePickerService.valueChange$, this.datePickerService.inputPartChange$)\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(() => {\n        this.updateActiveDate();\n        this.cdr.markForCheck();\n      });\n\n    this.ngZone.runOutsideAngular(() => {\n      fromEvent(this.host.nativeElement, 'mousedown')\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(event => event.preventDefault());\n    });\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  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\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): void {\n    if (!this.isRange) {\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(mode: NzDateMode, partType?: RangePartType): void {\n    if (this.isRange) {\n      const index = this.datePickerService.getActiveIndex(partType);\n      if (index === 0) {\n        this.panelMode = [mode, this.panelMode[1]] as NzDateMode[];\n      } else {\n        this.panelMode = [this.panelMode[0], mode] as NzDateMode[];\n      }\n    } else {\n      this.panelMode = mode;\n    }\n    this.panelModeChange.emit(this.panelMode);\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();\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, clear the other part's value\n           */\n          if (wrongSortOrder(selectedValue)) {\n            nextPart = this.reversedPart(checkedPart);\n            selectedValue[this.datePickerService.getActiveIndex(nextPart)] = null;\n            this.checkedPartArr[this.datePickerService.getActiveIndex(nextPart)] = false;\n          }\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();\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 { Direction, Directionality } from '@angular/cdk/bidi';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport {\n  CdkConnectedOverlay,\n  CdkOverlayOrigin,\n  ConnectedOverlayPositionChange,\n  ConnectionPositionPair,\n  HorizontalConnectionPos,\n  VerticalConnectionPos\n} from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Host,\n  Inject,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  QueryList,\n  Renderer2,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewChildren,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NzResizeObserver } from 'ng-zorro-antd/cdk/resize-observer';\nimport { slideMotion } from 'ng-zorro-antd/core/animation';\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport { CandyDate, cloneDate, CompatibleValue, wrongSortOrder } from 'ng-zorro-antd/core/time';\nimport { BooleanInput, FunctionProp, NzSafeAny, OnChangeType, OnTouchedType } from 'ng-zorro-antd/core/types';\nimport { InputBoolean, toBoolean, valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport {\n  DateHelperService,\n  NzDatePickerI18nInterface,\n  NzDatePickerLangI18nInterface,\n  NzI18nService\n} from 'ng-zorro-antd/i18n';\n\nimport { DatePickerService } from './date-picker.service';\nimport { DateRangePopupComponent } from './date-range-popup.component';\nimport {\n  CompatibleDate,\n  DisabledTimeFn,\n  NzDateMode,\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-year-picker,nz-range-picker',\n  exportAs: 'nzDatePicker',\n  template: `\n    <ng-container *ngIf=\"!nzInline; else inlineMode\">\n      <!-- Content of single picker -->\n      <div *ngIf=\"!isRange\" 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\"></ng-container>\n      </div>\n\n      <!-- Content of range picker -->\n      <ng-container *ngIf=\"isRange\">\n        <div class=\"{{ prefixCls }}-input\">\n          <ng-container *ngTemplateOutlet=\"tplRangeInput; context: { partType: 'left' }\"></ng-container>\n        </div>\n        <div #separatorElement class=\"{{ prefixCls }}-range-separator\">\n          <span class=\"{{ prefixCls }}-separator\">\n            <ng-container *ngIf=\"nzSeparator; else defaultSeparator\">{{ nzSeparator }}</ng-container>\n          </span>\n          <ng-template #defaultSeparator>\n            <i nz-icon nzType=\"swap-right\" nzTheme=\"outline\"></i>\n          </ng-template>\n        </div>\n        <div class=\"{{ prefixCls }}-input\">\n          <ng-container *ngTemplateOutlet=\"tplRangeInput; context: { partType: 'right' }\"></ng-container>\n        </div>\n        <ng-container *ngTemplateOutlet=\"tplRightRest\"></ng-container>\n      </ng-container>\n    </ng-container>\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\" [ngStyle]=\"activeBarStyle\"></div>\n      <span *ngIf=\"showClear()\" class=\"{{ prefixCls }}-clear\" (click)=\"onClickClear($event)\">\n        <i nz-icon nzType=\"close-circle\" nzTheme=\"fill\"></i>\n      </span>\n      <span class=\"{{ prefixCls }}-suffix\">\n        <ng-container *nzStringTemplateOutlet=\"nzSuffixIcon; let suffixIcon\">\n          <i nz-icon [nzType]=\"suffixIcon\"></i>\n        </ng-container>\n      </span>\n    </ng-template>\n\n    <ng-template #inlineMode>\n      <div\n        class=\"{{ prefixCls }}-dropdown {{ nzDropdownClassName }}\"\n        [class.ant-picker-dropdown-rtl]=\"dir === 'rtl'\"\n        [class.ant-picker-dropdown-placement-bottomLeft]=\"currentPositionY === 'bottom' && currentPositionX === 'start'\"\n        [class.ant-picker-dropdown-placement-topLeft]=\"currentPositionY === 'top' && currentPositionX === 'start'\"\n        [class.ant-picker-dropdown-placement-bottomRight]=\"currentPositionY === 'bottom' && currentPositionX === 'end'\"\n        [class.ant-picker-dropdown-placement-topRight]=\"currentPositionY === 'top' && currentPositionX === 'end'\"\n        [class.ant-picker-dropdown-range]=\"isRange\"\n        [class.ant-picker-active-left]=\"datePickerService.activeInput === 'left'\"\n        [class.ant-picker-active-right]=\"datePickerService.activeInput === 'right'\"\n        [ngStyle]=\"nzPopupStyle\"\n      >\n        <date-range-popup\n          [isRange]=\"isRange\"\n          [inline]=\"nzInline\"\n          [defaultPickerValue]=\"nzDefaultPickerValue\"\n          [showWeek]=\"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          (resultOk)=\"onResultOk()\"\n        ></date-range-popup>\n      </div>\n    </ng-template>\n\n    <!-- Overlay -->\n    <ng-template\n      cdkConnectedOverlay\n      nzConnectedOverlay\n      [cdkConnectedOverlayHasBackdrop]=\"nzBackdrop\"\n      [cdkConnectedOverlayOrigin]=\"origin\"\n      [cdkConnectedOverlayOpen]=\"realOpenState\"\n      [cdkConnectedOverlayPositions]=\"overlayPositions\"\n      [cdkConnectedOverlayTransformOriginOn]=\"'.ant-picker-wrapper'\"\n      (positionChange)=\"onPositionChange($event)\"\n      (detach)=\"close()\"\n      (overlayKeydown)=\"onOverlayKeydown($event)\"\n    >\n      <div\n        class=\"ant-picker-wrapper\"\n        [nzNoAnimation]=\"!!noAnimation?.nzNoAnimation\"\n        [@slideMotion]=\"'enter'\"\n        style=\"position: relative;\"\n      >\n        <ng-container *ngTemplateOutlet=\"inlineMode\"></ng-container>\n      </div>\n    </ng-template>\n  `,\n  host: {\n    '[class.ant-picker]': `true`,\n    '[class.ant-picker-range]': `isRange`,\n    '[class.ant-picker-large]': `nzSize === 'large'`,\n    '[class.ant-picker-small]': `nzSize === 'small'`,\n    '[class.ant-picker-disabled]': `nzDisabled`,\n    '[class.ant-picker-rtl]': `dir === 'rtl'`,\n    '[class.ant-picker-borderless]': `nzBorderless`,\n    '[class.ant-picker-inline]': `nzInline`,\n    '(click)': 'onClickInputBox($event)'\n  },\n  providers: [\n    DatePickerService,\n    {\n      provide: NG_VALUE_ACCESSOR,\n      multi: true,\n      useExisting: forwardRef(() => NzDatePickerComponent)\n    }\n  ],\n  animations: [slideMotion]\n})\nexport class NzDatePickerComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit, ControlValueAccessor {\n  readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n  static ngAcceptInputType_nzAllowClear: BooleanInput;\n  static ngAcceptInputType_nzAutoFocus: BooleanInput;\n  static ngAcceptInputType_nzDisabled: BooleanInput;\n  static ngAcceptInputType_nzBorderless: BooleanInput;\n  static ngAcceptInputType_nzInputReadOnly: BooleanInput;\n  static ngAcceptInputType_nzInline: BooleanInput;\n  static ngAcceptInputType_nzOpen: BooleanInput;\n  static ngAcceptInputType_nzShowToday: BooleanInput;\n  static ngAcceptInputType_nzShowNow: BooleanInput;\n  static ngAcceptInputType_nzMode: NzDateMode | NzDateMode[] | string | string[] | null | undefined;\n  static ngAcceptInputType_nzShowTime: BooleanInput | SupportTimeOptions | null | undefined;\n\n  isRange: boolean = false; // Indicate whether the value is a range value\n  extraFooter?: TemplateRef<NzSafeAny> | string;\n  dir: Direction = 'ltr';\n\n  public panelMode: NzDateMode | NzDateMode[] = 'date';\n  private destroyed$: Subject<void> = new Subject();\n  private isCustomPlaceHolder: boolean = false;\n  private isCustomFormat: boolean = false;\n  private showTime: SupportTimeOptions | boolean = false;\n\n  // --- Common API\n  @Input() @InputBoolean() nzAllowClear: boolean = true;\n  @Input() @InputBoolean() nzAutoFocus: boolean = false;\n  @Input() @InputBoolean() nzDisabled: boolean = false;\n  @Input() @InputBoolean() nzBorderless: boolean = false;\n  @Input() @InputBoolean() nzInputReadOnly: boolean = false;\n  @Input() @InputBoolean() nzInline: boolean = false;\n  @Input() @InputBoolean() 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  @Input() nzDropdownClassName?: string;\n  @Input() nzSize: NzDatePickerSizeType = 'default';\n  @Input() nzFormat!: string;\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() @InputBoolean() nzShowToday: boolean = true;\n  @Input() nzMode: NzDateMode = 'date';\n  @Input() @InputBoolean() nzShowNow: boolean = true;\n  @Input() nzRanges?: PresetRanges;\n  @Input() nzDefaultPickerValue: CompatibleDate | null = null;\n  @Input() @WithConfig() nzSeparator?: string = undefined;\n  @Input() @WithConfig() nzSuffixIcon: string | TemplateRef<NzSafeAny> = 'calendar';\n  @Input() @WithConfig() nzBackdrop = false;\n  @Input() nzId: string | null = null;\n\n  // TODO(@wenqi73) The PanelMode need named for each pickers and export\n  @Output() readonly nzOnPanelChange = new EventEmitter<NzDateMode | NzDateMode[] | string | string[]>();\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  origin: CdkOverlayOrigin;\n  document: Document;\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[] = [\n    {\n      offsetY: 2,\n      originX: 'start',\n      originY: 'bottom',\n      overlayX: 'start',\n      overlayY: 'top'\n    },\n    {\n      offsetY: -2,\n      originX: 'start',\n      originY: 'top',\n      overlayX: 'start',\n      overlayY: 'bottom'\n    },\n    {\n      offsetY: 2,\n      originX: 'end',\n      originY: 'bottom',\n      overlayX: 'end',\n      overlayY: 'top'\n    },\n    {\n      offsetY: -2,\n      originX: 'end',\n      originY: 'top',\n      overlayX: 'end',\n      overlayY: 'bottom'\n    }\n  ] as ConnectionPositionPair[];\n  currentPositionX: HorizontalConnectionPos = 'start';\n  currentPositionY: VerticalConnectionPos = 'bottom';\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  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(takeUntil(this.destroyed$))\n        .subscribe(() => {\n          this.updateInputWidthAndArrowLeft();\n        });\n    }\n\n    this.datePickerService.inputPartChange$.pipe(takeUntil(this.destroyed$)).subscribe(partType => {\n      if (partType) {\n        this.datePickerService.activeInput = partType;\n      }\n      this.focus();\n      this.updateInputWidthAndArrowLeft();\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    if (!this.elementRef.nativeElement.contains(event.relatedTarget)) {\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.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  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  // NOTE: A issue here, the first time position change, the animation will not be triggered.\n  // Because the overlay's \"positionChange\" event is emitted after the content's full shown up.\n  // All other components like \"nz-dropdown\" which depends on overlay also has the same issue.\n  // See: https://github.com/NG-ZORRO/ng-zorro-antd/issues/1429\n  onPositionChange(position: ConnectedOverlayPositionChange): void {\n    this.currentPositionX = position.connectionPair.originX;\n    this.currentPositionY = position.connectionPair.originY;\n    this.cdr.detectChanges(); // Take side-effects to position styles\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 forbidden 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  // ------------------------------------------------------------------------\n  // Input API End\n  // ------------------------------------------------------------------------\n\n  constructor(\n    public nzConfigService: NzConfigService,\n    public datePickerService: DatePickerService,\n    protected i18n: NzI18nService,\n    protected cdr: ChangeDetectorRef,\n    private renderer: Renderer2,\n    private elementRef: ElementRef,\n    private dateHelper: DateHelperService,\n    private nzResizeObserver: NzResizeObserver,\n    private platform: Platform,\n    @Inject(DOCUMENT) doc: NzSafeAny,\n    @Optional() private directionality: Directionality,\n    @Host() @Optional() public noAnimation?: NzNoAnimationDirective\n  ) {\n    this.document = doc;\n    this.origin = new CdkOverlayOrigin(this.elementRef);\n  }\n\n  ngOnInit(): void {\n    // Subscribe the every locale change if the nzLocale is not handled by user\n    if (!this.nzLocale) {\n      this.i18n.localeChange.pipe(takeUntil(this.destroyed$)).subscribe(() => this.setLocale());\n    }\n\n    // Default value\n    this.datePickerService.isRange = this.isRange;\n    this.datePickerService.initValue(true);\n    this.datePickerService.emitValue$.pipe(takeUntil(this.destroyed$)).subscribe(_ => {\n      const value = this.datePickerService.value;\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.directionality.change?.pipe(takeUntil(this.destroyed$)).subscribe((direction: Direction) => {\n      this.dir = direction;\n      this.cdr.detectChanges();\n    });\n    this.dir = this.directionality.value;\n    this.inputValue = this.isRange ? ['', ''] : '';\n    this.setModeAndFormat();\n\n    this.datePickerService.valueChange$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n      this.updateInputValue();\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.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 (changes.nzPlaceHolder?.currentValue) {\n      this.isCustomPlaceHolder = true;\n    }\n\n    if (changes.nzFormat?.currentValue) {\n      this.isCustomFormat = true;\n    }\n\n    if (changes.nzLocale) {\n      // The nzLocale is currently handled by user\n      this.setDefaultPlaceHolder();\n    }\n\n    if (changes.nzRenderExtraFooter) {\n      this.extraFooter = valueFunctionProp(this.nzRenderExtraFooter!);\n    }\n\n    if (changes.nzMode) {\n      this.setDefaultPlaceHolder();\n      this.setModeAndFormat();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.complete();\n  }\n\n  setModeAndFormat(): void {\n    const inputFormats: { [key in NzDateMode]?: string } = {\n      year: 'yyyy',\n      month: 'yyyy-MM',\n      week: this.i18n.getDateLocale() ? 'RRRR-II' : 'yyyy-ww', // Format for week\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 = isDisabled;\n    this.cdr.markForCheck();\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: { [key in NzDateMode]?: string } = {\n        year: this.getPropertyOfLocale('yearPlaceholder'),\n        month: this.getPropertyOfLocale('monthPlaceholder'),\n        week: this.getPropertyOfLocale('weekPlaceholder'),\n        date: this.getPropertyOfLocale('placeholder')\n      };\n\n      const defaultRangePlaceholder: { [key in NzDateMode]?: string[] } = {\n        year: this.getPropertyOfLocale('rangeYearPlaceholder'),\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: CompatibleValue = this.datePickerService.makeValue(value);\n    this.datePickerService.setValue(newValue);\n    this.datePickerService.initialValue = newValue;\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(panelMode: NzDateMode | NzDateMode[]): void {\n    this.nzOnPanelChange.emit(panelMode);\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","/**\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 { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\n\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzTimePickerModule } from 'ng-zorro-antd/time-picker';\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 { YearHeaderComponent } from './year-header.component';\nimport { YearTableComponent } from './year-table.component';\n\n@NgModule({\n  imports: [CommonModule, FormsModule, NzI18nModule, NzTimePickerModule, NzOutletModule],\n  exports: [\n    DateHeaderComponent,\n    DateTableComponent,\n    DecadeHeaderComponent,\n    DecadeTableComponent,\n    MonthHeaderComponent,\n    MonthTableComponent,\n    YearHeaderComponent,\n    YearTableComponent\n  ],\n  declarations: [\n    DateHeaderComponent,\n    DateTableComponent,\n    DecadeHeaderComponent,\n    DecadeTableComponent,\n    MonthHeaderComponent,\n    MonthTableComponent,\n    YearHeaderComponent,\n    YearTableComponent\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\nimport { Directive, Host, Optional } from '@angular/core';\n\nimport { NzDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'nz-month-picker',\n  exportAs: 'nzMonthPicker'\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class NzMonthPickerComponent {\n  constructor(@Optional() @Host() public datePicker: NzDatePickerComponent) {\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, Host, Optional } from '@angular/core';\n\nimport { NzDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'nz-range-picker',\n  exportAs: 'nzRangePicker'\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class NzRangePickerComponent {\n  constructor(@Optional() @Host() public datePicker: NzDatePickerComponent) {\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, Host, Optional } from '@angular/core';\n\nimport { NzDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'nz-week-picker',\n  exportAs: 'nzWeekPicker'\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class NzWeekPickerComponent {\n  constructor(@Optional() @Host() public datePicker: NzDatePickerComponent) {\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, Host, Optional } from '@angular/core';\n\nimport { NzDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'nz-year-picker',\n  exportAs: 'nzYearPicker'\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class NzYearPickerComponent {\n  constructor(@Optional() @Host() public datePicker: NzDatePickerComponent) {\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 { BidiModule } from '@angular/cdk/bidi';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzOverlayModule } from 'ng-zorro-antd/core/overlay';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzTimePickerModule } from 'ng-zorro-antd/time-picker';\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 { LibPackerModule } from './lib/lib-packer.module';\nimport { NzMonthPickerComponent } from './month-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    BidiModule,\n    CommonModule,\n    FormsModule,\n    OverlayModule,\n    LibPackerModule,\n    NzIconModule,\n    NzOverlayModule,\n    NzNoAnimationModule,\n    NzOutletModule,\n    NzTimePickerModule,\n    NzButtonModule,\n    LibPackerModule\n  ],\n  exports: [\n    NzDatePickerComponent,\n    NzRangePickerComponent,\n    NzMonthPickerComponent,\n    NzYearPickerComponent,\n    NzWeekPickerComponent\n  ],\n  declarations: [\n    NzDatePickerComponent,\n    NzMonthPickerComponent,\n    NzYearPickerComponent,\n    NzWeekPickerComponent,\n    NzRangePickerComponent,\n\n    CalendarFooterComponent,\n    InnerPopupComponent,\n    DateRangePopupComponent\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 { 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 { 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 './standard-types';\nexport * from './util';\n\nexport { NzDatePickerModule } from './date-picker.module';\nexport { NzDatePickerComponent, NzDatePickerSizeType } from './date-picker.component';\nexport { NzRangePickerComponent } from './range-picker.component';\nexport { NzMonthPickerComponent } from './month-picker.component';\nexport { NzWeekPickerComponent } from './week-picker.component';\nexport { NzYearPickerComponent } from './year-picker.component';\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 { CalendarFooterComponent as ɵCalendarFooterComponent } from './calendar-footer.component';\n\nexport * from './lib/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}