@acorex/components 19.12.0-next.2 → 19.12.0-next.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/calendar/lib/calendar-range.component.d.ts +4 -1
 - package/calendar/lib/calendar.class.d.ts +8 -0
 - package/calendar/lib/calendar.component.d.ts +2 -0
 - package/datetime-box/lib/datetime-box.component.d.ts +11 -13
 - package/datetime-input/lib/datetime-input.component.d.ts +21 -84
 - package/datetime-picker/lib/datetime-picker.component.d.ts +13 -31
 - package/fesm2022/acorex-components-calendar.mjs +65 -37
 - package/fesm2022/acorex-components-calendar.mjs.map +1 -1
 - package/fesm2022/acorex-components-datetime-box.mjs +28 -26
 - package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
 - package/fesm2022/acorex-components-datetime-input.mjs +113 -181
 - package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
 - package/fesm2022/acorex-components-datetime-picker.mjs +79 -81
 - package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
 - package/fesm2022/{acorex-components-modal-acorex-components-modal-Bs1CnBt8.mjs → acorex-components-modal-acorex-components-modal-BzlZIwq8.mjs} +116 -26
 - package/fesm2022/acorex-components-modal-acorex-components-modal-BzlZIwq8.mjs.map +1 -0
 - package/fesm2022/acorex-components-modal-modal-content.component-zmFWBaiD.mjs +187 -0
 - package/fesm2022/acorex-components-modal-modal-content.component-zmFWBaiD.mjs.map +1 -0
 - package/fesm2022/acorex-components-modal.mjs +1 -1
 - package/fesm2022/acorex-components-query-builder.mjs +1 -1
 - package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
 - package/fesm2022/acorex-components-scheduler.mjs +63 -30
 - package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
 - package/modal/lib/modal-content/modal-content.component.d.ts +11 -8
 - package/modal/lib/modal-state.service.d.ts +8 -7
 - package/modal/lib/modal.component.d.ts +2 -0
 - package/modal/lib/modal.service.d.ts +4 -2
 - package/modal/lib/modal.types.d.ts +15 -1
 - package/package.json +1 -1
 - package/scheduler/lib/scheduler.component.d.ts +8 -4
 - package/scheduler/lib/scheduler.service.d.ts +3 -2
 - package/scheduler/lib/views/day/scheduler-day-view.component.d.ts +2 -1
 - package/scheduler/lib/views/month/scheduler-month-view.component.d.ts +4 -2
 - package/scheduler/lib/views/week/scheduler-week-view.component.d.ts +2 -1
 - package/fesm2022/acorex-components-modal-acorex-components-modal-Bs1CnBt8.mjs.map +0 -1
 - package/fesm2022/acorex-components-modal-modal-content.component-DhpujG4d.mjs +0 -181
 - package/fesm2022/acorex-components-modal-modal-content.component-DhpujG4d.mjs.map +0 -1
 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"acorex-components-calendar.mjs","sources":["../../../../libs/components/calendar/src/lib/calendar.class.ts","../../../../libs/components/calendar/src/lib/calendar.component.ts","../../../../libs/components/calendar/src/lib/calendar.component.html","../../../../libs/components/calendar/src/lib/calendar-range.component.ts","../../../../libs/components/calendar/src/lib/calendar-range.component.html","../../../../libs/components/calendar/src/lib/calendar.module.ts","../../../../libs/components/calendar/src/acorex-components-calendar.ts"],"sourcesContent":["import { AXItemClickEvent, AXRangeChangedEvent, MXBaseComponent } from '@acorex/components/common';\nimport { AXCalendarService, AXDateTime, AXDateTimeRange } from '@acorex/core/date-time';\nimport { EventEmitter, Injectable, Input, Output, TemplateRef, inject } from '@angular/core';\n\nexport type AXCalendarViewType = 'year' | 'month' | 'day';\nexport type AXCalendarViewDepth = AXCalendarViewType;\nexport type AXCalendarDisabledDates = Date[] | ((date: Date) => boolean);\nexport type AXCalendarHolidayDates = Date[] | ((date: Date) => boolean);\nexport type AXCalendarCellCssClass = string | { [key: string]: boolean } | ((date: Date) => string);\n\n/**\n *  Contains native event\n * @category Events\n */\nexport class AXCalendarNavigateEvent extends AXRangeChangedEvent<Date> {}\n\n/**\n *  Contains native event\n * @category Events\n */\nexport class AXCalendarSlotClick extends AXItemClickEvent<Date> {}\n\nexport interface AXCalendarViewSlot {\n  date: AXDateTime;\n  text: string;\n  tooltip: string;\n  today: boolean;\n  selected: boolean;\n  disabled: boolean;\n  cssClass: { [key: string]: boolean };\n}\nexport interface AXCalendarView {\n  range: AXDateTimeRange;\n  slots: AXCalendarViewSlot[];\n}\n\n@Injectable()\nexport class MXCalendarBaseComponent extends MXBaseComponent {\n  protected calendarService: AXCalendarService = inject(AXCalendarService);\n\n  @Input()\n  interface: 'calendar' | 'picker' = 'calendar';\n\n  @Input()\n  cellTemplate?: TemplateRef<unknown>;\n\n  @Input()\n  cellClass?: AXCalendarCellCssClass;\n\n  @Input()\n  showNavigation = true;\n\n  @Input()\n  count = 1;\n\n  @Output()\n  onSlotClick: EventEmitter<AXCalendarSlotClick> = new EventEmitter<AXCalendarSlotClick>();\n\n  @Output()\n  onNavigate: EventEmitter<AXCalendarNavigateEvent> = new EventEmitter<AXCalendarNavigateEvent>();\n\n  @Output()\n  activeViewChange: EventEmitter<AXCalendarViewType> = new EventEmitter<AXCalendarViewType>();\n\n  private _activeView: AXCalendarViewType = 'day';\n  @Input()\n  public get activeView(): AXCalendarViewType {\n    return this._activeView;\n  }\n  public set activeView(v: AXCalendarViewType) {\n    this.setOption({\n      name: 'activeView',\n      value: v,\n      afterCallback: () => {\n        this.cdr.markForCheck();\n      },\n    });\n  }\n\n  @Output()\n  public typeChange: EventEmitter<string> = new EventEmitter<string>();\n\n  private _type: string;\n\n  @Input()\n  public get type(): string {\n    return this._type || this.calendarService.calendar.name();\n  }\n  public set type(v: string) {\n    this.setOption({\n      name: 'type',\n      value: v,\n      afterCallback: () => {\n        this.cdr.markForCheck();\n      },\n    });\n  }\n\n  @Output()\n  depthChange: EventEmitter<AXCalendarViewDepth> = new EventEmitter<AXCalendarViewDepth>();\n\n  private _depth: AXCalendarViewDepth = 'day';\n  @Input()\n  public get depth(): AXCalendarViewDepth {\n    return this._depth;\n  }\n  public set depth(v: AXCalendarViewDepth) {\n    this.setOption({\n      name: 'depth',\n      value: v,\n      beforeCallback: (o, n) => {\n        this.activeView = v;\n        return n;\n      },\n      afterCallback: () => {\n        this.render();\n      },\n    });\n  }\n\n  @Output()\n  minValueChange: EventEmitter<Date> = new EventEmitter<Date>();\n\n  private _minValue: Date;\n  @Input()\n  public get minValue(): Date {\n    return this._minValue;\n  }\n  public set minValue(v: Date) {\n    this.setOption({\n      name: 'minValue',\n      value: v,\n      afterCallback: () => {\n        this.render();\n      },\n    });\n  }\n\n  @Output()\n  maxValueChange: EventEmitter<Date> = new EventEmitter<Date>();\n\n  private _maxValue: Date;\n  @Input()\n  public get maxValue(): Date {\n    return this._maxValue;\n  }\n  public set maxValue(v: Date) {\n    this.setOption({\n      name: 'maxValue',\n      value: v,\n      afterCallback: () => {\n        this.render();\n      },\n    });\n  }\n\n  @Output()\n  disabledDatesChange: EventEmitter<AXCalendarDisabledDates> = new EventEmitter<AXCalendarDisabledDates>();\n\n  private _disabledDates: AXCalendarDisabledDates;\n  @Input()\n  public get disabledDates(): AXCalendarDisabledDates {\n    return this._disabledDates;\n  }\n  public set disabledDates(v: AXCalendarDisabledDates) {\n    this.setOption({ name: 'disabledDates', value: v });\n  }\n\n  @Output()\n  holidayDatesChange: EventEmitter<AXCalendarHolidayDates> = new EventEmitter<AXCalendarHolidayDates>();\n\n  private _holidayDates: AXCalendarHolidayDates;\n  @Input()\n  public get holidayDates(): AXCalendarHolidayDates {\n    return this._holidayDates;\n  }\n  public set holidayDates(v: AXCalendarHolidayDates) {\n    this.setOption({ name: 'holidayDates', value: v });\n  }\n\n  render(): void {}\n}\n\nexport const CALENDAR_INPUTS = ['depth', 'activeView', 'min', 'max', 'disabledDates', 'type', 'holidayDates'];\nexport const CALENDAR_OUTPUTS = ['depthChange', 'typeChange', 'disabledDatesChange', 'holidayDatesChange', 'onNavigate'];\n","import {\n  AXClickEvent,\n  AXRippleDirective,\n  AXValuableComponent,\n  MXComponentOptionChanged,\n  MXInteractiveComponent,\n  MXValueComponent,\n} from '@acorex/components/common';\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core/date-time';\nimport { ChangeDetectionStrategy, Component, forwardRef, HostBinding, HostListener, ViewEncapsulation } from '@angular/core';\n\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AsyncPipe, isPlatformBrowser, NgClass, NgFor, NgTemplateOutlet } from '@angular/common';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXCalendarView, AXCalendarViewSlot, AXCalendarViewType, MXCalendarBaseComponent } from './calendar.class';\n\n/**\n * A calendar component that provides a customizable calendar view with various options for selection, navigation, and styling.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-calendar',\n  templateUrl: './calendar.component.html',\n  styleUrls: ['./calendar.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  inputs: [\n    'rtl',\n    'readonly',\n    'value',\n    'name',\n    'disabled',\n    'depth',\n    'activeView',\n    'minValue',\n    'maxValue',\n    'disabledDates',\n    'holidayDates',\n    'type',\n    'cellTemplate',\n    'cellClass',\n    'showNavigation',\n    'count',\n    'name',\n    'id',\n  ],\n  outputs: [\n    'onOptionChanged',\n    'valueChange',\n    'onValueChanged',\n    'minValueChange',\n    'maxValueChange',\n    'onBlur',\n    'onFocus',\n    'depthChange',\n    'typeChange',\n    'activeViewChange',\n    'disabledDatesChange',\n    'holidayDatesChange',\n    'onNavigate',\n    'onSlotClick',\n    'countChange',\n  ],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AXCalendarComponent),\n      multi: true,\n    },\n    {\n      provide: AXValuableComponent,\n      useExisting: AXCalendarComponent,\n    },\n    AXUnsubscriber,\n  ],\n  imports: [NgClass, NgTemplateOutlet, NgFor, AXRippleDirective, AsyncPipe, AXTranslatorPipe],\n})\nexport class AXCalendarComponent extends classes(MXValueComponent<Date | null>, MXInteractiveComponent, MXCalendarBaseComponent) {\n  public get displayRange(): AXDateTimeRange {\n    return new AXDateTimeRange(this.views[0].range.startTime, this.views[this.views.length - 1].range.endTime);\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _today = this.calendarService.create(new Date(), this.type);\n\n  /**\n   *  @ignore\n   */\n  private _viewStartDate!: AXDateTime;\n\n  /**\n   *  @ignore\n   */\n  private _navUserInteraction = false;\n\n  /**\n   *  @ignore\n   */\n  private _footPrint = {\n    year: null,\n    month: null,\n    day: null,\n  };\n\n  /**\n   *  @ignore\n   */\n  protected views: AXCalendarView[] = [];\n\n  /**\n   *  @ignore\n   */\n  protected _weekdays: number[] = [];\n\n  /**\n   *  @ignore\n   */\n  private _initValues() {\n    this._today = this.calendarService.create(new Date(), this.type);\n    this._weekdays = this._today.calendar.weekdays;\n  }\n\n  /**\n   *  @ignore\n   */\n  private _refresh() {\n    this._initValues();\n    this.navTo(this.value || this._today);\n  }\n\n  /**\n   *  @ignore\n   */\n  constructor(unsubscriber: AXUnsubscriber) {\n    super();\n    this.calendarService.onHolidaysChanged.pipe(unsubscriber.takeUntilDestroy).subscribe(() => {\n      this.render();\n    });\n    this.calendarService.calendarChanges$.pipe(unsubscriber.takeUntilDestroy).subscribe(() => {\n      this._refresh();\n    });\n  }\n\n  /**\n   *  @ignore\n   */\n  protected override ngOnInit() {\n    super.ngOnInit();\n    this._initValues();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected ngAfterViewInit(): void {\n    if (!this.value) {\n      this.goToday();\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  override render() {\n    if (!this._viewStartDate) return;\n    const applyCellClass = (slot: AXCalendarViewSlot, cellClass: any = this.cellClass) => {\n      switch (typeof cellClass) {\n        case 'string':\n          cellClass.split(' ').forEach((c) => (slot.cssClass[c] = true));\n          break;\n        case 'object':\n          Object.assign(slot.cssClass, cellClass);\n          break;\n        case 'function':\n          applyCellClass(slot, cellClass(slot.date));\n          break;\n      }\n    };\n    this.views = [];\n    for (let i = 0; i < this.count; i++) {\n      switch (this.activeView) {\n        case 'day':\n          this.dayView(i, applyCellClass);\n          break;\n        case 'month':\n          this.monthView(i, applyCellClass);\n          break;\n        case 'year':\n          this.yearView(i, applyCellClass);\n          break;\n      }\n    }\n    this.cdr.markForCheck();\n  }\n\n  /**\n   *  @ignore\n   */\n  private _setDisplayRange(current: AXDateTime): AXDateTimeRange {\n    switch (this.activeView) {\n      case 'year': {\n        const y = current.startOf('year').year;\n        const min = y - (y % 10);\n        const max = min + 9;\n        return new AXDateTimeRange(\n          this.calendarService.create(\n            {\n              year: min,\n              month: 1,\n              date: 1,\n            },\n            this.type,\n          ),\n          this.calendarService.create(\n            {\n              year: max,\n              month: 12,\n              date: 28,\n            },\n            this.type,\n          ),\n        );\n      }\n      case 'month':\n        return new AXDateTimeRange(current.startOf('year'), current.endOf('year').add('day', -1));\n      default:\n        return new AXDateTimeRange(current.startOf('month'), current.endOf('month'));\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  private dayView(i: number, applyCellClass: any) {\n    const current = this._viewStartDate.add('month', i);\n    const view: AXCalendarView = {\n      range: this._setDisplayRange(current),\n      slots: [],\n    };\n    this.views.push(view);\n    const a = view.range.enumurate('day');\n    view.slots = a.map((d, i) => {\n      const r: any = {};\n      r.date = d;\n      r.text = d.dayOfMonth;\n      r.tooltip = d.format('longDate');\n      r.today = d.equal(this._today, 'day');\n      r.selected = this.value && d.equal(this.value, 'day');\n      r.holiday = this.isHoliday(d) || this.isWeekend(d);\n      r.disabled = (this.minValue && d.compare(this.minValue, 'day') == -1) || (this.maxValue && d.compare(this.maxValue, 'day') == 1) || this.isDisabled(d);\n      //\n      const focused = d.dayOfMonth == this._footPrint.day && d.monthOfYear == this._footPrint.month && d.year == this._footPrint.year;\n      //\n      if (r.disabled) {\n        r.cssClass = {\n          'ax-state-disabled': true,\n        };\n      } else {\n        r.cssClass = {\n          'ax-state-today': r.today,\n          'ax-state-selected': r.selected,\n          'ax-state-holiday': r.holiday,\n          // 'ax-state-focused': focused,\n        };\n      }\n      // ax-col-start-1 ax-col-start-2 ax-col-start-3 ax-col-start-4 ax-col-start-5 ax-col-start-6 ax-col-start-7\n      r.cssClass[`ax-column-start-${view.range.startTime.dayOfWeek}`] = i == 0;\n      if (this.cellClass) applyCellClass(r);\n      return r;\n    });\n  }\n\n  /**\n   *  @ignore\n   */\n  private monthView(i: number, applyCellClass: any) {\n    const current = this._viewStartDate.add('year', i);\n    const view: AXCalendarView = {\n      range: this._setDisplayRange(current),\n      slots: [],\n    };\n    this.views.push(view);\n    const a = view.range.enumurate('month');\n    view.slots = a.map((d, i) => {\n      const r: any = {};\n      r.date = d;\n      r.text = d.format('MMM');\n      r.tooltip = d.format('MMMM YYYY');\n      r.today = d.equal(this._today, 'month');\n      //\n      r.disabled = (this.minValue && d.compare(this.minValue, 'month') == -1) || (this.maxValue && d.compare(this.maxValue, 'month') == 1);\n      //\n      r.selected = this.value && this.depth == 'month' && d.equal(this.value, 'month');\n      //\n      const focused = d.monthOfYear == this._footPrint.month && d.year == this._footPrint.year;\n      //\n      if (r.disabled) {\n        r.cssClass = {\n          'ax-state-disabled': r.disabled,\n        };\n      } else {\n        r.cssClass = {\n          'ax-state-today': r.today,\n          'ax-state-selected': r.selected,\n          'ax-state-focused': focused,\n        };\n      }\n      applyCellClass(r);\n      return r;\n    });\n  }\n\n  /**\n   *  @ignore\n   */\n  private yearView(i: number, applyCellClass: any) {\n    const current = this._viewStartDate.add('year', i * 10);\n    const view: AXCalendarView = {\n      range: this._setDisplayRange(current),\n      slots: [],\n    };\n    this.views.push(view);\n    const a = view.range.enumurate('year');\n\n    view.slots = a.map((d, i) => {\n      const r: any = {};\n      r.date = d;\n      r.text = d.format('YYYY');\n      r.tooltip = d.format('YYYY');\n      r.today = d.equal(this._today, 'year');\n      r.selected = this.value && this.depth == 'year' && d.equal(this.value, 'year');\n      //\n      const focused = d.year == this._footPrint.year;\n      //\n      r.disabled = (this.minValue && d.compare(this.minValue, 'year') == -1) || (this.maxValue && d.compare(this.maxValue, 'year') == 1);\n      //\n      if (r.disabled) {\n        r.cssClass = {\n          'ax-state-disabled': r.disabled,\n        };\n      } else {\n        r.cssClass = {\n          'ax-state-today': r.today,\n          'ax-state-selected': r.selected,\n          'ax-state-focused': focused,\n        };\n      }\n      applyCellClass(r);\n      return r;\n    });\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _handlePrevClick() {\n    this._navUserInteraction = true;\n    this.prev();\n    this._navUserInteraction = false;\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _handleNextClick() {\n    this._navUserInteraction = true;\n    this.next();\n    this._navUserInteraction = false;\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _handleSlotClick(e: MouseEvent, slot: AXCalendarViewSlot) {\n    if (slot.disabled || this.disabled) return;\n    //\n    this.onSlotClick.emit({\n      component: this,\n      item: slot.date.date,\n      isUserInteraction: true,\n      nativeEvent: e,\n    });\n    //\n    if (this.activeView == 'day') {\n      this._setDate(slot.date.date);\n    } else if (this.activeView == 'month' && this.depth == 'day') {\n      this.activeView = 'day';\n      this._footPrint.month = this.calendarService.create(slot.date.date, this.type).monthOfYear;\n      this.navTo(slot.date);\n    } else if (this.activeView == 'month' && this.depth == 'month') {\n      this._setDate(slot.date.date);\n    } else if (this.activeView == 'year' && (this.depth == 'day' || this.depth == 'month')) {\n      this.activeView = 'month';\n      this._footPrint.year = this.calendarService.create(slot.date.date, this.type).year;\n      this.navTo(slot.date);\n    } else if (this.activeView == 'year' && this.depth == 'year') {\n      this._setDate(slot.date.date);\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _handleNavClick(e: AXClickEvent | any, view: AXCalendarViewType) {\n    this._navUserInteraction = true;\n    this.activeView = view;\n    this._navUserInteraction = false;\n  }\n\n  public toggleView() {\n    if (this.activeView == 'day') this.activeView = 'month';\n    else if (this.activeView == 'month') this.activeView = 'year';\n  }\n\n  /**\n   *  @ignore\n   */\n  protected override internalOptionChanged(e: MXComponentOptionChanged) {\n    if (e.name == 'depth' || e.name == 'activeView' || e.name == 'disabledDates' || e.name == 'holidayDates') {\n      this.render();\n    }\n    if (e.name == 'type') {\n      this._refresh();\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected override internalSetValue(value: Date): Date | null {\n    if (!value) return null;\n    const v = this.calendarService.convert(value);\n    const isDisabled = this.isDisabled(v);\n    if (isDisabled) return null;\n    else return v.date;\n  }\n\n  /**\n   *  @ignore\n   */\n  protected override internalValueChanged(value?: Date) {\n    const val = this.calendarService.create(value, this.type);\n    if (\n      !this._viewStartDate ||\n      val.compare(this.displayRange.startTime, this.activeView) == -1 ||\n      val.compare(this.displayRange.endTime, this.activeView) == 1\n    ) {\n      this._viewStartDate = this.calendarService.create(value, this.type);\n    }\n    this._footPrint.year = val.year;\n    this._footPrint.month = val.monthOfYear;\n    this._footPrint.day = val.dayOfMonth;\n\n    if (isPlatformBrowser(this.platformID)) {\n      const calendarSlots = Array.from(this.getHostElement().querySelectorAll('.ax-calendar-slot'));\n      const selectedSlot = this.getHostElement().querySelector('.ax-state-selected');\n      if (selectedSlot) {\n        selectedSlot.classList.remove('ax-state-selected');\n      } else {\n        this.render();\n      }\n      calendarSlots.forEach((element) => {\n        element = element as HTMLElement;\n        if (element.textContent == this._footPrint.day) {\n          element.classList.add('ax-state-selected');\n        }\n      });\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _handleGoToday() {\n    this._navUserInteraction = true;\n    this._setDate(this._today.date);\n    this.goToday();\n    this._navUserInteraction = false;\n  }\n\n  /**\n   * Navigates to the next item.\n   * @ignore\n   */\n  next() {\n    this._navNextPrev(false);\n  }\n\n  /**\n   * Navigates to the previous item.\n   * @ignore\n   */\n  prev() {\n    this._navNextPrev(true);\n  }\n\n  /**\n   * Sets focus to the currently selected calendar slot or the first available slot.\n   * @ignore\n   */\n  override focus() {\n    const func = (s: string) => this.getHostElement().querySelector<HTMLDivElement>(s);\n    const div = func('.ax-calendar-slots>div.ax-state-selected') || func('.ax-calendar-slots>div');\n    div?.focus();\n  }\n\n  /**\n   *  @ignore\n   */\n  private _navNextPrev(prev: boolean) {\n    const sign = prev ? -1 : 1;\n    if (this.activeView == 'day') this.navTo(this._viewStartDate.add('month', sign * 1 * this.count));\n    else if (this.activeView == 'month') this.navTo(this._viewStartDate.add('year', sign * 1 * this.count));\n    else this.navTo(this._viewStartDate.add('year', sign * 10 * this.count));\n  }\n\n  /**\n   * Navigates to the current date.\n   * @ignore\n   */\n  goToday() {\n    this.navTo(this._today);\n  }\n\n  /**\n   * Navigates to a specified date and updates the view.\n   *\n   * @param date - The date to navigate to, which can be a `Date` object or an `AXDateTime` instance.\n   * @ignore\n   */\n  navTo(date: Date | AXDateTime) {\n    const val = this.calendarService.convert(date, this.type);\n    this._viewStartDate = val.startOf();\n    this.render();\n    //to make sure its rendred and displayRange is not null\n    if (this.views.length > 0) {\n      const vr = this.displayRange;\n      this.onNavigate.emit({\n        component: this,\n        isUserInteraction: this._navUserInteraction,\n        start: vr.startTime?.date,\n        end: vr.endTime?.date,\n        htmlElement: this.getHostElement(),\n      });\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  @HostBinding('class')\n  private get __hostClass(): string {\n    const _classes = {\n      'ax-state-disabled': this.disabled,\n      'ax-state-readonly': this.readonly,\n    };\n    return Object.entries(_classes)\n      .filter((c) => c[1])\n      .map((c) => c[0])\n      .join(' ');\n  }\n\n  /**\n   *  @ignore\n   */\n  private _setDate(value: Date) {\n    if (this.readonly || this.disabled) return;\n    this.commitValue(this.calendarService.convert(value, this.type).startOf().date, true);\n  }\n\n  /**\n   *  @ignore\n   */\n  protected isDisabled(date: AXDateTime): boolean {\n    if (Array.isArray(this.disabledDates) && this.disabledDates.length != 0) {\n      return this.disabledDates.some((d) => date.equal(d, 'day'));\n    } else if (typeof this.disabledDates == 'function') {\n      return this.disabledDates(date.date);\n    }\n    return false;\n  }\n\n  /**\n   *  @ignore\n   */\n  protected isHoliday(date: AXDateTime): boolean {\n    const gh = this.calendarService.holidays.some((d) => date.equal(d.date, 'day'));\n    let dh = this.calendarService.holidays.some((d) => date.equal(d.date, 'day'));\n    if (Array.isArray(this.holidayDates) && this.holidayDates.length != 0) {\n      dh = this.holidayDates.some((d) => date.equal(d, 'day'));\n    } else if (typeof this.holidayDates == 'function') {\n      dh = this.holidayDates(date.date);\n    }\n    return gh || dh;\n  }\n\n  /**\n   *  @ignore\n   */\n  protected isWeekend(date: AXDateTime): boolean {\n    const weekend = this.calendarService.resolveCalendar(this.type).weekend;\n    return weekend.includes(date.dayOfWeek - 1);\n  }\n\n  /**\n   *  @ignore\n   */\n  @HostListener('keydown', ['$event'])\n  _handleOnKeydownEvent(e: KeyboardEvent) {\n    //TODO: complete keyboad navigation\n    const ignore = () => {\n      e.preventDefault();\n      e.stopPropagation();\n    };\n    if (e.code === 'ArrowRight' || e.code === 'ArrowLeft') {\n      if (e.ctrlKey) {\n        e.code === 'ArrowRight' ? this.next() : this.prev();\n        setTimeout(() => {\n          this.focus();\n        }, 50);\n      }\n      ignore();\n    } else if (e.code === 'ArrowUp' || e.code === 'ArrowDown') {\n      if (e.ctrlKey) {\n        e.code === 'ArrowUp' ? this.next() : this.prev();\n        setTimeout(() => {\n          this.focus();\n        }, 50);\n      }\n      ignore();\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected getMonthName(date: AXDateTime, style: 'short' | 'long') {\n    return `dateTime.months.${date.calendar.name()}.${style}.${date.monthOfYear - 1}`;\n  }\n}\n","<ng-content select=\"ax-header\"></ng-content>\n<div class=\"ax-calendar-body\">\n  @for (v of views; let i = $index, first = $first, last = $last; track i) {\n    @switch (activeView) {\n      @case ('year') {\n        @if (showNavigation) {\n          <div class=\"ax-calendar-view-header\">\n            <div class=\"ax-calendar-header-info\">\n              <button\n                type=\"button\"\n                [attr.disabled]=\"disabled ? '' : null\"\n                [attr.readonly]=\"readonly ? '' : null\"\n                class=\"ax-general-button ax-button-rounded ax-state-disabled\"\n                (click)=\"_handleNavClick($event, 'year')\"\n              >\n                {{ v.range.startTime.format('YYYY') }} - {{ v.range.endTime.format('YYYY') }}\n              </button>\n            </div>\n            @if (last) {\n              <div class=\"ax-calendar-header-buttons\">\n                <button\n                  type=\"button\"\n                  [attr.disabled]=\"disabled ? '' : null\"\n                  [attr.readonly]=\"readonly ? '' : null\"\n                  class=\"ax-general-button ax-button-rounded ax-button-icon ax-next\"\n                  (click)=\"_handlePrevClick()\"\n                  [title]=\"'prev' | translate | async\"\n                >\n                  <i class=\"ax-icon ax-icon-chevron-left\"></i>\n                </button>\n                <button\n                  type=\"button\"\n                  [attr.disabled]=\"disabled ? '' : null\"\n                  [attr.readonly]=\"readonly ? '' : null\"\n                  class=\"ax-general-button ax-button-rounded ax-button-icon\"\n                  (click)=\"_handleNextClick()\"\n                  [title]=\"'next' | translate | async\"\n                >\n                  <i class=\"ax-icon ax-icon-chevron-right\"></i>\n                </button>\n              </div>\n            }\n          </div>\n        }\n        <div class=\"ax-calendar-slots ax-calendar-slots-year\" [ngClass]=\"{ 'ax-default': !cellTemplate }\">\n          @for (slot of v.slots; track slot.text) {\n            <button\n              tabindex=\"0\"\n              class=\"ax-calendar-slot\"\n              [class.ax-state-disabled]=\"disabled\"\n              [ngClass]=\"slot.cssClass\"\n              (click)=\"_handleSlotClick($event, slot)\"\n            >\n              @if (cellTemplate) {\n                <div>\n                  <ng-container *ngTemplateOutlet=\"cellTemplate; context: { $implicit: { slot: slot } }\">\n                  </ng-container>\n                </div>\n              } @else {\n                <div [title]=\"slot.tooltip\">\n                  {{ slot.text }}\n                </div>\n              }\n            </button>\n          }\n        </div>\n      }\n      @case ('month') {\n        @if (showNavigation) {\n          <div class=\"ax-calendar-view-header\">\n            <div class=\"ax-calendar-header-info\">\n              <button\n                type=\"button\"\n                [attr.disabled]=\"disabled ? '' : null\"\n                [attr.readonly]=\"readonly ? '' : null\"\n                class=\"ax-general-button ax-button-rounded\"\n                (click)=\"_handleNavClick($event, 'year')\"\n              >\n                {{ v.range.startTime.format('YYYY') }}\n              </button>\n            </div>\n            @if (last) {\n              <div class=\"ax-calendar-header-buttons\">\n                <button\n                  type=\"button\"\n                  [attr.disabled]=\"disabled ? '' : null\"\n                  [attr.readonly]=\"readonly ? '' : null\"\n                  class=\"ax-general-button ax-button-rounded ax-button-icon\"\n                  (click)=\"_handlePrevClick()\"\n                  [title]=\"'prev' | translate | async\"\n                >\n                  <i class=\"ax-icon ax-icon-chevron-left\"></i>\n                </button>\n                <button\n                  type=\"button\"\n                  [attr.disabled]=\"disabled ? '' : null\"\n                  [attr.readonly]=\"readonly ? '' : null\"\n                  class=\"ax-general-button ax-button-rounded ax-button-icon\"\n                  (click)=\"_handleNextClick()\"\n                  [title]=\"'next' | translate | async\"\n                >\n                  <i class=\"ax-icon ax-icon-chevron-right\"></i>\n                </button>\n              </div>\n            }\n          </div>\n        }\n        <div class=\"ax-calendar-slots ax-calendar-slots-month\" [ngClass]=\"{ 'ax-default': !cellTemplate }\">\n          <button\n            tabindex=\"0\"\n            *ngFor=\"let slot of v.slots\"\n            class=\"ax-calendar-slot\"\n            [class.ax-state-disabled]=\"disabled\"\n            [ngClass]=\"slot.cssClass\"\n            (click)=\"_handleSlotClick($event, slot)\"\n          >\n            @if (cellTemplate) {\n              <div>\n                <ng-container *ngTemplateOutlet=\"cellTemplate; context: { $implicit: { slot: slot } }\">\n                </ng-container>\n              </div>\n            } @else {\n              <div [title]=\"slot.tooltip\">\n                {{ getMonthName(slot.date, 'short') | translate | async }}\n              </div>\n            }\n          </button>\n        </div>\n      }\n      @default {\n        @if (showNavigation) {\n          <div class=\"ax-calendar-view-header\">\n            <div class=\"ax-calendar-header-info\">\n              <button\n                type=\"button\"\n                [attr.disabled]=\"disabled ? '' : null\"\n                [attr.readonly]=\"readonly ? '' : null\"\n                class=\"ax-general-button ax-button-rounded\"\n                (click)=\"_handleNavClick($event, 'year')\"\n              >\n                {{ v.range.startTime.format('YYYY') }}\n              </button>\n              <button\n                type=\"button\"\n                [attr.disabled]=\"disabled ? '' : null\"\n                [attr.readonly]=\"readonly ? '' : null\"\n                class=\"ax-general-button ax-button-rounded\"\n                (click)=\"_handleNavClick($event, 'month')\"\n              >\n                {{ getMonthName(v.range.startTime, 'long') | translate | async }}\n              </button>\n            </div>\n            @if (last) {\n              <div class=\"ax-calendar-header-buttons\">\n                <button\n                  type=\"button\"\n                  [attr.disabled]=\"disabled ? '' : null\"\n                  [attr.readonly]=\"readonly ? '' : null\"\n                  class=\"ax-general-button ax-button-rounded ax-button-icon\"\n                  (click)=\"_handlePrevClick()\"\n                  [title]=\"'prev' | translate | async\"\n                >\n                  <i class=\"ax-icon ax-icon-chevron-left\"></i>\n                </button>\n                <button\n                  type=\"button\"\n                  [attr.disabled]=\"disabled ? '' : null\"\n                  [attr.readonly]=\"readonly ? '' : null\"\n                  class=\"ax-general-button ax-button-rounded ax-button-icon\"\n                  (click)=\"_handleNextClick()\"\n                  [title]=\"'next' | translate | async\"\n                >\n                  <i class=\"ax-icon ax-icon-chevron-right\"></i>\n                </button>\n              </div>\n            }\n          </div>\n        }\n        <div class=\"ax-calendar-week\">\n          <div *ngFor=\"let d of _weekdays\">{{ 'dateTime.weekdays.short.' + d | translate | async }}</div>\n        </div>\n        <div class=\"ax-calendar-slots ax-calendar-slots-day\" [ngClass]=\"{ 'ax-default': !cellTemplate }\">\n          <ng-container *ngFor=\"let slot of v.slots\">\n            <button\n              tabindex=\"0\"\n              class=\"ax-calendar-slot\"\n              [ngClass]=\"slot.cssClass\"\n              [class.ax-state-disabled]=\"disabled\"\n              (click)=\"_handleSlotClick($event, slot)\"\n              [disabled]=\"disabled\"\n              [axRipple]\n            >\n              @if (cellTemplate) {\n                <div>\n                  <ng-container *ngTemplateOutlet=\"cellTemplate; context: { $implicit: { slot: slot } }\">\n                  </ng-container>\n                </div>\n              } @else {\n                <div [title]=\"slot.tooltip\">\n                  {{ slot.text }}\n                </div>\n              }\n            </button>\n          </ng-container>\n        </div>\n      }\n    }\n  }\n</div>\n<ng-content select=\"ax-footer\"></ng-content>\n","import { AXRange, AXValuableComponent, MXInteractiveComponent, MXValueComponent } from '@acorex/components/common';\nimport { AXCalendarService, AXDateTime } from '@acorex/core/date-time';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { NgClass } from '@angular/common';\nimport { AfterViewInit, Component, ViewChild, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXCalendarSlotClick, MXCalendarBaseComponent } from './calendar.class';\nimport { AXCalendarComponent } from './calendar.component';\n\n@Component({\n  selector: 'ax-calendar-range',\n  templateUrl: 'calendar-range.component.html',\n  styleUrls: ['calendar-range.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  inputs: [\n    'rtl',\n    'readonly',\n    'value',\n    'name',\n    'disabled',\n    'depth',\n    'activeView',\n    'minValue',\n    'maxValue',\n    'disabledDates',\n    'holidayDates',\n    'type',\n    'cellTemplate',\n    'cellClass',\n    'showNavigation',\n  ],\n  outputs: [\n    'onOptionChanged',\n    'valueChange',\n    'onValueChanged',\n    'onBlur',\n    'onFocus',\n    'depthChange',\n    'typeChange',\n    'activeViewChange',\n    'disabledDatesChange',\n    'holidayDatesChange',\n    'onNavigate',\n    'onSlotClick',\n  ],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AXCalendarRangeComponent),\n      multi: true,\n    },\n    {\n      provide: AXValuableComponent,\n      useExisting: AXCalendarRangeComponent,\n    },\n  ],\n  imports: [NgClass, AXCalendarComponent],\n})\nexport class AXCalendarRangeComponent\n  extends classes(MXValueComponent<AXRange<Date>>, MXInteractiveComponent, MXCalendarBaseComponent)\n  implements AfterViewInit\n{\n  /**\n   *  @ignore\n   */\n  private _calendarService: AXCalendarService = inject(AXCalendarService);\n\n  @ViewChild('c1', { static: true })\n  private _c1: AXCalendarComponent;\n\n  @ViewChild('c2', { static: true })\n  private _c2: AXCalendarComponent;\n\n  _navText = '';\n\n  /**\n   *  @ignore\n   */\n  protected rtl!: boolean;\n\n  /**\n   *  @ignore\n   */\n  constructor() {\n    super();\n    this.defaultValue = { from: null, end: null };\n  }\n\n  /**\n   *  @ignore\n   */\n  protected override ngOnInit(): void {\n    super.ngOnInit();\n    this.rtl = AXHtmlUtil.isRtl(this.getHostElement());\n  }\n\n  /**\n   *  @ignore\n   */\n  ngAfterViewInit(): void {\n    this._syncNav1();\n  }\n\n  override internalValueChanged(value: any) {\n    this._c1.render();\n    this._c2.render();\n  }\n\n  /** w\n   *  @ignore\n   */\n  getCellClass = (date: AXDateTime) => {\n    //const d = this._calendarService.create(date, this.type);\n    const from = this._calendarService.create(this.value.from, this.type);\n    const end = this._calendarService.create(this.value.end, this.type);\n    if (this.value.from && date.equal(from, 'day')) {\n      return 'ax-range-start';\n    }\n    if (this.value.end && date.equal(end, 'day')) return 'ax-range-end';\n    if (this.value.from && this.value.end && date.compare(from, 'day') > 0 && date.compare(end, 'day') < 0) return 'ax-range-between';\n    return null;\n  };\n\n  /**\n   *  @ignore\n   */\n  protected handleSlotClick(e: AXCalendarSlotClick) {\n    if (this._c1.activeView == this.depth) {\n      if (!this.value.from || (this.value.from && this.value.end)) {\n        this.value.from = e.item;\n        this.value.end = null;\n      }\n      if (this.value.from && e.item <= this.value.from) {\n        this.value.from = e.item;\n      } else if (this.value.from && !this.value.end) {\n        this.value.end = e.item;\n      }\n    } else {\n      if (e.component == this._c1) {\n        this._syncNav1();\n      }\n      if (e.component == this._c2) {\n        this._syncNav2(this._calendarService.create(e.item, this.type));\n      }\n    }\n    this._c1.render();\n    this._c2.render();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected handlePrevClick() {\n    const view = this._c1.activeView;\n    const d1 = this._c1.displayRange.startTime;\n    if (view == 'day' || view == 'month') {\n      this._c1.prev();\n    } else if (view == 'year') {\n      this._c1.navTo(d1.add('year', -20));\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected handleNextClick() {\n    const view = this._c1.activeView;\n    const d1 = this._c1.displayRange.startTime;\n    if (view == 'day' || view == 'month') {\n      this._c1.next();\n    } else if (view == 'year') {\n      this._c1.navTo(d1.add('year', 20));\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected handleNavClick() {\n    this._c1.toggleView();\n  }\n\n  /**\n   *  @ignore\n   */\n  private _syncNavText() {\n    const view = this._c1.activeView;\n    const d1 = this._c1.displayRange.startTime;\n    if (view == 'day') {\n      const d2 = this._c2.displayRange.endTime;\n      this._navText = `${d1.format('MMM yyyy')} - ${d2.format('MMM yyyy')}`;\n    } else if (view == 'month') {\n      const d2 = this._c2.displayRange.endTime;\n      this._navText = `${d1.format('yyyy')} - ${d2.format('yyyy')}`;\n    } else if (view == 'year') {\n      const d2 = this._c2.displayRange.endTime;\n      this._navText = `${d1.format('yyyy')} - ${d2.format('yyyy')}`;\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected handleNavigate() {\n    this._syncNav1();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected handleActiveViewChange1() {\n    this._c2.activeView = this._c1.activeView;\n    this._syncNav1();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected handleActiveViewChange2() {\n    if (this._c2.activeView != this._c1.activeView) {\n      this._c1.activeView = this._c2.activeView;\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  private _syncNav1() {\n    const view = (this._c2.activeView = this._c1.activeView);\n    const range = this._c1.displayRange;\n    if (view == 'day') {\n      this._c2.navTo(range.startTime.add('month', 1));\n    } else if (view == 'month') {\n      this._c2.navTo(range.startTime.add('year', 1));\n    } else if (view == 'year') {\n      this._c2.navTo(range.endTime.add('year', 4));\n    }\n    this._syncNavText();\n  }\n\n  /**\n   *  @ignore\n   */\n  private _syncNav2(e: AXDateTime) {\n    const view = this._c2.activeView;\n    if (view == 'month') {\n      this._c1.navTo(e.add('month', -1));\n    } else if (view == 'year') {\n      this._c1.navTo(e.startOf('year'));\n    }\n  }\n}\n","<div class=\"ax-calendar-range-header\">\n    <ng-content></ng-content>\n    <div class=\"ax-calendar-header-range-info\">\n        <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button\"\n            (click)=\"handleNavClick()\">\n            {{ _navText }}\n        </button>\n    </div>\n    <div class=\"ax-calendar-header-range-buttons\">\n        <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n            (click)=\"handlePrevClick()\">\n            <i class=\"ax-icon\" [ngClass]=\"{\n                'ax-icon-chevron-left': !rtl,\n                'ax-icon-chevron-right': rtl\n              }\"></i>\n        </button>\n        <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n            (click)=\"handleNextClick()\">\n            <i class=\"ax-icon\" [ngClass]=\"{\n                'ax-icon-chevron-left': rtl,\n                'ax-icon-chevron-right': !rtl\n              }\"></i>\n        </button>\n    </div>\n</div>\n<div class=\"ax-calendar-range-body\">\n    <ax-calendar #c1 [showNavigation]=\"false\" [readonly]=\"true\" [cellClass]=\"getCellClass\" [type]=\"type\"\n        [cellTemplate]=\"cellTemplate\" [minValue]=\"minValue\" [maxValue]=\"maxValue\" [depth]=\"depth\"\n        (onSlotClick)=\"handleSlotClick($event)\" (onNavigate)=\"handleNavigate()\"\n        (activeViewChange)=\"handleActiveViewChange1()\">\n    </ax-calendar>\n    <ax-calendar #c2 [showNavigation]=\"false\" [readonly]=\"true\" [cellClass]=\"getCellClass\" [type]=\"type\"\n        [cellTemplate]=\"cellTemplate\" [minValue]=\"minValue\" [maxValue]=\"maxValue\" [depth]=\"depth\"\n        (onSlotClick)=\"handleSlotClick($event)\" (activeViewChange)=\"handleActiveViewChange2()\">\n    </ax-calendar>\n</div>","import { AXRippleDirective } from '@acorex/components/common';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXCalendarRangeComponent } from './calendar-range.component';\nimport { AXCalendarComponent } from './calendar.component';\n\nconst COMPONENT = [AXCalendarComponent, AXCalendarRangeComponent];\nconst MODULES = [CommonModule, AXDateTimeModule, AXTranslationModule, AXTooltipModule, AXRippleDirective];\n\n@NgModule({\n  imports: [...MODULES, ...COMPONENT],\n  exports: [...COMPONENT],\n  providers: [],\n})\nexport class AXCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"acorex-components-calendar.mjs","sources":["../../../../libs/components/calendar/src/lib/calendar.class.ts","../../../../libs/components/calendar/src/lib/calendar.component.ts","../../../../libs/components/calendar/src/lib/calendar.component.html","../../../../libs/components/calendar/src/lib/calendar-range.component.ts","../../../../libs/components/calendar/src/lib/calendar-range.component.html","../../../../libs/components/calendar/src/lib/calendar.module.ts","../../../../libs/components/calendar/src/acorex-components-calendar.ts"],"sourcesContent":["import { AXItemClickEvent, AXRangeChangedEvent, MXBaseComponent } from '@acorex/components/common';\nimport { AXCalendarService, AXDateTime, AXDateTimeRange } from '@acorex/core/date-time';\nimport { AXLocaleService } from '@acorex/core/locale';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { EventEmitter, Injectable, Input, Output, TemplateRef, inject } from '@angular/core';\n\nexport type AXCalendarViewType = 'year' | 'month' | 'day';\nexport type AXCalendarViewDepth = AXCalendarViewType;\nexport type AXCalendarDisabledDates = Date[] | ((date: Date) => boolean);\nexport type AXCalendarHolidayDates = Date[] | ((date: Date) => boolean);\nexport type AXCalendarCellCssClass = string | { [key: string]: boolean } | ((date: Date) => string);\n\nexport type AXDateTimePickerType = 'date' | 'time' | 'datetime';\n\n/**\n *  Contains native event\n * @category Events\n */\nexport class AXCalendarNavigateEvent extends AXRangeChangedEvent<Date> {}\n\n/**\n *  Contains native event\n * @category Events\n */\nexport class AXCalendarSlotClick extends AXItemClickEvent<Date> {}\n\nexport interface AXCalendarViewSlot {\n  date: AXDateTime;\n  text: string;\n  tooltip: string;\n  today: boolean;\n  selected: boolean;\n  disabled: boolean;\n  cssClass: { [key: string]: boolean };\n}\nexport interface AXCalendarView {\n  range: AXDateTimeRange;\n  slots: AXCalendarViewSlot[];\n}\n\n@Injectable()\nexport class MXCalendarBaseComponent extends MXBaseComponent {\n  protected localeService = inject(AXLocaleService);\n  protected calendarService = inject(AXCalendarService);\n  protected translateService = inject(AXTranslationService);\n\n  @Input()\n  interface: 'calendar' | 'picker' = 'calendar';\n\n  @Input()\n  cellTemplate?: TemplateRef<unknown>;\n\n  @Input()\n  cellClass?: AXCalendarCellCssClass;\n\n  @Input()\n  showNavigation = true;\n\n  @Input()\n  count = 1;\n\n  @Output()\n  onSlotClick: EventEmitter<AXCalendarSlotClick> = new EventEmitter<AXCalendarSlotClick>();\n\n  @Output()\n  onNavigate: EventEmitter<AXCalendarNavigateEvent> = new EventEmitter<AXCalendarNavigateEvent>();\n\n  @Output()\n  activeViewChange: EventEmitter<AXCalendarViewType> = new EventEmitter<AXCalendarViewType>();\n\n  private _activeView: AXCalendarViewType = 'day';\n  @Input()\n  public get activeView(): AXCalendarViewType {\n    return this._activeView;\n  }\n  public set activeView(v: AXCalendarViewType) {\n    this.setOption({\n      name: 'activeView',\n      value: v,\n      afterCallback: () => {\n        this.cdr.markForCheck();\n      },\n    });\n  }\n\n  @Output()\n  public typeChange: EventEmitter<string> = new EventEmitter<string>();\n\n  private _type: string;\n\n  /**\n   * @deprecated use calendar input instead\n   */\n  @Input()\n  public get type(): string {\n    return this._type;\n  }\n  public set type(v: string) {\n    this.setOption({\n      name: 'type',\n      value: v,\n      afterCallback: () => {\n        this.cdr.markForCheck();\n      },\n    });\n  }\n\n  @Output()\n  depthChange: EventEmitter<AXCalendarViewDepth> = new EventEmitter<AXCalendarViewDepth>();\n\n  private _depth: AXCalendarViewDepth = 'day';\n  @Input()\n  public get depth(): AXCalendarViewDepth {\n    return this._depth;\n  }\n  public set depth(v: AXCalendarViewDepth) {\n    this.setOption({\n      name: 'depth',\n      value: v,\n      beforeCallback: (o, n) => {\n        this.activeView = v;\n        return n;\n      },\n      afterCallback: () => {\n        this.render();\n      },\n    });\n  }\n\n  @Output()\n  minValueChange: EventEmitter<Date> = new EventEmitter<Date>();\n\n  private _minValue: Date;\n  @Input()\n  public get minValue(): Date {\n    return this._minValue;\n  }\n  public set minValue(v: Date) {\n    this.setOption({\n      name: 'minValue',\n      value: v,\n      afterCallback: () => {\n        this.render();\n      },\n    });\n  }\n\n  @Output()\n  maxValueChange: EventEmitter<Date> = new EventEmitter<Date>();\n\n  private _maxValue: Date;\n  @Input()\n  public get maxValue(): Date {\n    return this._maxValue;\n  }\n  public set maxValue(v: Date) {\n    this.setOption({\n      name: 'maxValue',\n      value: v,\n      afterCallback: () => {\n        this.render();\n      },\n    });\n  }\n\n  @Output()\n  disabledDatesChange: EventEmitter<AXCalendarDisabledDates> = new EventEmitter<AXCalendarDisabledDates>();\n\n  private _disabledDates: AXCalendarDisabledDates;\n  @Input()\n  public get disabledDates(): AXCalendarDisabledDates {\n    return this._disabledDates;\n  }\n  public set disabledDates(v: AXCalendarDisabledDates) {\n    this.setOption({ name: 'disabledDates', value: v });\n  }\n\n  @Output()\n  holidayDatesChange: EventEmitter<AXCalendarHolidayDates> = new EventEmitter<AXCalendarHolidayDates>();\n\n  private _holidayDates: AXCalendarHolidayDates;\n  @Input()\n  public get holidayDates(): AXCalendarHolidayDates {\n    return this._holidayDates;\n  }\n  public set holidayDates(v: AXCalendarHolidayDates) {\n    this.setOption({ name: 'holidayDates', value: v });\n  }\n\n  render(): void {}\n}\n\nexport const CALENDAR_INPUTS = ['depth', 'activeView', 'min', 'max', 'disabledDates', 'type', 'holidayDates'];\nexport const CALENDAR_OUTPUTS = [\n  'depthChange',\n  'typeChange',\n  'disabledDatesChange',\n  'holidayDatesChange',\n  'onNavigate',\n];\n","import {\n  AXClickEvent,\n  AXRippleDirective,\n  AXValuableComponent,\n  MXComponentOptionChanged,\n  MXInteractiveComponent,\n  MXValueComponent,\n} from '@acorex/components/common';\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core/date-time';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  forwardRef,\n  HostBinding,\n  HostListener,\n  inject,\n  linkedSignal,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXFormatModule, AXFormatService } from '@acorex/core/format';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AsyncPipe, isPlatformBrowser, NgClass, NgFor, NgTemplateOutlet } from '@angular/common';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXCalendarView, AXCalendarViewSlot, AXCalendarViewType, MXCalendarBaseComponent } from './calendar.class';\n\n/**\n * A calendar component that provides a customizable calendar view with various options for selection, navigation, and styling.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-calendar',\n  templateUrl: './calendar.component.html',\n  styleUrls: ['./calendar.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  inputs: [\n    'rtl',\n    'readonly',\n    'value',\n    'name',\n    'disabled',\n    'depth',\n    'activeView',\n    'minValue',\n    'maxValue',\n    'disabledDates',\n    'holidayDates',\n    'type',\n    'cellTemplate',\n    'cellClass',\n    'showNavigation',\n    'count',\n    'name',\n    'id',\n  ],\n  outputs: [\n    'onOptionChanged',\n    'valueChange',\n    'onValueChanged',\n    'minValueChange',\n    'maxValueChange',\n    'onBlur',\n    'onFocus',\n    'depthChange',\n    'typeChange',\n    'activeViewChange',\n    'disabledDatesChange',\n    'holidayDatesChange',\n    'onNavigate',\n    'onSlotClick',\n    'countChange',\n  ],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AXCalendarComponent),\n      multi: true,\n    },\n    {\n      provide: AXValuableComponent,\n      useExisting: AXCalendarComponent,\n    },\n    AXUnsubscriber,\n  ],\n  imports: [NgClass, NgTemplateOutlet, NgFor, AXRippleDirective, AsyncPipe, AXTranslatorPipe, AXFormatModule],\n})\nexport class AXCalendarComponent extends classes(\n  MXValueComponent<Date | null>,\n  MXInteractiveComponent,\n  MXCalendarBaseComponent,\n) {\n  private formatService = inject(AXFormatService);\n\n  protected calendar = linkedSignal(() => this.type ?? this.localeService.activeProfile().calendar.system);\n\n  public get displayRange(): AXDateTimeRange {\n    return new AXDateTimeRange(this.views[0].range.startTime, this.views[this.views.length - 1].range.endTime);\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _today = this.calendarService.create(new Date(), this.calendar());\n\n  /**\n   *  @ignore\n   */\n  private _viewStartDate!: AXDateTime;\n\n  /**\n   *  @ignore\n   */\n  private _navUserInteraction = false;\n\n  /**\n   *  @ignore\n   */\n  private _footPrint = {\n    year: null,\n    month: null,\n    day: null,\n  };\n\n  /**\n   *  @ignore\n   */\n  protected views: AXCalendarView[] = [];\n\n  /**\n   *  @ignore\n   */\n  protected _weekdays: number[] = [];\n\n  /**\n   *  @ignore\n   */\n  private _initValues() {\n    this._today = this.calendarService.create(new Date(), this.calendar());\n    this._weekdays = this._today.calendar.weekdays;\n  }\n\n  /**\n   *  @ignore\n   */\n  private _refresh() {\n    this._initValues();\n    this.navTo(this.value || this._today);\n  }\n\n  /**\n   *  @ignore\n   */\n  constructor(unsubscriber: AXUnsubscriber) {\n    super();\n    this.calendarService.onHolidaysChanged.pipe(unsubscriber.takeUntilDestroy).subscribe(() => {\n      this.render();\n    });\n    this.calendarService.calendarChanges$.pipe(unsubscriber.takeUntilDestroy).subscribe((value) => {\n      if (!this.type) this.calendar.set(value.name());\n      this._refresh();\n    });\n\n    this.typeChange.pipe(unsubscriber.takeUntilDestroy).subscribe((value) => {\n      this.calendar.set(value);\n    });\n  }\n\n  /**\n   *  @ignore\n   */\n  protected override ngOnInit() {\n    super.ngOnInit();\n    this._initValues();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected ngAfterViewInit(): void {\n    if (!this.value) {\n      this.goToday();\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  override render() {\n    if (!this._viewStartDate) return;\n    const applyCellClass = (slot: AXCalendarViewSlot, cellClass: any = this.cellClass) => {\n      switch (typeof cellClass) {\n        case 'string':\n          cellClass.split(' ').forEach((c) => (slot.cssClass[c] = true));\n          break;\n        case 'object':\n          Object.assign(slot.cssClass, cellClass);\n          break;\n        case 'function':\n          applyCellClass(slot, cellClass(slot.date));\n          break;\n      }\n    };\n    this.views = [];\n    for (let i = 0; i < this.count; i++) {\n      switch (this.activeView) {\n        case 'day':\n          this.dayView(i, applyCellClass);\n          break;\n        case 'month':\n          this.monthView(i, applyCellClass);\n          break;\n        case 'year':\n          this.yearView(i, applyCellClass);\n          break;\n      }\n    }\n    this.cdr.markForCheck();\n  }\n\n  /**\n   *  @ignore\n   */\n  private _setDisplayRange(current: AXDateTime): AXDateTimeRange {\n    switch (this.activeView) {\n      case 'year': {\n        const y = current.startOf('year').year;\n        const min = y - (y % 10);\n        const max = min + 9;\n        return new AXDateTimeRange(\n          this.calendarService.create(\n            {\n              year: min,\n              month: 1,\n              date: 1,\n            },\n            this.calendar(),\n          ),\n          this.calendarService.create(\n            {\n              year: max,\n              month: 12,\n              date: 28,\n            },\n            this.calendar(),\n          ),\n        );\n      }\n      case 'month':\n        return new AXDateTimeRange(current.startOf('year'), current.endOf('year').add('day', -1));\n      default:\n        return new AXDateTimeRange(current.startOf('month'), current.endOf('month'));\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  private dayView(i: number, applyCellClass: any) {\n    const current = this._viewStartDate.add('month', i);\n    const view: AXCalendarView = {\n      range: this._setDisplayRange(current),\n      slots: [],\n    };\n    this.views.push(view);\n    const a = view.range.enumurate('day');\n    view.slots = a.map((d, i) => {\n      const r: any = {};\n      r.date = d;\n      r.text = d.dayOfMonth;\n      r.today = d.equal(this._today, 'day');\n      r.selected = this.value && d.equal(this.value, 'day');\n      r.holiday = this.isHoliday(d) || this.isWeekend(d);\n      r.disabled =\n        (this.minValue && d.compare(this.minValue, 'day') == -1) ||\n        (this.maxValue && d.compare(this.maxValue, 'day') == 1) ||\n        this.isDisabled(d);\n      //\n      const focused =\n        d.dayOfMonth == this._footPrint.day && d.monthOfYear == this._footPrint.month && d.year == this._footPrint.year;\n      //\n      if (r.disabled) {\n        r.cssClass = {\n          'ax-state-disabled': true,\n        };\n      } else {\n        r.cssClass = {\n          'ax-state-today': r.today,\n          'ax-state-selected': r.selected,\n          'ax-state-holiday': r.holiday,\n          // 'ax-state-focused': focused,\n        };\n      }\n      // ax-col-start-1 ax-col-start-2 ax-col-start-3 ax-col-start-4 ax-col-start-5 ax-col-start-6 ax-col-start-7\n      r.cssClass[`ax-column-start-${view.range.startTime.dayOfWeek}`] = i == 0;\n      if (this.cellClass) applyCellClass(r);\n\n      return r;\n    });\n  }\n\n  /**\n   *  @ignore\n   */\n  private monthView(i: number, applyCellClass: any) {\n    const current = this._viewStartDate.add('year', i);\n    const view: AXCalendarView = {\n      range: this._setDisplayRange(current),\n      slots: [],\n    };\n    this.views.push(view);\n    const a = view.range.enumurate('month');\n    view.slots = a.map((d, i) => {\n      const r: any = {};\n      r.date = d;\n      r.text = this.formatService.format(d, 'date' as any, 'MMM');\n      r.today = d.equal(this._today, 'month');\n      //\n      r.disabled =\n        (this.minValue && d.compare(this.minValue, 'month') == -1) ||\n        (this.maxValue && d.compare(this.maxValue, 'month') == 1);\n      //\n      r.selected = this.value && this.depth == 'month' && d.equal(this.value, 'month');\n      //\n      const focused = d.monthOfYear == this._footPrint.month && d.year == this._footPrint.year;\n      //\n      if (r.disabled) {\n        r.cssClass = {\n          'ax-state-disabled': r.disabled,\n        };\n      } else {\n        r.cssClass = {\n          'ax-state-today': r.today,\n          'ax-state-selected': r.selected,\n          'ax-state-focused': focused,\n        };\n      }\n      applyCellClass(r);\n      return r;\n    });\n  }\n\n  /**\n   *  @ignore\n   */\n  private yearView(i: number, applyCellClass: any) {\n    const current = this._viewStartDate.add('year', i * 10);\n    const view: AXCalendarView = {\n      range: this._setDisplayRange(current),\n      slots: [],\n    };\n    this.views.push(view);\n    const a = view.range.enumurate('year');\n\n    view.slots = a.map((d, i) => {\n      const r: any = {};\n      r.date = d;\n      r.text = this.formatService.format(d, 'date' as any, 'YYYY');\n      r.today = d.equal(this._today, 'year');\n      r.selected = this.value && this.depth == 'year' && d.equal(this.value, 'year');\n      //\n      const focused = d.year == this._footPrint.year;\n      //\n      r.disabled =\n        (this.minValue && d.compare(this.minValue, 'year') == -1) ||\n        (this.maxValue && d.compare(this.maxValue, 'year') == 1);\n      //\n      if (r.disabled) {\n        r.cssClass = {\n          'ax-state-disabled': r.disabled,\n        };\n      } else {\n        r.cssClass = {\n          'ax-state-today': r.today,\n          'ax-state-selected': r.selected,\n          'ax-state-focused': focused,\n        };\n      }\n      applyCellClass(r);\n      return r;\n    });\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _handlePrevClick() {\n    this._navUserInteraction = true;\n    this.prev();\n    this._navUserInteraction = false;\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _handleNextClick() {\n    this._navUserInteraction = true;\n    this.next();\n    this._navUserInteraction = false;\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _handleSlotClick(e: MouseEvent, slot: AXCalendarViewSlot) {\n    if (slot.disabled || this.disabled) return;\n    //\n    this.onSlotClick.emit({\n      component: this,\n      item: slot.date.date,\n      isUserInteraction: true,\n      nativeEvent: e,\n    });\n    //\n    if (this.activeView == 'day') {\n      this._setDate(slot.date.date);\n    } else if (this.activeView == 'month' && this.depth == 'day') {\n      this.activeView = 'day';\n      this._footPrint.month = this.calendarService.create(slot.date.date, this.calendar()).monthOfYear;\n      this.navTo(slot.date);\n    } else if (this.activeView == 'month' && this.depth == 'month') {\n      this._setDate(slot.date.date);\n    } else if (this.activeView == 'year' && (this.depth == 'day' || this.depth == 'month')) {\n      this.activeView = 'month';\n      this._footPrint.year = this.calendarService.create(slot.date.date, this.calendar()).year;\n      this.navTo(slot.date);\n    } else if (this.activeView == 'year' && this.depth == 'year') {\n      this._setDate(slot.date.date);\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _handleNavClick(e: AXClickEvent | any, view: AXCalendarViewType) {\n    this._navUserInteraction = true;\n    this.activeView = view;\n    this._navUserInteraction = false;\n  }\n\n  public toggleView() {\n    if (this.activeView == 'day') this.activeView = 'month';\n    else if (this.activeView == 'month') this.activeView = 'year';\n  }\n\n  /**\n   *  @ignore\n   */\n  protected override internalOptionChanged(e: MXComponentOptionChanged) {\n    if (e.name == 'depth' || e.name == 'activeView' || e.name == 'disabledDates' || e.name == 'holidayDates') {\n      this.render();\n    }\n    if (e.name == 'type') {\n      this._refresh();\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected override internalSetValue(value: Date): Date | null {\n    if (!value) return null;\n    const v = this.calendarService.convert(value);\n    const isDisabled = this.isDisabled(v);\n    if (isDisabled) return null;\n    else return v.date;\n  }\n\n  /**\n   *  @ignore\n   */\n  protected override internalValueChanged(value?: Date) {\n    const val = this.calendarService.create(value, this.calendar());\n    if (\n      !this._viewStartDate ||\n      val.compare(this.displayRange.startTime, this.activeView) == -1 ||\n      val.compare(this.displayRange.endTime, this.activeView) == 1\n    ) {\n      this._viewStartDate = this.calendarService.create(value, this.calendar());\n    }\n    this._footPrint.year = val.year;\n    this._footPrint.month = val.monthOfYear;\n    this._footPrint.day = val.dayOfMonth;\n\n    if (isPlatformBrowser(this.platformID)) {\n      const calendarSlots = Array.from(this.getHostElement().querySelectorAll('.ax-calendar-slot'));\n      const selectedSlot = this.getHostElement().querySelector('.ax-state-selected');\n      if (selectedSlot) {\n        selectedSlot.classList.remove('ax-state-selected');\n      } else {\n        this.render();\n      }\n      calendarSlots.forEach((element) => {\n        element = element as HTMLElement;\n        if (element.textContent == this._footPrint.day) {\n          element.classList.add('ax-state-selected');\n        }\n      });\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _handleGoToday() {\n    this._navUserInteraction = true;\n    this._setDate(this._today.date);\n    this.goToday();\n    this._navUserInteraction = false;\n  }\n\n  /**\n   * Navigates to the next item.\n   * @ignore\n   */\n  next() {\n    this._navNextPrev(false);\n  }\n\n  /**\n   * Navigates to the previous item.\n   * @ignore\n   */\n  prev() {\n    this._navNextPrev(true);\n  }\n\n  /**\n   * Sets focus to the currently selected calendar slot or the first available slot.\n   * @ignore\n   */\n  override focus() {\n    const func = (s: string) => this.getHostElement().querySelector<HTMLDivElement>(s);\n    const div = func('.ax-calendar-slots>div.ax-state-selected') || func('.ax-calendar-slots>div');\n    div?.focus();\n  }\n\n  /**\n   *  @ignore\n   */\n  private _navNextPrev(prev: boolean) {\n    const sign = prev ? -1 : 1;\n    if (this.activeView == 'day') this.navTo(this._viewStartDate.add('month', sign * 1 * this.count));\n    else if (this.activeView == 'month') this.navTo(this._viewStartDate.add('year', sign * 1 * this.count));\n    else this.navTo(this._viewStartDate.add('year', sign * 10 * this.count));\n  }\n\n  /**\n   * Navigates to the current date.\n   * @ignore\n   */\n  goToday() {\n    this.navTo(this._today);\n  }\n\n  /**\n   * Navigates to a specified date and updates the view.\n   *\n   * @param date - The date to navigate to, which can be a `Date` object or an `AXDateTime` instance.\n   * @ignore\n   */\n  navTo(date: Date | AXDateTime) {\n    const val = this.calendarService.convert(date, this.calendar());\n    this._viewStartDate = val.startOf();\n    this.render();\n    //to make sure its rendred and displayRange is not null\n    if (this.views.length > 0) {\n      const vr = this.displayRange;\n      this.onNavigate.emit({\n        component: this,\n        isUserInteraction: this._navUserInteraction,\n        start: vr.startTime?.date,\n        end: vr.endTime?.date,\n        htmlElement: this.getHostElement(),\n      });\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  @HostBinding('class')\n  private get __hostClass(): string {\n    const _classes = {\n      'ax-state-disabled': this.disabled,\n      'ax-state-readonly': this.readonly,\n    };\n    return Object.entries(_classes)\n      .filter((c) => c[1])\n      .map((c) => c[0])\n      .join(' ');\n  }\n\n  /**\n   *  @ignore\n   */\n  private _setDate(value: Date) {\n    if (this.readonly || this.disabled) return;\n    this.commitValue(this.calendarService.convert(value, this.calendar()).startOf().date, true);\n  }\n\n  /**\n   *  @ignore\n   */\n  protected isDisabled(date: AXDateTime): boolean {\n    if (Array.isArray(this.disabledDates) && this.disabledDates.length != 0) {\n      return this.disabledDates.some((d) => date.equal(d, 'day'));\n    } else if (typeof this.disabledDates == 'function') {\n      return this.disabledDates(date.date);\n    }\n    return false;\n  }\n\n  /**\n   *  @ignore\n   */\n  protected isHoliday(date: AXDateTime): boolean {\n    const gh = this.calendarService.holidays.some((d) => date.equal(d.date, 'day'));\n    let dh = this.calendarService.holidays.some((d) => date.equal(d.date, 'day'));\n    if (Array.isArray(this.holidayDates) && this.holidayDates.length != 0) {\n      dh = this.holidayDates.some((d) => date.equal(d, 'day'));\n    } else if (typeof this.holidayDates == 'function') {\n      dh = this.holidayDates(date.date);\n    }\n    return gh || dh;\n  }\n\n  /**\n   *  @ignore\n   */\n  protected isWeekend(date: AXDateTime): boolean {\n    const weekend = this.calendarService.resolveCalendar(this.calendar()).weekend;\n    return weekend.includes(date.dayOfWeek - 1);\n  }\n\n  /**\n   *  @ignore\n   */\n  @HostListener('keydown', ['$event'])\n  _handleOnKeydownEvent(e: KeyboardEvent) {\n    //TODO: complete keyboad navigation\n    const ignore = () => {\n      e.preventDefault();\n      e.stopPropagation();\n    };\n    if (e.code === 'ArrowRight' || e.code === 'ArrowLeft') {\n      if (e.ctrlKey) {\n        e.code === 'ArrowRight' ? this.next() : this.prev();\n        setTimeout(() => {\n          this.focus();\n        }, 50);\n      }\n      ignore();\n    } else if (e.code === 'ArrowUp' || e.code === 'ArrowDown') {\n      if (e.ctrlKey) {\n        e.code === 'ArrowUp' ? this.next() : this.prev();\n        setTimeout(() => {\n          this.focus();\n        }, 50);\n      }\n      ignore();\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected getMonthName(date: AXDateTime, style: 'short' | 'long') {\n    return `dateTime.months.${date.calendar.name()}.${style}.${date.monthOfYear - 1}`;\n  }\n}\n","<ng-content select=\"ax-header\"></ng-content>\n<div class=\"ax-calendar-body\">\n  @for (v of views; let i = $index, first = $first, last = $last; track i) {\n    @switch (activeView) {\n      @case ('year') {\n        @if (showNavigation) {\n          <div class=\"ax-calendar-view-header\">\n            <div class=\"ax-calendar-header-info\">\n              <button\n                type=\"button\"\n                [attr.disabled]=\"disabled ? '' : null\"\n                [attr.readonly]=\"readonly ? '' : null\"\n                class=\"ax-general-button ax-button-rounded ax-state-disabled\"\n                (click)=\"_handleNavClick($event, 'year')\"\n              >\n                {{ v.range.startTime | format: 'date' : { calendar: calendar(), format: 'YYYY' } | async }} -\n                {{ v.range.endTime | format: 'date' : { calendar: calendar(), format: 'YYYY' } | async }}\n              </button>\n            </div>\n            @if (last) {\n              <div class=\"ax-calendar-header-buttons\">\n                <button\n                  type=\"button\"\n                  [attr.disabled]=\"disabled ? '' : null\"\n                  [attr.readonly]=\"readonly ? '' : null\"\n                  class=\"ax-general-button ax-button-rounded ax-button-icon ax-next\"\n                  (click)=\"_handlePrevClick()\"\n                  [title]=\"'prev' | translate | async\"\n                >\n                  <i class=\"ax-icon ax-icon-chevron-left\"></i>\n                </button>\n                <button\n                  type=\"button\"\n                  [attr.disabled]=\"disabled ? '' : null\"\n                  [attr.readonly]=\"readonly ? '' : null\"\n                  class=\"ax-general-button ax-button-rounded ax-button-icon\"\n                  (click)=\"_handleNextClick()\"\n                  [title]=\"'next' | translate | async\"\n                >\n                  <i class=\"ax-icon ax-icon-chevron-right\"></i>\n                </button>\n              </div>\n            }\n          </div>\n        }\n        <div class=\"ax-calendar-slots ax-calendar-slots-year\" [ngClass]=\"{ 'ax-default': !cellTemplate }\">\n          @for (slot of v.slots; track slot.text) {\n            <button\n              tabindex=\"0\"\n              class=\"ax-calendar-slot\"\n              [class.ax-state-disabled]=\"disabled\"\n              [ngClass]=\"slot.cssClass\"\n              (click)=\"_handleSlotClick($event, slot)\"\n            >\n              @if (cellTemplate) {\n                <div>\n                  <ng-container *ngTemplateOutlet=\"cellTemplate; context: { $implicit: { slot: slot } }\">\n                  </ng-container>\n                </div>\n              } @else {\n                <div>\n                  {{ slot.text }}\n                </div>\n              }\n            </button>\n          }\n        </div>\n      }\n      @case ('month') {\n        @if (showNavigation) {\n          <div class=\"ax-calendar-view-header\">\n            <div class=\"ax-calendar-header-info\">\n              <button\n                type=\"button\"\n                [attr.disabled]=\"disabled ? '' : null\"\n                [attr.readonly]=\"readonly ? '' : null\"\n                class=\"ax-general-button ax-button-rounded\"\n                (click)=\"_handleNavClick($event, 'year')\"\n              >\n                {{ v.range.startTime | format: 'date' : { calendar: calendar(), format: 'YYYY' } | async }}\n              </button>\n            </div>\n            @if (last) {\n              <div class=\"ax-calendar-header-buttons\">\n                <button\n                  type=\"button\"\n                  [attr.disabled]=\"disabled ? '' : null\"\n                  [attr.readonly]=\"readonly ? '' : null\"\n                  class=\"ax-general-button ax-button-rounded ax-button-icon\"\n                  (click)=\"_handlePrevClick()\"\n                  [title]=\"'prev' | translate | async\"\n                >\n                  <i class=\"ax-icon ax-icon-chevron-left\"></i>\n                </button>\n                <button\n                  type=\"button\"\n                  [attr.disabled]=\"disabled ? '' : null\"\n                  [attr.readonly]=\"readonly ? '' : null\"\n                  class=\"ax-general-button ax-button-rounded ax-button-icon\"\n                  (click)=\"_handleNextClick()\"\n                  [title]=\"'next' | translate | async\"\n                >\n                  <i class=\"ax-icon ax-icon-chevron-right\"></i>\n                </button>\n              </div>\n            }\n          </div>\n        }\n        <div class=\"ax-calendar-slots ax-calendar-slots-month\" [ngClass]=\"{ 'ax-default': !cellTemplate }\">\n          <button\n            tabindex=\"0\"\n            *ngFor=\"let slot of v.slots\"\n            class=\"ax-calendar-slot\"\n            [class.ax-state-disabled]=\"disabled\"\n            [ngClass]=\"slot.cssClass\"\n            (click)=\"_handleSlotClick($event, slot)\"\n          >\n            @if (cellTemplate) {\n              <div>\n                <ng-container *ngTemplateOutlet=\"cellTemplate; context: { $implicit: { slot: slot } }\"> </ng-container>\n              </div>\n            } @else {\n              <div [title]=\"slot.date | format: 'date' : { calendar: calendar(), format: 'MMMM YYYY' } | async\">\n                {{ getMonthName(slot.date, 'short') | translate | async }}\n              </div>\n            }\n          </button>\n        </div>\n      }\n      @default {\n        @if (showNavigation) {\n          <div class=\"ax-calendar-view-header\">\n            <div class=\"ax-calendar-header-info\">\n              <button\n                type=\"button\"\n                [attr.disabled]=\"disabled ? '' : null\"\n                [attr.readonly]=\"readonly ? '' : null\"\n                class=\"ax-general-button ax-button-rounded\"\n                (click)=\"_handleNavClick($event, 'year')\"\n              >\n                {{ v.range.startTime | format: 'date' : { calendar: calendar(), format: 'YYYY' } | async }}\n              </button>\n              <button\n                type=\"button\"\n                [attr.disabled]=\"disabled ? '' : null\"\n                [attr.readonly]=\"readonly ? '' : null\"\n                class=\"ax-general-button ax-button-rounded\"\n                (click)=\"_handleNavClick($event, 'month')\"\n              >\n                <!-- {{ getMonthName(v.range.startTime, 'long') | translate | async }} -->\n                {{ v.range.startTime | format: 'date' : { calendar: calendar(), format: 'MMMM' } | async }}\n              </button>\n            </div>\n            @if (last) {\n              <div class=\"ax-calendar-header-buttons\">\n                <button\n                  type=\"button\"\n                  [attr.disabled]=\"disabled ? '' : null\"\n                  [attr.readonly]=\"readonly ? '' : null\"\n                  class=\"ax-general-button ax-button-rounded ax-button-icon\"\n                  (click)=\"_handlePrevClick()\"\n                  [title]=\"'prev' | translate | async\"\n                >\n                  <i class=\"ax-icon ax-icon-chevron-left\"></i>\n                </button>\n                <button\n                  type=\"button\"\n                  [attr.disabled]=\"disabled ? '' : null\"\n                  [attr.readonly]=\"readonly ? '' : null\"\n                  class=\"ax-general-button ax-button-rounded ax-button-icon\"\n                  (click)=\"_handleNextClick()\"\n                  [title]=\"'next' | translate | async\"\n                >\n                  <i class=\"ax-icon ax-icon-chevron-right\"></i>\n                </button>\n              </div>\n            }\n          </div>\n        }\n        <div class=\"ax-calendar-week\">\n          <div *ngFor=\"let d of _weekdays\">{{ 'dateTime.weekdays.short.' + d | translate | async }}</div>\n        </div>\n        <div class=\"ax-calendar-slots ax-calendar-slots-day\" [ngClass]=\"{ 'ax-default': !cellTemplate }\">\n          <ng-container *ngFor=\"let slot of v.slots\">\n            <button\n              tabindex=\"0\"\n              class=\"ax-calendar-slot\"\n              [ngClass]=\"slot.cssClass\"\n              [class.ax-state-disabled]=\"disabled\"\n              (click)=\"_handleSlotClick($event, slot)\"\n              [disabled]=\"disabled\"\n              [axRipple]\n            >\n              @if (cellTemplate) {\n                <div>\n                  <ng-container *ngTemplateOutlet=\"cellTemplate; context: { $implicit: { slot: slot } }\">\n                  </ng-container>\n                </div>\n              } @else {\n                <div [title]=\"slot.date | format: 'date' : { calendar: calendar(), format: 'long' } | async\">\n                  {{ slot.text }}\n                </div>\n              }\n            </button>\n          </ng-container>\n        </div>\n      }\n    }\n  }\n</div>\n<ng-content select=\"ax-footer\"></ng-content>\n","import { AXRange, AXValuableComponent, MXInteractiveComponent, MXValueComponent } from '@acorex/components/common';\nimport { AXCalendarService, AXDateTime } from '@acorex/core/date-time';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXHtmlUtil, AXUnsubscriber } from '@acorex/core/utils';\nimport { NgClass } from '@angular/common';\nimport {\n  AfterViewInit,\n  Component,\n  ViewChild,\n  ViewEncapsulation,\n  forwardRef,\n  inject,\n  linkedSignal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXCalendarSlotClick, MXCalendarBaseComponent } from './calendar.class';\nimport { AXCalendarComponent } from './calendar.component';\n\n@Component({\n  selector: 'ax-calendar-range',\n  templateUrl: 'calendar-range.component.html',\n  styleUrls: ['calendar-range.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  inputs: [\n    'rtl',\n    'readonly',\n    'value',\n    'name',\n    'disabled',\n    'depth',\n    'activeView',\n    'minValue',\n    'maxValue',\n    'disabledDates',\n    'holidayDates',\n    'type',\n    'cellTemplate',\n    'cellClass',\n    'showNavigation',\n  ],\n  outputs: [\n    'onOptionChanged',\n    'valueChange',\n    'onValueChanged',\n    'onBlur',\n    'onFocus',\n    'depthChange',\n    'typeChange',\n    'activeViewChange',\n    'disabledDatesChange',\n    'holidayDatesChange',\n    'onNavigate',\n    'onSlotClick',\n  ],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AXCalendarRangeComponent),\n      multi: true,\n    },\n    {\n      provide: AXValuableComponent,\n      useExisting: AXCalendarRangeComponent,\n    },\n  ],\n  imports: [NgClass, AXCalendarComponent],\n})\nexport class AXCalendarRangeComponent\n  extends classes(MXValueComponent<AXRange<Date>>, MXInteractiveComponent, MXCalendarBaseComponent)\n  implements AfterViewInit\n{\n  private formatService = inject(AXFormatService);\n\n  protected calendar = linkedSignal(() => this.type ?? this.localeService.activeProfile().calendar.system);\n\n  /**\n   *  @ignore\n   */\n  private _calendarService: AXCalendarService = inject(AXCalendarService);\n\n  @ViewChild('c1', { static: true })\n  private _c1: AXCalendarComponent;\n\n  @ViewChild('c2', { static: true })\n  private _c2: AXCalendarComponent;\n\n  _navText = '';\n\n  /**\n   *  @ignore\n   */\n  protected rtl!: boolean;\n\n  /**\n   *  @ignore\n   */\n  constructor(unsubscriber: AXUnsubscriber) {\n    super();\n    this.defaultValue = { from: null, end: null };\n\n    this.calendarService.calendarChanges$.pipe(unsubscriber.takeUntilDestroy).subscribe((value) => {\n      if (!this.type) this.calendar.set(value.name());\n      this.render();\n    });\n  }\n\n  /**\n   *  @ignore\n   */\n  protected override ngOnInit(): void {\n    super.ngOnInit();\n    this.rtl = AXHtmlUtil.isRtl(this.getHostElement());\n  }\n\n  /**\n   *  @ignore\n   */\n  ngAfterViewInit(): void {\n    this._syncNav1();\n  }\n\n  override internalValueChanged(value: any) {\n    this._c1.render();\n    this._c2.render();\n  }\n\n  /** w\n   *  @ignore\n   */\n  getCellClass = (date: AXDateTime) => {\n    //const d = this._calendarService.create(date, this.type);\n    const from = this._calendarService.create(this.value.from, this.type);\n    const end = this._calendarService.create(this.value.end, this.type);\n    if (this.value.from && date.equal(from, 'day')) {\n      return 'ax-range-start';\n    }\n    if (this.value.end && date.equal(end, 'day')) return 'ax-range-end';\n    if (this.value.from && this.value.end && date.compare(from, 'day') > 0 && date.compare(end, 'day') < 0)\n      return 'ax-range-between';\n    return null;\n  };\n\n  /**\n   *  @ignore\n   */\n  protected handleSlotClick(e: AXCalendarSlotClick) {\n    if (this._c1.activeView == this.depth) {\n      if (!this.value.from || (this.value.from && this.value.end)) {\n        this.value.from = e.item;\n        this.value.end = null;\n      }\n      if (this.value.from && e.item <= this.value.from) {\n        this.value.from = e.item;\n      } else if (this.value.from && !this.value.end) {\n        this.value.end = e.item;\n      }\n    } else {\n      if (e.component == this._c1) {\n        this._syncNav1();\n      }\n      if (e.component == this._c2) {\n        this._syncNav2(this._calendarService.create(e.item, this.type));\n      }\n    }\n    this._c1.render();\n    this._c2.render();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected handlePrevClick() {\n    const view = this._c1.activeView;\n    const d1 = this._c1.displayRange.startTime;\n    if (view == 'day' || view == 'month') {\n      this._c1.prev();\n    } else if (view == 'year') {\n      this._c1.navTo(d1.add('year', -20));\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected handleNextClick() {\n    const view = this._c1.activeView;\n    const d1 = this._c1.displayRange.startTime;\n    if (view == 'day' || view == 'month') {\n      this._c1.next();\n    } else if (view == 'year') {\n      this._c1.navTo(d1.add('year', 20));\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected handleNavClick() {\n    this._c1.toggleView();\n  }\n\n  /**\n   *  @ignore\n   */\n  private _syncNavText() {\n    const view = this._c1.activeView;\n    const d1 = this._c1.displayRange.startTime;\n    if (view == 'day') {\n      const d2 = this._c2.displayRange.endTime;\n      this._navText = `${this.formatService.format(d1, 'datetime', { format: 'MMM yyyy' })} - ${this.formatService.format(d2, 'datetime', { format: 'MMM yyyy' })}`;\n    } else if (view == 'month' || view == 'year') {\n      const d2 = this._c2.displayRange.endTime;\n      this._navText = `${this.formatService.format(d1, 'datetime', { format: 'yyyy' })} - ${this.formatService.format(d2, 'datetime', { format: 'yyyy' })}`;\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected handleNavigate() {\n    this._syncNav1();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected handleActiveViewChange1() {\n    this._c2.activeView = this._c1.activeView;\n    this._syncNav1();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected handleActiveViewChange2() {\n    if (this._c2.activeView != this._c1.activeView) {\n      this._c1.activeView = this._c2.activeView;\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  private _syncNav1() {\n    const view = (this._c2.activeView = this._c1.activeView);\n    const range = this._c1.displayRange;\n    if (view == 'day') {\n      this._c2.navTo(range.startTime.add('month', 1));\n    } else if (view == 'month') {\n      this._c2.navTo(range.startTime.add('year', 1));\n    } else if (view == 'year') {\n      this._c2.navTo(range.endTime.add('year', 4));\n    }\n    this._syncNavText();\n  }\n\n  /**\n   *  @ignore\n   */\n  private _syncNav2(e: AXDateTime) {\n    const view = this._c2.activeView;\n    if (view == 'month') {\n      this._c1.navTo(e.add('month', -1));\n    } else if (view == 'year') {\n      this._c1.navTo(e.startOf('year'));\n    }\n  }\n}\n","<div class=\"ax-calendar-range-header\">\n    <ng-content></ng-content>\n    <div class=\"ax-calendar-header-range-info\">\n        <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button\"\n            (click)=\"handleNavClick()\">\n            {{ _navText }}\n        </button>\n    </div>\n    <div class=\"ax-calendar-header-range-buttons\">\n        <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n            (click)=\"handlePrevClick()\">\n            <i class=\"ax-icon\" [ngClass]=\"{\n                'ax-icon-chevron-left': !rtl,\n                'ax-icon-chevron-right': rtl\n              }\"></i>\n        </button>\n        <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n            (click)=\"handleNextClick()\">\n            <i class=\"ax-icon\" [ngClass]=\"{\n                'ax-icon-chevron-left': rtl,\n                'ax-icon-chevron-right': !rtl\n              }\"></i>\n        </button>\n    </div>\n</div>\n<div class=\"ax-calendar-range-body\">\n    <ax-calendar #c1 [showNavigation]=\"false\" [readonly]=\"true\" [cellClass]=\"getCellClass\" [type]=\"type\"\n        [cellTemplate]=\"cellTemplate\" [minValue]=\"minValue\" [maxValue]=\"maxValue\" [depth]=\"depth\"\n        (onSlotClick)=\"handleSlotClick($event)\" (onNavigate)=\"handleNavigate()\"\n        (activeViewChange)=\"handleActiveViewChange1()\">\n    </ax-calendar>\n    <ax-calendar #c2 [showNavigation]=\"false\" [readonly]=\"true\" [cellClass]=\"getCellClass\" [type]=\"type\"\n        [cellTemplate]=\"cellTemplate\" [minValue]=\"minValue\" [maxValue]=\"maxValue\" [depth]=\"depth\"\n        (onSlotClick)=\"handleSlotClick($event)\" (activeViewChange)=\"handleActiveViewChange2()\">\n    </ax-calendar>\n</div>","import { AXRippleDirective } from '@acorex/components/common';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXCalendarRangeComponent } from './calendar-range.component';\nimport { AXCalendarComponent } from './calendar.component';\n\nconst COMPONENT = [AXCalendarComponent, AXCalendarRangeComponent];\nconst MODULES = [CommonModule, AXDateTimeModule, AXTranslationModule, AXTooltipModule, AXRippleDirective];\n\n@NgModule({\n  imports: [...MODULES, ...COMPONENT],\n  exports: [...COMPONENT],\n  providers: [],\n})\nexport class AXCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
         
     | 
| 
         @@ -5,7 +5,7 @@ import { AXDateTimePickerComponent, AXDateTimePickerModule } from '@acorex/compo 
     | 
|
| 
       5 
5 
     | 
    
         
             
            import { MXDropdownBoxBaseComponent, AXDropdownBoxComponent, AXDropdownModule } from '@acorex/components/dropdown';
         
     | 
| 
       6 
6 
     | 
    
         
             
            import { AXHtmlUtil } from '@acorex/core/utils';
         
     | 
| 
       7 
7 
     | 
    
         
             
            import * as i0 from '@angular/core';
         
     | 
| 
       8 
     | 
    
         
            -
            import { EventEmitter, input, signal, afterNextRender,  
     | 
| 
      
 8 
     | 
    
         
            +
            import { EventEmitter, input, signal, afterNextRender, linkedSignal, effect, forwardRef, Output, ViewChild, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
         
     | 
| 
       9 
9 
     | 
    
         
             
            import * as i1 from '@angular/forms';
         
     | 
| 
       10 
10 
     | 
    
         
             
            import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
         
     | 
| 
       11 
11 
     | 
    
         
             
            import { classes } from 'polytype';
         
     | 
| 
         @@ -36,27 +36,30 @@ class AXDateTimeBoxComponent extends classes((MXInputBaseValueComponent), MXCale 
     | 
|
| 
       36 
36 
     | 
    
         
             
                        this.isRtl.set(AXHtmlUtil.isRtl(this.getHostElement()));
         
     | 
| 
       37 
37 
     | 
    
         
             
                    });
         
     | 
| 
       38 
38 
     | 
    
         
             
                    /**
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
      
 39 
     | 
    
         
            +
                   * @description The calendar type to use for the datetime input.
         
     | 
| 
      
 40 
     | 
    
         
            +
                   */
         
     | 
| 
      
 41 
     | 
    
         
            +
                    this.calendar = input(null);
         
     | 
| 
      
 42 
     | 
    
         
            +
                    this._calendarSystem = linkedSignal(() => this.calendar() ?? this.type);
         
     | 
| 
      
 43 
     | 
    
         
            +
                    this._format = linkedSignal(() => this.format());
         
     | 
| 
      
 44 
     | 
    
         
            +
                    this.picker = input('datetime');
         
     | 
| 
      
 45 
     | 
    
         
            +
                    /**
         
     | 
| 
      
 46 
     | 
    
         
            +
                     * @deprecated use locale & mode instead
         
     | 
| 
       40 
47 
     | 
    
         
             
                     */
         
     | 
| 
       41 
     | 
    
         
            -
                    this. 
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
                 * @param v The format string to be set.
         
     | 
| 
       53 
     | 
    
         
            -
                 */
         
     | 
| 
       54 
     | 
    
         
            -
                set format(v) {
         
     | 
| 
       55 
     | 
    
         
            -
                    this.setOption({
         
     | 
| 
       56 
     | 
    
         
            -
                        name: 'format',
         
     | 
| 
       57 
     | 
    
         
            -
                        value: v,
         
     | 
| 
      
 48 
     | 
    
         
            +
                    this.format = input();
         
     | 
| 
      
 49 
     | 
    
         
            +
                    this.#effect = effect(() => {
         
     | 
| 
      
 50 
     | 
    
         
            +
                        const profile = this.localeService.activeProfile();
         
     | 
| 
      
 51 
     | 
    
         
            +
                        //
         
     | 
| 
      
 52 
     | 
    
         
            +
                        if (!this.format()) {
         
     | 
| 
      
 53 
     | 
    
         
            +
                            this._format.set(this.format() ?? profile.formats[this.picker()]?.short ?? '');
         
     | 
| 
      
 54 
     | 
    
         
            +
                        }
         
     | 
| 
      
 55 
     | 
    
         
            +
                        //
         
     | 
| 
      
 56 
     | 
    
         
            +
                        if (!this.calendar()) {
         
     | 
| 
      
 57 
     | 
    
         
            +
                            this._calendarSystem.set(profile.calendar.system);
         
     | 
| 
      
 58 
     | 
    
         
            +
                        }
         
     | 
| 
       58 
59 
     | 
    
         
             
                    });
         
     | 
| 
       59 
60 
     | 
    
         
             
                }
         
     | 
| 
      
 61 
     | 
    
         
            +
                #init;
         
     | 
| 
      
 62 
     | 
    
         
            +
                #effect;
         
     | 
| 
       60 
63 
     | 
    
         
             
                /**
         
     | 
| 
       61 
64 
     | 
    
         
             
                 *  @ignore
         
     | 
| 
       62 
65 
     | 
    
         
             
                 */
         
     | 
| 
         @@ -67,8 +70,9 @@ class AXDateTimeBoxComponent extends classes((MXInputBaseValueComponent), MXCale 
     | 
|
| 
       67 
70 
     | 
    
         
             
                 *  @ignore
         
     | 
| 
       68 
71 
     | 
    
         
             
                 */
         
     | 
| 
       69 
72 
     | 
    
         
             
                _handlePickerModelChange(value) {
         
     | 
| 
       70 
     | 
    
         
            -
                    if (this.isOpen)
         
     | 
| 
      
 73 
     | 
    
         
            +
                    if (this.isOpen) {
         
     | 
| 
       71 
74 
     | 
    
         
             
                        this.commitValue(value, true);
         
     | 
| 
      
 75 
     | 
    
         
            +
                    }
         
     | 
| 
       72 
76 
     | 
    
         
             
                }
         
     | 
| 
       73 
77 
     | 
    
         
             
                /**
         
     | 
| 
       74 
78 
     | 
    
         
             
                 *  @ignore
         
     | 
| 
         @@ -123,7 +127,7 @@ class AXDateTimeBoxComponent extends classes((MXInputBaseValueComponent), MXCale 
     | 
|
| 
       123 
127 
     | 
    
         
             
                    }
         
     | 
| 
       124 
128 
     | 
    
         
             
                }
         
     | 
| 
       125 
129 
     | 
    
         
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXDateTimeBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         
     | 
| 
       126 
     | 
    
         
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: AXDateTimeBoxComponent, isStandalone: true, selector: "ax-datetime-box", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: false, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, depth: { classPropertyName: "depth", publicName: "depth", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, holidayDates: { classPropertyName: "holidayDates", publicName: "holidayDates", isSignal: false, isRequired: false, transformFunction: null }, allowTyping: { classPropertyName: "allowTyping", publicName: "allowTyping", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal:  
     | 
| 
      
 130 
     | 
    
         
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: AXDateTimeBoxComponent, isStandalone: true, selector: "ax-datetime-box", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: false, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, depth: { classPropertyName: "depth", publicName: "depth", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, holidayDates: { classPropertyName: "holidayDates", publicName: "holidayDates", isSignal: false, isRequired: false, transformFunction: null }, allowTyping: { classPropertyName: "allowTyping", publicName: "allowTyping", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, picker: { classPropertyName: "picker", publicName: "picker", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", onOpened: "onOpened", onClosed: "onClosed", readonlyChange: "readonlyChange", disabledChange: "disabledChange", formatChange: "formatChange" }, host: { attributes: { "ngSkipHydration": "true" } }, providers: [
         
     | 
| 
       127 
131 
     | 
    
         
             
                        { provide: AXComponent, useExisting: AXDateTimeBoxComponent },
         
     | 
| 
       128 
132 
     | 
    
         
             
                        { provide: AXFocusableComponent, useExisting: AXDateTimeBoxComponent },
         
     | 
| 
       129 
133 
     | 
    
         
             
                        { provide: AXValuableComponent, useExisting: AXDateTimeBoxComponent },
         
     | 
| 
         @@ -133,7 +137,7 @@ class AXDateTimeBoxComponent extends classes((MXInputBaseValueComponent), MXCale 
     | 
|
| 
       133 
137 
     | 
    
         
             
                            useExisting: forwardRef(() => AXDateTimeBoxComponent),
         
     | 
| 
       134 
138 
     | 
    
         
             
                            multi: true,
         
     | 
| 
       135 
139 
     | 
    
         
             
                        },
         
     | 
| 
       136 
     | 
    
         
            -
                    ], viewQueries: [{ propertyName: "input", first: true, predicate: AXDateTimeInputComponent, descendants: true }, { propertyName: " 
     | 
| 
      
 140 
     | 
    
         
            +
                    ], viewQueries: [{ propertyName: "input", first: true, predicate: AXDateTimeInputComponent, descendants: true }, { propertyName: "pickerRef", first: true, predicate: AXDateTimePickerComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: AXDropdownBoxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ax-dropdown-box\n  [disabled]=\"disabled\"\n  (onOpened)=\"_handleOnOpenedEvent($event)\"\n  (onClosed)=\"_handleOnClosedEvent($event)\"\n  [look]=\"look\"\n>\n  <ng-container input>\n    <ng-content select=\"ax-prefix\"> </ng-content>\n    <ax-datetime-input\n      dir=\"ltr\"\n      id=\"{{ id }}-input\"\n      [ngModel]=\"value\"\n      [allowTyping]=\"allowTyping()\"\n      (ngModelChange)=\"_handleInputModelChange($event)\"\n      [placeholder]=\"placeholder\"\n      [format]=\"format()\"\n      [disabled]=\"disabled\"\n      [readonly]=\"readonly\"\n      [calendar]=\"_calendarSystem()\"\n      [picker]=\"picker()\"\n      (onFocus)=\"_handleInputOnFocusEvent($event)\"\n      (onBlur)=\"_handleInputOnBlurEvent($event)\"\n      (onClick)=\"_handleInputOnClick()\"\n    ></ax-datetime-input>\n    @if (value && !disabled && !readonly) {\n      <ng-content select=\"ax-clear-button\"></ng-content>\n    }\n    <button type=\"button\" class=\"ax-editor-button\" [tabIndex]=\"-1\" [disabled]=\"disabled\" (click)=\"toggle()\">\n      <span class=\"ax-icon ax-icon-calendar\"></span>\n    </button>\n    <ng-content select=\"ax-suffix\"> </ng-content>\n  </ng-container>\n  <ng-container panel>\n    <ax-datetime-picker\n      [isRtl]=\"isRtl()\"\n      [depth]=\"depth\"\n      id=\"{{ id }}-picker\"\n      #pickerRef\n      [ngModel]=\"value\"\n      [picker]=\"picker()\"\n      [calendar]=\"_calendarSystem()\"\n      (ngModelChange)=\"_handlePickerModelChange($event)\"\n      [disabled]=\"disabled\"\n      [readonly]=\"readonly\"\n      [minValue]=\"minValue\"\n      [maxValue]=\"maxValue\"\n      [format]=\"format()\"\n      [disabledDates]=\"disabledDates\"\n      [holidayDates]=\"holidayDates\"\n      [depth]=\"depth\"\n      [type]=\"type\"\n      (onNavigate)=\"_handleCalendarOnNavigate($event)\"\n    ></ax-datetime-picker>\n  </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: ["ax-datetime-input{display:contents}\n"], dependencies: [{ kind: "component", type: AXDropdownBoxComponent, selector: "ax-dropdown-box", inputs: ["disabled", "look", "hasInput"], outputs: ["disabledChange", "onBlur", "onFocus", "onClick", "onOpened", "onClosed"] }, { kind: "component", type: AXDateTimeInputComponent, selector: "ax-datetime-input", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "allowTyping", "calendar", "minValue", "maxValue", "picker", "format"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXDateTimePickerComponent, selector: "ax-datetime-picker", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "depth", "activeView", "minValue", "maxValue", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation", "isRtl", "currentTimeButton", "calendar", "picker", "format"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "onClick", "readonlyChange", "disabledChange", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "isRtlChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
         
     | 
| 
       137 
141 
     | 
    
         
             
            }
         
     | 
| 
       138 
142 
     | 
    
         
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXDateTimeBoxComponent, decorators: [{
         
     | 
| 
       139 
143 
     | 
    
         
             
                        type: Component,
         
     | 
| 
         @@ -172,11 +176,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor 
     | 
|
| 
       172 
176 
     | 
    
         
             
                                        useExisting: forwardRef(() => AXDateTimeBoxComponent),
         
     | 
| 
       173 
177 
     | 
    
         
             
                                        multi: true,
         
     | 
| 
       174 
178 
     | 
    
         
             
                                    },
         
     | 
| 
       175 
     | 
    
         
            -
                                ], host: { ngSkipHydration: 'true' }, imports: [AXDropdownBoxComponent, AXDateTimeInputComponent, FormsModule, AXDateTimePickerComponent], template: "<ax-dropdown-box 
     | 
| 
      
 179 
     | 
    
         
            +
                                ], host: { ngSkipHydration: 'true' }, imports: [AXDropdownBoxComponent, AXDateTimeInputComponent, FormsModule, AXDateTimePickerComponent], template: "<ax-dropdown-box\n  [disabled]=\"disabled\"\n  (onOpened)=\"_handleOnOpenedEvent($event)\"\n  (onClosed)=\"_handleOnClosedEvent($event)\"\n  [look]=\"look\"\n>\n  <ng-container input>\n    <ng-content select=\"ax-prefix\"> </ng-content>\n    <ax-datetime-input\n      dir=\"ltr\"\n      id=\"{{ id }}-input\"\n      [ngModel]=\"value\"\n      [allowTyping]=\"allowTyping()\"\n      (ngModelChange)=\"_handleInputModelChange($event)\"\n      [placeholder]=\"placeholder\"\n      [format]=\"format()\"\n      [disabled]=\"disabled\"\n      [readonly]=\"readonly\"\n      [calendar]=\"_calendarSystem()\"\n      [picker]=\"picker()\"\n      (onFocus)=\"_handleInputOnFocusEvent($event)\"\n      (onBlur)=\"_handleInputOnBlurEvent($event)\"\n      (onClick)=\"_handleInputOnClick()\"\n    ></ax-datetime-input>\n    @if (value && !disabled && !readonly) {\n      <ng-content select=\"ax-clear-button\"></ng-content>\n    }\n    <button type=\"button\" class=\"ax-editor-button\" [tabIndex]=\"-1\" [disabled]=\"disabled\" (click)=\"toggle()\">\n      <span class=\"ax-icon ax-icon-calendar\"></span>\n    </button>\n    <ng-content select=\"ax-suffix\"> </ng-content>\n  </ng-container>\n  <ng-container panel>\n    <ax-datetime-picker\n      [isRtl]=\"isRtl()\"\n      [depth]=\"depth\"\n      id=\"{{ id }}-picker\"\n      #pickerRef\n      [ngModel]=\"value\"\n      [picker]=\"picker()\"\n      [calendar]=\"_calendarSystem()\"\n      (ngModelChange)=\"_handlePickerModelChange($event)\"\n      [disabled]=\"disabled\"\n      [readonly]=\"readonly\"\n      [minValue]=\"minValue\"\n      [maxValue]=\"maxValue\"\n      [format]=\"format()\"\n      [disabledDates]=\"disabledDates\"\n      [holidayDates]=\"holidayDates\"\n      [depth]=\"depth\"\n      [type]=\"type\"\n      (onNavigate)=\"_handleCalendarOnNavigate($event)\"\n    ></ax-datetime-picker>\n  </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: ["ax-datetime-input{display:contents}\n"] }]
         
     | 
| 
       176 
180 
     | 
    
         
             
                    }], propDecorators: { input: [{
         
     | 
| 
       177 
181 
     | 
    
         
             
                            type: ViewChild,
         
     | 
| 
       178 
182 
     | 
    
         
             
                            args: [AXDateTimeInputComponent]
         
     | 
| 
       179 
     | 
    
         
            -
                        }],  
     | 
| 
      
 183 
     | 
    
         
            +
                        }], pickerRef: [{
         
     | 
| 
       180 
184 
     | 
    
         
             
                            type: ViewChild,
         
     | 
| 
       181 
185 
     | 
    
         
             
                            args: [AXDateTimePickerComponent]
         
     | 
| 
       182 
186 
     | 
    
         
             
                        }], dropdown: [{
         
     | 
| 
         @@ -184,8 +188,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor 
     | 
|
| 
       184 
188 
     | 
    
         
             
                            args: [AXDropdownBoxComponent]
         
     | 
| 
       185 
189 
     | 
    
         
             
                        }], formatChange: [{
         
     | 
| 
       186 
190 
     | 
    
         
             
                            type: Output
         
     | 
| 
       187 
     | 
    
         
            -
                        }], format: [{
         
     | 
| 
       188 
     | 
    
         
            -
                            type: Input
         
     | 
| 
       189 
191 
     | 
    
         
             
                        }] } });
         
     | 
| 
       190 
192 
     | 
    
         | 
| 
       191 
193 
     | 
    
         
             
            const COMPONENT = [AXDateTimeBoxComponent];
         
     |