{"version":3,"file":"ui-vts-kit-ng-vts-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/date-header.component.ts","../../components/date-picker/lib/abstract-panel-header.html","../../components/date-picker/lib/abstract-table.ts","../../components/date-picker/lib/lunar-date.pipe.ts","../../components/date-picker/lib/date-table.component.ts","../../components/date-picker/lib/abstract-table.html","../../components/date-picker/lib/decade-header.component.ts","../../components/date-picker/lib/decade-table.component.ts","../../components/date-picker/lib/month-header.component.ts","../../components/date-picker/lib/month-table.component.ts","../../components/date-picker/lib/quarter-table.component.ts","../../components/date-picker/lib/quarter-header.component.ts","../../components/date-picker/lib/year-header.component.ts","../../components/date-picker/lib/year-table.component.ts","../../components/date-picker/inner-popup.component.ts","../../components/date-picker/date-range-popup.component.ts","../../components/date-picker/picker.component.ts","../../components/date-picker/date-picker.component.ts","../../components/date-picker/lib/lib-packer.module.ts","../../components/date-picker/month-picker.component.ts","../../components/date-picker/range-picker-multiple.component.ts","../../components/date-picker/range-picker-single.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/quarter-picker.component.ts","../../components/date-picker/lib/public-api.ts","../../components/date-picker/public-api.ts","../../components/date-picker/ui-vts-kit-ng-vts-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 VtsDateMode = 'decade' | 'year' | 'month' | 'week' | 'date' | 'time' | 'quarter';\n\nexport type RangePartType = 'left' | 'right';\n\nexport type CompatibleDate = Date | Date[];\n\nexport type DisabledTimeFn = (\n  current: Date | Date[],\n  partial?: DisabledTimePartial\n) => DisabledTimeConfig | undefined;\n\nexport interface DisabledTimeConfig {\n  vtsDisabledHours(): number[];\n  vtsDisabledMinutes(hour: number): number[];\n  vtsDisabledSeconds(hour: number, minute: number): number[];\n}\n\nexport interface SupportTimeOptions {\n  vtsFormat?: string;\n  vtsHourStep?: number;\n  vtsMinuteStep?: number;\n  vtsSecondStep?: number;\n  vtsDisabledHours?(): number[];\n  vtsDisabledMinutes?(hour: number): number[];\n  vtsDisabledSeconds?(hour: number, minute: number): number[];\n  vtsHideDisabledOptions?: boolean;\n  vtsDefaultOpenValue?: Date;\n  vtsAddOn?: TemplateRef<void>;\n  vtsUse12Hours?: boolean;\n  vtsCustomShowTimeFormat?: CustomShowTime;\n}\n\nexport interface CustomShowTime {\n  /**\n   * Whether to show label on top of time-picker\n   */\n  showLabel: boolean; \n  /**\n   * custom format to show on top of time-picker\n   */\n  format: string | null;\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 '@ui-vts-kit/ng-vts/core/time';\nimport { DisabledDateFn, DisabledTimeConfig, DisabledTimeFn } from './standard-types';\nimport { isValid } from \"date-fns\";\n\nexport const PREFIX_CLASS = 'vts-picker';\n\nconst defaultDisabledTime: DisabledTimeConfig = {\n  vtsDisabledHours(): number[] {\n    return [];\n  },\n  vtsDisabledMinutes(): number[] {\n    return [];\n  },\n  vtsDisabledSeconds(): number[] {\n    return [];\n  }\n};\n\nexport function getTimeConfig(value: CandyDate, disabledTime?: DisabledTimeFn): DisabledTimeConfig {\n  let disabledTimeConfig = disabledTime\n    ? disabledTime(value && value.nativeDate)\n    : ({} as DisabledTimeConfig);\n  disabledTimeConfig = {\n    ...defaultDisabledTime,\n    ...disabledTimeConfig\n  };\n  return disabledTimeConfig;\n}\n\nexport function isTimeValidByConfig(\n  value: CandyDate,\n  disabledTimeConfig: DisabledTimeConfig\n): boolean {\n  let invalidTime = false;\n  if (value) {\n    const hour = value.getHours();\n    const minutes = value.getMinutes();\n    const seconds = value.getSeconds();\n    const disabledHours = disabledTimeConfig.vtsDisabledHours();\n    if (disabledHours.indexOf(hour) === -1) {\n      const disabledMinutes = disabledTimeConfig.vtsDisabledMinutes(hour);\n      if (disabledMinutes.indexOf(minutes) === -1) {\n        const disabledSeconds = disabledTimeConfig.vtsDisabledSeconds(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(\n  value: CandyDate,\n  disabledDate?: DisabledDateFn,\n  disabledTime?: DisabledTimeFn\n): boolean {\n  if (!value) {\n    return false;\n  }\n  if (disabledDate) {\n    if (disabledDate(value.nativeDate)) {\n      return false;\n    }\n  }\n  if (disabledTime) {\n    if (!isTimeValid(value, disabledTime)) {\n      return false;\n    }\n  }\n  return true;\n}\n\n/**\n * check if input value matched the format WITHOUT \"/\", automatically change input value\n */ \nexport function checkStringValidFormatWithoutSlash(value: string){\n  if(value.length >= 8 && !/\\D/.test(value)){\n    let day = +value.slice(0,2);\n    let month = +value.slice(2,4);\n    let year = +value.slice(4,8);\n    let date = new Date(`${year}/${month}/${day}`);\n    return isValid(date);\n  }\n  else {\n    return false;\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 * 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 * @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\nconst PI = Math.PI;\n\n//#region utils for calculating lunar date/year for Vietnamese\n\nfunction jdFromDate(dd: number, mm: number, yy: number) {\n  let a, y, m, jd;\n  a = INT((14 - mm) / 12);\n  y = yy + 4800 - a;\n  m = mm + 12 * a - 3;\n  jd =\n    dd +\n    INT((153 * m + 2) / 5) +\n    365 * y +\n    INT(y / 4) -\n    INT(y / 100) +\n    INT(y / 400) -\n    32045;\n  if (jd < 2299161) {\n    jd = dd + INT((153 * m + 2) / 5) + 365 * y + INT(y / 4) - 32083;\n  }\n  return jd;\n}\n\nfunction jdToDate(jd: number) {\n  let a, b, c, d, e, m, day, month, year;\n  if (jd > 2299160) {\n    // After 5/10/1582, Gregorian calendar\n    a = jd + 32044;\n    b = INT((4 * a + 3) / 146097);\n    c = a - INT((b * 146097) / 4);\n  } else {\n    b = 0;\n    c = jd + 32082;\n  }\n  d = INT((4 * c + 3) / 1461);\n  e = c - INT((1461 * d) / 4);\n  m = INT((5 * e + 2) / 153);\n  day = e - INT((153 * m + 2) / 5) + 1;\n  month = m + 3 - 12 * INT(m / 10);\n  year = b * 100 + d - 4800 + INT(m / 10);\n  return new Array(day, month, year);\n}\n\nfunction getNewMoonDay(k: number, timeZone: number) {\n  let T, T2, T3, dr, Jd1, M, Mpr, F, C1, deltat, JdNew;\n  T = k / 1236.85; // Time in Julian centuries from 1900 January 0.5\n  T2 = T * T;\n  T3 = T2 * T;\n  dr = PI / 180;\n  Jd1 = 2415020.75933 + 29.53058868 * k + 0.0001178 * T2 - 0.000000155 * T3;\n  Jd1 = Jd1 + 0.00033 * Math.sin((166.56 + 132.87 * T - 0.009173 * T2) * dr); // Mean new moon\n  M = 359.2242 + 29.10535608 * k - 0.0000333 * T2 - 0.00000347 * T3; // Sun's mean anomaly\n  Mpr = 306.0253 + 385.81691806 * k + 0.0107306 * T2 + 0.00001236 * T3; // Moon's mean anomaly\n  F = 21.2964 + 390.67050646 * k - 0.0016528 * T2 - 0.00000239 * T3; // Moon's argument of latitude\n  C1 =\n    (0.1734 - 0.000393 * T) * Math.sin(M * dr) + 0.0021 * Math.sin(2 * dr * M);\n  C1 = C1 - 0.4068 * Math.sin(Mpr * dr) + 0.0161 * Math.sin(dr * 2 * Mpr);\n  C1 = C1 - 0.0004 * Math.sin(dr * 3 * Mpr);\n  C1 = C1 + 0.0104 * Math.sin(dr * 2 * F) - 0.0051 * Math.sin(dr * (M + Mpr));\n  C1 =\n    C1 -\n    0.0074 * Math.sin(dr * (M - Mpr)) +\n    0.0004 * Math.sin(dr * (2 * F + M));\n  C1 =\n    C1 -\n    0.0004 * Math.sin(dr * (2 * F - M)) -\n    0.0006 * Math.sin(dr * (2 * F + Mpr));\n  C1 =\n    C1 +\n    0.001 * Math.sin(dr * (2 * F - Mpr)) +\n    0.0005 * Math.sin(dr * (2 * Mpr + M));\n  if (T < -11) {\n    deltat =\n      0.001 +\n      0.000839 * T +\n      0.0002261 * T2 -\n      0.00000845 * T3 -\n      0.000000081 * T * T3;\n  } else {\n    deltat = -0.000278 + 0.000265 * T + 0.000262 * T2;\n  }\n  JdNew = Jd1 + C1 - deltat;\n  return INT(JdNew + 0.5 + timeZone / 24);\n}\n\nfunction getSunLongitude(jdn: number, timeZone: number) {\n  let T, T2, dr, M, L0, DL, L;\n  T = (jdn - 2451545.5 - timeZone / 24) / 36525; // Time in Julian centuries from 2000-01-01 12:00:00 GMT\n  T2 = T * T;\n  dr = PI / 180; // degree to radian\n  M = 357.5291 + 35999.0503 * T - 0.0001559 * T2 - 0.00000048 * T * T2; // mean anomaly, degree\n  L0 = 280.46645 + 36000.76983 * T + 0.0003032 * T2; // mean longitude, degree\n  DL = (1.9146 - 0.004817 * T - 0.000014 * T2) * Math.sin(dr * M);\n  DL =\n    DL +\n    (0.019993 - 0.000101 * T) * Math.sin(dr * 2 * M) +\n    0.00029 * Math.sin(dr * 3 * M);\n  L = L0 + DL; // true longitude, degree\n  L = L * dr;\n  L = L - PI * 2 * INT(L / (PI * 2)); // Normalize to (0, 2*PI)\n  return INT((L / PI) * 6);\n}\n\nfunction getLunarMonth11(yy: number, timeZone: number) {\n  let k, off, nm, sunLong;\n  off = jdFromDate(31, 12, yy) - 2415021;\n  k = INT(off / 29.530588853);\n  nm = getNewMoonDay(k, timeZone);\n  sunLong = getSunLongitude(nm, timeZone); // sun longitude at local midnight\n  if (sunLong >= 9) {\n    nm = getNewMoonDay(k - 1, timeZone);\n  }\n  return nm;\n}\n\nfunction getLeapMonthOffset(a11: number, timeZone: number) {\n  let k, last, arc, i;\n  k = INT((a11 - 2415021.076998695) / 29.530588853 + 0.5);\n  last = 0;\n  i = 1; // We start with the month following lunar month 11\n  arc = getSunLongitude(getNewMoonDay(k + i, timeZone), timeZone);\n  do {\n    last = arc;\n    i++;\n    arc = getSunLongitude(getNewMoonDay(k + i, timeZone), timeZone);\n  } while (arc != last && i < 14);\n  return i - 1;\n}\n\n/**\n * đổi ngày dương lịch sang ngày âm lịch. giá trị lunarLeap trả về: 0 - năm không nhuận, 1 - năm nhuận\n * @param dd ngày dương lịch\n * @param mm tháng dương lịch, bắt đầu từ 1\n * @param yy năm dương lịch\n * @param timeZone timezone sử dụng để tính\n */\nexport function convertSolar2Lunar(dd: number, mm: number, yy: number, timeZone: number) {\n  let k,\n    dayNumber,\n    monthStart,\n    a11,\n    b11,\n    lunarDay,\n    lunarMonth,\n    lunarYear,\n    lunarLeap;\n  dayNumber = jdFromDate(dd, mm, yy);\n  k = INT((dayNumber - 2415021.076998695) / 29.530588853);\n  monthStart = getNewMoonDay(k + 1, timeZone);\n  if (monthStart > dayNumber) {\n    monthStart = getNewMoonDay(k, timeZone);\n  }\n  a11 = getLunarMonth11(yy, timeZone);\n  b11 = a11;\n  if (a11 >= monthStart) {\n    lunarYear = yy;\n    a11 = getLunarMonth11(yy - 1, timeZone);\n  } else {\n    lunarYear = yy + 1;\n    b11 = getLunarMonth11(yy + 1, timeZone);\n  }\n  lunarDay = dayNumber - monthStart + 1;\n  let diff = INT((monthStart - a11) / 29);\n  lunarLeap = 0;\n  lunarMonth = diff + 11;\n  if (b11 - a11 > 365) {\n    let leapMonthDiff = getLeapMonthOffset(a11, timeZone);\n    if (diff >= leapMonthDiff) {\n      lunarMonth = diff + 10;\n      if (diff == leapMonthDiff) {\n        lunarLeap = 1;\n      }\n    }\n  }\n  if (lunarMonth > 12) {\n    lunarMonth = lunarMonth - 12;\n  }\n  if (lunarMonth >= 11 && diff < 4) {\n    lunarYear -= 1;\n  }\n  return { lunarDay, lunarMonth, lunarYear, lunarLeap };\n}\n\n/**\n * đổi ngày âm lịch sang ngày dương lịch\n * @param lunarDay ngày âm lịch\n * @param lunarMonth tháng âm lịch, bắt đầu từ 1\n * @param lunarYear năm âm lịch\n * @param lunarLeap 0 - năm không nhuận, 1 - năm nhuận\n * @param timeZone timezone của client\n * @returns [day, month, year]\n */\nexport function convertLunar2Solar(\n  lunarDay: number,\n  lunarMonth: number,\n  lunarYear: number,\n  lunarLeap: number,\n  timeZone: number\n) {\n  let k, a11, b11, off, leapOff, leapMonth, monthStart;\n  if (lunarMonth < 11) {\n    a11 = getLunarMonth11(lunarYear - 1, timeZone);\n    b11 = getLunarMonth11(lunarYear, timeZone);\n  } else {\n    a11 = getLunarMonth11(lunarYear, timeZone);\n    b11 = getLunarMonth11(lunarYear + 1, timeZone);\n  }\n  off = lunarMonth - 11;\n  if (off < 0) {\n    off += 12;\n  }\n  if (b11 - a11 > 365) {\n    leapOff = getLeapMonthOffset(a11, timeZone);\n    leapMonth = leapOff - 2;\n    if (leapMonth < 0) {\n      leapMonth += 12;\n    }\n    if (lunarLeap != 0 && lunarMonth != leapMonth) {\n      return new Array(0, 0, 0);\n    } else if (lunarLeap != 0 || off >= leapOff) {\n      off += 1;\n    }\n  }\n  k = INT(0.5 + (a11 - 2415021.076998695) / 29.530588853);\n  monthStart = getNewMoonDay(k + off, timeZone);\n  return jdToDate(monthStart + lunarDay - 1);\n}\n\nfunction INT(num: number) {\n  return Math.floor(num);\n}\n\n//#endregion","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { CandyDate } from '@ui-vts-kit/ng-vts/core/time';\nimport { VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\n\nimport { isNonEmptyString, isTemplateRef } from '@ui-vts-kit/ng-vts/core/util';\nimport { DateHelperService, VtsCalendarI18nInterface } from '@ui-vts-kit/ng-vts/i18n';\nimport { transCompatFormat } from './lib/util';\nimport { PREFIX_CLASS } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // tslint:disable-next-line:component-selector\n  selector: 'calendar-footer',\n  exportAs: 'calendarFooter',\n  template: `\n    <div class=\"{{ prefixCls }}-footer\">\n      <div *ngIf=\"extraFooter\" class=\"{{ prefixCls }}-footer-extra\">\n        <ng-container [ngSwitch]=\"true\">\n          <ng-container *ngSwitchCase=\"isTemplateRef(extraFooter)\">\n            <ng-container *ngTemplateOutlet=\"$any(extraFooter)\"></ng-container>\n          </ng-container>\n          <ng-container *ngSwitchCase=\"isNonEmptyString(extraFooter)\">\n            <span [innerHTML]=\"extraFooter\"></span>\n          </ng-container>\n        </ng-container>\n      </div>\n      <a\n        *ngIf=\"showToday\"\n        class=\"{{ prefixCls }}-today-btn {{\n          isTodayDisabled ? prefixCls + '-today-btn-disabled' : ''\n        }}\"\n        role=\"button\"\n        (click)=\"isTodayDisabled ? null : onClickToday()\"\n        title=\"{{ todayTitle }}\"\n      >\n        {{ locale.today }}\n      </a>\n      <ul *ngIf=\"hasTimePicker || rangeQuickSelector\" class=\"{{ prefixCls }}-ranges\">\n        <ng-container *ngTemplateOutlet=\"rangeQuickSelector\"></ng-container>\n        <li *ngIf=\"showNow\" class=\"{{ prefixCls }}-now\">\n          <a class=\"{{ prefixCls }}-now-btn\" (click)=\"isTodayDisabled ? null : onClickToday()\">\n            {{ locale.now }}\n          </a>\n        </li>\n        <li *ngIf=\"hasTimePicker\" class=\"{{ prefixCls }}-ok\">\n          <button\n            vts-button\n            type=\"button\"\n            vtsType=\"primary\"\n            vtsSize=\"sm\"\n            [disabled]=\"okDisabled\"\n            (click)=\"okDisabled ? null : clickOk.emit()\"\n          >\n            {{ locale.ok }}\n          </button>\n        </li>\n      </ul>\n    </div>\n  `\n})\nexport class CalendarFooterComponent implements OnChanges {\n  @Input() locale!: VtsCalendarI18nInterface;\n  @Input() showToday: boolean = false;\n  @Input() showNow: boolean = false;\n  @Input() hasTimePicker: boolean = false;\n  @Input() isRange: boolean = false;\n\n  @Input() okDisabled: boolean = false;\n  @Input() disabledDate?: (d: Date) => boolean;\n  @Input() extraFooter?: TemplateRef<void> | string;\n  @Input() rangeQuickSelector: TemplateRef<VtsSafeAny> | null = null;\n\n  @Output() readonly clickOk = new EventEmitter<void>();\n  @Output() readonly clickToday = new EventEmitter<CandyDate>();\n\n  prefixCls: string = PREFIX_CLASS;\n  isTemplateRef = isTemplateRef;\n  isNonEmptyString = isNonEmptyString;\n  isTodayDisabled: boolean = false;\n  todayTitle: string = '';\n\n  constructor(private dateHelper: DateHelperService) {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const now: Date = new Date();\n    if (changes.disabledDate) {\n      this.isTodayDisabled = !!(this.disabledDate && this.disabledDate(now));\n    }\n    if (changes.locale) {\n      // NOTE: Compat for DatePipe formatting rules\n      const dateFormat: string = transCompatFormat(this.locale.dateFormat);\n      this.todayTitle = this.dateHelper.format(now, dateFormat);\n    }\n  }\n\n  onClickToday(): void {\n    const now: CandyDate = new CandyDate();\n    this.clickToday.emit(now.clone()); // To prevent the \"now\" being modified from outside, we use clone\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Injectable, OnDestroy } from '@angular/core';\nimport {\n  CandyDate,\n  cloneDate,\n  CompatibleValue,\n  NormalizedMode,\n  normalizeRangeValue\n} from '@ui-vts-kit/ng-vts/core/time';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport { CompatibleDate, VtsDateMode, 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  isRangeSingleMode = false;\n\n  valueChange$ = new ReplaySubject<CompatibleValue>(1);\n  emitValue$ = new Subject<void>();\n  inputPartChange$ = new Subject<RangePartType>();\n\n  initValue(): void {\n    if (this.isRange) {\n      this.initialValue = [];\n    } else {\n      this.initialValue = null;\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(\n    value: CompatibleValue,\n    hasTimePicker: boolean = false,\n    mode: NormalizedMode = 'month'\n  ): void {\n    const parentPanels: { [key in VtsDateMode]?: NormalizedMode } = {\n      date: 'month',\n      month: 'year',\n      year: 'decade',\n      week: 'month',\n      quarter: 'year'\n    };\n    if (this.isRange) {\n      this.activeDate = normalizeRangeValue(\n        value as CandyDate[],\n        hasTimePicker,\n        parentPanels[mode],\n        this.activeInput\n      );\n    } else {\n      this.activeDate = cloneDate(value);\n    }\n  }\n\n  setValue(value: CompatibleValue): void {\n    this.value = value;\n    this.valueChange$.next(this.value);\n  }\n\n  getActiveIndex(part: RangePartType = this.activeInput): number {\n    return { left: 0, right: 1 }[part];\n  }\n\n  compareDate(source: Date, dest: Date, includeTime = false) {\n    const s = new Date(source);\n    const d = new Date(dest);\n    if (!includeTime) {\n      s.setHours(0);\n      s.setMinutes(0);\n      s.setSeconds(0);\n      s.setMilliseconds(0);\n      d.setHours(0);\n      d.setMinutes(0);\n      d.setSeconds(0);\n      d.setMilliseconds(0);\n    }\n\n    if (s.getTime() > d.getTime()) return 1;\n    if (s.getTime() < d.getTime()) return -1;\n    return 0;\n  }\n\n  ngOnDestroy(): void {\n    this.valueChange$.complete();\n    this.emitValue$.complete();\n    this.inputPartChange$.complete();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  Directive,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChanges\n} from '@angular/core';\nimport { CandyDate } from '@ui-vts-kit/ng-vts/core/time';\nimport { VtsCalendarI18nInterface } from '@ui-vts-kit/ng-vts/i18n';\nimport { VtsDateMode } from '../standard-types';\nimport { PanelSelector } from './interface';\n\n@Directive()\n// tslint:disable-next-line:directive-class-suffix\nexport abstract class AbstractPanelHeader implements OnInit, OnChanges {\n  prefixCls: string = `vts-picker-header`;\n  selectors: PanelSelector[] = [];\n\n  @Input() value!: CandyDate;\n  @Input() locale!: VtsCalendarI18nInterface;\n  @Input() showSuperPreBtn: boolean = true;\n  @Input() showSuperNextBtn: boolean = true;\n  @Input() showPreBtn: boolean = true;\n  @Input() showNextBtn: boolean = true;\n\n  @Output() readonly panelModeChange = new EventEmitter<VtsDateMode>();\n  @Output() readonly valueChange = new EventEmitter<CandyDate>();\n\n  abstract getSelectors(): PanelSelector[];\n\n  superPreviousTitle(): string {\n    return this.locale.previousYear;\n  }\n\n  previousTitle(): string {\n    return this.locale.previousMonth;\n  }\n\n  superNextTitle(): string {\n    return this.locale.nextYear;\n  }\n\n  nextTitle(): string {\n    return this.locale.nextMonth;\n  }\n\n  superPrevious(): void {\n    this.changeValue(this.value.addYears(-1));\n  }\n\n  superNext(): void {\n    this.changeValue(this.value.addYears(1));\n  }\n\n  previous(): void {\n    this.changeValue(this.value.addMonths(-1));\n  }\n\n  next(): void {\n    this.changeValue(this.value.addMonths(1));\n  }\n\n  changeValue(value: CandyDate): void {\n    if (this.value !== value) {\n      this.value = value;\n      this.valueChange.emit(this.value);\n      this.render();\n    }\n  }\n\n  changeMode(mode: VtsDateMode): void {\n    this.panelModeChange.emit(mode);\n  }\n\n  private render(): void {\n    if (this.value) {\n      this.selectors = this.getSelectors();\n    }\n  }\n\n  ngOnInit(): void {\n    if (!this.value) {\n      this.value = new CandyDate(); // Show today by default\n    }\n    this.selectors = this.getSelectors();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.value || changes.locale) {\n      this.render();\n    }\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { DateHelperService, VtsI18nService } from '@ui-vts-kit/ng-vts/i18n';\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\nimport { transCompatFormat } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'date-header', // tslint:disable-line:component-selector\n  exportAs: 'dateHeader',\n  templateUrl: './abstract-panel-header.html'\n})\nexport class DateHeaderComponent extends AbstractPanelHeader {\n  constructor(private dateHelper: DateHelperService, private i18n: VtsI18nService) {\n    super();\n  }\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-month-btn`,\n        title: this.locale.monthSelect,\n        onClick: () => this.changeMode('month'),\n        label: this.dateHelper.format(\n          this.value.nativeDate,\n          this.i18n.getDateFormat()?.DATE_TABLE_HEADER_MONTH || 'MMM'\n        )\n      },\n      {\n        className: `${this.prefixCls}-year-btn`,\n        title: this.locale.yearSelect,\n        onClick: () => this.changeMode('year'),\n        label: this.dateHelper.format(\n          this.value.nativeDate,\n          this.i18n.getDateFormat()?.DATE_TABLE_HEADER_YEAR ||\n            transCompatFormat(this.locale.yearFormat)\n        )\n      }\n    ];\n  }\n}\n","<div class=\"{{ prefixCls }}\">\n  <button\n    [style.visibility]=\"showSuperPreBtn ? 'visible' : 'hidden'\"\n    class=\"{{ prefixCls }}-super-prev-btn\"\n    role=\"button\"\n    tabindex=\"-1\"\n    title=\"{{ superPreviousTitle() }}\"\n    (click)=\"superPrevious()\"\n  >\n    <span class=\"vts-picker-super-prev-icon\"></span>\n  </button>\n  <button\n    [style.visibility]=\"showPreBtn ? 'visible' : 'hidden'\"\n    class=\"{{ prefixCls }}-prev-btn\"\n    role=\"button\"\n    title=\"{{ previousTitle() }}\"\n    tabindex=\"-1\"\n    (click)=\"previous()\"\n  >\n    <span class=\"vts-picker-prev-icon\"></span>\n  </button>\n\n  <div class=\"{{ prefixCls }}-view\">\n    <ng-container *ngFor=\"let selector of selectors\">\n      <button\n        class=\"{{ selector.className }}\"\n        role=\"button\"\n        type=\"button\"\n        title=\"{{ selector.title || null }}\"\n        (click)=\"selector.onClick()\"\n      >\n        {{ selector.label }}\n      </button>\n    </ng-container>\n  </div>\n  <button\n    [style.visibility]=\"showNextBtn ? 'visible' : 'hidden'\"\n    class=\"{{ prefixCls }}-next-btn\"\n    role=\"button\"\n    tabindex=\"-1\"\n    title=\"{{ nextTitle() }}\"\n    (click)=\"next()\"\n  >\n    <span class=\"vts-picker-next-icon\"></span>\n  </button>\n  <button\n    [style.visibility]=\"showSuperNextBtn ? 'visible' : 'hidden'\"\n    class=\"{{ prefixCls }}-super-next-btn\"\n    role=\"button\"\n    tabindex=\"-1\"\n    title=\"{{ superNextTitle() }}\"\n    (click)=\"superNext()\"\n  >\n    <span class=\"vts-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} from '@angular/core';\nimport { CandyDate } from '@ui-vts-kit/ng-vts/core/time';\nimport { FunctionProp, VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\nimport { isNonEmptyString, isTemplateRef } from '@ui-vts-kit/ng-vts/core/util';\nimport { VtsCalendarI18nInterface } from '@ui-vts-kit/ng-vts/i18n';\nimport { DateBodyRow, DateCell } from './interface';\n\n@Directive()\n// tslint:disable-next-line:directive-class-suffix\nexport abstract class AbstractTable implements OnInit, OnChanges {\n  isTemplateRef = isTemplateRef;\n  isNonEmptyString = isNonEmptyString;\n  headRow: DateCell[] = [];\n  bodyRows: DateBodyRow[] = [];\n  MAX_ROW = 6;\n  MAX_COL = 7;\n  /**\n   * to detect date-table.comp to show lunar date when being enabled\n   */\n  isDateTable: boolean = false;\n\n  @Input() prefixCls: string = 'vts-picker';\n  @Input() value!: CandyDate;\n  @Input() locale!: VtsCalendarI18nInterface;\n  @Input() activeDate: CandyDate = new CandyDate();\n  @Input() showWeek: boolean = false;\n  @Input() selectedValue: CandyDate[] = []; // Range ONLY\n  @Input() hoverValue: CandyDate[] = []; // Range ONLY\n  @Input() disabledDate?: (d: Date) => boolean;\n  @Input() cellRender?: string | TemplateRef<Date> | FunctionProp<TemplateRef<Date> | string>;\n  @Input() fullCellRender?: string | TemplateRef<Date> | FunctionProp<TemplateRef<Date> | string>;\n  @Input() showLunarDate: 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  trackByBodyRow(_index: number, item: DateBodyRow): VtsSafeAny {\n    return item.trackByIndex;\n  }\n\n  trackByBodyColumn(_index: number, item: DateCell): VtsSafeAny {\n    return item.trackByIndex;\n  }\n\n  hasRangeValue(): boolean {\n    return this.selectedValue?.length > 0 || this.hoverValue?.length > 0;\n  }\n\n  getClassMap(cell: DateCell): { [key: string]: boolean } {\n    return {\n      [`vts-picker-cell`]: true,\n      [`vts-picker-cell-in-view`]: true,\n      [`vts-picker-cell-selected`]: cell.isSelected,\n      [`vts-picker-cell-disabled`]: cell.isDisabled,\n      [`vts-picker-cell-in-range`]: !!cell.isInSelectedRange,\n      [`vts-picker-cell-range-start`]: !!cell.isSelectedStart,\n      [`vts-picker-cell-range-end`]: !!cell.isSelectedEnd,\n      [`vts-picker-cell-range-start-single`]: !!cell.isStartSingle,\n      [`vts-picker-cell-range-end-single`]: !!cell.isEndSingle,\n      [`vts-picker-cell-range-hover`]: !!cell.isInHoverRange,\n      [`vts-picker-cell-range-hover-start`]: !!cell.isHoverStart,\n      [`vts-picker-cell-range-hover-end`]: !!cell.isHoverEnd,\n      [`vts-picker-cell-range-hover-edge-start`]: !!cell.isFirstCellInPanel,\n      [`vts-picker-cell-range-hover-edge-end`]: !!cell.isLastCellInPanel,\n      [`vts-picker-cell-range-start-near-hover`]: !!cell.isRangeStartNearHover,\n      [`vts-picker-cell-range-end-near-hover`]: !!cell.isRangeEndNearHover\n    };\n  }\n\n  abstract makeHeadRow(): DateCell[];\n  abstract makeBodyRows(): DateBodyRow[];\n\n  ngOnInit(): void {\n    this.render();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.activeDate && !changes.activeDate.currentValue) {\n      this.activeDate = new CandyDate();\n    }\n\n    if (\n      changes.disabledDate ||\n      changes.locale ||\n      changes.showWeek ||\n      this.isDateRealChange(changes.activeDate) ||\n      this.isDateRealChange(changes.value) ||\n      this.isDateRealChange(changes.selectedValue) ||\n      this.isDateRealChange(changes.hoverValue)\n    ) {\n      this.render();\n    }\n  }\n\n  private isDateRealChange(change: SimpleChange): boolean {\n    if (change) {\n      const previousValue: CandyDate | CandyDate[] = change.previousValue;\n      const currentValue: CandyDate | CandyDate[] = change.currentValue;\n      if (Array.isArray(currentValue)) {\n        return (\n          !Array.isArray(previousValue) ||\n          currentValue.length !== previousValue.length ||\n          currentValue.some((value, index) => {\n            const previousCandyDate = previousValue[index];\n            return previousCandyDate instanceof CandyDate\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   * click week num has the same event to click cell in that week\n   */\n  onClickWeekNum(row: DateBodyRow){\n    if(row.dateCells && row.dateCells.length){\n      // if all cells are disabled -> do nothing\n      const numOfDisabledCells = row.dateCells.filter(c => c.isDisabled).length;\n      if(numOfDisabledCells == row.dateCells.length){\n        return;\n      }\n      else {\n        // click the first NOT disabled date in the row\n        const firstEnableCell = row.dateCells.find(cell => !cell.isDisabled);\n        if(firstEnableCell){\n          firstEnableCell?.onClick();\n        }\n      }\n    }\n    else {\n      return;\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { convertSolar2Lunar } from './util';\n\n@Pipe({\n  name: 'lunarDate'\n})\n\nexport class LunarDatePipe implements PipeTransform {\n  transform(value: Date): string {\n    // getTimezoneOffset provide the number of minutes differring from UTC \n    // read https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset\n    let lunarDate = convertSolar2Lunar(value.getDate(), value.getMonth() + 1, value.getFullYear(), Math.floor(-value.getTimezoneOffset()/60));\n    if(lunarDate.lunarDay == 1){\n      return `${lunarDate.lunarDay}/${lunarDate.lunarMonth}`\n    }\n    else {\n      return `${lunarDate.lunarDay}`\n    }\n  }\n}","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  OnChanges,\n  OnInit,\n  ViewEncapsulation\n} from '@angular/core';\nimport { CandyDate } from '@ui-vts-kit/ng-vts/core/time';\nimport { valueFunctionProp } from '@ui-vts-kit/ng-vts/core/util';\n\nimport { DateHelperService, VtsCalendarI18nInterface, VtsI18nService } from '@ui-vts-kit/ng-vts/i18n';\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell } from './interface';\nimport { transCompatFormat } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // tslint:disable-next-line:component-selector\n  selector: 'date-table',\n  exportAs: 'dateTable',\n  templateUrl: './abstract-table.html'\n})\nexport class DateTableComponent extends AbstractTable implements OnChanges, OnInit {\n  @Input() override locale!: VtsCalendarI18nInterface;\n\n  constructor(private i18n: VtsI18nService, private dateHelper: DateHelperService) {\n    super();\n    this.isDateTable = true;\n  }\n\n  private changeValueFromInside(value: CandyDate): void {\n    // Only change date not change time\n    this.activeDate = this.activeDate\n      .setYear(value.getYear())\n      .setMonth(value.getMonth())\n      .setDate(value.getDate());\n    this.valueChange.emit(this.activeDate);\n\n    if (!this.activeDate.isSameMonth(this.value)) {\n      this.render();\n    }\n  }\n\n  makeHeadRow(): DateCell[] {\n    const weekDays: DateCell[] = [];\n    const start = this.activeDate.calendarStart({\n      weekStartsOn: this.dateHelper.getFirstDayOfWeek()\n    });\n    for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n      const day = start.addDays(colIndex);\n      weekDays.push({\n        trackByIndex: null,\n        value: day.nativeDate,\n        title: this.dateHelper.format(\n          day.nativeDate,\n          this.i18n.getDateFormat()?.DATE_TABLE_BODY_HEAD_TITLE || 'E'\n        ), // eg. Tue\n        content: this.dateHelper.format(\n          day.nativeDate,\n          this.i18n.getDateFormat()?.DATE_TABLE_BODY_HEAD_LABEL || this.getVeryShortWeekFormat()\n        ), // eg. Tu,\n        isSelected: false,\n        isDisabled: false,\n        onClick(): void {},\n        onMouseEnter(): void {}\n      });\n    }\n    return weekDays;\n  }\n\n  private getVeryShortWeekFormat(): string {\n    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({\n      weekStartsOn: this.dateHelper.getFirstDayOfWeek()\n    });\n\n    for (let week = 0; week < this.MAX_ROW; week++) {\n      const weekStart = firstDayOfMonth.addDays(week * 7);\n      const row: DateBodyRow = {\n        isActive: false,\n        dateCells: [],\n        trackByIndex: week\n      };\n\n      for (let day = 0; day < 7; day++) {\n        const date = weekStart.addDays(day);\n        const dateFormat = transCompatFormat(\n          this.i18n.getLocaleData('DatePicker.lang.dateFormat', 'YYYY-MM-DD')\n        );\n        const title = this.dateHelper.format(\n          date.nativeDate,\n          this.i18n.getDateFormat()?.DATE_TABLE_BODY_CONTENT_TITLE || dateFormat\n        );\n        const label = this.dateHelper.format(\n          date.nativeDate,\n          this.i18n.getDateFormat()?.DATE_TABLE_BODY_CONTENT_LABEL || 'dd'\n        );\n        const cell: DateCell = {\n          trackByIndex: day,\n          value: date.nativeDate,\n          label: label,\n          isSelected: false,\n          isDisabled: false,\n          isToday: false,\n          title: 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        [`vts-picker-week-panel-row`]: this.showWeek,\n        [`vts-picker-week-panel-row-selected`]: this.showWeek && row.isActive\n      };\n      weekRows.push(row);\n    }\n    return weekRows;\n  }\n\n  addCellProperty(cell: DateCell, date: CandyDate): void {\n    if (this.hasRangeValue() && !this.showWeek) {\n      const [startHover, endHover] = this.hoverValue;\n      const [startSelected, endSelected] = this.selectedValue;\n      // Selected\n      if (startSelected?.isSameDay(date)) {\n        cell.isSelectedStart = true;\n        cell.isSelected = true;\n      }\n\n      if (endSelected?.isSameDay(date)) {\n        cell.isSelectedEnd = true;\n        cell.isSelected = true;\n      }\n\n      if (startHover && endHover) {\n        cell.isHoverStart = startHover.isSameDay(date);\n        cell.isHoverEnd = endHover.isSameDay(date);\n        cell.isLastCellInPanel = date.isLastDayOfMonth();\n        cell.isFirstCellInPanel = date.isFirstDayOfMonth();\n        cell.isInHoverRange = startHover.isBeforeDay(date) && date.isBeforeDay(endHover);\n      }\n      cell.isStartSingle = startSelected != undefined && endSelected == undefined;\n      cell.isEndSingle = startSelected == undefined && endSelected  != undefined;\n      cell.isInSelectedRange = startSelected?.isBeforeDay(date) && date.isBeforeDay(endSelected);\n      cell.isRangeStartNearHover = startSelected && cell.isInHoverRange;\n      cell.isRangeEndNearHover = endSelected && cell.isInHoverRange;\n    }\n\n    cell.isToday = date.isToday();\n    cell.isSelected = date.isSameDay(this.value);\n    cell.isDisabled = !!this.disabledDate?.(date.nativeDate);\n    cell.classMap = this.getClassMap(cell);\n  }\n\n  override getClassMap(cell: DateCell): { [key: string]: boolean } {\n    const date = new CandyDate(cell.value);\n    return {\n      ...super.getClassMap(cell),\n      [`vts-picker-cell-today`]: !!cell.isToday,\n      [`vts-picker-cell-in-view`]: date.isSameMonth(this.activeDate)\n    };\n  }\n}\n","<table class=\"vts-picker-content\" cellspacing=\"0\" role=\"grid\">\n  <thead *ngIf=\"headRow && headRow.length > 0\">\n    <tr role=\"row\">\n      <th *ngIf=\"showWeek\" role=\"columnheader\"></th>\n      <th *ngFor=\"let cell of headRow\" role=\"columnheader\" title=\"{{ cell.title }}\">\n        {{ cell.content }}\n      </th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr *ngFor=\"let row of bodyRows; trackBy: trackByBodyRow\" [ngClass]=\"row.classMap!\" role=\"row\">\n      <td *ngIf=\"row.weekNum\" role=\"gridcell\" class=\"{{ prefixCls }}-cell-week\" (click)=\"onClickWeekNum(row)\">\n        {{ row.weekNum }}\n      </td>\n      <td\n        *ngFor=\"let cell of row.dateCells; trackBy: trackByBodyColumn\"\n        title=\"{{ cell.title }}\"\n        role=\"gridcell\"\n        [ngClass]=\"cell.classMap!\"\n        (click)=\"cell.isDisabled ? null : cell.onClick()\"\n        (mouseenter)=\"cell.onMouseEnter()\"\n      >\n        <ng-container [ngSwitch]=\"prefixCls\">\n          <ng-container *ngSwitchCase=\"'vts-picker'\">\n            <ng-container [ngSwitch]=\"true\">\n              <ng-container *ngSwitchCase=\"isTemplateRef(cell.cellRender)\">\n                <!--           *ngSwitchCase not has type assertion support, the cellRender type here is TemplateRef -->\n                <ng-container\n                  *ngTemplateOutlet=\"$any(cell.cellRender); context: { $implicit: cell.value }\"\n                ></ng-container>\n                <!-- <span *ngIf=\"isDateTable && showLunarDate\" class=\"{{ prefixCls }}-cell-lunar-date\">{{ cell.value | lunarDate }}</span> -->\n              </ng-container>\n              <ng-container *ngSwitchCase=\"isNonEmptyString(cell.cellRender)\">\n                <span [innerHTML]=\"cell.cellRender\"></span>\n              </ng-container>\n              <ng-container *ngSwitchDefault>\n                <div\n                  class=\"{{ prefixCls }}-cell-inner\"\n                  [attr.aria-selected]=\"cell.isSelected\"\n                  [attr.aria-disabled]=\"cell.isDisabled\"\n                >\n                  {{ cell.content }}\n                  <span *ngIf=\"isDateTable && showLunarDate\" class=\"{{ prefixCls }}-cell-lunar-date\">{{ cell.value | lunarDate }}</span>\n                </div>\n              </ng-container>\n            </ng-container>\n          </ng-container>\n          <!-- currently used for calendar component -->\n          <ng-container *ngSwitchCase=\"'vts-picker-calendar'\">\n            <div\n              class=\"{{ prefixCls }}-date vts-picker-cell-inner\"\n              [class.vts-picker-calendar-date-today]=\"cell.isToday\"\n            >\n              <ng-container *ngIf=\"cell.fullCellRender; else defaultCell\">\n                <ng-container\n                  *ngTemplateOutlet=\"$any(cell.fullCellRender); context: { $implicit: cell.value }\"\n                >\n                </ng-container>\n              </ng-container>\n              <ng-template #defaultCell>\n                <div class=\"{{ prefixCls }}-date-value\">{{ cell.content }}</div>\n                <div class=\"{{ prefixCls }}-date-content\">\n                  <ng-container\n                    *ngTemplateOutlet=\"$any(cell.cellRender); context: { $implicit: cell.value }\"\n                  >\n                  </ng-container>\n                </div>\n              </ng-template>\n            </div>\n          </ng-container>\n        </ng-container>\n      </td>\n    </tr>\n  </tbody>\n</table>\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'decade-header', // tslint:disable-line:component-selector\n  exportAs: 'decadeHeader',\n  templateUrl: './abstract-panel-header.html'\n})\nexport class DecadeHeaderComponent extends AbstractPanelHeader {\n  override previous(): void {}\n  override next(): void {}\n\n  get startYear(): number {\n    return parseInt(`${this.value.getYear() / 100}`, 10) * 100;\n  }\n\n  get endYear(): number {\n    return this.startYear + 99;\n  }\n\n  override superPrevious(): void {\n    this.changeValue(this.value.addYears(-100));\n  }\n\n  override superNext(): void {\n    this.changeValue(this.value.addYears(100));\n  }\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-decade-btn`,\n        title: '',\n        onClick: () => {\n          // noop\n        },\n        label: `${this.startYear}-${this.endYear}`\n      }\n    ];\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell, DecadeCell } from './interface';\n\nconst MAX_ROW = 4;\nconst MAX_COL = 3;\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // tslint:disable-next-line:component-selector\n  selector: 'decade-table',\n  exportAs: 'decadeTable',\n  templateUrl: 'abstract-table.html'\n})\nexport class DecadeTableComponent extends AbstractTable implements OnChanges {\n  get startYear(): number {\n    return parseInt(`${this.activeDate.getYear() / 100}`, 10) * 100;\n  }\n\n  get endYear(): number {\n    return this.startYear + 99;\n  }\n\n  makeHeadRow(): DateCell[] {\n    return [];\n  }\n\n  makeBodyRows(): DateBodyRow[] {\n    const decades: DateBodyRow[] = [];\n    const currentYear = this.value && this.value.getYear();\n    const startYear = this.startYear;\n    const endYear = this.endYear;\n    const previousYear = startYear - 10;\n\n    let index = 0;\n    for (let rowIndex = 0; rowIndex < MAX_ROW; rowIndex++) {\n      const row: DateBodyRow = {\n        dateCells: [],\n        trackByIndex: rowIndex\n      };\n\n      for (let colIndex = 0; colIndex < MAX_COL; colIndex++) {\n        const start = previousYear + index * 10;\n        const end = previousYear + index * 10 + 9;\n        const content = `${start}-${end}`;\n\n        const cell: DecadeCell = {\n          trackByIndex: colIndex,\n          value: this.activeDate.setYear(start).nativeDate,\n          content,\n          title: content,\n          isDisabled: false,\n          isSelected: currentYear >= start && currentYear <= end,\n          isLowerThanStart: end < startYear,\n          isBiggerThanEnd: start > endYear,\n          classMap: {},\n          onClick(): void {},\n          onMouseEnter(): void {}\n        };\n\n        cell.classMap = this.getClassMap(cell);\n        cell.onClick = () => this.chooseDecade(start);\n        index++;\n        row.dateCells.push(cell);\n      }\n\n      decades.push(row);\n    }\n    return decades;\n  }\n\n  override getClassMap(cell: DecadeCell): { [key: string]: boolean } {\n    return {\n      [`${this.prefixCls}-cell`]: true,\n      [`${this.prefixCls}-cell-in-view`]: !cell.isBiggerThanEnd && !cell.isLowerThanStart,\n      [`${this.prefixCls}-cell-selected`]: cell.isSelected,\n      [`${this.prefixCls}-cell-disabled`]: cell.isDisabled\n    };\n  }\n\n  private chooseDecade(year: number): void {\n    this.value = this.activeDate.setYear(year);\n    this.valueChange.emit(this.value);\n  }\n}\n","/**\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, VtsI18nService } from '@ui-vts-kit/ng-vts/i18n';\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\nimport { transCompatFormat } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'month-header', // tslint:disable-line:component-selector\n  exportAs: 'monthHeader',\n  templateUrl: './abstract-panel-header.html'\n})\nexport class MonthHeaderComponent extends AbstractPanelHeader {\n  constructor(private dateHelper: DateHelperService, private i18n: VtsI18nService) {\n    super();\n  }\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-month-btn`,\n        title: this.locale.yearSelect,\n        onClick: () => this.changeMode('year'),\n        label: this.dateHelper.format(\n          this.value.nativeDate,\n          this.i18n.getDateFormat()?.MONTH_TABLE_HEADER || transCompatFormat(this.locale.yearFormat)\n        )\n      }\n    ];\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  OnChanges,\n  OnInit,\n  ViewEncapsulation\n} from '@angular/core';\nimport { CandyDate } from '@ui-vts-kit/ng-vts/core/time';\nimport { valueFunctionProp } from '@ui-vts-kit/ng-vts/core/util';\nimport { DateHelperService, VtsI18nService } from '@ui-vts-kit/ng-vts/i18n';\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell } from './interface';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // tslint:disable-next-line:component-selector\n  selector: 'month-table',\n  exportAs: 'monthTable',\n  templateUrl: 'abstract-table.html'\n})\nexport class MonthTableComponent extends AbstractTable implements OnChanges, OnInit {\n  override MAX_ROW = 4;\n  override MAX_COL = 3;\n\n  constructor(private dateHelper: DateHelperService, private i18n: VtsI18nService) {\n    super();\n  }\n\n  makeHeadRow(): DateCell[] {\n    return [];\n  }\n\n  makeBodyRows(): DateBodyRow[] {\n    const months: DateBodyRow[] = [];\n    let monthValue = 0;\n\n    for (let rowIndex = 0; rowIndex < this.MAX_ROW; rowIndex++) {\n      const row: DateBodyRow = {\n        dateCells: [],\n        trackByIndex: rowIndex\n      };\n\n      for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n        const month = this.activeDate.setMonth(monthValue);\n        const isDisabled = this.isDisabledMonth(month);\n        const content = this.dateHelper.format(\n          month.nativeDate,\n          this.i18n.getDateFormat()?.MONTH_TABLE_BODY || 'MMM'\n        );\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 != undefined && endSelected == undefined;\n      cell.isEndSingle = startSelected == undefined && endSelected  != undefined;\n      cell.isInSelectedRange =\n        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 {\n  ChangeDetectionStrategy,\n  Component,\n  OnChanges,\n  OnInit,\n  ViewEncapsulation\n} from '@angular/core';\nimport { CandyDate } from '@ui-vts-kit/ng-vts/core/time';\nimport { valueFunctionProp } from '@ui-vts-kit/ng-vts/core/util';\nimport { DateHelperService, VtsI18nService } from '@ui-vts-kit/ng-vts/i18n';\nimport { AbstractTable } from './abstract-table';\nimport { getQuarter } from 'date-fns';\nimport { DateBodyRow, DateCell } from './interface';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // tslint:disable-next-line:component-selector\n  selector: 'quarter-table',\n  exportAs: 'quarterTable',\n  templateUrl: 'abstract-table.html'\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, private i18n: VtsI18nService) {\n    super();\n  }\n\n  makeHeadRow(): DateCell[] {\n    return [];\n  }\n\n  makeBodyRows(): DateBodyRow[] {\n    const quarters: DateBodyRow[] = [];\n    let quarterValue = 1;\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 quarter = this.activeDate.setQuarter(quarterValue);\n        const isDisabled = this.isDisabledQuarter(quarter);\n        const content = this.dateHelper.format(\n          quarter.nativeDate,\n          this.i18n.getDateFormat()?.QUARTER_TABLE_BODY || 'QQQ'\n        );\n        const cell: DateCell = {\n          trackByIndex: colIndex,\n          value: quarter.nativeDate,\n          isDisabled,\n          isSelected: quarter.isSameQuarter(this.value),\n          content,\n          title: content,\n          classMap: {},\n          cellRender: valueFunctionProp(this.cellRender!, quarter), // Customized content\n          fullCellRender: valueFunctionProp(this.fullCellRender!, quarter),\n          onClick: () => this.chooseQuarter(getQuarter(cell.value)), // don't use quarterValue here,\n          onMouseEnter: () => this.cellHover.emit(quarter)\n        };\n\n        this.addCellProperty(cell, quarter);\n        row.dateCells.push(cell);\n        quarterValue++;\n      }\n      quarters.push(row);\n    }\n    return quarters;\n  }\n\n  private isDisabledQuarter(quarter: CandyDate): boolean {\n    if (!this.disabledDate) {\n      return false;\n    }\n\n    const firstOfQuarter = quarter.setDate(1);\n\n    for (let date = firstOfQuarter; date.getQuarter() === quarter.getQuarter(); 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, quarter: CandyDate): void {\n    if (this.hasRangeValue()) {\n      const [startHover, endHover] = this.hoverValue;\n      const [startSelected, endSelected] = this.selectedValue;\n      // Selected\n      if (startSelected?.isSameQuarter(quarter)) {\n        cell.isSelectedStart = true;\n        cell.isSelected = true;\n      }\n\n      if (endSelected?.isSameQuarter(quarter)) {\n        cell.isSelectedEnd = true;\n        cell.isSelected = true;\n      }\n\n      if (startHover && endHover) {\n        cell.isHoverStart = startHover.isSameQuarter(quarter);\n        cell.isHoverEnd = endHover.isSameQuarter(quarter);\n        cell.isLastCellInPanel = quarter.getQuarter() === 11;\n        cell.isFirstCellInPanel = quarter.getQuarter() === 0;\n        cell.isInHoverRange = startHover.isBeforeQuarter(quarter) && quarter.isBeforeQuarter(endHover);\n      }\n      cell.isStartSingle = startSelected != undefined && endSelected == undefined;\n      cell.isEndSingle = startSelected == undefined && endSelected  != undefined;\n      cell.isInSelectedRange =\n        startSelected?.isBeforeQuarter(quarter) && quarter?.isBeforeQuarter(endSelected);\n      cell.isRangeStartNearHover = startSelected && cell.isInHoverRange;\n      cell.isRangeEndNearHover = endSelected && cell.isInHoverRange;\n    } else if (quarter.isSameQuarter(this.value)) {\n      cell.isSelected = true;\n    }\n    cell.classMap = this.getClassMap(cell);\n  }\n\n  private chooseQuarter(quarter: number): void {\n    this.value = this.activeDate.setQuarter(quarter);\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, VtsI18nService } from '@ui-vts-kit/ng-vts/i18n';\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\nimport { transCompatFormat } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'quarter-header', // tslint:disable-line:component-selector\n  exportAs: 'quarterHeader',\n  templateUrl: './abstract-panel-header.html'\n})\nexport class QuarterHeaderComponent extends AbstractPanelHeader {\n  constructor(private dateHelper: DateHelperService, private i18n: VtsI18nService) {\n    super();\n  }\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-quarter-btn`,\n        title: this.locale.yearSelect,\n        onClick: () => this.changeMode('year'),\n        label: this.dateHelper.format(\n          this.value.nativeDate,\n          this.i18n.getDateFormat()?.MONTH_TABLE_HEADER || transCompatFormat(this.locale.yearFormat)\n        )\n      }\n    ];\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'year-header', // tslint:disable-line:component-selector\n  exportAs: 'yearHeader',\n  templateUrl: './abstract-panel-header.html'\n})\nexport class YearHeaderComponent extends AbstractPanelHeader {\n  get startYear(): number {\n    return parseInt(`${this.value.getYear() / 10}`, 10) * 10;\n  }\n\n  get endYear(): number {\n    return this.startYear + 9;\n  }\n\n  override superPrevious(): void {\n    this.changeValue(this.value.addYears(-10));\n  }\n\n  override superNext(): void {\n    this.changeValue(this.value.addYears(10));\n  }\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-year-btn`,\n        title: '',\n        onClick: () => this.changeMode('decade'),\n        label: `${this.startYear}-${this.endYear}`\n      }\n    ];\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { CandyDate } from '@ui-vts-kit/ng-vts/core/time';\nimport { valueFunctionProp } from '@ui-vts-kit/ng-vts/core/util';\nimport { DateHelperService, VtsI18nService } from '@ui-vts-kit/ng-vts/i18n';\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell, YearCell } from './interface';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // tslint:disable-next-line:component-selector\n  selector: 'year-table',\n  exportAs: 'yearTable',\n  templateUrl: 'abstract-table.html'\n})\nexport class YearTableComponent extends AbstractTable {\n  override MAX_ROW = 4;\n  override MAX_COL = 3;\n\n  constructor(private dateHelper: DateHelperService, private i18n: VtsI18nService) {\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(\n          year.nativeDate,\n          this.i18n.getDateFormat()?.YEAR_TABLE_BODY || 'yyyy'\n        );\n        const isDisabled = this.isDisabledYear(year);\n        const cell: YearCell = {\n          trackByIndex: colIndex,\n          value: year.nativeDate,\n          isDisabled,\n          isSameDecade: yearNum >= startYear && yearNum <= endYear,\n          isSelected: yearNum === (this.value && this.value.getYear()),\n          content,\n          title: content,\n          classMap: {},\n          isLastCellInPanel: year.getYear() === endYear,\n          isFirstCellInPanel: year.getYear() === startYear,\n          cellRender: valueFunctionProp(this.cellRender!, year), // Customized content\n          fullCellRender: valueFunctionProp(this.fullCellRender!, year),\n          onClick: () => this.chooseYear(cell.value.getFullYear()), // don't use yearValue here,\n          onMouseEnter: () => this.cellHover.emit(year)\n        };\n\n        this.addCellProperty(cell, year);\n        row.dateCells.push(cell);\n        yearValue++;\n      }\n      years.push(row);\n    }\n    return years;\n  }\n\n  override getClassMap(cell: YearCell): { [key: string]: boolean } {\n    return {\n      ...super.getClassMap(cell),\n      [`vts-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 != undefined && endSelected == undefined;\n      cell.isEndSingle = startSelected == undefined && endSelected  != undefined;\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 {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\n\nimport { CandyDate } from '@ui-vts-kit/ng-vts/core/time';\nimport { FunctionProp } from '@ui-vts-kit/ng-vts/core/types';\nimport { VtsCalendarI18nInterface } from '@ui-vts-kit/ng-vts/i18n';\nimport { DisabledDateFn, VtsDateMode, RangePartType, SupportTimeOptions } from './standard-types';\nimport { PREFIX_CLASS } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // tslint:disable-next-line:component-selector\n  selector: 'inner-popup',\n  exportAs: 'innerPopup',\n  template: `\n    <div [class.vts-picker-datetime-panel]=\"showTimePicker\">\n      <div class=\"{{ prefixCls }}-{{ panelMode }}-panel\">\n        <ng-container [ngSwitch]=\"panelMode\">\n          <ng-container *ngSwitchCase=\"'decade'\">\n            <decade-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"enablePrevNext('prev', 'decade')\"\n              [showSuperNextBtn]=\"enablePrevNext('next', 'decade')\"\n              [showNextBtn]=\"false\"\n              [showPreBtn]=\"false\"\n              (panelModeChange)=\"panelModeChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            ></decade-header>\n            <div class=\"{{ prefixCls }}-body\">\n              <decade-table\n                [activeDate]=\"activeDate\"\n                [value]=\"value\"\n                [locale]=\"locale\"\n                (valueChange)=\"onChooseDecade($event)\"\n                [disabledDate]=\"disabledDate\"\n              ></decade-table>\n            </div>\n          </ng-container>\n          <ng-container *ngSwitchCase=\"'year'\">\n            <year-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"enablePrevNext('prev', 'year')\"\n              [showSuperNextBtn]=\"enablePrevNext('next', 'year')\"\n              [showNextBtn]=\"false\"\n              [showPreBtn]=\"false\"\n              (panelModeChange)=\"panelModeChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            ></year-header>\n            <div class=\"{{ prefixCls }}-body\">\n              <year-table\n                [activeDate]=\"activeDate\"\n                [value]=\"value\"\n                [locale]=\"locale\"\n                [disabledDate]=\"disabledDate\"\n                [selectedValue]=\"selectedValue\"\n                [hoverValue]=\"hoverValue\"\n                (valueChange)=\"onChooseYear($event)\"\n                (cellHover)=\"cellHover.emit($event)\"\n              ></year-table>\n            </div>\n          </ng-container>\n          <ng-container *ngSwitchCase=\"'month'\">\n            <month-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"enablePrevNext('prev', 'month')\"\n              [showSuperNextBtn]=\"enablePrevNext('next', 'month')\"\n              [showNextBtn]=\"false\"\n              [showPreBtn]=\"false\"\n              (panelModeChange)=\"panelModeChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            ></month-header>\n            <div class=\"{{ prefixCls }}-body\">\n              <month-table\n                [value]=\"value\"\n                [activeDate]=\"activeDate\"\n                [locale]=\"locale\"\n                [disabledDate]=\"disabledDate\"\n                [selectedValue]=\"selectedValue\"\n                [hoverValue]=\"hoverValue\"\n                (valueChange)=\"onChooseMonth($event)\"\n                (cellHover)=\"cellHover.emit($event)\"\n              ></month-table>\n            </div>\n          </ng-container>\n\n          <ng-container *ngSwitchCase=\"'quarter'\">\n            <quarter-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"enablePrevNext('prev', 'quarter')\"\n              [showSuperNextBtn]=\"enablePrevNext('next', 'quarter')\"\n              [showNextBtn]=\"false\"\n              [showPreBtn]=\"false\"\n              (panelModeChange)=\"panelModeChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            ></quarter-header>\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              ></quarter-table>\n            </div>\n          </ng-container>\n\n          <ng-container *ngSwitchDefault>\n            <date-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"\n                showWeek ? enablePrevNext('prev', 'week') : enablePrevNext('prev', 'date')\n              \"\n              [showSuperNextBtn]=\"\n                showWeek ? enablePrevNext('next', 'week') : enablePrevNext('next', 'date')\n              \"\n              [showPreBtn]=\"\n                showWeek ? enablePrevNext('prev', 'week') : enablePrevNext('prev', 'date')\n              \"\n              [showNextBtn]=\"\n                showWeek ? enablePrevNext('next', 'week') : enablePrevNext('next', 'date')\n              \"\n              (panelModeChange)=\"panelModeChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            ></date-header>\n            <div class=\"{{ prefixCls }}-body\">\n              <date-table\n                [locale]=\"locale\"\n                [showWeek]=\"showWeek\"\n                [value]=\"value\"\n                [activeDate]=\"activeDate\"\n                [disabledDate]=\"disabledDate\"\n                [cellRender]=\"dateRender\"\n                [showLunarDate]=\"showLunarDate\"\n                [selectedValue]=\"selectedValue\"\n                [hoverValue]=\"hoverValue\"\n                (valueChange)=\"onSelectDate($event)\"\n                (cellHover)=\"cellHover.emit($event)\"\n              ></date-table>\n            </div>\n          </ng-container>\n        </ng-container>\n      </div>\n      <ng-container *ngIf=\"showTimePicker && timeOptions\">\n        <vts-time-picker-panel\n          [vtsInDatePicker]=\"true\"\n          [ngModel]=\"value?.nativeDate\"\n          (ngModelChange)=\"onSelectTime($event)\"\n          [format]=\"$any(timeOptions.vtsFormat)\"\n          [vtsHourStep]=\"$any(timeOptions.vtsHourStep)\"\n          [vtsMinuteStep]=\"$any(timeOptions.vtsMinuteStep)\"\n          [vtsSecondStep]=\"$any(timeOptions.vtsSecondStep)\"\n          [vtsDisabledHours]=\"$any(timeOptions.vtsDisabledHours)\"\n          [vtsDisabledMinutes]=\"$any(timeOptions.vtsDisabledMinutes)\"\n          [vtsDisabledSeconds]=\"$any(timeOptions.vtsDisabledSeconds)\"\n          [vtsHideDisabledOptions]=\"!!timeOptions.vtsHideDisabledOptions\"\n          [vtsDefaultOpenValue]=\"$any(timeOptions.vtsDefaultOpenValue)\"\n          [vtsUse12Hours]=\"!!timeOptions.vtsUse12Hours\"\n          [vtsAddOn]=\"$any(timeOptions.vtsAddOn)\"\n          [vtsCustomShowTimeFormat]=\"$any(timeOptions.vtsCustomShowTimeFormat)\"\n        ></vts-time-picker-panel>\n        <!-- use [opened] to trigger time panel \\`initPosition()\\` -->\n      </ng-container>\n    </div>\n  `\n})\nexport class InnerPopupComponent implements OnChanges {\n  @Input() activeDate!: CandyDate;\n  @Input() endPanelMode!: VtsDateMode;\n  @Input() panelMode!: VtsDateMode;\n  @Input() showWeek!: boolean;\n  @Input() locale!: VtsCalendarI18nInterface;\n  @Input() showTimePicker!: boolean;\n  @Input() timeOptions!: SupportTimeOptions | null;\n  @Input() disabledDate?: DisabledDateFn;\n  @Input() dateRender?: string | TemplateRef<Date> | FunctionProp<TemplateRef<Date> | string>;\n  @Input() selectedValue!: CandyDate[]; // Range ONLY\n  @Input() hoverValue!: CandyDate[]; // Range ONLY\n  @Input() value!: CandyDate;\n  @Input() partType!: RangePartType;\n  @Input() showLunarDate: boolean = false;\n\n  @Output() readonly panelModeChange = new EventEmitter<VtsDateMode>();\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   * @param direction\n   * @param panelMode\n   */\n  enablePrevNext(direction: 'prev' | 'next', panelMode: VtsDateMode): boolean {\n    if (\n      !this.showTimePicker &&\n      panelMode === this.endPanelMode &&\n      ((this.partType === 'left' && direction === 'next') ||\n        (this.partType === 'right' && direction === 'prev'))\n    ) {\n      return false;\n    }\n    return true;\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.vtsDefaultOpenValue;\n\n    // Display timeValue when value is null\n    if (!this.value && timeValue) {\n      value.setHms(timeValue.getHours(), timeValue.getMinutes(), timeValue.getSeconds());\n    }\n\n    this.selectDate.emit(value);\n  }\n\n  onChooseMonth(value: CandyDate): void {\n    this.activeDate = this.activeDate.setMonth(value.getMonth());\n    if (this.endPanelMode === 'month') {\n      this.value = value;\n      this.selectDate.emit(value);\n    } else {\n      this.headerChange.emit(value);\n      this.panelModeChange.emit(this.endPanelMode);\n    }\n  }\n\n  onChooseQuarter(value: CandyDate): void {\n    this.activeDate = this.activeDate.setQuarter(value.getQuarter());\n    if (this.endPanelMode === 'quarter') {\n      this.value = value;\n      this.selectDate.emit(value);\n    } else {\n      this.headerChange.emit(value);\n      this.panelModeChange.emit(this.endPanelMode);\n    }\n  }\n\n  onChooseYear(value: CandyDate): void {\n    this.activeDate = this.activeDate.setYear(value.getYear());\n    if (this.endPanelMode === 'year') {\n      this.value = value;\n      this.selectDate.emit(value);\n    } else {\n      this.headerChange.emit(value);\n      this.panelModeChange.emit(this.endPanelMode);\n    }\n  }\n\n  onChooseDecade(value: CandyDate): void {\n    this.activeDate = this.activeDate.setYear(value.getYear());\n    if (this.endPanelMode === 'decade') {\n      this.value = value;\n      this.selectDate.emit(value);\n    } else {\n      this.headerChange.emit(value);\n      this.panelModeChange.emit('year');\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.activeDate && !changes.activeDate.currentValue) {\n      this.activeDate = new CandyDate();\n    }\n    // New Antd vesion has merged 'date' ant 'time' to one panel,\n    // So there is not 'time' panel\n    if (changes.panelMode && changes.panelMode.currentValue === 'time') {\n      this.panelMode = 'date';\n    }\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\n\nimport { Direction } from '@angular/cdk/bidi';\nimport {\n  CandyDate,\n  cloneDate,\n  CompatibleValue,\n  NormalizedMode,\n  SingleValue,\n  wrongSortOrder\n} from '@ui-vts-kit/ng-vts/core/time';\nimport { FunctionProp } from '@ui-vts-kit/ng-vts/core/types';\nimport { VtsCalendarI18nInterface } from '@ui-vts-kit/ng-vts/i18n';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DatePickerService } from './date-picker.service';\nimport {\n  CompatibleDate,\n  DisabledDateFn,\n  DisabledTimeFn,\n  DisabledTimePartial,\n  VtsDateMode,\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  // tslint:disable-next-line:component-selector\n  selector: 'date-range-popup',\n  exportAs: 'dateRangePopup',\n  template: `\n    <ng-container *ngIf=\"isRange; else singlePanel\">\n      <div *ngIf=\"opened\" class=\"{{ prefixCls }}-range-wrapper {{ prefixCls }}-date-range-wrapper\">\n        <div\n          class=\"{{ prefixCls }}-range-arrow\"\n          [style.left.px]=\"datePickerService?.arrowLeft\"\n        ></div>\n        <div class=\"{{ prefixCls }}-panel-container\">\n          <div class=\"{{ prefixCls }}-panels\">\n            <ng-container\n              *ngTemplateOutlet=\"tplInnerPopup; context: { partType: 'left' }\"\n            ></ng-container>\n            <ng-container\n              *ngTemplateOutlet=\"tplInnerPopup; context: { partType: 'right' }\"\n            ></ng-container>\n          </div>\n          <ng-container *ngTemplateOutlet=\"tplFooter\"></ng-container>\n        </div>\n      </div>\n    </ng-container>\n    <ng-template #singlePanel>\n      <div\n        *ngIf=\"inline || opened\"\n        class=\"{{ prefixCls }}-panel-container {{ showWeek ? prefixCls + '-week-number' : '' }} {{\n          hasTimePicker ? prefixCls + '-time' : ''\n        }} {{ isRange ? prefixCls + '-range' : '' }}\"\n      >\n        <div\n          class=\"{{ prefixCls }}-panel\"\n          [class.vts-picker-panel-rtl]=\"dir === 'rtl'\"\n          tabindex=\"-1\"\n        >\n          <!-- Single ONLY -->\n          <ng-container *ngTemplateOutlet=\"tplInnerPopup\"></ng-container>\n          <ng-container *ngTemplateOutlet=\"tplFooter\"></ng-container>\n        </div>\n      </div>\n    </ng-template>\n\n    <ng-template #tplInnerPopup let-partType=\"partType\">\n      <div\n        class=\"{{ prefixCls }}-panel\"\n        [class.vts-picker-panel-rtl]=\"dir === 'rtl'\"\n        [style.display]=\"show(partType) ? 'block' : 'none'\"\n      >\n        <!-- TODO(@wenqi73) [selectedValue] [hoverValue] types-->\n        <inner-popup\n          [showWeek]=\"showWeek\"\n          [endPanelMode]=\"getPanelMode(endPanelMode, partType)\"\n          [partType]=\"partType\"\n          [locale]=\"locale!\"\n          [showTimePicker]=\"hasTimePicker\"\n          [timeOptions]=\"getTimeOptions(partType)\"\n          [panelMode]=\"getPanelMode(panelMode, partType)\"\n          (panelModeChange)=\"onPanelModeChange($event, partType)\"\n          [activeDate]=\"getActiveDate(partType)\"\n          [value]=\"getValue(partType)\"\n          [disabledDate]=\"disabledDate\"\n          [dateRender]=\"dateRender\"\n          [selectedValue]=\"$any(datePickerService?.value)\"\n          [hoverValue]=\"$any(hoverValue)\"\n          [showLunarDate]=\"showLunarDate\"\n          (cellHover)=\"onCellHover($event)\"\n          (selectDate)=\"changeValueFromSelect($event, !showTime)\"\n          (selectTime)=\"onSelectTime($event, partType)\"\n          (headerChange)=\"onActiveDateChange($event, partType)\"\n        ></inner-popup>\n      </div>\n    </ng-template>\n\n    <ng-template #tplFooter>\n      <calendar-footer\n        *ngIf=\"hasFooter\"\n        [locale]=\"locale!\"\n        [isRange]=\"isRange\"\n        [showToday]=\"showToday\"\n        [showNow]=\"showNow\"\n        [hasTimePicker]=\"hasTimePicker\"\n        [okDisabled]=\"!isAllowed($any(datePickerService?.value))\"\n        [extraFooter]=\"extraFooter\"\n        [rangeQuickSelector]=\"ranges ? tplRangeQuickSelector : null\"\n        (clickOk)=\"onClickOk()\"\n        (clickToday)=\"onClickToday($event)\"\n      ></calendar-footer>\n    </ng-template>\n\n    <!-- Range ONLY: Range Quick Selector -->\n    <ng-template #tplRangeQuickSelector>\n      <li\n        *ngFor=\"let name of getObjectKeys(ranges)\"\n        class=\"{{ prefixCls }}-preset\"\n        (click)=\"onClickPresetRange(ranges![name])\"\n        (mouseenter)=\"onHoverPresetRange(ranges![name])\"\n        (mouseleave)=\"onPresetRangeMouseLeave()\"\n      >\n        <span class=\"vts-tag vts-tag-blue\">{{ name }}</span>\n      </li>\n    </ng-template>\n  `,\n  host: {\n    '(mousedown)': 'onMousedown($event)'\n  }\n})\nexport class DateRangePopupComponent implements OnInit, OnChanges, OnDestroy {\n  @Input() isRange!: boolean;\n  @Input() inline: boolean = false;\n  @Input() showWeek!: boolean;\n  @Input() locale!: VtsCalendarI18nInterface | undefined;\n  @Input() disabledDate?: DisabledDateFn;\n  @Input() disabledTime?: DisabledTimeFn; // This will lead to rebuild time options\n  @Input() showToday!: boolean;\n  @Input() showNow!: boolean;\n  @Input() showTime!: SupportTimeOptions | boolean;\n  @Input() extraFooter?: TemplateRef<void> | string;\n  @Input() ranges?: PresetRanges;\n  @Input() dateRender?: string | TemplateRef<Date> | FunctionProp<TemplateRef<Date> | string>;\n  @Input() panelMode!: VtsDateMode | VtsDateMode[];\n  @Input() defaultPickerValue!: CompatibleDate | undefined | null;\n  @Output() readonly panelModeChange = new EventEmitter<VtsDateMode | VtsDateMode[]>();\n  @Output() readonly calendarChange = new EventEmitter<CompatibleValue>();\n  @Output() readonly resultOk = new EventEmitter<void>(); // Emitted when done with date selecting\n  @Input() dir: Direction = 'ltr';\n  @Input() opened: Boolean = false;\n  @Input() showLunarDate: boolean = false;\n\n  prefixCls: string = PREFIX_CLASS;\n  originalPanelMode: VtsDateMode | VtsDateMode[] = 'date';\n  endPanelMode: VtsDateMode | VtsDateMode[] = 'date';\n  timeOptions: SupportTimeOptions | SupportTimeOptions[] | null = null;\n  hoverValue: SingleValue[] = []; // Range ONLY\n  checkedPartArr: boolean[] = [false, false];\n  destroy$ = new Subject();\n\n  get hasTimePicker(): boolean {\n    return !!this.showTime;\n  }\n\n  get hasFooter(): boolean {\n    return this.showToday || this.hasTimePicker || !!this.extraFooter || !!this.ranges;\n  }\n\n  constructor(public datePickerService: DatePickerService, public cdr: ChangeDetectorRef) {}\n\n  ngOnInit(): void {\n    this.datePickerService.valueChange$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n      this.updateActiveDate();\n      this.cdr.markForCheck();\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    // Parse showTime options\n    if (changes.showTime || changes.disabledTime) {\n      if (this.showTime) {\n        this.buildTimeOptions();\n      }\n    }\n    if (changes.panelMode) {\n      this.endPanelMode = this.panelMode;\n      this.originalPanelMode = this.panelMode;\n    }\n    if (changes.defaultPickerValue) {\n      this.updateActiveDate();\n    }\n    if (changes.opened) {\n      this.panelMode = this.originalPanelMode;\n      this.endPanelMode = this.originalPanelMode;\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  updateActiveDate(): void {\n    const activeDate = this.datePickerService.hasValue()\n      ? this.datePickerService.value\n      : this.datePickerService.makeValue(this.defaultPickerValue!);\n    this.datePickerService.setActiveDate(\n      activeDate,\n      this.hasTimePicker,\n      this.getPanelMode(this.endPanelMode) as NormalizedMode\n    );\n  }\n\n  init(): void {\n    this.checkedPartArr = [false, false];\n    this.updateActiveDate();\n  }\n\n  /**\n   * Prevent input losing focus when click panel\n   * @param event\n   */\n  onMousedown(event: MouseEvent): void {\n    event.preventDefault();\n  }\n\n  onClickOk(): void {\n    const inputIndex = { left: 0, right: 1 }[this.datePickerService.activeInput];\n    const value: CandyDate = this.isRange\n      ? (this.datePickerService.value as CandyDate[])[inputIndex]\n      : (this.datePickerService.value as CandyDate);\n    this.changeValueFromSelect(value);\n    this.resultOk.emit();\n  }\n\n  onClickToday(value: CandyDate): void {\n    this.changeValueFromSelect(value, !this.showTime);\n  }\n\n  onCellHover(value: CandyDate): void {\n    if (!this.isRange) {\n      return;\n    }\n    const otherInputIndex = { left: 1, right: 0 }[this.datePickerService.activeInput];\n    const base = (this.datePickerService.value as CandyDate[])[otherInputIndex]!;\n    if (base) {\n      if (base.isBeforeDay(value)) {\n        this.hoverValue = [base, value];\n      } else {\n        this.hoverValue = [value, base];\n      }\n    }\n  }\n\n  onPanelModeChange(mode: VtsDateMode, partType?: RangePartType): void {\n    if (this.isRange) {\n      const index = this.datePickerService.getActiveIndex(partType);\n      if (index === 0) {\n        this.panelMode = [mode, this.panelMode[1]] as VtsDateMode[];\n      } else {\n        this.panelMode = [this.panelMode[0], mode] as VtsDateMode[];\n      }\n    } else {\n      this.panelMode = mode;\n    }\n    this.panelModeChange.emit(this.panelMode);\n  }\n\n  onActiveDateChange(value: CandyDate, partType: RangePartType): void {\n    if (this.isRange) {\n      const activeDate: SingleValue[] = [];\n      activeDate[this.datePickerService.getActiveIndex(partType)] = value;\n      this.datePickerService.setActiveDate(\n        activeDate,\n        this.hasTimePicker,\n        this.getPanelMode(this.endPanelMode, partType) as NormalizedMode\n      );\n    } else {\n      this.datePickerService.setActiveDate(value);\n    }\n  }\n\n  onSelectTime(value: CandyDate, partType?: RangePartType): void {\n    if (this.isRange) {\n      const newValue = cloneDate(this.datePickerService.value) as SingleValue[];\n      const index = this.datePickerService.getActiveIndex(partType);\n      newValue[index] = this.overrideHms(value, newValue[index]);\n      this.datePickerService.setValue(newValue);\n    } else {\n      const newValue = this.overrideHms(value, this.datePickerService.value as CandyDate);\n      this.datePickerService.setValue(newValue); // If not select a date currently, use today\n    }\n    this.datePickerService.inputPartChange$.next();\n    this.buildTimeOptions();\n  }\n\n  changeValueFromSelect(value: CandyDate, emitValue: boolean = true): void {\n    if (this.isRange) {\n      const selectedValue: SingleValue[] = cloneDate(this.datePickerService.value) as CandyDate[];\n      let checkedPart: RangePartType = this.datePickerService.activeInput;\n      let nextPart: RangePartType = checkedPart;\n\n      if (this.datePickerService.isRangeSingleMode) {\n        if (checkedPart == 'right') {\n          if (!selectedValue[this.datePickerService.getActiveIndex('left')]) {\n            checkedPart = 'left';\n            nextPart = checkedPart;\n          } else {\n            const leftValue = selectedValue[this.datePickerService.getActiveIndex('left')]\n              ?.nativeDate as Date;\n            if (this.datePickerService.compareDate(value.nativeDate, leftValue) == -1) {\n              checkedPart = 'left';\n              nextPart = checkedPart;\n            }\n          }\n        }\n\n        if (checkedPart == 'left') {\n          selectedValue[this.datePickerService.getActiveIndex('right')] = null;\n        }\n      }\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 (\n            this.isBothAllowed(selectedValue) &&\n            this.checkedPartArr[0] &&\n            this.checkedPartArr[1]\n          ) {\n            this.clearHoverValue();\n            this.datePickerService.emitValue$.next();\n          }\n        } else {\n          /**\n           * if sort order is wrong, clear the other part's value\n           */\n          if (wrongSortOrder(selectedValue)) {\n            nextPart = this.reversedPart(checkedPart);\n            selectedValue[this.datePickerService.getActiveIndex(nextPart)] = 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 (\n            this.isBothAllowed(selectedValue) &&\n            this.checkedPartArr[0] &&\n            this.checkedPartArr[1]\n          ) {\n            this.calendarChange.emit(selectedValue);\n            this.clearHoverValue();\n            this.datePickerService.emitValue$.next();\n          } else if (this.isAllowed(selectedValue)) {\n            nextPart = this.reversedPart(checkedPart);\n            this.calendarChange.emit([value.clone()]);\n          }\n        }\n      } else {\n        this.datePickerService.setValue(selectedValue);\n      }\n      this.datePickerService.inputPartChange$.next(nextPart);\n    } else {\n      this.datePickerService.setValue(value);\n      this.datePickerService.inputPartChange$.next();\n\n      if (emitValue && this.isAllowed(value)) {\n        this.datePickerService.emitValue$.next();\n      }\n    }\n  }\n\n  reversedPart(part: RangePartType): RangePartType {\n    return part === 'left' ? 'right' : 'left';\n  }\n\n  getPanelMode(panelMode: VtsDateMode | VtsDateMode[], partType?: RangePartType): VtsDateMode {\n    if (this.isRange) {\n      return panelMode[this.datePickerService.getActiveIndex(partType)] as VtsDateMode;\n    } else {\n      return panelMode as VtsDateMode;\n    }\n  }\n\n  // Get single value or part value of a range\n  getValue(partType?: RangePartType): CandyDate {\n    if (this.isRange) {\n      return ((this.datePickerService.value as CandyDate[]) || [])[\n        this.datePickerService.getActiveIndex(partType)\n      ];\n    } else {\n      return this.datePickerService.value as CandyDate;\n    }\n  }\n\n  getActiveDate(partType?: RangePartType): CandyDate {\n    if (this.isRange) {\n      return (this.datePickerService.activeDate as CandyDate[])[\n        this.datePickerService.getActiveIndex(partType)\n      ];\n    } else {\n      return this.datePickerService.activeDate as CandyDate;\n    }\n  }\n\n  disabledStartTime: DisabledTimeFn = (value: Date | Date[]) => {\n    return this.disabledTime && this.disabledTime(value, 'start');\n  };\n\n  disabledEndTime: DisabledTimeFn = (value: Date | Date[]) => {\n    return this.disabledTime && this.disabledTime(value, 'end');\n  };\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\n        ? this.isBothAllowed(value as CandyDate[])\n        : 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(\n          showTime,\n          this.datePickerService.value as CandyDate\n        );\n      }\n    } else {\n      this.timeOptions = null;\n    }\n  }\n\n  private overrideTimeOptions(\n    origin: SupportTimeOptions,\n    value: CandyDate,\n    partial?: DisabledTimePartial\n  ): SupportTimeOptions {\n    let disabledTimeFn;\n    if (partial) {\n      disabledTimeFn = 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    // tslint:disable-next-line:no-parameter-reassignment\n    newValue = newValue || new CandyDate();\n    // tslint:disable-next-line:no-parameter-reassignment\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 { ESCAPE } from '@angular/cdk/keycodes';\nimport {\n  CdkConnectedOverlay,\n  CdkOverlayOrigin,\n  ConnectedOverlayPositionChange,\n  ConnectionPositionPair,\n  HorizontalConnectionPos,\n  VerticalConnectionPos\n} from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  QueryList,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewChildren,\n  ViewEncapsulation\n} from '@angular/core';\nimport { slideMotion } from '@ui-vts-kit/ng-vts/core/animation';\nimport { VtsResizeObserver } from '@ui-vts-kit/ng-vts/cdk/resize-observer';\n\nimport { Direction } from '@angular/cdk/bidi';\nimport { CandyDate, CompatibleValue, wrongSortOrder } from '@ui-vts-kit/ng-vts/core/time';\nimport { NgStyleInterface, VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\nimport { DateHelperService } from '@ui-vts-kit/ng-vts/i18n';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DatePickerService } from './date-picker.service';\nimport { DateRangePopupComponent } from './date-range-popup.component';\nimport { RangePartType } from './standard-types';\nimport { PREFIX_CLASS, checkStringValidFormatWithoutSlash } from './util';\nimport {\n  DATE_PICKER_POSITION_MAP,\n  DEFAULT_DATE_PICKER_POSITIONS\n} from '@ui-vts-kit/ng-vts/core/overlay';\n\nexport type Placement = 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  selector: '[vts-picker]',\n  exportAs: 'vtsPicker',\n  template: `\n    <ng-container *ngIf=\"!inline; else inlineMode\">\n      <!-- Content of single picker -->\n      <div *ngIf=\"!isRange\" class=\"{{ prefixCls }}-input\">\n        <input\n          #pickerInput\n          [attr.id]=\"vtsId\"\n          [class.vts-input-disabled]=\"disabled\"\n          [disabled]=\"disabled\"\n          [readOnly]=\"inputReadOnly\"\n          [(ngModel)]=\"inputValue\"\n          placeholder=\"{{ getPlaceholder() }}\"\n          [size]=\"inputSize\"\n          (focus)=\"onFocus($event)\"\n          (blur)=\"onBlur($event)\"\n          (ngModelChange)=\"onInputChange($event)\"\n          (keyup.enter)=\"onKeyupEnter($event)\"\n        />\n        <ng-container *ngTemplateOutlet=\"tplRightRest\"></ng-container>\n      </div>\n\n      <!-- Content of range picker (unused) -->\n      <ng-container *ngIf=\"isRange && !isRangeSingleMode\">\n        <div class=\"{{ prefixCls }}-input\">\n          <ng-container\n            *ngTemplateOutlet=\"tplRangeInput; context: { partType: 'left' }\"\n          ></ng-container>\n        </div>\n        <div #separatorElement class=\"{{ prefixCls }}-range-separator\">\n          <span class=\"{{ prefixCls }}-separator\">\n            <ng-container *ngIf=\"separator; else defaultSeparator\">\n              {{ separator }}\n            </ng-container>\n          </span>\n          <ng-template #defaultSeparator>\n            <i vts-icon vtsType=\"ArrowRightAltDoutone\"></i>\n          </ng-template>\n        </div>\n        <div class=\"{{ prefixCls }}-input\">\n          <ng-container\n            *ngTemplateOutlet=\"tplRangeInput; context: { partType: 'right' }\"\n          ></ng-container>\n        </div>\n        <ng-container *ngTemplateOutlet=\"tplRightRest\"></ng-container>\n      </ng-container>\n\n      <!-- Content of range single picker -->\n      <div *ngIf=\"isRange && isRangeSingleMode\" class=\"{{ prefixCls }}-input\">\n        <input\n          #rangePickerInput\n          [attr.id]=\"vtsId\"\n          [class.vts-input-disabled]=\"disabled\"\n          [disabled]=\"disabled\"\n          [readOnly]=\"inputReadOnly\"\n          [(ngModel)]=\"inputValue\"\n          placeholder=\"{{ getPlaceholder() }}\"\n          [size]=\"inputSize\"\n          (focus)=\"onFocus($event, 'left')\"\n          (blur)=\"onBlur($event)\"\n          (ngModelChange)=\"onInputChange($event)\"\n          (keyup.enter)=\"onKeyupEnter($event)\"\n        />\n        <ng-container *ngTemplateOutlet=\"tplRightRest\"></ng-container>\n      </div>\n    </ng-container>\n\n    <!-- Input for Range ONLY -->\n    <ng-template #tplRangeInput let-partType=\"partType\">\n      <input\n        #rangePickerInput\n        [disabled]=\"disabled\"\n        [readOnly]=\"inputReadOnly\"\n        [size]=\"inputSize\"\n        (click)=\"onClickInputBox($event)\"\n        (blur)=\"onBlur($event)\"\n        (focus)=\"onFocus($event, partType)\"\n        (keyup.enter)=\"onKeyupEnter($event)\"\n        [(ngModel)]=\"inputValue[datePickerService.getActiveIndex(partType)]\"\n        (ngModelChange)=\"onInputChange($event)\"\n        placeholder=\"{{ getPlaceholder(partType) }}\"\n      />\n    </ng-template>\n\n    <!-- Right operator icons -->\n    <ng-template #tplRightRest>\n      <div class=\"{{ prefixCls }}-active-bar\" [ngStyle]=\"activeBarStyle\"></div>\n      <span *ngIf=\"showClear()\" class=\"{{ prefixCls }}-clear\" (click)=\"onClickClear($event)\">\n        <i vts-icon vtsType=\"Close\"></i>\n      </span>\n      <span class=\"{{ prefixCls }}-suffix\">\n        <ng-container *vtsStringTemplateOutlet=\"suffixIcon; let suffixIcon\">\n          <i (click)=\"showOverlay()\" vts-icon [vtsType]=\"suffixIcon\"></i>\n        </ng-container>\n      </span>\n    </ng-template>\n\n    <ng-template #inlineMode>\n      <div\n        class=\"{{ prefixCls }}-dropdown {{ dropdownClassName }}\"\n        [class.vts-picker-dropdown-rtl]=\"dir === 'rtl'\"\n        [class.vts-picker-dropdown-placement-bottomLeft]=\"\n          currentPositionY === 'bottom' && currentPositionX === 'start'\n        \"\n        [class.vts-picker-dropdown-placement-topLeft]=\"\n          currentPositionY === 'top' && currentPositionX === 'start'\n        \"\n        [class.vts-picker-dropdown-placement-bottomRight]=\"\n          currentPositionY === 'bottom' && currentPositionX === 'end'\n        \"\n        [class.vts-picker-dropdown-placement-topRight]=\"\n          currentPositionY === 'top' && currentPositionX === 'end'\n        \"\n        [class.vts-picker-dropdown-range]=\"isRange\"\n        [class.vts-picker-active-left]=\"datePickerService.activeInput === 'left'\"\n        [class.vts-picker-active-right]=\"datePickerService.activeInput === 'right'\"\n        [ngStyle]=\"popupStyle\"\n      >\n        <!-- Compatible for overlay that not support offset dynamically and immediately -->\n        <ng-content></ng-content>\n      </div>\n    </ng-template>\n\n    <!-- Overlay -->\n    <ng-template\n      cdkConnectedOverlay\n      vtsConnectedOverlay\n      [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n      [cdkConnectedOverlayOrigin]=\"origin\"\n      [cdkConnectedOverlayOpen]=\"realOpenState\"\n      [cdkConnectedOverlayPositions]=\"overlayPositions\"\n      [cdkConnectedOverlayTransformOriginOn]=\"'.vts-picker-wrapper'\"\n      (positionChange)=\"onPositionChange($event)\"\n      (detach)=\"close()\"\n      (overlayKeydown)=\"onOverlayKeydown($event)\"\n      (overlayOutsideClick)=\"onClickOutside($event)\"\n    >\n      <div\n        class=\"vts-picker-wrapper\"\n        [vtsNoAnimation]=\"noAnimation\"\n        [@slideMotion]=\"'enter'\"\n        (@slideMotion.done)=\"onAnimateEnd()\"\n      >\n        <ng-container *ngTemplateOutlet=\"inlineMode\"></ng-container>\n      </div>\n    </ng-template>\n  `,\n  animations: [slideMotion],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VtsPickerComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n  @Input() noAnimation: boolean = false;\n  @Input() isRange: boolean = false;\n  @Input() isRangeSingleMode: boolean = false;\n  @Input() open: boolean | undefined = undefined;\n  @Input() disabled: boolean = false;\n  @Input() inputReadOnly: boolean = false;\n  @Input() inline: boolean = false;\n  @Input() placeholder!: string | string[];\n  @Input() allowClear?: boolean;\n  @Input() autoFocus?: boolean;\n  @Input() format!: string;\n  @Input() separator?: string;\n  @Input() popupStyle: NgStyleInterface | null = null;\n  @Input() dropdownClassName?: string;\n  @Input() suffixIcon?: string | TemplateRef<VtsSafeAny>;\n  @Input() dir: Direction = 'ltr';\n  @Input() vtsId: string | null = null;\n  @Input() hasBackdrop = false;\n  @Input() vtsPlacement: Placement = 'bottomLeft';\n  @Input() keepInvalidInput: boolean = false;\n\n  @Output() readonly focusChange = new EventEmitter<boolean>();\n  @Output() readonly valueChange = new EventEmitter<CandyDate | CandyDate[] | null>();\n  @Output() readonly inputValidChange = new EventEmitter<boolean>();\n  @Output() readonly openChange = new EventEmitter<boolean>(); // Emitted when overlay's open state change\n\n  @ViewChild(CdkConnectedOverlay, { static: false })\n  cdkConnectedOverlay?: CdkConnectedOverlay;\n  @ViewChild('separatorElement', { static: false })\n  separatorElement?: ElementRef;\n  @ViewChild('pickerInput', { static: false })\n  pickerInput?: ElementRef<HTMLInputElement>;\n  @ViewChildren('rangePickerInput') rangePickerInputs?: QueryList<ElementRef<HTMLInputElement>>;\n  @ContentChild(DateRangePopupComponent) panel!: DateRangePopupComponent;\n\n  origin: CdkOverlayOrigin;\n  document: Document;\n  inputSize: number = 12;\n  inputWidth?: number;\n  destroy$ = new Subject();\n  prefixCls = PREFIX_CLASS;\n  inputValue!: VtsSafeAny;\n  activeBarStyle: object = {};\n  overlayOpen: boolean = false; // Available when \"open\"=undefined\n  overlayPositions: ConnectionPositionPair[] = [...DEFAULT_DATE_PICKER_POSITIONS];\n  currentPositionX: HorizontalConnectionPos = 'start';\n  currentPositionY: VerticalConnectionPos = 'bottom';\n  isInputValueValid: boolean = true;\n\n  get realOpenState(): boolean {\n    // The value that really decide the open state of overlay\n    return this.isOpenHandledByUser() ? !!this.open : this.overlayOpen;\n  }\n\n  constructor(\n    private elementRef: ElementRef,\n    private dateHelper: DateHelperService,\n    private cdr: ChangeDetectorRef,\n    private platform: Platform,\n    private vtsResizeObserver: VtsResizeObserver,\n    public datePickerService: DatePickerService,\n    @Inject(DOCUMENT) doc: VtsSafeAny\n  ) {\n    this.document = doc;\n    this.origin = new CdkOverlayOrigin(this.elementRef);\n  }\n\n  ngOnInit(): void {\n    this.inputValue = this.isRange ? ['', ''] : '';\n    this.datePickerService.valueChange$.pipe(takeUntil(this.destroy$)).subscribe(() => {      \n      this.isInputValueValid = this.datePickerService.value != null;\n      this.inputValidChange.next(this.isInputValueValid);\n      this.updateInputValue();\n    });\n  }\n\n  ngAfterViewInit(): void {\n    if (this.autoFocus) {\n      this.focus();\n    }\n\n    if (this.isRange && this.platform.isBrowser) {\n      this.vtsResizeObserver\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      this.panel?.updateActiveDate();\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.format?.currentValue !== changes.format?.previousValue) {\n      this.inputSize = Math.max(10, this.format.length) + 2;\n      this.updateInputValue();\n    }\n\n    if (changes.vtsPlacement) {\n      this.setPlacement(this.vtsPlacement);\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 = {\n        ...baseStyle,\n        right: `${this.datePickerService.arrowLeft}px`\n      };\n    } else {\n      this.activeBarStyle = {\n        ...baseStyle,\n        left: `${this.datePickerService.arrowLeft}px`\n      };\n    }\n\n    this.panel?.cdr.markForCheck();\n    this.cdr.markForCheck();\n  }\n\n  getInput(partType?: RangePartType): HTMLInputElement | undefined {\n    if (this.inline) {\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    this.focusChange.emit(true);\n    if (partType) {\n      this.datePickerService.inputPartChange$.next(partType);\n    }\n  }\n\n  onBlur(event: FocusEvent): void {\n    event.preventDefault();\n    this.focusChange.emit(false);\n  }\n\n  // Show overlay content\n  showOverlay(): void {\n    if (this.inline) {\n      return;\n    }\n    if (!this.isOpenHandledByUser() && !this.realOpenState && !this.disabled) {\n      this.updateInputWidthAndArrowLeft();\n      this.overlayOpen = true;\n      this.focus();\n      this.panel.init();\n      this.openChange.emit(true);\n      this.cdr.markForCheck();\n    }\n  }\n\n  hideOverlay(): void {\n    if (this.inline) {\n      return;\n    }\n    if (!this.isOpenHandledByUser() && this.realOpenState) {\n      this.overlayOpen = false;\n      this.openChange.emit(false);\n    }\n  }\n\n  showClear(): boolean {\n    return !this.disabled && !this.isEmptyValue(this.datePickerService.value) && !!this.allowClear;\n  }\n\n  onClickInputBox(event: MouseEvent): void {\n    event.stopPropagation();\n    this.focus();\n    // if (!this.isOpenHandledByUser()) {\n    //   this.showOverlay();\n    // }\n  }\n\n  onClickOutside(event: MouseEvent): void {\n    if (this.elementRef.nativeElement.contains(event.target)) {\n      return;\n    }\n\n    if (this.panel.isAllowed(this.datePickerService.value!, true)) {\n      if (\n        Array.isArray(this.datePickerService.value) &&\n        wrongSortOrder(this.datePickerService.value)\n      ) {\n        const index = this.datePickerService.getActiveIndex(this.datePickerService.activeInput);\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.hideOverlay();\n    }\n  }\n\n  close(): void {\n    this.hideOverlay();\n  }\n\n  onOverlayKeydown(event: KeyboardEvent): void {\n    if (event.keyCode === ESCAPE) {\n      this.datePickerService.setValue(this.datePickerService.initialValue!);\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 \"vts-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.setValue(this.isRange ? [] : null);\n    this.datePickerService.emitValue$.next();\n\n    // if DONT use restoreValueOnValid = false, we need to clear input value manually\n    if(this.keepInvalidInput) this.inputValue = this.isRange ? ['', ''] : '';\n  }\n\n  updateInputValue(): void {\n    const newValue = this.datePickerService.value;\n    if (this.isRange) {\n      if (this.datePickerService.isRangeSingleMode) {\n        this.inputValue = newValue\n          ? (newValue as CandyDate[]).map(v => this.formatValue(v)).join(' - ')\n          : ['', ''];\n      } else {\n        this.inputValue = newValue\n          ? (newValue as CandyDate[]).map(v => this.formatValue(v))\n          : ['', ''];\n      }\n    } else {\n      // if the input value is valid, OR (it is invalid and we dont want to keep that invalid value) => modify the input value as the current date\n      if(this.isInputValueValid || (!this.isInputValueValid && !this.keepInvalidInput)){\n        this.inputValue = this.formatValue(newValue as CandyDate);\n      }\n    }\n    this.cdr.markForCheck();\n  }\n\n  formatValue(value: CandyDate): string {\n    return this.dateHelper.format(value && (value as CandyDate).nativeDate, this.format);\n  }\n\n  onInputChange(value: string, isEnter: boolean = false): void {\n    /**\n     * in IE11 focus/blur will trigger ngModelChange if has placeholder\n     * so we forbidden IE11 to open panel through input change\n     */\n    if (\n      !this.platform.TRIDENT &&\n      this.document.activeElement === this.getInput(this.datePickerService.activeInput) &&\n      !this.realOpenState\n    ) {\n      this.showOverlay();\n    }\n\n    const date = this.checkValidDate(value);\n    if (date) {\n      this.panel.changeValueFromSelect(date, isEnter);\n      this.isInputValueValid = true;\n    }\n    else if(checkStringValidFormatWithoutSlash(value)) {\n      let day = value.slice(0,2);\n      let month = value.slice(2,4);\n      let year = value.slice(4,8);\n      this.inputValue = `${day}/${month}/${year}`;\n      let newDate = this.checkValidDate(this.inputValue);\n      if(newDate){\n        this.panel.changeValueFromSelect(newDate, isEnter);\n        this.isInputValueValid = true;\n      }\n      else {        \n        this.isInputValueValid = false;\n      }\n    }\n    else {\n      this.isInputValueValid = false;\n    }\n    this.inputValidChange.next(this.isInputValueValid);\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.format));\n\n    if (!date.isValid() || value !== this.dateHelper.format(date.nativeDate, this.format)) {\n      return null;\n    }\n\n    return date;\n  }\n\n  getPlaceholder(partType?: RangePartType): string {\n    return this.isRange\n      ? this.placeholder[this.datePickerService.getActiveIndex(partType!)]\n      : (this.placeholder 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.open !== undefined;\n  }\n\n  // Handle wrong position on open\n  onAnimateEnd() {\n    this.cdkConnectedOverlay?.overlayRef?.updatePosition();\n  }\n\n  private setPlacement(placement: Placement): 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 {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Host,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  Renderer2,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { VtsNoAnimationDirective } from '@ui-vts-kit/ng-vts/core/no-animation';\nimport { CandyDate, cloneDate, CompatibleValue } from '@ui-vts-kit/ng-vts/core/time';\nimport {\n  BooleanInput,\n  FunctionProp,\n  VtsSafeAny,\n  OnChangeType,\n  OnTouchedType\n} from '@ui-vts-kit/ng-vts/core/types';\nimport { InputBoolean, toBoolean, valueFunctionProp } from '@ui-vts-kit/ng-vts/core/util';\nimport {\n  DateHelperService,\n  VtsDatePickerI18nInterface,\n  VtsDatePickerLangI18nInterface,\n  VtsI18nService\n} from '@ui-vts-kit/ng-vts/i18n';\nimport { BehaviorSubject, of, Subject } from 'rxjs';\nimport { debounceTime, delay, switchMap, takeUntil } from 'rxjs/operators';\nimport { DatePickerService } from './date-picker.service';\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { VtsConfigKey, VtsConfigService, WithConfig } from '@ui-vts-kit/ng-vts/core/config';\nimport { Placement, VtsPickerComponent } from './picker.component';\nimport {\n  CompatibleDate,\n  DisabledTimeFn,\n  VtsDateMode,\n  PresetRanges,\n  SupportTimeOptions\n} from './standard-types';\nimport { AnimationDuration } from '@ui-vts-kit/ng-vts/core/animation';\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 beacuse the overlay can't get the height/width of it's content)\nconst VTS_CONFIG_MODULE_NAME: VtsConfigKey = 'datePicker';\n\nexport type VtsDatePickerSizeType = 'xl' | 'lg' | 'md' | 'sm';\nexport type VtsPlacement = Placement;\n\n/**\n * The base picker for all common APIs\n */\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector:\n    'vts-date-picker,vts-week-picker,vts-month-picker,vts-year-picker,vts-range-picker,vts-range-picker-single',\n  exportAs: 'vtsDatePicker',\n  template: `\n    <div\n      vts-picker\n      style=\"display: inherit; align-items: center; width: 100%;\"\n      [id]=\"vtsId\"\n      [isRange]=\"isRange\"\n      [isRangeSingleMode]=\"isRangeSingleMode\"\n      [open]=\"vtsOpen\"\n      [dir]=\"dir\"\n      [separator]=\"vtsSeparator\"\n      [disabled]=\"vtsDisabled\"\n      [inputReadOnly]=\"vtsInputReadOnly\"\n      [inline]=\"vtsInline\"\n      [format]=\"vtsFormat\"\n      [allowClear]=\"vtsAllowClear\"\n      [autoFocus]=\"vtsAutoFocus\"\n      [placeholder]=\"vtsPlaceHolder\"\n      [dropdownClassName]=\"vtsDropdownClassName\"\n      [class.vts-picker-dropdown-rtl]=\"dir === 'rtl'\"\n      [popupStyle]=\"vtsPopupStyle\"\n      [noAnimation]=\"!!noAnimation?.vtsNoAnimation\"\n      [suffixIcon]=\"vtsSuffixIcon\"\n      [hasBackdrop]=\"vtsBackdrop\"\n      (openChange)=\"onOpenChange($event)\"\n      (focusChange)=\"onFocusChange($event)\"\n      [vtsId]=\"vtsId\"\n      [vtsPlacement]=\"vtsPlacement\"\n      [keepInvalidInput]=\"vtsKeepInvalidInput\"\n      (inputValidChange)=\"onInputValidChange($event)\"\n    >\n      <date-range-popup\n        [isRange]=\"isRange\"\n        [inline]=\"vtsInline\"\n        [defaultPickerValue]=\"vtsDefaultPickerValue\"\n        [showWeek]=\"vtsMode === 'week'\"\n        [panelMode]=\"panelMode\"\n        (panelModeChange)=\"onPanelModeChange($event)\"\n        (calendarChange)=\"onCalendarChange($event)\"\n        [locale]=\"vtsLocale?.lang!\"\n        [showToday]=\"vtsMode === 'date' && vtsShowToday && !isRange\"\n        [showNow]=\"vtsMode === 'date' && vtsShowNow && !isRange\"\n        [showTime]=\"vtsShowTime\"\n        [dateRender]=\"vtsDateRender\"\n        [disabledDate]=\"vtsDisabledDate\"\n        [showLunarDate]=\"vtsShowLunarDate\"\n        [disabledTime]=\"vtsDisabledTime\"\n        [extraFooter]=\"extraFooter\"\n        [ranges]=\"vtsRanges\"\n        [dir]=\"dir\"\n        (resultOk)=\"onResultOk()\"\n        [opened]=\"panelOpen\"\n      ></date-range-popup>\n    </div>\n  `,\n  host: {\n    '[class.vts-picker-range]': `isRange`,\n    '[class.vts-picker-range-single]': `isRangeSingleMode`,\n    '[class.vts-picker-panel-open]': `panelOpen`,\n    '[class.vts-picker-xl]': `vtsSize === 'xl'`,\n    '[class.vts-picker-lg]': `vtsSize === 'lg'`,\n    '[class.vts-picker-md]': `vtsSize === 'md'`,\n    '[class.vts-picker-sm]': `vtsSize === 'sm'`,\n    '[class.vts-picker-disabled]': `vtsDisabled`,\n    '[class.vts-picker-rtl]': `dir === 'rtl'`,\n    '[class.vts-picker-borderless]': `vtsBorderless`,\n    '[class.vts-picker-inline]': `vtsInline`,\n    '(click)': 'picker.onClickInputBox($event)'\n  },\n  styles: ['.vts-picker { width: 100%; }'],\n  providers: [\n    DatePickerService,\n    {\n      provide: NG_VALUE_ACCESSOR,\n      multi: true,\n      useExisting: forwardRef(() => VtsDatePickerComponent)\n    }\n  ]\n})\nexport class VtsDatePickerComponent implements OnInit, OnChanges, OnDestroy, ControlValueAccessor {\n  readonly _vtsModuleName: VtsConfigKey = VTS_CONFIG_MODULE_NAME;\n  static ngAcceptInputType_vtsAllowClear: BooleanInput;\n  static ngAcceptInputType_vtsAutoFocus: BooleanInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_vtsDisabled: BooleanInput;\n  static ngAcceptInputType_vtsBorderless: BooleanInput;\n  static ngAcceptInputType_vtsInputReadOnly: BooleanInput;\n  static ngAcceptInputType_vtsInline: BooleanInput;\n  static ngAcceptInputType_vtsOpen: BooleanInput;\n  static ngAcceptInputType_vtsShowToday: BooleanInput;\n  static ngAcceptInputType_vtsShowNow: BooleanInput;\n  static ngAcceptInputType_vtsKeepInvalidInput: BooleanInput;\n  static ngAcceptInputType_vtsMode:\n    | VtsDateMode\n    | VtsDateMode[]\n    | string\n    | string[]\n    | null\n    | undefined;\n  static ngAcceptInputType_vtsShowTime: BooleanInput | SupportTimeOptions | null | undefined;\n\n  isRange: boolean = false; // Indicate whether the value is a range value\n  isRangeSingleMode: boolean = false;\n  focused: boolean = false;\n  extraFooter?: TemplateRef<VtsSafeAny> | string;\n  dir: Direction = 'ltr';\n  panelOpen: Boolean = false;\n\n  public panelMode: VtsDateMode | VtsDateMode[] = 'date';\n  private destroyed$: Subject<void> = new Subject();\n  private isCustomPlaceHolder: boolean = true;\n  private isCustomFormat: boolean = false;\n  private showTime: SupportTimeOptions | boolean = false;\n  private disabledTime?: DisabledTimeFn;\n  private disabledDate?: (d: Date) => boolean;\n  private openChangeSubject = new BehaviorSubject<boolean>(false);\n\n  // --- Common API\n  @Input() @InputBoolean() vtsAllowClear: boolean = true;\n  @Input() @InputBoolean() vtsAutoFocus: boolean = false;\n  @Input() @InputBoolean() set disabled(value: boolean) {\n    this.vtsDisabled = value;\n  }\n  @Input() @InputBoolean() vtsDisabled: boolean = false;\n  @Input() @InputBoolean() vtsBorderless: boolean = false;\n  @Input() @InputBoolean() vtsInputReadOnly: boolean = false;\n  @Input() @InputBoolean() vtsInline: boolean = false;\n  @Input() @InputBoolean() vtsOpen?: boolean;\n  @Input()\n  set vtsDisabledDate(value: ((d: Date) => boolean) | undefined) {\n    // this.disabledDate = this.vtsMode == 'date' ? value : undefined;\n    this.disabledDate = value;\n  }\n  get vtsDisabledDate() {\n    return this.disabledDate;\n  }\n\n  @Input() vtsLocale!: VtsDatePickerI18nInterface;\n  @Input() vtsPlaceHolder: string | string[] = ''; // isCustomPlaceHolder force to true\n  @Input() vtsPopupStyle: object = POPUP_STYLE_PATCH;\n  @Input() vtsDropdownClassName?: string;\n  @Input() vtsSize: VtsDatePickerSizeType = 'md';\n  @Input() vtsFormat!: string;\n  @Input() vtsDateRender?:\n    | TemplateRef<VtsSafeAny>\n    | string\n    | FunctionProp<TemplateRef<Date> | string>;\n  @Input()\n  set vtsDisabledTime(value: DisabledTimeFn | undefined) {\n    // this.disabledTime = this.vtsMode == 'date' ? value : undefined;\n    this.disabledTime = value;\n  }\n  get vtsDisabledTime() {\n    return this.disabledTime;\n  }\n  @Input() vtsRenderExtraFooter?:\n    | TemplateRef<VtsSafeAny>\n    | string\n    | FunctionProp<TemplateRef<VtsSafeAny> | string>;\n  @Input() @InputBoolean() vtsShowToday: boolean = false;\n  @Input() vtsMode: VtsDateMode = 'date';\n  @Input() @InputBoolean() vtsShowNow: boolean = false;\n  @Input() vtsRanges?: PresetRanges;\n  @Input() vtsDefaultPickerValue: CompatibleDate | null = null;\n  @Input() @WithConfig() vtsSeparator?: string = undefined;\n  @Input() @WithConfig() vtsSuffixIcon: string | TemplateRef<VtsSafeAny> = 'suffix:vts-picker';\n  @Input() @WithConfig() vtsBackdrop = false;\n  @Input() vtsId: string | null = null;\n  @Input() vtsPlacement: VtsPlacement = 'bottomLeft';\n  @Input() vtsShowLunarDate: boolean = false;\n  @Input() @InputBoolean() vtsKeepInvalidInput: boolean = false;\n\n  // TODO(@wenqi73) The PanelMode need named for each pickers and export\n  @Output() readonly vtsOnPanelChange = new EventEmitter<\n    VtsDateMode | VtsDateMode[] | string | string[]\n  >();\n  @Output() readonly vtsOnCalendarChange = new EventEmitter<Array<Date | null>>();\n  @Output() readonly vtsOnOk = new EventEmitter<CompatibleDate | null>();\n  @Output() readonly vtsOpenChange = new EventEmitter<boolean>();\n  @Output() readonly vtsInputValidChange = new EventEmitter<boolean>();\n\n  @ViewChild(VtsPickerComponent, { static: true }) picker!: VtsPickerComponent;\n\n  @Input() get vtsShowTime(): SupportTimeOptions | boolean {\n    return this.showTime;\n  }\n\n  set vtsShowTime(value: SupportTimeOptions | boolean) {\n    this.showTime = typeof value === 'object' ? value : toBoolean(value);\n  }\n\n  constructor(\n    public vtsConfigService: VtsConfigService,\n    public datePickerService: DatePickerService,\n    protected i18n: VtsI18nService,\n    protected cdr: ChangeDetectorRef,\n    private renderer: Renderer2,\n    private elementRef: ElementRef,\n    protected dateHelper: DateHelperService,\n    @Optional() private directionality: Directionality,\n    @Host() @Optional() public noAnimation?: VtsNoAnimationDirective\n  ) {\n    // TODO: move to host after View Engine deprecation\n    this.elementRef.nativeElement.classList.add('vts-picker');\n  }\n\n  ngOnInit(): void {\n    // Subscribe the every locale change if the vtsLocale is not handled by user\n    if (!this.vtsLocale) {\n      this.i18n.localeChange.pipe(takeUntil(this.destroyed$)).subscribe(() => this.setLocale());\n    }\n\n    // Default value\n    this.datePickerService.isRange = this.isRange;\n    this.datePickerService.isRangeSingleMode = this.isRangeSingleMode;\n    this.datePickerService.initValue();\n    this.datePickerService.emitValue$.pipe(takeUntil(this.destroyed$)).subscribe(_ => {\n      const value = this.datePickerService.value;\n      this.datePickerService.initialValue = cloneDate(value);\n      if (this.isRange) {\n        const vAsRange = value as CandyDate[];\n        if (vAsRange.length) {\n          this.onChangeFn([vAsRange[0]?.nativeDate ?? null, vAsRange[1]?.nativeDate ?? null]);\n        } else {\n          this.onChangeFn([]);\n        }\n      } else {\n        if (value) {\n          this.onChangeFn((value as CandyDate).nativeDate);\n        } else {\n          this.onChangeFn(null);\n        }\n      }\n      this.onTouchedFn();\n      // When value emitted, overlay will be closed\n      this.close();\n    });\n\n    this.setModeAndFormat();\n\n    this.directionality.change\n      ?.pipe(takeUntil(this.destroyed$))\n      .subscribe((direction: Direction) => {\n        this.dir = direction;\n        this.cdr.detectChanges();\n      });\n    this.dir = this.directionality.value;\n\n    this.openChangeSubject\n      .pipe(debounceTime(0), takeUntil(this.destroyed$))\n      .pipe(\n        switchMap(open => {\n          return of(open).pipe(\n            delay(open ? 0 : Number(AnimationDuration.BASE.replace('s', '')) * 1000)\n          );\n        })\n      )\n      .subscribe(open => {\n        this.panelOpen = open;\n        this.cdr.markForCheck();\n      });\n\n    if (this.vtsOpen) this.openChangeSubject.next(this.vtsOpen);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.vtsPopupStyle) {\n      // Always assign the popup style patch\n      this.vtsPopupStyle = this.vtsPopupStyle\n        ? { ...this.vtsPopupStyle, ...POPUP_STYLE_PATCH }\n        : POPUP_STYLE_PATCH;\n    }\n\n    // Mark as customized placeholder by user once vtsPlaceHolder assigned at the first time\n    // if (changes.vtsPlaceHolder?.currentValue) {\n    //   this.isCustomPlaceHolder = true;\n    // }\n\n    if (changes.vtsFormat?.currentValue) {\n      this.isCustomFormat = true;\n    }\n\n    if (changes.vtsLocale) {\n      // The vtsLocale is currently handled by user\n      this.setDefaultPlaceHolder();\n    }\n\n    if (changes.vtsRenderExtraFooter) {\n      this.extraFooter = valueFunctionProp(this.vtsRenderExtraFooter!);\n    }\n\n    if (changes.vtsMode) {\n      this.setDefaultPlaceHolder();\n      this.setModeAndFormat();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.complete();\n  }\n\n  setModeAndFormat(): void {\n    const inputFormats: { [key in VtsDateMode]?: string } = {\n      year: 'yyyy',\n      month: 'MMM yyyy',\n      week: 'YYYY-ww', // Format for week. show a valid format\n      date: this.vtsShowTime ? 'dd/MM/yyyy HH:mm:ss' : 'dd/MM/yyyy',\n      quarter: 'qqq-yyyy'\n    };\n\n    if (!this.vtsMode) {\n      this.vtsMode = 'date';\n    }\n\n    this.panelMode = this.isRange ? [this.vtsMode, this.vtsMode] : this.vtsMode;\n\n    // Default format when it's empty\n    if (!this.isCustomFormat) {\n      this.vtsFormat = inputFormats[this.vtsMode as VtsDateMode]!;\n    }\n  }\n\n  /**\n   * Triggered when overlayOpen changes (different with realOpenState)\n   * @param open The overlayOpen in picker component\n   */\n  onOpenChange(open: boolean): void {\n    this.openChangeSubject.next(open);\n    this.vtsOpenChange.emit(open);\n  }\n\n  public open(): void {\n    this.picker.showOverlay();\n  }\n\n  public close(): void {\n    this.picker.hideOverlay();\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.vtsDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  // ------------------------------------------------------------------------\n  // | Internal methods\n  // ------------------------------------------------------------------------\n\n  // Reload locale from i18n with side effects\n  private setLocale(): void {\n    this.vtsLocale = this.i18n.getLocaleData('DatePicker', {});\n    this.setDefaultPlaceHolder();\n    this.cdr.markForCheck();\n  }\n\n  private setDefaultPlaceHolder(): void {\n    if (!this.isCustomPlaceHolder && this.vtsLocale) {\n      const defaultPlaceholder: { [key in VtsDateMode]?: string } = {\n        year: this.getPropertyOfLocale('yearPlaceholder'),\n        month: this.getPropertyOfLocale('monthPlaceholder'),\n        week: this.getPropertyOfLocale('weekPlaceholder'),\n        date: this.getPropertyOfLocale('placeholder')\n      };\n\n      const defaultRangePlaceholder: { [key in VtsDateMode]?: string[] } = {\n        year: this.getPropertyOfLocale('rangeYearPlaceholder'),\n        month: this.getPropertyOfLocale('rangeMonthPlaceholder'),\n        week: this.getPropertyOfLocale('rangeWeekPlaceholder'),\n        date: this.getPropertyOfLocale('rangePlaceholder')\n      };\n\n      this.vtsPlaceHolder = this.isRange\n        ? defaultRangePlaceholder[this.vtsMode as VtsDateMode]!\n        : defaultPlaceholder[this.vtsMode as VtsDateMode]!;\n    }\n  }\n\n  private getPropertyOfLocale<T extends keyof VtsDatePickerLangI18nInterface>(\n    type: T\n  ): VtsDatePickerLangI18nInterface[T] {\n    return this.vtsLocale.lang[type] || this.i18n.getLocaleData(`DatePicker.lang.${type}`);\n  }\n\n  // Safe way of setting value with default\n  private setValue(value: CompatibleDate): void {\n    const newValue: CompatibleValue = this.datePickerService.makeValue(value);\n    this.datePickerService.setValue(newValue);\n    this.datePickerService.initialValue = newValue;\n  }\n\n  onFocusChange(value: boolean): void {\n    this.focused = value;\n    // TODO: avoid autoFocus cause change after checked error\n    if (this.focused) {\n      this.renderer.addClass(this.elementRef.nativeElement, 'vts-picker-focused');\n      this.vtsOpen = true\n      this.openChangeSubject.next(this.vtsOpen);\n    } else {\n      this.renderer.removeClass(this.elementRef.nativeElement, 'vts-picker-focused');\n      this.vtsOpen = false\n      this.openChangeSubject.next(this.vtsOpen);\n    }\n  }\n\n  onPanelModeChange(panelMode: VtsDateMode | VtsDateMode[]): void {\n    this.vtsOnPanelChange.emit(panelMode);\n  }\n\n  // Emit vtsOnCalendarChange when select date by vts-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.vtsOnCalendarChange.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.vtsOnOk.emit([value[0]?.nativeDate || null, value[1]?.nativeDate || null]);\n      } else {\n        this.vtsOnOk.emit([]);\n      }\n    } else {\n      if (this.datePickerService.value) {\n        this.vtsOnOk.emit((this.datePickerService.value as CandyDate).nativeDate);\n      } else {\n        this.vtsOnOk.emit(null);\n      }\n    }\n  }\n\n  onInputValidChange(isInputValid: boolean){\n    this.vtsInputValidChange.next(isInputValid);\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\n/**\n * A collection module of standard output for all lib components\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { VtsOutletModule } from '@ui-vts-kit/ng-vts/core/outlet';\n\nimport { VtsI18nModule } from '@ui-vts-kit/ng-vts/i18n';\nimport { VtsTimePickerModule } from '@ui-vts-kit/ng-vts/time-picker';\nimport { DateHeaderComponent } from './date-header.component';\nimport { DateTableComponent } from './date-table.component';\nimport { DecadeHeaderComponent } from './decade-header.component';\nimport { DecadeTableComponent } from './decade-table.component';\nimport { MonthHeaderComponent } from './month-header.component';\nimport { MonthTableComponent } from './month-table.component';\nimport { YearHeaderComponent } from './year-header.component';\nimport { YearTableComponent } from './year-table.component';\nimport { QuarterTableComponent } from './quarter-table.component';\nimport { QuarterHeaderComponent } from './quarter-header.component';\nimport { LunarDatePipe } from './lunar-date.pipe';\n\n@NgModule({\n  imports: [CommonModule, FormsModule, VtsI18nModule, VtsTimePickerModule, VtsOutletModule],\n  exports: [\n    DateHeaderComponent,\n    DateTableComponent,\n    DecadeHeaderComponent,\n    DecadeTableComponent,\n    MonthHeaderComponent,\n    MonthTableComponent,\n    QuarterTableComponent,\n    QuarterHeaderComponent,\n    YearHeaderComponent,\n    YearTableComponent,\n    LunarDatePipe\n  ],\n  declarations: [\n    DateHeaderComponent,\n    DateTableComponent,\n    DecadeHeaderComponent,\n    DecadeTableComponent,\n    MonthHeaderComponent,\n    MonthTableComponent,\n    QuarterTableComponent,\n    QuarterHeaderComponent,\n    YearHeaderComponent,\n    YearTableComponent,\n    LunarDatePipe\n  ]\n})\nexport class LibPackerModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directive, Host, Optional } from '@angular/core';\nimport { VtsDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'vts-month-picker',\n  exportAs: 'vtsMonthPicker'\n})\n// tslint:disable-next-line:directive-class-suffix\nexport class VtsMonthPickerComponent {\n  constructor(@Optional() @Host() public datePicker: VtsDatePickerComponent) {\n    this.datePicker.vtsMode = 'month';\n  }\n}\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  forwardRef,\n  Input,\n  OnChanges,\n  SimpleChanges,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CandyDate } from '@ui-vts-kit/ng-vts/core/time';\nimport {\n  BooleanInput,\n  OnChangeType,\n  OnTouchedType,\n  VtsSizeXLMSType\n} from '@ui-vts-kit/ng-vts/core/types';\nimport { InputBoolean } from '@ui-vts-kit/ng-vts/core/util';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { VtsDatePickerComponent, VtsPlacement } from './date-picker.component';\nimport { DatePickerService } from './date-picker.service';\nimport { VtsDateMode } from './standard-types';\nimport { PREFIX_CLASS } from './util';\n\nexport type VtsDatePickerSizeType = 'xl' | 'lg' | 'md' | 'sm';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'vts-range-picker-multiple',\n  exportAs: 'vtsDatePicker',\n  template: `\n    <vts-input-group vts-row>\n      <div vts-col vtsFlex=\"1\">\n        <vts-date-picker\n          #startDatePicker\n          [vtsSize]=\"vtsSize\"\n          [vtsMode]=\"'date'\"\n          [ngModel]=\"startValue\"\n          (ngModelChange)=\"onStartValueChange($event)\"\n          [vtsDateRender]=\"tplRender\"\n          [vtsDisabled]=\"disabled\"\n          [vtsPlaceHolder]=\"vtsPlaceHolder[0]\"\n          [vtsShowTime]=\"vtsShowTime\"\n          [vtsShowLunarDate]=\"vtsShowLunarDate\"\n          vtsShowToday=\"false\"\n          [vtsFormat]=\"vtsFormat\"\n          (vtsOpenChange)=\"handleStartOpenChange($event)\"\n          [vtsPlacement]=\"vtsPlacement\"\n        ></vts-date-picker>\n      </div>\n\n      <div\n        style=\"display: flex;align-items: center;justify-content: center\"\n        vts-col\n        [vtsFlex]=\"gutter + 'px'\"\n      >\n        <i style=\"font-size: 10px\" vts-icon vtsType=\"MinusDoutone\"></i>\n      </div>\n\n      <div vts-col vtsFlex=\"1\">\n        <vts-date-picker\n          #endDatePicker\n          [vtsSize]=\"vtsSize\"\n          [vtsMode]=\"'date'\"\n          [ngModel]=\"endValue\"\n          (ngModelChange)=\"onEndValueChange($event)\"\n          [vtsDateRender]=\"tplRender\"\n          [vtsDisabled]=\"disabled\"\n          [vtsPlaceHolder]=\"vtsPlaceHolder[1]\"\n          [vtsShowTime]=\"vtsShowTime\"\n          [vtsShowLunarDate]=\"vtsShowLunarDate\"\n          vtsShowToday=\"false\"\n          [vtsFormat]=\"vtsFormat\"\n          (vtsOpenChange)=\"handleEndOpenChange($event)\"\n          [vtsPlacement]=\"vtsPlacement\"\n        ></vts-date-picker>\n      </div>\n    </vts-input-group>\n\n    <ng-template #tplRender let-current>\n      <div\n        class=\"vts-picker-cell-inner\"\n        [class.vts-picker-cell-inner-range-selected-start]=\"\n          !!startViewDate && compareDate(current, startViewDate, false) == 0\n        \"\n        [class.vts-picker-cell-inner-range-selected-end]=\"\n          !!endViewDate && compareDate(current, endViewDate, false) == 0\n        \"\n        [class.vts-picker-cell-inner-range-indeterminate]=\"isNotCompleteRange()\"\n        [class.vts-picker-cell-inner-range-contain]=\"checkCellInRange(current)\"\n      >\n        {{ current.getDate() }}\n        <span *ngIf=\"vtsShowLunarDate\" class=\"{{ prefixCls }}-cell-lunar-date\">{{ current | lunarDate }}</span>\n      </div>\n    </ng-template>\n  `,\n  host: {},\n  providers: [\n    DatePickerService,\n    {\n      provide: NG_VALUE_ACCESSOR,\n      multi: true,\n      useExisting: forwardRef(() => VtsRangePickerMultipleComponent)\n    }\n  ]\n})\nexport class VtsRangePickerMultipleComponent\n  implements AfterViewInit, OnChanges, ControlValueAccessor\n{\n  destroy$ = new Subject();\n\n  isRange = true;\n  isRangeSingleMode = false;\n  toggleOtherPanel: boolean = false;\n  startValue: Date | undefined;\n  endValue: Date | undefined;\n  startViewDate: Date | undefined;\n  endViewDate: Date | undefined;\n\n  vtsMode: VtsDateMode = 'date';\n  prefixCls: string = PREFIX_CLASS;\n\n  @ViewChild('startDatePicker') startDatePicker!: VtsDatePickerComponent;\n  @ViewChild('endDatePicker') endDatePicker!: VtsDatePickerComponent;\n\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_vtsDisabled: BooleanInput;\n  static ngAcceptInputType_vtsShowTime: BooleanInput | null | undefined;\n  static ngAcceptInputType_vtsAutoOpen: BooleanInput | null | undefined;\n\n  @Input() gutter: Number = 26;\n  @Input() vtsSize: VtsSizeXLMSType = 'md';\n  @Input() vtsPlaceHolder: string[] = ['', ''];\n  @Input() @InputBoolean() set disabled(value: boolean) {\n    this.vtsDisabled = value;\n  }\n  @Input() @InputBoolean() vtsDisabled: boolean = false;\n  @Input() @InputBoolean() vtsShowTime: boolean = false;\n  @Input() @InputBoolean() vtsAutoOpen: boolean = true;\n  @Input() vtsFormat!: string;\n  @Input() vtsPlacement: VtsPlacement = 'bottomLeft';\n  @Input() vtsShowLunarDate: boolean = false;\n\n  constructor(protected cdr: ChangeDetectorRef, public datePickerService: DatePickerService) {\n    this.datePickerService.isRange = this.isRange;\n    this.datePickerService.isRangeSingleMode = this.isRangeSingleMode;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.vtsPlaceHolder?.currentValue) {\n      this.vtsPlaceHolder = changes.vtsPlaceHolder?.currentValue;\n    }\n  }\n\n  ngAfterViewInit(): void {\n    this.startDatePicker.datePickerService.valueChange$\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(value => {\n        this.startViewDate = value ? (value as CandyDate).nativeDate : undefined;\n      });\n    this.endDatePicker.datePickerService.valueChange$\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(value => {\n        this.endViewDate = value ? (value as CandyDate).nativeDate : undefined;\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  checkCellInRange(current: Date) {\n    return (\n      !!this.startViewDate &&\n      !!this.endViewDate &&\n      this.compareDate(current, this.startViewDate, false) >= 0 &&\n      this.compareDate(current, this.endViewDate, false) <= 0\n    );\n  }\n\n  compareDate = (source: Date, dest: Date, includeTime = this.vtsShowTime) =>\n    this.datePickerService.compareDate(source, dest, includeTime);\n\n  isNotCompleteRange() {\n    return !this.startViewDate || !this.endViewDate;\n  }\n\n  onChangeFn: OnChangeType = () => void 0;\n  onTouchedFn: OnTouchedType = () => void 0;\n\n  writeValue(value: Date[]): void {\n    this.startValue = (value && value[0]) || null;\n    this.endValue = (value && value[1]) || null;\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  onStartValueChange(e: Date) {\n    if (!!this.startValue && this.compareDate(this.startValue, e) == 0) {\n      this.toggleOtherPanel = false;\n      return;\n    }\n\n    this.startValue = e;\n    if (\n      !!this.startValue &&\n      !!this.endValue &&\n      this.compareDate(this.startValue, this.endValue) == 1\n    ) {\n      this.endValue = undefined;\n      this.endViewDate = undefined;\n    }\n    this.toggleOtherPanel = true;\n    this.onChangeFn([this.startValue, this.endValue]);\n  }\n\n  onEndValueChange(e: Date) {\n    if (!!this.endValue && this.compareDate(this.endValue, e) == 0) {\n      this.toggleOtherPanel = false;\n      return;\n    }\n\n    this.endValue = e;\n    if (\n      !!this.startValue &&\n      !!this.endValue &&\n      this.compareDate(this.startValue, this.endValue) == 1\n    ) {\n      this.startValue = undefined;\n      this.startViewDate = undefined;\n    }\n    this.toggleOtherPanel = true;\n    this.onChangeFn([this.startValue, this.endValue]);\n  }\n\n  handleStartOpenChange(open: boolean): void {\n    if (!open && this.toggleOtherPanel && this.vtsAutoOpen && this.startValue && !this.endValue) {\n      this.endDatePicker.open();\n      return;\n    }\n  }\n\n  handleEndOpenChange(open: boolean): void {\n    if (!open && this.toggleOtherPanel && this.vtsAutoOpen && this.endValue && !this.startValue) {\n      this.startDatePicker.open();\n      return;\n    }\n  }\n}\n","import { AfterContentInit, Input } from '@angular/core';\nimport {\n  ChangeDetectorRef,\n  Directive,\n  Host,\n  OnChanges,\n  Optional,\n  SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { CandyDate, CompatibleValue } from '@ui-vts-kit/ng-vts/core/time';\nimport { OnChangeType, OnTouchedType } from '@ui-vts-kit/ng-vts/core/types';\nimport { DateHelperService } from '@ui-vts-kit/ng-vts/i18n';\nimport { VtsDatePickerComponent, VtsPlacement } from './date-picker.component';\nimport { DatePickerService } from './date-picker.service';\n\nexport type VtsDatePickerSizeType = 'xl' | 'lg' | 'md' | 'sm';\n\n@Directive({\n  selector: 'vts-range-picker-single',\n  exportAs: 'vtsRangePicker'\n})\nexport class VtsRangePickerSingleComponent\n  implements OnChanges, ControlValueAccessor, AfterContentInit\n{\n  isRange = true;\n  isRangeSingleMode = true;\n  format = 'dd/MM/yyyy';\n  rangeFormat = 'dd/MM/yyyy - dd/MM/yyyy';\n  startValue: any;\n  endValue: any;\n\n  dateValue: Date[] | null = [new Date(), new Date()];\n\n  @Input() vtsPlaceHolder: string | string[] = ['', ''];\n  @Input() vtsPlacement: VtsPlacement = 'bottomLeft';\n\n  constructor(\n    protected cdr: ChangeDetectorRef,\n    public datePickerService: DatePickerService,\n    private dateHelper: DateHelperService,\n    @Optional() @Host() public datePicker: VtsDatePickerComponent\n  ) {\n    this.datePicker.isRange = this.isRange;\n    this.datePicker.isRangeSingleMode = this.isRangeSingleMode;\n    this.datePicker.registerOnChange = this.registerOnChange;\n    this.datePicker.registerOnTouched = this.registerOnTouched;\n    this.datePicker.writeValue = this.writeValue;\n    this.datePicker.onCalendarChange = this.onCalendarChange;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.vtsPlaceHolder?.currentValue) {\n      if (typeof changes.vtsPlaceHolder?.currentValue == 'string')\n        this.datePicker.vtsPlaceHolder = [\n          changes.vtsPlaceHolder?.currentValue,\n          changes.vtsPlaceHolder?.currentValue\n        ];\n      else this.datePicker.vtsPlaceHolder = changes.vtsPlaceHolder?.currentValue;\n    }\n  }\n\n  ngAfterContentInit() {\n    this.datePicker.picker.onInputChange = this.onInputChange.bind(this);\n  }\n\n  onChangeFn: OnChangeType = () => void 0;\n  onTouchedFn: OnTouchedType = () => void 0;\n\n  writeValue(value: Date[]): void {\n    const newValue: CompatibleValue = this.datePickerService.makeValue(value);\n    this.datePickerService.setValue(newValue);\n    this.datePickerService.initialValue = newValue;\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  onCalendarChange(value: CompatibleValue): void {\n    if (Array.isArray(value)) {\n      const rangeValue = value.filter(x => x instanceof CandyDate).map(x => x!.nativeDate);\n      this.onChangeFn(rangeValue);\n    }\n  }\n\n  onInputChange(value: string) {\n    const rangeRegex = /^\\d{2}\\/\\d{2}\\/\\d{4} \\- \\d{2}\\/\\d{2}\\/\\d{4}$/;\n    if (!this.datePicker.picker.realOpenState) {\n      this.datePicker.picker.showOverlay();\n    }\n\n    if (!value) {\n      this.datePickerService.setValue([]);\n      this.onCalendarChange([]);\n      return;\n    }\n\n    if (rangeRegex.test(value)) {\n      const values = value.split(' - ');\n      const parses = values.map(d => new CandyDate(this.dateHelper.parseDate(d, this.format)));\n      if (parses.every(d => d.isValid())) {\n        this.datePickerService.setValue(parses);\n        this.datePickerService.activeInput = 'left';\n        this.datePicker.picker.panel.changeValueFromSelect(parses[0], false);\n        this.datePickerService.activeInput = 'right';\n        this.datePicker.picker.panel.changeValueFromSelect(parses[1], true);\n      }\n      return;\n    }\n  }\n\n  checkCellInRange(current: Date) {\n    return (\n      !!this.startValue &&\n      !!this.endValue &&\n      this.compareDate(current, this.startValue) >= 0 &&\n      this.compareDate(current, this.endValue) <= 0\n    );\n  }\n\n  compareDate(source: Date, dest: Date, includeTime = false) {\n    const s = source;\n    const d = dest;\n    if (!includeTime) {\n      s.setHours(0);\n      s.setMinutes(0);\n      s.setSeconds(0);\n      s.setMilliseconds(0);\n      d.setHours(0);\n      d.setMinutes(0);\n      d.setSeconds(0);\n      d.setMilliseconds(0);\n    }\n\n    if (s.getTime() > d.getTime()) return 1;\n    if (s.getTime() < d.getTime()) return -1;\n    return 0;\n  }\n\n  isNotCompleteRange() {\n    return !this.startValue || !this.endValue;\n  }\n\n  onEndValueChange(e: Date) {\n    this.endValue = e;\n    if (\n      !!this.startValue &&\n      !!this.endValue &&\n      this.compareDate(this.startValue, this.endValue) == 1\n    )\n      this.startValue = null;\n    this.onChangeFn([this.startValue, this.endValue]);\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directive, Host, Optional } from '@angular/core';\nimport { VtsDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'vts-range-picker',\n  exportAs: 'vtsRangePicker'\n})\n// tslint:disable-next-line:directive-class-suffix\nexport class VtsRangePickerComponent {\n  constructor(@Optional() @Host() public datePicker: VtsDatePickerComponent) {\n    this.datePicker.isRange = true;\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directive, Host, Optional } from '@angular/core';\nimport { VtsDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'vts-week-picker',\n  exportAs: 'vtsWeekPicker'\n})\n// tslint:disable-next-line:directive-class-suffix\nexport class VtsWeekPickerComponent {\n  constructor(@Optional() @Host() public datePicker: VtsDatePickerComponent) {\n    this.datePicker.vtsMode = 'week';\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directive, Host, Optional } from '@angular/core';\nimport { VtsDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'vts-year-picker',\n  exportAs: 'vtsYearPicker'\n})\n// tslint:disable-next-line:directive-class-suffix\nexport class VtsYearPickerComponent {\n  constructor(@Optional() @Host() public datePicker: VtsDatePickerComponent) {\n    this.datePicker.vtsMode = 'year';\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { VtsButtonModule } from '@ui-vts-kit/ng-vts/button';\n\nimport { VtsNoAnimationModule } from '@ui-vts-kit/ng-vts/core/no-animation';\nimport { VtsOutletModule } from '@ui-vts-kit/ng-vts/core/outlet';\nimport { VtsOverlayModule } from '@ui-vts-kit/ng-vts/core/overlay';\nimport { VtsGridModule } from '@ui-vts-kit/ng-vts/grid';\nimport { VtsIconModule } from '@ui-vts-kit/ng-vts/icon';\nimport { VtsTimePickerModule } from '@ui-vts-kit/ng-vts/time-picker';\nimport { CalendarFooterComponent } from './calendar-footer.component';\n\nimport { VtsDatePickerComponent } from './date-picker.component';\nimport { DateRangePopupComponent } from './date-range-popup.component';\nimport { InnerPopupComponent } from './inner-popup.component';\n\nimport { LibPackerModule } from './lib/lib-packer.module';\nimport { VtsMonthPickerComponent } from './month-picker.component';\nimport { VtsPickerComponent } from './picker.component';\nimport { VtsRangePickerMultipleComponent } from './range-picker-multiple.component';\nimport { VtsRangePickerSingleComponent } from './range-picker-single.component';\nimport { VtsRangePickerComponent } from './range-picker.component';\nimport { VtsWeekPickerComponent } from './week-picker.component';\nimport { VtsYearPickerComponent } from './year-picker.component';\n\n@NgModule({\n  imports: [\n    BidiModule,\n    CommonModule,\n    FormsModule,\n    OverlayModule,\n    LibPackerModule,\n    VtsIconModule,\n    VtsOverlayModule,\n    VtsNoAnimationModule,\n    VtsOutletModule,\n    VtsTimePickerModule,\n    VtsButtonModule,\n    VtsGridModule\n  ],\n  exports: [\n    VtsDatePickerComponent,\n    VtsRangePickerComponent,\n    VtsRangePickerSingleComponent,\n    VtsRangePickerMultipleComponent,\n    VtsMonthPickerComponent,\n    VtsYearPickerComponent,\n    VtsWeekPickerComponent\n  ],\n  declarations: [\n    VtsPickerComponent,\n    VtsDatePickerComponent,\n    VtsMonthPickerComponent,\n    VtsYearPickerComponent,\n    VtsWeekPickerComponent,\n    VtsRangePickerComponent,\n    VtsRangePickerSingleComponent,\n    VtsRangePickerMultipleComponent,\n    CalendarFooterComponent,\n    InnerPopupComponent,\n    DateRangePopupComponent\n  ]\n})\nexport class VtsDatePickerModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directive, Host, Optional } from '@angular/core';\nimport { VtsDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'vts-quarter-picker',\n  exportAs: 'vtsQuarterPicker'\n})\n// tslint:disable-next-line:directive-class-suffix\nexport class VtsQuarterPickerComponent {\n  constructor(@Optional() @Host() public datePicker: VtsDatePickerComponent) {\n    this.datePicker.vtsMode = '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\nexport { DecadeHeaderComponent as ɵDecadeHeaderComponent } from './decade-header.component';\nexport { DecadeTableComponent as ɵDecadeTableComponent } from './decade-table.component';\nexport { YearHeaderComponent as ɵYearHeaderComponent } from './year-header.component';\nexport { YearTableComponent as ɵYearTableComponent } from './year-table.component';\nexport { MonthHeaderComponent as ɵMonthHeaderComponent } from './month-header.component';\nexport { MonthTableComponent as ɵMonthTableComponent } from './month-table.component';\nexport { QuarterHeaderComponent as ɵQuarterHeaderComponent } from './quarter-header.component';\nexport { QuarterTableComponent as ɵQuarterTableComponent } from './quarter-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 { LunarDatePipe as eLunarDatePipe } from './lunar-date.pipe';\nexport { AbstractTable as ɵAbstractTable } from './abstract-table';\nexport { LibPackerModule } from './lib-packer.module';\nexport { transCompatFormat, convertLunar2Solar, convertSolar2Lunar } from './util';\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './standard-types';\nexport * from './util';\n\nexport { VtsDatePickerModule } from './date-picker.module';\nexport { VtsDatePickerComponent, VtsDatePickerSizeType } from './date-picker.component';\nexport { VtsRangePickerComponent } from './range-picker.component';\nexport { VtsRangePickerSingleComponent } from './range-picker-single.component';\nexport { VtsRangePickerMultipleComponent } from './range-picker-multiple.component';\nexport { VtsMonthPickerComponent } from './month-picker.component';\nexport { VtsQuarterPickerComponent } from './quarter-picker.component';\nexport { VtsWeekPickerComponent } from './week-picker.component';\nexport { VtsYearPickerComponent } 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 { VtsPickerComponent as ɵVtsPickerComponent } from './picker.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":["i3.LunarDatePipe","i1","i2.LunarDatePipe","i2","i3.DateHeaderComponent","i4.DateTableComponent","i5.DecadeHeaderComponent","i6.DecadeTableComponent","i7.MonthHeaderComponent","i8.MonthTableComponent","i9.QuarterTableComponent","i10.QuarterHeaderComponent","i11.YearHeaderComponent","i12.YearTableComponent","i1.DatePickerService","i3.CalendarFooterComponent","i4.InnerPopupComponent","i5","i10","i12","i2.DatePickerService","i3","i4","i6.VtsPickerComponent","i7.DateRangePopupComponent","i1.VtsDatePickerComponent","i6","i7.VtsDatePickerComponent","i8.LunarDatePipe","i3.VtsDatePickerComponent"],"mappings":"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"}