{"version":3,"file":"ng-met-antd-date-picker.mjs","sources":["../../../../packages/components/date-picker/src/standard-types.ts","../../../../packages/components/date-picker/src/util.ts","../../../../packages/components/date-picker/src/lib/util.ts","../../../../packages/components/date-picker/src/calendar-footer.component.ts","../../../../packages/components/date-picker/src/date-picker.service.ts","../../../../packages/components/date-picker/src/lib/abstract-panel-header.ts","../../../../packages/components/date-picker/src/lib/date-header.component.ts","../../../../packages/components/date-picker/src/lib/abstract-panel-header.html","../../../../packages/components/date-picker/src/lib/abstract-table.ts","../../../../packages/components/date-picker/src/lib/date-table.component.ts","../../../../packages/components/date-picker/src/lib/abstract-table.html","../../../../packages/components/date-picker/src/lib/decade-header.component.ts","../../../../packages/components/date-picker/src/lib/decade-table.component.ts","../../../../packages/components/date-picker/src/lib/month-header.component.ts","../../../../packages/components/date-picker/src/lib/month-table.component.ts","../../../../packages/components/date-picker/src/lib/year-header.component.ts","../../../../packages/components/date-picker/src/lib/year-table.component.ts","../../../../packages/components/date-picker/src/inner-popup.component.ts","../../../../packages/components/date-picker/src/date-range-popup.component.ts","../../../../packages/components/date-picker/src/date-picker.component.ts","../../../../packages/components/date-picker/src/lib/lib-packer.module.ts","../../../../packages/components/date-picker/src/month-picker.component.ts","../../../../packages/components/date-picker/src/range-picker.component.ts","../../../../packages/components/date-picker/src/week-picker.component.ts","../../../../packages/components/date-picker/src/year-picker.component.ts","../../../../packages/components/date-picker/src/date-picker.module.ts","../../../../packages/components/date-picker/src/lib/index.ts","../../../../packages/components/date-picker/src/index.ts","../../../../packages/components/date-picker/src/ng-met-antd-date-picker.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { TemplateRef } from '@angular/core';\n\nexport type DisabledDateFn = (d: Date) => boolean;\n\nexport type DisabledTimePartial = 'start' | 'end';\n\nexport type NzDateMode = 'decade' | 'year' | 'month' | 'week' | 'date' | 'time';\n\nexport type RangePartType = 'left' | 'right';\n\nexport type CompatibleDate = Date | Date[];\n\nexport type DisabledTimeFn = (\n  current: Date | Date[],\n  partial?: DisabledTimePartial\n) => DisabledTimeConfig | undefined;\n\nexport interface DisabledTimeConfig {\n  nzDisabledHours(): number[];\n  nzDisabledMinutes(hour: number): number[];\n  nzDisabledSeconds(hour: number, minute: number): number[];\n}\n\nexport interface SupportTimeOptions {\n  nzFormat?: string;\n  nzHourStep?: number;\n  nzMinuteStep?: number;\n  nzSecondStep?: number;\n  nzDisabledHours?(): number[];\n  nzDisabledMinutes?(hour: number): number[];\n  nzDisabledSeconds?(hour: number, minute: number): number[];\n  nzHideDisabledOptions?: boolean;\n  nzDefaultOpenValue?: Date;\n  nzAddOn?: TemplateRef<void>;\n  nzUse12Hours?: boolean;\n}\n\nexport interface PresetRanges {\n  [key: string]: Date[] | (() => Date[]);\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { CandyDate } from 'ng-met-antd/core';\n\nimport {\n  DisabledDateFn,\n  DisabledTimeConfig,\n  DisabledTimeFn,\n} 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(\n  value: CandyDate,\n  disabledTime?: DisabledTimeFn\n): DisabledTimeConfig {\n  let disabledTimeConfig = disabledTime\n    ? disabledTime(value && value.nativeDate)\n    : ({} as DisabledTimeConfig);\n  disabledTimeConfig = {\n    ...defaultDisabledTime,\n    ...disabledTimeConfig,\n  };\n  return disabledTimeConfig;\n}\n\nexport function isTimeValidByConfig(\n  value: CandyDate,\n  disabledTimeConfig: DisabledTimeConfig\n): 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(\n          hour,\n          minutes\n        );\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(\n  value: CandyDate,\n  disabledTime: DisabledTimeFn\n): boolean {\n  const disabledTimeConfig = getTimeConfig(value, disabledTime);\n  return isTimeValidByConfig(value, disabledTimeConfig);\n}\n\nexport function isAllowedDate(\n  value: CandyDate,\n  disabledDate?: DisabledDateFn,\n  disabledTime?: DisabledTimeFn\n): 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  Inject,\n  Input,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport { CandyDate, CandyDateFac } from 'ng-met-antd/core';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { isNonEmptyString, isTemplateRef } from 'ng-zorro-antd/core/util';\nimport { DateHelperService, NzCalendarI18nInterface } from 'ng-met-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 {{\n          isTodayDisabled ? prefixCls + '-today-btn-disabled' : ''\n        }}\"\n        role=\"button\"\n        (click)=\"isTodayDisabled ? null : onClickToday()\"\n        title=\"{{ todayTitle }}\"\n      >\n        {{ locale.today }}\n      </a>\n      <ul\n        *ngIf=\"hasTimePicker || rangeQuickSelector\"\n        class=\"{{ prefixCls }}-ranges\"\n      >\n        <ng-container *ngTemplateOutlet=\"rangeQuickSelector\"></ng-container>\n        <li *ngIf=\"showNow\" class=\"{{ prefixCls }}-now\">\n          <a\n            class=\"{{ prefixCls }}-now-btn\"\n            (click)=\"isTodayDisabled ? null : onClickToday()\"\n          >\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(\n    private dateHelper: DateHelperService,\n    @Inject(CandyDate) private candyDate: CandyDateFac\n  ) {}\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 = this.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 { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { ReplaySubject, Subject } from 'rxjs';\n\nimport { CompatibleDate, NzDateMode, RangePartType } from './standard-types';\n\nimport {\n  CandyDate,\n  CandyDateFac,\n  cloneDate,\n  CompatibleValue,\n  NormalizedMode,\n  normalizeRangeValue,\n  NzDateAdapter,\n} from 'ng-met-antd/core';\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  constructor(\n    private dateAdapter: NzDateAdapter,\n    @Inject(CandyDate) private candyDate: CandyDateFac\n  ) {}\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) => this.candyDate(val)) : [];\n    } else {\n      return value ? this.candyDate(value as Date) : null;\n    }\n  }\n\n  setActiveDate(\n    value: CompatibleValue,\n    hasTimePicker: boolean = false,\n    mode: NormalizedMode = 'month'\n  ): 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(\n        this.dateAdapter,\n        value as CandyDate[],\n        hasTimePicker,\n        parentPanels[mode],\n        this.activeInput\n      );\n    } else {\n      this.activeDate = cloneDate(value);\n    }\n  }\n\n  setValue(value: CompatibleValue): void {\n    this.value = value;\n    this.valueChange$.next(this.value);\n  }\n\n  getActiveIndex(part: RangePartType = this.activeInput): number {\n    return { left: 0, right: 1 }[part];\n  }\n\n  ngOnDestroy(): void {\n    this.valueChange$.complete();\n    this.emitValue$.complete();\n    this.inputPartChange$.complete();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  Directive,\n  EventEmitter,\n  Inject,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChanges,\n} from '@angular/core';\n\nimport { CandyDate, CandyDateFac } from 'ng-met-antd/core';\nimport { NzCalendarI18nInterface } from 'ng-met-antd/i18n';\n\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  constructor(@Inject(CandyDate) protected candyDate: CandyDateFac) {}\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 = this.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 {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport { CandyDate, CandyDateFac } from 'ng-met-antd/core';\nimport { DateHelperService } from 'ng-met-antd/i18n';\n\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(\n    private dateHelper: DateHelperService,\n    @Inject(CandyDate) candyDate: CandyDateFac\n  ) {\n    super(candyDate);\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(\n          this.value.nativeDate,\n          transCompatFormat(this.locale.yearFormat)\n        ),\n      },\n      {\n        className: `${this.prefixCls}-month-btn`,\n        title: this.locale.monthSelect,\n        onClick: () => this.changeMode('month'),\n        label: this.dateHelper.format(\n          this.value.nativeDate,\n          this.locale.monthFormat || 'MMM'\n        ),\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 {\n  Directive,\n  EventEmitter,\n  Inject,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  SimpleChanges,\n  TemplateRef,\n} from '@angular/core';\n\nimport { CandyDate, CandyDateFac } from 'ng-met-antd/core';\nimport { FunctionProp, NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { isNonEmptyString, isTemplateRef } from 'ng-zorro-antd/core/util';\nimport {\n  NZ_DATE_FORMATS,\n  NzCalendarI18nInterface,\n  NzDateDisplayFormats,\n} from 'ng-met-antd/i18n';\n\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 = this.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?:\n    | string\n    | TemplateRef<Date>\n    | FunctionProp<TemplateRef<Date> | string>;\n  @Input() fullCellRender?:\n    | string\n    | TemplateRef<Date>\n    | 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  constructor(\n    @Inject(CandyDate) protected candyDate: CandyDateFac,\n    @Inject(NZ_DATE_FORMATS) protected dateFormats: NzDateDisplayFormats\n  ) {}\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 = this.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\n              ? previousCandyDate.isSameDay(value)\n              : previousCandyDate !== value;\n          })\n        );\n      } else {\n        return !this.isSameDate(previousValue as CandyDate, currentValue);\n      }\n    }\n    return false;\n  }\n\n  private isSameDate(left: CandyDate, right: CandyDate): boolean {\n    return (!left && !right) || (left && right && right.isSameDay(left));\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n  Input,\n  OnChanges,\n  OnInit,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport { CandyDate, CandyDateFac } from 'ng-met-antd/core';\nimport { valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport {\n  DateHelperService,\n  NZ_DATE_FORMATS,\n  NzCalendarI18nInterface,\n  NzDateDisplayFormats,\n  NzI18nService,\n} from 'ng-met-antd/i18n';\n\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell } from './interface';\nimport { transCompatFormat } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'date-table',\n  exportAs: 'dateTable',\n  templateUrl: './abstract-table.html',\n})\nexport class DateTableComponent\n  extends AbstractTable\n  implements OnChanges, OnInit\n{\n  @Input() override locale!: NzCalendarI18nInterface;\n\n  constructor(\n    private i18n: NzI18nService,\n    private dateHelper: DateHelperService,\n    @Inject(CandyDate) candyDate: CandyDateFac,\n    @Inject(NZ_DATE_FORMATS) dateFormats: NzDateDisplayFormats\n  ) {\n    super(candyDate, dateFormats);\n  }\n\n  private changeValueFromInside(value: CandyDate): void {\n    // Only change date not change time\n    this.activeDate = this.activeDate\n      .setYear(value.getYear())\n      .setMonth(value.getMonth())\n      .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({\n      weekStartsOn: this.dateHelper.getFirstDayOfWeek(),\n    });\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,\n        title: this.dateHelper.format(\n          day.nativeDate,\n          this.dateFormats.weekLabel!\n        ), // eg. Tue\n        content: this.dateHelper.format(\n          day.nativeDate,\n          this.getVeryShortWeekFormat()\n        ), // 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    // console.log('this.dateFormats', this.dateFormats);\n    return this.i18n.getLocaleId().toLowerCase().indexOf('zh') === 0\n      ? 'EEEEE'\n      : this.dateFormats.veryShortWeekLabel!; // Use extreme short for chinese\n  }\n\n  makeBodyRows(): DateBodyRow[] {\n    const weekRows: DateBodyRow[] = [];\n    const firstDayOfMonth = this.activeDate.calendarStart({\n      weekStartsOn: this.dateHelper.getFirstDayOfWeek(),\n    });\n\n    for (let week = 0; week < this.MAX_ROW; week++) {\n      const weekStart = firstDayOfMonth.addDays(week * 7);\n      const row: DateBodyRow = {\n        isActive: false,\n        dateCells: [],\n        trackByIndex: week,\n      };\n\n      for (let day = 0; day < 7; day++) {\n        const date = weekStart.addDays(day);\n        const dateFormat = transCompatFormat(\n          this.i18n.getLocaleData('DatePicker.lang.dateFormat', 'YYYY-MM-DD')\n        );\n        const title = this.dateHelper.format(date.nativeDate, dateFormat);\n        const label = this.dateHelper.format(\n          date.nativeDate,\n          this.dateFormats.dayLabel!\n        );\n        const cell: DateCell = {\n          trackByIndex: day,\n          value: date,\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 =\n          startHover.isBeforeDay(date) && date.isBeforeDay(endHover);\n      }\n      cell.isStartSingle = startSelected && !endSelected;\n      cell.isEndSingle = !startSelected && endSelected;\n      cell.isInSelectedRange =\n        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 = cell.value.clone();\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","<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\n        *ngFor=\"let cell of headRow\"\n        role=\"columnheader\"\n        title=\"{{ cell.title }}\"\n      >\n        {{ cell.content }}\n      </th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr\n      *ngFor=\"let row of bodyRows; trackBy: trackByBodyRow\"\n      [ngClass]=\"row.classMap!\"\n      role=\"row\"\n    >\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 {\n  ChangeDetectionStrategy,\n  Component,\n  ViewEncapsulation,\n} 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","/**\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  OnChanges,\n  ViewEncapsulation,\n} 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),\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`]:\n        !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","/**\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  Inject,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport { CandyDate, CandyDateFac } from 'ng-met-antd/core';\nimport { DateHelperService } from 'ng-met-antd/i18n';\n\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(\n    private dateHelper: DateHelperService,\n    @Inject(CandyDate) candyDate: CandyDateFac\n  ) {\n    super(candyDate);\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(\n          this.value.nativeDate,\n          transCompatFormat(this.locale.yearFormat)\n        ),\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 {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n  OnChanges,\n  OnInit,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport { CandyDate, CandyDateFac } from 'ng-met-antd/core';\nimport { valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport {\n  DateHelperService,\n  NZ_DATE_FORMATS,\n  NzDateDisplayFormats,\n} from 'ng-met-antd/i18n';\n\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell } from './interface';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'month-table',\n  exportAs: 'monthTable',\n  templateUrl: 'abstract-table.html',\n})\nexport class MonthTableComponent\n  extends AbstractTable\n  implements OnChanges, OnInit\n{\n  override MAX_ROW = 4;\n  override MAX_COL = 3;\n\n  constructor(\n    private dateHelper: DateHelperService,\n    @Inject(CandyDate) candyDate: CandyDateFac,\n    @Inject(NZ_DATE_FORMATS) dateFormats: NzDateDisplayFormats\n  ) {\n    super(candyDate, dateFormats);\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(\n          month.nativeDate,\n          this.dateFormats.monthLabel!\n        );\n        const cell: DateCell = {\n          trackByIndex: colIndex,\n          value: month,\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 (\n      let date = firstOfMonth;\n      date.getMonth() === month.getMonth();\n      date = date.addDays(1)\n    ) {\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 =\n          startHover.isBeforeMonth(month) && month.isBeforeMonth(endHover);\n      }\n      cell.isStartSingle = startSelected && !endSelected;\n      cell.isEndSingle = !startSelected && endSelected;\n      cell.isInSelectedRange =\n        startSelected?.isBeforeMonth(month) &&\n        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 {\n  ChangeDetectionStrategy,\n  Component,\n  ViewEncapsulation,\n} 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 {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport { CandyDate, CandyDateFac } from 'ng-met-antd/core';\nimport { valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport {\n  DateHelperService,\n  NZ_DATE_FORMATS,\n  NzDateDisplayFormats,\n} from 'ng-met-antd/i18n';\n\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell, YearCell } from './interface';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'year-table',\n  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(\n    private dateHelper: DateHelperService,\n    @Inject(CandyDate) candyDate: CandyDateFac,\n    @Inject(NZ_DATE_FORMATS) dateFormats: NzDateDisplayFormats\n  ) {\n    super(candyDate, dateFormats);\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(\n          year.nativeDate,\n          this.dateFormats.yearLabel!\n        );\n        const isDisabled = this.isDisabledYear(year);\n        const cell: YearCell = {\n          trackByIndex: colIndex,\n          value: year,\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.getYear()), // 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 (\n      let date = firstOfMonth;\n      date.getYear() === year.getYear();\n      date = date.addDays(1)\n    ) {\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 =\n          startHover.isBeforeYear(year) && year.isBeforeYear(endHover);\n      }\n      cell.isStartSingle = startSelected && !endSelected;\n      cell.isEndSingle = !startSelected && endSelected;\n      cell.isInSelectedRange =\n        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 {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Inject,\n  Input,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport { CandyDate, CandyDateFac } from 'ng-met-antd/core';\nimport { FunctionProp } from 'ng-zorro-antd/core/types';\nimport { NzCalendarI18nInterface } from 'ng-met-antd/i18n';\n\nimport {\n  DisabledDateFn,\n  NzDateMode,\n  RangePartType,\n  SupportTimeOptions,\n} 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]=\"\n                showWeek\n                  ? enablePrevNext('prev', 'week')\n                  : enablePrevNext('prev', 'date')\n              \"\n              [showSuperNextBtn]=\"\n                showWeek\n                  ? enablePrevNext('next', 'week')\n                  : enablePrevNext('next', 'date')\n              \"\n              [showPreBtn]=\"\n                showWeek\n                  ? enablePrevNext('prev', 'week')\n                  : enablePrevNext('prev', 'date')\n              \"\n              [showNextBtn]=\"\n                showWeek\n                  ? enablePrevNext('next', 'week')\n                  : enablePrevNext('next', 'date')\n              \"\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?:\n    | string\n    | TemplateRef<Date>\n    | 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  constructor(@Inject(CandyDate) private candyDate: CandyDateFac) {}\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') ||\n        (this.partType === 'right' && direction === 'prev'))\n    );\n  }\n\n  onSelectTime(date: Date): void {\n    this.selectTime.emit(this.candyDate(date));\n  }\n\n  // The value real changed to outside\n  onSelectDate(date: CandyDate): void {\n    const value = 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(\n        timeValue.getHours(),\n        timeValue.getMinutes(),\n        timeValue.getSeconds()\n      );\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 = this.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  Inject,\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  CandyDateFac,\n  cloneDate,\n  CompatibleValue,\n  NormalizedMode,\n  SingleValue,\n  wrongSortOrder,\n} from 'ng-met-antd/core';\nimport { FunctionProp } from 'ng-zorro-antd/core/types';\nimport { NzCalendarI18nInterface } from 'ng-met-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\n        class=\"{{ prefixCls }}-range-wrapper {{ prefixCls }}-date-range-wrapper\"\n      >\n        <div\n          class=\"{{ prefixCls }}-range-arrow\"\n          [style.left.px]=\"datePickerService.arrowLeft\"\n        ></div>\n        <div class=\"{{ prefixCls }}-panel-container\">\n          <div class=\"{{ prefixCls }}-panels\">\n            <ng-container *ngIf=\"hasTimePicker; else noTimePicker\">\n              <ng-container\n                *ngTemplateOutlet=\"\n                  tplInnerPopup;\n                  context: { partType: datePickerService.activeInput }\n                \"\n              ></ng-container>\n            </ng-container>\n            <ng-template #noTimePicker>\n              <ng-container\n                *ngTemplateOutlet=\"tplInnerPopup; context: { partType: 'left' }\"\n              ></ng-container>\n              <ng-container\n                *ngTemplateOutlet=\"\n                  tplInnerPopup;\n                  context: { partType: 'right' }\n                \"\n              ></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 {{\n          showWeek ? prefixCls + '-week-number' : ''\n        }} {{ hasTimePicker ? prefixCls + '-time' : '' }} {{\n          isRange ? prefixCls + '-range' : ''\n        }}\"\n      >\n        <div\n          class=\"{{ prefixCls }}-panel\"\n          [class.ant-picker-panel-rtl]=\"dir === 'rtl'\"\n          tabindex=\"-1\"\n        >\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\n        class=\"{{ prefixCls }}-panel\"\n        [class.ant-picker-panel-rtl]=\"dir === 'rtl'\"\n      >\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?:\n    | string\n    | TemplateRef<Date>\n    | 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<\n    NzDateMode | NzDateMode[]\n  >();\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 (\n      this.showToday ||\n      this.hasTimePicker ||\n      !!this.extraFooter ||\n      !!this.ranges\n    );\n  }\n\n  constructor(\n    public datePickerService: DatePickerService,\n    public cdr: ChangeDetectorRef,\n    private ngZone: NgZone,\n    private host: ElementRef<HTMLElement>,\n    @Inject(CandyDate) private candyDate: CandyDateFac\n  ) {}\n\n  ngOnInit(): void {\n    merge(\n      this.datePickerService.valueChange$,\n      this.datePickerService.inputPartChange$\n    )\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(void 0);\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 }[\n      this.datePickerService.activeInput\n    ];\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 }[\n      this.datePickerService.activeInput\n    ];\n    const base = (this.datePickerService.value as CandyDate[])[\n      otherInputIndex\n    ]!;\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(\n        value,\n        this.datePickerService.value as CandyDate\n      );\n      this.datePickerService.setValue(newValue); // If not select a date currently, use today\n    }\n    this.datePickerService.inputPartChange$.next(void 0 as any);\n    this.buildTimeOptions();\n  }\n\n  changeValueFromSelect(value: CandyDate, emitValue: boolean = true): void {\n    if (this.isRange) {\n      const selectedValue: SingleValue[] = cloneDate(\n        this.datePickerService.value\n      ) 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)] =\n        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)] =\n              null;\n            this.checkedPartArr[\n              this.datePickerService.getActiveIndex(nextPart)\n            ] = false;\n          }\n          this.datePickerService.setValue(selectedValue);\n          this.calendarChange.emit(selectedValue);\n          if (\n            this.isBothAllowed(selectedValue) &&\n            this.checkedPartArr[0] &&\n            this.checkedPartArr[1]\n          ) {\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)] =\n              null;\n            this.checkedPartArr[\n              this.datePickerService.getActiveIndex(nextPart)\n            ] = 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 (\n            this.isBothAllowed(selectedValue) &&\n            this.checkedPartArr[0] &&\n            this.checkedPartArr[1]\n          ) {\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(void 0 as any);\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(\n    panelMode: NzDateMode | NzDateMode[],\n    partType?: RangePartType\n  ): NzDateMode {\n    if (this.isRange) {\n      return panelMode[\n        this.datePickerService.getActiveIndex(partType)\n      ] 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[]) || [])[\n        this.datePickerService.getActiveIndex(partType)\n      ];\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[])[\n        this.datePickerService.getActiveIndex(partType)\n      ];\n    } else {\n      return this.datePickerService.activeDate as CandyDate;\n    }\n  }\n\n  disabledStartTime: DisabledTimeFn = (value: Date | Date[]) =>\n    this.disabledTime && this.disabledTime(value, 'start');\n\n  disabledEndTime: DisabledTimeFn = (value: Date | Date[]) =>\n    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(\n      selectedValue[index]!,\n      this.disabledDate,\n      disabledTimeArr[index]\n    );\n  }\n\n  isBothAllowed(selectedValue: SingleValue[]): boolean {\n    return (\n      isAllowedDate(\n        selectedValue[0]!,\n        this.disabledDate,\n        this.disabledStartTime\n      ) &&\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\n        ? this.isBothAllowed(value as CandyDate[])\n        : this.isOneAllowed(value as CandyDate[]);\n    } else {\n      return isAllowedDate(\n        value as CandyDate,\n        this.disabledDate,\n        this.disabledTime\n      );\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([\n        this.candyDate(value[0]),\n        this.candyDate(value[1]),\n      ]);\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 = [this.candyDate(val[0]), this.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 =\n      this.showTime &&\n      this.isRange &&\n      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(\n          showTime,\n          this.datePickerService.value as CandyDate\n        );\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 =\n        partial === 'start' ? this.disabledStartTime : this.disabledEndTime;\n    } else {\n      disabledTimeFn = this.disabledTime;\n    }\n    return { ...origin, ...getTimeConfig(value, disabledTimeFn) };\n  }\n\n  private overrideHms(\n    newValue: CandyDate | null,\n    oldValue: CandyDate | null\n  ): CandyDate {\n    newValue = newValue || this.candyDate();\n    oldValue = oldValue || this.candyDate();\n    return oldValue.setHms(\n      newValue.getHours(),\n      newValue.getMinutes(),\n      newValue.getSeconds()\n    );\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { 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 {\n  NzConfigKey,\n  NzConfigService,\n  WithConfig,\n} from 'ng-zorro-antd/core/config';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport {\n  CandyDate,\n  CandyDateFac,\n  cloneDate,\n  CompatibleValue,\n  wrongSortOrder,\n} from 'ng-met-antd/core';\nimport {\n  BooleanInput,\n  FunctionProp,\n  NgClassInterface,\n  NzSafeAny,\n  NzStatus,\n  OnChangeType,\n  OnTouchedType,\n} from 'ng-zorro-antd/core/types';\nimport {\n  getStatusClassNames,\n  InputBoolean,\n  toBoolean,\n  valueFunctionProp,\n} from 'ng-zorro-antd/core/util';\nimport {\n  DateHelperService,\n  NZ_DATE_FORMATS,\n  NzDateDisplayFormats,\n  NzDatePickerI18nInterface,\n  NzDatePickerLangI18nInterface,\n  NzI18nService,\n} from 'ng-met-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:\n    '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\n            *ngTemplateOutlet=\"tplRangeInput; context: { partType: 'left' }\"\n          ></ng-container>\n        </div>\n        <div #separatorElement class=\"{{ prefixCls }}-range-separator\">\n          <span class=\"{{ prefixCls }}-separator\">\n            <ng-container *ngIf=\"nzSeparator; else defaultSeparator\">{{\n              nzSeparator\n            }}</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\n            *ngTemplateOutlet=\"tplRangeInput; context: { partType: 'right' }\"\n          ></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\n        *ngIf=\"showClear()\"\n        class=\"{{ prefixCls }}-clear\"\n        (click)=\"onClickClear($event)\"\n      >\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]=\"\n          currentPositionY === 'bottom' && currentPositionX === 'start'\n        \"\n        [class.ant-picker-dropdown-placement-topLeft]=\"\n          currentPositionY === 'top' && currentPositionX === 'start'\n        \"\n        [class.ant-picker-dropdown-placement-bottomRight]=\"\n          currentPositionY === 'bottom' && currentPositionX === 'end'\n        \"\n        [class.ant-picker-dropdown-placement-topRight]=\"\n          currentPositionY === 'top' && currentPositionX === 'end'\n        \"\n        [class.ant-picker-dropdown-range]=\"isRange\"\n        [class.ant-picker-active-left]=\"\n          datePickerService.activeInput === 'left'\n        \"\n        [class.ant-picker-active-right]=\"\n          datePickerService.activeInput === 'right'\n        \"\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]=\"\n            nzMode === 'date' && nzShowToday && !isRange && !nzShowTime\n          \"\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\n  implements OnInit, OnChanges, OnDestroy, AfterViewInit, ControlValueAccessor\n{\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:\n    | NzDateMode\n    | NzDateMode[]\n    | string\n    | string[]\n    | null\n    | undefined;\n  static ngAcceptInputType_nzShowTime:\n    | BooleanInput\n    | SupportTimeOptions\n    | null\n    | 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  // status\n  statusCls: NgClassInterface = {};\n  hasFeedback: boolean = false;\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() nzStatus?: NzStatus;\n  @Input() nzFormat!: string;\n  @Input() nzDateRender?:\n    | TemplateRef<NzSafeAny>\n    | string\n    | FunctionProp<TemplateRef<Date> | string>;\n  @Input() nzDisabledTime?: DisabledTimeFn;\n  @Input() nzRenderExtraFooter?:\n    | TemplateRef<NzSafeAny>\n    | string\n    | 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> =\n    '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<\n    NzDateMode | NzDateMode[] | string | string[]\n  >();\n  @Output() readonly nzOnCalendarChange = new EventEmitter<\n    Array<Date | null>\n  >();\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 })\n  cdkConnectedOverlay?: CdkConnectedOverlay;\n  @ViewChild(DateRangePopupComponent, { static: false })\n  panel!: DateRangePopupComponent;\n  @ViewChild('separatorElement', { static: false })\n  separatorElement?: ElementRef;\n  @ViewChild('pickerInput', { static: false })\n  pickerInput?: ElementRef<HTMLInputElement>;\n  @ViewChildren('rangePickerInput') rangePickerInputs?: QueryList<\n    ElementRef<HTMLInputElement>\n  >;\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$\n      .pipe(takeUntil(this.destroyed$))\n      .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 =\n      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 ||\n          0;\n\n    if (this.dir === 'rtl') {\n      this.activeBarStyle = {\n        ...baseStyle,\n        right: `${this.datePickerService.arrowLeft}px`,\n      };\n    } else {\n      this.activeBarStyle = {\n        ...baseStyle,\n        left: `${this.datePickerService.arrowLeft}px`,\n      };\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(\n      this.datePickerService.activeInput\n    );\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 (\n      !this.nzDisabled &&\n      !this.isEmptyValue(this.datePickerService.value) &&\n      this.nzAllowClear\n    );\n  }\n\n  checkAndClose(): void {\n    if (!this.realOpenState) {\n      return;\n    }\n\n    if (this.panel.isAllowed(this.datePickerService.value!, true)) {\n      if (\n        Array.isArray(this.datePickerService.value) &&\n        wrongSortOrder(this.datePickerService.value)\n      ) {\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\n        ? (newValue as CandyDate[]).map((v) => this.formatValue(v))\n        : ['', ''];\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(\n      value && (value as CandyDate).nativeDate,\n      this.nzFormat\n    );\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 ===\n        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 = this.candyDate(\n      this.dateHelper.parseDate(value, this.nzFormat)\n    );\n\n    if (\n      !date.isValid() ||\n      value !== this.dateHelper.format(date.nativeDate, this.nzFormat)\n    ) {\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    @Inject(CandyDate) private candyDate: CandyDateFac,\n    @Inject(NZ_DATE_FORMATS) private dateFormats: NzDateDisplayFormats,\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\n        .pipe(takeUntil(this.destroyed$))\n        .subscribe(() => this.setLocale());\n    }\n\n    // Default value\n    this.datePickerService.isRange = this.isRange;\n    this.datePickerService.initValue(true);\n    this.datePickerService.emitValue$\n      .pipe(takeUntil(this.destroyed$))\n      .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([\n              vAsRange[0]?.nativeDate ?? null,\n              vAsRange[1]?.nativeDate ?? null,\n            ]);\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\n      ?.pipe(takeUntil(this.destroyed$))\n      .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$\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe(() => {\n        this.updateInputValue();\n      });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { nzStatus } = changes;\n    if (changes['nzPopupStyle']) {\n      // Always assign the popup style patch\n      this.nzPopupStyle = this.nzPopupStyle\n        ? { ...this.nzPopupStyle, ...POPUP_STYLE_PATCH }\n        : 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    if (nzStatus) {\n      this.setStatusStyles();\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: this.dateFormats.yearLabel,\n      month: this.dateFormats.monthYearLabel,\n      week: this.i18n.getDateLocale()\n        ? 'RRRR-II'\n        : this.dateFormats.weekYearLabel, // Format for week\n      date: this.nzShowTime\n        ? this.dateFormats.dateTimeInput\n        : this.dateFormats.dateInput,\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 (\n      this.nzLocale.lang[type] ||\n      this.i18n.getLocaleData(`DatePicker.lang.${type}`)\n    );\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(\n        this.elementRef.nativeElement,\n        'ant-picker-focused'\n      );\n    } else {\n      this.renderer.removeClass(\n        this.elementRef.nativeElement,\n        'ant-picker-focused'\n      );\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\n        .filter((x) => x instanceof CandyDate)\n        .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([\n          value[0]?.nativeDate || null,\n          value[1]?.nativeDate || null,\n        ]);\n      } else {\n        this.nzOnOk.emit([]);\n      }\n    } else {\n      if (this.datePickerService.value) {\n        this.nzOnOk.emit(\n          (this.datePickerService.value as CandyDate).nativeDate\n        );\n      } else {\n        this.nzOnOk.emit(null);\n      }\n    }\n  }\n\n  // status\n  private setStatusStyles(): void {\n    // render status if nzStatus is set\n    this.statusCls = getStatusClassNames(\n      this.prefixCls,\n      this.nzStatus,\n      this.hasFeedback\n    );\n    Object.keys(this.statusCls).forEach((status) => {\n      if (this.statusCls[status]) {\n        this.renderer.addClass(this.elementRef.nativeElement, status);\n      } else {\n        this.renderer.removeClass(this.elementRef.nativeElement, status);\n      }\n    });\n  }\n}\n","/**\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-met-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: [\n    CommonModule,\n    FormsModule,\n    NzI18nModule,\n    NzTimePickerModule,\n    NzOutletModule,\n  ],\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 {\n  NzDatePickerComponent,\n  NzDatePickerSizeType,\n} 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';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3.DateHeaderComponent","i4.DateTableComponent","i5.DecadeHeaderComponent","i6.DecadeTableComponent","i7.MonthHeaderComponent","i8.MonthTableComponent","i9.YearHeaderComponent","i10.YearTableComponent","i3.CalendarFooterComponent","i4.InnerPopupComponent","i2.DatePickerService","i3","i4","i5","i8","i11","i14","i15.DateRangePopupComponent","i1.NzDatePickerComponent"],"mappings":"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"}