@acorex/components 21.0.2-next.5 → 21.0.2-next.51
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/conversation2/README.md +5 -8
- package/fesm2022/acorex-components-accordion.mjs +29 -29
- package/fesm2022/acorex-components-accordion.mjs.map +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +30 -30
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +16 -16
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-aspect-ratio.mjs +5 -5
- package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +11 -11
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-autocomplete.mjs +14 -14
- package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +17 -16
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +9 -9
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +14 -14
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +13 -13
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs +40 -20
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +35 -36
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +256 -54
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +10 -10
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +9 -9
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +13 -13
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-code-editor.mjs +27 -27
- package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +14 -14
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +84 -43
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-command.mjs +19 -19
- package/fesm2022/acorex-components-command.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +35 -35
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +105 -105
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation2.mjs +11165 -8111
- package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +51 -51
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-list.mjs +31 -31
- package/fesm2022/acorex-components-data-list.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +93 -104
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +69 -57
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +174 -39
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +30 -38
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +62 -55
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +39 -39
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +19 -26
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +23 -23
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +9 -9
- package/fesm2022/acorex-components-dropdown.mjs +19 -19
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-editor.mjs +12 -12
- package/fesm2022/acorex-components-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-fab.mjs +15 -15
- package/fesm2022/acorex-components-fab.mjs.map +1 -1
- package/fesm2022/acorex-components-flow-chart.mjs +74 -58
- package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +30 -30
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +15 -15
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +87 -87
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +11 -11
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +12 -12
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-kanban.mjs +23 -23
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +15 -15
- package/fesm2022/acorex-components-kbd.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +9 -9
- package/fesm2022/acorex-components-list.mjs +15 -15
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +19 -19
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +21 -21
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +46 -46
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +82 -82
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +366 -197
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/{acorex-components-modal-acorex-components-modal-CcXuJ4IW.mjs → acorex-components-modal-acorex-components-modal-JpPBSiVh.mjs} +28 -28
- package/fesm2022/{acorex-components-modal-acorex-components-modal-CcXuJ4IW.mjs.map → acorex-components-modal-acorex-components-modal-JpPBSiVh.mjs.map} +1 -1
- package/fesm2022/{acorex-components-modal-modal-content.component-DTZu2zbU.mjs → acorex-components-modal-modal-content.component-DKweXQfl.mjs} +39 -39
- package/fesm2022/acorex-components-modal-modal-content.component-DKweXQfl.mjs.map +1 -0
- package/fesm2022/acorex-components-modal.mjs +1 -1
- package/fesm2022/acorex-components-navbar.mjs +8 -8
- package/fesm2022/acorex-components-notification.mjs +28 -28
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +61 -23
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +45 -21
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-page.mjs +10 -10
- package/fesm2022/acorex-components-paint.mjs +53 -53
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +28 -28
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-pdf-reader.mjs +9 -9
- package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +19 -19
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +31 -31
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +11 -11
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +48 -24
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +8 -8
- package/fesm2022/acorex-components-qrcode.mjs +37 -20
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-query-builder.mjs +15 -14
- package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +9 -9
- package/fesm2022/acorex-components-rail-navigation.mjs +28 -28
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +34 -34
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +17 -17
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs +33 -33
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +8 -8
- package/fesm2022/acorex-components-routing-progress.mjs +8 -8
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-rrule.mjs +36 -36
- package/fesm2022/acorex-components-rrule.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler-picker.mjs +118 -118
- package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +398 -326
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-search-box.mjs +9 -9
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +22 -22
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list-2.mjs +12 -12
- package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +11 -11
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +455 -97
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +8 -8
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
- package/fesm2022/acorex-components-slider.mjs +7 -7
- package/fesm2022/acorex-components-sliding-item.mjs +25 -25
- package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +40 -39
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +12 -12
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +20 -20
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +19 -19
- package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +8 -8
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +9 -9
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +12 -12
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs +34 -32
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +19 -19
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +26 -26
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-toolbar.mjs +13 -13
- package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +27 -18
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +326 -67
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +17 -17
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-video-player.mjs +8 -8
- package/fesm2022/acorex-components-video-player.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +60 -53
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/package.json +5 -4
- package/types/acorex-components-button-group.d.ts +9 -3
- package/types/acorex-components-button.d.ts +2 -8
- package/types/acorex-components-calendar.d.ts +138 -27
- package/types/acorex-components-color-palette.d.ts +2 -0
- package/types/acorex-components-conversation2.d.ts +1296 -1256
- package/types/acorex-components-data-pager.d.ts +6 -25
- package/types/acorex-components-data-table.d.ts +12 -2
- package/types/acorex-components-datetime-box.d.ts +79 -8
- package/types/acorex-components-datetime-input.d.ts +2 -2
- package/types/acorex-components-datetime-picker.d.ts +15 -5
- package/types/acorex-components-flow-chart.d.ts +4 -0
- package/types/acorex-components-menu.d.ts +105 -36
- package/types/acorex-components-number-box.d.ts +9 -0
- package/types/acorex-components-otp.d.ts +18 -1
- package/types/acorex-components-popup.d.ts +11 -1
- package/types/acorex-components-qrcode.d.ts +1 -0
- package/types/acorex-components-query-builder.d.ts +1 -1
- package/types/acorex-components-scheduler.d.ts +23 -2
- package/types/acorex-components-side-menu.d.ts +96 -34
- package/types/acorex-components-step-wizard.d.ts +2 -1
- package/types/acorex-components-time-duration.d.ts +1 -0
- package/types/acorex-components-tree-view.d.ts +43 -2
- package/types/acorex-components-wysiwyg.d.ts +6 -1
- package/fesm2022/acorex-components-modal-modal-content.component-DTZu2zbU.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-calendar.mjs","sources":["../../../../packages/components/calendar/src/lib/calendar.class.ts","../../../../packages/components/calendar/src/lib/calendar.component.ts","../../../../packages/components/calendar/src/lib/calendar.component.html","../../../../packages/components/calendar/src/lib/calendar-range.component.ts","../../../../packages/components/calendar/src/lib/calendar-range.component.html","../../../../packages/components/calendar/src/lib/calendar.module.ts","../../../../packages/components/calendar/src/acorex-components-calendar.ts"],"sourcesContent":["import { AXItemClickEvent, AXRangeChangedEvent, MXBaseComponent } from '@acorex/cdk/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 /**\n * @deprecated\n * use dayCellTemplate, monthCellTemplate, yearCellTemplate instead\n */\n @Input()\n cellTemplate?: TemplateRef<unknown>;\n\n @Input()\n dayCellTemplate?: TemplateRef<unknown>;\n @Input()\n monthCellTemplate?: TemplateRef<unknown>;\n @Input()\n yearCellTemplate?: 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 if (this.calendarService.isValidDate(v)) {\n const value = this.calendarService.create(v).date;\n this.setOption({\n name: 'minValue',\n value,\n afterCallback: () => {\n this.render();\n },\n });\n } else {\n this.setOption({\n name: 'minValue',\n value: undefined,\n afterCallback: () => {\n this.render();\n },\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 if (this.calendarService.isValidDate(v)) {\n const value = this.calendarService.create(v).date;\n this.setOption({\n name: 'maxValue',\n value,\n afterCallback: () => {\n this.render();\n },\n });\n } else {\n this.setOption({\n name: 'maxValue',\n value: undefined,\n afterCallback: () => {\n this.render();\n },\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 AXComponent,\n AXRippleDirective,\n AXValuableComponent,\n MXComponentOptionChanged,\n MXInteractiveComponent,\n MXValueComponent,\n} from '@acorex/cdk/common';\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core/date-time';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n HostBinding,\n HostListener,\n inject,\n input,\n linkedSignal,\n signal,\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, 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.compiled.css'],\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 'dayCellTemplate',\n 'monthCellTemplate',\n 'yearCellTemplate',\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 { provide: AXComponent, useExisting: AXCalendarComponent },\n ],\n imports: [NgClass, NgTemplateOutlet, AXRippleDirective, AsyncPipe, AXTranslatorPipe, AXFormatModule],\n})\nexport class AXCalendarComponent\n extends classes(MXValueComponent<Date | null>, MXInteractiveComponent, MXCalendarBaseComponent)\n implements AfterViewInit\n{\n private formatService = inject(AXFormatService);\n\n weekend = input<number[]>([]);\n weekdays = input<number[]>([]);\n\n protected calendar = linkedSignal(() => this.type ?? this.localeService.activeProfile().calendar.system);\n\n public get displayRange(): AXDateTimeRange | null {\n return this.views.length > 0\n ? new AXDateTimeRange(this.views[0]?.range.startTime, this.views[this.views.length - 1]?.range.endTime)\n : null;\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 oldValue = signal<Date | null>(null);\n\n /**\n * @ignore\n */\n private _initValues() {\n this._today = this.calendarService.create(new Date(), this.calendar());\n if (this.weekdays().length) {\n this._weekdays = this.weekdays();\n } else {\n this._weekdays = this._today.calendar.weekdays;\n }\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() {\n const unsubscriber = inject(AXUnsubscriber);\n\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 this.minValueChange.subscribe((e: Date) => {\n if (this._viewStartDate.isBefore(e)) {\n this._viewStartDate = this.calendarService.create(e, this.calendar());\n this.render();\n }\n });\n }\n\n /**\n * @ignore\n */\n protected override ngOnInit() {\n super.ngOnInit();\n this._initValues();\n }\n\n /**\n * @ignore\n */\n ngAfterViewInit(): void {\n if (!this.value) {\n if (this.minValue && this._viewStartDate.isBefore(this.minValue)) {\n this._viewStartDate = this.calendarService.create(this.minValue, this.calendar());\n this.render();\n } else {\n this.goToday();\n }\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 day: 1,\n },\n this.calendar(),\n ),\n this.calendarService.create(\n {\n year: max,\n month: 12,\n day: 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.enumerate('day');\n view.slots = a.map((d, i) => {\n let selected = false;\n if (this.depth === 'day') {\n selected = this.value && d.equal(this.value, 'day');\n } else if (this.depth === 'month') {\n selected = this.value && d.equal(this.value, 'month');\n } else if (this.depth === 'year') {\n selected = this.value && d.equal(this.value, 'year');\n }\n const r: any = {};\n r.date = d;\n r.text = d.dayOfMonth;\n r.today = d.equal(this._today, 'day');\n r.selected = selected;\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 = 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.enumerate('month');\n view.slots = a.map((d) => {\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.enumerate('year');\n\n view.slots = a.map((d) => {\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 /**\n * Toggles between different calendar views (day → month → year).\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 || !this.calendarService.isValidDate(value)) {\n return null;\n }\n const v = this.calendarService.convert(value, this.calendar());\n if (this.isDisabled(v)) {\n return null;\n }\n\n if (this.maxValue && this.calendarService.isValidDate(this.maxValue) && v.isAfter(this.maxValue)) {\n return this.maxValue;\n }\n\n if (this.minValue && this.calendarService.isValidDate(this.minValue) && v.isBefore(this.minValue)) {\n return this.minValue;\n }\n\n 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 if (this.minValue && this._viewStartDate.isBefore(this.minValue)) {\n this._viewStartDate = this.calendarService.create(this.minValue, this.calendar());\n }\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 const oldVal = this.oldValue() ? this.calendarService.create(this.oldValue(), this.calendar()) : null;\n if (!oldVal || oldVal.monthOfYear !== val.monthOfYear || oldVal.year !== val.year) {\n this.render();\n }\n this.oldValue.set(value);\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 forward in the calendar based on the current active view and the configured count.\n *\n * Behavior by view:\n * - day view: advances by count months\n * - month view: advances by count years\n * - year view: advances by 10 × count years\n *\n * @returns void\n */\n next() {\n this._navNextPrev(false);\n }\n\n /**\n * Navigates backward in the calendar based on the current active view and the configured count.\n *\n * Behavior by view:\n * - day view: goes back by count months\n * - month view: goes back by count years\n * - year view: goes back by 10 × count years\n *\n * @returns void\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 *\n * @returns void\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 and emits the navigation event.\n *\n * @returns void\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 * @returns void\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 if (this.weekend().length) {\n return this.weekend().includes(date.dayOfWeek - 1);\n }\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-icon ax-button-rounded ax-button-icon ax-next\"\n (click)=\"_handlePrevClick()\"\n [title]=\"'@acorex:common.actions.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-icon ax-button-rounded ax-button-icon\"\n (click)=\"_handleNextClick()\"\n [title]=\"'@acorex:common.actions.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': !yearCellTemplate }\">\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 (yearCellTemplate) {\n <div>\n <ng-container\n [ngTemplateOutlet]=\"yearCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { slot: slot } }\"\n >\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-icon ax-button-rounded ax-button-icon\"\n (click)=\"_handlePrevClick()\"\n [title]=\"'@acorex:common.actions.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-icon ax-button-rounded ax-button-icon\"\n (click)=\"_handleNextClick()\"\n [title]=\"'@acorex:common.actions.next' | translate | async\"\n >\n <i class=\"ax-icon ax-icon-chevron-right\"></i>\n </button>\n </div>\n }\n </div>\n }\n\n <div class=\"ax-calendar-slots ax-calendar-slots-month\" [ngClass]=\"{ 'ax-default': !monthCellTemplate }\">\n @for (slot of v.slots; track slot) {\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 (monthCellTemplate) {\n <div>\n <ng-container\n [ngTemplateOutlet]=\"monthCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { slot: slot } }\"\n >\n </ng-container>\n </div>\n } @else {\n <div [title]=\"slot.date | format: 'date' : { calendar: calendar(), format: 'MMMM YYYY' } | async\">\n {{ `@acorex:${getMonthName(slot.date, 'short')}` | translate | async }}\n </div>\n }\n </button>\n }\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-icon ax-button-rounded ax-button-icon\"\n (click)=\"_handlePrevClick()\"\n [title]=\"'@acorex:common.actions.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-icon ax-button-rounded ax-button-icon\"\n (click)=\"_handleNextClick()\"\n [title]=\"'@acorex:common.actions.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 @for (d of _weekdays; track d) {\n <div>{{ '@acorex:dateTime.weekdays.short.' + d | translate | async }}</div>\n }\n </div>\n\n <div class=\"ax-calendar-slots ax-calendar-slots-day\" [ngClass]=\"{ 'ax-default': !dayCellTemplate }\">\n @for (slot of v.slots; track slot) {\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 (dayCellTemplate) {\n <div>\n <ng-container\n [ngTemplateOutlet]=\"dayCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { slot: slot } }\"\n >\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 }\n </div>\n }\n }\n }\n</div>\n<ng-content select=\"ax-footer\"></ng-content>\n","import {\n AXComponent,\n AXRange,\n AXValuableComponent,\n MXInteractiveComponent,\n MXValueComponent,\n} from '@acorex/cdk/common';\nimport { AXCalendarService, AXDateTime } from '@acorex/core/date-time';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXUnsubscriber } from '@acorex/core/utils';\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.compiled.css'],\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 'dayCellTemplate',\n 'monthCellTemplate',\n 'yearCellTemplate',\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 AXUnsubscriber,\n { provide: AXComponent, useExisting: AXCalendarRangeComponent },\n ],\n imports: [AXCalendarComponent],\n})\nexport class AXCalendarRangeComponent\n extends classes(MXValueComponent<AXRange<Date>>, MXInteractiveComponent, MXCalendarBaseComponent)\n implements AfterViewInit\n{\n private formatService = inject(AXFormatService);\n private unsubscriber = inject(AXUnsubscriber);\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 private _navUserInteraction = false;\n\n /**\n * @ignore\n */\n constructor() {\n super();\n this.defaultValue = { from: null, end: null };\n\n this.calendarService.calendarChanges$.pipe(this.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 }\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\n // check from value\n if (!this._calendarService.isValidDate(this.value.from)) {\n return null;\n }\n const from = this._calendarService.create(this.value.from, this.type);\n if (this.value.from && date.equal(from, 'day')) {\n return 'ax-range-start';\n }\n\n // check end value\n if (!this._calendarService.isValidDate(this.value.end)) {\n return null;\n }\n const end = this._calendarService.create(this.value.end, this.type);\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 this.onSlotClick.emit({\n component: this,\n item: e.item,\n isUserInteraction: true,\n nativeEvent: e,\n });\n if (this._c1.activeView == this.depth) {\n if (!this.value.from || (this.value.from && this.value.end)) {\n this.commitValue({ from: e.item, end: null }, true);\n }\n if (this.value.from && e.item <= this.value.from) {\n this.commitValue({ from: e.item, end: this.value.end }, true);\n } else if (this.value.from && !this.value.end) {\n this.commitValue({ from: this.value.from, end: e.item }, true);\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 this._navUserInteraction = true;\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 this._navUserInteraction = false;\n }\n\n /**\n * @ignore\n */\n protected handleNextClick() {\n this._navUserInteraction = true;\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 this._navUserInteraction = false;\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 this.onNavigate.emit({\n component: this,\n isUserInteraction: this._navUserInteraction,\n start: this._c1.displayRange.startTime?.date,\n end: this._c2.displayRange.endTime?.date,\n htmlElement: this.getHostElement(),\n });\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\" (click)=\"handleNavClick()\">\n {{ _navText }}\n </button>\n </div>\n <div class=\"ax-calendar-header-range-buttons\">\n <button\n type=\"button\"\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-icon\"\n (click)=\"handlePrevClick()\"\n >\n <i class=\"ax-icon ax-icon-chevron-left\"></i>\n </button>\n <button\n type=\"button\"\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-icon\"\n (click)=\"handleNextClick()\"\n >\n <i class=\"ax-icon ax-icon-chevron-right\"></i>\n </button>\n </div>\n</div>\n<div class=\"ax-calendar-range-body\">\n <ax-calendar\n #c1\n [showNavigation]=\"false\"\n [readonly]=\"true\"\n [cellClass]=\"getCellClass\"\n [type]=\"type\"\n [dayCellTemplate]=\"dayCellTemplate\"\n [monthCellTemplate]=\"monthCellTemplate\"\n [yearCellTemplate]=\"yearCellTemplate\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n [depth]=\"depth\"\n (onSlotClick)=\"handleSlotClick($event)\"\n (onNavigate)=\"handleNavigate()\"\n (activeViewChange)=\"handleActiveViewChange1()\"\n >\n </ax-calendar>\n <ax-calendar\n #c2\n [showNavigation]=\"false\"\n [readonly]=\"true\"\n [cellClass]=\"getCellClass\"\n [type]=\"type\"\n [dayCellTemplate]=\"dayCellTemplate\"\n [monthCellTemplate]=\"monthCellTemplate\"\n [yearCellTemplate]=\"yearCellTemplate\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n [depth]=\"depth\"\n (onSlotClick)=\"handleSlotClick($event)\"\n (activeViewChange)=\"handleActiveViewChange2()\"\n >\n </ax-calendar>\n</div>\n","import { NgModule } from '@angular/core';\nimport { AXCalendarRangeComponent } from './calendar-range.component';\nimport { AXCalendarComponent } from './calendar.component';\n\n@NgModule({\n imports: [AXCalendarComponent, AXCalendarRangeComponent],\n exports: [AXCalendarComponent, AXCalendarRangeComponent],\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":["../../../../packages/components/calendar/src/lib/calendar.class.ts","../../../../packages/components/calendar/src/lib/calendar.component.ts","../../../../packages/components/calendar/src/lib/calendar.component.html","../../../../packages/components/calendar/src/lib/calendar-range.component.ts","../../../../packages/components/calendar/src/lib/calendar-range.component.html","../../../../packages/components/calendar/src/lib/calendar.module.ts","../../../../packages/components/calendar/src/acorex-components-calendar.ts"],"sourcesContent":["import { AXItemClickEvent, AXRange, AXRangeChangedEvent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXCalendarService, AXDateTime, AXDateTimeRange, AXHolidayDate } 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;\n\n/**\n * Controls how month and year are chosen in the day view header.\n * - `classic`: tap year/month labels to open month/year picker panels.\n * - `select`: month/year dropdowns with prev/next arrows on the edges.\n */\nexport type AXCalendarNavigationLookType = 'classic' | 'select';\n\n/**\n * Controls how many years appear in the year selector.\n * - A number applies the same range to past and future years.\n * - An object sets past and future ranges separately.\n * `minValue` and `maxValue` take priority when set.\n */\nexport type AXCalendarYearRange = number | { past: number; future: number };\n\nexport function getCalendarYearBounds(options: {\n referenceYear: number;\n yearRange: AXCalendarYearRange;\n minValue?: Date;\n maxValue?: Date;\n getYear: (date: Date) => number;\n}): { minYear: number; maxYear: number } {\n const past = typeof options.yearRange === 'number' ? options.yearRange : options.yearRange.past;\n const future = typeof options.yearRange === 'number' ? options.yearRange : options.yearRange.future;\n\n return {\n minYear: options.minValue ? options.getYear(options.minValue) : options.referenceYear - past,\n maxYear: options.maxValue ? options.getYear(options.maxValue) : options.referenceYear + future,\n };\n}\n\nexport type AXCalendarDisabledDates = Date[] | ((date: Date) => boolean);\nexport type AXCalendarHolidayDates = Date[] | ((date: Date) => boolean);\nexport type AXCalendarDateRange = AXRange<Date>;\nexport type AXCalendarHolidaysLoader = (range: AXCalendarDateRange) => Promise<AXHolidayDate[]>;\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 holiday?: boolean;\n holidayTitle?: string;\n holidayColor?: 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 /**\n * @deprecated\n * use dayCellTemplate, monthCellTemplate, yearCellTemplate instead\n */\n @Input()\n cellTemplate?: TemplateRef<unknown>;\n\n @Input()\n dayCellTemplate?: TemplateRef<unknown>;\n @Input()\n monthCellTemplate?: TemplateRef<unknown>;\n @Input()\n yearCellTemplate?: 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 if (this.calendarService.isValidDate(v)) {\n const value = this.calendarService.create(v).date;\n this.setOption({\n name: 'minValue',\n value,\n afterCallback: () => {\n this.render();\n },\n });\n } else {\n this.setOption({\n name: 'minValue',\n value: undefined,\n afterCallback: () => {\n this.render();\n },\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 if (this.calendarService.isValidDate(v)) {\n const value = this.calendarService.create(v).date;\n this.setOption({\n name: 'maxValue',\n value,\n afterCallback: () => {\n this.render();\n },\n });\n } else {\n this.setOption({\n name: 'maxValue',\n value: undefined,\n afterCallback: () => {\n this.render();\n },\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 AXComponent,\n AXRippleDirective,\n AXValuableComponent,\n AXValueChangedEvent,\n MXComponentOptionChanged,\n MXInteractiveComponent,\n MXValueComponent,\n} from '@acorex/cdk/common';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { AXDateTime, AXDateTimeRange, AXHolidayDate } from '@acorex/core/date-time';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n forwardRef,\n HostBinding,\n HostListener,\n inject,\n input,\n linkedSignal,\n signal,\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, NgTemplateOutlet } from '@angular/common';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport {\n AXCalendarNavigationLookType,\n AXCalendarDateRange,\n AXCalendarHolidaysLoader,\n AXCalendarView,\n AXCalendarViewSlot,\n AXCalendarViewType,\n AXCalendarYearRange,\n getCalendarYearBounds,\n MXCalendarBaseComponent,\n} 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.compiled.css'],\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 'dayCellTemplate',\n 'monthCellTemplate',\n 'yearCellTemplate',\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 { provide: AXComponent, useExisting: AXCalendarComponent },\n ],\n imports: [\n NgClass,\n NgTemplateOutlet,\n AXRippleDirective,\n AsyncPipe,\n AXTranslatorPipe,\n AXFormatModule,\n AXSelectBoxComponent,\n FormsModule,\n AXTooltipDirective,\n ],\n})\nexport class AXCalendarComponent\n extends classes(MXValueComponent<Date | null>, MXInteractiveComponent, MXCalendarBaseComponent)\n{\n private formatService = inject(AXFormatService);\n\n weekend = input<number[]>([]);\n weekdays = input<number[]>([]);\n\n /**\n * Day view navigation style.\n * - `classic`: tap year/month labels to open month/year picker panels.\n * - `select`: month/year dropdowns with prev/next arrows on the edges.\n */\n look = input<AXCalendarNavigationLookType>('select');\n\n /**\n * Years shown in the year selector when `look` is `select`.\n * Use a number for equal past/future ranges, or `{ past, future }` for asymmetric ranges.\n * `minValue` and `maxValue` take priority when set.\n */\n yearRange = input<AXCalendarYearRange>(80);\n\n /**\n * Optional loader for holidays scoped to the visible calendar range.\n * Merged with holidays from `AX_DATETIME_HOLIDAYS_LOADER` via `AXCalendarService`.\n */\n holidays = input<AXCalendarHolidaysLoader>();\n\n protected readonly isRtl = this.localeService.isRtl;\n\n protected calendar = linkedSignal(() => this.type ?? this.localeService.activeProfile().calendar.system);\n\n /** Week column order from the active locale profile (0 = Sun … 6 = Sat). */\n protected weekLayout = computed(() => {\n const custom = this.weekdays();\n if (custom.length) {\n return custom;\n }\n const startsOn = this.localeService.activeProfile().calendar.week.startsOn;\n return Array.from({ length: 7 }, (_, i) => (startsOn + i) % 7);\n });\n\n public get displayRange(): AXDateTimeRange | null {\n return this.views.length > 0\n ? new AXDateTimeRange(this.views[0]?.range.startTime, this.views[this.views.length - 1]?.range.endTime)\n : null;\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 _monthOptions: { id: number; text: string }[] = [];\n\n /**\n * @ignore\n */\n protected _yearOptions: { id: number; text: string }[] = [];\n\n /**\n * Full option objects for select-box bindings so labels render without async byKey lookups.\n * @ignore\n */\n protected _selectedMonthOption: { id: number; text: string } | null = null;\n\n /**\n * @ignore\n */\n protected _selectedYearOption: { id: number; text: string } | null = null;\n\n /**\n * @ignore\n */\n private oldValue = signal<Date | null>(null);\n\n private internalHoliday = signal<AXHolidayDate[]>([]);\n\n private _viewRangeKey = signal<string | null>(null);\n\n #holidayEffect = effect(() => {\n const func = this.holidays();\n const rangeKey = this._viewRangeKey();\n if (!func || !rangeKey || !this._viewStartDate) return;\n\n const displayRange = this._setDisplayRange(this._viewStartDate);\n const loadRange: AXCalendarDateRange = {\n from: displayRange.startTime.date,\n end: displayRange.endTime.date,\n };\n\n const result = func(loadRange);\n if (result instanceof Promise) {\n result.then((holidays) => {\n this.internalHoliday.set(holidays);\n this.render();\n });\n } else {\n this.internalHoliday.set(result as AXHolidayDate[]);\n this.render();\n }\n });\n\n /**\n * @ignore\n */\n private _initValues() {\n this._today = this.calendarService.create(new Date(), this.calendar());\n }\n\n /**\n * Maps a date to a 1-based grid column using the active week layout.\n */\n private _getWeekColumn(date: AXDateTime): number {\n const columnIndex = this.weekLayout().indexOf(date.weekdayIndex);\n return columnIndex >= 0 ? columnIndex + 1 : date.dayOfWeek;\n }\n\n /**\n * Defers refresh so parent `type` input can sync after locale profile changes.\n */\n private _scheduleRefresh() {\n queueMicrotask(() => this._refresh());\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() {\n const unsubscriber = inject(AXUnsubscriber);\n\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._scheduleRefresh();\n });\n\n this.localeService.profileChanged$.pipe(unsubscriber.takeUntilDestroy).subscribe((profile) => {\n this.calendar.set(profile.calendar.system);\n this._scheduleRefresh();\n });\n\n this.typeChange.pipe(unsubscriber.takeUntilDestroy).subscribe((value) => {\n this.calendar.set(value);\n });\n\n this.minValueChange.subscribe((e: Date) => {\n if (this._viewStartDate.isBefore(e)) {\n this._viewStartDate = this.calendarService.create(e, this.calendar());\n this.render();\n }\n });\n }\n\n /**\n * @ignore\n */\n protected override ngOnInit() {\n super.ngOnInit();\n this._initValues();\n if (!this._viewStartDate) {\n if (this.value) {\n this.navTo(this.value);\n } else if (this.minValue) {\n const min = this.calendarService.create(this.minValue, this.calendar());\n this.navTo(this._today.isBefore(min) ? this.minValue : this._today);\n } else {\n this.navTo(this._today);\n }\n }\n }\n\n /**\n * @ignore\n */\n override render() {\n if (!this._viewStartDate) return;\n this._viewRangeKey.set(`${this._viewStartDate.year}-${this._viewStartDate.monthOfYear}-${this.activeView}`);\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._updateSelectOptions();\n this.cdr.markForCheck();\n }\n\n /**\n * @ignore\n */\n private _updateSelectOptions() {\n if (!this._viewStartDate) return;\n\n this._monthOptions = Array.from({ length: 12 }, (_, i) => {\n const date = this._viewStartDate.set('month', i + 1);\n return {\n id: i + 1,\n text: `@acorex:${this.getMonthName(date, 'short')}`,\n };\n });\n\n const referenceYear = this._today.year;\n const { minYear, maxYear } = getCalendarYearBounds({\n referenceYear,\n yearRange: this.yearRange(),\n minValue: this.minValue,\n maxValue: this.maxValue,\n getYear: (date) => this.calendarService.create(date, this.calendar()).year,\n });\n\n this._yearOptions = [];\n for (let year = minYear; year <= maxYear; year++) {\n this._yearOptions.push({ id: year, text: String(year) });\n }\n\n const monthId = this._viewStartDate.monthOfYear;\n const yearId = this._viewStartDate.year;\n this._selectedMonthOption =\n this._monthOptions.find((month) => month.id === monthId) ?? {\n id: monthId,\n text: `@acorex:${this.getMonthName(this._viewStartDate, 'short')}`,\n };\n this._selectedYearOption =\n this._yearOptions.find((year) => year.id === yearId) ?? {\n id: yearId,\n text: String(yearId),\n };\n }\n\n /**\n * @ignore\n */\n protected _handleMonthSelectChanged(e: AXValueChangedEvent) {\n if (!e.isUserInteraction || !this._viewStartDate) return;\n const month = this._getSelectBoxValue(e);\n if (month == null) return;\n this._navUserInteraction = true;\n this.navTo(this._viewStartDate.set('month', month));\n this._navUserInteraction = false;\n }\n\n /**\n * @ignore\n */\n protected _handleYearSelectChanged(e: AXValueChangedEvent) {\n if (!e.isUserInteraction || !this._viewStartDate) return;\n const year = this._getSelectBoxValue(e);\n if (year == null) return;\n this._navUserInteraction = true;\n this.navTo(this._viewStartDate.set('year', year));\n this._navUserInteraction = false;\n }\n\n /**\n * @ignore\n */\n private _getSelectBoxValue(e: AXValueChangedEvent): number | null {\n const val = e.value;\n if (Array.isArray(val)) return val[0]?.id ?? null;\n if (val && typeof val === 'object') return (val as { id: number }).id ?? null;\n return val != null ? Number(val) : null;\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 day: 1,\n },\n this.calendar(),\n ),\n this.calendarService.create(\n {\n year: max,\n month: 12,\n day: 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.enumerate('day');\n view.slots = a.map((d, i) => {\n let selected = false;\n if (this.depth === 'day') {\n selected = this.value && d.equal(this.value, 'day');\n } else if (this.depth === 'month') {\n selected = this.value && d.equal(this.value, 'month');\n } else if (this.depth === 'year') {\n selected = this.value && d.equal(this.value, 'year');\n }\n const r: any = {};\n r.date = d;\n r.text = d.dayOfMonth;\n r.today = d.equal(this._today, 'day');\n r.selected = selected;\n const holidayInfo = this.getHoliday(d);\n r.holiday = this.isHoliday(d) || this.isWeekend(d);\n if (holidayInfo) {\n r.holidayTitle = holidayInfo.title;\n r.holidayColor = holidayInfo.color;\n r.tooltip = holidayInfo.title ?? '';\n }\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 = 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 if (holidayInfo?.cssClass) {\n holidayInfo.cssClass.split(' ').forEach((c) => {\n if (c) r.cssClass[c] = true;\n });\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-${this._getWeekColumn(view.range.startTime)}`] = 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.enumerate('month');\n view.slots = a.map((d) => {\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.enumerate('year');\n\n view.slots = a.map((d) => {\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 /**\n * Toggles between different calendar views (day → month → year).\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 || !this.calendarService.isValidDate(value)) {\n return null;\n }\n const v = this.calendarService.convert(value, this.calendar());\n if (this.isDisabled(v)) {\n return null;\n }\n\n if (this.maxValue && this.calendarService.isValidDate(this.maxValue) && v.isAfter(this.maxValue)) {\n return this.maxValue;\n }\n\n if (this.minValue && this.calendarService.isValidDate(this.minValue) && v.isBefore(this.minValue)) {\n return this.minValue;\n }\n\n 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 if (this.minValue && this._viewStartDate.isBefore(this.minValue)) {\n this._viewStartDate = this.calendarService.create(this.minValue, this.calendar());\n }\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 const oldVal = this.oldValue() ? this.calendarService.create(this.oldValue(), this.calendar()) : null;\n if (!oldVal || oldVal.monthOfYear !== val.monthOfYear || oldVal.year !== val.year) {\n this.render();\n }\n this.oldValue.set(value);\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 forward in the calendar based on the current active view and the configured count.\n *\n * Behavior by view:\n * - day view: advances by count months\n * - month view: advances by count years\n * - year view: advances by 10 × count years\n *\n * @returns void\n */\n next() {\n this._navNextPrev(false);\n }\n\n /**\n * Navigates backward in the calendar based on the current active view and the configured count.\n *\n * Behavior by view:\n * - day view: goes back by count months\n * - month view: goes back by count years\n * - year view: goes back by 10 × count years\n *\n * @returns void\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 *\n * @returns void\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 and emits the navigation event.\n *\n * @returns void\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 * @returns void\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 [`ax-look-${this.look()}`]: true,\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 globalHolidays = this.calendarService.holidays.some((d) => date.equal(d.date, 'day'));\n const internalHolidays = this.internalHoliday().some((d) => date.equal(d.date, 'day'));\n let localHolidays = false;\n if (Array.isArray(this.holidayDates) && this.holidayDates.length != 0) {\n localHolidays = this.holidayDates.some((d) => date.equal(d, 'day'));\n } else if (typeof this.holidayDates == 'function') {\n localHolidays = this.holidayDates(date.date);\n }\n return globalHolidays || internalHolidays || localHolidays;\n }\n\n /**\n * @ignore\n */\n protected getHoliday(date: AXDateTime): AXHolidayDate | undefined {\n const globalHoliday = this.calendarService.holidays.find((d) => date.equal(d.date, 'day'));\n const internalHoliday = this.internalHoliday().find((d) => date.equal(d.date, 'day'));\n return globalHoliday || internalHoliday;\n }\n\n /**\n * @ignore\n */\n protected isWeekend(date: AXDateTime): boolean {\n if (this.weekend().length) {\n return this.weekend().includes(date.weekdayIndex);\n }\n const weekend = this.calendarService.resolveCalendar(this.calendar()).weekend;\n return weekend.includes(date.weekdayIndex);\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-icon ax-button-rounded ax-button-icon ax-next\"\n (click)=\"_handlePrevClick()\"\n [title]=\"'@acorex:common.actions.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-icon ax-button-rounded ax-button-icon\"\n (click)=\"_handleNextClick()\"\n [title]=\"'@acorex:common.actions.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': !yearCellTemplate }\">\n @for (slot of v.slots; track slot.date.date.getTime()) {\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 (yearCellTemplate) {\n <div>\n <ng-container\n [ngTemplateOutlet]=\"yearCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { slot: slot } }\"\n >\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-icon ax-button-rounded ax-button-icon\"\n (click)=\"_handlePrevClick()\"\n [title]=\"'@acorex:common.actions.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-icon ax-button-rounded ax-button-icon\"\n (click)=\"_handleNextClick()\"\n [title]=\"'@acorex:common.actions.next' | translate | async\"\n >\n <i class=\"ax-icon ax-icon-chevron-right\"></i>\n </button>\n </div>\n }\n </div>\n }\n\n <div class=\"ax-calendar-slots ax-calendar-slots-month\" [ngClass]=\"{ 'ax-default': !monthCellTemplate }\">\n @for (slot of v.slots; track slot.date.date.getTime()) {\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 (monthCellTemplate) {\n <div>\n <ng-container\n [ngTemplateOutlet]=\"monthCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { slot: slot } }\"\n >\n </ng-container>\n </div>\n } @else {\n <div [title]=\"slot.date | format: 'date' : { calendar: calendar(), format: 'MMMM YYYY' } | async\">\n {{ `@acorex:${getMonthName(slot.date, 'short')}` | translate | async }}\n </div>\n }\n </button>\n }\n </div>\n }\n @default {\n @if (showNavigation && look() === 'select' && last) {\n <div class=\"ax-calendar-view-header ax-calendar-day-nav\">\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-calendar-day-nav-prev\"\n (click)=\"_handlePrevClick()\"\n [title]=\"'@acorex:common.actions.prev' | translate | async\"\n >\n <i\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-left': !isRtl(),\n 'ax-icon-chevron-right': isRtl(),\n }\"\n ></i>\n </button>\n <div class=\"ax-calendar-day-nav-center\">\n <ax-select-box\n class=\"ax-calendar-month-select ax-sm\"\n look=\"none\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [dataSource]=\"_monthOptions\"\n textField=\"text\"\n valueField=\"id\"\n [ngModel]=\"_selectedMonthOption\"\n [maxVisibleItems]=\"12\"\n [itemHeight]=\"32\"\n (onValueChanged)=\"_handleMonthSelectChanged($event)\"\n (click)=\"$event.stopPropagation()\"\n ></ax-select-box>\n <ax-select-box\n class=\"ax-calendar-year-select ax-sm\"\n look=\"none\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [dataSource]=\"_yearOptions\"\n textField=\"text\"\n valueField=\"id\"\n [ngModel]=\"_selectedYearOption\"\n [maxVisibleItems]=\"10\"\n [itemHeight]=\"32\"\n (onValueChanged)=\"_handleYearSelectChanged($event)\"\n (click)=\"$event.stopPropagation()\"\n ></ax-select-box>\n </div>\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-calendar-day-nav-next\"\n (click)=\"_handleNextClick()\"\n [title]=\"'@acorex:common.actions.next' | translate | async\"\n >\n <i\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-right': !isRtl(),\n 'ax-icon-chevron-left': isRtl(),\n }\"\n ></i>\n </button>\n </div>\n }\n @if (showNavigation && look() === 'classic') {\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 {{ 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-icon ax-button-rounded ax-button-icon\"\n (click)=\"_handlePrevClick()\"\n [title]=\"'@acorex:common.actions.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-icon ax-button-rounded ax-button-icon\"\n (click)=\"_handleNextClick()\"\n [title]=\"'@acorex:common.actions.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 @for (d of weekLayout(); track d) {\n <div>{{ '@acorex:dateTime.weekdays.short.' + d | translate | async }}</div>\n }\n </div>\n\n <div class=\"ax-calendar-slots ax-calendar-slots-day\" [ngClass]=\"{ 'ax-default': !dayCellTemplate }\">\n @for (slot of v.slots; track slot.date.date.getTime()) {\n <button\n tabindex=\"0\"\n class=\"ax-calendar-slot\"\n [ngClass]=\"slot.cssClass\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-has-holiday-color]=\"!!slot.holidayColor\"\n [style.--ax-calendar-holiday-color]=\"slot.holidayColor ?? null\"\n (click)=\"_handleSlotClick($event, slot)\"\n [disabled]=\"disabled\"\n [axRipple]\n [axTooltip]=\"slot.tooltip ?? ''\"\n [axTooltipDisabled]=\"!slot.tooltip\"\n [title]=\"\n !slot.tooltip ? (slot.date | format: 'date' : { calendar: calendar(), format: 'long' } | async) : ''\n \"\n >\n @if (dayCellTemplate) {\n <div>\n <ng-container\n [ngTemplateOutlet]=\"dayCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { slot: slot } }\"\n >\n </ng-container>\n </div>\n } @else {\n <div class=\"ax-calendar-day-slot-content\">\n {{ slot.text }}\n </div>\n }\n </button>\n }\n </div>\n }\n }\n }\n</div>\n<ng-content select=\"ax-footer\"></ng-content>\n","import {\n AXComponent,\n AXRange,\n AXValuableComponent,\n MXInteractiveComponent,\n MXValueComponent,\n} from '@acorex/cdk/common';\nimport { AXCalendarService, AXDateTime } from '@acorex/core/date-time';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport {\n AfterViewInit,\n Component,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n inject,\n input,\n linkedSignal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXCalendarNavigationLookType, AXCalendarHolidaysLoader, 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.compiled.css'],\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 'dayCellTemplate',\n 'monthCellTemplate',\n 'yearCellTemplate',\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 AXUnsubscriber,\n { provide: AXComponent, useExisting: AXCalendarRangeComponent },\n ],\n imports: [AXCalendarComponent],\n})\nexport class AXCalendarRangeComponent\n extends classes(MXValueComponent<AXRange<Date>>, MXInteractiveComponent, MXCalendarBaseComponent)\n implements AfterViewInit\n{\n private formatService = inject(AXFormatService);\n private unsubscriber = inject(AXUnsubscriber);\n\n protected calendar = linkedSignal(() => this.type ?? this.localeService.activeProfile().calendar.system);\n\n /**\n * Day view navigation style passed through to embedded calendars.\n */\n look = input<AXCalendarNavigationLookType>('select');\n\n /**\n * Optional loader for holidays scoped to the visible calendar range.\n */\n holidays = input<AXCalendarHolidaysLoader>();\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 private _navUserInteraction = false;\n\n /**\n * @ignore\n */\n constructor() {\n super();\n this.defaultValue = { from: null, end: null };\n\n this.calendarService.calendarChanges$.pipe(this.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 }\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\n // check from value\n if (!this._calendarService.isValidDate(this.value.from)) {\n return null;\n }\n const from = this._calendarService.create(this.value.from, this.type);\n if (this.value.from && date.equal(from, 'day')) {\n return 'ax-range-start';\n }\n\n // check end value\n if (!this._calendarService.isValidDate(this.value.end)) {\n return null;\n }\n const end = this._calendarService.create(this.value.end, this.type);\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 this.onSlotClick.emit({\n component: this,\n item: e.item,\n isUserInteraction: true,\n nativeEvent: e,\n });\n if (this._c1.activeView == this.depth) {\n if (!this.value.from || (this.value.from && this.value.end)) {\n this.commitValue({ from: e.item, end: null }, true);\n }\n if (this.value.from && e.item <= this.value.from) {\n this.commitValue({ from: e.item, end: this.value.end }, true);\n } else if (this.value.from && !this.value.end) {\n this.commitValue({ from: this.value.from, end: e.item }, true);\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 this._navUserInteraction = true;\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 this._navUserInteraction = false;\n }\n\n /**\n * @ignore\n */\n protected handleNextClick() {\n this._navUserInteraction = true;\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 this._navUserInteraction = false;\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 this.onNavigate.emit({\n component: this,\n isUserInteraction: this._navUserInteraction,\n start: this._c1.displayRange.startTime?.date,\n end: this._c2.displayRange.endTime?.date,\n htmlElement: this.getHostElement(),\n });\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\" (click)=\"handleNavClick()\">\n {{ _navText }}\n </button>\n </div>\n <div class=\"ax-calendar-header-range-buttons\">\n <button\n type=\"button\"\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-icon\"\n (click)=\"handlePrevClick()\"\n >\n <i class=\"ax-icon ax-icon-chevron-left\"></i>\n </button>\n <button\n type=\"button\"\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-icon\"\n (click)=\"handleNextClick()\"\n >\n <i class=\"ax-icon ax-icon-chevron-right\"></i>\n </button>\n </div>\n</div>\n<div class=\"ax-calendar-range-body\">\n <ax-calendar\n #c1\n [showNavigation]=\"false\"\n [readonly]=\"true\"\n [cellClass]=\"getCellClass\"\n [type]=\"type\"\n [dayCellTemplate]=\"dayCellTemplate\"\n [monthCellTemplate]=\"monthCellTemplate\"\n [yearCellTemplate]=\"yearCellTemplate\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n [depth]=\"depth\"\n [look]=\"look()\"\n [holidays]=\"holidays()\"\n [holidayDates]=\"holidayDates\"\n (onSlotClick)=\"handleSlotClick($event)\"\n (onNavigate)=\"handleNavigate()\"\n (activeViewChange)=\"handleActiveViewChange1()\"\n >\n </ax-calendar>\n <ax-calendar\n #c2\n [showNavigation]=\"false\"\n [readonly]=\"true\"\n [cellClass]=\"getCellClass\"\n [type]=\"type\"\n [dayCellTemplate]=\"dayCellTemplate\"\n [monthCellTemplate]=\"monthCellTemplate\"\n [yearCellTemplate]=\"yearCellTemplate\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n [depth]=\"depth\"\n [look]=\"look()\"\n [holidays]=\"holidays()\"\n [holidayDates]=\"holidayDates\"\n (onSlotClick)=\"handleSlotClick($event)\"\n (activeViewChange)=\"handleActiveViewChange2()\"\n >\n </ax-calendar>\n</div>\n","import { NgModule } from '@angular/core';\nimport { AXCalendarRangeComponent } from './calendar-range.component';\nimport { AXCalendarComponent } from './calendar.component';\n\n@NgModule({\n imports: [AXCalendarComponent, AXCalendarRangeComponent],\n exports: [AXCalendarComponent, AXCalendarRangeComponent],\n})\nexport class AXCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|