ng-zorro-antd-date-picker.mjs.map 216 KB

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