{"version":3,"file":"ng2-date-picker.mjs","sources":["../../../projects/ng2-date-picker/src/lib/common/types/calendar-mode-enum.ts","../../../projects/ng2-date-picker/src/lib/common/types/calendar-value-enum.ts","../../../projects/ng2-date-picker/src/lib/common/types/selection-event.enum.ts","../../../projects/ng2-date-picker/src/lib/common/dayjs/dayjs.ref.ts","../../../projects/ng2-date-picker/src/lib/common/services/utils/utils.service.ts","../../../projects/ng2-date-picker/src/lib/day-calendar/day-calendar.service.ts","../../../projects/ng2-date-picker/src/lib/time-select/time-select.service.ts","../../../projects/ng2-date-picker/src/lib/day-time-calendar/day-time-calendar.service.ts","../../../projects/ng2-date-picker/src/lib/date-picker/date-picker.service.ts","../../../projects/ng2-date-picker/src/lib/month-calendar/month-calendar.service.ts","../../../projects/ng2-date-picker/src/lib/calendar-nav/calendar-nav.component.ts","../../../projects/ng2-date-picker/src/lib/calendar-nav/calendar-nav.component.html","../../../projects/ng2-date-picker/src/lib/month-calendar/month-calendar.component.ts","../../../projects/ng2-date-picker/src/lib/month-calendar/month-calendar.component.html","../../../projects/ng2-date-picker/src/lib/day-calendar/day-calendar.component.ts","../../../projects/ng2-date-picker/src/lib/day-calendar/day-calendar.component.html","../../../projects/ng2-date-picker/src/lib/time-select/time-select.component.ts","../../../projects/ng2-date-picker/src/lib/time-select/time-select.component.html","../../../projects/ng2-date-picker/src/lib/day-time-calendar/day-time-calendar.component.ts","../../../projects/ng2-date-picker/src/lib/day-time-calendar/day-time-calendar.component.html","../../../projects/ng2-date-picker/src/lib/date-picker/date-picker.component.ts","../../../projects/ng2-date-picker/src/lib/date-picker/date-picker.component.html","../../../projects/ng2-date-picker/src/lib/date-picker/date-picker.directive.ts","../../../projects/ng2-date-picker/src/lib/date-picker.module.ts","../../../projects/ng2-date-picker/src/ng2-date-picker.ts"],"sourcesContent":["export enum ECalendarMode {\n  Day,\n  DayTime,\n  Month,\n  Time\n}\n","export enum ECalendarValue {\n  Dayjs = 1,\n  DayjsArr,\n  String,\n  StringArr\n}\n","export enum SelectEvent {\n  INPUT = 'input',\n  SELECTION = 'selection'\n}\n","import dayjs from 'dayjs';\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport isoWeek from 'dayjs/plugin/isoWeek';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\ndayjs.extend(isBetween);\ndayjs.extend(isoWeek);\ndayjs.extend(customParseFormat);\n\nexport const dayjsRef = dayjs;\n","import {ECalendarValue} from '../../types/calendar-value-enum';\nimport {SingleCalendarValue} from '../../types/single-calendar-value';\nimport {ElementRef, Injectable} from '@angular/core';\n\nimport {Dayjs, UnitType} from 'dayjs';\nimport {CalendarValue} from '../../types/calendar-value';\nimport {IDate} from '../../models/date.model';\nimport {CalendarMode} from '../../types/calendar-mode';\nimport {DateValidator} from '../../types/validator.type';\nimport {ICalendarInternal} from '../../models/calendar.model';\nimport {dayjsRef} from '../../dayjs/dayjs.ref';\n\nexport interface DateLimits {\n  minDate?: SingleCalendarValue;\n  maxDate?: SingleCalendarValue;\n  minTime?: SingleCalendarValue;\n  maxTime?: SingleCalendarValue;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UtilsService {\n  static debounce(func: Function, wait: number) {\n    let timeout;\n    return function () {\n      const context = this, args = arguments;\n      timeout = clearTimeout(timeout);\n      setTimeout(() => {\n        func.apply(context, args);\n      }, wait);\n    };\n  };\n\n  createArray(size: number): number[] {\n    return new Array(size).fill(1);\n  }\n\n  convertToDayjs(date: SingleCalendarValue, format: string): Dayjs {\n    if (!date) {\n      return null;\n    } else if (typeof date === 'string') {\n      return dayjsRef(date, format);\n    } else {\n      return dayjsRef(date.toDate());\n    }\n  }\n\n  isDateValid(date: string, format: string): boolean {\n    if (date === '') {\n      return true;\n    }\n\n    return dayjsRef(date, format, true).isValid();\n  }\n\n  // todo:: add unit test\n  getDefaultDisplayDate(current: Dayjs,\n                        selected: Dayjs[],\n                        allowMultiSelect: boolean,\n                        minDate: Dayjs): Dayjs {\n    if (current) {\n      return dayjsRef(current.toDate());\n    } else if (minDate && minDate.isAfter(dayjsRef())) {\n      return dayjsRef(minDate.toDate());\n    } else if (allowMultiSelect) {\n      if (selected && selected[selected.length]) {\n        return dayjsRef(selected[selected.length].toDate());\n      }\n    } else if (selected && selected[0]) {\n      return dayjsRef(selected[0].toDate());\n    }\n\n    return dayjsRef();\n  }\n\n  // todo:: add unit test\n  getInputType(value: CalendarValue, allowMultiSelect: boolean): ECalendarValue {\n    if (Array.isArray(value)) {\n      if (!value.length) {\n        return ECalendarValue.DayjsArr;\n      } else if (typeof value[0] === 'string') {\n        return ECalendarValue.StringArr;\n      } else if (dayjsRef.isDayjs(value[0])) {\n        return ECalendarValue.DayjsArr;\n      }\n    } else {\n      if (typeof value === 'string') {\n        return ECalendarValue.String;\n      } else if (dayjsRef.isDayjs(value)) {\n        return ECalendarValue.Dayjs;\n      }\n    }\n\n    return allowMultiSelect ? ECalendarValue.DayjsArr : ECalendarValue.Dayjs;\n  }\n\n  // todo:: add unit test\n  convertToDayjsArray(value: CalendarValue,\n                      config: { allowMultiSelect?: boolean, format?: string }): Dayjs[] {\n    let retVal: Dayjs[];\n    switch (this.getInputType(value, config.allowMultiSelect)) {\n      case (ECalendarValue.String):\n        retVal = value ? [dayjsRef(<string>value, config.format, true)] : [];\n        break;\n      case (ECalendarValue.StringArr):\n        retVal = (<string[]>value).map(v => v ? dayjsRef(v, config.format, true) : null).filter(Boolean);\n        break;\n      case (ECalendarValue.Dayjs):\n        retVal = value ? [dayjsRef((<Dayjs>value).toDate())] : [];\n        break;\n      case (ECalendarValue.DayjsArr):\n        retVal = (<Dayjs[]>value || []).map(v => dayjsRef(v.toDate()));\n        break;\n      default:\n        retVal = [];\n    }\n\n    return retVal;\n  }\n\n  // todo:: add unit test\n  convertFromDayjsArray(format: string,\n                        value: Dayjs[],\n                        convertTo: ECalendarValue): CalendarValue {\n    switch (convertTo) {\n      case (ECalendarValue.String):\n        return value[0] && value[0].format(format);\n      case (ECalendarValue.StringArr):\n        return value.filter(Boolean).map(v => v.format(format));\n      case (ECalendarValue.Dayjs):\n        return value[0] ? dayjsRef(value[0].toDate()) : value[0];\n      case (ECalendarValue.DayjsArr):\n        return value ? value.map(v => dayjsRef(v.toDate())) : value;\n      default:\n        return value;\n    }\n  }\n\n  convertToString(value: CalendarValue, format: string): string {\n    let tmpVal: string[];\n\n    if (typeof value === 'string') {\n      tmpVal = [value];\n    } else if (Array.isArray(value)) {\n      if (value.length) {\n        tmpVal = (<SingleCalendarValue[]>value).map((v) => {\n          return this.convertToDayjs(v, format).format(format);\n        });\n      } else {\n        tmpVal = <string[]>value;\n      }\n    } else if (dayjsRef.isDayjs(value)) {\n      tmpVal = [value.format(format)];\n    } else {\n      return '';\n    }\n\n    return tmpVal.filter(Boolean).join(' | ');\n  }\n\n  // todo:: add unit test\n  clearUndefined<T>(obj: T): T {\n    if (!obj) {\n      return obj;\n    }\n\n    Object.keys(obj).forEach((key) => (obj[key] === undefined) && delete obj[key]);\n    return obj;\n  }\n\n  updateSelected(isMultiple: boolean,\n                 currentlySelected: Dayjs[],\n                 date: IDate,\n                 granularity: UnitType = 'day'): Dayjs[] {\n    if (isMultiple) {\n      return !date.selected\n        ? currentlySelected.concat([date.date])\n        : currentlySelected.filter(d => !d.isSame(date.date, granularity));\n    } else {\n      return !date.selected ? [date.date] : [];\n    }\n  }\n\n  closestParent(element: HTMLElement, selector: string): HTMLElement {\n    if (!element) {\n      return undefined;\n    }\n    const match = <HTMLElement>element.querySelector(selector);\n    return match || this.closestParent(element.parentElement, selector);\n  }\n\n  onlyTime(m: Dayjs): Dayjs {\n    return m && dayjsRef.isDayjs(m) && dayjsRef(m.format('HH:mm:ss'), 'HH:mm:ss');\n  }\n\n  granularityFromType(calendarType: CalendarMode): UnitType {\n    switch (calendarType) {\n      case 'time':\n        return 'second';\n      case 'daytime':\n        return 'second';\n      default:\n        return calendarType;\n    }\n  }\n\n  createValidator({minDate, maxDate, minTime, maxTime}: DateLimits,\n                  format: string,\n                  calendarType: CalendarMode): DateValidator {\n    let isValid: boolean;\n    let value: Dayjs[];\n    const validators = [];\n    const granularity = this.granularityFromType(calendarType);\n\n    if (minDate) {\n      const md = this.convertToDayjs(minDate, format);\n      validators.push({\n        key: 'minDate',\n        isValid: () => {\n          const _isValid = value.every(val => val.isSameOrAfter(md, granularity));\n          isValid = isValid ? _isValid : false;\n          return _isValid;\n        }\n      });\n    }\n\n    if (maxDate) {\n      const md = this.convertToDayjs(maxDate, format);\n      validators.push({\n        key: 'maxDate',\n        isValid: () => {\n          const _isValid = value.every(val => val.isSameOrBefore(md, granularity));\n          isValid = isValid ? _isValid : false;\n          return _isValid;\n        }\n      });\n    }\n\n    if (minTime) {\n      const md = this.onlyTime(this.convertToDayjs(minTime, format));\n      validators.push({\n        key: 'minTime',\n        isValid: () => {\n          const _isValid = value.every(val => this.onlyTime(val).isSameOrAfter(md));\n          isValid = isValid ? _isValid : false;\n          return _isValid;\n        }\n      });\n    }\n\n    if (maxTime) {\n      const md = this.onlyTime(this.convertToDayjs(maxTime, format));\n      validators.push({\n        key: 'maxTime',\n        isValid: () => {\n          const _isValid = value.every(val => this.onlyTime(val).isSameOrBefore(md));\n          isValid = isValid ? _isValid : false;\n          return _isValid;\n        }\n      });\n    }\n\n    return (inputVal: CalendarValue) => {\n      isValid = true;\n\n      value = this.convertToDayjsArray(inputVal, {\n        format,\n        allowMultiSelect: true\n      }).filter(Boolean);\n\n      if (!value.every(val => val.isValid())) {\n        return {\n          format: {\n            given: inputVal\n          }\n        };\n      }\n\n      const errors = validators.reduce((map, err) => {\n        if (!err.isValid()) {\n          map[err.key] = {\n            given: value\n          };\n        }\n\n        return map;\n      }, {});\n\n      return !isValid ? errors : null;\n    };\n  }\n\n  datesStringToStringArray(value: string): string[] {\n    return (value || '').split('|').map(m => m.trim()).filter(Boolean);\n  }\n\n  getValidDayjsArray(value: string, format: string): Dayjs[] {\n    return this.datesStringToStringArray(value)\n      .filter(d => this.isDateValid(d, format))\n      .map(d => dayjsRef(d, format));\n  }\n\n  shouldShowCurrent(showGoToCurrent: boolean,\n                    mode: CalendarMode,\n                    min: Dayjs,\n                    max: Dayjs): boolean {\n    return showGoToCurrent &&\n      mode !== 'time' &&\n      this.isDateInRange(dayjsRef(), min, max);\n  }\n\n  isDateInRange(date: Dayjs, from: Dayjs, to: Dayjs): boolean {\n    if (!date) {\n      return false;\n    }\n\n    if (!from && !to) {\n      return true;\n    }\n\n    if (!from && to) {\n      return date.isSameOrBefore(to);\n    }\n\n    if (from && !to) {\n      return date.isSameOrAfter(from);\n    }\n\n    return date.isBetween(from, to, 'day', '[]');\n  }\n\n  convertPropsToDayjs(obj: { [key: string]: any }, format: string, props: string[]): void {\n    props.forEach((prop) => {\n      if (obj.hasOwnProperty(prop)) {\n        obj[prop] = this.convertToDayjs(obj[prop], format);\n      }\n    });\n  }\n\n  shouldResetCurrentView<T extends ICalendarInternal>(prevConf: T, currentConf: T): boolean {\n    if (prevConf && currentConf) {\n      if (!prevConf.min && currentConf.min) {\n        return true;\n      } else if (prevConf.min && currentConf.min && !prevConf.min.isSame(currentConf.min, 'd')) {\n        return true;\n      } else if (!prevConf.max && currentConf.max) {\n        return true;\n      } else if (prevConf.max && currentConf.max && !prevConf.max.isSame(currentConf.max, 'd')) {\n        return true;\n      }\n\n      return false;\n    }\n\n    return false;\n  }\n\n  getNativeElement(elem: HTMLElement | string | ElementRef): HTMLElement {\n    if (!elem) {\n      return null;\n    } else if (typeof elem === 'string') {\n      return document.querySelector(elem);\n    } else if (elem instanceof ElementRef) {\n      return elem.nativeElement;\n    } else {\n      return elem;\n    }\n  }\n}\n","import {Injectable} from '@angular/core';\n\nimport {WeekDays} from '../common/types/week-days.type';\nimport {UtilsService} from '../common/services/utils/utils.service';\nimport {IDay} from './day.model';\nimport {IDayCalendarConfig, IDayCalendarConfigInternal} from './day-calendar-config.model';\nimport {IMonthCalendarConfig} from '../month-calendar/month-calendar-config';\nimport {Dayjs} from 'dayjs';\nimport {dayjsRef} from '../common/dayjs/dayjs.ref';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DayCalendarService {\n  readonly DEFAULT_CONFIG: IDayCalendarConfig = {\n    showNearMonthDays: true,\n    showWeekNumbers: false,\n    firstDayOfWeek: 'su',\n    weekDayFormat: 'ddd',\n    format: 'DD-MM-YYYY',\n    allowMultiSelect: false,\n    monthFormat: 'MMM, YYYY',\n    enableMonthSelector: true,\n    dayBtnFormat: 'DD',\n    unSelectOnClick: true\n  };\n  private readonly DAYS = ['su', 'mo', 'tu', 'we', 'th', 'fr', 'sa'];\n\n  constructor(private utilsService: UtilsService) {\n  }\n\n  getConfig(config: IDayCalendarConfig): IDayCalendarConfigInternal {\n    const _config = {\n      ...this.DEFAULT_CONFIG,\n      ...this.utilsService.clearUndefined(config)\n    };\n\n    this.utilsService.convertPropsToDayjs(_config, _config.format, ['min', 'max']);\n\n    return _config as IDayCalendarConfigInternal;\n  }\n\n  generateDaysMap(firstDayOfWeek: WeekDays) {\n    const firstDayIndex = this.DAYS.indexOf(firstDayOfWeek);\n    const daysArr = this.DAYS.slice(firstDayIndex, 7).concat(this.DAYS.slice(0, firstDayIndex));\n    return daysArr.reduce((map, day, index) => {\n      map[day] = index;\n\n      return map;\n    }, <{[key: string]: number}>{});\n  }\n\n  generateMonthArray(config: IDayCalendarConfigInternal, month: Dayjs, selected: Dayjs[]): IDay[][] {\n    const parsedMonth = month.isValid() ? dayjsRef(month.toDate()) : dayjsRef();\n    let monthArray: IDay[][] = [];\n    const firstDayOfWeekIndex = this.DAYS.indexOf(config.firstDayOfWeek);\n    let firstDayOfBoard = parsedMonth.startOf('month');\n\n    while (firstDayOfBoard.day() !== firstDayOfWeekIndex) {\n      firstDayOfBoard = firstDayOfBoard.subtract(1, 'day');\n    }\n\n    let current = dayjsRef(firstDayOfBoard.toDate());\n    const prevMonth = parsedMonth.subtract(1, 'month');\n    const nextMonth = parsedMonth.add(1, 'month');\n    const today = dayjsRef();\n\n    const daysOfCalendar: IDay[] = this.utilsService.createArray(42)\n      .reduce((array: IDay[]) => {\n        array.push({\n          date: dayjsRef(current.toDate()),\n          selected: !!selected.find(selectedDay => current.isSame(selectedDay, 'day')),\n          currentMonth: current.isSame(parsedMonth, 'month'),\n          prevMonth: current.isSame(prevMonth, 'month'),\n          nextMonth: current.isSame(nextMonth, 'month'),\n          currentDay: current.isSame(today, 'day'),\n          disabled: this.isDateDisabled(current, config)\n        });\n        current = current.add(1, 'day');\n\n        return array;\n      }, []);\n\n    daysOfCalendar.forEach((day, index) => {\n      const weekIndex = Math.floor(index / 7);\n\n      if (!monthArray[weekIndex]) {\n        monthArray.push([]);\n      }\n\n      monthArray[weekIndex].push(day);\n    });\n\n    if (!config.showNearMonthDays) {\n      monthArray = this.removeNearMonthWeeks(parsedMonth, monthArray);\n    }\n\n    return monthArray;\n  }\n\n  generateWeekdays(firstDayOfWeek: WeekDays): Dayjs[] {\n    const weekdayNames: {[key: string]: Dayjs} = {\n      su: dayjsRef().day(0),\n      mo: dayjsRef().day(1),\n      tu: dayjsRef().day(2),\n      we: dayjsRef().day(3),\n      th: dayjsRef().day(4),\n      fr: dayjsRef().day(5),\n      sa: dayjsRef().day(6)\n    };\n    const weekdays: Dayjs[] = [];\n    const daysMap = this.generateDaysMap(firstDayOfWeek);\n\n    for (const dayKey in daysMap) {\n      if (daysMap.hasOwnProperty(dayKey)) {\n        weekdays[daysMap[dayKey]] = weekdayNames[dayKey];\n      }\n    }\n\n    return weekdays;\n  }\n\n  isDateDisabled(date: Dayjs, config: IDayCalendarConfigInternal): boolean {\n    if (config.isDayDisabledCallback) {\n      return config.isDayDisabledCallback(date);\n    }\n\n    if (config.min && date.isBefore(config.min, 'day')) {\n      return true;\n    }\n\n    return !!(config.max && date.isAfter(config.max, 'day'));\n  }\n\n  // todo:: add unit tests\n  getHeaderLabel(config: IDayCalendarConfigInternal, month: Dayjs): string {\n    if (config.monthFormatter) {\n      return config.monthFormatter(month);\n    }\n\n    return month.format(config.monthFormat);\n  }\n\n  // todo:: add unit tests\n  shouldShowLeft(min: Dayjs, currentMonthView: Dayjs): boolean {\n    return min ? min.isBefore(currentMonthView, 'month') : true;\n  }\n\n  // todo:: add unit tests\n  shouldShowRight(max: Dayjs, currentMonthView: Dayjs): boolean {\n    return max ? max.isAfter(currentMonthView, 'month') : true;\n  }\n\n  generateDaysIndexMap(firstDayOfWeek: WeekDays) {\n    const firstDayIndex = this.DAYS.indexOf(firstDayOfWeek);\n    const daysArr = this.DAYS.slice(firstDayIndex, 7).concat(this.DAYS.slice(0, firstDayIndex));\n    return daysArr.reduce((map, day, index) => {\n      map[index] = day;\n\n      return map;\n    }, <{[key: number]: string}>{});\n  }\n\n  getMonthCalendarConfig(componentConfig: IDayCalendarConfigInternal): IMonthCalendarConfig {\n    return this.utilsService.clearUndefined({\n      min: componentConfig.min,\n      max: componentConfig.max,\n      format: componentConfig.format,\n      isNavHeaderBtnClickable: true,\n      allowMultiSelect: false,\n      yearFormat: componentConfig.yearFormat,\n      yearFormatter: componentConfig.yearFormatter,\n      monthBtnFormat: componentConfig.monthBtnFormat,\n      monthBtnFormatter: componentConfig.monthBtnFormatter,\n      monthBtnCssClassCallback: componentConfig.monthBtnCssClassCallback,\n      isMonthDisabledCallback: componentConfig.isMonthDisabledCallback,\n      multipleYearsNavigateBy: componentConfig.multipleYearsNavigateBy,\n      showMultipleYearsNavigation: componentConfig.showMultipleYearsNavigation,\n      showGoToCurrent: componentConfig.showGoToCurrent,\n      numOfMonthRows: componentConfig.numOfMonthRows\n    });\n  }\n\n  getDayBtnText(config: IDayCalendarConfigInternal, day: Dayjs): string {\n    if (config.dayBtnFormatter) {\n      return config.dayBtnFormatter(day);\n    }\n\n    return day.format(config.dayBtnFormat);\n  }\n\n  getDayBtnCssClass(config: IDayCalendarConfigInternal, day: Dayjs): string {\n    if (config.dayBtnCssClassCallback) {\n      return config.dayBtnCssClassCallback(day);\n    }\n\n    return '';\n  }\n\n  private removeNearMonthWeeks(currentMonth: Dayjs, monthArray: IDay[][]): IDay[][] {\n    if (monthArray[monthArray.length - 1].find((day) => day.date.isSame(currentMonth, 'month'))) {\n      return monthArray;\n    } else {\n      return monthArray.slice(0, -1);\n    }\n  }\n}\n","import {Injectable} from '@angular/core';\n\nimport {UtilsService} from '../common/services/utils/utils.service';\nimport {ITimeSelectConfig, ITimeSelectConfigInternal} from './time-select-config.model';\nimport {Dayjs} from 'dayjs';\nimport {dayjsRef} from '../common/dayjs/dayjs.ref';\n\nexport type TimeUnit = 'hour' | 'minute' | 'second';\nexport const FIRST_PM_HOUR = 12;\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TimeSelectService {\n  readonly DEFAULT_CONFIG: ITimeSelectConfigInternal = {\n    hours12Format: 'hh',\n    hours24Format: 'HH',\n    meridiemFormat: 'A',\n    minutesFormat: 'mm',\n    minutesInterval: 1,\n    secondsFormat: 'ss',\n    secondsInterval: 1,\n    showSeconds: false,\n    showTwentyFourHours: false,\n    timeSeparator: ':',\n  };\n\n  constructor(private readonly utilsService: UtilsService) {\n  }\n\n  getConfig(config: ITimeSelectConfig): ITimeSelectConfigInternal {\n    const timeConfigs = {\n      maxTime: this.utilsService.onlyTime(config && config.maxTime),\n      minTime: this.utilsService.onlyTime(config && config.minTime)\n    };\n\n    return <ITimeSelectConfigInternal>{\n      ...this.DEFAULT_CONFIG,\n      ...this.utilsService.clearUndefined(config),\n      ...timeConfigs\n    };\n  }\n\n  getTimeFormat(config: ITimeSelectConfigInternal): string {\n    return (config.showTwentyFourHours ? config.hours24Format : config.hours12Format)\n      + config.timeSeparator + config.minutesFormat\n      + (config.showSeconds ? (config.timeSeparator + config.secondsFormat) : '')\n      + (config.showTwentyFourHours ? '' : ' ' + config.meridiemFormat);\n  }\n\n  getHours(config: ITimeSelectConfigInternal, t: Dayjs | null): string {\n    const time = t || dayjsRef();\n    return time && time.format(config.showTwentyFourHours ? config.hours24Format : config.hours12Format);\n  }\n\n  getMinutes(config: ITimeSelectConfigInternal, t: Dayjs | null): string {\n    const time = t || dayjsRef();\n    return time && time.format(config.minutesFormat);\n  }\n\n  getSeconds(config: ITimeSelectConfigInternal, t: Dayjs | null): string {\n    const time = t || dayjsRef();\n    return time && time.format(config.secondsFormat);\n  }\n\n  getMeridiem(config: ITimeSelectConfigInternal, time: Dayjs): string {\n    return time && time.format(config.meridiemFormat);\n  }\n\n  decrease(config: ITimeSelectConfigInternal, time: Dayjs, unit: TimeUnit): Dayjs {\n    let amount: number = 1;\n    switch (unit) {\n      case 'minute':\n        amount = config.minutesInterval;\n        break;\n      case 'second':\n        amount = config.secondsInterval;\n        break;\n    }\n    return time.subtract(amount, unit);\n  }\n\n  increase(config: ITimeSelectConfigInternal, time: Dayjs, unit: TimeUnit): Dayjs {\n    let amount: number = 1;\n    switch (unit) {\n      case 'minute':\n        amount = config.minutesInterval;\n        break;\n      case 'second':\n        amount = config.secondsInterval;\n        break;\n    }\n    return time.add(amount, unit);\n  }\n\n  toggleMeridiem(time: Dayjs): Dayjs {\n    if (time.hour() < FIRST_PM_HOUR) {\n      return time.add(12, 'hour');\n    } else {\n      return time.subtract(12, 'hour');\n    }\n  }\n\n  shouldShowDecrease(config: ITimeSelectConfigInternal, time: Dayjs, unit: TimeUnit): boolean {\n    if (!config.min && !config.minTime) {\n      return true;\n    }\n    const newTime = this.decrease(config, time, unit);\n\n    return (!config.min || config.min.isSameOrBefore(newTime))\n      && (!config.minTime || config.minTime.isSameOrBefore(this.utilsService.onlyTime(newTime)));\n  }\n\n  shouldShowIncrease(config: ITimeSelectConfigInternal, time: Dayjs, unit: TimeUnit): boolean {\n    if (!config.max && !config.maxTime) {\n      return true;\n    }\n    const newTime = this.increase(config, time, unit);\n\n    return (!config.max || config.max.isSameOrAfter(newTime))\n      && (!config.maxTime || config.maxTime.isSameOrAfter(this.utilsService.onlyTime(newTime)));\n  }\n\n  shouldShowToggleMeridiem(config: ITimeSelectConfigInternal, time: Dayjs): boolean {\n    if (!config.min && !config.max && !config.minTime && !config.maxTime) {\n      return true;\n    }\n    const newTime = this.toggleMeridiem(time);\n    return (!config.max || config.max.isSameOrAfter(newTime))\n      && (!config.min || config.min.isSameOrBefore(newTime))\n      && (!config.maxTime || config.maxTime.isSameOrAfter(this.utilsService.onlyTime(newTime)))\n      && (!config.minTime || config.minTime.isSameOrBefore(this.utilsService.onlyTime(newTime)));\n  }\n}\n","import {Injectable} from '@angular/core';\n\nimport {UtilsService} from '../common/services/utils/utils.service';\nimport {DayCalendarService} from '../day-calendar/day-calendar.service';\nimport {TimeSelectService} from '../time-select/time-select.service';\nimport {IDayTimeCalendarConfig, IDayTimeCalendarConfigInternal} from './day-time-calendar-config.model';\nimport {dayjsRef} from '../common/dayjs/dayjs.ref';\nimport {Dayjs} from 'dayjs';\nimport {IDayCalendarConfigInternal} from '../day-calendar/day-calendar-config.model';\n\nconst DAY_FORMAT = 'YYYYMMDD';\nconst TIME_FORMAT = 'HH:mm:ss';\nconst COMBINED_FORMAT = DAY_FORMAT + TIME_FORMAT;\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class DayTimeCalendarService {\n  readonly DEFAULT_CONFIG: IDayTimeCalendarConfig = {};\n\n  constructor(private utilsService: UtilsService,\n              private dayCalendarService: DayCalendarService,\n              private timeSelectService: TimeSelectService) {\n  }\n\n  getConfig(config: IDayTimeCalendarConfig): IDayTimeCalendarConfigInternal {\n    const _config =  {\n      ...this.DEFAULT_CONFIG,\n      ...this.timeSelectService.getConfig(config),\n      ...this.dayCalendarService.getConfig(config)\n    };\n\n    this.utilsService.convertPropsToDayjs(_config, _config.format, ['min', 'max']);\n\n    return _config as IDayTimeCalendarConfigInternal;\n  }\n\n  updateDay(current: Dayjs, day: Dayjs, config: IDayCalendarConfigInternal): Dayjs {\n    const time = current ? current : dayjsRef();\n    let updated = dayjsRef(day.format(DAY_FORMAT) + time.format(TIME_FORMAT), COMBINED_FORMAT);\n\n    if (config.min) {\n      const min = config.min;\n      updated = min.isAfter(updated) ? min : updated;\n    }\n\n    if (config.max) {\n      const max = config.max;\n      updated = max.isBefore(updated) ? max : updated;\n    }\n\n    return updated;\n  }\n\n  updateTime(current: Dayjs, time: Dayjs): Dayjs {\n    const day = current ? current : dayjsRef();\n\n    return dayjsRef(day.format(DAY_FORMAT) + time.format(TIME_FORMAT), COMBINED_FORMAT);\n  }\n}\n","import {EventEmitter, Injectable} from '@angular/core';\nimport {IDatePickerConfig, IDatePickerConfigInternal} from './date-picker-config.model';\n\nimport {UtilsService} from '../common/services/utils/utils.service';\nimport {IDayCalendarConfig} from '../day-calendar/day-calendar-config.model';\nimport {TimeSelectService} from '../time-select/time-select.service';\nimport {DayTimeCalendarService} from '../day-time-calendar/day-time-calendar.service';\nimport {ITimeSelectConfig} from '../time-select/time-select-config.model';\nimport {CalendarMode} from '../common/types/calendar-mode';\nimport {Dayjs} from 'dayjs';\nimport {IDayTimeCalendarConfig} from '../day-time-calendar/day-time-calendar-config.model';\nimport {ConnectionPositionPair} from '@angular/cdk/overlay';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DatePickerService {\n  readonly onPickerClosed: EventEmitter<null> = new EventEmitter();\n  private defaultConfig: IDatePickerConfigInternal = {\n    closeOnSelect: true,\n    closeOnSelectDelay: 100,\n    closeOnEnter: true,\n    format: 'DD-MM-YYYY',\n    openOnFocus: true,\n    openOnClick: true,\n    onOpenDelay: 0,\n    disableKeypress: false,\n    showNearMonthDays: true,\n    showWeekNumbers: false,\n    enableMonthSelector: true,\n    showGoToCurrent: true,\n    hideOnOutsideClick: true,\n  };\n\n  constructor(private readonly utilsService: UtilsService,\n              private readonly timeSelectService: TimeSelectService,\n              private readonly daytimeCalendarService: DayTimeCalendarService) {\n  }\n\n  // todo:: add unit tests\n  getConfig(config: IDatePickerConfig, mode: CalendarMode = 'daytime'): IDatePickerConfigInternal {\n    const _config = <IDatePickerConfigInternal>{\n      ...this.defaultConfig,\n      format: DatePickerService.getDefaultFormatByMode(mode),\n      ...this.utilsService.clearUndefined(config)\n    };\n\n    this.utilsService.convertPropsToDayjs(_config, _config.format, ['min', 'max']);\n\n    if (config && config.allowMultiSelect && config.closeOnSelect === undefined) {\n      _config.closeOnSelect = false;\n    }\n\n    return _config;\n  }\n\n  getDayConfigService(pickerConfig: IDatePickerConfig): IDayCalendarConfig {\n    return {\n      min: pickerConfig.min,\n      max: pickerConfig.max,\n      isDayDisabledCallback: pickerConfig.isDayDisabledCallback,\n      weekDayFormat: pickerConfig.weekDayFormat,\n      weekDayFormatter: pickerConfig.weekDayFormatter,\n      showNearMonthDays: pickerConfig.showNearMonthDays,\n      showWeekNumbers: pickerConfig.showWeekNumbers,\n      firstDayOfWeek: pickerConfig.firstDayOfWeek,\n      format: pickerConfig.format,\n      allowMultiSelect: pickerConfig.allowMultiSelect,\n      monthFormat: pickerConfig.monthFormat,\n      monthFormatter: pickerConfig.monthFormatter,\n      enableMonthSelector: pickerConfig.enableMonthSelector,\n      yearFormat: pickerConfig.yearFormat,\n      yearFormatter: pickerConfig.yearFormatter,\n      dayBtnFormat: pickerConfig.dayBtnFormat,\n      dayBtnFormatter: pickerConfig.dayBtnFormatter,\n      dayBtnCssClassCallback: pickerConfig.dayBtnCssClassCallback,\n      monthBtnFormat: pickerConfig.monthBtnFormat,\n      monthBtnFormatter: pickerConfig.monthBtnFormatter,\n      monthBtnCssClassCallback: pickerConfig.monthBtnCssClassCallback,\n      isMonthDisabledCallback: pickerConfig.isMonthDisabledCallback,\n      multipleYearsNavigateBy: pickerConfig.multipleYearsNavigateBy,\n      showMultipleYearsNavigation: pickerConfig.showMultipleYearsNavigation,\n      returnedValueType: pickerConfig.returnedValueType,\n      showGoToCurrent: pickerConfig.showGoToCurrent,\n      unSelectOnClick: pickerConfig.unSelectOnClick,\n      numOfMonthRows: pickerConfig.numOfMonthRows\n    };\n  }\n\n  getDayTimeConfig(pickerConfig: IDatePickerConfig): IDayTimeCalendarConfig {\n    return this.daytimeCalendarService.getConfig(pickerConfig);\n  }\n\n  getTimeConfig(pickerConfig: IDatePickerConfig): ITimeSelectConfig {\n    return this.timeSelectService.getConfig(pickerConfig);\n  }\n\n  pickerClosed() {\n    this.onPickerClosed.emit();\n  }\n\n  // todo:: add unit tests\n  isValidInputDateValue(value: string, config: IDatePickerConfig): boolean {\n    value = value ? value : '';\n    const datesStrArr: string[] = this.utilsService.datesStringToStringArray(value);\n\n    return datesStrArr.every(date => this.utilsService.isDateValid(date, config.format));\n  }\n\n  // todo:: add unit tests\n  convertInputValueToDayjsArray(value: string, config: IDatePickerConfig): Dayjs[] {\n    value = value ? value : '';\n    const datesStrArr: string[] = this.utilsService.datesStringToStringArray(value);\n\n    return this.utilsService.convertToDayjsArray(datesStrArr, config);\n  }\n\n  getOverlayPosition({drops, opens}: IDatePickerConfig):  ConnectionPositionPair[] | undefined {\n    if (!drops && !opens) {\n      return undefined;\n    }\n\n    return [{\n      originX: opens ? opens === 'left' ? 'start' : 'end' : 'start',\n      originY:  drops ? drops === 'up' ? 'top' : 'bottom' : 'bottom',\n      overlayX: opens ? opens === 'left' ? 'start' : 'end' : 'start',\n      overlayY: drops ? drops === 'up' ? 'bottom' : 'top' : 'top',\n    }];\n  }\n\n  private static getDefaultFormatByMode(mode: CalendarMode): string {\n    switch (mode) {\n      case 'day':\n        return 'DD-MM-YYYY';\n      case 'daytime':\n        return 'DD-MM-YYYY HH:mm:ss';\n      case 'time':\n        return 'HH:mm:ss';\n      case 'month':\n        return 'MMM, YYYY';\n    }\n  }\n}\n","import {Injectable} from '@angular/core';\n\nimport {UtilsService} from '../common/services/utils/utils.service';\nimport {IMonth} from './month.model';\nimport {IMonthCalendarConfig, IMonthCalendarConfigInternal} from './month-calendar-config';\nimport {Dayjs} from 'dayjs';\nimport {dayjsRef} from '../common/dayjs/dayjs.ref';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MonthCalendarService {\n  readonly DEFAULT_CONFIG: IMonthCalendarConfigInternal = {\n    allowMultiSelect: false,\n    yearFormat: 'YYYY',\n    format: 'MM-YYYY',\n    isNavHeaderBtnClickable: false,\n    monthBtnFormat: 'MMM',\n    multipleYearsNavigateBy: 10,\n    showMultipleYearsNavigation: false,\n    unSelectOnClick: true,\n    numOfMonthRows: 3\n  };\n\n  constructor(private utilsService: UtilsService) {\n  }\n\n  getConfig(config: IMonthCalendarConfig): IMonthCalendarConfigInternal {\n    const _config = <IMonthCalendarConfigInternal>{\n      ...this.DEFAULT_CONFIG,\n      ...this.utilsService.clearUndefined(config)\n    };\n\n    MonthCalendarService.validateConfig(_config);\n    this.utilsService.convertPropsToDayjs(_config, _config.format, ['min', 'max']);\n\n    return _config;\n  }\n\n  generateYear(config: IMonthCalendarConfig, year: Dayjs, selected: Dayjs[] = null): IMonth[][] {\n    let index = year.startOf('year');\n\n    return this.utilsService.createArray(config.numOfMonthRows).map(() => {\n      return this.utilsService.createArray(12 / config.numOfMonthRows).map(() => {\n        const date = dayjsRef(index);\n        const month = {\n          date,\n          selected: !!selected.find(s => index.isSame(s, 'month')),\n          currentMonth: index.isSame(dayjsRef(), 'month'),\n          disabled: this.isMonthDisabled(date, config),\n          text: this.getMonthBtnText(config, date)\n        };\n\n        index = index.add(1, 'month');\n\n        return month;\n      });\n    });\n  }\n\n  isMonthDisabled(date: Dayjs, config: IMonthCalendarConfig) {\n    if (config.isMonthDisabledCallback) {\n      return config.isMonthDisabledCallback(date);\n    }\n\n    if (config.min && date.isBefore(config.min, 'month')) {\n      return true;\n    }\n\n    return !!(config.max && date.isAfter(config.max, 'month'));\n  }\n\n  shouldShowLeft(min: Dayjs, currentMonthView: Dayjs): boolean {\n    return min ? min.isBefore(currentMonthView, 'year') : true;\n  }\n\n  shouldShowRight(max: Dayjs, currentMonthView: Dayjs): boolean {\n    return max ? max.isAfter(currentMonthView, 'year') : true;\n  }\n\n  getHeaderLabel(config: IMonthCalendarConfig, year: Dayjs): string {\n    if (config.yearFormatter) {\n      return config.yearFormatter(year);\n    }\n\n    return year.format(config.yearFormat);\n  }\n\n  getMonthBtnText(config: IMonthCalendarConfig, month: Dayjs): string {\n    if (config.monthBtnFormatter) {\n      return config.monthBtnFormatter(month);\n    }\n\n    return month.format(config.monthBtnFormat);\n  }\n\n  getMonthBtnCssClass(config: IMonthCalendarConfig, month: Dayjs): string {\n    if (config.monthBtnCssClassCallback) {\n      return config.monthBtnCssClassCallback(month);\n    }\n\n    return '';\n  }\n\n  private static validateConfig(config: IMonthCalendarConfigInternal): void {\n    if (config.numOfMonthRows < 1 || config.numOfMonthRows > 12 || !Number.isInteger(12 / config.numOfMonthRows)) {\n      throw new Error('numOfMonthRows has to be between 1 - 12 and divide 12 to integer');\n    }\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  HostBinding,\n  Input,\n  Output,\n  ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n    selector: 'dp-calendar-nav',\n    templateUrl: './calendar-nav.component.html',\n    styleUrls: ['./calendar-nav.component.less'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class CalendarNavComponent {\n  @Input() label: string;\n  @Input() isLabelClickable: boolean = false;\n  @Input() showLeftNav: boolean = true;\n  @Input() showLeftSecondaryNav: boolean = false;\n  @Input() showRightNav: boolean = true;\n  @Input() showRightSecondaryNav: boolean = false;\n  @Input() leftNavDisabled: boolean = false;\n  @Input() leftSecondaryNavDisabled: boolean = false;\n  @Input() rightNavDisabled: boolean = false;\n  @Input() rightSecondaryNavDisabled: boolean = false;\n  @Input() showGoToCurrent: boolean = true;\n  @HostBinding('class') @Input() theme: string;\n\n  @Output() onLeftNav: EventEmitter<null> = new EventEmitter();\n  @Output() onLeftSecondaryNav: EventEmitter<null> = new EventEmitter();\n  @Output() onRightNav: EventEmitter<null> = new EventEmitter();\n  @Output() onRightSecondaryNav: EventEmitter<null> = new EventEmitter();\n  @Output() onLabelClick: EventEmitter<null> = new EventEmitter();\n  @Output() onGoToCurrent: EventEmitter<null> = new EventEmitter();\n\n  leftNavClicked() {\n    this.onLeftNav.emit();\n  }\n\n  leftSecondaryNavClicked() {\n    this.onLeftSecondaryNav.emit();\n  }\n\n  rightNavClicked() {\n    this.onRightNav.emit();\n  }\n\n  rightSecondaryNavClicked() {\n    this.onRightSecondaryNav.emit();\n  }\n\n  labelClicked() {\n    this.onLabelClick.emit();\n  }\n}\n","<div class=\"dp-calendar-nav-container\" dir=\"ltr\">\n  <div class=\"dp-nav-header\">\n    <span [attr.data-hidden]=\"isLabelClickable\"\n      [hidden]=\"isLabelClickable\"\n      [innerText]=\"label\">\n    </span>\n    <button (click)=\"labelClicked()\"\n      [attr.data-hidden]=\"!isLabelClickable\"\n      [hidden]=\"!isLabelClickable\"\n      [innerText]=\"label\"\n      class=\"dp-nav-header-btn\"\n      type=\"button\">\n    </button>\n  </div>\n\n  <div class=\"dp-nav-btns-container\">\n    <div class=\"dp-calendar-nav-container-left\">\n      @if (showLeftSecondaryNav) {\n        <button (click)=\"leftSecondaryNavClicked()\"\n          [disabled]=\"leftSecondaryNavDisabled\"\n          class=\"dp-calendar-secondary-nav-left\"\n          type=\"button\">\n        </button>\n      }\n      <button (click)=\"leftNavClicked()\"\n        [attr.data-hidden]=\"!showLeftNav\"\n        [disabled]=\"leftNavDisabled\"\n        [hidden]=\"!showLeftNav\"\n        class=\"dp-calendar-nav-left\"\n        type=\"button\">\n      </button>\n    </div>\n    @if (showGoToCurrent) {\n      <button (click)=\"onGoToCurrent.emit()\"\n        class=\"dp-current-location-btn\"\n        type=\"button\">\n      </button>\n    }\n    <div class=\"dp-calendar-nav-container-right\">\n      <button (click)=\"rightNavClicked()\"\n        [attr.data-hidden]=\"!showRightNav\"\n        [disabled]=\"rightNavDisabled\"\n        [hidden]=\"!showRightNav\"\n        class=\"dp-calendar-nav-right\"\n        type=\"button\">\n      </button>\n      @if (showRightSecondaryNav) {\n        <button (click)=\"rightSecondaryNavClicked()\"\n          [disabled]=\"rightSecondaryNavDisabled\"\n          class=\"dp-calendar-secondary-nav-right\"\n          type=\"button\">\n        </button>\n      }\n    </div>\n  </div>\n</div>\n","import {ECalendarValue} from '../common/types/calendar-value-enum';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  SimpleChanges,\n  ViewEncapsulation\n} from '@angular/core';\nimport {IMonth} from './month.model';\nimport {MonthCalendarService} from './month-calendar.service';\n\nimport {IMonthCalendarConfig, IMonthCalendarConfigInternal} from './month-calendar-config';\nimport {\n  ControlValueAccessor,\n  UntypedFormControl,\n  NG_VALIDATORS,\n  NG_VALUE_ACCESSOR,\n  ValidationErrors,\n  Validator\n} from '@angular/forms';\nimport {CalendarValue} from '../common/types/calendar-value';\nimport {UtilsService} from '../common/services/utils/utils.service';\nimport {DateValidator} from '../common/types/validator.type';\nimport {SingleCalendarValue} from '../common/types/single-calendar-value';\nimport {INavEvent} from '../common/models/navigation-event.model';\nimport {Dayjs} from 'dayjs';\nimport {dayjsRef} from '../common/dayjs/dayjs.ref';\n\n@Component({\n    selector: 'dp-month-calendar',\n    templateUrl: 'month-calendar.component.html',\n    styleUrls: ['month-calendar.component.less'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        MonthCalendarService,\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => MonthCalendarComponent),\n            multi: true\n        },\n        {\n            provide: NG_VALIDATORS,\n            useExisting: forwardRef(() => MonthCalendarComponent),\n            multi: true\n        }\n    ],\n    standalone: false\n})\nexport class MonthCalendarComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {\n\n  @Input() config: IMonthCalendarConfig;\n  @Input() displayDate: Dayjs | string;\n  @Input() minDate: Dayjs;\n  @Input() maxDate: Dayjs;\n  @HostBinding('class') @Input() theme: string;\n  @Output() onSelect: EventEmitter<IMonth> = new EventEmitter();\n  @Output() onNavHeaderBtnClick: EventEmitter<null> = new EventEmitter();\n  @Output() onGoToCurrent: EventEmitter<void> = new EventEmitter();\n  @Output() onLeftNav: EventEmitter<INavEvent> = new EventEmitter();\n  @Output() onRightNav: EventEmitter<INavEvent> = new EventEmitter();\n  @Output() onLeftSecondaryNav: EventEmitter<INavEvent> = new EventEmitter();\n  @Output() onRightSecondaryNav: EventEmitter<INavEvent> = new EventEmitter();\n  isInited: boolean = false;\n  componentConfig: IMonthCalendarConfigInternal;\n  yearMonths: IMonth[][];\n  inputValue: CalendarValue;\n  inputValueType: ECalendarValue;\n  validateFn: DateValidator;\n  _shouldShowCurrent: boolean = true;\n  navLabel: string;\n  showLeftNav: boolean;\n  showRightNav: boolean;\n  showSecondaryLeftNav: boolean;\n  showSecondaryRightNav: boolean;\n  api = {\n    toggleCalendar: this.toggleCalendarMode.bind(this),\n    moveCalendarTo: this.moveCalendarTo.bind(this)\n  };\n\n  constructor(public readonly monthCalendarService: MonthCalendarService,\n              public readonly utilsService: UtilsService,\n              public readonly cd: ChangeDetectorRef) {\n  }\n\n  _selected: Dayjs[];\n\n  get selected(): Dayjs[] {\n    return this._selected;\n  }\n\n  set selected(selected: Dayjs[]) {\n    this._selected = selected;\n    this.onChangeCallback(this.processOnChangeCallback(selected));\n  }\n\n  _currentDateView: Dayjs;\n\n  get currentDateView(): Dayjs {\n    return this._currentDateView;\n  }\n\n  set currentDateView(current: Dayjs) {\n    this._currentDateView = dayjsRef(current.toDate());\n    this.yearMonths = this.monthCalendarService\n      .generateYear(this.componentConfig, this._currentDateView, this.selected);\n    this.navLabel = this.monthCalendarService.getHeaderLabel(this.componentConfig, this.currentDateView);\n    this.showLeftNav = this.monthCalendarService.shouldShowLeft(this.componentConfig.min, this._currentDateView);\n    this.showRightNav = this.monthCalendarService.shouldShowRight(this.componentConfig.max, this.currentDateView);\n    this.showSecondaryLeftNav = this.componentConfig.showMultipleYearsNavigation && this.showLeftNav;\n    this.showSecondaryRightNav = this.componentConfig.showMultipleYearsNavigation && this.showRightNav;\n  }\n\n  ngOnInit(): void {\n    this.isInited = true;\n    this.init();\n    this.initValidators();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (this.isInited) {\n      const {minDate, maxDate, config} = changes;\n\n      this.handleConfigChange(config);\n      this.init();\n\n      if (minDate || maxDate) {\n        this.initValidators();\n      }\n      this.cd.markForCheck()\n    }\n  }\n\n  init(): void {\n    this.componentConfig = this.monthCalendarService.getConfig(this.config);\n    this.selected = this.selected || [];\n    this.currentDateView = (this.displayDate as Dayjs) ?? this.utilsService\n      .getDefaultDisplayDate(\n        this.currentDateView,\n        this.selected,\n        this.componentConfig.allowMultiSelect,\n        this.componentConfig.min\n      );\n    this.inputValueType = this.utilsService.getInputType(this.inputValue, this.componentConfig.allowMultiSelect);\n    this._shouldShowCurrent = this.shouldShowCurrent();\n  }\n\n  writeValue(value: CalendarValue): void {\n    this.inputValue = value;\n\n    if (value) {\n      this.selected = this.utilsService\n        .convertToDayjsArray(value, this.componentConfig);\n      this.yearMonths = this.monthCalendarService\n        .generateYear(this.componentConfig, this.currentDateView, this.selected);\n      this.inputValueType = this.utilsService.getInputType(this.inputValue, this.componentConfig.allowMultiSelect);\n    } else {\n      this.selected = [];\n      this.yearMonths = this.monthCalendarService\n        .generateYear(this.componentConfig, this.currentDateView, this.selected);\n    }\n\n    this.cd.markForCheck();\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChangeCallback = fn;\n  }\n\n  onChangeCallback(_: any): void {\n  }\n\n  registerOnTouched(fn: any): void {\n  }\n\n  validate(formControl: UntypedFormControl): ValidationErrors | any {\n    if (this.minDate || this.maxDate) {\n      return this.validateFn(formControl.value);\n    } else {\n      return () => null;\n    }\n  }\n\n  processOnChangeCallback(value: Dayjs[]): CalendarValue {\n    return this.utilsService.convertFromDayjsArray(\n      this.componentConfig.format,\n      value,\n      this.componentConfig.returnedValueType || this.inputValueType\n    );\n  }\n\n  initValidators(): void {\n    this.validateFn = this.validateFn = this.utilsService.createValidator(\n      {minDate: this.minDate, maxDate: this.maxDate},\n      this.componentConfig.format,\n      'month'\n    );\n\n    this.onChangeCallback(this.processOnChangeCallback(this.selected));\n  }\n\n  monthClicked(month: IMonth): void {\n    if (month.selected && !this.componentConfig.unSelectOnClick) {\n      return;\n    }\n\n    this.selected = this.utilsService\n      .updateSelected(this.componentConfig.allowMultiSelect, this.selected, month, 'month');\n    this.yearMonths = this.monthCalendarService\n      .generateYear(this.componentConfig, this.currentDateView, this.selected);\n    this.onSelect.emit(month);\n  }\n\n  onLeftNavClick() {\n    const from = dayjsRef(this.currentDateView.toDate());\n    this.currentDateView = this.currentDateView.subtract(1, 'year');\n    const to = dayjsRef(this.currentDateView.toDate());\n    this.yearMonths = this.monthCalendarService.generateYear(this.componentConfig, this.currentDateView, this.selected);\n    this.onLeftNav.emit({from, to});\n  }\n\n  onLeftSecondaryNavClick(): void {\n    let navigateBy = this.componentConfig.multipleYearsNavigateBy;\n    const isOutsideRange = this.componentConfig.min &&\n      this.currentDateView.year() - this.componentConfig.min.year() < navigateBy;\n\n    if (isOutsideRange) {\n      navigateBy = this.currentDateView.year() - this.componentConfig.min.year();\n    }\n\n    const from = dayjsRef(this.currentDateView.toDate());\n    this.currentDateView = this.currentDateView.subtract(navigateBy, 'year');\n    const to = dayjsRef(this.currentDateView.toDate());\n    this.onLeftSecondaryNav.emit({from, to});\n  }\n\n  onRightNavClick(): void {\n    const from = dayjsRef(this.currentDateView.toDate());\n    this.currentDateView = this.currentDateView.add(1, 'year');\n    const to = dayjsRef(this.currentDateView.toDate());\n    this.onRightNav.emit({from, to});\n  }\n\n  onRightSecondaryNavClick(): void {\n    let navigateBy = this.componentConfig.multipleYearsNavigateBy;\n    const isOutsideRange = this.componentConfig.max &&\n      this.componentConfig.max.year() - this.currentDateView.year() < navigateBy;\n\n    if (isOutsideRange) {\n      navigateBy = this.componentConfig.max.year() - this.currentDateView.year();\n    }\n\n    const from = dayjsRef(this.currentDateView.toDate());\n    this.currentDateView = this.currentDateView.add(navigateBy, 'year');\n    const to = dayjsRef(this.currentDateView.toDate());\n    this.onRightSecondaryNav.emit({from, to});\n  }\n\n  toggleCalendarMode(): void {\n    this.onNavHeaderBtnClick.emit();\n  }\n\n  getMonthBtnCssClass(month: IMonth): { [klass: string]: boolean } {\n    const cssClass: { [klass: string]: boolean } = {\n      'dp-selected': month.selected,\n      'dp-current-month': month.currentMonth\n    };\n    const customCssClass: string = this.monthCalendarService.getMonthBtnCssClass(this.componentConfig, month.date);\n\n    if (customCssClass) {\n      cssClass[customCssClass] = true;\n    }\n\n    return cssClass;\n  }\n\n  shouldShowCurrent(): boolean {\n    return this.utilsService.shouldShowCurrent(\n      this.componentConfig.showGoToCurrent,\n      'month',\n      this.componentConfig.min,\n      this.componentConfig.max\n    );\n  }\n\n  goToCurrent(): void {\n    this.currentDateView = dayjsRef();\n    this.onGoToCurrent.emit();\n  }\n\n  moveCalendarTo(to: SingleCalendarValue): void {\n    if (to) {\n      this.currentDateView = this.utilsService.convertToDayjs(to, this.componentConfig.format);\n      this.cd.markForCheck();\n    }\n  }\n\n  handleConfigChange(config: SimpleChange): void {\n    if (config) {\n      const prevConf: IMonthCalendarConfigInternal = this.monthCalendarService.getConfig(config.previousValue);\n      const currentConf: IMonthCalendarConfigInternal = this.monthCalendarService.getConfig(config.currentValue);\n\n      if (this.utilsService.shouldResetCurrentView(prevConf, currentConf)) {\n        this._currentDateView = null;\n      }\n    }\n  }\n}\n","<div class=\"dp-month-calendar-container\" dir=\"ltr\">\n  <dp-calendar-nav\n    (onGoToCurrent)=\"goToCurrent()\"\n    (onLabelClick)=\"toggleCalendarMode()\"\n    (onLeftNav)=\"onLeftNavClick()\"\n    (onLeftSecondaryNav)=\"onLeftSecondaryNavClick()\"\n    (onRightNav)=\"onRightNavClick()\"\n    (onRightSecondaryNav)=\"onRightSecondaryNavClick()\"\n    [isLabelClickable]=\"componentConfig.isNavHeaderBtnClickable\"\n    [label]=\"navLabel\"\n    [showGoToCurrent]=\"shouldShowCurrent()\"\n    [showLeftNav]=\"showLeftNav\"\n    [showLeftSecondaryNav]=\"showSecondaryLeftNav\"\n    [showRightNav]=\"showRightNav\"\n    [showRightSecondaryNav]=\"showSecondaryRightNav\"\n    [theme]=\"theme\">\n  </dp-calendar-nav>\n\n  <div class=\"dp-calendar-wrapper\">\n    @for (monthRow of yearMonths; track monthRow) {\n      <div class=\"dp-months-row\">\n        @for (month of monthRow; track month) {\n          <button (click)=\"monthClicked(month)\"\n            [attr.data-date]=\"month.date.format(componentConfig.format)\"\n            [disabled]=\"month.disabled\"\n            [innerText]=\"month.text\"\n            [ngClass]=\"getMonthBtnCssClass(month)\"\n            class=\"dp-calendar-month\"\n            type=\"button\">\n          </button>\n        }\n      </div>\n    }\n  </div>\n</div>\n","import {ECalendarValue} from '../common/types/calendar-value-enum';\nimport {SingleCalendarValue} from '../common/types/single-calendar-value';\nimport {ECalendarMode} from '../common/types/calendar-mode-enum';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  SimpleChanges,\n  ViewEncapsulation\n} from '@angular/core';\nimport {DayCalendarService} from './day-calendar.service';\n\nimport {Dayjs, ManipulateType} from 'dayjs';\nimport {IDayCalendarConfig, IDayCalendarConfigInternal} from './day-calendar-config.model';\nimport {IDay} from './day.model';\nimport {\n  ControlValueAccessor,\n  UntypedFormControl,\n  NG_VALIDATORS,\n  NG_VALUE_ACCESSOR,\n  ValidationErrors,\n  Validator\n} from '@angular/forms';\nimport {CalendarValue} from '../common/types/calendar-value';\nimport {UtilsService} from '../common/services/utils/utils.service';\nimport {IMonthCalendarConfig} from '../month-calendar/month-calendar-config';\nimport {IMonth} from '../month-calendar/month.model';\nimport {DateValidator} from '../common/types/validator.type';\nimport {INavEvent} from '../common/models/navigation-event.model';\nimport {dayjsRef} from '../common/dayjs/dayjs.ref';\n\n@Component({\n    selector: 'dp-day-calendar',\n    templateUrl: 'day-calendar.component.html',\n    styleUrls: ['day-calendar.component.less'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        DayCalendarService,\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => DayCalendarComponent),\n            multi: true\n        },\n        {\n            provide: NG_VALIDATORS,\n            useExisting: forwardRef(() => DayCalendarComponent),\n            multi: true\n        }\n    ],\n    standalone: false\n})\nexport class DayCalendarComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {\n\n  @Input() config: IDayCalendarConfig;\n  @Input() displayDate: SingleCalendarValue;\n  @Input() minDate: Dayjs;\n  @Input() maxDate: Dayjs;\n  @HostBinding('class') @Input() theme: string;\n  @Output() onSelect: EventEmitter<IDay> = new EventEmitter();\n  @Output() onMonthSelect: EventEmitter<IMonth> = new EventEmitter();\n  @Output() onNavHeaderBtnClick: EventEmitter<ECalendarMode> = new EventEmitter();\n  @Output() onGoToCurrent: EventEmitter<void> = new EventEmitter();\n  @Output() onLeftNav: EventEmitter<INavEvent> = new EventEmitter();\n  @Output() onRightNav: EventEmitter<INavEvent> = new EventEmitter();\n  CalendarMode = ECalendarMode;\n  isInited: boolean = false;\n  componentConfig: IDayCalendarConfigInternal;\n  weeks: IDay[][];\n  weekdays: Dayjs[];\n  inputValue: CalendarValue;\n  inputValueType: ECalendarValue;\n  validateFn: DateValidator;\n  currentCalendarMode: ECalendarMode = ECalendarMode.Day;\n  monthCalendarConfig: IMonthCalendarConfig;\n  _shouldShowCurrent: boolean = true;\n  navLabel: string;\n  showLeftNav: boolean;\n  showRightNav: boolean;\n  api = {\n    moveCalendarsBy: this.moveCalendarsBy.bind(this),\n    moveCalendarTo: this.moveCalendarTo.bind(this),\n    toggleCalendarMode: this.toggleCalendarMode.bind(this)\n  };\n\n  constructor(public readonly dayCalendarService: DayCalendarService,\n              public readonly utilsService: UtilsService,\n              public readonly cd: ChangeDetectorRef) {\n  }\n\n  _selected: Dayjs[];\n\n  get selected(): Dayjs[] {\n    return this._selected;\n  }\n\n  set selected(selected: Dayjs[]) {\n    this._selected = selected;\n    this.onChangeCallback(this.processOnChangeCallback(selected));\n  }\n\n  _currentDateView: Dayjs;\n\n  get currentDateView(): Dayjs {\n    return this._currentDateView;\n  }\n\n  set currentDateView(current: Dayjs) {\n    this._currentDateView = dayjsRef(current.toDate());\n    this.weeks = this.dayCalendarService\n      .generateMonthArray(this.componentConfig, this._currentDateView, this.selected);\n    this.navLabel = this.dayCalendarService.getHeaderLabel(this.componentConfig, this._currentDateView);\n    this.showLeftNav = this.dayCalendarService.shouldShowLeft(this.componentConfig.min, this.currentDateView);\n    this.showRightNav = this.dayCalendarService.shouldShowRight(this.componentConfig.max, this.currentDateView);\n  }\n  ;\n\n  ngOnInit() {\n    this.isInited = true;\n    this.init();\n    this.initValidators();\n  }\n\n  init() {\n    this.componentConfig = this.dayCalendarService.getConfig(this.config);\n    this.selected = this.selected || [];\n    this.currentDateView = this.displayDate\n      ? this.utilsService.convertToDayjs(this.displayDate, this.componentConfig.format)\n      : this.utilsService\n        .getDefaultDisplayDate(\n          this.currentDateView,\n          this.selected,\n          this.componentConfig.allowMultiSelect,\n          this.componentConfig.min\n        );\n    this.weekdays = this.dayCalendarService\n      .generateWeekdays(this.componentConfig.firstDayOfWeek);\n    this.inputValueType = this.utilsService.getInputType(this.inputValue, this.componentConfig.allowMultiSelect);\n    this.monthCalendarConfig = this.dayCalendarService.getMonthCalendarConfig(this.componentConfig);\n    this._shouldShowCurrent = this.shouldShowCurrent();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (this.isInited) {\n      const {minDate, maxDate, config} = changes;\n\n      this.handleConfigChange(config);\n      this.init();\n\n      if (minDate || maxDate) {\n        this.initValidators();\n      }\n    }\n  }\n\n  writeValue(value: CalendarValue): void {\n    this.inputValue = value;\n\n    if (value) {\n      this.selected = this.utilsService\n        .convertToDayjsArray(value, this.componentConfig);\n      this.inputValueType = this.utilsService\n        .getInputType(this.inputValue, this.componentConfig.allowMultiSelect);\n    } else {\n      this.selected = [];\n    }\n\n    this.weeks = this.dayCalendarService\n      .generateMonthArray(this.componentConfig, this.currentDateView, this.selected);\n\n    this.cd.markForCheck();\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChangeCallback = fn;\n  }\n\n  onChangeCallback(_: any) {\n  }\n\n  registerOnTouched(fn: any): void {\n  }\n\n  validate(formControl: UntypedFormControl): ValidationErrors | any {\n    if (this.minDate || this.maxDate) {\n      return this.validateFn(formControl.value);\n    } else {\n      return () => null;\n    }\n  }\n\n  processOnChangeCallback(value: Dayjs[]): CalendarValue {\n    return this.utilsService.convertFromDayjsArray(\n      this.componentConfig.format,\n      value,\n      this.componentConfig.returnedValueType || this.inputValueType\n    );\n  }\n\n  initValidators() {\n    this.validateFn = this.utilsService.createValidator(\n      {minDate: this.minDate, maxDate: this.maxDate},\n      this.componentConfig.format,\n      'day'\n    );\n\n    this.onChangeCallback(this.processOnChangeCallback(this.selected));\n  }\n\n  dayClicked(day: IDay) {\n    if (day.selected && !this.componentConfig.unSelectOnClick) {\n      return;\n    }\n\n    this.selected = this.utilsService\n      .updateSelected(this.componentConfig.allowMultiSelect, this.selected, day);\n    this.weeks = this.dayCalendarService\n      .generateMonthArray(this.componentConfig, this.currentDateView, this.selected);\n    this.onSelect.emit(day);\n  }\n\n  getDayBtnText(day: IDay): string {\n    return this.dayCalendarService.getDayBtnText(this.componentConfig, day.date);\n  }\n\n  getDayBtnCssClass(day: IDay): { [klass: string]: boolean } {\n    const cssClasses: { [klass: string]: boolean } = {\n      'dp-selected': day.selected,\n      'dp-current-month': day.currentMonth,\n      'dp-prev-month': day.prevMonth,\n      'dp-next-month': day.nextMonth,\n      'dp-current-day': day.currentDay\n    };\n    const customCssClass: string = this.dayCalendarService.getDayBtnCssClass(this.componentConfig, day.date);\n    if (customCssClass) {\n      cssClasses[customCssClass] = true;\n    }\n\n    return cssClasses;\n  }\n\n  onLeftNavClick() {\n    const from = dayjsRef(this.currentDateView.toDate());\n    this.moveCalendarsBy(this.currentDateView, -1, 'month');\n    const to = dayjsRef(this.currentDateView.toDate());\n    this.onLeftNav.emit({from, to});\n  }\n\n  onRightNavClick() {\n    const from = dayjsRef(this.currentDateView.toDate());\n    this.moveCalendarsBy(this.currentDateView, 1, 'month');\n    const to = dayjsRef(this.currentDateView.toDate());\n    this.onRightNav.emit({from, to});\n  }\n\n  onMonthCalendarLeftClick(change: INavEvent) {\n    this.onLeftNav.emit(change);\n  }\n\n  onMonthCalendarRightClick(change: INavEvent) {\n    this.onRightNav.emit(change);\n  }\n\n  onMonthCalendarSecondaryLeftClick(change: INavEvent) {\n    this.onRightNav.emit(change);\n  }\n\n  onMonthCalendarSecondaryRightClick(change: INavEvent) {\n    this.onLeftNav.emit(change);\n  }\n\n  getWeekdayName(weekday: Dayjs): string {\n    if (this.componentConfig.weekDayFormatter) {\n      return this.componentConfig.weekDayFormatter(weekday.day());\n    }\n\n    return weekday.format(this.componentConfig.weekDayFormat);\n  }\n\n  toggleCalendarMode(mode: ECalendarMode) {\n    if (this.currentCalendarMode !== mode) {\n      this.currentCalendarMode = mode;\n      this.onNavHeaderBtnClick.emit(mode);\n    }\n\n    this.cd.markForCheck();\n  }\n\n  monthSelected(month: IMonth) {\n    this.currentDateView = dayjsRef(month.date.toDate());\n    this.currentCalendarMode = ECalendarMode.Day;\n    this.onMonthSelect.emit(month);\n  }\n\n  moveCalendarsBy(current: Dayjs, amount: number, granularity: ManipulateType = 'month') {\n    this.currentDateView = dayjsRef(current.toDate()).add(amount, granularity);\n    this.cd.markForCheck();\n  }\n\n  moveCalendarTo(to: SingleCalendarValue) {\n    if (to) {\n      this.currentDateView = this.utilsService.convertToDayjs(to, this.componentConfig.format);\n    }\n\n    this.cd.markForCheck();\n  }\n\n  shouldShowCurrent(): boolean {\n    return this.utilsService.shouldShowCurrent(\n      this.componentConfig.showGoToCurrent,\n      'day',\n      this.componentConfig.min,\n      this.componentConfig.max\n    );\n  }\n\n  goToCurrent() {\n    this.currentDateView = dayjsRef();\n    this.onGoToCurrent.emit();\n  }\n\n  handleConfigChange(config: SimpleChange): void {\n    if (config) {\n      const prevConf: IDayCalendarConfigInternal = this.dayCalendarService.getConfig(config.previousValue);\n      const currentConf: IDayCalendarConfigInternal = this.dayCalendarService.getConfig(config.currentValue);\n\n      if (this.utilsService.shouldResetCurrentView(prevConf, currentConf)) {\n        this._currentDateView = null;\n      }\n    }\n  }\n}\n","@if (currentCalendarMode ===  CalendarMode.Day) {\n  <div class=\"dp-day-calendar-container\" dir=\"ltr\">\n    <dp-calendar-nav\n      (onGoToCurrent)=\"goToCurrent()\"\n      (onLabelClick)=\"toggleCalendarMode(CalendarMode.Month)\"\n      (onLeftNav)=\"onLeftNavClick()\"\n      (onRightNav)=\"onRightNavClick()\"\n      [isLabelClickable]=\"componentConfig.enableMonthSelector\"\n      [label]=\"navLabel\"\n      [showGoToCurrent]=\"_shouldShowCurrent\"\n      [showLeftNav]=\"showLeftNav\"\n      [showRightNav]=\"showRightNav\"\n      [theme]=\"theme\">\n    </dp-calendar-nav>\n    <div [ngClass]=\"{'dp-hide-near-month': !componentConfig.showNearMonthDays}\"\n      class=\"dp-calendar-wrapper\">\n      <div class=\"dp-weekdays\">\n        @for (weekday of weekdays; track weekday) {\n          <span\n            [innerText]=\"getWeekdayName(weekday)\"\n            class=\"dp-calendar-weekday\">\n          </span>\n        }\n      </div>\n      @for (week of weeks; track week) {\n        <div class=\"dp-calendar-week\">\n          @if (componentConfig.showWeekNumbers) {\n            <span\n              [innerText]=\"week[0].date.isoWeek()\"\n              class=\"dp-week-number\">\n            </span>\n          }\n          @for (day of week; track day) {\n            <button (click)=\"dayClicked(day)\"\n              [attr.data-date]=\"day.date.format(componentConfig.format)\"\n              [disabled]=\"day.disabled\"\n              [innerText]=\"getDayBtnText(day)\"\n              [ngClass]=\"getDayBtnCssClass(day)\"\n              class=\"dp-calendar-day\"\n              type=\"button\">\n            </button>\n          }\n        </div>\n      }\n    </div>\n  </div>\n}\n\n@if (currentCalendarMode ===  CalendarMode.Month) {\n  <dp-month-calendar\n    (onLeftNav)=\"onMonthCalendarLeftClick($event)\"\n    (onLeftSecondaryNav)=\"onMonthCalendarSecondaryLeftClick($event)\"\n    (onNavHeaderBtnClick)=\"toggleCalendarMode(CalendarMode.Day)\"\n    (onRightNav)=\"onMonthCalendarRightClick($event)\"\n    (onRightSecondaryNav)=\"onMonthCalendarSecondaryRightClick($event)\"\n    (onSelect)=\"monthSelected($event)\"\n    [config]=\"monthCalendarConfig\"\n    [displayDate]=\"_currentDateView\"\n    [ngModel]=\"_selected\"\n    [theme]=\"theme\">\n  </dp-month-calendar>\n}\n","import {ECalendarValue} from '../common/types/calendar-value-enum';\nimport {SingleCalendarValue} from '../common/types/single-calendar-value';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  SimpleChanges,\n  ViewEncapsulation\n} from '@angular/core';\nimport {TimeSelectService, TimeUnit} from './time-select.service';\n\nimport {ITimeSelectConfig, ITimeSelectConfigInternal} from './time-select-config.model';\nimport {\n  ControlValueAccessor,\n  UntypedFormControl,\n  NG_VALIDATORS,\n  NG_VALUE_ACCESSOR,\n  ValidationErrors,\n  Validator\n} from '@angular/forms';\nimport {CalendarValue} from '../common/types/calendar-value';\nimport {UtilsService} from '../common/services/utils/utils.service';\nimport {IDate} from '../common/models/date.model';\nimport {DateValidator} from '../common/types/validator.type';\nimport {IDayCalendarConfigInternal} from '../day-calendar/day-calendar-config.model';\nimport {Dayjs} from 'dayjs';\nimport {dayjsRef} from '../common/dayjs/dayjs.ref';\n\n@Component({\n    selector: 'dp-time-select',\n    templateUrl: 'time-select.component.html',\n    styleUrls: ['time-select.component.less'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        TimeSelectService,\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => TimeSelectComponent),\n            multi: true\n        },\n        {\n            provide: NG_VALIDATORS,\n            useExisting: forwardRef(() => TimeSelectComponent),\n            multi: true\n        }\n    ],\n    standalone: false\n})\nexport class TimeSelectComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {\n\n  @Input() config: ITimeSelectConfig;\n  @Input() displayDate: SingleCalendarValue;\n  @Input() minDate: SingleCalendarValue;\n  @Input() maxDate: SingleCalendarValue;\n  @Input() minTime: SingleCalendarValue;\n  @Input() maxTime: SingleCalendarValue;\n  @HostBinding('class') @Input() theme: string;\n  @Output() onChange: EventEmitter<IDate> = new EventEmitter();\n  isInited: boolean = false;\n  componentConfig: ITimeSelectConfigInternal;\n  inputValue: CalendarValue;\n  inputValueType: ECalendarValue;\n  validateFn: DateValidator;\n  hours: string;\n  minutes: string;\n  seconds: string;\n  meridiem: string;\n  showDecHour: boolean;\n  showDecMinute: boolean;\n  showDecSecond: boolean;\n  showIncHour: boolean;\n  showIncMinute: boolean;\n  showIncSecond: boolean;\n  showToggleMeridiem: boolean;\n  api = {\n    triggerChange: this.emitChange.bind(this)\n  };\n\n  constructor(public readonly timeSelectService: TimeSelectService,\n              public readonly utilsService: UtilsService,\n              public readonly cd: ChangeDetectorRef) {\n  }\n\n  _selected: Dayjs;\n\n  get selected(): Dayjs {\n    return this._selected;\n  }\n\n  set selected(selected: Dayjs) {\n    this._selected = selected;\n    this.calculateTimeParts(this.selected);\n\n    this.showDecHour = this.timeSelectService.shouldShowDecrease(this.componentConfig, this._selected, 'hour');\n    this.showDecMinute = this.timeSelectService.shouldShowDecrease(this.componentConfig, this._selected, 'minute');\n    this.showDecSecond = this.timeSelectService.shouldShowDecrease(this.componentConfig, this._selected, 'second');\n\n    this.showIncHour = this.timeSelectService.shouldShowIncrease(this.componentConfig, this._selected, 'hour');\n    this.showIncMinute = this.timeSelectService.shouldShowIncrease(this.componentConfig, this._selected, 'minute');\n    this.showIncSecond = this.timeSelectService.shouldShowIncrease(this.componentConfig, this._selected, 'second');\n\n    this.showToggleMeridiem = this.timeSelectService.shouldShowToggleMeridiem(this.componentConfig, this._selected);\n\n    this.onChangeCallback(this.processOnChangeCallback(selected));\n  }\n\n  ngOnInit() {\n    this.isInited = true;\n    this.init();\n    this.initValidators();\n  }\n\n  init(): void {\n    this.componentConfig = this.timeSelectService.getConfig(this.config);\n    this.selected = this.selected || dayjsRef();\n    this.inputValueType = this.utilsService.getInputType(this.inputValue, false);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (this.isInited) {\n      const {minDate, maxDate, minTime, maxTime} = changes;\n\n      if (minDate || maxDate || minTime || maxTime) {\n        this.initValidators();\n      }\n\n      this.init();\n    }\n  }\n\n  writeValue(value: CalendarValue): void {\n    this.inputValue = value;\n\n    if (value) {\n      const dayjsValue = this.utilsService\n        .convertToDayjsArray(value, {\n          allowMultiSelect: false,\n          format: this.timeSelectService.getTimeFormat(this.componentConfig)\n        })[0];\n      if (dayjsValue.isValid()) {\n        this.selected = dayjsValue;\n        this.inputValueType = this.utilsService\n          .getInputType(this.inputValue, false);\n      }\n    }\n\n    this.cd.markForCheck();\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChangeCallback = fn;\n  }\n\n  onChangeCallback(_: any) {\n  }\n\n  registerOnTouched(fn: any): void {\n  }\n\n  validate(formControl: UntypedFormControl): ValidationErrors | any {\n    if (this.minDate || this.maxDate || this.minTime || this.maxTime) {\n      return this.validateFn(formControl.value);\n    } else {\n      return () => null;\n    }\n  }\n\n  processOnChangeCallback(value: Dayjs): CalendarValue {\n    return this.utilsService.convertFromDayjsArray(\n      this.timeSelectService.getTimeFormat(this.componentConfig),\n      [value],\n      this.componentConfig.returnedValueType || this.inputValueType\n    );\n  }\n\n  initValidators() {\n    this.validateFn = this.utilsService.createValidator(\n      {\n        minDate: this.minDate,\n        maxDate: this.maxDate,\n        minTime: this.minTime,\n        maxTime: this.maxTime\n      }, undefined, 'day');\n\n    this.onChangeCallback(this.processOnChangeCallback(this.selected));\n  }\n\n  decrease(unit: TimeUnit) {\n    this.selected = this.timeSelectService.decrease(this.componentConfig, this.selected, unit);\n    this.emitChange();\n  }\n\n  increase(unit: TimeUnit) {\n    this.selected = this.timeSelectService.increase(this.componentConfig, this.selected, unit);\n    this.emitChange();\n  }\n\n  toggleMeridiem(): void {\n    this.selected = this.timeSelectService.toggleMeridiem(this.selected);\n    this.emitChange();\n  }\n\n  emitChange(): void {\n    this.onChange.emit({date: this.selected, selected: false});\n    this.cd.markForCheck();\n  }\n\n  calculateTimeParts(time: Dayjs): void {\n    this.hours = this.timeSelectService.getHours(this.componentConfig, time);\n    this.minutes = this.timeSelectService.getMinutes(this.componentConfig, time);\n    this.seconds = this.timeSelectService.getSeconds(this.componentConfig, time);\n    this.meridiem = this.timeSelectService.getMeridiem(this.componentConfig, time);\n  }\n\n  private handleConfigChange(config: SimpleChange): void {\n    if (config) {\n      const prevConf: IDayCalendarConfigInternal = this.timeSelectService.getConfig(config.previousValue);\n      const currentConf: IDayCalendarConfigInternal = this.timeSelectService.getConfig(config.currentValue);\n    }\n  }\n}\n","<ul class=\"dp-time-select-controls\" dir=\"ltr\">\n  <li class=\"dp-time-select-control dp-time-select-control-hours\">\n    <button (click)=\"increase('hour')\"\n      [disabled]=\"!showIncHour\"\n      class=\"dp-time-select-control-up\"\n      type=\"button\">\n    </button>\n    <span [innerText]=\"hours\"\n      class=\"dp-time-select-display-hours\">\n    </span>\n    <button (click)=\"decrease('hour')\"\n      [disabled]=\"!showDecHour\"\n      class=\"dp-time-select-control-down\"\n      type=\"button\">\n    </button>\n  </li>\n  <li [innerText]=\"componentConfig.timeSeparator\"\n    class=\"dp-time-select-control dp-time-select-separator\">\n  </li>\n  <li class=\"dp-time-select-control dp-time-select-control-minutes\">\n    <button (click)=\"increase('minute')\"\n      [disabled]=\"!showIncMinute\"\n      class=\"dp-time-select-control-up\"\n    type=\"button\"></button>\n    <span [innerText]=\"minutes\"\n      class=\"dp-time-select-display-minutes\">\n    </span>\n    <button (click)=\"decrease('minute')\"\n      [disabled]=\"!showDecMinute\" class=\"dp-time-select-control-down\"\n      type=\"button\">\n    </button>\n  </li>\n  @if (componentConfig.showSeconds) {\n    <li [innerText]=\"componentConfig.timeSeparator\"\n      class=\"dp-time-select-control dp-time-select-separator\">\n    </li>\n    <li class=\"dp-time-select-control dp-time-select-control-seconds\">\n      <button (click)=\"increase('second')\"\n        [disabled]=\"!showIncSecond\"\n        class=\"dp-time-select-control-up\"\n      type=\"button\"></button>\n      <span [innerText]=\"seconds\"\n        class=\"dp-time-select-display-seconds\">\n      </span>\n      <button (click)=\"decrease('second')\"\n        [disabled]=\"!showDecSecond\"\n        class=\"dp-time-select-control-down\"\n        type=\"button\">\n      </button>\n    </li>\n  }\n  @if (!componentConfig.showTwentyFourHours) {\n    <li class=\"dp-time-select-control dp-time-select-control-meridiem\">\n      <button (click)=\"toggleMeridiem()\"\n        [disabled]=\"!showToggleMeridiem\"\n        class=\"dp-time-select-control-up\"\n        type=\"button\">\n      </button>\n      <span [innerText]=\"meridiem\"\n        class=\"dp-time-select-display-meridiem\">\n      </span>\n      <button (click)=\"toggleMeridiem()\"\n        [disabled]=\"!showToggleMeridiem\"\n        class=\"dp-time-select-control-down\"\n        type=\"button\">\n      </button>\n    </li>\n  }\n</ul>\n","import {ECalendarValue} from '../common/types/calendar-value-enum';\nimport {SingleCalendarValue} from '../common/types/single-calendar-value';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChanges,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {\n  ControlValueAccessor,\n  UntypedFormControl,\n  NG_VALIDATORS,\n  NG_VALUE_ACCESSOR,\n  ValidationErrors,\n  Validator\n} from '@angular/forms';\nimport {Dayjs} from 'dayjs';\nimport {CalendarValue} from '../common/types/calendar-value';\nimport {UtilsService} from '../common/services/utils/utils.service';\nimport {IDate} from '../common/models/date.model';\nimport {DayCalendarService} from '../day-calendar/day-calendar.service';\nimport {TimeSelectService} from '../time-select/time-select.service';\nimport {IDayTimeCalendarConfig, IDayTimeCalendarConfigInternal} from './day-time-calendar-config.model';\nimport {DayTimeCalendarService} from './day-time-calendar.service';\nimport {DateValidator} from '../common/types/validator.type';\nimport {DayCalendarComponent} from '../day-calendar/day-calendar.component';\nimport {INavEvent} from '../common/models/navigation-event.model';\n\n@Component({\n    selector: 'dp-day-time-calendar',\n    templateUrl: 'day-time-calendar.component.html',\n    styleUrls: ['day-time-calendar.component.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [\n        DayTimeCalendarService,\n        DayCalendarService,\n        TimeSelectService,\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => DayTimeCalendarComponent),\n            multi: true\n        },\n        {\n            provide: NG_VALIDATORS,\n            useExisting: forwardRef(() => DayTimeCalendarComponent),\n            multi: true\n        }\n    ],\n    standalone: false\n})\nexport class DayTimeCalendarComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {\n\n  @Input() config: IDayTimeCalendarConfig;\n  @Input() displayDate: SingleCalendarValue;\n  @Input() minDate: SingleCalendarValue;\n  @Input() maxDate: SingleCalendarValue;\n  @HostBinding('class') @Input() theme: string;\n  @Output() onChange: EventEmitter<IDate> = new EventEmitter();\n  @Output() onGoToCurrent: EventEmitter<void> = new EventEmitter();\n  @Output() onLeftNav: EventEmitter<INavEvent> = new EventEmitter();\n  @Output() onRightNav: EventEmitter<INavEvent> = new EventEmitter();\n  @ViewChild('dayCalendar') dayCalendarRef: DayCalendarComponent;\n  isInited: boolean = false;\n  componentConfig: IDayTimeCalendarConfigInternal;\n  inputValue: CalendarValue;\n  inputValueType: ECalendarValue;\n  validateFn: DateValidator;\n  api = {\n    moveCalendarTo: this.moveCalendarTo.bind(this)\n  };\n\n  constructor(public dayTimeCalendarService: DayTimeCalendarService,\n              public utilsService: UtilsService,\n              public cd: ChangeDetectorRef) {\n  }\n\n  _selected: Dayjs;\n\n  get selected(): Dayjs {\n    return this._selected;\n  }\n\n  set selected(selected: Dayjs) {\n    this._selected = selected;\n    this.onChangeCallback(this.processOnChangeCallback(selected));\n  }\n  ;\n\n  ngOnInit() {\n    this.isInited = true;\n    this.init();\n    this.initValidators();\n  }\n\n  init() {\n    this.componentConfig = this.dayTimeCalendarService.getConfig(this.config);\n    this.inputValueType = this.utilsService.getInputType(this.inputValue, false);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (this.isInited) {\n      const {minDate, maxDate} = changes;\n      this.init();\n\n      if (minDate || maxDate) {\n        this.initValidators();\n      }\n    }\n  }\n\n  writeValue(value: CalendarValue): void {\n    this.inputValue = value;\n\n    if (value) {\n      this.selected = this.utilsService\n        .convertToDayjsArray(value, {\n          format: this.componentConfig.format,\n          allowMultiSelect: false\n        })[0];\n      this.inputValueType = this.utilsService\n        .getInputType(this.inputValue, false);\n    } else {\n      this.selected = null;\n    }\n\n    this.cd.markForCheck();\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChangeCallback = fn;\n  }\n\n  onChangeCallback(_: any) {\n  }\n\n  registerOnTouched(fn: any): void {\n  }\n\n  validate(formControl: UntypedFormControl): ValidationErrors | any {\n    if (this.minDate || this.maxDate) {\n      return this.validateFn(formControl.value);\n    } else {\n      return () => null;\n    }\n  }\n\n  processOnChangeCallback(value: Dayjs): CalendarValue {\n    return this.utilsService.convertFromDayjsArray(\n      this.componentConfig.format,\n      [value],\n      this.componentConfig.returnedValueType || this.inputValueType\n    );\n  }\n\n  initValidators() {\n    this.validateFn = this.utilsService.createValidator(\n      {\n        minDate: this.minDate,\n        maxDate: this.maxDate\n      }, undefined, 'daytime');\n\n    this.onChangeCallback(this.processOnChangeCallback(this.selected));\n  }\n\n  dateSelected(day: IDate) {\n    this.selected = this.dayTimeCalendarService.updateDay(this.selected, day.date, this.componentConfig);\n    this.emitChange();\n  }\n\n  timeChange(time: IDate) {\n    this.selected = this.dayTimeCalendarService.updateTime(this.selected, time.date);\n    this.emitChange();\n  }\n\n  emitChange() {\n    this.onChange.emit({date: this.selected, selected: false});\n  }\n\n  moveCalendarTo(to: SingleCalendarValue) {\n    if (to) {\n      this.dayCalendarRef.moveCalendarTo(to);\n    }\n  }\n\n  onLeftNavClick(change: INavEvent) {\n    this.onLeftNav.emit(change);\n  }\n\n  onRightNavClick(change: INavEvent) {\n    this.onRightNav.emit(change);\n  }\n}\n","<dp-day-calendar #dayCalendar\n                 (onGoToCurrent)=\"onGoToCurrent.emit()\"\n                 (onLeftNav)=\"onLeftNavClick($event)\"\n                 (onRightNav)=\"onRightNavClick($event)\"\n                 (onSelect)=\"dateSelected($event)\"\n                 [config]=\"componentConfig\"\n                 [displayDate]=\"displayDate\"\n                 [ngModel]=\"_selected\"\n                 [theme]=\"theme\">\n</dp-day-calendar>\n<dp-time-select #timeSelect\n                (onChange)=\"timeChange($event)\"\n                [config]=\"componentConfig\"\n                [ngModel]=\"_selected\"\n                [theme]=\"theme\">\n</dp-time-select>\n","import {IDate} from '../common/models/date.model';\nimport {UtilsService} from '../common/services/utils/utils.service';\nimport {CalendarMode} from '../common/types/calendar-mode';\nimport {ECalendarMode} from '../common/types/calendar-mode-enum';\nimport {CalendarValue} from '../common/types/calendar-value';\nimport {ECalendarValue} from '../common/types/calendar-value-enum';\nimport {SingleCalendarValue} from '../common/types/single-calendar-value';\nimport {IDayCalendarConfig} from '../day-calendar/day-calendar-config.model';\nimport {DayCalendarComponent} from '../day-calendar/day-calendar.component';\nimport {DayCalendarService} from '../day-calendar/day-calendar.service';\nimport {IDayTimeCalendarConfig} from '../day-time-calendar/day-time-calendar-config.model';\nimport {DayTimeCalendarService} from '../day-time-calendar/day-time-calendar.service';\nimport {ITimeSelectConfig} from '../time-select/time-select-config.model';\nimport {TimeSelectComponent} from '../time-select/time-select.component';\nimport {TimeSelectService} from '../time-select/time-select.service';\nimport {IDatePickerConfig, IDatePickerConfigInternal} from './date-picker-config.model';\nimport {IDpDayPickerApi} from './date-picker.api';\nimport {DatePickerService} from './date-picker.service';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  HostListener,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  Renderer2,\n  SimpleChanges,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {\n  ControlValueAccessor,\n  UntypedFormControl,\n  NG_VALIDATORS,\n  NG_VALUE_ACCESSOR,\n  ValidationErrors,\n  Validator\n} from '@angular/forms';\n\nimport {DateValidator} from '../common/types/validator.type';\nimport {MonthCalendarComponent} from '../month-calendar/month-calendar.component';\nimport {DayTimeCalendarComponent} from '../day-time-calendar/day-time-calendar.component';\nimport {INavEvent} from '../common/models/navigation-event.model';\nimport {SelectEvent} from '../common/types/selection-event.enum';\nimport {ISelectionEvent} from '../common/types/selection-event.model';\nimport {Dayjs, UnitType} from 'dayjs';\nimport {dayjsRef} from '../common/dayjs/dayjs.ref';\nimport {ConnectionPositionPair} from '@angular/cdk/overlay';\n\n@Component({\n    selector: 'dp-date-picker',\n    templateUrl: 'date-picker.component.html',\n    styleUrls: ['date-picker.component.less'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        DatePickerService,\n        DayTimeCalendarService,\n        DayCalendarService,\n        TimeSelectService,\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => DatePickerComponent),\n            multi: true\n        },\n        {\n            provide: NG_VALIDATORS,\n            useExisting: forwardRef(() => DatePickerComponent),\n            multi: true\n        }\n    ],\n    standalone: false\n})\nexport class DatePickerComponent implements OnChanges,\n                                            OnInit,\n                                            ControlValueAccessor,\n                                            Validator,\n                                            OnDestroy {\n  isInitialized: boolean = false;\n  @Input() config: IDatePickerConfig;\n  @Input() mode: CalendarMode = 'day';\n  @Input() placeholder: string = '';\n  @Input() disabled: boolean = false;\n  @Input() displayDate: Dayjs | string;\n  @HostBinding('class') @Input() theme: string;\n  @Input() minDate: SingleCalendarValue;\n  @Input() maxDate: SingleCalendarValue;\n  @Input() minTime: SingleCalendarValue;\n  @Input() maxTime: SingleCalendarValue;\n  @Output() open = new EventEmitter<void>();\n  @Output() close = new EventEmitter<void>();\n  @Output() onChange = new EventEmitter<CalendarValue>();\n  @Output() onGoToCurrent = new EventEmitter<void>();\n  @Output() onLeftNav = new EventEmitter<INavEvent>();\n  @Output() onRightNav = new EventEmitter<INavEvent>();\n  @Output() onSelect = new EventEmitter<ISelectionEvent>();\n  @ViewChild('container') calendarContainer: ElementRef;\n  @ViewChild('dayCalendar') dayCalendarRef: DayCalendarComponent;\n  @ViewChild('monthCalendar') monthCalendarRef: MonthCalendarComponent;\n  @ViewChild('daytimeCalendar') dayTimeCalendarRef: DayTimeCalendarComponent;\n  @ViewChild('timeSelect') timeSelectRef: TimeSelectComponent;\n  @ViewChild('inputElement') inputElement: ElementRef<HTMLInputElement>;\n  componentConfig: IDatePickerConfigInternal;\n  dayCalendarConfig: IDayCalendarConfig;\n  dayTimeCalendarConfig: IDayTimeCalendarConfig;\n  timeSelectConfig: ITimeSelectConfig;\n  inputValue: CalendarValue;\n  isFocusedTrigger = false;\n  inputElementValue: string;\n  calendarWrapper: HTMLElement;\n  appendToElement: HTMLElement;\n  handleInnerElementClickUnlisteners: Function[] = [];\n  globalListenersUnlisteners: Function[] = [];\n  validateFn: DateValidator;\n  api: IDpDayPickerApi = {\n    open: this.showCalendars.bind(this),\n    close: this.hideCalendar.bind(this),\n    moveCalendarTo: this.moveCalendarTo.bind(this)\n  };\n  selectEvent = SelectEvent;\n  origin: ElementRef | HTMLElement;\n  private onOpenDelayTimeoutHandler;\n\n  constructor(private readonly dayPickerService: DatePickerService,\n              private readonly elemRef: ElementRef,\n              private readonly renderer: Renderer2,\n              private readonly utilsService: UtilsService,\n              public readonly cd: ChangeDetectorRef) {\n  }\n\n  get openOnFocus(): boolean {\n    return this.componentConfig.openOnFocus;\n  }\n\n  get openOnClick(): boolean {\n    return this.componentConfig.openOnClick;\n  }\n\n  areCalendarsShown: boolean = false;\n\n  _selected: Dayjs[] = [];\n\n  get selected(): Dayjs[] {\n    return this._selected;\n  }\n\n  set selected(selected: Dayjs[]) {\n    this._selected = selected;\n    this.inputElementValue = (<string[]>this.utilsService\n      .convertFromDayjsArray(this.componentConfig.format, selected, ECalendarValue.StringArr))\n      .join(' | ');\n    const val = this.processOnChangeCallback(selected);\n    this.onChangeCallback(val, false);\n    this.onChange.emit(val);\n  }\n\n  _currentDateView: Dayjs;\n  overlayPosition: ConnectionPositionPair[] | undefined;\n\n  get currentDateView(): Dayjs {\n    return this._currentDateView;\n  }\n\n  set currentDateView(date: Dayjs) {\n    this._currentDateView = date;\n\n    if (this.dayCalendarRef) {\n      this.dayCalendarRef.moveCalendarTo(date);\n    }\n\n    if (this.monthCalendarRef) {\n      this.monthCalendarRef.moveCalendarTo(date);\n    }\n\n    if (this.dayTimeCalendarRef) {\n      this.dayTimeCalendarRef.moveCalendarTo(date);\n    }\n\n    this.displayDate = date;\n  }\n\n  @HostListener('click')\n  onClick(): void {\n    if (!this.openOnClick) {\n      return;\n    }\n\n    if (!this.isFocusedTrigger && !this.disabled) {\n      if (!this.areCalendarsShown) {\n        this.showCalendars();\n      }\n    }\n  }\n\n  onBodyClick(event: MouseEvent) {\n    if (this.inputElement.nativeElement === event.target) {\n      return;\n    }\n\n    if (this.componentConfig.hideOnOutsideClick) {\n      this.hideCalendar();\n    }\n  }\n\n  writeValue(value: CalendarValue): void {\n    this.inputValue = value;\n\n    if (value || value === '') {\n      this.selected = this.utilsService\n        .convertToDayjsArray(value, this.componentConfig);\n      this.init();\n    } else {\n      this.selected = [];\n    }\n\n    this.cd.markForCheck();\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChangeCallback = fn;\n  }\n\n  onChangeCallback(_: any, __: boolean) {\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouchedCallback = fn;\n  }\n\n  onTouchedCallback() {\n  }\n\n  validate(formControl: UntypedFormControl): ValidationErrors {\n    return this.validateFn(formControl.value);\n  }\n\n  processOnChangeCallback(selected: Dayjs[] | string): CalendarValue {\n    if (typeof selected === 'string') {\n      return selected;\n    } else {\n      return this.utilsService.convertFromDayjsArray(\n        this.componentConfig.format,\n        selected,\n        this.componentConfig.returnedValueType || this.utilsService.getInputType(this.inputValue, this.componentConfig.allowMultiSelect)\n      );\n    }\n  }\n\n  initValidators(): void {\n    this.validateFn = this.utilsService.createValidator(\n      {\n        minDate: this.minDate,\n        maxDate: this.maxDate,\n        minTime: this.minTime,\n        maxTime: this.maxTime\n      }, this.componentConfig.format, this.mode);\n\n    this.onChangeCallback(this.processOnChangeCallback(this.selected), false);\n  }\n\n  ngOnInit(): void {\n    this.isInitialized = true;\n    this.init();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (this.isInitialized) {\n      this.init();\n    }\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this.cd.markForCheck();\n  }\n\n  init(): void {\n    this.componentConfig = this.dayPickerService.getConfig(this.config, this.mode);\n    this.currentDateView = this.displayDate\n      ? this.utilsService.convertToDayjs(this.displayDate, this.componentConfig.format)\n      : this.utilsService\n        .getDefaultDisplayDate(\n          this.currentDateView,\n          this.selected,\n          this.componentConfig.allowMultiSelect,\n          this.componentConfig.min\n        );\n    this.dayCalendarConfig = this.dayPickerService.getDayConfigService(this.componentConfig);\n    this.dayTimeCalendarConfig = this.dayPickerService.getDayTimeConfig(this.componentConfig);\n    this.timeSelectConfig = this.dayPickerService.getTimeConfig(this.componentConfig);\n    this.initValidators();\n    this.overlayPosition = this.dayPickerService.getOverlayPosition(this.componentConfig);\n    this.origin = this.utilsService.getNativeElement(this.componentConfig.inputElementContainer);\n  }\n\n  inputFocused(): void {\n    if (!this.openOnFocus) {\n      return;\n    }\n\n    clearTimeout(this.onOpenDelayTimeoutHandler);\n    this.isFocusedTrigger = true;\n    this.onOpenDelayTimeoutHandler = setTimeout(() => {\n      if (!this.areCalendarsShown) {\n        this.showCalendars();\n      }\n\n      this.isFocusedTrigger = false;\n      this.cd.markForCheck();\n    }, this.componentConfig.onOpenDelay);\n  }\n\n  inputBlurred(): void {\n    clearTimeout(this.onOpenDelayTimeoutHandler);\n    this.onTouchedCallback();\n  }\n\n  showCalendars(): void {\n    this.areCalendarsShown = true;\n    this.startGlobalListeners();\n\n    if (this.timeSelectRef) {\n      this.timeSelectRef.api.triggerChange();\n    }\n\n    this.open.emit();\n    this.cd.markForCheck();\n  }\n\n  hideCalendar(): void {\n    this.areCalendarsShown = false;\n\n    if (this.dayCalendarRef) {\n      this.dayCalendarRef.api.toggleCalendarMode(ECalendarMode.Day);\n    }\n    this.stopGlobalListeners();\n\n    this.close.emit();\n    this.cd.markForCheck();\n  }\n\n  onViewDateChange(value: CalendarValue): void {\n    const strVal = value ? this.utilsService.convertToString(value, this.componentConfig.format) : '';\n    if (this.dayPickerService.isValidInputDateValue(strVal, this.componentConfig)) {\n      this.selected = this.dayPickerService.convertInputValueToDayjsArray(strVal, this.componentConfig);\n      this.currentDateView = this.selected.length\n        ? this.utilsService.getDefaultDisplayDate(\n          null,\n          this.selected,\n          this.componentConfig.allowMultiSelect,\n          this.componentConfig.min\n        )\n        : this.currentDateView;\n\n      this.onSelect.emit({\n        date: strVal,\n        type: SelectEvent.INPUT,\n        granularity: null\n      })\n    } else {\n      this._selected = this.utilsService\n        .getValidDayjsArray(strVal, this.componentConfig.format);\n      this.onChangeCallback(this.processOnChangeCallback(strVal), true);\n    }\n  }\n\n  dateSelected(date: IDate, granularity: UnitType, type: SelectEvent, ignoreClose?: boolean): void {\n    this.selected = this.utilsService\n      .updateSelected(this.componentConfig.allowMultiSelect, this.selected, date, granularity);\n    if (!ignoreClose) {\n      this.onDateClick();\n    }\n\n    this.onSelect.emit({\n      date: date.date,\n      granularity,\n      type\n    });\n  }\n\n  onDateClick(): void {\n    if (this.componentConfig.closeOnSelect) {\n      setTimeout(this.hideCalendar.bind(this), this.componentConfig.closeOnSelectDelay);\n    }\n  }\n\n  onKeyPress(event: KeyboardEvent): void {\n    switch (event.key) {\n      case ('Escape'):\n      case ('Esc'):\n      case ('Tab'):\n        this.hideCalendar();\n        break;\n    }\n  }\n\n  moveCalendarTo(date: SingleCalendarValue): void {\n    this.currentDateView = this.utilsService.convertToDayjs(date, this.componentConfig.format);\n  }\n\n  onLeftNavClick(change: INavEvent): void {\n    this.displayDate = change.to;\n    this.onLeftNav.emit(change);\n  }\n\n  onRightNavClick(change: INavEvent): void {\n    this.displayDate = change.to;\n    this.onRightNav.emit(change);\n  }\n\n  startGlobalListeners(): void {\n    this.globalListenersUnlisteners.push(\n      this.renderer.listen(document, 'keydown', (e: KeyboardEvent) => {\n        this.onKeyPress(e);\n      })\n    );\n  }\n\n  stopGlobalListeners(): void {\n    this.globalListenersUnlisteners.forEach((ul) => ul());\n    this.globalListenersUnlisteners = [];\n  }\n\n  ngOnDestroy(): void {\n    this.handleInnerElementClickUnlisteners.forEach(ul => ul());\n\n    if (this.appendToElement) {\n      this.appendToElement.removeChild(this.calendarWrapper);\n    }\n  }\n\n  goToCurrent(): void {\n    this.currentDateView = dayjsRef();\n    this.onGoToCurrent.emit()\n  }\n}\n","<div [ngClass]=\"{'dp-open': areCalendarsShown}\" dir=\"ltr\" #trigger>\n  <div [attr.data-hidden]=\"componentConfig.hideInputContainer\"\n    [hidden]=\"componentConfig.hideInputContainer\"\n    class=\"dp-input-container\">\n    <input #inputElement\n      (blur)=\"inputBlurred()\"\n      (focus)=\"inputFocused()\"\n      (keydown.enter)=\"componentConfig.closeOnEnter && hideCalendar()\"\n      (ngModelChange)=\"onViewDateChange($event)\"\n      [disabled]=\"disabled\"\n      [ngModel]=\"inputElementValue\"\n      [placeholder]=\"placeholder\"\n      [readonly]=\"componentConfig.disableKeypress\"\n      class=\"dp-picker-input\"\n      type=\"text\"/>\n  </div>\n  <ng-template cdkConnectedOverlay\n    [cdkConnectedOverlayPositions]=\"overlayPosition\"\n    [cdkConnectedOverlayOrigin]=\"origin || trigger\"\n    [cdkConnectedOverlayOpen]=\"areCalendarsShown\"\n    [cdkConnectedOverlayHasBackdrop]=\"false\"\n    (overlayOutsideClick)=\"onBodyClick($event)\">\n    <div #container>\n      <div [attr.data-hidden]=\"!areCalendarsShown\"\n        class=\"dp-popup {{theme}}\">\n        @switch (mode) {\n          @case ('day') {\n            <dp-day-calendar #dayCalendar\n              (onGoToCurrent)=\"goToCurrent()\"\n              (onLeftNav)=\"onLeftNavClick($event)\"\n              (onRightNav)=\"onRightNavClick($event)\"\n              (onSelect)=\"dateSelected($event, 'day', selectEvent.SELECTION, false)\"\n              [config]=\"dayCalendarConfig\"\n              [displayDate]=\"displayDate\"\n              [ngModel]=\"_selected\"\n              [theme]=\"theme\">\n            </dp-day-calendar>\n          }\n          @case ('month') {\n            <dp-month-calendar #monthCalendar\n              (onGoToCurrent)=\"goToCurrent()\"\n              (onLeftNav)=\"onLeftNavClick($event)\"\n              (onRightNav)=\"onRightNavClick($event)\"\n              (onSelect)=\"dateSelected($event, 'month', selectEvent.SELECTION, false)\"\n              [config]=\"dayCalendarConfig\"\n              [displayDate]=\"displayDate\"\n              [ngModel]=\"_selected\"\n              [theme]=\"theme\">\n            </dp-month-calendar>\n          }\n          @case ('time') {\n            <dp-time-select #timeSelect\n              (onChange)=\"dateSelected($event, 'second', selectEvent.SELECTION, true)\"\n              [config]=\"timeSelectConfig\"\n              [ngModel]=\"_selected && _selected[0]\"\n              [theme]=\"theme\">\n            </dp-time-select>\n          }\n          @case ('daytime') {\n            <dp-day-time-calendar #daytimeCalendar\n              (onChange)=\"dateSelected($event, 'second', selectEvent.SELECTION, true)\"\n              (onGoToCurrent)=\"goToCurrent()\"\n              (onLeftNav)=\"onLeftNavClick($event)\"\n              (onRightNav)=\"onRightNavClick($event)\"\n              [config]=\"dayTimeCalendarConfig\"\n              [displayDate]=\"displayDate\"\n              [ngModel]=\"_selected && _selected[0]\"\n              [theme]=\"theme\">\n            </dp-day-time-calendar>\n          }\n        }\n      </div>\n    </div>\n  </ng-template>\n</div>\n","import {CalendarMode} from '../common/types/calendar-mode';\nimport {IDatePickerDirectiveConfig} from './date-picker-directive-config.model';\nimport {IDpDayPickerApi} from './date-picker.api';\nimport {DatePickerComponent} from './date-picker.component';\nimport {\n  ComponentFactoryResolver,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnInit,\n  Optional,\n  Output,\n  ViewContainerRef\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {INavEvent} from '../common/models/navigation-event.model';\nimport {UtilsService} from '../common/services/utils/utils.service'\nimport {CalendarValue} from '../common/types/calendar-value';\nimport {ISelectionEvent} from '../common/types/selection-event.model';\nimport {SingleCalendarValue} from '../common/types/single-calendar-value';\nimport {Dayjs} from 'dayjs';\n\n@Directive({\n    exportAs: 'dpDayPicker',\n    selector: '[dpDayPicker]',\n    standalone: false\n})\nexport class DatePickerDirective implements OnInit {\n\n  @Output() open = new EventEmitter<void>();\n  @Output() close = new EventEmitter<void>();\n  @Output() onChange = new EventEmitter<CalendarValue>();\n  @Output() onGoToCurrent: EventEmitter<void> = new EventEmitter();\n  @Output() onLeftNav: EventEmitter<INavEvent> = new EventEmitter();\n  @Output() onRightNav: EventEmitter<INavEvent> = new EventEmitter();\n  @Output() onSelect: EventEmitter<ISelectionEvent> = new EventEmitter();\n  datePicker: DatePickerComponent;\n  api: IDpDayPickerApi;\n\n  constructor(public readonly viewContainerRef: ViewContainerRef,\n              public readonly elemRef: ElementRef,\n              public readonly componentFactoryResolver: ComponentFactoryResolver,\n              @Optional() public readonly formControl: NgControl,\n              public readonly utilsService: UtilsService) {\n  }\n\n  private _config: IDatePickerDirectiveConfig;\n\n  get config(): IDatePickerDirectiveConfig {\n    return this._config;\n  }\n\n  @Input('dpDayPicker') set config(config: IDatePickerDirectiveConfig) {\n    this._config = {\n      ...config,\n      hideInputContainer: true,\n      inputElementContainer: config.inputElementContainer ?? this.elemRef,\n    };\n    this.updateDatepickerConfig();\n    this.markForCheck();\n  }\n\n  private _theme: string;\n\n  get theme(): string {\n    return this._theme;\n  }\n\n  @Input() set theme(theme: string) {\n    this._theme = theme;\n    if (this.datePicker) {\n      this.datePicker.theme = theme;\n    }\n\n    this.markForCheck();\n  }\n\n  private _mode: CalendarMode = 'day';\n\n  get mode(): CalendarMode {\n    return this._mode;\n  }\n\n  @Input() set mode(mode: CalendarMode) {\n    this._mode = mode;\n    if (this.datePicker) {\n      this.datePicker.mode = mode;\n    }\n\n    this.markForCheck();\n  }\n\n  private _minDate: SingleCalendarValue;\n\n  get minDate(): SingleCalendarValue {\n    return this._minDate;\n  }\n\n  @Input() set minDate(minDate: SingleCalendarValue) {\n    this._minDate = minDate;\n    if (this.datePicker) {\n      this.datePicker.minDate = minDate;\n      this.datePicker.ngOnInit();\n    }\n\n    this.markForCheck();\n  }\n\n  private _maxDate: SingleCalendarValue;\n\n  get maxDate(): SingleCalendarValue {\n    return this._maxDate;\n  }\n\n  @Input() set maxDate(maxDate: SingleCalendarValue) {\n    this._maxDate = maxDate;\n    if (this.datePicker) {\n      this.datePicker.maxDate = maxDate;\n      this.datePicker.ngOnInit();\n    }\n\n    this.markForCheck();\n  }\n\n  private _minTime: SingleCalendarValue;\n\n  get minTime(): SingleCalendarValue {\n    return this._minTime;\n  }\n\n  @Input() set minTime(minTime: SingleCalendarValue) {\n    this._minTime = minTime;\n    if (this.datePicker) {\n      this.datePicker.minTime = minTime;\n      this.datePicker.ngOnInit();\n    }\n\n    this.markForCheck();\n  }\n\n  private _maxTime: SingleCalendarValue;\n\n  get maxTime(): SingleCalendarValue {\n    return this._maxTime;\n  }\n\n  @Input() set maxTime(maxTime: SingleCalendarValue) {\n    this._maxTime = maxTime;\n    if (this.datePicker) {\n      this.datePicker.maxTime = maxTime;\n      this.datePicker.ngOnInit();\n    }\n\n    this.markForCheck();\n  }\n\n  private _displayDate: Dayjs | string;\n\n  get displayDate(): Dayjs | string {\n    return this._displayDate;\n  }\n\n  @Input() set displayDate(displayDate: Dayjs | string) {\n    this._displayDate = displayDate;\n    this.updateDatepickerConfig();\n\n    this.markForCheck();\n  }\n\n  ngOnInit(): void {\n    this.datePicker = this.createDatePicker();\n    this.api = this.datePicker.api;\n    this.updateDatepickerConfig();\n    this.attachModelToDatePicker();\n    this.datePicker.theme = this.theme;\n  }\n\n  createDatePicker(): DatePickerComponent {\n    const factory = this.componentFactoryResolver.resolveComponentFactory(DatePickerComponent);\n    return this.viewContainerRef.createComponent(factory).instance;\n  }\n\n  attachModelToDatePicker() {\n    if (!this.formControl) {\n      return;\n    }\n\n    this.datePicker.onViewDateChange(this.formControl.value);\n\n    this.formControl.valueChanges.subscribe((value) => {\n      if (value !== this.datePicker.inputElementValue) {\n        const strVal = this.utilsService.convertToString(value, this.datePicker.componentConfig.format);\n        this.datePicker.onViewDateChange(strVal);\n      }\n    });\n\n    let setup = true;\n\n    this.datePicker.registerOnChange((value, changedByInput) => {\n      if (value) {\n        const isMultiselectEmpty = setup && Array.isArray(value) && !value.length;\n\n        if (!isMultiselectEmpty && !changedByInput) {\n          this.formControl.control.setValue(this.datePicker.inputElementValue);\n        }\n      }\n\n      const errors = this.datePicker.validateFn(value);\n\n      if (!setup) {\n        this.formControl.control.markAsDirty({\n          onlySelf: true\n        });\n      } else {\n        setup = false;\n      }\n\n      if (errors) {\n        if (errors.hasOwnProperty('format')) {\n          const {given} = errors['format'];\n          this.datePicker.inputElementValue = given;\n          if (!changedByInput) {\n            this.formControl.control.setValue(given);\n          }\n        }\n\n        this.formControl.control.setErrors(errors);\n      }\n    });\n  }\n\n  @HostListener('click')\n  onClick() {\n    this.datePicker.onClick();\n  }\n\n  @HostListener('focus')\n  onFocus() {\n    this.datePicker.inputFocused();\n  }\n\n  @HostListener('keydown.enter')\n  onEnter() {\n    if (this.datePicker.componentConfig.closeOnEnter) {\n      this.datePicker.hideCalendar();\n    }\n  }\n\n  markForCheck() {\n    if (this.datePicker) {\n      this.datePicker.cd.markForCheck();\n    }\n  }\n\n  private updateDatepickerConfig() {\n    if (this.datePicker) {\n      this.datePicker.minDate = this.minDate;\n      this.datePicker.maxDate = this.maxDate;\n      this.datePicker.minTime = this.minTime;\n      this.datePicker.maxTime = this.maxTime;\n      this.datePicker.mode = this.mode || 'day';\n      this.datePicker.displayDate = this.displayDate;\n      this.datePicker.config = this.config;\n      this.datePicker.open = this.open;\n      this.datePicker.close = this.close;\n      this.datePicker.onChange = this.onChange;\n      this.datePicker.onGoToCurrent = this.onGoToCurrent;\n      this.datePicker.onLeftNav = this.onLeftNav;\n      this.datePicker.onRightNav = this.onRightNav;\n      this.datePicker.onSelect = this.onSelect;\n\n      this.datePicker.init();\n\n      if (this.datePicker.componentConfig.disableKeypress) {\n        this.elemRef.nativeElement.setAttribute('readonly', true);\n      } else {\n        this.elemRef.nativeElement.removeAttribute('readonly');\n      }\n    }\n  }\n}\n","import {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {CommonModule} from '@angular/common';\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {DatePickerComponent} from './date-picker/date-picker.component';\nimport {DatePickerDirective} from './date-picker/date-picker.directive';\nimport {DayCalendarComponent} from './day-calendar/day-calendar.component';\nimport {MonthCalendarComponent} from './month-calendar/month-calendar.component';\nimport {TimeSelectComponent} from './time-select/time-select.component';\nimport {CalendarNavComponent} from './calendar-nav/calendar-nav.component';\nimport {DayTimeCalendarComponent} from './day-time-calendar/day-time-calendar.component';\nexport {DatePickerComponent} from './date-picker/date-picker.component';\nexport {DatePickerDirective} from './date-picker/date-picker.directive';\nexport {DayCalendarComponent} from './day-calendar/day-calendar.component';\nexport {DayTimeCalendarComponent} from './day-time-calendar/day-time-calendar.component';\nexport {TimeSelectComponent} from './time-select/time-select.component';\nexport {MonthCalendarComponent} from './month-calendar/month-calendar.component';\n\n@NgModule({\n  declarations: [\n    DatePickerComponent,\n    DatePickerDirective,\n    DayCalendarComponent,\n    MonthCalendarComponent,\n    CalendarNavComponent,\n    TimeSelectComponent,\n    DayTimeCalendarComponent\n  ],\n  imports: [\n    CommonModule,\n    FormsModule,\n    OverlayModule\n  ],\n  exports: [\n    DatePickerComponent,\n    DatePickerDirective,\n    MonthCalendarComponent,\n    DayCalendarComponent,\n    TimeSelectComponent,\n    DayTimeCalendarComponent\n  ]\n})\nexport class DpDatePickerModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UtilsService","i2.DayCalendarService","i3.TimeSelectService","i2.TimeSelectService","i3.DayTimeCalendarService","i1","i1.MonthCalendarService","i2.UtilsService","i4","i5.CalendarNavComponent","i1.DayCalendarService","i6.MonthCalendarComponent","i7.CalendarNavComponent","i1.TimeSelectService","i3","i1.DayTimeCalendarService","i4.DayCalendarComponent","i5.TimeSelectComponent","i1.DatePickerService","i6.DayCalendarComponent","i7.MonthCalendarComponent","i8.TimeSelectComponent","i9.DayTimeCalendarComponent"],"mappings":"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"}