{"version":3,"file":"ngx-bootstrap-datepicker.mjs","sources":["../../../../src/datepicker/bs-datepicker.config.ts","../../../../src/datepicker/datepicker-animations.ts","../../../../src/datepicker/base/bs-datepicker-container.ts","../../../../src/datepicker/reducer/bs-datepicker.actions.ts","../../../../src/datepicker/bs-locale.service.ts","../../../../src/datepicker/reducer/bs-datepicker.effects.ts","../../../../src/datepicker/reducer/_defaults.ts","../../../../src/datepicker/reducer/bs-datepicker.state.ts","../../../../src/datepicker/utils/bs-calendar-utils.ts","../../../../src/datepicker/utils/matrix-utils.ts","../../../../src/datepicker/engine/calc-days-calendar.ts","../../../../src/datepicker/engine/format-days-calendar.ts","../../../../src/datepicker/engine/flag-days-calendar.ts","../../../../src/datepicker/engine/view-mode.ts","../../../../src/datepicker/engine/format-months-calendar.ts","../../../../src/datepicker/engine/flag-months-calendar.ts","../../../../src/datepicker/engine/format-years-calendar.ts","../../../../src/datepicker/engine/flag-years-calendar.ts","../../../../src/datepicker/utils/copy-time-utils.ts","../../../../src/datepicker/reducer/bs-datepicker.reducer.ts","../../../../src/datepicker/reducer/bs-datepicker.store.ts","../../../../src/datepicker/themes/bs/bs-custom-dates-view.component.ts","../../../../src/datepicker/models/index.ts","../../../../src/datepicker/themes/bs/bs-datepicker-navigation-view.component.ts","../../../../src/datepicker/themes/bs/bs-timepicker-view.component.ts","../../../../src/datepicker/themes/bs/bs-current-date-view.component.ts","../../../../src/datepicker/themes/bs/bs-calendar-layout.component.ts","../../../../src/datepicker/themes/bs/bs-years-calendar-view.component.ts","../../../../src/datepicker/themes/bs/bs-months-calendar-view.component.ts","../../../../src/datepicker/themes/bs/bs-datepicker-day-decorator.directive.ts","../../../../src/datepicker/themes/bs/bs-days-calendar-view.component.ts","../../../../src/datepicker/themes/bs/bs-datepicker-container.component.ts","../../../../src/datepicker/themes/bs/bs-datepicker-view.html","../../../../src/datepicker/bs-datepicker.component.ts","../../../../src/datepicker/bs-datepicker-inline.config.ts","../../../../src/datepicker/themes/bs/bs-datepicker-inline-container.component.ts","../../../../src/datepicker/bs-datepicker-inline.component.ts","../../../../src/datepicker/bs-daterangepicker-inline.config.ts","../../../../src/datepicker/themes/bs/bs-daterangepicker-container.component.ts","../../../../src/datepicker/themes/bs/bs-daterangepicker-inline-container.component.ts","../../../../src/datepicker/bs-daterangepicker-inline.component.ts","../../../../src/datepicker/bs-datepicker-input.directive.ts","../../../../src/datepicker/bs-daterangepicker.config.ts","../../../../src/datepicker/bs-daterangepicker.component.ts","../../../../src/datepicker/bs-daterangepicker-input.directive.ts","../../../../src/datepicker/bs-datepicker.module.ts","../../../../src/datepicker/ngx-bootstrap-datepicker.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n  DatepickerRenderOptions,\n  BsDatepickerViewMode,\n  DatepickerDateCustomClasses,\n  DatepickerDateTooltipText\n} from './models';\nimport { BsCustomDates } from './themes/bs/bs-custom-dates-view.component';\n\n\n/**\n * For date range picker there are `BsDaterangepickerConfig` which inherits all properties,\n * except `displayMonths`, for range picker it default to `2`\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class BsDatepickerConfig implements DatepickerRenderOptions {\n  /** sets use adaptive position */\n  adaptivePosition = false;\n  /** sets use UTC date time format */\n  useUtc = false;\n  /** turn on/off animation */\n  isAnimated = false;\n  value?: Date | Date[];\n  isDisabled?: boolean;\n  /**\n   * Default min date for all date/range pickers\n   */\n  minDate?: Date;\n  /**\n   * Default max date for all date/range pickers\n   */\n  maxDate?: Date;\n  /**\n   * The view that the datepicker should start in\n   */\n  startView: BsDatepickerViewMode = 'day';\n  /**\n   * Default date custom classes for all date/range pickers\n   */\n  dateCustomClasses?: DatepickerDateCustomClasses[];\n  /**\n   * Default tooltip text for all date/range pickers\n   */\n  dateTooltipTexts?: DatepickerDateTooltipText[];\n  /**\n   * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays\n   */\n  daysDisabled?: number[];\n  /**\n   * Disable specific dates\n   */\n  datesDisabled?: Date[];\n  /**\n   * Show one months for special cases (only for dateRangePicker)\n   * 1. maxDate is equal to today's date\n   * 2. minDate's month is equal to maxDate's month\n   */\n  displayOneMonthRange?: boolean;\n  /**\n   * Enable specific dates\n   */\n  datesEnabled?: Date[];\n  /**\n   * Makes dates from other months active\n   */\n  selectFromOtherMonth?: boolean;\n\n  /**\n   * Allows select first date of the week by click on week number\n   */\n  selectWeek?: boolean;\n\n  /**\n   * Allows select daterange as first and last day of week by click on week number (dateRangePicker only)\n   */\n  selectWeekDateRange?: boolean;\n\n  /**\n   * Shows previous and current month, instead of current and next (dateRangePicker only)\n   */\n  showPreviousMonth?: boolean;\n\n  /**\n   * Prevents change to next month for right calendar in two calendars view (dateRangePicker only)\n   */\n  preventChangeToNextMonth?: boolean;\n\n  /**\n   * Add class to current day\n   */\n  customTodayClass?: string;\n\n  /**\n   * Default mode for all date pickers\n   */\n  minMode?: BsDatepickerViewMode;\n\n  /**\n   * If true, returns focus to the datepicker / daterangepicker input after date selection\n   */\n  returnFocusToInput = false;\n\n  /** CSS class which will be applied to datepicker container,\n   * usually used to set color theme\n   */\n  containerClass = 'theme-green';\n\n  // DatepickerRenderOptions\n  displayMonths = 1;\n  /**\n   * Allows to hide week numbers in datepicker\n   */\n  showWeekNumbers = true;\n\n  dateInputFormat = 'L';\n  // range picker\n  rangeSeparator = ' - ';\n  /**\n   * Date format for date range input field\n   */\n  rangeInputFormat = 'L';\n\n  /**\n   * Predefined ranges\n   */\n  ranges?: BsCustomDates[];\n\n  /**\n   * Max Date Range in days\n   */\n  maxDateRange?: number;\n\n  // DatepickerFormatOptions\n  monthTitle = 'MMMM';\n  yearTitle = 'YYYY';\n  dayLabel = 'D';\n  monthLabel = 'MMMM';\n  yearLabel = 'YYYY';\n  weekNumbers = 'w';\n\n  /**\n   * Shows 'today' button\n   */\n  showTodayButton = false;\n\n  /**\n   * Shows clear button\n   */\n  showClearButton = false;\n\n  /**\n   * Positioning of 'today' button\n   */\n  todayPosition = 'center';\n\n  /**\n   * Positioning of 'clear' button\n   */\n  clearPosition = 'right';\n\n  /**\n   * Label for 'today' button\n   */\n  todayButtonLabel = 'Today';\n\n  /**\n   * Label for 'clear' button\n   */\n  clearButtonLabel = 'Clear';\n\n  /**\n   * Label for 'custom range' button\n   */\n  customRangeButtonLabel = 'Custom Range';\n\n  /**\n   * Shows timepicker under datepicker\n   */\n  withTimepicker = false;\n  /**\n   * Set current hours, minutes, seconds and milliseconds for bsValue\n   */\n  initCurrentTime?: boolean;\n  /**\n   * Set allowed positions of container.\n   */\n  allowedPositions = ['top', 'bottom'];\n  /**\n   * Set rule for datepicker closing. If value is true datepicker closes only if date is changed, if user changes only time datepicker doesn't close. It is available only if property withTimepicker is set true\n   * */\n  keepDatepickerOpened = false;\n  /**\n   * Allows keep invalid dates in range. Can be used with minDate, maxDate\n   * */\n  keepDatesOutOfRules = false;\n}\n","import {\n  animate,\n  style,\n  AnimationTriggerMetadata,\n  state,\n  transition,\n  trigger\n} from '@angular/animations';\n\nexport const DATEPICKER_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\n\nexport const datepickerAnimation: AnimationTriggerMetadata =\n  trigger('datepickerAnimation', [\n    state('animated-down', style({ height: '*', overflow: 'hidden'})),\n    transition('* => animated-down', [\n      style({ height: 0, overflow: 'hidden' }),\n      animate(DATEPICKER_ANIMATION_TIMING)\n    ]),\n    state('animated-up', style({ height: '*', overflow: 'hidden'})),\n    transition('* => animated-up', [\n      style({ height: '*', overflow: 'hidden' }),\n      animate(DATEPICKER_ANIMATION_TIMING)\n    ]),\n    transition('* => unanimated', animate('0s'))\n  ]);\n","// datepicker container component\nimport { BsCustomDates } from '../themes/bs/bs-custom-dates-view.component';\nimport { BsDatepickerEffects } from '../reducer/bs-datepicker.effects';\nimport { Observable, Subscription } from 'rxjs';\nimport {\n  BsDatepickerViewMode,\n  BsNavigationEvent,\n  CalendarCellViewModel,\n  CellHoverEvent,\n  DatepickerRenderOptions,\n  DatepickerDateCustomClasses,\n  DatepickerDateTooltipText,\n  DaysCalendarViewModel,\n  DayViewModel,\n  MonthsCalendarViewModel,\n  WeekViewModel,\n  YearsCalendarViewModel\n} from '../models';\n\nexport abstract class BsDatepickerAbstractComponent {\n  containerClass = '';\n  isOtherMonthsActive?: boolean;\n  showTodayBtn?: boolean;\n  todayBtnLbl?: string;\n  todayPos?: string;\n  showClearBtn?: boolean;\n  clearBtnLbl?: string;\n  clearPos?: string;\n\n  _effects?: BsDatepickerEffects;\n  customRanges: BsCustomDates[] = [];\n  customRangeBtnLbl?: string;\n  chosenRange: Date[] = [];\n\n  multipleCalendars?: boolean;\n\n  isRangePicker?: boolean;\n  withTimepicker?: boolean;\n\n  set minDate(value: Date|undefined) {\n    this._effects?.setMinDate(value);\n  }\n\n  set maxDate(value: Date|undefined) {\n    this._effects?.setMaxDate(value);\n  }\n  set daysDisabled(value: number[]|undefined) {\n    this._effects?.setDaysDisabled(value);\n  }\n  set datesDisabled(value: Date[]|undefined) {\n    this._effects?.setDatesDisabled(value);\n  }\n\n  set datesEnabled(value: Date[]|undefined) {\n    this._effects?.setDatesEnabled(value);\n  }\n\n  set isDisabled(value: boolean|undefined) {\n    this._effects?.setDisabled(value);\n  }\n\n  set dateCustomClasses(value: DatepickerDateCustomClasses[]|undefined) {\n    this._effects?.setDateCustomClasses(value);\n  }\n\n  set dateTooltipTexts(value: DatepickerDateTooltipText[]|undefined) {\n    this._effects?.setDateTooltipTexts(value);\n  }\n\n  viewMode?: Observable<BsDatepickerViewMode|undefined>;\n  monthsCalendar?: Observable<MonthsCalendarViewModel[]|undefined>;\n  yearsCalendar?: Observable<YearsCalendarViewModel[]|undefined>;\n  options$!: Observable<DatepickerRenderOptions|undefined>;\n\n  _daysCalendar$!: Observable<DaysCalendarViewModel[]|undefined>;\n  _daysCalendarSub = new Subscription();\n\n  set daysCalendar$(value: Observable<DaysCalendarViewModel[]|undefined>) {\n    this._daysCalendar$ = value;\n    this._daysCalendarSub.unsubscribe();\n    this._daysCalendarSub.add(this._daysCalendar$.subscribe(value => {\n      this.multipleCalendars = !!value && value.length > 1;\n    }));\n  }\n\n  get daysCalendar$(): Observable<DaysCalendarViewModel[]|undefined> {\n    return this._daysCalendar$;\n  }\n\n  selectedTime?: Observable<Date[]|undefined>;\n  selectedTimeSub = new Subscription();\n\n  // todo: valorkin fix\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars,@typescript-eslint/no-empty-function\n  setViewMode(event: BsDatepickerViewMode): void {}\n\n  // eslint-disable-next-line\n  navigateTo(event: BsNavigationEvent): void {}\n\n  // eslint-disable-next-line\n  dayHoverHandler(event: CellHoverEvent): void {}\n\n  // eslint-disable-next-line\n  weekHoverHandler(event: WeekViewModel): void {}\n\n  // eslint-disable-next-line\n  monthHoverHandler(event: CellHoverEvent): void {}\n\n  // eslint-disable-next-line\n  yearHoverHandler(event: CellHoverEvent): void {}\n\n  // eslint-disable-next-line\n  timeSelectHandler(date: Date, index: number): void {}\n\n  // eslint-disable-next-line\n  daySelectHandler(day: DayViewModel): void {}\n\n  // eslint-disable-next-line\n  monthSelectHandler(event: CalendarCellViewModel): void {}\n\n  // eslint-disable-next-line\n  yearSelectHandler(event: CalendarCellViewModel): void {}\n\n  // eslint-disable-next-line\n  setRangeOnCalendar(dates: BsCustomDates): void {}\n\n  // eslint-disable-next-line\n  setToday(): void {}\n\n  // eslint-disable-next-line\n  clearDate(): void {}\n\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  _stopPropagation(event: any): void {\n    event.stopPropagation();\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { TimeUnit } from 'ngx-bootstrap/chronos';\nimport { Action } from 'ngx-bootstrap/mini-ngrx';\nimport {\n  BsDatepickerViewMode,\n  BsViewNavigationEvent,\n  CellHoverEvent,\n  DatepickerRenderOptions,\n  DatepickerDateCustomClasses,\n  DatepickerDateTooltipText\n} from '../models';\n\n@Injectable({providedIn: 'platform'})\nexport class BsDatepickerActions {\n  static readonly CALCULATE = '[datepicker] calculate dates matrix';\n  static readonly FORMAT = '[datepicker] format datepicker values';\n  static readonly FLAG = '[datepicker] set flags';\n  static readonly SELECT = '[datepicker] select date';\n  static readonly NAVIGATE_OFFSET = '[datepicker] shift view date';\n  static readonly NAVIGATE_TO = '[datepicker] change view date';\n  static readonly SET_OPTIONS = '[datepicker] update render options';\n  static readonly HOVER = '[datepicker] hover date';\n  static readonly CHANGE_VIEWMODE = '[datepicker] switch view mode';\n\n  static readonly SET_MIN_DATE = '[datepicker] set min date';\n  static readonly SET_MAX_DATE = '[datepicker] set max date';\n  static readonly SET_DAYSDISABLED = '[datepicker] set days disabled';\n  static readonly SET_DATESDISABLED = '[datepicker] set dates disabled';\n  static readonly SET_DATESENABLED = '[datepicker] set dates enabled';\n  static readonly SET_IS_DISABLED = '[datepicker] set is disabled';\n  static readonly SET_DATE_CUSTOM_CLASSES = '[datepicker] set date custom classes';\n  static readonly SET_DATE_TOOLTIP_TEXTS = '[datepicker] set date tooltip texts';\n  static readonly SET_LOCALE = '[datepicker] set datepicker locale';\n  static readonly SELECT_TIME = '[datepicker] select time';\n\n  static readonly SELECT_RANGE = '[daterangepicker] select dates range';\n\n  calculate(): Action {\n    return { type: BsDatepickerActions.CALCULATE };\n  }\n\n  format(): Action {\n    return { type: BsDatepickerActions.FORMAT };\n  }\n\n  flag(): Action {\n    return { type: BsDatepickerActions.FLAG };\n  }\n\n  select(date?: Date): Action {\n    return {\n      type: BsDatepickerActions.SELECT,\n      payload: date\n    };\n  }\n\n  selectTime(date: Date, index: number): Action {\n    return  {\n      type: BsDatepickerActions.SELECT_TIME,\n      payload: { date, index },\n    };\n  }\n\n  changeViewMode(event: BsDatepickerViewMode): Action {\n    return {\n      type: BsDatepickerActions.CHANGE_VIEWMODE,\n      payload: event\n    };\n  }\n\n  navigateTo(event: BsViewNavigationEvent): Action {\n    return {\n      type: BsDatepickerActions.NAVIGATE_TO,\n      payload: event\n    };\n  }\n\n  navigateStep(step?: TimeUnit): Action {\n    return {\n      type: BsDatepickerActions.NAVIGATE_OFFSET,\n      payload: step\n    };\n  }\n\n  setOptions(options: DatepickerRenderOptions): Action {\n    return {\n      type: BsDatepickerActions.SET_OPTIONS,\n      payload: options\n    };\n  }\n\n  // date range picker\n  selectRange(value?: (Date|undefined)[] | undefined): Action {\n    return {\n      type: BsDatepickerActions.SELECT_RANGE,\n      payload: value\n    };\n  }\n\n  hoverDay(event: CellHoverEvent): Action {\n    return {\n      type: BsDatepickerActions.HOVER,\n      payload: event.isHovered ? event.cell.date : null\n    };\n  }\n\n  minDate(date?: Date): Action {\n    return {\n      type: BsDatepickerActions.SET_MIN_DATE,\n      payload: date\n    };\n  }\n\n  maxDate(date?: Date): Action {\n    return {\n      type: BsDatepickerActions.SET_MAX_DATE,\n      payload: date\n    };\n  }\n\n  daysDisabled(days?: number[]): Action {\n    return {\n      type: BsDatepickerActions.SET_DAYSDISABLED,\n      payload: days\n    };\n  }\n\n  datesDisabled(dates?: Date[]): Action {\n    return {\n      type: BsDatepickerActions.SET_DATESDISABLED,\n      payload: dates\n    };\n  }\n\n  datesEnabled(dates?: Date[]): Action {\n    return {\n      type: BsDatepickerActions.SET_DATESENABLED,\n      payload: dates\n    };\n  }\n\n  isDisabled(value?: boolean): Action {\n    return {\n      type: BsDatepickerActions.SET_IS_DISABLED,\n      payload: value\n    };\n  }\n\n  setDateCustomClasses(value?: DatepickerDateCustomClasses[]): Action {\n    return {\n      type: BsDatepickerActions.SET_DATE_CUSTOM_CLASSES,\n      payload: value\n    };\n  }\n\n  setDateTooltipTexts(value?: DatepickerDateTooltipText[]): Action {\n    return {\n      type: BsDatepickerActions.SET_DATE_TOOLTIP_TEXTS,\n      payload: value\n    };\n  }\n\n  setLocale(locale: string): Action {\n    return {\n      type: BsDatepickerActions.SET_LOCALE,\n      payload: locale\n    };\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({providedIn: 'platform'})\nexport class BsLocaleService {\n  private _defaultLocale = 'en';\n  private _locale = new BehaviorSubject<string>(this._defaultLocale);\n  private _localeChange: Observable<string> = this._locale.asObservable();\n\n  get locale(): BehaviorSubject<string> {\n    return this._locale;\n  }\n\n  get localeChange(): Observable<string> {\n    return this._localeChange;\n  }\n\n  get currentLocale(): string {\n    return this._locale.getValue();\n  }\n\n  use(locale: string): void {\n    if (locale === this.currentLocale) {\n      return;\n    }\n\n    this._locale.next(locale);\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\nimport { BsDatepickerAbstractComponent } from '../base/bs-datepicker-container';\nimport { BsDatepickerConfig } from '../bs-datepicker.config';\nimport { BsLocaleService } from '../bs-locale.service';\n\nimport {\n  BsDatepickerViewMode,\n  BsNavigationEvent,\n  CellHoverEvent,\n  DatepickerDateCustomClasses,\n  DatepickerDateTooltipText,\n  DatepickerRenderOptions,\n  DaysCalendarViewModel,\n  DayViewModel,\n  MonthsCalendarViewModel,\n  YearsCalendarViewModel\n} from '../models';\nimport { BsDatepickerActions } from './bs-datepicker.actions';\nimport { BsDatepickerStore } from './bs-datepicker.store';\n\n\n@Injectable({providedIn: 'platform'})\nexport class BsDatepickerEffects {\n  viewMode?: Observable<BsDatepickerViewMode>;\n  daysCalendar?: Observable<DaysCalendarViewModel[]>;\n  monthsCalendar?: Observable<MonthsCalendarViewModel[]>;\n  yearsCalendar?: Observable<YearsCalendarViewModel[]>;\n  options?: Observable<DatepickerRenderOptions>;\n\n  private _store?: BsDatepickerStore;\n  private _subs: Subscription[] = [];\n\n  constructor(private _actions: BsDatepickerActions,\n              private _localeService: BsLocaleService) {\n  }\n\n  init(_bsDatepickerStore: BsDatepickerStore): BsDatepickerEffects {\n    this._store = _bsDatepickerStore;\n\n    return this;\n  }\n\n  /** setters */\n\n  setValue(value?: Date): void {\n    this._store?.dispatch(this._actions.select(value));\n  }\n\n  setRangeValue(value?: (Date|undefined)[] | undefined): void {\n    this._store?.dispatch(this._actions.selectRange(value));\n  }\n\n  setMinDate(value?: Date): BsDatepickerEffects {\n    this._store?.dispatch(this._actions.minDate(value));\n\n    return this;\n  }\n\n  setMaxDate(value?: Date): BsDatepickerEffects {\n    this._store?.dispatch(this._actions.maxDate(value));\n\n    return this;\n  }\n\n  setDaysDisabled(value?: number[]): BsDatepickerEffects {\n    this._store?.dispatch(this._actions.daysDisabled(value));\n\n    return this;\n  }\n\n  setDatesDisabled(value?: Date[]): BsDatepickerEffects {\n    this._store?.dispatch(this._actions.datesDisabled(value));\n\n    return this;\n  }\n\n  setDatesEnabled(value?: Date[]): BsDatepickerEffects {\n    this._store?.dispatch(this._actions.datesEnabled(value));\n\n    return this;\n  }\n\n  setDisabled(value?: boolean): BsDatepickerEffects {\n    this._store?.dispatch(this._actions.isDisabled(value));\n\n    return this;\n  }\n\n  setDateCustomClasses(value?: DatepickerDateCustomClasses[]): BsDatepickerEffects {\n    this._store?.dispatch(this._actions.setDateCustomClasses(value));\n\n    return this;\n  }\n\n  setDateTooltipTexts(value?: DatepickerDateTooltipText[]): BsDatepickerEffects {\n    this._store?.dispatch(this._actions.setDateTooltipTexts(value));\n\n    return this;\n  }\n\n  /* Set rendering options */\n  setOptions(_config: BsDatepickerConfig): BsDatepickerEffects {\n    const _options = Object.assign({ locale: this._localeService.currentLocale }, _config);\n    this._store?.dispatch(this._actions.setOptions(_options));\n\n    return this;\n  }\n\n  /** view to mode bindings */\n  setBindings(container: BsDatepickerAbstractComponent): BsDatepickerEffects {\n    if (!this._store) {\n      return this;\n    }\n\n    container.selectedTime = this._store.select(state => state.selectedTime)\n      .pipe(filter(times => !!times));\n\n    container.daysCalendar$ = this._store.select(state => state.flaggedMonths)\n      .pipe(filter(months => !!months));\n\n    // month calendar\n    container.monthsCalendar = this._store.select(state => state.flaggedMonthsCalendar)\n      .pipe(filter(months => !!months));\n\n    // year calendar\n    container.yearsCalendar = this._store.select(state => state.yearsCalendarFlagged)\n      .pipe(filter(years => !!years));\n\n    container.viewMode = this._store.select(state => state.view?.mode);\n\n    container.options$ = combineLatest([\n      this._store.select(state => state.showWeekNumbers),\n      this._store.select(state => state.displayMonths)\n    ])\n      .pipe(map((latest) => ({\n          showWeekNumbers: latest[0],\n          displayMonths: latest[1]\n        })\n      ));\n\n    return this;\n  }\n\n  /** event handlers */\n  setEventHandlers(container: BsDatepickerAbstractComponent): BsDatepickerEffects {\n    container.setViewMode = (event: BsDatepickerViewMode): void => {\n      this._store?.dispatch(this._actions.changeViewMode(event));\n    };\n\n    container.navigateTo = (event: BsNavigationEvent): void => {\n      this._store?.dispatch(this._actions.navigateStep(event.step));\n    };\n\n    container.dayHoverHandler = (event: CellHoverEvent): void => {\n      const _cell = event.cell as DayViewModel;\n      if (_cell.isOtherMonth || _cell.isDisabled) {\n        return;\n      }\n\n      this._store?.dispatch(this._actions.hoverDay(event));\n      _cell.isHovered = event.isHovered;\n    };\n\n    container.monthHoverHandler = (event: CellHoverEvent): void => {\n      event.cell.isHovered = event.isHovered;\n    };\n\n    container.yearHoverHandler = (event: CellHoverEvent): void => {\n      event.cell.isHovered = event.isHovered;\n    };\n\n    return this;\n  }\n\n  registerDatepickerSideEffects(): BsDatepickerEffects {\n    if (!this._store) {\n      return this;\n    }\n\n    this._subs.push(\n      this._store.select(state => state.view).subscribe(() => {\n        this._store?.dispatch(this._actions.calculate());\n      })\n    );\n\n    // format calendar values on month model change\n    this._subs.push(\n      this._store\n        .select(state => state.monthsModel)\n        .pipe(\n          filter(monthModel => !!monthModel)\n        )\n        .subscribe(() => this._store?.dispatch(this._actions.format()))\n    );\n\n    // flag day values\n    this._subs.push(\n      this._store\n        .select(state => state.formattedMonths)\n        .pipe(\n          filter(month => !!month)\n        )\n        .subscribe(() => this._store?.dispatch(this._actions.flag()))\n    );\n\n    // flag day values\n    this._subs.push(\n      this._store\n        .select(state => state.selectedDate)\n        .pipe(\n          filter(selectedDate => !!selectedDate)\n        )\n        .subscribe(() => this._store?.dispatch(this._actions.flag()))\n    );\n\n    // flag for date range picker\n    this._subs.push(\n      this._store\n        .select(state => state.selectedRange)\n        .pipe(\n          filter(selectedRange => !!selectedRange)\n        )\n        .subscribe(() => this._store?.dispatch(this._actions.flag()))\n    );\n\n    // monthsCalendar\n    this._subs.push(\n      this._store\n        .select(state => state.monthsCalendar)\n        .subscribe(() => this._store?.dispatch(this._actions.flag()))\n    );\n\n    // years calendar\n    this._subs.push(\n      this._store\n        .select(state => state.yearsCalendarModel)\n        .pipe(\n          filter(state => !!state)\n        )\n        .subscribe(() => this._store?.dispatch(this._actions.flag()))\n    );\n\n    // on hover\n    this._subs.push(\n      this._store\n        .select(state => state.hoveredDate)\n        .pipe(\n          filter(hoveredDate => !!hoveredDate)\n        )\n        .subscribe(() => this._store?.dispatch(this._actions.flag()))\n    );\n\n    // date custom classes\n    this._subs.push(\n      this._store\n        .select(state => state.dateCustomClasses)\n        .pipe(\n          filter(dateCustomClasses => !!dateCustomClasses)\n        )\n        .subscribe(() => this._store?.dispatch(this._actions.flag()))\n    );\n\n    // date tooltip texts\n    this._subs.push(\n      this._store\n        .select(state => state.dateTooltipTexts)\n        .pipe(\n          filter(dateTooltipTexts => !!dateTooltipTexts)\n        )\n        .subscribe(() => this._store?.dispatch(this._actions.flag()))\n    );\n\n    // on locale change\n    this._subs.push(\n      this._localeService.localeChange\n        .subscribe(locale => this._store?.dispatch(this._actions.setLocale(locale)))\n    );\n\n    return this;\n  }\n\n  destroy(): void {\n    for (const sub of this._subs) {\n      sub.unsubscribe();\n    }\n  }\n}\n","import {\n  MonthViewOptions\n} from '../models';\n\nexport const defaultMonthOptions: MonthViewOptions = {\n  width: 7,\n  height: 6\n};\n\nexport const dayInMilliseconds = 24 * 60 * 60 * 1000;\n","import {\n  BsDatepickerViewMode,\n  DatepickerFormatOptions,\n  DatepickerRenderOptions,\n  DatepickerDateCustomClasses,\n  DatepickerDateTooltipText,\n  DaysCalendarModel,\n  DaysCalendarViewModel,\n  MonthsCalendarViewModel,\n  MonthViewOptions,\n  YearsCalendarViewModel\n} from '../models';\nimport { defaultMonthOptions } from './_defaults';\nimport { BsDatepickerConfig } from '../bs-datepicker.config';\n\nexport interface BsDatepickerViewState {\n  date: Date;\n  mode: BsDatepickerViewMode;\n}\n\nexport class BsDatepickerState\n  implements DatepickerRenderOptions, DatepickerFormatOptions {\n  // date picker\n  selectedDate?: Date;\n  // daterange picker\n  selectedRange?: Date[];\n  // time picker\n  selectedTime?: Date[];\n\n  // initial date of calendar, today by default\n  view?: BsDatepickerViewState;\n\n  isDisabled?: boolean;\n  // bounds\n  minDate?: Date;\n  maxDate?: Date;\n  daysDisabled?: number[];\n  datesDisabled?: Date[];\n  datesEnabled?: Date[];\n  minMode?: BsDatepickerViewMode;\n  dateCustomClasses?: DatepickerDateCustomClasses[];\n  dateTooltipTexts?: DatepickerDateTooltipText[];\n\n  hoveredDate?: Date;\n  hoveredMonth?: Date;\n  hoveredYear?: Date;\n\n  // days calendar\n  monthsModel?: DaysCalendarModel[];\n  formattedMonths?: DaysCalendarViewModel[];\n  flaggedMonths?: DaysCalendarViewModel[];\n  selectFromOtherMonth?: boolean;\n  showPreviousMonth?: boolean; // dateRangePicker only;\n  preventChangeToNextMonth?: boolean; // dateRangePicker only;\n  displayOneMonthRange?: boolean; // dateRangePicker only;\n\n  // months calendar\n  monthsCalendar?: MonthsCalendarViewModel[];\n  flaggedMonthsCalendar?: MonthsCalendarViewModel[];\n\n  // years calendar\n  yearsCalendarModel?: YearsCalendarViewModel[];\n  yearsCalendarFlagged?: YearsCalendarViewModel[];\n\n  // options\n  monthViewOptions?: MonthViewOptions;\n\n  // DatepickerRenderOptions\n  showWeekNumbers = true;\n  displayMonths = 1;\n\n  // DatepickerFormatOptions\n  locale?: string;\n\n  monthTitle?: string;\n  yearTitle?: string;\n\n  dayLabel?: string;\n  monthLabel?: string;\n  yearLabel?: string;\n\n  weekNumbers?: string;\n}\n\nconst _initialView: BsDatepickerViewState = { date: new Date(), mode: 'day' };\n\nexport const initialDatepickerState: BsDatepickerState = Object.assign(\n  new BsDatepickerConfig(),\n  {\n    locale: 'en',\n    view: _initialView,\n    selectedRange: [],\n    selectedTime: [],\n    monthViewOptions: defaultMonthOptions\n  }\n);\n","import {\n  getDay,\n  isFirstDayOfWeek,\n  isAfter,\n  isBefore,\n  shiftDate,\n  endOf,\n  startOf,\n  isArray,\n  isSame\n} from 'ngx-bootstrap/chronos';\nimport { BsDatepickerState } from '../reducer/bs-datepicker.state';\nimport { BsCustomDates } from '../themes/bs/bs-custom-dates-view.component';\n\nexport function getStartingDayOfCalendar(date: Date,\n                                         options: { firstDayOfWeek?: number }): Date {\n  if (isFirstDayOfWeek(date, options.firstDayOfWeek)) {\n    return date;\n  }\n\n  const weekDay = getDay(date);\n  const offset = calculateDateOffset(weekDay, options.firstDayOfWeek);\n\n  return shiftDate(date, {day: -offset});\n}\n\nexport function calculateDateOffset(weekday: number, startingDayOffset?: number): number {\n  const _startingDayOffset = Number(startingDayOffset);\n  if (isNaN(_startingDayOffset)) {\n    return 0;\n  }\n\n  if (_startingDayOffset === 0) {\n    return weekday;\n  }\n\n  const offset = weekday - _startingDayOffset % 7;\n\n  return offset < 0 ? offset + 7 : offset;\n}\n\nexport function isMonthDisabled(date: Date, min?: Date, max?: Date): boolean {\n  const minBound = min && isBefore(endOf(date, 'month'), min, 'day');\n  const maxBound = max && isAfter(startOf(date, 'month'), max, 'day');\n\n  return minBound || maxBound || false;\n}\n\nexport function isYearDisabled(date: Date, min?: Date, max?: Date): boolean {\n  const minBound = min && isBefore(endOf(date, 'year'), min, 'day');\n  const maxBound = max && isAfter(startOf(date, 'year'), max, 'day');\n\n  return minBound || maxBound || false;\n}\n\nexport function isDisabledDate(date?: Date, datesDisabled?: Date[], unit?: 'year' | 'date' | 'month'): boolean {\n  if (!datesDisabled  || !isArray(datesDisabled) || !datesDisabled.length) {\n    return false;\n  }\n\n  if (unit && unit === 'year' && !datesDisabled[0].getDate()) {\n    return datesDisabled.some((dateDisabled: Date) => isSame(date, dateDisabled, 'year'));\n  }\n\n  return datesDisabled.some((dateDisabled: Date) => isSame(date, dateDisabled, 'date'));\n}\n\nexport function isEnabledDate(date?: Date, datesEnabled?: Date[], unit?: 'year' | 'date' | 'month'): boolean {\n  if (!datesEnabled || !isArray(datesEnabled) || !datesEnabled.length) {\n    return false;\n  }\n\n  return !datesEnabled.some((enabledDate: Date) => isSame(date, enabledDate, unit || 'date'));\n}\n\nexport function getYearsCalendarInitialDate(state: BsDatepickerState, calendarIndex = 0): Date | undefined {\n  const model = state && state.yearsCalendarModel && state.yearsCalendarModel[calendarIndex];\n\n  return model?.years[0] && model.years[0][0] && model.years[0][0].date;\n}\n\nexport function checkRangesWithMaxDate(ranges?: BsCustomDates[], maxDate?: Date): BsCustomDates[] | undefined {\n  if (!ranges) return ranges;\n  if (!maxDate) return ranges;\n  if (!ranges.length && !ranges[0].value) return  ranges;\n\n  ranges.forEach((item: BsCustomDates) => {\n    if (!item || !item.value) return ranges;\n    if (item.value instanceof Date) return  ranges;\n    if (!(item.value instanceof Array && item.value.length) ) return ranges;\n    item.value = compareDateWithMaxDateHelper(item.value, maxDate);\n    return ranges;\n  });\n  return ranges;\n}\n\nexport function checkBsValue(date?: Array<Date> | Date | (Date | undefined)[], maxDate?: Date): Array<Date> | Date | (Date|undefined)[] | undefined {\n  if (!date) return date;\n  if (!maxDate) return date;\n  if (date instanceof Array && !date.length) return date;\n  if (date instanceof Date) return  date;\n  return compareDateWithMaxDateHelper(date, maxDate);\n}\n\nfunction compareDateWithMaxDateHelper <T>(date: T, maxDate: Date): T | Date[] {\n  if (date instanceof Array) {\n    const editedValues = date.map(item => {\n      if (!item) return  item;\n      if (isAfter(item, maxDate, 'date')) item = maxDate;\n      return item;\n    });\n    return editedValues;\n  }\n  return date;\n}\n\nexport function setCurrentTimeOnDateSelect(value?: Date): Date | undefined {\n  if (!value) return value;\n\n  return setCurrentTimeHelper(value);\n}\n\nexport function setDateRangesCurrentTimeOnDateSelect(value?: (Date|undefined)[]): (Date|undefined)[] | undefined {\n  if (!value?.length) return value;\n\n  value.map((date) => {\n    if (!date) {\n      return date;\n    }\n    return setCurrentTimeHelper(date);\n  });\n\n  return value;\n}\n\nfunction setCurrentTimeHelper(date: Date): Date {\n  const now = new Date();\n  date.setMilliseconds(now.getMilliseconds());\n  date.setSeconds(now.getSeconds());\n  date.setMinutes(now.getMinutes());\n  date.setHours(now.getHours());\n  return date;\n}\n","import { TimeUnit, shiftDate } from 'ngx-bootstrap/chronos';\n\nexport type CreateMatrixCb<T> = (date: Date) => T;\n\nexport interface MatrixOptions {\n  height: number;\n  width: number;\n  initialDate: Date;\n  shift: TimeUnit;\n}\n\nexport function createMatrix<T>(\n  options: MatrixOptions,\n  fn: CreateMatrixCb<T>\n): T[][] {\n  let prevValue = options.initialDate;\n  const matrix: T[][] = new Array(options.height);\n  for (let i = 0; i < options.height; i++) {\n    matrix[i] = new Array(options.width);\n    for (let j = 0; j < options.width; j++) {\n      matrix[i][j] = fn(prevValue);\n      prevValue = shiftDate(prevValue, options.shift);\n    }\n  }\n\n  return matrix;\n}\n","// user and model input should handle parsing and validating input values\nimport { getFirstDayOfMonth } from 'ngx-bootstrap/chronos';\n// should accept some options\n// todo: split out formatting\nimport { DaysCalendarModel, MonthViewOptions } from '../models';\nimport { getStartingDayOfCalendar } from '../utils/bs-calendar-utils';\nimport { createMatrix, MatrixOptions } from '../utils/matrix-utils';\n\nexport function calcDaysCalendar(\n  startingDate: Date,\n  options: MonthViewOptions\n): DaysCalendarModel {\n  const firstDay = getFirstDayOfMonth(startingDate);\n  const initialDate = getStartingDayOfCalendar(firstDay, options);\n\n  // todo test\n  const matrixOptions: MatrixOptions = {\n    width: options.width || 0,\n    height: options.height || 0,\n    initialDate,\n    shift: { day: 1 }\n  };\n  const daysMatrix = createMatrix<Date>(matrixOptions, date => date);\n\n  return {\n    daysMatrix,\n    month: firstDay\n  };\n}\n","import {\n  DatepickerFormatOptions,\n  DaysCalendarModel,\n  DaysCalendarViewModel\n} from '../models';\nimport { formatDate, getLocale } from 'ngx-bootstrap/chronos';\n\nexport function formatDaysCalendar(daysCalendar: DaysCalendarModel,\n                                   formatOptions: DatepickerFormatOptions,\n                                   monthIndex: number): DaysCalendarViewModel {\n  return {\n    month: daysCalendar.month,\n    monthTitle: formatDate(\n      daysCalendar.month,\n      formatOptions.monthTitle,\n      formatOptions.locale\n    ),\n    yearTitle: formatDate(\n      daysCalendar.month,\n      formatOptions.yearTitle,\n      formatOptions.locale\n    ),\n    weekNumbers: getWeekNumbers(\n      daysCalendar.daysMatrix,\n      formatOptions.weekNumbers,\n      formatOptions.locale\n    ),\n    weekdays: getShiftedWeekdays(formatOptions.locale),\n    weeks: daysCalendar.daysMatrix.map((week: Date[], weekIndex: number) => ({\n      days: week.map((date: Date, dayIndex: number) => ({\n        date,\n        label: formatDate(date, formatOptions.dayLabel, formatOptions.locale),\n        monthIndex,\n        weekIndex,\n        dayIndex\n      }))\n    })),\n    hideLeftArrow: false,\n    hideRightArrow: false,\n    disableLeftArrow: false,\n    disableRightArrow: false\n  };\n}\n\nexport function getWeekNumbers(daysMatrix: Date[][],\n                               format?: string,\n                               locale?: string): string[] {\n  return daysMatrix.map(\n    (days: Date[]) => (days[0] ? formatDate(days[0], format, locale) : '')\n  );\n}\n\nexport function getShiftedWeekdays(locale?: string): string[] {\n  const _locale = getLocale(locale);\n  const weekdays = _locale.weekdaysShort() as string[];\n  const firstDayOfWeek = _locale.firstDayOfWeek();\n\n  return [...weekdays.slice(firstDayOfWeek), ...weekdays.slice(0, firstDayOfWeek)];\n}\n","import {\n  DaysCalendarViewModel,\n  DayViewModel,\n  WeekViewModel,\n  DatepickerDateCustomClasses,\n  DatepickerDateTooltipText\n} from '../models';\n\nimport {\n  isAfter,\n  isBefore,\n  isDisabledDay,\n  isSameDay,\n  isSameMonth,\n  shiftDate\n} from 'ngx-bootstrap/chronos';\n\nimport { isMonthDisabled, isDisabledDate, isEnabledDate } from '../utils/bs-calendar-utils';\n\nexport interface FlagDaysCalendarOptions {\n  isDisabled: boolean;\n  minDate: Date;\n  maxDate: Date;\n  daysDisabled: number[];\n  datesDisabled: Date[];\n  datesEnabled: Date[];\n  hoveredDate: Date;\n  selectedDate: Date;\n  selectedRange: Date[];\n  displayMonths: number;\n  monthIndex: number;\n  dateCustomClasses: DatepickerDateCustomClasses[];\n  dateTooltipTexts: DatepickerDateTooltipText[];\n}\n\nexport function flagDaysCalendar(\n  formattedMonth: DaysCalendarViewModel,\n  options: Partial<FlagDaysCalendarOptions>\n): DaysCalendarViewModel {\n  formattedMonth.weeks.forEach((week: WeekViewModel) => {\n        week.days.forEach((day: DayViewModel, dayIndex: number) => {\n      // datepicker\n      const isOtherMonth = !isSameMonth(day.date, formattedMonth.month);\n\n      const isHovered =\n        !isOtherMonth && isSameDay(day.date, options.hoveredDate);\n      // date range picker\n      const isSelectionStart =\n        !isOtherMonth &&\n        options.selectedRange &&\n        isSameDay(day.date, options.selectedRange[0]);\n      const isSelectionEnd =\n        !isOtherMonth &&\n        options.selectedRange &&\n        isSameDay(day.date, options.selectedRange[1]);\n\n      const isSelected =\n        (!isOtherMonth && isSameDay(day.date, options.selectedDate)) ||\n        isSelectionStart ||\n        isSelectionEnd;\n\n      const isInRange =\n        !isOtherMonth &&\n        options.selectedRange &&\n        isDateInRange(day.date, options.selectedRange, options.hoveredDate);\n\n      const isDisabled =\n        options.isDisabled ||\n        isBefore(day.date, options.minDate, 'day') ||\n        isAfter(day.date, options.maxDate, 'day') ||\n        isDisabledDay(day.date, options.daysDisabled) ||\n        isDisabledDate(day.date, options.datesDisabled) ||\n        isEnabledDate(day.date, options.datesEnabled);\n\n      const currentDate = new Date();\n      const isToday = !isOtherMonth && isSameDay(day.date, currentDate);\n\n      const customClasses = options.dateCustomClasses && options.dateCustomClasses\n        .map(dcc => isSameDay(day.date, dcc.date) ? dcc.classes : [])\n        .reduce((previousValue, currentValue) => previousValue.concat(currentValue), [])\n        .join(' ')\n        || '';\n\n      const tooltipText = options.dateTooltipTexts && options.dateTooltipTexts\n          .map(tt => isSameDay(day.date, tt.date) ? tt.tooltipText : '')\n          .filter(text => !!text)\n          .join(' ')\n        || '';\n\n      // decide update or not\n      const newDay = Object.assign({}, day, {\n        isOtherMonth,\n        isHovered,\n        isSelected,\n        isSelectionStart,\n        isSelectionEnd,\n        isInRange,\n        isDisabled,\n        isToday,\n        customClasses,\n        tooltipText\n      });\n\n      if (\n        day.isOtherMonth !== newDay.isOtherMonth ||\n        day.isHovered !== newDay.isHovered ||\n        day.isSelected !== newDay.isSelected ||\n        day.isSelectionStart !== newDay.isSelectionStart ||\n        day.isSelectionEnd !== newDay.isSelectionEnd ||\n        day.isDisabled !== newDay.isDisabled ||\n        day.isInRange !== newDay.isInRange ||\n        day.customClasses !== newDay.customClasses ||\n        day.tooltipText !== newDay.tooltipText\n      ) {\n        week.days[dayIndex] = newDay;\n      }\n    });\n  });\n\n  // todo: add check for linked calendars\n  formattedMonth.hideLeftArrow =\n    options.isDisabled ||\n    (!!options.monthIndex && options.monthIndex > 0 && options.monthIndex !== options.displayMonths);\n  formattedMonth.hideRightArrow =\n    options.isDisabled ||\n    ((!!options.monthIndex || options.monthIndex === 0) && !!options.displayMonths && options.monthIndex < options.displayMonths &&\n      options.monthIndex + 1 !== options.displayMonths);\n\n  formattedMonth.disableLeftArrow = isMonthDisabled(\n    shiftDate(formattedMonth.month, { month: -1 }),\n    options.minDate,\n    options.maxDate\n  );\n  formattedMonth.disableRightArrow = isMonthDisabled(\n    shiftDate(formattedMonth.month, { month: 1 }),\n    options.minDate,\n    options.maxDate\n  );\n  return formattedMonth;\n}\n\nfunction isDateInRange(\n  date: Date,\n  selectedRange?: Date[],\n  hoveredDate?: Date\n): boolean {\n  if (!date || !selectedRange || !selectedRange[0]) {\n    return false;\n  }\n\n  if (selectedRange[1]) {\n    return date > selectedRange[0] && date <= selectedRange[1];\n  }\n\n  if (hoveredDate) {\n    return date > selectedRange[0] && date <= hoveredDate;\n  }\n\n  return false;\n}\n","import { BsDatepickerViewMode } from '../models';\n\nexport function canSwitchMode(mode: BsDatepickerViewMode, minMode?: BsDatepickerViewMode): boolean {\n  return minMode ? mode >= minMode : true;\n}\n","import {\n  DatepickerFormatOptions,\n  MonthsCalendarViewModel,\n  CalendarCellViewModel\n} from '../models';\nimport { startOf, formatDate } from 'ngx-bootstrap/chronos';\nimport { createMatrix } from '../utils/matrix-utils';\n\nconst height = 4;\nconst width = 3;\nconst shift = { month: 1 };\n\nexport function formatMonthsCalendar(\n  viewDate: Date,\n  formatOptions: DatepickerFormatOptions\n): MonthsCalendarViewModel {\n  const initialDate = startOf(viewDate, 'year');\n  const matrixOptions = { width, height, initialDate, shift };\n  const monthMatrix = createMatrix<\n    CalendarCellViewModel\n  >(matrixOptions, date => ({\n    date,\n    label: formatDate(date, formatOptions.monthLabel, formatOptions.locale)\n  }));\n\n  return {\n    months: monthMatrix,\n    monthTitle: '',\n    yearTitle: formatDate(\n      viewDate,\n      formatOptions.yearTitle,\n      formatOptions.locale\n    ),\n    hideRightArrow: false,\n    hideLeftArrow: false,\n    disableRightArrow: false,\n    disableLeftArrow: false\n  };\n}\n","import { isSameMonth, shiftDate } from 'ngx-bootstrap/chronos';\nimport {\n  MonthsCalendarViewModel,\n  CalendarCellViewModel\n} from '../models';\nimport { isDisabledDate, isEnabledDate, isMonthDisabled, isYearDisabled } from '../utils/bs-calendar-utils';\n\nexport interface FlagMonthCalendarOptions {\n  isDisabled: boolean;\n  minDate: Date;\n  maxDate: Date;\n  hoveredMonth: Date;\n  selectedDate: Date;\n  selectedRange: Date[];\n  datesDisabled: Date[];\n  datesEnabled: Date[];\n  displayMonths: number;\n  monthIndex: number;\n}\n\nexport function flagMonthsCalendar(\n  monthCalendar: MonthsCalendarViewModel,\n  options: Partial<FlagMonthCalendarOptions>\n): MonthsCalendarViewModel {\n  monthCalendar.months.forEach(\n    (months: CalendarCellViewModel[], rowIndex: number) => {\n      months.forEach((month: CalendarCellViewModel, monthIndex: number) => {\n        let isSelected: boolean;\n        const isHovered = isSameMonth(month.date, options.hoveredMonth);\n        const isDisabled =\n          options.isDisabled ||\n          isDisabledDate(month.date, options.datesDisabled) ||\n          isEnabledDate(month.date, options.datesEnabled, 'month') ||\n          isMonthDisabled(month.date, options.minDate, options.maxDate);\n\n        if (!options.selectedDate && options.selectedRange) {\n          isSelected = isSameMonth(month.date, options.selectedRange[0]);\n          if (!isSelected) {\n            isSelected = isSameMonth(month.date, options.selectedRange[1]);\n          }\n        } else {\n          isSelected = isSameMonth(month.date, options.selectedDate);\n        }\n        const newMonth = Object.assign(/*{},*/ month, {\n          isHovered,\n          isDisabled,\n          isSelected\n        });\n        if (\n          month.isHovered !== newMonth.isHovered ||\n          month.isDisabled !== newMonth.isDisabled ||\n          month.isSelected !== newMonth.isSelected\n        ) {\n          monthCalendar.months[rowIndex][monthIndex] = newMonth;\n        }\n      });\n    }\n  );\n\n  // todo: add check for linked calendars\n  monthCalendar.hideLeftArrow =\n    !!options.monthIndex && options.monthIndex > 0 && options.monthIndex !== options.displayMonths;\n\n  monthCalendar.hideRightArrow =\n    (!!options.monthIndex || options.monthIndex === 0 )\n    && (!!options.displayMonths || options.displayMonths === 0)\n    && options.monthIndex < options.displayMonths\n    && options.monthIndex + 1 !== options.displayMonths;\n\n  monthCalendar.disableLeftArrow = isYearDisabled(\n    shiftDate(monthCalendar.months[0][0].date, { year: -1 }),\n    options.minDate,\n    options.maxDate\n  );\n  monthCalendar.disableRightArrow = isYearDisabled(\n    shiftDate(monthCalendar.months[0][0].date, { year: 1 }),\n    options.minDate,\n    options.maxDate\n  );\n\n  return monthCalendar;\n}\n","import {\n  DatepickerFormatOptions,\n  YearsCalendarViewModel,\n  CalendarCellViewModel\n} from '../models';\nimport { shiftDate, formatDate } from 'ngx-bootstrap/chronos';\nimport { createMatrix } from '../utils/matrix-utils';\n\nconst height = 4;\nconst width = 4;\nexport const yearsPerCalendar = height * width;\nexport const initialYearShift = (Math.floor(yearsPerCalendar / 2) - 1) * -1;\nconst shift = { year: 1 };\n\nexport function formatYearsCalendar(\n  viewDate: Date,\n  formatOptions: DatepickerFormatOptions,\n  previousInitialDate?: Date\n): YearsCalendarViewModel {\n  const initialDate = calculateInitialDate(viewDate, previousInitialDate);\n  const matrixOptions = { width, height, initialDate, shift };\n  const yearsMatrix = createMatrix<\n    CalendarCellViewModel\n  >(matrixOptions, date => ({\n    date,\n    label: formatDate(date, formatOptions.yearLabel, formatOptions.locale)\n  }));\n  const yearTitle = formatYearRangeTitle(yearsMatrix, formatOptions);\n\n  return {\n    years: yearsMatrix,\n    monthTitle: '',\n    yearTitle,\n    hideLeftArrow: false,\n    hideRightArrow: false,\n    disableLeftArrow: false,\n    disableRightArrow: false\n  };\n}\n\nfunction calculateInitialDate(viewDate: Date, previousInitialDate?: Date): Date {\n  if (previousInitialDate\n    && viewDate.getFullYear() >= previousInitialDate.getFullYear()\n    && viewDate.getFullYear() < previousInitialDate.getFullYear() + yearsPerCalendar) {\n    return previousInitialDate;\n  }\n\n  return shiftDate(viewDate, { year: initialYearShift });\n}\n\nfunction formatYearRangeTitle(\n  yearsMatrix: CalendarCellViewModel[][],\n  formatOptions: DatepickerFormatOptions\n): string {\n  const from = formatDate(\n    yearsMatrix[0][0].date,\n    formatOptions.yearTitle,\n    formatOptions.locale\n  );\n  const to = formatDate(\n    yearsMatrix[height - 1][width - 1].date,\n    formatOptions.yearTitle,\n    formatOptions.locale\n  );\n\n  return `${from} - ${to}`;\n}\n","import { isSameYear, shiftDate } from 'ngx-bootstrap/chronos';\nimport { YearsCalendarViewModel, CalendarCellViewModel } from '../models';\nimport { isDisabledDate, isEnabledDate, isYearDisabled } from '../utils/bs-calendar-utils';\n\nexport interface FlagYearsCalendarOptions {\n  isDisabled: boolean;\n  minDate: Date;\n  maxDate: Date;\n  hoveredYear: Date;\n  selectedDate: Date;\n  selectedRange: Date[];\n  datesDisabled: Date[];\n  datesEnabled: Date[];\n  displayMonths: number;\n  yearIndex: number;\n}\n\nexport function flagYearsCalendar(\n  yearsCalendar: YearsCalendarViewModel,\n  options: Partial<FlagYearsCalendarOptions>\n): YearsCalendarViewModel {\n  yearsCalendar.years.forEach(\n    (years: CalendarCellViewModel[], rowIndex: number) => {\n      years.forEach((year: CalendarCellViewModel, yearIndex: number) => {\n        let isSelected: boolean;\n        const isHovered = isSameYear(year.date, options.hoveredYear);\n        const isDisabled =\n          options.isDisabled ||\n          isDisabledDate(year.date, options.datesDisabled, 'year') ||\n          isEnabledDate(year.date, options.datesEnabled, 'year') ||\n          isYearDisabled(year.date, options.minDate, options.maxDate);\n\n        if (!options.selectedDate && options.selectedRange) {\n          isSelected = isSameYear(year.date, options.selectedRange[0]);\n          if (!isSelected) {\n            isSelected = isSameYear(year.date, options.selectedRange[1]);\n          }\n        } else {\n          isSelected = isSameYear(year.date, options.selectedDate);\n        }\n\n        const newMonth = Object.assign(/*{},*/ year, { isHovered, isDisabled, isSelected });\n        if (\n          year.isHovered !== newMonth.isHovered ||\n          year.isDisabled !== newMonth.isDisabled ||\n          year.isSelected !== newMonth.isSelected\n        ) {\n          yearsCalendar.years[rowIndex][yearIndex] = newMonth;\n        }\n      });\n    }\n  );\n\n  // todo: add check for linked calendars\n  yearsCalendar.hideLeftArrow =\n    !!options.yearIndex && options.yearIndex > 0 && options.yearIndex !== options.displayMonths;\n  yearsCalendar.hideRightArrow =\n    !!options.yearIndex && !!options.displayMonths &&\n    options.yearIndex < options.displayMonths &&\n    options.yearIndex + 1 !== options.displayMonths;\n\n  yearsCalendar.disableLeftArrow = isYearDisabled(\n    shiftDate(yearsCalendar.years[0][0].date, { year: -1 }),\n    options.minDate,\n    options.maxDate\n  );\n  const i = yearsCalendar.years.length - 1;\n  const j = yearsCalendar.years[i].length - 1;\n  yearsCalendar.disableRightArrow = isYearDisabled(\n    shiftDate(yearsCalendar.years[i][j].date, { year: 1 }),\n    options.minDate,\n    options.maxDate\n  );\n\n  return yearsCalendar;\n}\n","export function copyTime(sourceDate: Date, time: Date) {\n  if (!sourceDate || !isNaN(sourceDate.getTime())) {\n    return;\n  }\n\n  sourceDate.setHours(time.getHours());\n  sourceDate.setMinutes(time.getMinutes());\n  sourceDate.setSeconds(time.getSeconds());\n  sourceDate.setMilliseconds(time.getMilliseconds());\n}\n","import { BsDatepickerState, BsDatepickerViewState, initialDatepickerState } from './bs-datepicker.state';\nimport { Action } from 'ngx-bootstrap/mini-ngrx';\nimport { BsDatepickerActions } from './bs-datepicker.actions';\nimport { calcDaysCalendar } from '../engine/calc-days-calendar';\nimport { formatDaysCalendar } from '../engine/format-days-calendar';\nimport { flagDaysCalendar } from '../engine/flag-days-calendar';\nimport {\n  setFullDate,\n  shiftDate,\n  isArray,\n  isDateValid,\n  startOf,\n  getLocale,\n  isAfter,\n  isBefore,\n  isSame\n} from 'ngx-bootstrap/chronos';\nimport { canSwitchMode } from '../engine/view-mode';\nimport { formatMonthsCalendar } from '../engine/format-months-calendar';\nimport { flagMonthsCalendar } from '../engine/flag-months-calendar';\nimport { formatYearsCalendar, initialYearShift, yearsPerCalendar } from '../engine/format-years-calendar';\nimport { flagYearsCalendar } from '../engine/flag-years-calendar';\nimport { BsViewNavigationEvent, DatepickerFormatOptions, BsDatepickerViewMode } from '../models';\nimport { getYearsCalendarInitialDate } from '../utils/bs-calendar-utils';\nimport { copyTime } from '../utils/copy-time-utils';\n\n\nexport function bsDatepickerReducer(state: BsDatepickerState = initialDatepickerState,\n                                    action: Action): BsDatepickerState {\n  switch (action.type) {\n    case BsDatepickerActions.CALCULATE: {\n      return calculateReducer(state);\n    }\n\n    case BsDatepickerActions.FORMAT: {\n      return formatReducer(state);\n    }\n\n    case BsDatepickerActions.FLAG: {\n      return flagReducer(state);\n    }\n\n    case BsDatepickerActions.NAVIGATE_OFFSET: {\n      return navigateOffsetReducer(state, action);\n    }\n\n    case BsDatepickerActions.NAVIGATE_TO: {\n      const payload: BsViewNavigationEvent = action.payload;\n      if (!state.view || !payload.unit) {\n        return state;\n      }\n\n      const date = setFullDate(state.view.date, payload.unit);\n      let newState;\n      let mode: BsDatepickerViewMode;\n      if (canSwitchMode(payload.viewMode, state.minMode)) {\n        mode = payload.viewMode;\n        newState = { view: { date, mode } };\n      } else {\n        mode = state.view.mode;\n        newState = { selectedDate: date, view: { date, mode } };\n      }\n\n      return Object.assign({}, state, newState);\n    }\n\n    case BsDatepickerActions.CHANGE_VIEWMODE: {\n      if (!canSwitchMode(action.payload, state.minMode) || !state.view) {\n        return state;\n      }\n\n      const date = state.view.date;\n      const mode = action.payload;\n      const newState = { view: { date, mode } };\n\n      return Object.assign({}, state, newState);\n    }\n\n    case BsDatepickerActions.HOVER: {\n      return Object.assign({}, state, { hoveredDate: action.payload });\n    }\n\n    case BsDatepickerActions.SELECT: {\n      if (!state.view) {\n        return state;\n      }\n\n      const newState = {\n        selectedDate: action.payload,\n        view: state.view\n      };\n\n      if (Array.isArray(state.selectedTime)) {\n        const _time = state.selectedTime[0];\n        if (newState.selectedDate && _time) {\n          copyTime(newState.selectedDate, _time);\n        }\n      }\n\n      const mode = state.view.mode;\n      const _date = action.payload || state.view.date;\n      const date = getViewDate(_date, state.minDate, state.maxDate);\n      newState.view = { mode, date };\n\n      return Object.assign({}, state, newState);\n    }\n\n    case BsDatepickerActions.SELECT_TIME: {\n      const {date, index} = action.payload;\n      const selectedTime = state.selectedTime ? [...state.selectedTime] : [];\n      selectedTime[index] = date;\n      return Object.assign({}, state, { selectedTime });\n    }\n\n    case BsDatepickerActions.SET_OPTIONS: {\n      if (!state.view) {\n        return state;\n      }\n\n      const newState = action.payload;\n      // preserve view mode\n      const mode = newState.minMode ? newState.minMode : state.view.mode;\n      const _viewDate = isDateValid(newState.value) && newState.value\n        || isArray(newState.value) && isDateValid(newState.value[0]) && newState.value[0]\n        || state.view.date;\n      const date = getViewDate(_viewDate, newState.minDate, newState.maxDate);\n      newState.view = { mode, date };\n      // update selected value\n      if (newState.value) {\n        // if new value is array we work with date range\n        if (isArray(newState.value)) {\n          newState.selectedRange = newState.value;\n          newState.selectedTime = newState.value.map((i: Date) => i);\n        }\n\n        // if new value is a date -> datepicker\n        if (newState.value instanceof Date) {\n          newState.selectedDate = newState.value;\n          newState.selectedTime = [newState.value];\n        }\n\n        // provided value is not supported :)\n        // need to report it somehow\n      }\n\n      return Object.assign({}, state, newState);\n    }\n\n    // date range picker\n    case BsDatepickerActions.SELECT_RANGE: {\n      if (!state.view) {\n        return state;\n      }\n\n      const newState = {\n        selectedRange: action.payload,\n        view: state.view\n      };\n      newState.selectedRange?.forEach((dte: Date, index: number) => {\n        if (Array.isArray(state.selectedTime)) {\n          const _time = state.selectedTime[index];\n          if (_time) {\n            copyTime(dte, _time);\n          }\n        }\n      });\n\n      const mode = state.view.mode;\n      const _date = action.payload && action.payload[0] || state.view.date;\n      const date = getViewDate(_date, state.minDate, state.maxDate);\n      newState.view = { mode, date };\n\n      return Object.assign({}, state, newState);\n    }\n\n    case BsDatepickerActions.SET_MIN_DATE: {\n      return Object.assign({}, state, {\n        minDate: action.payload\n      });\n    }\n    case BsDatepickerActions.SET_MAX_DATE: {\n      return Object.assign({}, state, {\n        maxDate: action.payload\n      });\n    }\n    case BsDatepickerActions.SET_IS_DISABLED: {\n      return Object.assign({}, state, {\n        isDisabled: action.payload\n      });\n    }\n    case BsDatepickerActions.SET_DATE_CUSTOM_CLASSES: {\n      return Object.assign({}, state, {\n        dateCustomClasses: action.payload\n      });\n    }\n    case BsDatepickerActions.SET_DATE_TOOLTIP_TEXTS: {\n      return Object.assign({}, state, {\n        dateTooltipTexts: action.payload\n      });\n    }\n\n    default:\n      return state;\n  }\n}\n\nfunction calculateReducer(state: BsDatepickerState): BsDatepickerState {\n  if (!state.view) {\n    return state;\n  }\n\n  // how many calendars\n  let displayMonths: number | undefined;\n  if (state.displayOneMonthRange &&\n    isDisplayOneMonth(state.view.date, state.minDate, state.maxDate)) {\n    displayMonths = 1;\n  } else {\n    displayMonths = state.displayMonths || 1;\n  }\n\n  // use selected date on initial rendering if set\n  let viewDate = state.view.date;\n\n  if (state.view.mode === 'day' && state.monthViewOptions) {\n    if (state.showPreviousMonth && state.selectedRange && state.selectedRange.length === 0) {\n      viewDate = shiftDate(viewDate, { month: -1 });\n    }\n\n    state.monthViewOptions.firstDayOfWeek = getLocale(state.locale).firstDayOfWeek();\n    let monthsModel = new Array(displayMonths);\n    for (let monthIndex = 0; monthIndex < displayMonths; monthIndex++) {\n      // todo: for unlinked calendars it will be harder\n      monthsModel[monthIndex] = calcDaysCalendar(\n        viewDate,\n        state.monthViewOptions\n      );\n      viewDate = shiftDate(viewDate, { month: 1 });\n    }\n    // Check if parameter enabled and check if it's not months navigation event\n    if (state.preventChangeToNextMonth && state.flaggedMonths && state.hoveredDate) {\n      const viewMonth = calcDaysCalendar(state.view.date, state.monthViewOptions);\n      // Check if viewed right month same as in flaggedMonths state, then override months model with flaggedMonths\n      if (state.flaggedMonths.length && state.flaggedMonths[1].month.getMonth() === viewMonth.month.getMonth()) {\n        monthsModel = state.flaggedMonths\n          .map(item => {\n            if (state.monthViewOptions) {\n              return calcDaysCalendar(\n                item.month,\n                state.monthViewOptions\n              );\n            }\n            return null;\n          })\n          .filter(item => item !== null);\n      }\n    }\n\n    return Object.assign({}, state, { monthsModel });\n  }\n\n  if (state.view.mode === 'month') {\n    const monthsCalendar = new Array(displayMonths);\n    for (\n      let calendarIndex = 0;\n      calendarIndex < displayMonths;\n      calendarIndex++\n    ) {\n      // todo: for unlinked calendars it will be harder\n      monthsCalendar[calendarIndex] = formatMonthsCalendar(\n        viewDate,\n        getFormatOptions(state)\n      );\n      viewDate = shiftDate(viewDate, { year: 1 });\n    }\n\n    return Object.assign({}, state, { monthsCalendar });\n  }\n\n  if (state.view.mode === 'year') {\n    const yearsCalendarModel = new Array(displayMonths);\n\n    for (\n      let calendarIndex = 0;\n      calendarIndex < displayMonths;\n      calendarIndex++\n    ) {\n      // todo: for unlinked calendars it will be harder\n      yearsCalendarModel[calendarIndex] = formatYearsCalendar(\n        viewDate,\n        getFormatOptions(state),\n        state.minMode === 'year' ? getYearsCalendarInitialDate(state, calendarIndex) : undefined\n      );\n      viewDate = shiftDate(viewDate, { year: yearsPerCalendar });\n    }\n\n    return Object.assign({}, state, { yearsCalendarModel });\n  }\n\n  return state;\n}\n\nfunction formatReducer(state: BsDatepickerState): BsDatepickerState {\n  if (!state.view) {\n    return state;\n  }\n\n  if (state.view.mode === 'day' && state.monthsModel) {\n    const formattedMonths = state.monthsModel.map((month, monthIndex) =>\n      formatDaysCalendar(month, getFormatOptions(state), monthIndex)\n    );\n\n    return Object.assign({}, state, { formattedMonths });\n  }\n\n  // how many calendars\n  const displayMonths = state.displayMonths || 1;\n  // check initial rendering\n  // use selected date on initial rendering if set\n  let viewDate = state.view.date;\n\n  if (state.view.mode === 'month') {\n    const monthsCalendar = new Array(displayMonths);\n    for (\n      let calendarIndex = 0;\n      calendarIndex < displayMonths;\n      calendarIndex++\n    ) {\n      // todo: for unlinked calendars it will be harder\n      monthsCalendar[calendarIndex] = formatMonthsCalendar(\n        viewDate,\n        getFormatOptions(state)\n      );\n      viewDate = shiftDate(viewDate, { year: 1 });\n    }\n\n    return Object.assign({}, state, { monthsCalendar });\n  }\n\n  if (state.view.mode === 'year') {\n    const yearsCalendarModel = new Array(displayMonths);\n    for (\n      let calendarIndex = 0;\n      calendarIndex < displayMonths;\n      calendarIndex++\n    ) {\n      // todo: for unlinked calendars it will be harder\n      yearsCalendarModel[calendarIndex] = formatYearsCalendar(\n        viewDate,\n        getFormatOptions(state)\n      );\n      viewDate = shiftDate(viewDate, { year: 16 });\n    }\n\n    return Object.assign({}, state, { yearsCalendarModel });\n  }\n\n  return state;\n}\n\nfunction flagReducer(state: BsDatepickerState): BsDatepickerState {\n  if (!state.view) {\n    return state;\n  }\n\n  const displayMonths = isDisplayOneMonth(state.view.date, state.minDate, state.maxDate) ? 1 : state.displayMonths;\n  if (state.formattedMonths && state.view.mode === 'day') {\n    const flaggedMonths = state.formattedMonths.map(\n      (formattedMonth, monthIndex) =>\n        flagDaysCalendar(formattedMonth, {\n          isDisabled: state.isDisabled,\n          minDate: state.minDate,\n          maxDate: state.maxDate,\n          daysDisabled: state.daysDisabled,\n          datesDisabled: state.datesDisabled,\n          datesEnabled: state.datesEnabled,\n          hoveredDate: state.hoveredDate,\n          selectedDate: state.selectedDate,\n          selectedRange: state.selectedRange,\n          displayMonths,\n          dateCustomClasses: state.dateCustomClasses,\n          dateTooltipTexts: state.dateTooltipTexts,\n          monthIndex\n        })\n    );\n\n    return Object.assign({}, state, { flaggedMonths });\n  }\n\n  if (state.view.mode === 'month' && state.monthsCalendar) {\n    const flaggedMonthsCalendar = state.monthsCalendar.map(\n      (formattedMonth, monthIndex) =>\n        flagMonthsCalendar(formattedMonth, {\n          isDisabled: state.isDisabled,\n          minDate: state.minDate,\n          maxDate: state.maxDate,\n          hoveredMonth: state.hoveredMonth,\n          selectedDate: state.selectedDate,\n          datesDisabled: state.datesDisabled,\n          datesEnabled: state.datesEnabled,\n          selectedRange: state.selectedRange,\n          displayMonths,\n          monthIndex\n        })\n    );\n\n    return Object.assign({}, state, { flaggedMonthsCalendar });\n  }\n\n  if (state.view.mode === 'year' && state.yearsCalendarModel) {\n    const yearsCalendarFlagged = state.yearsCalendarModel.map(\n      (formattedMonth, yearIndex) =>\n        flagYearsCalendar(formattedMonth, {\n          isDisabled: state.isDisabled,\n          minDate: state.minDate,\n          maxDate: state.maxDate,\n          hoveredYear: state.hoveredYear,\n          selectedDate: state.selectedDate,\n          datesDisabled: state.datesDisabled,\n          datesEnabled: state.datesEnabled,\n          selectedRange: state.selectedRange,\n          displayMonths,\n          yearIndex\n        })\n    );\n\n    return Object.assign({}, state, { yearsCalendarFlagged });\n  }\n\n  return state;\n}\n\nfunction navigateOffsetReducer(state: BsDatepickerState, action: Action): BsDatepickerState {\n  if (!state.view) {\n    return state;\n  }\n\n  const date = shiftViewDate(state, action);\n  if (!date) {\n    return state;\n  }\n\n  const newState: {view: BsDatepickerViewState} = {\n    view: {\n      mode: state.view.mode,\n      date\n    }\n  };\n\n  return Object.assign({}, state, newState);\n}\n\nfunction shiftViewDate(state: BsDatepickerState, action: Action): Date | undefined {\n  if (!state.view) {\n    return undefined;\n  }\n\n  if (state.view.mode === 'year' && state.minMode === 'year') {\n    const initialDate = getYearsCalendarInitialDate(state, 0);\n    if (initialDate) {\n      const middleDate = shiftDate(initialDate, { year: -initialYearShift });\n      return shiftDate(middleDate, action.payload);\n    }\n  }\n\n  return shiftDate(startOf(state.view.date, 'month'), action.payload);\n}\n\nfunction getFormatOptions(state: BsDatepickerState): DatepickerFormatOptions {\n  return {\n    locale: state.locale,\n\n    monthTitle: state.monthTitle,\n    yearTitle: state.yearTitle,\n\n    dayLabel: state.dayLabel,\n    monthLabel: state.monthLabel,\n    yearLabel: state.yearLabel,\n\n    weekNumbers: state.weekNumbers\n  };\n}\n\n/**\n * if view date is provided (bsValue|ngModel) it should be shown\n * if view date is not provider:\n * if minDate>currentDate (default view value), show minDate\n * if maxDate<currentDate(default view value) show maxDate\n */\nfunction getViewDate(viewDate: Date | Date[], minDate?: Date, maxDate?: Date) {\n  const _date = Array.isArray(viewDate) ? viewDate[0] : viewDate;\n\n  if (minDate && isAfter(minDate, _date, 'day')) {\n    return minDate;\n  }\n\n  if (maxDate && isBefore(maxDate, _date, 'day')) {\n    return maxDate;\n  }\n\n  return _date;\n}\n\nfunction isDisplayOneMonth(viewDate: Date, minDate?: Date, maxDate?: Date) {\n  if (maxDate && isSame(maxDate, viewDate, 'day')) {\n    return true;\n  }\n\n  return minDate && maxDate && minDate.getMonth() === maxDate.getMonth();\n}\n","import { Injectable } from '@angular/core';\nimport { MiniStore, Action, MiniState } from 'ngx-bootstrap/mini-ngrx';\nimport { BsDatepickerState, initialDatepickerState } from './bs-datepicker.state';\nimport { BehaviorSubject } from 'rxjs';\nimport { bsDatepickerReducer } from './bs-datepicker.reducer';\n\n@Injectable({providedIn: 'platform'})\nexport class BsDatepickerStore extends MiniStore<BsDatepickerState> {\n  constructor() {\n    const _dispatcher = new BehaviorSubject<Action>({\n      type: '[datepicker] dispatcher init'\n    });\n    const state = new MiniState<BsDatepickerState>(\n      initialDatepickerState,\n      _dispatcher,\n      bsDatepickerReducer\n    );\n    super(_dispatcher, bsDatepickerReducer, state);\n  }\n}\n","import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';\n\n\nexport interface BsCustomDates {\n  label: string;\n  value: Date | Date[];\n}\n\n@Component({\n    selector: 'bs-custom-date-view',\n    template: `\n    <div class=\"bs-datepicker-predefined-btns\">\n      @for (range of ranges; track range) {\n        <button\n          type=\"button\"\n          class=\"btn\"\n          (click)=\"selectFromRanges(range)\"\n          [class.selected]=\"compareRanges(range)\">\n          {{ range.label }}\n        </button>\n      }\n    </div>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true,\n    imports: []\n})\nexport class BsCustomDatesViewComponent {\n  @Input() ranges?: BsCustomDates[];\n  @Input() selectedRange?: Date[];\n  @Input() customRangeLabel?: string;\n  @Output() onSelect = new EventEmitter<BsCustomDates>();\n\n  selectFromRanges(range?: BsCustomDates) {\n    this.onSelect.emit(range);\n  }\n\n  compareRanges(range?: BsCustomDates) {\n    return JSON.stringify(range?.value) === JSON.stringify(this.selectedRange);\n  }\n}\n","import { TimeUnit } from 'ngx-bootstrap/chronos';\n\nexport type BsDatepickerViewMode = 'day' | 'month' | 'year';\n\n/** *************** */\n// navigation bar settings\nexport interface NavigationViewModel {\n  monthTitle: string;\n  yearTitle: string;\n  hideLeftArrow: boolean;\n  hideRightArrow: boolean;\n  disableLeftArrow: boolean;\n  disableRightArrow: boolean;\n}\n\nexport interface CalendarCellViewModel {\n  date: Date;\n  label: string;\n  isDisabled?: boolean;\n  isHovered?: boolean;\n  isSelected?: boolean;\n}\n\n/** *************** */\n// days matrix: day cell view model\nexport interface DayViewModel extends CalendarCellViewModel {\n  isOtherMonthHovered?: boolean;\n  isOtherMonth?: boolean;\n  isInRange?: boolean;\n  isSelectionStart?: boolean;\n  isSelectionEnd?: boolean;\n  isToday?: boolean;\n  customClasses?: string;\n  tooltipText?: string;\n  // day index\n  monthIndex?: number;\n  weekIndex?: number;\n  dayIndex?: number;\n}\n\nexport interface WeekViewModel {\n  days: DayViewModel[];\n  isHovered?: boolean;\n}\n\n// todo: split navigation settings\nexport interface DaysCalendarViewModel extends NavigationViewModel {\n  weeks: WeekViewModel[];\n  // additional information\n  month: Date;\n  weekNumbers: string[];\n  weekdays: string[];\n}\n\n/** *************** */\n// months calendar\nexport interface MonthsCalendarViewModel extends NavigationViewModel {\n  months: CalendarCellViewModel[][];\n}\n\n/** *************** */\n// years calendar\nexport interface YearsCalendarViewModel extends NavigationViewModel {\n  years: CalendarCellViewModel[][];\n}\n\n/** *************** */\n\n// math model\n/** *************** */\n\n// days Date's array\nexport interface DaysCalendarModel {\n  daysMatrix: Date[][];\n  month: Date;\n}\n\n/** *************** */\n// some func options\nexport interface MonthViewOptions {\n  width?: number;\n  height?: number;\n  firstDayOfWeek?: number;\n}\n\n/** *************** */\n// rendering options\nexport interface DatepickerFormatOptions {\n  locale?: string;\n\n  monthTitle?: string;\n  yearTitle?: string;\n\n  dayLabel?: string;\n  monthLabel?: string;\n  yearLabel?: string;\n\n  weekNumbers?: string;\n}\n\nexport interface DatepickerRenderOptions {\n  showWeekNumbers: boolean;\n  displayMonths: number;\n}\n\nexport interface DatepickerDateCustomClasses {\n  date: Date;\n  classes: string[];\n}\n\nexport interface DatepickerDateTooltipText {\n  date: Date;\n  tooltipText: string;\n}\n\n/** *************** */\n// events\n/** *************** */\nexport enum BsNavigationDirection {\n  UP,\n  DOWN\n}\n\n// used for navigation events, to change view date in state\nexport interface BsNavigationEvent {\n  direction?: BsNavigationDirection;\n  step?: TimeUnit;\n}\n\nexport interface BsViewNavigationEvent {\n  unit?: TimeUnit;\n  viewMode: BsDatepickerViewMode;\n}\n\nexport interface CellHoverEvent {\n  cell: CalendarCellViewModel;\n  isHovered: boolean;\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BsDatepickerViewMode, BsNavigationDirection, NavigationViewModel } from '../../models';\n\n\n@Component({\n    selector: 'bs-datepicker-navigation-view',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    template: `\n    <button class=\"previous\"\n      [disabled]=\"calendar.disableLeftArrow\"\n      [style.visibility]=\"calendar.hideLeftArrow ? 'hidden' : 'visible'\"\n      type=\"button\"\n      (click)=\"navTo(true)\">\n      <span>&lsaquo;</span>\n    </button>\n    \n    @if (calendar && calendar.monthTitle) {\n      &#8203;  <!-- zero-width space needed for correct alignment\n      with preserveWhitespaces: false in Angular -->\n      <button class=\"current\"\n        type=\"button\"\n        (click)=\"view('month')\"\n        [disabled]=\"isDisabled\"\n        ><span>{{ calendar.monthTitle }}</span>\n      </button>\n    }\n    \n    &#8203;  <!-- zero-width space needed for correct alignment\n    with preserveWhitespaces: false in Angular -->\n    \n    <button\n      class=\"current\"\n      (click)=\"view('year')\"\n      type=\"button\"\n      [disabled]=\"isDisabled\"\n      >\n      <span>{{ calendar.yearTitle }}</span>\n    </button>\n    \n    &#8203;  <!-- zero-width space needed for correct alignment\n    with preserveWhitespaces: false in Angular -->\n    \n    <button class=\"next\"\n      [disabled]=\"calendar.disableRightArrow\"\n      [style.visibility]=\"calendar.hideRightArrow ? 'hidden' : 'visible'\"\n      type=\"button\"\n      (click)=\"navTo(false)\"><span>&rsaquo;</span>\n    </button>\n    `,\n    standalone: true,\n    imports: []\n})\nexport class BsDatepickerNavigationViewComponent {\n  @Input() calendar!: NavigationViewModel;\n  @Input() isDisabled = false;\n\n  @Output() onNavigate = new EventEmitter<BsNavigationDirection>();\n  @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n  navTo(down: boolean): void {\n    this.onNavigate.emit(\n      down ? BsNavigationDirection.DOWN : BsNavigationDirection.UP\n    );\n  }\n\n  view(viewMode: BsDatepickerViewMode): void {\n    if (this.isDisabled) {\n      return;\n    }\n\n    this.onViewMode.emit(viewMode);\n  }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'bs-timepicker',\n    template: `\n    <div class=\"bs-timepicker-container\">\n      <div class=\"bs-timepicker-controls\">\n        <button class=\"bs-decrease\" type=\"button\">-</button>\n        <input type=\"text\" [value]=\"hours\" placeholder=\"00\">\n        <button class=\"bs-increase\" type=\"button\">+</button>\n      </div>\n      <div class=\"bs-timepicker-controls\">\n        <button class=\"bs-decrease\" type=\"button\">-</button>\n        <input type=\"text\" [value]=\"minutes\" placeholder=\"00\">\n        <button class=\"bs-increase\" type=\"button\">+</button>\n      </div>\n      <button class=\"switch-time-format\" type=\"button\">{{ ampm }}\n        <img\n          src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAKCAYAAABi8KSDAAABSElEQVQYV3XQPUvDUBQG4HNuagtVqc6KgouCv6GIuIntYBLB9hcIQpLStCAIV7DYmpTcRWcXqZio3Vwc/UCc/QEqfgyKGbr0I7nS1EiHeqYzPO/h5SD0jaxUZjmSLCB+OFb+UFINFwASAEAdpu9gaGXVyAHHFQBkHpKHc6a9dzECvADyY9sqlAMsK9W0jzxDXqeytr3mhQckxSji27TJJ5/rPmIpwJJq3HrtduriYOurv1a4i1p5HnhkG9OFymi0ReoO05cGwb+ayv4dysVygjeFmsP05f8wpZQ8fsdvfmuY9zjWSNqUtgYFVnOVReILYoBFzdQI5/GGFzNHhGbeZnopDGU29sZbscgldmC99w35VOATTycIMMcBXIfpSVGzZhA6C8hh00conln6VQ9TGgV32OEAKQC4DrBq7CJwd0ggR7Vq/rPrfgB+C3sGypY5DAAAAABJRU5ErkJggg==\"\n          alt=\"\">\n      </button>\n    </div>\n  `,\n    standalone: true\n})\nexport class BsTimepickerViewComponent {\n  ampm = 'ok';\n  hours = 0;\n  minutes = 0;\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n    selector: 'bs-current-date',\n    template: `<div class=\"current-timedate\"><span>{{ title }}</span></div>`,\n    standalone: true\n})\nexport class BsCurrentDateViewComponent {\n  @Input() title?: string;\n}\n","import { Component } from '@angular/core';\nimport { BsTimepickerViewComponent } from './bs-timepicker-view.component';\nimport { BsCurrentDateViewComponent } from './bs-current-date-view.component';\n\n\n@Component({\n    selector: 'bs-calendar-layout',\n    template: `\n    <!-- current date, will be added in nearest releases -->\n    @if (false) {\n      <bs-current-date title=\"hey there\"></bs-current-date>\n    }\n    \n    <!--navigation-->\n    <div class=\"bs-datepicker-head\">\n      <ng-content select=\"bs-datepicker-navigation-view\"></ng-content>\n    </div>\n    \n    <div class=\"bs-datepicker-body\">\n      <ng-content></ng-content>\n    </div>\n    \n    <!--timepicker-->\n    @if (false) {\n      <bs-timepicker></bs-timepicker>\n    }\n    `,\n    standalone: true,\n    imports: [BsCurrentDateViewComponent, BsTimepickerViewComponent]\n})\nexport class BsCalendarLayoutComponent {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { yearsPerCalendar } from '../../engine/format-years-calendar';\nimport {\n  BsDatepickerViewMode,\n  BsNavigationDirection,\n  BsNavigationEvent,\n  CalendarCellViewModel,\n  CellHoverEvent,\n  YearsCalendarViewModel\n} from '../../models';\n\nimport { BsDatepickerNavigationViewComponent } from './bs-datepicker-navigation-view.component';\nimport { BsCalendarLayoutComponent } from './bs-calendar-layout.component';\n\n@Component({\n    selector: 'bs-years-calendar-view',\n    template: `\n    <bs-calendar-layout>\n      <bs-datepicker-navigation-view\n        [calendar]=\"calendar\"\n        (onNavigate)=\"navigateTo($event)\"\n        (onViewMode)=\"changeViewMode($event)\"\n      ></bs-datepicker-navigation-view>\n    \n      <table role=\"grid\" class=\"years\">\n        <tbody>\n          @for (row of calendar?.years; track row) {\n            <tr>\n              @for (year of row; track year) {\n                <td role=\"gridcell\"\n                  (click)=\"viewYear(year)\"\n                  (mouseenter)=\"hoverYear(year, true)\"\n                  (mouseleave)=\"hoverYear(year, false)\"\n                  [class.disabled]=\"year.isDisabled\"\n                  [class.is-highlighted]=\"year.isHovered\">\n                  <span [class.selected]=\"year.isSelected\">{{ year.label }}</span>\n                </td>\n              }\n            </tr>\n          }\n        </tbody>\n      </table>\n    </bs-calendar-layout>\n    `,\n    standalone: true,\n    imports: [BsCalendarLayoutComponent, BsDatepickerNavigationViewComponent]\n})\nexport class BsYearsCalendarViewComponent {\n  @Input() calendar!: YearsCalendarViewModel;\n\n  @Output() onNavigate = new EventEmitter<BsNavigationEvent>();\n  @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n  @Output() onSelect = new EventEmitter<CalendarCellViewModel>();\n  @Output() onHover = new EventEmitter<CellHoverEvent>();\n\n  navigateTo(event: BsNavigationDirection): void {\n    const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n    this.onNavigate.emit({ step: { year: step * yearsPerCalendar } });\n  }\n\n  viewYear(year: CalendarCellViewModel) {\n    this.onSelect.emit(year);\n  }\n\n  hoverYear(cell: CalendarCellViewModel, isHovered: boolean) {\n    this.onHover.emit({ cell, isHovered });\n  }\n\n  changeViewMode(event: BsDatepickerViewMode): void {\n    this.onViewMode.emit(event);\n  }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n  BsDatepickerViewMode,\n  BsNavigationDirection,\n  BsNavigationEvent,\n  CellHoverEvent,\n  MonthsCalendarViewModel,\n  CalendarCellViewModel\n} from '../../models';\n\nimport { BsDatepickerNavigationViewComponent } from './bs-datepicker-navigation-view.component';\nimport { BsCalendarLayoutComponent } from './bs-calendar-layout.component';\n\n@Component({\n    selector: 'bs-month-calendar-view',\n    template: `\n    <bs-calendar-layout>\n      <bs-datepicker-navigation-view\n        [calendar]=\"calendar\"\n        (onNavigate)=\"navigateTo($event)\"\n        (onViewMode)=\"changeViewMode($event)\"\n      ></bs-datepicker-navigation-view>\n    \n      <table role=\"grid\" class=\"months\">\n        <tbody>\n          @for (row of calendar?.months; track row) {\n            <tr>\n              @for (month of row; track month) {\n                <td role=\"gridcell\"\n                  (click)=\"viewMonth(month)\"\n                  (mouseenter)=\"hoverMonth(month, true)\"\n                  (mouseleave)=\"hoverMonth(month, false)\"\n                  [class.disabled]=\"month.isDisabled\"\n                  [class.is-highlighted]=\"month.isHovered\">\n                  <span [class.selected]=\"month.isSelected\">{{ month.label }}</span>\n                </td>\n              }\n            </tr>\n          }\n        </tbody>\n      </table>\n    </bs-calendar-layout>\n    `,\n    standalone: true,\n    imports: [BsCalendarLayoutComponent, BsDatepickerNavigationViewComponent]\n})\nexport class BsMonthCalendarViewComponent {\n  @Input() calendar!: MonthsCalendarViewModel;\n\n  @Output() onNavigate = new EventEmitter<BsNavigationEvent>();\n  @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n  @Output() onSelect = new EventEmitter<CalendarCellViewModel>();\n  @Output() onHover = new EventEmitter<CellHoverEvent>();\n\n  navigateTo(event: BsNavigationDirection): void {\n    const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n    this.onNavigate.emit({ step: { year: step } });\n  }\n\n  viewMonth(month: CalendarCellViewModel) {\n    this.onSelect.emit(month);\n  }\n\n  hoverMonth(cell: CalendarCellViewModel, isHovered: boolean) {\n    this.onHover.emit({ cell, isHovered });\n  }\n\n  changeViewMode(event: BsDatepickerViewMode): void {\n    this.onViewMode.emit(event as BsDatepickerViewMode);\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  Input,\n  OnInit,\n  Renderer2\n} from '@angular/core';\n\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { DayViewModel } from '../../models';\n\n@Component({\n    selector: '[bsDatepickerDayDecorator]',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        '[class.disabled]': 'day.isDisabled',\n        '[class.is-highlighted]': 'day.isHovered',\n        '[class.is-other-month]': 'day.isOtherMonth',\n        '[class.is-active-other-month]': 'day.isOtherMonthHovered',\n        '[class.in-range]': 'day.isInRange',\n        '[class.select-start]': 'day.isSelectionStart',\n        '[class.select-end]': 'day.isSelectionEnd',\n        '[class.selected]': 'day.isSelected'\n    },\n    template: `{{ day && day.label || '' }}`,\n    standalone: true\n})\nexport class BsDatepickerDayDecoratorComponent implements OnInit {\n  @Input() day: DayViewModel = { date: new Date(), label: '' };\n\n  constructor(\n    private _config: BsDatepickerConfig,\n    private _elRef: ElementRef,\n    private _renderer: Renderer2\n  ) { }\n\n  ngOnInit(): void {\n\n    if (this.day?.isToday && this._config && this._config.customTodayClass) {\n      this._renderer.addClass(this._elRef.nativeElement, this._config.customTodayClass);\n    }\n\n    if (typeof this.day?.customClasses === 'string') {\n      this.day?.customClasses.split(' ')\n        .filter((className: string) => className)\n        .forEach((className: string) => {\n          this._renderer.addClass(this._elRef.nativeElement, className);\n        });\n    }\n  }\n}\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  Output\n} from '@angular/core';\n\nimport { isSameDay } from 'ngx-bootstrap/chronos';\n\nimport {\n  BsDatepickerViewMode,\n  BsNavigationDirection,\n  BsNavigationEvent,\n  CellHoverEvent, DatepickerDateTooltipText,\n  DatepickerRenderOptions,\n  DaysCalendarViewModel,\n  DayViewModel, WeekViewModel\n} from '../../models';\n\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { BsDatepickerDayDecoratorComponent } from './bs-datepicker-day-decorator.directive';\n\nimport { BsDatepickerNavigationViewComponent } from './bs-datepicker-navigation-view.component';\nimport { BsCalendarLayoutComponent } from './bs-calendar-layout.component';\n\n@Component({\n    selector: 'bs-days-calendar-view',\n    // changeDetection: ChangeDetectionStrategy.OnPush,\n    template: `\n    <bs-calendar-layout>\n      <bs-datepicker-navigation-view\n        [calendar]=\"calendar\"\n        [isDisabled]=\"!!isDisabled\"\n        (onNavigate)=\"navigateTo($event)\"\n        (onViewMode)=\"changeViewMode($event)\"\n      ></bs-datepicker-navigation-view>\n      <!--days matrix-->\n      <table role=\"grid\" class=\"days weeks\">\n        <thead>\n          <tr>\n            <!--if show weeks-->\n            @if (options && options.showWeekNumbers) {\n              <th></th>\n            }\n            @for (weekday of calendar.weekdays; track weekday; let i = $index) {\n              <th\n                aria-label=\"weekday\">{{ calendar.weekdays[i] }}\n              </th>\n            }\n          </tr>\n        </thead>\n        <tbody>\n          @for (week of calendar.weeks; track week; let i = $index) {\n            <tr>\n              @if (options && options.showWeekNumbers) {\n                <td class=\"week\" [class.active-week]=\"isWeekHovered\" >\n                  @if (isiOS) {\n                    <span (click)=\"selectWeek(week)\">{{ calendar.weekNumbers[i] }}</span>\n                  }\n                  @if (!isiOS) {\n                    <span\n                      (click)=\"selectWeek(week)\"\n                      (mouseenter)=\"weekHoverHandler(week, true)\"\n                    (mouseleave)=\"weekHoverHandler(week, false)\">{{ calendar.weekNumbers[i] }}</span>\n                  }\n                </td>\n              }\n              @for (day of week.days; track day) {\n                <td role=\"gridcell\">\n                  <!-- When we want to show tooltips for dates -->\n                  @if (!isiOS && isShowTooltip) {\n                    <span bsDatepickerDayDecorator\n                      [day]=\"day\"\n                      (click)=\"selectDay(day)\"\n                      tooltip=\"{{day.tooltipText}}\"\n                      (mouseenter)=\"hoverDay(day, true)\"\n                    (mouseleave)=\"hoverDay(day, false)\">{{ day.label }} 3</span>\n                  }\n                  <!-- When tooltips for dates are disabled -->\n                  @if (!isiOS && !isShowTooltip) {\n                    <span bsDatepickerDayDecorator\n                      [day]=\"day\"\n                      (click)=\"selectDay(day)\"\n                      (mouseenter)=\"hoverDay(day, true)\"\n                    (mouseleave)=\"hoverDay(day, false)\">{{ day.label }} 2</span>\n                  }\n                  <!-- For mobile iOS view, tooltips are not needed -->\n                  @if (isiOS) {\n                    <span bsDatepickerDayDecorator\n                      [day]=\"day\"\n                    (click)=\"selectDay(day)\">{{ day.label }} 1</span>\n                  }\n                </td>\n              }\n            </tr>\n          }\n        </tbody>\n      </table>\n    \n    </bs-calendar-layout>\n    `,\n    standalone: true,\n    imports: [BsCalendarLayoutComponent, BsDatepickerNavigationViewComponent, BsDatepickerDayDecoratorComponent, TooltipModule]\n})\nexport class BsDaysCalendarViewComponent  {\n  @Input() calendar!: DaysCalendarViewModel;\n  @Input() options?: DatepickerRenderOptions | null;\n  @Input() isDisabled?: boolean;\n\n  @Output() onNavigate = new EventEmitter<BsNavigationEvent>();\n  @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n  @Output() onSelect = new EventEmitter<DayViewModel>();\n  @Output() onHover = new EventEmitter<CellHoverEvent>();\n  @Output() onHoverWeek = new EventEmitter<WeekViewModel>();\n\n  isWeekHovered?: boolean;\n  isiOS: boolean;\n  isShowTooltip?: boolean;\n\n  constructor(private _config: BsDatepickerConfig) {\n    this.isiOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||\n      (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1));\n    if (this._config.dateTooltipTexts && this._config.dateTooltipTexts.length > 0) {\n      this.isShowTooltip = true;\n    }\n  }\n\n  navigateTo(event: BsNavigationDirection): void {\n    const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n    this.onNavigate.emit({ step: { month: step } });\n  }\n\n  changeViewMode(event: BsDatepickerViewMode): void {\n    this.onViewMode.emit(event);\n  }\n\n  selectDay(event: DayViewModel): void {\n    this.onSelect.emit(event);\n  }\n\n  selectWeek(week: WeekViewModel): void {\n    if (!this._config.selectWeek && !this._config.selectWeekDateRange) {\n      return;\n    }\n\n    if (week.days.length === 0) {\n      return;\n    }\n\n    if (this._config.selectWeek && week.days[0]\n        && !week.days[0].isDisabled\n        && this._config.selectFromOtherMonth) {\n\n        this.onSelect.emit(week.days[0]);\n\n        return;\n    }\n\n    const selectedDay = week.days.find((day: DayViewModel) => {\n      return this._config.selectFromOtherMonth\n        ? !day.isDisabled\n        : !day.isOtherMonth && !day.isDisabled;\n    });\n\n    this.onSelect.emit(selectedDay);\n\n    if (this._config.selectWeekDateRange) {\n      const days = week.days.slice(0);\n      const lastDayOfRange = days.reverse().find((day: DayViewModel) => {\n        return this._config.selectFromOtherMonth\n          ? !day.isDisabled\n          : !day.isOtherMonth && !day.isDisabled;\n      });\n\n      this.onSelect.emit(lastDayOfRange);\n    }\n  }\n\n  weekHoverHandler(cell: WeekViewModel, isHovered: boolean): void {\n    if (!this._config.selectWeek && !this._config.selectWeekDateRange) {\n      return;\n    }\n\n    const hasActiveDays = cell.days.find((day: DayViewModel) => {\n      return this._config.selectFromOtherMonth\n        ? !day.isDisabled\n        : !day.isOtherMonth && !day.isDisabled;\n    });\n\n    if (hasActiveDays) {\n      cell.isHovered = isHovered;\n      this.isWeekHovered = isHovered;\n      this.onHoverWeek.emit(cell);\n    }\n  }\n\n  hoverDay(cell: DayViewModel, isHovered: boolean): void {\n    if (this._config.selectFromOtherMonth && cell.isOtherMonth) {\n      cell.isOtherMonthHovered = isHovered;\n    }\n\n    if (this._config.dateTooltipTexts) {\n      cell.tooltipText = '';\n      this._config.dateTooltipTexts.forEach((dateData: DatepickerDateTooltipText) => {\n\n        if (isSameDay(dateData.date, cell.date)) {\n          cell.tooltipText = dateData.tooltipText;\n\n          return;\n        }\n      });\n    }\n\n    this.onHover.emit({ cell, isHovered });\n  }\n}\n","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n  ViewChild\n} from '@angular/core';\n\nimport { take } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\nimport { getFullYear, getMonth } from 'ngx-bootstrap/chronos';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { TimepickerComponent } from 'ngx-bootstrap/timepicker';\n\nimport { datepickerAnimation } from '../../datepicker-animations';\nimport { BsDatepickerAbstractComponent } from '../../base/bs-datepicker-container';\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { CalendarCellViewModel, DayViewModel } from '../../models';\nimport { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';\nimport { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from '../../reducer/bs-datepicker.store';\nimport { BsCustomDatesViewComponent } from './bs-custom-dates-view.component';\nimport { BsYearsCalendarViewComponent } from './bs-years-calendar-view.component';\nimport { BsMonthCalendarViewComponent } from './bs-months-calendar-view.component';\nimport { TimepickerModule } from 'ngx-bootstrap/timepicker';\nimport { BsDaysCalendarViewComponent } from './bs-days-calendar-view.component';\nimport { NgClass, AsyncPipe } from '@angular/common';\n\n@Component({\n    selector: 'bs-datepicker-container',\n    providers: [BsDatepickerStore, BsDatepickerEffects, BsDatepickerActions],\n    templateUrl: './bs-datepicker-view.html',\n    host: {\n        class: 'bottom',\n        '(click)': '_stopPropagation($event)',\n        role: 'dialog',\n        'aria-label': 'calendar'\n    },\n    animations: [datepickerAnimation],\n    standalone: true,\n    imports: [NgClass, BsDaysCalendarViewComponent, TimepickerModule, BsMonthCalendarViewComponent, BsYearsCalendarViewComponent, BsCustomDatesViewComponent, AsyncPipe]\n})\nexport class BsDatepickerContainerComponent\n  extends BsDatepickerAbstractComponent\n  implements OnInit, AfterViewInit, OnDestroy\n{\n  valueChange: EventEmitter<Date> = new EventEmitter<Date>();\n  animationState = 'void';\n  override isRangePicker = false;\n  _subs: Subscription[] = [];\n\n  @ViewChild('startTP') startTimepicker?: TimepickerComponent;\n\n  set value(value: Date | undefined) {\n    this._effects?.setValue(value);\n  }\n\n  get isDatePickerDisabled(): boolean {\n    return !!this._config.isDisabled;\n  }\n\n  @HostBinding('attr.disabled') get isDatepickerDisabled() {\n    return this.isDatePickerDisabled ? '' : null;\n  }\n\n  @HostBinding('attr.readonly') get isDatepickerReadonly() {\n    return this.isDatePickerDisabled ? '' : null;\n  }\n\n  constructor(\n    _renderer: Renderer2,\n    private _config: BsDatepickerConfig,\n    private _store: BsDatepickerStore,\n    private _element: ElementRef,\n    private _actions: BsDatepickerActions,\n    _effects: BsDatepickerEffects,\n    private _positionService: PositioningService\n  ) {\n    super();\n    this._effects = _effects;\n\n    _renderer.setStyle(_element.nativeElement, 'display', 'block');\n    _renderer.setStyle(_element.nativeElement, 'position', 'absolute');\n  }\n\n  ngOnInit(): void {\n    this._positionService.setOptions({\n      modifiers: {\n        flip: {\n          enabled: this._config.adaptivePosition\n        },\n        preventOverflow: {\n          enabled: this._config.adaptivePosition\n        }\n      },\n      allowedPositions: this._config.allowedPositions\n    });\n\n    this._positionService.event$?.pipe(take(1)).subscribe(() => {\n      this._positionService.disable();\n\n      if (this._config.isAnimated) {\n        this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n\n        return;\n      }\n\n      this.animationState = 'unanimated';\n    });\n\n    this.isOtherMonthsActive = this._config.selectFromOtherMonth;\n    this.containerClass = this._config.containerClass;\n    this.showTodayBtn = this._config.showTodayButton;\n    this.todayBtnLbl = this._config.todayButtonLabel;\n    this.todayPos = this._config.todayPosition;\n    this.showClearBtn = this._config.showClearButton;\n    this.clearBtnLbl = this._config.clearButtonLabel;\n    this.clearPos = this._config.clearPosition;\n    this.customRangeBtnLbl = this._config.customRangeButtonLabel;\n    this.withTimepicker = this._config.withTimepicker;\n    this._effects\n      ?.init(this._store)\n      // intial state options\n      .setOptions(this._config)\n      // data binding view --> model\n      .setBindings(this)\n      // set event handlers\n      .setEventHandlers(this)\n      .registerDatepickerSideEffects();\n\n    let currentDate: Date | undefined;\n    // todo: move it somewhere else\n    // on selected date change\n    this._subs.push(\n      this._store\n        .select((state) => state.selectedDate)\n        .subscribe((date) => {\n          currentDate = date;\n          this.valueChange.emit(date);\n        })\n    );\n    this._subs.push(\n      this._store\n        .select((state) => state.selectedTime)\n        .subscribe((time) => {\n          if (!time || !time[0] || !(time[0] instanceof Date) || time[0] === currentDate) {\n            return;\n          }\n\n          this.valueChange.emit(time[0]);\n        })\n    );\n\n    this._store.dispatch(this._actions.changeViewMode(this._config.startView));\n  }\n\n  ngAfterViewInit(): void {\n    this.selectedTimeSub.add(\n      this.selectedTime?.subscribe((val) => {\n        if (Array.isArray(val) && val.length >= 1) {\n          this.startTimepicker?.writeValue(val[0]);\n        }\n      })\n    );\n    this.startTimepicker?.registerOnChange((val) => {\n      this.timeSelectHandler(val, 0);\n    });\n  }\n\n  get isTopPosition(): boolean {\n    return this._element.nativeElement.classList.contains('top');\n  }\n\n  positionServiceEnable(): void {\n    this._positionService.enable();\n  }\n\n  override timeSelectHandler(date: Date, index: number) {\n    this._store.dispatch(this._actions.selectTime(date, index));\n  }\n\n  override daySelectHandler(day: DayViewModel): void {\n    if (!day) {\n      return;\n    }\n\n    const isDisabled = this.isOtherMonthsActive ? day.isDisabled : day.isOtherMonth || day.isDisabled;\n\n    if (isDisabled) {\n      return;\n    }\n\n    this._store.dispatch(this._actions.select(day.date));\n  }\n\n  override monthSelectHandler(day: CalendarCellViewModel): void {\n    if (!day || day.isDisabled) {\n      return;\n    }\n\n    this._store.dispatch(\n      this._actions.navigateTo({\n        unit: {\n          month: getMonth(day.date),\n          year: getFullYear(day.date)\n        },\n        viewMode: 'day'\n      })\n    );\n  }\n\n  override yearSelectHandler(day: CalendarCellViewModel): void {\n    if (!day || day.isDisabled) {\n      return;\n    }\n\n    this._store.dispatch(\n      this._actions.navigateTo({\n        unit: {\n          year: getFullYear(day.date)\n        },\n        viewMode: 'month'\n      })\n    );\n  }\n\n  override setToday(): void {\n    this._store.dispatch(this._actions.select(new Date()));\n  }\n\n  override clearDate(): void {\n    this._store.dispatch(this._actions.select(undefined));\n  }\n\n  ngOnDestroy(): void {\n    for (const sub of this._subs) {\n      sub.unsubscribe();\n    }\n    this.selectedTimeSub.unsubscribe();\n    this._effects?.destroy();\n  }\n}\n","<!-- days calendar view mode -->\n@if (viewMode | async) {\n  <div class=\"bs-datepicker\" [ngClass]=\"containerClass\">\n    <div class=\"bs-datepicker-container\"\n      [@datepickerAnimation]=\"animationState\"\n      (@datepickerAnimation.done)=\"positionServiceEnable()\">\n      <!--calendars-->\n      <div class=\"bs-calendar-container\" role=\"application\">\n        @switch (viewMode | async) {\n          <!--days calendar-->\n          @case ('day') {\n            <div class=\"bs-media-container\">\n              @for (calendar of daysCalendar$ | async; track calendar) {\n                <bs-days-calendar-view\n                  [class.bs-datepicker-multiple]=\"multipleCalendars\"\n                  [calendar]=\"calendar\"\n                  [isDisabled]=\"isDatePickerDisabled\"\n                  [options]=\"options$ | async\"\n                  (onNavigate)=\"navigateTo($event)\"\n                  (onViewMode)=\"setViewMode($event)\"\n                  (onHover)=\"dayHoverHandler($event)\"\n                  (onHoverWeek)=\"weekHoverHandler($event)\"\n                  (onSelect)=\"daySelectHandler($event)\">\n                </bs-days-calendar-view>\n              }\n            </div>\n            @if (withTimepicker) {\n              <div class=\"bs-timepicker-in-datepicker-container\">\n                <timepicker #startTP [disabled]=\"isDatePickerDisabled\"></timepicker>\n                @if (isRangePicker) {\n                  <timepicker #endTP [disabled]=\"isDatePickerDisabled\"></timepicker>\n                }\n              </div>\n            }\n          }\n          <!--months calendar-->\n          @case ('month') {\n            <div class=\"bs-media-container\">\n              @for (calendar of monthsCalendar | async; track calendar) {\n                <bs-month-calendar-view\n                  [class.bs-datepicker-multiple]=\"multipleCalendars\"\n                  [calendar]=\"calendar\"\n                  (onNavigate)=\"navigateTo($event)\"\n                  (onViewMode)=\"setViewMode($event)\"\n                  (onHover)=\"monthHoverHandler($event)\"\n                  (onSelect)=\"monthSelectHandler($event)\">\n                </bs-month-calendar-view>\n              }\n            </div>\n          }\n          <!--years calendar-->\n          @case ('year') {\n            <div class=\"bs-media-container\">\n              @for (calendar of yearsCalendar | async; track calendar) {\n                <bs-years-calendar-view\n                  [class.bs-datepicker-multiple]=\"multipleCalendars\"\n                  [calendar]=\"calendar\"\n                  (onNavigate)=\"navigateTo($event)\"\n                  (onViewMode)=\"setViewMode($event)\"\n                  (onHover)=\"yearHoverHandler($event)\"\n                  (onSelect)=\"yearSelectHandler($event)\">\n                </bs-years-calendar-view>\n              }\n            </div>\n          }\n        }\n      </div>\n      <!--applycancel buttons-->\n      @if (false) {\n        <div class=\"bs-datepicker-buttons\">\n          <button class=\"btn btn-success\" type=\"button\">Apply</button>\n          <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n        </div>\n      }\n      @if (showTodayBtn || showClearBtn) {\n        <div class=\"bs-datepicker-buttons\">\n          @if (showTodayBtn) {\n            <div class=\"btn-today-wrapper\"\n              [class.today-left]=\"todayPos === 'left'\"\n              [class.today-right]=\"todayPos === 'right'\"\n              [class.today-center]=\"todayPos === 'center'\"\n              >\n              <button class=\"btn btn-success\" (click)=\"setToday()\">{{todayBtnLbl}}</button>\n            </div>\n          }\n          @if (showClearBtn) {\n            <div class=\"btn-clear-wrapper\"\n              [class.clear-left]=\"clearPos === 'left'\"\n              [class.clear-right]=\"clearPos === 'right'\"\n              [class.clear-center]=\"clearPos === 'center'\"\n              >\n              <button class=\"btn btn-success\" (click)=\"clearDate()\">{{clearBtnLbl}}</button>\n            </div>\n          }\n        </div>\n      }\n    </div>\n    <!--custom dates or date ranges picker-->\n    @if (customRanges && customRanges.length > 0) {\n      <div class=\"bs-datepicker-custom-range\">\n        <bs-custom-date-view\n          [selectedRange]=\"chosenRange\"\n          [ranges]=\"customRanges\"\n          [customRangeLabel]=\"customRangeBtnLbl\"\n          (onSelect)=\"setRangeOnCalendar($event)\">\n        </bs-custom-date-view>\n      </div>\n    }\n  </div>\n}\n","import {\n  AfterViewInit,\n  ComponentRef,\n  Directive,\n  ElementRef,\n  EventEmitter, HostBinding,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  Renderer2,\n  SimpleChanges,\n  ViewContainerRef\n} from '@angular/core';\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { BsDatepickerViewMode, DatepickerDateCustomClasses, DatepickerDateTooltipText } from './models';\nimport { BsDatepickerContainerComponent } from './themes/bs/bs-datepicker-container.component';\nimport { copyTime } from './utils/copy-time-utils';\nimport { checkBsValue, setCurrentTimeOnDateSelect } from './utils/bs-calendar-utils';\n\nexport let previousDate: Date | Date[] | undefined;\n\n@Directive({\n    selector: '[bsDatepicker]',\n    exportAs: 'bsDatepicker',\n    providers: [ComponentLoaderFactory, PositioningService],\n    standalone: true\n})\nexport class BsDatepickerDirective implements OnInit, OnDestroy, OnChanges, AfterViewInit {\n  /**\n   * Placement of a datepicker. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n   */\n  @Input() placement: 'top' | 'bottom' | 'left' | 'right' = 'bottom';\n  /**\n   * Specifies events that should trigger. Supports a space separated list of\n   * event names.\n   */\n  @Input() triggers = 'click';\n  /**\n   * Close datepicker on outside click\n   */\n  @Input() outsideClick = true;\n  /**\n   * A selector specifying the element the datepicker should be appended to.\n   */\n  @Input() container = 'body';\n\n  @Input() outsideEsc = true;\n  /**\n   * Emits an event when the datepicker is shown\n   */\n  @Output() onShown: EventEmitter<unknown>;\n  /**\n   * Emits an event when the datepicker is hidden\n   */\n  @Output() onHidden: EventEmitter<unknown>;\n  isOpen$: BehaviorSubject<boolean>;\n  isDestroy$ = new Subject();\n  /**\n   * Indicates whether datepicker's content is enabled or not\n   */\n  @Input() isDisabled = false;\n  /**\n   * Minimum date which is available for selection\n   */\n  @Input() minDate?: Date;\n  /**\n   * Maximum date which is available for selection\n   */\n  @Input() maxDate?: Date;\n  /**\n   * Ignore validation errors when you reset to minDate or maxDate\n   */\n  @Input() ignoreMinMaxErrors?: boolean;\n  /**\n   * Minimum view mode : day, month, or year\n   */\n  @Input() minMode?: BsDatepickerViewMode;\n  /**\n   * Disable Certain days in the week\n   */\n  @Input() daysDisabled?: number[];\n  /**\n   * Disable specific dates\n   */\n  @Input() datesDisabled?: Date[];\n  /**\n   * Enable specific dates\n   */\n  @Input() datesEnabled?: Date[];\n  /**\n   * Date custom classes\n   */\n  @Input() dateCustomClasses?: DatepickerDateCustomClasses[];\n  /**\n   * Date tooltip text\n   */\n  @Input() dateTooltipTexts?: DatepickerDateTooltipText[];\n  /**\n   * Emits when datepicker value has been changed\n   */\n  @Output() bsValueChange: EventEmitter<Date> = new EventEmitter();\n\n  @HostBinding ('attr.readonly') get readonlyValue () {\n    return this.isDisabled ? '' : null;\n  }\n\n  protected _subs: Subscription[] = [];\n  private _datepicker: ComponentLoader<BsDatepickerContainerComponent>;\n  private _datepickerRef?: ComponentRef<BsDatepickerContainerComponent>;\n  private readonly _dateInputFormat$ = new Subject<string | undefined>();\n\n  constructor(public _config: BsDatepickerConfig,\n              private  _elementRef: ElementRef,\n              private  _renderer: Renderer2,\n              _viewContainerRef: ViewContainerRef,\n              cis: ComponentLoaderFactory) {\n    // todo: assign only subset of fields\n    Object.assign(this, this._config);\n    this._datepicker = cis.createLoader<BsDatepickerContainerComponent>(\n      _elementRef,\n      _viewContainerRef,\n      _renderer\n    );\n    this.onShown = this._datepicker.onShown;\n    this.onHidden = this._datepicker.onHidden;\n    this.isOpen$ = new BehaviorSubject(this.isOpen);\n  }\n\n  /**\n   * Returns whether or not the datepicker is currently being shown\n   */\n  @Input()\n  get isOpen(): boolean {\n    return this._datepicker.isShown;\n  }\n\n  set isOpen(value: boolean) {\n    this.isOpen$.next(value);\n  }\n\n  _bsValue?: Date;\n\n  /**\n   * Initial value of datepicker\n   */\n  @Input()\n  set bsValue(value: Date | undefined) {\n    if (this._bsValue && value && this._bsValue.getTime() === value.getTime()) {\n      return;\n    }\n\n    if (!this._bsValue && value && !this._config.withTimepicker) {\n      const now = new Date();\n      copyTime(value, now);\n    }\n\n    if (value && this.bsConfig?.initCurrentTime) {\n      value = setCurrentTimeOnDateSelect(value);\n    }\n\n    this.initPreviousValue();\n    this._bsValue = value;\n    this.bsValueChange.emit(value);\n  }\n\n  get dateInputFormat$(): Observable<string | undefined> {\n    return this._dateInputFormat$;\n  }\n\n  /**\n   * Config object for datepicker\n   */\n  @Input() bsConfig?: Partial<BsDatepickerConfig>;\n\n  ngOnInit(): void {\n    this._datepicker.listen({\n      outsideClick: this.outsideClick,\n      outsideEsc: this.outsideEsc,\n      triggers: this.triggers,\n      show: () => this.show()\n    });\n    this.setConfig();\n    this.initPreviousValue();\n  }\n\n  initPreviousValue() {\n    previousDate = this._bsValue;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes[\"bsConfig\"]) {\n      if (changes[\"bsConfig\"].currentValue?.initCurrentTime && changes[\"bsConfig\"].currentValue?.initCurrentTime !== changes[\"bsConfig\"].previousValue?.initCurrentTime && this._bsValue) {\n        this.initPreviousValue();\n        this._bsValue = setCurrentTimeOnDateSelect(this._bsValue);\n        this.bsValueChange.emit(this._bsValue);\n      }\n\n      this.setConfig();\n      this._dateInputFormat$.next(this.bsConfig && this.bsConfig.dateInputFormat);\n    }\n\n    if (!this._datepickerRef || !this._datepickerRef.instance) {\n      return;\n    }\n\n    if (changes[\"minDate\"]) {\n      this._datepickerRef.instance.minDate = this.minDate;\n    }\n\n    if (changes[\"maxDate\"]) {\n      this._datepickerRef.instance.maxDate = this.maxDate;\n    }\n\n    if (changes[\"daysDisabled\"]) {\n      this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n    }\n\n    if (changes[\"datesDisabled\"]) {\n      this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n    }\n\n    if (changes[\"datesEnabled\"]) {\n      this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n    }\n\n    if (changes[\"isDisabled\"]) {\n      this._datepickerRef.instance.isDisabled = this.isDisabled;\n    }\n\n    if (changes[\"dateCustomClasses\"]) {\n      this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n    }\n\n    if (changes[\"dateTooltipTexts\"]) {\n      this._datepickerRef.instance.dateTooltipTexts = this.dateTooltipTexts;\n    }\n  }\n\n  initSubscribes() {\n    // if date changes from external source (model -> view)\n    this._subs.push(\n      this.bsValueChange.subscribe((value: Date) => {\n        if (this._datepickerRef) {\n          this._datepickerRef.instance.value = value;\n        }\n      })\n    );\n\n    // if date changes from picker (view -> model)\n    if (this._datepickerRef) {\n      this._subs.push(\n        this._datepickerRef.instance.valueChange.subscribe((value: Date) => {\n          this.initPreviousValue();\n          this.bsValue = value;\n          if (this.keepDatepickerModalOpened()) {\n            return;\n          }\n\n          this.hide();\n        })\n      );\n    }\n  }\n\n  keepDatepickerModalOpened(): boolean {\n    if (!previousDate || !this.bsConfig?.keepDatepickerOpened || !this._config.withTimepicker) {\n      return false;\n    }\n\n    return this.isDateSame();\n  }\n\n  isDateSame(): boolean {\n    return (previousDate instanceof Date\n      && (this._bsValue?.getDate() === previousDate?.getDate())\n      && (this._bsValue?.getMonth() === previousDate?.getMonth())\n      && (this._bsValue?.getFullYear() === previousDate?.getFullYear()));\n  }\n\n  ngAfterViewInit(): void {\n    this.isOpen$.pipe(\n      filter(isOpen => isOpen !== this.isOpen),\n      takeUntil(this.isDestroy$)\n    )\n      .subscribe(() => this.toggle());\n  }\n\n  /**\n   * Opens an element’s datepicker. This is considered a “manual” triggering of\n   * the datepicker.\n   */\n  show(): void {\n    if (this._datepicker.isShown) {\n      return;\n    }\n\n    this.setConfig();\n\n    this._datepickerRef = this._datepicker\n      .provide({ provide: BsDatepickerConfig, useValue: this._config })\n      .attach(BsDatepickerContainerComponent)\n      .to(this.container)\n      .position({ attachment: this.placement })\n      .show({ placement: this.placement });\n\n    this.initSubscribes();\n  }\n\n  /**\n   * Closes an element’s datepicker. This is considered a “manual” triggering of\n   * the datepicker.\n   */\n  hide(): void {\n    if (this.isOpen) {\n      this._datepicker.hide();\n    }\n    for (const sub of this._subs) {\n      sub.unsubscribe();\n    }\n\n    if (this._config.returnFocusToInput) {\n      this._renderer.selectRootElement(this._elementRef.nativeElement).focus();\n    }\n  }\n\n  /**\n   * Toggles an element’s datepicker. This is considered a “manual” triggering\n   * of the datepicker.\n   */\n  toggle(): void {\n    if (this.isOpen) {\n      return this.hide();\n    }\n\n    this.show();\n  }\n\n  /**\n   * Set config for datepicker\n   */\n  setConfig(): void {\n    this._config = Object.assign({}, this._config, this.bsConfig, {\n      value: this._config.keepDatesOutOfRules ? this._bsValue : checkBsValue(this._bsValue, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\n      isDisabled: this.isDisabled,\n      minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n      maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n      daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,\n      dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n      dateTooltipTexts: this.dateTooltipTexts || this.bsConfig && this.bsConfig.dateTooltipTexts,\n      datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n      datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n      minMode: this.minMode || this.bsConfig && this.bsConfig.minMode,\n      initCurrentTime: this.bsConfig?.initCurrentTime,\n      keepDatepickerOpened: this.bsConfig?.keepDatepickerOpened,\n      keepDatesOutOfRules: this.bsConfig?.keepDatesOutOfRules\n    });\n  }\n\n  unsubscribeSubscriptions() {\n    if (this._subs?.length) {\n      this._subs.map(sub => sub.unsubscribe());\n      this._subs.length = 0;\n    }\n  }\n\n  ngOnDestroy(): void {\n    this._datepicker.dispose();\n    this.isOpen$.next(false);\n    if (this.isDestroy$) {\n      this.isDestroy$.next(null);\n      this.isDestroy$.complete();\n    }\n    this.unsubscribeSubscriptions();\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BsDatepickerInlineConfig extends BsDatepickerConfig { }\n","import {Component, ElementRef, HostBinding, OnDestroy, OnInit, Renderer2} from '@angular/core';\nimport { BsDatepickerContainerComponent } from './bs-datepicker-container.component';\n\nimport { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from '../../reducer/bs-datepicker.store';\n\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { datepickerAnimation } from '../../datepicker-animations';\nimport { BsCustomDatesViewComponent } from './bs-custom-dates-view.component';\nimport { BsYearsCalendarViewComponent } from './bs-years-calendar-view.component';\nimport { BsMonthCalendarViewComponent } from './bs-months-calendar-view.component';\nimport { TimepickerModule } from 'ngx-bootstrap/timepicker';\nimport { BsDaysCalendarViewComponent } from './bs-days-calendar-view.component';\nimport { NgClass, AsyncPipe } from '@angular/common';\n\n@Component({\n    selector: 'bs-datepicker-inline-container',\n    providers: [BsDatepickerStore, BsDatepickerEffects],\n    templateUrl: './bs-datepicker-view.html',\n    host: {\n        '(click)': '_stopPropagation($event)'\n    },\n    animations: [datepickerAnimation],\n    standalone: true,\n    imports: [NgClass, BsDaysCalendarViewComponent, TimepickerModule, BsMonthCalendarViewComponent, BsYearsCalendarViewComponent, BsCustomDatesViewComponent, AsyncPipe]\n})\nexport class BsDatepickerInlineContainerComponent extends BsDatepickerContainerComponent\n  implements OnInit, OnDestroy {\n\n  @HostBinding ('attr.disabled') get disabledValue () {\n    return this.isDatePickerDisabled ? '' : null;\n  }\n\n  @HostBinding ('attr.readonly') get readonlyValue () {\n    return this.isDatePickerDisabled ? '' : null;\n  }\n  constructor(\n    _renderer: Renderer2,\n    _config: BsDatepickerConfig,\n    _store: BsDatepickerStore,\n    _element: ElementRef,\n    _actions: BsDatepickerActions,\n    _effects: BsDatepickerEffects,\n    _positioningService: PositioningService\n  ) {\n    super(_renderer, _config, _store, _element, _actions, _effects, _positioningService);\n\n    _renderer.setStyle(_element.nativeElement, 'display', 'inline-block');\n    _renderer.setStyle(_element.nativeElement, 'position', 'static');\n  }\n}\n","import {\n  ComponentRef,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  Renderer2,\n  SimpleChanges,\n  ViewContainerRef\n} from '@angular/core';\n\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\nimport { Subscription } from 'rxjs';\nimport { BsDatepickerInlineConfig } from './bs-datepicker-inline.config';\n\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { DatepickerDateCustomClasses, DatepickerDateTooltipText } from './models';\nimport { BsDatepickerInlineContainerComponent } from './themes/bs/bs-datepicker-inline-container.component';\nimport { copyTime } from './utils/copy-time-utils';\nimport { checkBsValue, setCurrentTimeOnDateSelect } from './utils/bs-calendar-utils';\n\n@Directive({\n    selector: 'bs-datepicker-inline',\n    exportAs: 'bsDatepickerInline',\n    standalone: true,\n    providers: [ComponentLoaderFactory, PositioningService]\n})\nexport class BsDatepickerInlineDirective implements OnInit, OnDestroy, OnChanges {\n  /**\n   * Config object for datepicker\n   */\n  @Input() bsConfig?: Partial<BsDatepickerInlineConfig>;\n  /**\n   * Indicates whether datepicker is enabled or not\n   */\n  @Input() isDisabled = false;\n  /**\n   * Minimum date which is available for selection\n   */\n  @Input() minDate?: Date;\n  /**\n   * Maximum date which is available for selection\n   */\n  @Input() maxDate?: Date;\n  /**\n   * Date custom classes\n   */\n  @Input() dateCustomClasses?: DatepickerDateCustomClasses[];\n  /**\n   * Date tooltip text\n   */\n  @Input() dateTooltipTexts?: DatepickerDateTooltipText[];\n  /**\n   * Disable specific dates\n   */\n  @Input() datesEnabled?: Date[];\n  /**\n   * Enable specific dates\n   */\n  @Input() datesDisabled?: Date[];\n  /**\n   * Emits when datepicker value has been changed\n   */\n  @Output() bsValueChange: EventEmitter<Date> = new EventEmitter();\n  protected _subs: Subscription[] = [];\n  private readonly _datepicker: ComponentLoader<BsDatepickerInlineContainerComponent>;\n  private _datepickerRef?: ComponentRef<BsDatepickerInlineContainerComponent>;\n\n  constructor(\n    public _config: BsDatepickerInlineConfig,\n    private _elementRef: ElementRef,\n    _renderer: Renderer2,\n    _viewContainerRef: ViewContainerRef,\n    cis: ComponentLoaderFactory\n  ) {\n    // todo: assign only subset of fields\n    Object.assign(this, this._config);\n    this._datepicker = cis.createLoader<BsDatepickerInlineContainerComponent>(\n      _elementRef,\n      _viewContainerRef,\n      _renderer\n    );\n  }\n\n  _bsValue?: Date;\n\n  /**\n   * Initial value of datepicker\n   */\n  @Input()\n  set bsValue(value: Date | undefined) {\n    if (this._bsValue === value) {\n      return;\n    }\n\n     if (!this._bsValue && value && !this._config.withTimepicker) {\n       const now = new Date();\n       copyTime(value, now);\n     }\n\n    if (value && this.bsConfig?.initCurrentTime) {\n      value = setCurrentTimeOnDateSelect(value);\n     }\n\n    this._bsValue = value;\n    this.bsValueChange.emit(value);\n  }\n\n  ngOnInit(): void {\n    this.setConfig();\n    this.initSubscribes();\n  }\n\n  initSubscribes() {\n    this.unsubscribeSubscriptions();\n    this._subs.push(\n      this.bsValueChange.subscribe((value: Date) => {\n        if (this._datepickerRef) {\n          this._datepickerRef.instance.value = value;\n        }\n      })\n    );\n\n    if (this._datepickerRef) {\n      this._subs.push(\n        this._datepickerRef.instance.valueChange.subscribe((value: Date) => {\n          this.bsValue = value;\n        })\n      );\n    }\n  }\n\n  unsubscribeSubscriptions() {\n    if (this._subs?.length) {\n      this._subs.map(sub => sub.unsubscribe());\n      this._subs.length = 0;\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes[\"bsConfig\"]) {\n      if (changes[\"bsConfig\"].currentValue?.initCurrentTime && changes[\"bsConfig\"].currentValue?.initCurrentTime !== changes[\"bsConfig\"].previousValue?.initCurrentTime && this._bsValue) {\n        this._bsValue = setCurrentTimeOnDateSelect(this._bsValue);\n        this.bsValueChange.emit(this._bsValue);\n      }\n    }\n\n    if (!this._datepickerRef || !this._datepickerRef.instance) {\n      return;\n    }\n\n    if (changes[\"minDate\"]) {\n      this._datepickerRef.instance.minDate = this.minDate;\n    }\n\n    if (changes[\"maxDate\"]) {\n      this._datepickerRef.instance.maxDate = this.maxDate;\n    }\n\n    if (changes[\"datesDisabled\"]) {\n      this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n    }\n\n    if (changes[\"datesEnabled\"]) {\n      this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n      this._datepickerRef.instance.value = this._bsValue;\n    }\n\n    if (changes[\"isDisabled\"]) {\n      this._datepickerRef.instance.isDisabled = this.isDisabled;\n    }\n\n    if (changes[\"dateCustomClasses\"]) {\n      this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n    }\n\n    if (changes[\"dateTooltipTexts\"]) {\n      this._datepickerRef.instance.dateTooltipTexts = this.dateTooltipTexts;\n    }\n\n    this.setConfig();\n  }\n\n  /**\n   * Set config for datepicker\n   */\n  setConfig(): void {\n    if (this._datepicker) {\n      this._datepicker.hide();\n    }\n\n    this._config = Object.assign({}, this._config, this.bsConfig, {\n      value: checkBsValue(this._bsValue, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\n      isDisabled: this.isDisabled,\n      minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n      maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n      dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n      dateTooltipTexts: this.dateTooltipTexts || this.bsConfig && this.bsConfig.dateTooltipTexts,\n      datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n      datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n      initCurrentTime: this.bsConfig?.initCurrentTime\n    });\n\n\n    this._datepickerRef = this._datepicker\n      .provide({ provide: BsDatepickerConfig, useValue: this._config })\n      .attach(BsDatepickerInlineContainerComponent)\n      .to(this._elementRef)\n      .show();\n\n    this.initSubscribes();\n  }\n\n  ngOnDestroy() {\n    this._datepicker.dispose();\n    this.unsubscribeSubscriptions();\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BsDaterangepickerInlineConfig extends BsDatepickerConfig {\n    // DatepickerRenderOptions\n  override displayMonths = 2;\n    /** turn on/off animation */\n  override isAnimated = false;\n}\n","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n  ViewChild\n} from '@angular/core';\n\nimport { take } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\nimport { getFullYear, getMonth } from 'ngx-bootstrap/chronos';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { TimepickerComponent } from 'ngx-bootstrap/timepicker';\n\nimport { BsDatepickerAbstractComponent } from '../../base/bs-datepicker-container';\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { CalendarCellViewModel, DayViewModel } from '../../models';\nimport { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';\nimport { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from '../../reducer/bs-datepicker.store';\nimport { datepickerAnimation } from '../../datepicker-animations';\nimport { BsCustomDates, BsCustomDatesViewComponent } from './bs-custom-dates-view.component';\nimport { dayInMilliseconds } from '../../reducer/_defaults';\nimport { BsYearsCalendarViewComponent } from './bs-years-calendar-view.component';\nimport { BsMonthCalendarViewComponent } from './bs-months-calendar-view.component';\nimport { TimepickerModule } from 'ngx-bootstrap/timepicker';\nimport { BsDaysCalendarViewComponent } from './bs-days-calendar-view.component';\nimport { NgClass, AsyncPipe } from '@angular/common';\n\n@Component({\n    selector: 'bs-daterangepicker-container',\n    providers: [BsDatepickerStore, BsDatepickerEffects, BsDatepickerActions],\n    templateUrl: './bs-datepicker-view.html',\n    host: {\n        class: 'bottom',\n        '(click)': '_stopPropagation($event)',\n        role: 'dialog',\n        'aria-label': 'calendar'\n    },\n    animations: [datepickerAnimation],\n    standalone: true,\n    imports: [\n      NgClass,\n      BsDaysCalendarViewComponent,\n      TimepickerModule,\n      BsMonthCalendarViewComponent,\n      BsYearsCalendarViewComponent,\n      BsCustomDatesViewComponent,\n      AsyncPipe\n    ]\n})\nexport class BsDaterangepickerContainerComponent\n  extends BsDatepickerAbstractComponent\n  implements OnInit, OnDestroy, AfterViewInit\n{\n  set value(value: (Date | undefined)[] | undefined) {\n    this._effects?.setRangeValue(value);\n  }\n\n  valueChange = new EventEmitter<Date[]>();\n  animationState = 'void';\n\n  _rangeStack: Date[] = [];\n  override chosenRange: Date[] = [];\n  _subs: Subscription[] = [];\n  override isRangePicker = true;\n\n  @ViewChild('startTP') startTimepicker?: TimepickerComponent;\n  @ViewChild('endTP') endTimepicker?: TimepickerComponent;\n\n  get isDatePickerDisabled(): boolean {\n    return !!this._config.isDisabled;\n  }\n\n  @HostBinding('attr.disabled') get isDatepickerDisabled() {\n    return this.isDatePickerDisabled ? '' : null;\n  }\n\n  @HostBinding('attr.readonly') get isDatepickerReadonly() {\n    return this.isDatePickerDisabled ? '' : null;\n  }\n\n  constructor(\n    _renderer: Renderer2,\n    private _config: BsDatepickerConfig,\n    private _store: BsDatepickerStore,\n    private _element: ElementRef,\n    private _actions: BsDatepickerActions,\n    _effects: BsDatepickerEffects,\n    private _positionService: PositioningService\n  ) {\n    super();\n    this._effects = _effects;\n\n    this.customRanges = this._config.ranges || [];\n    this.customRangeBtnLbl = this._config.customRangeButtonLabel;\n\n    _renderer.setStyle(_element.nativeElement, 'display', 'block');\n    _renderer.setStyle(_element.nativeElement, 'position', 'absolute');\n  }\n\n  ngOnInit(): void {\n    this._positionService.setOptions({\n      modifiers: {\n        flip: {\n          enabled: this._config.adaptivePosition\n        },\n        preventOverflow: {\n          enabled: this._config.adaptivePosition\n        }\n      },\n      allowedPositions: this._config.allowedPositions\n    });\n\n    this._positionService.event$?.pipe(take(1)).subscribe(() => {\n      this._positionService.disable();\n\n      if (this._config.isAnimated) {\n        this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n\n        return;\n      }\n\n      this.animationState = 'unanimated';\n    });\n    this.containerClass = this._config.containerClass;\n    this.isOtherMonthsActive = this._config.selectFromOtherMonth;\n    this.withTimepicker = this._config.withTimepicker;\n    this._effects\n      ?.init(this._store)\n      // intial state options\n      // todo: fix this, split configs\n      .setOptions(this._config)\n      // data binding view --> model\n      .setBindings(this)\n      // set event handlers\n      .setEventHandlers(this)\n      .registerDatepickerSideEffects();\n    let currentDate: Date[] | undefined;\n    // todo: move it somewhere else\n    // on selected date change\n    this._subs.push(\n      this._store\n        .select((state) => state.selectedRange)\n        .subscribe((dateRange) => {\n          currentDate = dateRange;\n          this.valueChange.emit(dateRange);\n          this.chosenRange = dateRange || [];\n        })\n    );\n\n    this._subs.push(\n      this._store\n        .select((state) => state.selectedTime)\n        .subscribe((time) => {\n          if (\n            !time ||\n            !time[0] ||\n            !time[1] ||\n            !(time[0] instanceof Date) ||\n            !(time[1] instanceof Date) ||\n            (currentDate && time[0] === currentDate[0] && time[1] === currentDate[1])\n          ) {\n            return;\n          }\n\n          this.valueChange.emit(time);\n          this.chosenRange = time || [];\n        })\n    );\n  }\n\n  ngAfterViewInit(): void {\n    this.selectedTimeSub.add(\n      this.selectedTime?.subscribe((val) => {\n        if (Array.isArray(val) && val.length >= 2) {\n          this.startTimepicker?.writeValue(val[0]);\n          this.endTimepicker?.writeValue(val[1]);\n        }\n      })\n    );\n    this.startTimepicker?.registerOnChange((val) => {\n      this.timeSelectHandler(val, 0);\n    });\n    this.endTimepicker?.registerOnChange((val) => {\n      this.timeSelectHandler(val, 1);\n    });\n  }\n\n  get isTopPosition(): boolean {\n    return this._element.nativeElement.classList.contains('top');\n  }\n\n  positionServiceEnable(): void {\n    this._positionService.enable();\n  }\n\n  override timeSelectHandler(date: Date, index: number): void {\n    this._store.dispatch(this._actions.selectTime(date, index));\n  }\n\n  override daySelectHandler(day: DayViewModel): void {\n    if (!day) {\n      return;\n    }\n    const isDisabled = this.isOtherMonthsActive ? day.isDisabled : day.isOtherMonth || day.isDisabled;\n\n    if (isDisabled) {\n      return;\n    }\n    this.rangesProcessing(day);\n  }\n\n  override monthSelectHandler(day: CalendarCellViewModel): void {\n    if (!day || day.isDisabled) {\n      return;\n    }\n\n    day.isSelected = true;\n\n    if (this._config.minMode !== 'month') {\n      if (day.isDisabled) {\n        return;\n      }\n      this._store.dispatch(\n        this._actions.navigateTo({\n          unit: {\n            month: getMonth(day.date),\n            year: getFullYear(day.date)\n          },\n          viewMode: 'day'\n        })\n      );\n\n      return;\n    }\n    this.rangesProcessing(day);\n  }\n\n  override yearSelectHandler(day: CalendarCellViewModel): void {\n    if (!day || day.isDisabled) {\n      return;\n    }\n\n    day.isSelected = true;\n\n    if (this._config.minMode !== 'year') {\n      if (day.isDisabled) {\n        return;\n      }\n      this._store.dispatch(\n        this._actions.navigateTo({\n          unit: {\n            year: getFullYear(day.date)\n          },\n          viewMode: 'month'\n        })\n      );\n\n      return;\n    }\n    this.rangesProcessing(day);\n  }\n\n  rangesProcessing(day: CalendarCellViewModel): void {\n    // if only one date is already selected\n    // and user clicks on previous date\n    // start selection from new date\n    // but if new date is after initial one\n    // than finish selection\n\n    if (this._rangeStack.length === 1) {\n      this._rangeStack = day.date >= this._rangeStack[0] ? [this._rangeStack[0], day.date] : [day.date];\n    }\n\n    if (this._config.maxDateRange) {\n      this.setMaxDateRangeOnCalendar(day.date);\n    }\n\n    if (this._rangeStack.length === 0) {\n      this._rangeStack = [day.date];\n\n      if (this._config.maxDateRange) {\n        this.setMaxDateRangeOnCalendar(day.date);\n      }\n    }\n\n    this._store.dispatch(this._actions.selectRange(this._rangeStack));\n\n    if (this._rangeStack.length === 2) {\n      this._rangeStack = [];\n    }\n  }\n\n  ngOnDestroy(): void {\n    for (const sub of this._subs) {\n      sub.unsubscribe();\n    }\n    this.selectedTimeSub.unsubscribe();\n    this._effects?.destroy();\n  }\n\n  override setRangeOnCalendar(dates: BsCustomDates): void {\n    if (dates) {\n      this._rangeStack = dates.value instanceof Date ? [dates.value] : dates.value;\n    }\n    this._store.dispatch(this._actions.selectRange(this._rangeStack));\n  }\n\n  setMaxDateRangeOnCalendar(currentSelection: Date): void {\n    let maxDateRange = new Date(currentSelection);\n\n    if (this._config.maxDate) {\n      const maxDateValueInMilliseconds = this._config.maxDate.getTime();\n      const maxDateRangeInMilliseconds =\n        currentSelection.getTime() + (this._config.maxDateRange || 0) * dayInMilliseconds;\n      maxDateRange =\n        maxDateRangeInMilliseconds > maxDateValueInMilliseconds\n          ? new Date(this._config.maxDate)\n          : new Date(maxDateRangeInMilliseconds);\n    } else {\n      maxDateRange.setDate(currentSelection.getDate() + (this._config.maxDateRange || 0));\n    }\n\n    this._effects?.setMaxDate(maxDateRange);\n  }\n}\n","import {OnInit, OnDestroy, ElementRef, Component, Renderer2, HostBinding} from '@angular/core';\nimport { BsDaterangepickerContainerComponent } from './bs-daterangepicker-container.component';\n\nimport { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from '../../reducer/bs-datepicker.store';\n\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { datepickerAnimation } from '../../datepicker-animations';\nimport { BsCustomDatesViewComponent } from './bs-custom-dates-view.component';\nimport { BsYearsCalendarViewComponent } from './bs-years-calendar-view.component';\nimport { BsMonthCalendarViewComponent } from './bs-months-calendar-view.component';\nimport { TimepickerModule } from 'ngx-bootstrap/timepicker';\nimport { BsDaysCalendarViewComponent } from './bs-days-calendar-view.component';\nimport { NgClass, AsyncPipe } from '@angular/common';\n\n@Component({\n    selector: 'bs-daterangepicker-inline-container',\n    providers: [BsDatepickerStore, BsDatepickerEffects, BsDatepickerActions],\n    templateUrl: './bs-datepicker-view.html',\n    host: {\n        '(click)': '_stopPropagation($event)'\n    },\n    animations: [datepickerAnimation],\n    standalone: true,\n    imports: [NgClass, BsDaysCalendarViewComponent, TimepickerModule, BsMonthCalendarViewComponent, BsYearsCalendarViewComponent, BsCustomDatesViewComponent, AsyncPipe]\n})\nexport class BsDaterangepickerInlineContainerComponent extends BsDaterangepickerContainerComponent\n  implements OnInit, OnDestroy {\n  @HostBinding ('attr.disabled') get disabledValue () {\n    return this.isDatePickerDisabled ? '' : null;\n  }\n\n  @HostBinding ('attr.readonly') get readonlyValue () {\n    return this.isDatePickerDisabled ? '' : null;\n  }\n\n  constructor(\n    _renderer: Renderer2,\n    _config: BsDatepickerConfig,\n    _store: BsDatepickerStore,\n    _element: ElementRef,\n    _actions: BsDatepickerActions,\n    _effects: BsDatepickerEffects,\n    _positioningService: PositioningService\n  ) {\n    super(_renderer, _config, _store, _element, _actions, _effects, _positioningService);\n\n    _renderer.setStyle(_element.nativeElement, 'display', 'inline-block');\n    _renderer.setStyle(_element.nativeElement, 'position', 'static');\n  }\n}\n","import {\n  ComponentRef, Directive, ElementRef, EventEmitter, Input, OnChanges,\n  OnDestroy, OnInit, Output, Renderer2, SimpleChanges, ViewContainerRef\n} from '@angular/core';\n\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { BsDaterangepickerInlineConfig } from './bs-daterangepicker-inline.config';\nimport { BsDaterangepickerInlineContainerComponent } from './themes/bs/bs-daterangepicker-inline-container.component';\nimport { DatepickerDateCustomClasses } from './models';\nimport {\n  checkBsValue,\n  checkRangesWithMaxDate,\n  setDateRangesCurrentTimeOnDateSelect\n} from './utils/bs-calendar-utils';\n\n@Directive({\n    selector: 'bs-daterangepicker-inline',\n    exportAs: 'bsDaterangepickerInline',\n    standalone: true,\n    providers: [ComponentLoaderFactory, PositioningService]\n})\nexport class BsDaterangepickerInlineDirective implements OnInit, OnDestroy, OnChanges {\n    _bsValue?: (Date|undefined)[] | undefined;\n    /**\n     * Initial value of datepicker\n     */\n    @Input()\n    set bsValue(value: (Date|undefined)[] | undefined) {\n      if (this._bsValue === value) {\n        return;\n      }\n\n      if (value && this.bsConfig?.initCurrentTime) {\n        value = setDateRangesCurrentTimeOnDateSelect(value);\n      }\n\n      this._bsValue = value;\n      this.bsValueChange.emit(value);\n    }\n\n    /**\n     * Config object for datepicker\n     */\n    @Input() bsConfig?: Partial<BsDaterangepickerInlineConfig>;\n    /**\n     * Indicates whether datepicker is enabled or not\n     */\n    @Input() isDisabled = false;\n    /**\n     * Minimum date which is available for selection\n     */\n    @Input() minDate?: Date;\n    /**\n     * Maximum date which is available for selection\n     */\n    @Input() maxDate?: Date;\n    /**\n     * Date custom classes\n     */\n    @Input() dateCustomClasses?: DatepickerDateCustomClasses[];\n    /**\n     * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays\n     */\n    @Input() daysDisabled?: number[];\n    /**\n     * Disable specific dates\n     */\n    @Input() datesDisabled?: Date[];\n    /**\n     * Disable specific dates\n     */\n    @Input() datesEnabled?: Date[];\n    /**\n     * Emits when daterangepicker value has been changed\n     */\n    @Output() bsValueChange: EventEmitter<(Date|undefined)[] | undefined> = new EventEmitter();\n\n    protected _subs: Subscription[] = [];\n\n    private readonly _datepicker: ComponentLoader<BsDaterangepickerInlineContainerComponent>;\n    private _datepickerRef?: ComponentRef<BsDaterangepickerInlineContainerComponent>;\n\n    constructor(\n      public _config: BsDaterangepickerInlineConfig,\n      private _elementRef: ElementRef,\n      _renderer: Renderer2,\n      _viewContainerRef: ViewContainerRef,\n      cis: ComponentLoaderFactory\n    ) {\n      // todo: assign only subset of fields\n      Object.assign(this, this._config);\n      this._datepicker = cis.createLoader<BsDaterangepickerInlineContainerComponent>(\n        _elementRef,\n        _viewContainerRef,\n        _renderer\n      );\n    }\n\n    ngOnInit(): void {\n        this.setConfig();\n        this.initSubscribes();\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n      if (changes[\"bsConfig\"]) {\n        if (changes[\"bsConfig\"].currentValue.initCurrentTime && changes[\"bsConfig\"].currentValue.initCurrentTime !== changes[\"bsConfig\"].previousValue.initCurrentTime && this._bsValue) {\n          this._bsValue = setDateRangesCurrentTimeOnDateSelect(this._bsValue);\n          this.bsValueChange.emit(this._bsValue);\n        }\n      }\n\n      if (!this._datepickerRef || !this._datepickerRef.instance) {\n        return;\n      }\n\n      if (changes[\"minDate\"]) {\n        this._datepickerRef.instance.minDate = this.minDate;\n      }\n\n      if (changes[\"maxDate\"]) {\n        this._datepickerRef.instance.maxDate = this.maxDate;\n      }\n\n      if (changes[\"datesEnabled\"]) {\n        this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n        this._datepickerRef.instance.value = this._bsValue;\n      }\n\n      if (changes[\"datesDisabled\"]) {\n        this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n      }\n\n      if (changes[\"daysDisabled\"]) {\n        this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n      }\n\n      if (changes[\"isDisabled\"]) {\n        this._datepickerRef.instance.isDisabled = this.isDisabled;\n      }\n\n      if (changes[\"dateCustomClasses\"]) {\n        this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n      }\n\n      this.setConfig();\n    }\n\n    /**\n     * Set config for datepicker\n     */\n    setConfig(): void {\n      if (this._datepicker) {\n        this._datepicker.hide();\n      }\n\n      this._config = Object.assign({}, this._config, this.bsConfig, {\n        value: checkBsValue(this._bsValue, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\n        isDisabled: this.isDisabled,\n        minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n        maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n        daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,\n        dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n        datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n        datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n        ranges: checkRangesWithMaxDate(this.bsConfig && this.bsConfig.ranges, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\n        maxDateRange: this.bsConfig && this.bsConfig.maxDateRange,\n        initCurrentTime: this.bsConfig?.initCurrentTime\n      });\n\n      this._datepickerRef = this._datepicker\n        .provide({provide: BsDatepickerConfig, useValue: this._config})\n        .attach(BsDaterangepickerInlineContainerComponent)\n        .to(this._elementRef)\n        .show();\n\n      this.initSubscribes();\n    }\n\n  initSubscribes() {\n    this.unsubscribeSubscriptions();\n    // if date changes from external source (model -> view)\n    this._subs.push(\n      this.bsValueChange.subscribe((value: Date[]) => {\n        if (this._datepickerRef) {\n          this._datepickerRef.instance.value = value;\n        }\n      })\n    );\n\n    // if date changes from picker (view -> model)\n    if (this._datepickerRef) {\n      this._subs.push(\n        this._datepickerRef.instance.valueChange\n          .pipe(\n            filter((range: Date[]) => range && range[0] && !!range[1])\n          )\n          .subscribe((value: Date[]) => {\n            this.bsValue = value;\n          })\n      );\n    }\n  }\n\n  unsubscribeSubscriptions() {\n    if (this._subs?.length) {\n      this._subs.map(sub => sub.unsubscribe());\n      this._subs.length = 0;\n    }\n  }\n\n    ngOnDestroy() {\n      this._datepicker.dispose();\n      this.unsubscribeSubscriptions();\n    }\n}\n","import {\n  ChangeDetectorRef,\n  Directive,\n  ElementRef,\n  forwardRef,\n  Host,\n  HostListener,\n  OnDestroy,\n  OnInit,\n  Provider,\n  Renderer2\n} from '@angular/core';\n\nimport {\n  AbstractControl,\n  ControlValueAccessor,\n  NG_VALIDATORS,\n  NG_VALUE_ACCESSOR,\n  ValidationErrors,\n  Validator\n} from '@angular/forms';\n\nimport {\n  formatDate,\n  getLocale,\n  isAfter,\n  isBefore,\n  isDate,\n  isDateValid,\n  parseDate,\n  utcAsLocal\n} from 'ngx-bootstrap/chronos';\n\nimport { BsDatepickerDirective } from './bs-datepicker.component';\nimport { BsLocaleService } from './bs-locale.service';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\nconst BS_DATEPICKER_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => BsDatepickerInputDirective),\n  multi: true\n};\n\nconst BS_DATEPICKER_VALIDATOR: Provider = {\n  provide: NG_VALIDATORS,\n  useExisting: forwardRef(() => BsDatepickerInputDirective),\n  multi: true\n};\n\n@Directive({\n    selector: `input[bsDatepicker]`,\n    providers: [\n      BS_DATEPICKER_VALUE_ACCESSOR,\n      BS_DATEPICKER_VALIDATOR\n    ],\n    standalone: true\n})\nexport class BsDatepickerInputDirective implements ControlValueAccessor, Validator, OnInit, OnDestroy {\n  private _onChange = Function.prototype;\n  private _onTouched = Function.prototype;\n  private _validatorChange = Function.prototype;\n  private _value?: Date;\n  private _subs = new Subscription();\n\n  constructor(\n    @Host() private _picker: BsDatepickerDirective,\n    private _localeService: BsLocaleService,\n    private _renderer: Renderer2,\n    private _elRef: ElementRef,\n    private changeDetection: ChangeDetectorRef\n  ) {}\n\n  @HostListener('change', ['$event'])\n  onChange(event: Event) {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    this.writeValue((event.target as any).value);\n    this._onChange(this._value);\n    if (this._picker._config.returnFocusToInput) {\n      this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n    }\n    this._onTouched();\n  }\n\n  @HostListener('blur')\n  onBlur() {\n    this._onTouched();\n  }\n\n  @HostListener('keyup.esc')\n  @HostListener('keydown.enter')\n  hide() {\n    this._picker.hide();\n    this._renderer.selectRootElement(this._elRef.nativeElement).blur();\n    if (this._picker._config.returnFocusToInput) {\n      this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n    }\n  }\n\n  ngOnInit() {\n    const setBsValue = (value: Date) => {\n      this._setInputValue(value);\n      if (this._value !== value) {\n        this._value = value;\n        this._onChange(value);\n        this._onTouched();\n      }\n      this.changeDetection.markForCheck();\n    };\n\n    // if value set via [bsValue] it will not get into value change\n    if (this._picker._bsValue) {\n      setBsValue(this._picker._bsValue);\n    }\n\n    // update input value on datepicker value update\n    this._subs.add(this._picker.bsValueChange.subscribe(setBsValue));\n\n    // update input value on locale change\n    this._subs.add(\n      this._localeService.localeChange.subscribe(() => {\n        this._setInputValue(this._value);\n      })\n    );\n\n    this._subs.add(\n      this._picker.dateInputFormat$.pipe(distinctUntilChanged()).subscribe(() => {\n        this._setInputValue(this._value);\n      })\n    );\n  }\n\n  ngOnDestroy() {\n    this._subs.unsubscribe();\n  }\n\n  _setInputValue(value?: Date): void {\n    const initialDate = !value\n      ? ''\n      : formatDate(value, this._picker._config.dateInputFormat, this._localeService.currentLocale);\n\n    this._renderer.setProperty(this._elRef.nativeElement, 'value', initialDate);\n  }\n\n  validate(c: AbstractControl): ValidationErrors | null {\n    const _value: Date | string = c.value;\n\n    if (_value === null || _value === undefined || _value === '') {\n      return null;\n    }\n\n    if (isDate(_value)) {\n      const _isDateValid = isDateValid(_value);\n      if (!_isDateValid) {\n        return { bsDate: { invalid: _value } };\n      }\n\n      if (this._picker && this._picker.minDate && isBefore(_value, this._picker.minDate, 'date')) {\n        this.writeValue(this._picker.minDate);\n\n        return this._picker.ignoreMinMaxErrors ? null : { bsDate: { minDate: this._picker.minDate } };\n      }\n\n      if (this._picker && this._picker.maxDate && isAfter(_value, this._picker.maxDate, 'date')) {\n        this.writeValue(this._picker.maxDate);\n\n        return this._picker.ignoreMinMaxErrors ? null : { bsDate: { maxDate: this._picker.maxDate } };\n      }\n    }\n\n    return null;\n  }\n\n  registerOnValidatorChange(fn: () => void): void {\n    this._validatorChange = fn;\n  }\n\n  writeValue(value: Date | string) {\n    if (!value) {\n      this._value = void 0;\n    } else {\n      const _localeKey = this._localeService.currentLocale;\n      const _locale = getLocale(_localeKey);\n      if (!_locale) {\n        throw new Error(`Locale \"${_localeKey}\" is not defined, please add it with \"defineLocale(...)\"`);\n      }\n\n      this._value = parseDate(value, this._picker._config.dateInputFormat, this._localeService.currentLocale);\n\n      if (this._picker._config.useUtc) {\n        const utcValue = utcAsLocal(this._value);\n        this._value = utcValue === null ? void 0 : utcValue;\n      }\n    }\n\n    this._picker.bsValue = this._value;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._picker.isDisabled = isDisabled;\n    if (isDisabled) {\n      this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');\n\n      return;\n    }\n    this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');\n  }\n\n  registerOnChange(fn: () => void): void {\n    this._onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this._onTouched = fn;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BsDaterangepickerConfig extends BsDatepickerConfig {\n  // DatepickerRenderOptions\n  override displayMonths = 2;\n}\n","import {\n  AfterViewInit, ComponentRef,\n  Directive, ElementRef, EventEmitter, HostBinding,\n  Input, OnChanges, OnDestroy, OnInit,\n  Output, Renderer2, SimpleChanges,\n  ViewContainerRef\n} from '@angular/core';\nimport { BsDaterangepickerConfig } from './bs-daterangepicker.config';\nimport { BsDaterangepickerContainerComponent } from './themes/bs/bs-daterangepicker-container.component';\nimport { Observable, Subscription, Subject, BehaviorSubject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { ComponentLoaderFactory, ComponentLoader } from 'ngx-bootstrap/component-loader';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { DatepickerDateCustomClasses } from './models';\nimport {\n  checkBsValue,\n  checkRangesWithMaxDate,\n  setDateRangesCurrentTimeOnDateSelect\n} from './utils/bs-calendar-utils';\n\nexport let previousDate: (Date | undefined)[] | undefined;\n\n\n@Directive({\n    selector: '[bsDaterangepicker]',\n    exportAs: 'bsDaterangepicker',\n    standalone: true,\n    providers: [ComponentLoaderFactory, PositioningService]\n})\nexport class BsDaterangepickerDirective\n  implements OnInit, OnDestroy, OnChanges, AfterViewInit {\n  /**\n   * Placement of a daterangepicker. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n   */\n  @Input() placement: 'top' | 'bottom' | 'left' | 'right' = 'bottom';\n  /**\n   * Specifies events that should trigger. Supports a space separated list of\n   * event names.\n   */\n  @Input() triggers = 'click';\n  /**\n   * Close daterangepicker on outside click\n   */\n  @Input() outsideClick = true;\n  /**\n   * A selector specifying the element the daterangepicker should be appended to.\n   */\n  @Input() container = 'body';\n\n  @Input() outsideEsc = true;\n\n  /**\n   * Returns whether or not the daterangepicker is currently being shown\n   */\n  @Input()\n  get isOpen(): boolean {\n    return this._datepicker.isShown;\n  }\n\n  set isOpen(value: boolean) {\n    this.isOpen$.next(value);\n  }\n\n  /**\n   * Emits an event when the daterangepicker is shown\n   */\n  @Output() onShown: EventEmitter<unknown>;\n  /**\n   * Emits an event when the daterangepicker is hidden\n   */\n  @Output() onHidden: EventEmitter<unknown>;\n\n  _bsValue?: (Date|undefined)[];\n  isOpen$: BehaviorSubject<boolean>;\n  isDestroy$ = new Subject();\n\n  /**\n   * Initial value of daterangepicker\n   */\n  @Input()\n  set bsValue(value: (Date|undefined)[] | undefined) {\n    if (this._bsValue === value) {\n      return;\n    }\n\n    if (value && this.bsConfig?.initCurrentTime) {\n      value = setDateRangesCurrentTimeOnDateSelect(value);\n    }\n    this.initPreviousValue();\n    this._bsValue = value;\n    this.bsValueChange.emit(value);\n  }\n\n  /**\n   * Config object for daterangepicker\n   */\n  @Input() bsConfig?: Partial<BsDaterangepickerConfig>;\n  /**\n   * Indicates whether daterangepicker's content is enabled or not\n   */\n  @Input() isDisabled = false;\n  /**\n   * Minimum date which is available for selection\n   */\n  @Input() minDate?: Date;\n  /**\n   * Maximum date which is available for selection\n   */\n  @Input() maxDate?: Date;\n  /**\n   * Date custom classes\n   */\n  @Input() dateCustomClasses?: DatepickerDateCustomClasses[];\n  /**\n   * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays\n   */\n  @Input() daysDisabled?: number[];\n  /**\n   * Disable specific dates\n   */\n  @Input() datesDisabled?: Date[];\n\n  /**\n   * Enable specific dates\n   */\n  @Input() datesEnabled?: Date[];\n  /**\n   * Emits when daterangepicker value has been changed\n   */\n  @Output() bsValueChange = new EventEmitter<((Date|undefined)[]|undefined)>();\n\n  @HostBinding ('attr.readonly') get isDatepickerReadonly() {\n    return this.isDisabled ? '' : null;\n  }\n\n  get rangeInputFormat$(): Observable<string> {\n    return this._rangeInputFormat$;\n  }\n\n  protected _subs: Subscription[] = [];\n  private _datepicker: ComponentLoader<BsDaterangepickerContainerComponent>;\n  private _datepickerRef?: ComponentRef<BsDaterangepickerContainerComponent>;\n  private readonly _rangeInputFormat$ = new Subject<string>();\n\n  constructor(public _config: BsDaterangepickerConfig,\n              private  _elementRef: ElementRef,\n              private  _renderer: Renderer2,\n              _viewContainerRef: ViewContainerRef,\n              cis: ComponentLoaderFactory) {\n    this._datepicker = cis.createLoader<BsDaterangepickerContainerComponent>(\n      _elementRef,\n      _viewContainerRef,\n      _renderer\n    );\n    Object.assign(this, _config);\n    this.onShown = this._datepicker.onShown;\n    this.onHidden = this._datepicker.onHidden;\n    this.isOpen$ = new BehaviorSubject(this.isOpen);\n  }\n\n  ngOnInit(): void {\n    this.isDestroy$ = new Subject();\n    this._datepicker.listen({\n      outsideClick: this.outsideClick,\n      outsideEsc: this.outsideEsc,\n      triggers: this.triggers,\n      show: () => this.show()\n    });\n    this.initPreviousValue();\n    this.setConfig();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes[\"bsConfig\"]) {\n      if (changes[\"bsConfig\"].currentValue?.initCurrentTime && changes[\"bsConfig\"].currentValue?.initCurrentTime !== changes[\"bsConfig\"].previousValue?.initCurrentTime && this._bsValue) {\n        this.initPreviousValue();\n        this._bsValue = setDateRangesCurrentTimeOnDateSelect(this._bsValue);\n        this.bsValueChange.emit(this._bsValue);\n      }\n\n      this.setConfig();\n      this._rangeInputFormat$.next(changes[\"bsConfig\"].currentValue && changes[\"bsConfig\"].currentValue.rangeInputFormat);\n    }\n\n\n    if (!this._datepickerRef || !this._datepickerRef.instance) {\n      return;\n    }\n    if (changes[\"minDate\"]) {\n      this._datepickerRef.instance.minDate = this.minDate;\n    }\n    if (changes[\"maxDate\"]) {\n      this._datepickerRef.instance.maxDate = this.maxDate;\n    }\n    if (changes[\"datesDisabled\"]) {\n      this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n    }\n    if (changes[\"datesEnabled\"]) {\n      this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n    }\n    if (changes[\"daysDisabled\"]) {\n      this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n    }\n    if (changes[\"isDisabled\"]) {\n      this._datepickerRef.instance.isDisabled = this.isDisabled;\n    }\n    if (changes[\"dateCustomClasses\"]) {\n      this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n    }\n  }\n\n  ngAfterViewInit(): void {\n    this.isOpen$.pipe(\n      filter(isOpen => isOpen !== this.isOpen),\n      takeUntil(this.isDestroy$)\n    )\n      .subscribe(() => this.toggle());\n  }\n\n  /**\n   * Opens an element’s datepicker. This is considered a “manual” triggering of\n   * the datepicker.\n   */\n  show(): void {\n    if (this._datepicker.isShown) {\n      return;\n    }\n\n    this.setConfig();\n\n    this._datepickerRef = this._datepicker\n      .provide({ provide: BsDatepickerConfig, useValue: this._config })\n      .attach(BsDaterangepickerContainerComponent)\n      .to(this.container)\n      .position({ attachment: this.placement })\n      .show({ placement: this.placement });\n\n    this.initSubscribes();\n  }\n\n  initSubscribes() {\n    // if date changes from external source (model -> view)\n    this._subs.push(\n      this.bsValueChange.subscribe((value: Date[]) => {\n        if (this._datepickerRef) {\n          this._datepickerRef.instance.value = value;\n        }\n      })\n    );\n\n    // if date changes from picker (view -> model)\n    if (this._datepickerRef) {\n      this._subs.push(\n        this._datepickerRef.instance.valueChange\n          .pipe(\n            filter((range: Date[]) => range && range[0] && !!range[1])\n          )\n          .subscribe((value: Date[]) => {\n            this.initPreviousValue();\n            this.bsValue = value;\n            if (this.keepDatepickerModalOpened()) {\n              return;\n            }\n\n            this.hide();\n          })\n      );\n    }\n  }\n\n  initPreviousValue() {\n    previousDate = this._bsValue;\n  }\n\n  keepDatepickerModalOpened(): boolean {\n    if (!previousDate || !this.bsConfig?.keepDatepickerOpened || !this._config.withTimepicker) {\n      return false;\n    }\n\n    return this.isDateSame();\n  }\n\n  isDateSame(): boolean {\n    return ((this._bsValue?.[0]?.getDate() === previousDate?.[0]?.getDate())\n      && (this._bsValue?.[0]?.getMonth() === previousDate?.[0]?.getMonth())\n      && (this._bsValue?.[0]?.getFullYear() === previousDate?.[0]?.getFullYear())\n      && (this._bsValue?.[1]?.getDate() === previousDate?.[1]?.getDate())\n      && (this._bsValue?.[1]?.getMonth() === previousDate?.[1]?.getMonth())\n      && (this._bsValue?.[1]?.getFullYear() === previousDate?.[1]?.getFullYear())\n    );\n  }\n\n  /**\n   * Set config for daterangepicker\n   */\n  setConfig() {\n    this._config = Object.assign(\n      {},\n      this._config,\n      this.bsConfig,\n      {\n        value: this.bsConfig?.keepDatesOutOfRules ? this._bsValue : checkBsValue(this._bsValue, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\n        isDisabled: this.isDisabled,\n        minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n        maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n        daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,\n        dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n        datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n        datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n        ranges: checkRangesWithMaxDate(this.bsConfig && this.bsConfig.ranges, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\n        maxDateRange: this.bsConfig && this.bsConfig.maxDateRange,\n        initCurrentTime: this.bsConfig?.initCurrentTime,\n        keepDatepickerOpened: this.bsConfig?.keepDatepickerOpened,\n        keepDatesOutOfRules: this.bsConfig?.keepDatesOutOfRules\n      }\n    );\n  }\n\n  /**\n   * Closes an element’s datepicker. This is considered a “manual” triggering of\n   * the datepicker.\n   */\n  hide(): void {\n    if (this.isOpen) {\n      this._datepicker.hide();\n    }\n    for (const sub of this._subs) {\n      sub.unsubscribe();\n    }\n\n    if (this._config.returnFocusToInput) {\n      this._renderer.selectRootElement(this._elementRef.nativeElement).focus();\n    }\n  }\n\n  /**\n   * Toggles an element’s datepicker. This is considered a “manual” triggering\n   * of the datepicker.\n   */\n  toggle(): void {\n    if (this.isOpen) {\n      return this.hide();\n    }\n\n    this.show();\n  }\n\n  unsubscribeSubscriptions() {\n    if (this._subs?.length) {\n      this._subs.map(sub => sub.unsubscribe());\n      this._subs.length = 0;\n    }\n  }\n\n  ngOnDestroy(): void {\n    this._datepicker.dispose();\n    this.isOpen$.next(false);\n    if (this.isDestroy$) {\n      this.isDestroy$.next(null);\n      this.isDestroy$.complete();\n    }\n\n    this.unsubscribeSubscriptions();\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Directive,\n  ElementRef,\n  forwardRef,\n  Host,\n  OnDestroy,\n  OnInit,\n  Provider,\n  Renderer2\n} from '@angular/core';\n\nimport {\n  AbstractControl,\n  ControlValueAccessor,\n  NG_VALIDATORS,\n  NG_VALUE_ACCESSOR,\n  ValidationErrors,\n  Validator\n} from '@angular/forms';\n\nimport {\n  parseDate,\n  formatDate,\n  getLocale,\n  isAfter,\n  isBefore,\n  isArray,\n  isDateValid,\n  utcAsLocal\n} from 'ngx-bootstrap/chronos';\n\nimport { BsDaterangepickerDirective } from './bs-daterangepicker.component';\nimport { BsLocaleService } from './bs-locale.service';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\nconst BS_DATERANGEPICKER_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => BsDaterangepickerInputDirective),\n  multi: true\n};\n\nconst BS_DATERANGEPICKER_VALIDATOR: Provider = {\n  provide: NG_VALIDATORS,\n  useExisting: forwardRef(() => BsDaterangepickerInputDirective),\n  multi: true\n};\n\n\n@Directive({\n    selector: `input[bsDaterangepicker]`,\n    host: {\n        '(change)': 'onChange($event)',\n        '(keyup.esc)': 'hide()',\n        '(keydown)': 'onKeydownEvent($event)',\n        '(blur)': 'onBlur()'\n    },\n    providers: [\n      BS_DATERANGEPICKER_VALUE_ACCESSOR,\n      BS_DATERANGEPICKER_VALIDATOR\n    ],\n    standalone: true\n})\nexport class BsDaterangepickerInputDirective\n  implements ControlValueAccessor, Validator, OnInit, OnDestroy {\n  private _onChange = Function.prototype;\n  private _onTouched = Function.prototype;\n  private _validatorChange = Function.prototype;\n  private _value?: (Date|undefined)[];\n  private _subs = new Subscription();\n\n  constructor(@Host() private _picker: BsDaterangepickerDirective,\n              private _localeService: BsLocaleService,\n              private _renderer: Renderer2,\n              private _elRef: ElementRef,\n              private changeDetection: ChangeDetectorRef) {\n  }\n\n  ngOnInit() {\n    const setBsValue = (value: (Date|undefined)[]) => {\n      this._setInputValue(value);\n      if (this._value !== value) {\n        this._value = value;\n        this._onChange(value);\n        this._onTouched();\n      }\n      this.changeDetection.markForCheck();\n    };\n\n    // if value set via [bsValue] it will not get into value change\n    if (this._picker._bsValue) {\n      setBsValue(this._picker._bsValue);\n    }\n\n    // update input value on datepicker value update\n    this._subs.add(\n      this._picker.bsValueChange.subscribe((value: Date[]) => {\n        this._setInputValue(value);\n        if (this._value !== value) {\n          this._value = value;\n          this._onChange(value);\n          this._onTouched();\n        }\n        this.changeDetection.markForCheck();\n      }));\n\n    // update input value on locale change\n    this._subs.add(this._localeService.localeChange.subscribe(() => {\n      this._setInputValue(this._value);\n    }));\n\n    this._subs.add(\n      // update input value on format change\n      this._picker.rangeInputFormat$.pipe(distinctUntilChanged()).subscribe(() => {\n        this._setInputValue(this._value);\n      }));\n  }\n\n  ngOnDestroy() {\n    this._subs.unsubscribe();\n  }\n\n  onKeydownEvent(event: KeyboardEvent) {\n    if (event.keyCode === 13 || event.code === 'Enter') {\n      this.hide();\n    }\n  }\n\n  _setInputValue(date?: (Date|undefined)[]): void {\n    let range = '';\n    if (date) {\n      const start: string = !date[0] ? ''\n        : formatDate(date[0],\n          this._picker._config.rangeInputFormat,\n          this._localeService.currentLocale\n        );\n      const end: string = !date[1] ? ''\n        : formatDate(\n          date[1],\n          this._picker._config.rangeInputFormat,\n          this._localeService.currentLocale\n        );\n      range = (start && end) ? start + this._picker._config.rangeSeparator + end : '';\n    }\n    this._renderer.setProperty(this._elRef.nativeElement, 'value', range);\n  }\n\n  onChange(event: Event) {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    this.writeValue((event.target as any).value);\n    this._onChange(this._value);\n    if (this._picker._config.returnFocusToInput) {\n      this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n    }\n    this._onTouched();\n  }\n\n  validate(c: AbstractControl): ValidationErrors | null {\n    let _value: [Date, Date] = c.value;\n    const errors: Record<string, unknown>[] = [];\n\n    if (_value === null || _value === undefined || !isArray(_value)) {\n      return null;\n    }\n\n    _value = _value.slice().sort((a, b) => a.getTime() - b.getTime()) as [Date, Date];\n\n    const _isFirstDateValid = isDateValid(_value[0]);\n    const _isSecondDateValid = isDateValid(_value[1]);\n\n    if (!_isFirstDateValid) {\n      return { bsDate: { invalid: _value[0] } };\n    }\n\n    if (!_isSecondDateValid) {\n      return { bsDate: { invalid: _value[1] } };\n    }\n\n    if (this._picker && this._picker.minDate && isBefore(_value[0], this._picker.minDate, 'date')) {\n      _value[0] = this._picker.minDate;\n      errors.push({ bsDate: { minDate: this._picker.minDate } });\n    }\n\n    if (this._picker && this._picker.maxDate && isAfter(_value[1], this._picker.maxDate, 'date')) {\n      _value[1] = this._picker.maxDate;\n      errors.push({ bsDate: { maxDate: this._picker.maxDate } });\n    }\n    if (errors.length > 0) {\n      this.writeValue(_value);\n\n      return errors;\n    }\n\n    return null;\n  }\n\n  registerOnValidatorChange(fn: () => void): void {\n    this._validatorChange = fn;\n  }\n\n  writeValue(value: Date[] | string) {\n    if (!value) {\n      this._value = void 0;\n    } else {\n      const _localeKey = this._localeService.currentLocale;\n      const _locale = getLocale(_localeKey);\n      if (!_locale) {\n        throw new Error(\n          `Locale \"${_localeKey}\" is not defined, please add it with \"defineLocale(...)\"`\n        );\n      }\n\n      let _input: (string | Date)[] = [];\n      if (typeof value === 'string') {\n        const trimmedSeparator = this._picker._config.rangeSeparator.trim();\n        if (value.replace(/[^-]/g, '').length > 1) {\n          _input = value.split(this._picker._config.rangeSeparator);\n        } else {\n          _input = value\n            .split(trimmedSeparator.length > 0 ? trimmedSeparator : this._picker._config.rangeSeparator)\n            .map(_val => _val.trim());\n        }\n      }\n\n      if (Array.isArray(value)) {\n        _input = value;\n      }\n\n      this._value = _input\n        .map((_val: string | Date): Date => {\n            if (this._picker._config.useUtc) {\n              return utcAsLocal(\n                parseDate(_val, this._picker._config.rangeInputFormat, this._localeService.currentLocale)\n              );\n            }\n\n            return parseDate(_val, this._picker._config.rangeInputFormat, this._localeService.currentLocale);\n          }\n        )\n        .map((date: Date) => (isNaN(date.valueOf()) ? void 0 : date));\n    }\n\n    this._picker.bsValue = this._value;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._picker.isDisabled = isDisabled;\n    if (isDisabled) {\n      this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');\n\n      return;\n    }\n    this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  registerOnChange(fn: () => void): void {\n    this._onChange = fn;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  registerOnTouched(fn: () => void): void {\n    this._onTouched = fn;\n  }\n\n  onBlur() {\n    this._onTouched();\n  }\n\n  hide() {\n    this._picker.hide();\n    this._renderer.selectRootElement(this._elRef.nativeElement).blur();\n\n    if (this._picker._config.returnFocusToInput) {\n      this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n    }\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { TimepickerModule } from 'ngx-bootstrap/timepicker';\n\nimport { BsDatepickerInputDirective } from './bs-datepicker-input.directive';\nimport { BsDatepickerDirective } from './bs-datepicker.component';\nimport { BsDaterangepickerInputDirective } from './bs-daterangepicker-input.directive';\nimport { BsDaterangepickerDirective } from './bs-daterangepicker.component';\n\nimport { BsDatepickerInlineDirective } from './bs-datepicker-inline.component';\n\nimport { BsDatepickerContainerComponent } from './themes/bs/bs-datepicker-container.component';\nimport { BsDaterangepickerContainerComponent } from './themes/bs/bs-daterangepicker-container.component';\n\nimport { BsDatepickerInlineContainerComponent } from './themes/bs/bs-datepicker-inline-container.component';\nimport { BsDaterangepickerInlineContainerComponent } from './themes/bs/bs-daterangepicker-inline-container.component';\n\nimport { BsDaterangepickerInlineDirective } from './bs-daterangepicker-inline.component';\n\nimport { BsCalendarLayoutComponent } from './themes/bs/bs-calendar-layout.component';\nimport { BsCurrentDateViewComponent } from './themes/bs/bs-current-date-view.component';\nimport { BsCustomDatesViewComponent } from './themes/bs/bs-custom-dates-view.component';\nimport { BsDatepickerDayDecoratorComponent } from './themes/bs/bs-datepicker-day-decorator.directive';\nimport { BsDatepickerNavigationViewComponent } from './themes/bs/bs-datepicker-navigation-view.component';\nimport { BsDaysCalendarViewComponent } from './themes/bs/bs-days-calendar-view.component';\nimport { BsMonthCalendarViewComponent } from './themes/bs/bs-months-calendar-view.component';\nimport { BsTimepickerViewComponent } from './themes/bs/bs-timepicker-view.component';\nimport { BsYearsCalendarViewComponent } from './themes/bs/bs-years-calendar-view.component';\n\n@NgModule({\n    imports: [CommonModule, TooltipModule, TimepickerModule, BsCalendarLayoutComponent,\n        BsCurrentDateViewComponent,\n        BsCustomDatesViewComponent,\n        BsDatepickerDayDecoratorComponent,\n        BsDatepickerNavigationViewComponent,\n        BsDaysCalendarViewComponent,\n        BsMonthCalendarViewComponent,\n        BsTimepickerViewComponent,\n        BsYearsCalendarViewComponent,\n        BsDatepickerContainerComponent,\n        BsDatepickerDirective,\n        BsDatepickerInlineContainerComponent,\n        BsDatepickerInlineDirective,\n        BsDatepickerInputDirective,\n        BsDaterangepickerContainerComponent,\n        BsDaterangepickerDirective,\n        BsDaterangepickerInlineContainerComponent,\n        BsDaterangepickerInlineDirective,\n        BsDaterangepickerInputDirective],\n    exports: [\n        BsDatepickerContainerComponent,\n        BsDatepickerDirective,\n        BsDatepickerInlineContainerComponent,\n        BsDatepickerInlineDirective,\n        BsDatepickerInputDirective,\n        BsDaterangepickerContainerComponent,\n        BsDaterangepickerDirective,\n        BsDaterangepickerInlineContainerComponent,\n        BsDaterangepickerInlineDirective,\n        BsDaterangepickerInputDirective\n    ]\n})\nexport class BsDatepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsDatepickerActions","i2.BsLocaleService","height","width","shift","i1.BsDatepickerConfig","i2.BsDatepickerStore","i3.BsDatepickerActions","i4.BsDatepickerEffects","previousDate","i2","i1.BsDatepickerInlineConfig","i1.BsDaterangepickerInlineConfig","i1.BsDatepickerDirective","i1.BsDaterangepickerConfig","i1.BsDaterangepickerDirective"],"mappings":"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"}