@odx/angular 2.6.1 → 2.8.0
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/CHANGELOG.md +47 -0
- package/cdk/autocomplete-control/index.d.ts +0 -1
- package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +2 -3
- package/cdk/autocomplete-control/lib/pipes/base-search-filter-pipe.d.ts +3 -3
- package/cdk/custom-form-control/index.d.ts +1 -0
- package/cdk/{autocomplete-control/lib/abstract/base-search-field.directive.d.ts → custom-form-control/lib/input-control.directive.d.ts} +3 -3
- package/cdk/expandable/lib/directives/extandable-container.directive.d.ts +1 -0
- package/cdk/expandable/lib/expandable.tokens.d.ts +1 -1
- package/cdk/expandable/lib/facade/expandable-container.d.ts +1 -0
- package/charts-config/index.d.ts +1 -1
- package/charts-config/lib/charts-theme.directive.d.ts +2 -2
- package/charts-config/lib/charts-theme.service.d.ts +3 -3
- package/components/autocomplete/lib/autocomplete.component.d.ts +2 -2
- package/components/autocomplete/lib/autocomplete.module.d.ts +2 -2
- package/components/autocomplete/lib/directives/autocomplete-input-control.directive.d.ts +9 -0
- package/components/autocomplete/lib/directives/index.d.ts +1 -1
- package/components/calendar/README.md +3 -0
- package/components/calendar/index.d.ts +5 -0
- package/components/calendar/lib/calendar.component.d.ts +18 -0
- package/components/calendar/lib/calendar.config.d.ts +100 -0
- package/components/calendar/lib/components/calendar-header/calendar-header.component.d.ts +27 -0
- package/components/calendar/lib/components/calendar-header/index.d.ts +1 -0
- package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +21 -0
- package/components/calendar/lib/components/calendar-month/index.d.ts +1 -0
- package/components/calendar/lib/components/calendar-year/calendar-year.component.d.ts +18 -0
- package/components/calendar/lib/components/calendar-year/index.d.ts +1 -0
- package/components/calendar/lib/components/calendar-years/calendar-years.component.d.ts +20 -0
- package/components/calendar/lib/components/calendar-years/index.d.ts +1 -0
- package/components/calendar/lib/components/index.d.ts +4 -0
- package/components/calendar/lib/directives/calendar-cell.directive.d.ts +34 -0
- package/components/calendar/lib/directives/calendar-view.directive.d.ts +29 -0
- package/components/calendar/lib/directives/index.d.ts +2 -0
- package/components/calendar/lib/enums/calendar-view.enum.d.ts +5 -0
- package/components/calendar/lib/enums/index.d.ts +1 -0
- package/components/calendar/lib/models/date-filter.d.ts +1 -0
- package/components/calendar/lib/models/date-type.d.ts +1 -0
- package/components/calendar/lib/models/date-validator.d.ts +1 -0
- package/components/calendar/lib/models/index.d.ts +3 -0
- package/components/calendar/lib/pipes/date-label.pipe.d.ts +18 -0
- package/components/calendar/lib/pipes/index.d.ts +1 -0
- package/components/calendar/lib/services/calendar-month.service.d.ts +13 -0
- package/components/calendar/lib/services/calendar-year.service.d.ts +11 -0
- package/components/calendar/lib/services/calendar-years.service.d.ts +9 -0
- package/components/calendar/lib/services/calendar.service.d.ts +25 -0
- package/components/calendar/lib/services/index.d.ts +4 -0
- package/components/calendar/lib/utils/check-identical-date.d.ts +2 -0
- package/components/calendar/lib/utils/get-A11y-label.d.ts +3 -0
- package/components/calendar/lib/utils/index.d.ts +7 -0
- package/components/calendar/lib/utils/parse-date.d.ts +2 -0
- package/components/calendar/lib/utils/validate-max-date.d.ts +2 -0
- package/components/calendar/lib/utils/validate-min-date.d.ts +2 -0
- package/components/calendar/lib/utils/validate-next-date-set.d.ts +2 -0
- package/components/calendar/lib/utils/validate-previous-date-set.d.ts +2 -0
- package/components/datepicker/README.md +3 -0
- package/components/datepicker/index.d.ts +5 -0
- package/components/datepicker/lib/datepicker.component.d.ts +37 -0
- package/components/datepicker/lib/datepicker.config.d.ts +29 -0
- package/components/datepicker/lib/datepicker.module.d.ts +9 -0
- package/components/datepicker/lib/directives/datepicker-input-control.directive.d.ts +24 -0
- package/components/datepicker/lib/directives/index.d.ts +1 -0
- package/components/datepicker/lib/models/datepicker-input-date-order.d.ts +6 -0
- package/components/datepicker/lib/models/datepicker-input-pattern.d.ts +11 -0
- package/components/datepicker/lib/models/index.d.ts +2 -0
- package/components/datepicker/lib/utils/get-datepicker-input-pattern.d.ts +3 -0
- package/components/datepicker/lib/utils/get-datepicker-input-value-as-date.d.ts +2 -0
- package/components/datepicker/lib/utils/index.d.ts +2 -0
- package/components/modal/lib/components/modal-hero/modal-hero.component.d.ts +2 -1
- package/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.d.ts +2 -1
- package/components/select/lib/directives/index.d.ts +1 -1
- package/components/select/lib/directives/select-input-control.directive.d.ts +9 -0
- package/components/select/lib/select.component.d.ts +2 -2
- package/components/select/lib/select.module.d.ts +2 -2
- package/esm2020/cdk/autocomplete-control/index.mjs +1 -2
- package/esm2020/cdk/autocomplete-control/lib/autocomplete-control.mjs +1 -1
- package/esm2020/cdk/autocomplete-control/lib/pipes/base-search-filter-pipe.mjs +1 -1
- package/esm2020/cdk/custom-form-control/index.mjs +2 -1
- package/esm2020/cdk/custom-form-control/lib/input-control.directive.mjs +35 -0
- package/esm2020/cdk/expandable/lib/directives/expandable-item.directive.mjs +4 -4
- package/esm2020/cdk/expandable/lib/directives/extandable-container.directive.mjs +17 -2
- package/esm2020/cdk/expandable/lib/expandable.tokens.mjs +2 -2
- package/esm2020/cdk/expandable/lib/facade/expandable-container.mjs +1 -1
- package/esm2020/charts-config/index.mjs +2 -2
- package/esm2020/charts-config/lib/charts-theme.directive.mjs +7 -7
- package/esm2020/charts-config/lib/charts-theme.module.mjs +4 -4
- package/esm2020/charts-config/lib/charts-theme.service.mjs +5 -5
- package/esm2020/components/accordion/lib/accordion.component.mjs +4 -4
- package/esm2020/components/autocomplete/lib/autocomplete.component.mjs +4 -5
- package/esm2020/components/autocomplete/lib/autocomplete.module.mjs +4 -4
- package/esm2020/components/autocomplete/lib/directives/autocomplete-input-control.directive.mjs +32 -0
- package/esm2020/components/autocomplete/lib/directives/index.mjs +2 -2
- package/esm2020/components/calendar/index.mjs +6 -0
- package/esm2020/components/calendar/lib/calendar.component.mjs +57 -0
- package/esm2020/components/calendar/lib/calendar.config.mjs +15 -0
- package/esm2020/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +51 -0
- package/esm2020/components/calendar/lib/components/calendar-header/index.mjs +2 -0
- package/esm2020/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +59 -0
- package/esm2020/components/calendar/lib/components/calendar-month/index.mjs +2 -0
- package/esm2020/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +57 -0
- package/esm2020/components/calendar/lib/components/calendar-year/index.mjs +2 -0
- package/esm2020/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +65 -0
- package/esm2020/components/calendar/lib/components/calendar-years/index.mjs +2 -0
- package/esm2020/components/calendar/lib/components/index.mjs +5 -0
- package/esm2020/components/calendar/lib/directives/calendar-cell.directive.mjs +92 -0
- package/esm2020/components/calendar/lib/directives/calendar-view.directive.mjs +39 -0
- package/esm2020/components/calendar/lib/directives/index.mjs +3 -0
- package/esm2020/components/calendar/lib/enums/calendar-view.enum.mjs +7 -0
- package/esm2020/components/calendar/lib/enums/index.mjs +2 -0
- package/esm2020/components/calendar/lib/models/date-filter.mjs +2 -0
- package/esm2020/components/calendar/lib/models/date-type.mjs +2 -0
- package/esm2020/components/calendar/lib/models/date-validator.mjs +2 -0
- package/esm2020/components/calendar/lib/models/index.mjs +4 -0
- package/esm2020/components/calendar/lib/pipes/date-label.pipe.mjs +25 -0
- package/esm2020/components/calendar/lib/pipes/index.mjs +2 -0
- package/esm2020/components/calendar/lib/services/calendar-month.service.mjs +38 -0
- package/esm2020/components/calendar/lib/services/calendar-year.service.mjs +31 -0
- package/esm2020/components/calendar/lib/services/calendar-years.service.mjs +33 -0
- package/esm2020/components/calendar/lib/services/calendar.service.mjs +74 -0
- package/esm2020/components/calendar/lib/services/index.mjs +5 -0
- package/esm2020/components/calendar/lib/utils/check-identical-date.mjs +11 -0
- package/esm2020/components/calendar/lib/utils/get-A11y-label.mjs +10 -0
- package/esm2020/components/calendar/lib/utils/index.mjs +8 -0
- package/esm2020/components/calendar/lib/utils/parse-date.mjs +15 -0
- package/esm2020/components/calendar/lib/utils/validate-max-date.mjs +11 -0
- package/esm2020/components/calendar/lib/utils/validate-min-date.mjs +11 -0
- package/esm2020/components/calendar/lib/utils/validate-next-date-set.mjs +12 -0
- package/esm2020/components/calendar/lib/utils/validate-previous-date-set.mjs +12 -0
- package/esm2020/components/calendar/odx-angular-components-calendar.mjs +5 -0
- package/esm2020/components/datepicker/index.mjs +6 -0
- package/esm2020/components/datepicker/lib/datepicker.component.mjs +118 -0
- package/esm2020/components/datepicker/lib/datepicker.config.mjs +7 -0
- package/esm2020/components/datepicker/lib/datepicker.module.mjs +19 -0
- package/esm2020/components/datepicker/lib/directives/datepicker-input-control.directive.mjs +60 -0
- package/esm2020/components/datepicker/lib/directives/index.mjs +2 -0
- package/esm2020/components/datepicker/lib/models/datepicker-input-date-order.mjs +6 -0
- package/esm2020/components/datepicker/lib/models/datepicker-input-pattern.mjs +11 -0
- package/esm2020/components/datepicker/lib/models/index.mjs +3 -0
- package/esm2020/components/datepicker/lib/utils/get-datepicker-input-pattern.mjs +16 -0
- package/esm2020/components/datepicker/lib/utils/get-datepicker-input-value-as-date.mjs +30 -0
- package/esm2020/components/datepicker/lib/utils/index.mjs +3 -0
- package/esm2020/components/datepicker/odx-angular-components-datepicker.mjs +5 -0
- package/esm2020/components/list/lib/list.component.mjs +4 -4
- package/esm2020/components/modal/lib/components/basic-modal/basic-modal.component.mjs +2 -2
- package/esm2020/components/modal/lib/components/modal-hero/modal-hero.component.mjs +6 -3
- package/esm2020/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.mjs +8 -5
- package/esm2020/components/rail-navigation/lib/rail-navigation.component.mjs +1 -1
- package/esm2020/components/rich-list/lib/rich-list.component.mjs +4 -4
- package/esm2020/components/select/lib/directives/index.mjs +2 -2
- package/esm2020/components/select/lib/directives/select-input-control.directive.mjs +35 -0
- package/esm2020/components/select/lib/select.component.mjs +4 -4
- package/esm2020/components/select/lib/select.module.mjs +4 -4
- package/esm2020/utils/lib/helpers/index.mjs +2 -2
- package/fesm2015/odx-angular-cdk-autocomplete-control.mjs +4 -39
- package/fesm2015/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
- package/fesm2015/odx-angular-cdk-custom-form-control.mjs +34 -2
- package/fesm2015/odx-angular-cdk-custom-form-control.mjs.map +1 -1
- package/fesm2015/odx-angular-cdk-expandable.mjs +18 -4
- package/fesm2015/odx-angular-cdk-expandable.mjs.map +1 -1
- package/fesm2015/odx-angular-charts-config.mjs +13 -13
- package/fesm2015/odx-angular-charts-config.mjs.map +1 -1
- package/fesm2015/odx-angular-components-accordion.mjs +3 -3
- package/fesm2015/odx-angular-components-accordion.mjs.map +1 -1
- package/fesm2015/odx-angular-components-autocomplete.mjs +15 -12
- package/fesm2015/odx-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2015/odx-angular-components-calendar.mjs +623 -0
- package/fesm2015/odx-angular-components-calendar.mjs.map +1 -0
- package/fesm2015/odx-angular-components-datepicker.mjs +249 -0
- package/fesm2015/odx-angular-components-datepicker.mjs.map +1 -0
- package/fesm2015/odx-angular-components-list.mjs +3 -3
- package/fesm2015/odx-angular-components-list.mjs.map +1 -1
- package/fesm2015/odx-angular-components-modal.mjs +6 -3
- package/fesm2015/odx-angular-components-modal.mjs.map +1 -1
- package/fesm2015/odx-angular-components-rail-navigation.mjs +6 -3
- package/fesm2015/odx-angular-components-rail-navigation.mjs.map +1 -1
- package/fesm2015/odx-angular-components-rich-list.mjs +3 -3
- package/fesm2015/odx-angular-components-rich-list.mjs.map +1 -1
- package/fesm2015/odx-angular-components-select.mjs +14 -13
- package/fesm2015/odx-angular-components-select.mjs.map +1 -1
- package/fesm2015/odx-angular-utils.mjs +21 -21
- package/fesm2015/odx-angular-utils.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-autocomplete-control.mjs +4 -39
- package/fesm2020/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-custom-form-control.mjs +34 -2
- package/fesm2020/odx-angular-cdk-custom-form-control.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-expandable.mjs +18 -4
- package/fesm2020/odx-angular-cdk-expandable.mjs.map +1 -1
- package/fesm2020/odx-angular-charts-config.mjs +13 -13
- package/fesm2020/odx-angular-charts-config.mjs.map +1 -1
- package/fesm2020/odx-angular-components-accordion.mjs +3 -3
- package/fesm2020/odx-angular-components-accordion.mjs.map +1 -1
- package/fesm2020/odx-angular-components-autocomplete.mjs +15 -12
- package/fesm2020/odx-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2020/odx-angular-components-calendar.mjs +621 -0
- package/fesm2020/odx-angular-components-calendar.mjs.map +1 -0
- package/fesm2020/odx-angular-components-datepicker.mjs +249 -0
- package/fesm2020/odx-angular-components-datepicker.mjs.map +1 -0
- package/fesm2020/odx-angular-components-list.mjs +3 -3
- package/fesm2020/odx-angular-components-list.mjs.map +1 -1
- package/fesm2020/odx-angular-components-modal.mjs +6 -3
- package/fesm2020/odx-angular-components-modal.mjs.map +1 -1
- package/fesm2020/odx-angular-components-rail-navigation.mjs +6 -3
- package/fesm2020/odx-angular-components-rail-navigation.mjs.map +1 -1
- package/fesm2020/odx-angular-components-rich-list.mjs +3 -3
- package/fesm2020/odx-angular-components-rich-list.mjs.map +1 -1
- package/fesm2020/odx-angular-components-select.mjs +14 -13
- package/fesm2020/odx-angular-components-select.mjs.map +1 -1
- package/fesm2020/odx-angular-utils.mjs +21 -21
- package/fesm2020/odx-angular-utils.mjs.map +1 -1
- package/package.json +29 -7
- package/utils/lib/helpers/index.d.ts +1 -1
- package/cdk/autocomplete-control/lib/abstract/index.d.ts +0 -1
- package/components/autocomplete/lib/directives/autocomplete-search-field.directive.d.ts +0 -9
- package/components/select/lib/directives/select-search-field.directive.d.ts +0 -9
- package/esm2020/cdk/autocomplete-control/lib/abstract/base-search-field.directive.mjs +0 -38
- package/esm2020/cdk/autocomplete-control/lib/abstract/index.mjs +0 -2
- package/esm2020/components/autocomplete/lib/directives/autocomplete-search-field.directive.mjs +0 -26
- package/esm2020/components/select/lib/directives/select-search-field.directive.mjs +0 -35
package/esm2020/components/calendar/lib/components/calendar-month/calendar-month.component.mjs
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, inject, Output, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { CoreModule } from '@odx/angular';
|
|
4
|
+
import { CSSComponent } from '@odx/angular/internal';
|
|
5
|
+
import { addDays, addMonths, addWeeks, subDays, subMonths, subWeeks } from 'date-fns';
|
|
6
|
+
import { CalendarCellDirective, CalendarViewDirective } from '../../directives';
|
|
7
|
+
import { CalendarViewEnum } from '../../enums';
|
|
8
|
+
import { DateLabelPipe } from '../../pipes';
|
|
9
|
+
import { CalendarMonthService } from '../../services';
|
|
10
|
+
import { CalendarHeaderComponent } from '../calendar-header';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/common";
|
|
13
|
+
import * as i2 from "@odx/angular";
|
|
14
|
+
let CalendarMonthComponent = class CalendarMonthComponent extends CalendarViewDirective {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this.calendarMonth = inject(CalendarMonthService);
|
|
18
|
+
this.calendarNextView = CalendarViewEnum.Years;
|
|
19
|
+
this.calendarCurrentView = CalendarViewEnum.Month;
|
|
20
|
+
this.selectedChange = new EventEmitter();
|
|
21
|
+
}
|
|
22
|
+
previousDay(event) {
|
|
23
|
+
this.updateActiveDate(event, subDays(this.activeDate, 1));
|
|
24
|
+
}
|
|
25
|
+
nextDay(event) {
|
|
26
|
+
this.updateActiveDate(event, addDays(this.activeDate, 1));
|
|
27
|
+
}
|
|
28
|
+
previousWeek(event) {
|
|
29
|
+
this.updateActiveDate(event, subWeeks(this.activeDate, 1));
|
|
30
|
+
}
|
|
31
|
+
nextWeek(event) {
|
|
32
|
+
this.updateActiveDate(event, addWeeks(this.activeDate, 1));
|
|
33
|
+
}
|
|
34
|
+
previousMonth(event) {
|
|
35
|
+
this.updateActiveDate(event, subMonths(this.activeDate, 1));
|
|
36
|
+
}
|
|
37
|
+
nextMonth(event) {
|
|
38
|
+
this.updateActiveDate(event, addMonths(this.activeDate, 1));
|
|
39
|
+
}
|
|
40
|
+
selectDate(value) {
|
|
41
|
+
if (this.isDateDisabled(value))
|
|
42
|
+
return;
|
|
43
|
+
this.calendar.selectDate(value);
|
|
44
|
+
this.selectedChange.emit(value);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
CalendarMonthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarMonthComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
+
CalendarMonthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CalendarMonthComponent, isStandalone: true, selector: "odx-calendar-month", outputs: { selectedChange: "selectedChange" }, providers: [CalendarMonthService], usesInheritance: true, ngImport: i0, template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"7\">\n <odx-calendar-header (previous)=\"previousMonth($event)\" (next)=\"nextMonth($event)\" (changeView)=\"changeView()\">\n {{ calendar.activeDate$ | async | odxDateLabel: config.monthYearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n\n <tr class=\"odx-calendar__weekdays\">\n <td *ngFor=\"let day of calendarMonth.weekDays$ | async\">\n {{ day | odxDateLabel: config.weekLabel }}\n </td>\n </tr>\n </thead>\n\n <tbody\n *ngIf=\"calendar.activeDate$ | async as activeDate\"\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousDay($event)\"\n (keydown.ArrowRight)=\"nextDay($event)\"\n (keydown.ArrowUp)=\"previousWeek($event)\"\n (keydown.ArrowDown)=\"nextWeek($event)\"\n (keydown.PageUp)=\"previousMonth($event)\"\n (keydown.PageDown)=\"nextMonth($event)\"\n >\n <tr *ngFor=\"let week of calendarMonth.weeks$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let day of week; let i = index; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(day)\"\n [odxCalendarCell]=\"day\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellSelectedDate]=\"calendar.selectedDate$ | async\"\n (click)=\"selectDate(day)\"\n >\n {{ day | odxDateLabel: config.dayLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: CalendarCellDirective, selector: "[odxCalendarCell]", inputs: ["odxCalendarCell", "odxCalendarCellCalendarView", "odxCalendarCellActiveDate", "odxCalendarCellSelectedDate"] }, { kind: "component", type: CalendarHeaderComponent, selector: "odx-calendar-header", outputs: ["previous", "next", "changeView"] }, { kind: "pipe", type: DateLabelPipe, name: "odxDateLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
49
|
+
CalendarMonthComponent = __decorate([
|
|
50
|
+
CSSComponent('calendar-month')
|
|
51
|
+
], CalendarMonthComponent);
|
|
52
|
+
export { CalendarMonthComponent };
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarMonthComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: 'odx-calendar-month', standalone: true, imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [CalendarMonthService], template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"7\">\n <odx-calendar-header (previous)=\"previousMonth($event)\" (next)=\"nextMonth($event)\" (changeView)=\"changeView()\">\n {{ calendar.activeDate$ | async | odxDateLabel: config.monthYearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n\n <tr class=\"odx-calendar__weekdays\">\n <td *ngFor=\"let day of calendarMonth.weekDays$ | async\">\n {{ day | odxDateLabel: config.weekLabel }}\n </td>\n </tr>\n </thead>\n\n <tbody\n *ngIf=\"calendar.activeDate$ | async as activeDate\"\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousDay($event)\"\n (keydown.ArrowRight)=\"nextDay($event)\"\n (keydown.ArrowUp)=\"previousWeek($event)\"\n (keydown.ArrowDown)=\"nextWeek($event)\"\n (keydown.PageUp)=\"previousMonth($event)\"\n (keydown.PageDown)=\"nextMonth($event)\"\n >\n <tr *ngFor=\"let week of calendarMonth.weeks$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let day of week; let i = index; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(day)\"\n [odxCalendarCell]=\"day\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellSelectedDate]=\"calendar.selectedDate$ | async\"\n (click)=\"selectDate(day)\"\n >\n {{ day | odxDateLabel: config.dayLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n" }]
|
|
56
|
+
}], propDecorators: { selectedChange: [{
|
|
57
|
+
type: Output
|
|
58
|
+
}] } });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbW9udGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyLW1vbnRoL2NhbGVuZGFyLW1vbnRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci1tb250aC9jYWxlbmRhci1tb250aC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFZdEQsSUFBTSxzQkFBc0IsR0FBNUIsTUFBTSxzQkFBdUIsU0FBUSxxQkFBcUI7SUFBMUQ7O1FBQ2Msa0JBQWEsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUU3QyxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7UUFDMUMsd0JBQW1CLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1FBR3pELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7S0FnQzdEO0lBOUJRLFdBQVcsQ0FBQyxLQUFZO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQVk7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTSxZQUFZLENBQUMsS0FBWTtRQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFZO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQVk7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxTQUFTLENBQUMsS0FBWTtRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFXO1FBQzNCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPO1FBRXZDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O21IQXRDVSxzQkFBc0I7dUdBQXRCLHNCQUFzQixnSEFGdEIsQ0FBQyxvQkFBb0IsQ0FBQyxpRENuQm5DLG9pREEwQ0EsMkNEM0JZLFVBQVUsdVpBQUUscUJBQXFCLHNMQUFFLHVCQUF1Qix3R0FBRSxhQUFhO0FBTXhFLHNCQUFzQjtJQVZsQyxZQUFZLENBQUMsZ0JBQWdCLENBQUM7R0FVbEIsc0JBQXNCLENBdUNsQztTQXZDWSxzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFUbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsVUFBVSxFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixFQUFFLGFBQWEsQ0FBQyxtQkFFbkUsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLG9CQUFvQixDQUFDOzhCQVMxQixjQUFjO3NCQURwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGFkZERheXMsIGFkZE1vbnRocywgYWRkV2Vla3MsIHN1YkRheXMsIHN1Yk1vbnRocywgc3ViV2Vla3MgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBDYWxlbmRhckNlbGxEaXJlY3RpdmUsIENhbGVuZGFyVmlld0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3RW51bSB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IERhdGVUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IERhdGVMYWJlbFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IENhbGVuZGFySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FsZW5kYXItaGVhZGVyJztcblxuQENTU0NvbXBvbmVudCgnY2FsZW5kYXItbW9udGgnKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2R4LWNhbGVuZGFyLW1vbnRoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIENhbGVuZGFyQ2VsbERpcmVjdGl2ZSwgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQsIERhdGVMYWJlbFBpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItbW9udGguY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbQ2FsZW5kYXJNb250aFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhck1vbnRoQ29tcG9uZW50IGV4dGVuZHMgQ2FsZW5kYXJWaWV3RGlyZWN0aXZlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbGVuZGFyTW9udGggPSBpbmplY3QoQ2FsZW5kYXJNb250aFNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYWxlbmRhck5leHRWaWV3ID0gQ2FsZW5kYXJWaWV3RW51bS5ZZWFycztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbGVuZGFyQ3VycmVudFZpZXcgPSBDYWxlbmRhclZpZXdFbnVtLk1vbnRoO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVUeXBlIHwgbnVsbD4oKTtcblxuICBwdWJsaWMgcHJldmlvdXNEYXkoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBzdWJEYXlzKHRoaXMuYWN0aXZlRGF0ZSwgMSkpO1xuICB9XG5cbiAgcHVibGljIG5leHREYXkoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBhZGREYXlzKHRoaXMuYWN0aXZlRGF0ZSwgMSkpO1xuICB9XG5cbiAgcHVibGljIHByZXZpb3VzV2VlayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIHN1YldlZWtzKHRoaXMuYWN0aXZlRGF0ZSwgMSkpO1xuICB9XG5cbiAgcHVibGljIG5leHRXZWVrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgYWRkV2Vla3ModGhpcy5hY3RpdmVEYXRlLCAxKSk7XG4gIH1cblxuICBwdWJsaWMgcHJldmlvdXNNb250aChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIHN1Yk1vbnRocyh0aGlzLmFjdGl2ZURhdGUsIDEpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZXh0TW9udGgoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBhZGRNb250aHModGhpcy5hY3RpdmVEYXRlLCAxKSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RGF0ZSh2YWx1ZTogRGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGF0ZURpc2FibGVkKHZhbHVlKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5jYWxlbmRhci5zZWxlY3REYXRlKHZhbHVlKTtcbiAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG59XG4iLCI8dGFibGUgY2xhc3M9XCJvZHgtY2FsZW5kYXJfX3RhYmxlXCIgcm9sZT1cImdyaWRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwib2R4LWNhbGVuZGFyXCI+XG4gIDx0aGVhZD5cbiAgICA8dHI+XG4gICAgICA8dGggY29sc3Bhbj1cIjdcIj5cbiAgICAgICAgPG9keC1jYWxlbmRhci1oZWFkZXIgKHByZXZpb3VzKT1cInByZXZpb3VzTW9udGgoJGV2ZW50KVwiIChuZXh0KT1cIm5leHRNb250aCgkZXZlbnQpXCIgKGNoYW5nZVZpZXcpPVwiY2hhbmdlVmlldygpXCI+XG4gICAgICAgICAge3sgY2FsZW5kYXIuYWN0aXZlRGF0ZSQgfCBhc3luYyB8IG9keERhdGVMYWJlbDogY29uZmlnLm1vbnRoWWVhckxhYmVsIH19XG4gICAgICAgIDwvb2R4LWNhbGVuZGFyLWhlYWRlcj5cbiAgICAgIDwvdGg+XG4gICAgPC90cj5cblxuICAgIDx0ciBjbGFzcz1cIm9keC1jYWxlbmRhcl9fd2Vla2RheXNcIj5cbiAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgZGF5IG9mIGNhbGVuZGFyTW9udGgud2Vla0RheXMkIHwgYXN5bmNcIj5cbiAgICAgICAge3sgZGF5IHwgb2R4RGF0ZUxhYmVsOiBjb25maWcud2Vla0xhYmVsIH19XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG5cbiAgPHRib2R5XG4gICAgKm5nSWY9XCJjYWxlbmRhci5hY3RpdmVEYXRlJCB8IGFzeW5jIGFzIGFjdGl2ZURhdGVcIlxuICAgIGNsYXNzPVwib2R4LWNhbGVuZGFyX19ib2R5XCJcbiAgICAoa2V5ZG93bi5BcnJvd0xlZnQpPVwicHJldmlvdXNEYXkoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uQXJyb3dSaWdodCk9XCJuZXh0RGF5KCRldmVudClcIlxuICAgIChrZXlkb3duLkFycm93VXApPVwicHJldmlvdXNXZWVrKCRldmVudClcIlxuICAgIChrZXlkb3duLkFycm93RG93bik9XCJuZXh0V2VlaygkZXZlbnQpXCJcbiAgICAoa2V5ZG93bi5QYWdlVXApPVwicHJldmlvdXNNb250aCgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bi5QYWdlRG93bik9XCJuZXh0TW9udGgoJGV2ZW50KVwiXG4gID5cbiAgICA8dHIgKm5nRm9yPVwibGV0IHdlZWsgb2YgY2FsZW5kYXJNb250aC53ZWVrcyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCI+XG4gICAgICA8dGQgcm9sZT1cImdyaWRjZWxsXCIgKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0RhdGVEaXNhYmxlZChkYXkpXCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsXT1cImRheVwiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbEFjdGl2ZURhdGVdPVwiYWN0aXZlRGF0ZVwiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbFNlbGVjdGVkRGF0ZV09XCJjYWxlbmRhci5zZWxlY3RlZERhdGUkIHwgYXN5bmNcIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3REYXRlKGRheSlcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZGF5IHwgb2R4RGF0ZUxhYmVsOiBjb25maWcuZGF5TGFiZWwgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './calendar-month.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXItbW9udGgvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXItbW9udGguY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { CoreModule } from '@odx/angular';
|
|
4
|
+
import { CSSComponent } from '@odx/angular/internal';
|
|
5
|
+
import { addMonths, getMonth, setMonth, subMonths } from 'date-fns';
|
|
6
|
+
import { CalendarCellDirective, CalendarViewDirective } from '../../directives';
|
|
7
|
+
import { CalendarViewEnum } from '../../enums';
|
|
8
|
+
import { DateLabelPipe } from '../../pipes';
|
|
9
|
+
import { CalendarYearService } from '../../services';
|
|
10
|
+
import { CalendarHeaderComponent } from '../calendar-header';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/common";
|
|
13
|
+
import * as i2 from "@odx/angular";
|
|
14
|
+
let CalendarYearComponent = class CalendarYearComponent extends CalendarViewDirective {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this.calendarYear = inject(CalendarYearService);
|
|
18
|
+
this.calendarNextView = CalendarViewEnum.Month;
|
|
19
|
+
this.calendarCurrentView = CalendarViewEnum.Year;
|
|
20
|
+
}
|
|
21
|
+
previousMonth(event) {
|
|
22
|
+
this.updateActiveDate(event, subMonths(this.activeDate, 1));
|
|
23
|
+
}
|
|
24
|
+
nextMonth(event) {
|
|
25
|
+
this.updateActiveDate(event, addMonths(this.activeDate, 1));
|
|
26
|
+
}
|
|
27
|
+
previousSeason(event) {
|
|
28
|
+
this.updateActiveDate(event, subMonths(this.activeDate, 3));
|
|
29
|
+
}
|
|
30
|
+
nextSeason(event) {
|
|
31
|
+
this.updateActiveDate(event, addMonths(this.activeDate, 3));
|
|
32
|
+
}
|
|
33
|
+
previousYear(event) {
|
|
34
|
+
this.updateActiveDate(event, subMonths(this.activeDate, 12));
|
|
35
|
+
}
|
|
36
|
+
nextYear(event) {
|
|
37
|
+
this.updateActiveDate(event, addMonths(this.activeDate, 12));
|
|
38
|
+
}
|
|
39
|
+
selectDate(value) {
|
|
40
|
+
if (this.isDateDisabled(value))
|
|
41
|
+
return;
|
|
42
|
+
const date = setMonth(this.calendar.activeDate, getMonth(value));
|
|
43
|
+
this.calendar.selectDate(date);
|
|
44
|
+
this.changeView();
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
CalendarYearComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarYearComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
+
CalendarYearComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CalendarYearComponent, isStandalone: true, selector: "odx-calendar-year", providers: [CalendarYearService], usesInheritance: true, ngImport: i0, template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"3\">\n <odx-calendar-header (previous)=\"previousYear($event)\" (next)=\"nextYear($event)\" (changeView)=\"changeView()\">\n {{ calendar.activeDate$ | async | odxDateLabel: config.yearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n </thead>\n\n <tbody\n *ngIf=\"calendar.activeDate$ | async as activeDate\"\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousMonth($event)\"\n (keydown.ArrowRight)=\"nextMonth($event)\"\n (keydown.ArrowUp)=\"previousSeason($event)\"\n (keydown.ArrowDown)=\"nextSeason($event)\"\n (keydown.PageDown)=\"nextYear($event)\"\n (keydown.PageUp)=\"previousYear($event)\"\n >\n <tr class=\"odx-calendar__season\" *ngFor=\"let season of calendarYear.seasons$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let month of season; let i = index; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(month)\"\n [odxCalendarCell]=\"month\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellSelectedDate]=\"calendar.selectedDate$ | async\"\n [odxCalendarCellCalendarView]=\"calendarCurrentView\"\n (click)=\"selectDate(month)\"\n >\n {{ month | odxDateLabel: config.monthLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: CalendarCellDirective, selector: "[odxCalendarCell]", inputs: ["odxCalendarCell", "odxCalendarCellCalendarView", "odxCalendarCellActiveDate", "odxCalendarCellSelectedDate"] }, { kind: "component", type: CalendarHeaderComponent, selector: "odx-calendar-header", outputs: ["previous", "next", "changeView"] }, { kind: "pipe", type: DateLabelPipe, name: "odxDateLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
49
|
+
CalendarYearComponent = __decorate([
|
|
50
|
+
CSSComponent('calendar-year')
|
|
51
|
+
], CalendarYearComponent);
|
|
52
|
+
export { CalendarYearComponent };
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarYearComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: 'odx-calendar-year', standalone: true, imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [CalendarYearService], template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"3\">\n <odx-calendar-header (previous)=\"previousYear($event)\" (next)=\"nextYear($event)\" (changeView)=\"changeView()\">\n {{ calendar.activeDate$ | async | odxDateLabel: config.yearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n </thead>\n\n <tbody\n *ngIf=\"calendar.activeDate$ | async as activeDate\"\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousMonth($event)\"\n (keydown.ArrowRight)=\"nextMonth($event)\"\n (keydown.ArrowUp)=\"previousSeason($event)\"\n (keydown.ArrowDown)=\"nextSeason($event)\"\n (keydown.PageDown)=\"nextYear($event)\"\n (keydown.PageUp)=\"previousYear($event)\"\n >\n <tr class=\"odx-calendar__season\" *ngFor=\"let season of calendarYear.seasons$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let month of season; let i = index; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(month)\"\n [odxCalendarCell]=\"month\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellSelectedDate]=\"calendar.selectedDate$ | async\"\n [odxCalendarCellCalendarView]=\"calendarCurrentView\"\n (click)=\"selectDate(month)\"\n >\n {{ month | odxDateLabel: config.monthLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n" }]
|
|
56
|
+
}] });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIteWVhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXIteWVhci9jYWxlbmRhci15ZWFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci15ZWFyL2NhbGVuZGFyLXllYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFZdEQsSUFBTSxxQkFBcUIsR0FBM0IsTUFBTSxxQkFBc0IsU0FBUSxxQkFBcUI7SUFBekQ7O1FBQ2MsaUJBQVksR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUzQyxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7UUFDMUMsd0JBQW1CLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0tBa0NoRTtJQWhDUSxhQUFhLENBQUMsS0FBWTtRQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFZO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQVk7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxVQUFVLENBQUMsS0FBWTtRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFZO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQVk7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxVQUFVLENBQUMsS0FBVztRQUMzQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTztRQUV2QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7O2tIQXJDVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixnRUFGckIsQ0FBQyxtQkFBbUIsQ0FBQyxpRENsQmxDLHk5Q0FxQ0EsMkNEdkJZLFVBQVUsdVpBQUUscUJBQXFCLHNMQUFFLHVCQUF1Qix3R0FBRSxhQUFhO0FBTXhFLHFCQUFxQjtJQVZqQyxZQUFZLENBQUMsZUFBZSxDQUFDO0dBVWpCLHFCQUFxQixDQXNDakM7U0F0Q1kscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBVGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxhQUFhLENBQUMsbUJBRW5FLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGFkZE1vbnRocywgZ2V0TW9udGgsIHNldE1vbnRoLCBzdWJNb250aHMgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBDYWxlbmRhckNlbGxEaXJlY3RpdmUsIENhbGVuZGFyVmlld0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3RW51bSB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IERhdGVMYWJlbFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBDYWxlbmRhclllYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYWxlbmRhci1oZWFkZXInO1xuXG5AQ1NTQ29tcG9uZW50KCdjYWxlbmRhci15ZWFyJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC1jYWxlbmRhci15ZWFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIENhbGVuZGFyQ2VsbERpcmVjdGl2ZSwgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQsIERhdGVMYWJlbFBpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIteWVhci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtDYWxlbmRhclllYXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJZZWFyQ29tcG9uZW50IGV4dGVuZHMgQ2FsZW5kYXJWaWV3RGlyZWN0aXZlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbGVuZGFyWWVhciA9IGluamVjdChDYWxlbmRhclllYXJTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FsZW5kYXJOZXh0VmlldyA9IENhbGVuZGFyVmlld0VudW0uTW9udGg7XG4gIHByb3RlY3RlZCByZWFkb25seSBjYWxlbmRhckN1cnJlbnRWaWV3ID0gQ2FsZW5kYXJWaWV3RW51bS5ZZWFyO1xuXG4gIHB1YmxpYyBwcmV2aW91c01vbnRoKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgc3ViTW9udGhzKHRoaXMuYWN0aXZlRGF0ZSwgMSkpO1xuICB9XG5cbiAgcHVibGljIG5leHRNb250aChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIGFkZE1vbnRocyh0aGlzLmFjdGl2ZURhdGUsIDEpKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmV2aW91c1NlYXNvbihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIHN1Yk1vbnRocyh0aGlzLmFjdGl2ZURhdGUsIDMpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZXh0U2Vhc29uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgYWRkTW9udGhzKHRoaXMuYWN0aXZlRGF0ZSwgMykpO1xuICB9XG5cbiAgcHVibGljIHByZXZpb3VzWWVhcihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIHN1Yk1vbnRocyh0aGlzLmFjdGl2ZURhdGUsIDEyKSk7XG4gIH1cblxuICBwdWJsaWMgbmV4dFllYXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBhZGRNb250aHModGhpcy5hY3RpdmVEYXRlLCAxMikpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdERhdGUodmFsdWU6IERhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0RhdGVEaXNhYmxlZCh2YWx1ZSkpIHJldHVybjtcblxuICAgIGNvbnN0IGRhdGUgPSBzZXRNb250aCh0aGlzLmNhbGVuZGFyLmFjdGl2ZURhdGUsIGdldE1vbnRoKHZhbHVlKSk7XG4gICAgdGhpcy5jYWxlbmRhci5zZWxlY3REYXRlKGRhdGUpO1xuXG4gICAgdGhpcy5jaGFuZ2VWaWV3KCk7XG4gIH1cbn1cbiIsIjx0YWJsZSBjbGFzcz1cIm9keC1jYWxlbmRhcl9fdGFibGVcIiByb2xlPVwiZ3JpZFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJvZHgtY2FsZW5kYXJcIj5cbiAgPHRoZWFkPlxuICAgIDx0cj5cbiAgICAgIDx0aCBjb2xzcGFuPVwiM1wiPlxuICAgICAgICA8b2R4LWNhbGVuZGFyLWhlYWRlciAocHJldmlvdXMpPVwicHJldmlvdXNZZWFyKCRldmVudClcIiAobmV4dCk9XCJuZXh0WWVhcigkZXZlbnQpXCIgKGNoYW5nZVZpZXcpPVwiY2hhbmdlVmlldygpXCI+XG4gICAgICAgICAge3sgY2FsZW5kYXIuYWN0aXZlRGF0ZSQgfCBhc3luYyB8IG9keERhdGVMYWJlbDogY29uZmlnLnllYXJMYWJlbCB9fVxuICAgICAgICA8L29keC1jYWxlbmRhci1oZWFkZXI+XG4gICAgICA8L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG5cbiAgPHRib2R5XG4gICAgKm5nSWY9XCJjYWxlbmRhci5hY3RpdmVEYXRlJCB8IGFzeW5jIGFzIGFjdGl2ZURhdGVcIlxuICAgIGNsYXNzPVwib2R4LWNhbGVuZGFyX19ib2R5XCJcbiAgICAoa2V5ZG93bi5BcnJvd0xlZnQpPVwicHJldmlvdXNNb250aCgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bi5BcnJvd1JpZ2h0KT1cIm5leHRNb250aCgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bi5BcnJvd1VwKT1cInByZXZpb3VzU2Vhc29uKCRldmVudClcIlxuICAgIChrZXlkb3duLkFycm93RG93bik9XCJuZXh0U2Vhc29uKCRldmVudClcIlxuICAgIChrZXlkb3duLlBhZ2VEb3duKT1cIm5leHRZZWFyKCRldmVudClcIlxuICAgIChrZXlkb3duLlBhZ2VVcCk9XCJwcmV2aW91c1llYXIoJGV2ZW50KVwiXG4gID5cbiAgICA8dHIgY2xhc3M9XCJvZHgtY2FsZW5kYXJfX3NlYXNvblwiICpuZ0Zvcj1cImxldCBzZWFzb24gb2YgY2FsZW5kYXJZZWFyLnNlYXNvbnMkIHwgYXN5bmM7IHRyYWNrQnk6IHRyYWNrQnlJbmRleFwiPlxuICAgICAgPHRkIHJvbGU9XCJncmlkY2VsbFwiICpuZ0Zvcj1cImxldCBtb250aCBvZiBzZWFzb247IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlJbmRleFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGF0ZURpc2FibGVkKG1vbnRoKVwiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbF09XCJtb250aFwiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbEFjdGl2ZURhdGVdPVwiYWN0aXZlRGF0ZVwiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbFNlbGVjdGVkRGF0ZV09XCJjYWxlbmRhci5zZWxlY3RlZERhdGUkIHwgYXN5bmNcIlxuICAgICAgICAgIFtvZHhDYWxlbmRhckNlbGxDYWxlbmRhclZpZXddPVwiY2FsZW5kYXJDdXJyZW50Vmlld1wiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdERhdGUobW9udGgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IG1vbnRoIHwgb2R4RGF0ZUxhYmVsOiBjb25maWcubW9udGhMYWJlbCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './calendar-year.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXIteWVhci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWxlbmRhci15ZWFyLmNvbXBvbmVudCc7XG4iXX0=
|
package/esm2020/components/calendar/lib/components/calendar-years/calendar-years.component.mjs
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { DOCUMENT } from '@angular/common';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
|
|
4
|
+
import { CoreModule } from '@odx/angular';
|
|
5
|
+
import { CSSComponent } from '@odx/angular/internal';
|
|
6
|
+
import { deferFn, isFunction } from '@odx/angular/utils';
|
|
7
|
+
import { addMonths, getYear, setYear, subMonths } from 'date-fns';
|
|
8
|
+
import { CalendarCellDirective, CalendarViewDirective } from '../../directives';
|
|
9
|
+
import { CalendarViewEnum } from '../../enums';
|
|
10
|
+
import { DateLabelPipe } from '../../pipes';
|
|
11
|
+
import { CalendarYearsService } from '../../services';
|
|
12
|
+
import { CalendarHeaderComponent } from '../calendar-header';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/common";
|
|
15
|
+
import * as i2 from "@odx/angular";
|
|
16
|
+
let CalendarYearsComponent = class CalendarYearsComponent extends CalendarViewDirective {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.document = inject(DOCUMENT);
|
|
20
|
+
this.calendarYears = inject(CalendarYearsService);
|
|
21
|
+
this.calendarNextView = CalendarViewEnum.Year;
|
|
22
|
+
this.calendarCurrentView = CalendarViewEnum.Years;
|
|
23
|
+
}
|
|
24
|
+
ngAfterViewInit() {
|
|
25
|
+
deferFn(() => this.scrollCurrentYearIntoView());
|
|
26
|
+
}
|
|
27
|
+
previousYear(event) {
|
|
28
|
+
this.updateActiveDate(event, subMonths(this.activeDate, 12));
|
|
29
|
+
}
|
|
30
|
+
nextYear(event) {
|
|
31
|
+
this.updateActiveDate(event, addMonths(this.activeDate, 12));
|
|
32
|
+
}
|
|
33
|
+
previousRow(event) {
|
|
34
|
+
this.updateActiveDate(event, subMonths(this.activeDate, 12 * 3));
|
|
35
|
+
}
|
|
36
|
+
nextRow(event) {
|
|
37
|
+
this.updateActiveDate(event, addMonths(this.activeDate, 12 * 3));
|
|
38
|
+
}
|
|
39
|
+
selectDate(value) {
|
|
40
|
+
if (this.isDateDisabled(value))
|
|
41
|
+
return;
|
|
42
|
+
const date = setYear(this.calendar.activeDate, getYear(value));
|
|
43
|
+
this.calendar.selectDate(date);
|
|
44
|
+
this.changeView();
|
|
45
|
+
}
|
|
46
|
+
scrollCurrentYearIntoView() {
|
|
47
|
+
const selectedYear = this.document.querySelector('.odx-calendar-cell.is-selected');
|
|
48
|
+
const currentYear = this.document.querySelector('.odx-calendar-cell--is-current');
|
|
49
|
+
const element = selectedYear || currentYear;
|
|
50
|
+
if (element && isFunction(element.scrollIntoView)) {
|
|
51
|
+
element.scrollIntoView({ block: 'center', behavior: 'smooth' });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
CalendarYearsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarYearsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
56
|
+
CalendarYearsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CalendarYearsComponent, isStandalone: true, selector: "odx-calendar-years", providers: [CalendarYearsService], usesInheritance: true, ngImport: i0, template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead aria-hidden=\"true\">\n <th></th>\n </thead>\n\n <tbody\n *ngIf=\"calendar.activeDate$ | async as activeDate\"\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousYear($event)\"\n (keydown.ArrowRight)=\"nextYear($event)\"\n (keydown.ArrowUp)=\"previousRow($event)\"\n (keydown.ArrowDown)=\"nextRow($event)\"\n >\n <tr class=\"odx-calendar__year-row\" *ngFor=\"let yearRow of calendarYears.years; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let year of yearRow; let i = index; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(year)\"\n [odxCalendarCell]=\"year\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellSelectedDate]=\"calendar.selectedDate$ | async\"\n [odxCalendarCellCalendarView]=\"calendarCurrentView\"\n (click)=\"selectDate(year)\"\n >\n {{ year | odxDateLabel: config.yearLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: CalendarCellDirective, selector: "[odxCalendarCell]", inputs: ["odxCalendarCell", "odxCalendarCellCalendarView", "odxCalendarCellActiveDate", "odxCalendarCellSelectedDate"] }, { kind: "pipe", type: DateLabelPipe, name: "odxDateLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
57
|
+
CalendarYearsComponent = __decorate([
|
|
58
|
+
CSSComponent('calendar-years')
|
|
59
|
+
], CalendarYearsComponent);
|
|
60
|
+
export { CalendarYearsComponent };
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarYearsComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'odx-calendar-years', standalone: true, imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [CalendarYearsService], template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead aria-hidden=\"true\">\n <th></th>\n </thead>\n\n <tbody\n *ngIf=\"calendar.activeDate$ | async as activeDate\"\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousYear($event)\"\n (keydown.ArrowRight)=\"nextYear($event)\"\n (keydown.ArrowUp)=\"previousRow($event)\"\n (keydown.ArrowDown)=\"nextRow($event)\"\n >\n <tr class=\"odx-calendar__year-row\" *ngFor=\"let yearRow of calendarYears.years; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let year of yearRow; let i = index; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(year)\"\n [odxCalendarCell]=\"year\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellSelectedDate]=\"calendar.selectedDate$ | async\"\n [odxCalendarCellCalendarView]=\"calendarCurrentView\"\n (click)=\"selectDate(year)\"\n >\n {{ year | odxDateLabel: config.yearLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n" }]
|
|
64
|
+
}] });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIteWVhcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyLXllYXJzL2NhbGVuZGFyLXllYXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci15ZWFycy9jYWxlbmRhci15ZWFycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JB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T0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBkZWZlckZuLCBpc0Z1bmN0aW9uIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGFkZE1vbnRocywgZ2V0WWVhciwgc2V0WWVhciwgc3ViTW9udGhzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDZWxsRGlyZWN0aXZlLCBDYWxlbmRhclZpZXdEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IENhbGVuZGFyVmlld0VudW0gfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBEYXRlTGFiZWxQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJZZWFyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYWxlbmRhckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NhbGVuZGFyLWhlYWRlcic7XG5cbkBDU1NDb21wb25lbnQoJ2NhbGVuZGFyLXllYXJzJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC1jYWxlbmRhci15ZWFycycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBDYWxlbmRhckNlbGxEaXJlY3RpdmUsIENhbGVuZGFySGVhZGVyQ29tcG9uZW50LCBEYXRlTGFiZWxQaXBlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLXllYXJzLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW0NhbGVuZGFyWWVhcnNTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJZZWFyc0NvbXBvbmVudCBleHRlbmRzIENhbGVuZGFyVmlld0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FsZW5kYXJZZWFycyA9IGluamVjdChDYWxlbmRhclllYXJzU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbGVuZGFyTmV4dFZpZXcgPSBDYWxlbmRhclZpZXdFbnVtLlllYXI7XG4gIHByb3RlY3RlZCByZWFkb25seSBjYWxlbmRhckN1cnJlbnRWaWV3ID0gQ2FsZW5kYXJWaWV3RW51bS5ZZWFycztcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5zY3JvbGxDdXJyZW50WWVhckludG9WaWV3KCkpO1xuICB9XG5cbiAgcHVibGljIHByZXZpb3VzWWVhcihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIHN1Yk1vbnRocyh0aGlzLmFjdGl2ZURhdGUsIDEyKSk7XG4gIH1cblxuICBwdWJsaWMgbmV4dFllYXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBhZGRNb250aHModGhpcy5hY3RpdmVEYXRlLCAxMikpO1xuICB9XG5cbiAgcHVibGljIHByZXZpb3VzUm93KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgc3ViTW9udGhzKHRoaXMuYWN0aXZlRGF0ZSwgMTIgKiAzKSk7XG4gIH1cblxuICBwdWJsaWMgbmV4dFJvdyhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIGFkZE1vbnRocyh0aGlzLmFjdGl2ZURhdGUsIDEyICogMykpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdERhdGUodmFsdWU6IERhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0RhdGVEaXNhYmxlZCh2YWx1ZSkpIHJldHVybjtcblxuICAgIGNvbnN0IGRhdGUgPSBzZXRZZWFyKHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSwgZ2V0WWVhcih2YWx1ZSkpO1xuICAgIHRoaXMuY2FsZW5kYXIuc2VsZWN0RGF0ZShkYXRlKTtcblxuICAgIHRoaXMuY2hhbmdlVmlldygpO1xuICB9XG5cbiAgcHVibGljIHNjcm9sbEN1cnJlbnRZZWFySW50b1ZpZXcoKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRZZWFyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcub2R4LWNhbGVuZGFyLWNlbGwuaXMtc2VsZWN0ZWQnKTtcbiAgICBjb25zdCBjdXJyZW50WWVhciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm9keC1jYWxlbmRhci1jZWxsLS1pcy1jdXJyZW50Jyk7XG5cbiAgICBjb25zdCBlbGVtZW50ID0gc2VsZWN0ZWRZZWFyIHx8IGN1cnJlbnRZZWFyO1xuXG4gICAgaWYgKGVsZW1lbnQgJiYgaXNGdW5jdGlvbihlbGVtZW50LnNjcm9sbEludG9WaWV3KSkge1xuICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnY2VudGVyJywgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPHRhYmxlIGNsYXNzPVwib2R4LWNhbGVuZGFyX190YWJsZVwiIHJvbGU9XCJncmlkXCIgYXJpYS1kZXNjcmliZWRieT1cIm9keC1jYWxlbmRhclwiPlxuICA8dGhlYWQgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgPHRoPjwvdGg+XG4gIDwvdGhlYWQ+XG5cbiAgPHRib2R5XG4gICAgKm5nSWY9XCJjYWxlbmRhci5hY3RpdmVEYXRlJCB8IGFzeW5jIGFzIGFjdGl2ZURhdGVcIlxuICAgIGNsYXNzPVwib2R4LWNhbGVuZGFyX19ib2R5XCJcbiAgICAoa2V5ZG93bi5BcnJvd0xlZnQpPVwicHJldmlvdXNZZWFyKCRldmVudClcIlxuICAgIChrZXlkb3duLkFycm93UmlnaHQpPVwibmV4dFllYXIoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uQXJyb3dVcCk9XCJwcmV2aW91c1JvdygkZXZlbnQpXCJcbiAgICAoa2V5ZG93bi5BcnJvd0Rvd24pPVwibmV4dFJvdygkZXZlbnQpXCJcbiAgPlxuICAgIDx0ciBjbGFzcz1cIm9keC1jYWxlbmRhcl9feWVhci1yb3dcIiAqbmdGb3I9XCJsZXQgeWVhclJvdyBvZiBjYWxlbmRhclllYXJzLnllYXJzOyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIj5cbiAgICAgIDx0ZCByb2xlPVwiZ3JpZGNlbGxcIiAqbmdGb3I9XCJsZXQgeWVhciBvZiB5ZWFyUm93OyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0RhdGVEaXNhYmxlZCh5ZWFyKVwiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbF09XCJ5ZWFyXCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsQWN0aXZlRGF0ZV09XCJhY3RpdmVEYXRlXCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsU2VsZWN0ZWREYXRlXT1cImNhbGVuZGFyLnNlbGVjdGVkRGF0ZSQgfCBhc3luY1wiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbENhbGVuZGFyVmlld109XCJjYWxlbmRhckN1cnJlbnRWaWV3XCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZSh5ZWFyKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyB5ZWFyIHwgb2R4RGF0ZUxhYmVsOiBjb25maWcueWVhckxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './calendar-years.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXIteWVhcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXIteWVhcnMuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './calendar-header';
|
|
2
|
+
export * from './calendar-month';
|
|
3
|
+
export * from './calendar-year';
|
|
4
|
+
export * from './calendar-years';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXItaGVhZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXItbW9udGgnO1xuZXhwb3J0ICogZnJvbSAnLi9jYWxlbmRhci15ZWFyJztcbmV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXIteWVhcnMnO1xuIl19
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Directive, inject, Input } from '@angular/core';
|
|
3
|
+
import { DisabledController } from '@odx/angular';
|
|
4
|
+
import { CSSComponent, CSSModifier } from '@odx/angular/internal';
|
|
5
|
+
import { deferFn, hasChanged, injectElement } from '@odx/angular/utils';
|
|
6
|
+
import { isSameMonth } from 'date-fns';
|
|
7
|
+
import { injectCalendarConfig } from '../calendar.config';
|
|
8
|
+
import { CalendarViewEnum } from '../enums';
|
|
9
|
+
import { DateLabelPipe } from '../pipes';
|
|
10
|
+
import { checkIdenticalDate, getA11yLabel } from '../utils';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
let CalendarCellDirective = class CalendarCellDirective {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.disabledController = DisabledController.inject();
|
|
15
|
+
this.isActive = false;
|
|
16
|
+
this.isSelected = false;
|
|
17
|
+
this.isCurrent = false;
|
|
18
|
+
this.adjacent = false;
|
|
19
|
+
this.element = injectElement();
|
|
20
|
+
this.dateLabelPipe = inject(DateLabelPipe);
|
|
21
|
+
this.config = injectCalendarConfig();
|
|
22
|
+
this.calendarView = CalendarViewEnum.Month;
|
|
23
|
+
this.activeDate = null;
|
|
24
|
+
this.selectedDate = null;
|
|
25
|
+
}
|
|
26
|
+
get isDisabled() {
|
|
27
|
+
return !!this.disabledController?.disabled;
|
|
28
|
+
}
|
|
29
|
+
ngOnChanges(changes) {
|
|
30
|
+
if (hasChanged(changes, ['date'], false)) {
|
|
31
|
+
this.isCurrent = checkIdenticalDate(this.date, new Date(), this.calendarView);
|
|
32
|
+
}
|
|
33
|
+
if (this.activeDate && hasChanged(changes, ['date', 'activeDate'], false)) {
|
|
34
|
+
this.isActive = checkIdenticalDate(this.date, this.activeDate, this.calendarView);
|
|
35
|
+
if (this.calendarView === CalendarViewEnum.Month) {
|
|
36
|
+
this.adjacent = !isSameMonth(this.date, this.activeDate);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (this.selectedDate && hasChanged(changes, ['date', 'selectedDate'], false)) {
|
|
40
|
+
this.isSelected = checkIdenticalDate(this.date, this.selectedDate, this.calendarView);
|
|
41
|
+
}
|
|
42
|
+
if (this.isActive) {
|
|
43
|
+
deferFn(() => this.element.nativeElement.focus());
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
get ariaLabel() {
|
|
47
|
+
const dateFormat = getA11yLabel(this.calendarView, this.config);
|
|
48
|
+
return this.dateLabelPipe.transform(this.date, dateFormat);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
CalendarCellDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarCellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
52
|
+
CalendarCellDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: CalendarCellDirective, isStandalone: true, selector: "[odxCalendarCell]", inputs: { date: ["odxCalendarCell", "date"], calendarView: ["odxCalendarCellCalendarView", "calendarView"], activeDate: ["odxCalendarCellActiveDate", "activeDate"], selectedDate: ["odxCalendarCellSelectedDate", "selectedDate"] }, host: { properties: { "class.is-disabled": "isDisabled", "class.is-selected": "isSelected", "tabindex": "isActive ? 0 : -1", "attr.aria-label": "ariaLabel", "attr.aria-disabled": "isDisabled" } }, providers: [DisabledController.connect(), DateLabelPipe], usesOnChanges: true, ngImport: i0 });
|
|
53
|
+
__decorate([
|
|
54
|
+
CSSModifier(),
|
|
55
|
+
__metadata("design:type", Object)
|
|
56
|
+
], CalendarCellDirective.prototype, "isCurrent", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
CSSModifier(),
|
|
59
|
+
__metadata("design:type", Object)
|
|
60
|
+
], CalendarCellDirective.prototype, "adjacent", void 0);
|
|
61
|
+
CalendarCellDirective = __decorate([
|
|
62
|
+
CSSComponent('calendar-cell')
|
|
63
|
+
], CalendarCellDirective);
|
|
64
|
+
export { CalendarCellDirective };
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarCellDirective, decorators: [{
|
|
66
|
+
type: Directive,
|
|
67
|
+
args: [{
|
|
68
|
+
selector: '[odxCalendarCell]',
|
|
69
|
+
standalone: true,
|
|
70
|
+
providers: [DisabledController.connect(), DateLabelPipe],
|
|
71
|
+
host: {
|
|
72
|
+
'[class.is-disabled]': 'isDisabled',
|
|
73
|
+
'[class.is-selected]': 'isSelected',
|
|
74
|
+
'[tabindex]': 'isActive ? 0 : -1',
|
|
75
|
+
'[attr.aria-label]': 'ariaLabel',
|
|
76
|
+
'[attr.aria-disabled]': 'isDisabled',
|
|
77
|
+
},
|
|
78
|
+
}]
|
|
79
|
+
}], propDecorators: { isCurrent: [], adjacent: [], date: [{
|
|
80
|
+
type: Input,
|
|
81
|
+
args: ['odxCalendarCell']
|
|
82
|
+
}], calendarView: [{
|
|
83
|
+
type: Input,
|
|
84
|
+
args: ['odxCalendarCellCalendarView']
|
|
85
|
+
}], activeDate: [{
|
|
86
|
+
type: Input,
|
|
87
|
+
args: ['odxCalendarCellActiveDate']
|
|
88
|
+
}], selectedDate: [{
|
|
89
|
+
type: Input,
|
|
90
|
+
args: ['odxCalendarCellSelectedDate']
|
|
91
|
+
}] } });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItY2VsbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL2RpcmVjdGl2ZXMvY2FsZW5kYXItY2VsbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQWEsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBZXJELElBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXFCO0lBQTNCO1FBQ1ksdUJBQWtCLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFeEQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBR25CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQU1YLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUMxQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFh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QUk7c0JBRFYsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBSWpCLFlBQVk7c0JBRGxCLEtBQUs7dUJBQUMsNkJBQTZCO2dCQUk3QixVQUFVO3NCQURoQixLQUFLO3VCQUFDLDJCQUEyQjtnQkFJM0IsWUFBWTtzQkFEbEIsS0FBSzt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlzYWJsZWRDb250cm9sbGVyIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCwgQ1NTTW9kaWZpZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgZGVmZXJGbiwgaGFzQ2hhbmdlZCwgaW5qZWN0RWxlbWVudCwgTmdDaGFuZ2VzIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGlzU2FtZU1vbnRoIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgaW5qZWN0Q2FsZW5kYXJDb25maWcgfSBmcm9tICcuLi9jYWxlbmRhci5jb25maWcnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3RW51bSB9IGZyb20gJy4uL2VudW1zJztcbmltcG9ydCB7IERhdGVMYWJlbFBpcGUgfSBmcm9tICcuLi9waXBlcyc7XG5pbXBvcnQgeyBjaGVja0lkZW50aWNhbERhdGUsIGdldEExMXlMYWJlbCB9IGZyb20gJy4uL3V0aWxzJztcblxuQENTU0NvbXBvbmVudCgnY2FsZW5kYXItY2VsbCcpXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbb2R4Q2FsZW5kYXJDZWxsXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW0Rpc2FibGVkQ29udHJvbGxlci5jb25uZWN0KCksIERhdGVMYWJlbFBpcGVdLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5pcy1kaXNhYmxlZF0nOiAnaXNEaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5pcy1zZWxlY3RlZF0nOiAnaXNTZWxlY3RlZCcsXG4gICAgJ1t0YWJpbmRleF0nOiAnaXNBY3RpdmUgPyAwIDogLTEnLFxuICAgICdbYXR0ci5hcmlhLWxhYmVsXSc6ICdhcmlhTGFiZWwnLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdpc0Rpc2FibGVkJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDZWxsRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkaXNhYmxlZENvbnRyb2xsZXIgPSBEaXNhYmxlZENvbnRyb2xsZXIuaW5qZWN0KCk7XG5cbiAgcHJvdGVjdGVkIGlzQWN0aXZlID0gZmFsc2U7XG4gIHByb3RlY3RlZCBpc1NlbGVjdGVkID0gZmFsc2U7XG5cbiAgQENTU01vZGlmaWVyKClcbiAgcHJvdGVjdGVkIGlzQ3VycmVudCA9IGZhbHNlO1xuXG4gIEBDU1NNb2RpZmllcigpXG4gIHByb3RlY3RlZCBhZGphY2VudCA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRpc2FibGVkQ29udHJvbGxlcj8uZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGVMYWJlbFBpcGUgPSBpbmplY3QoRGF0ZUxhYmVsUGlwZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdENhbGVuZGFyQ29uZmlnKCk7XG5cbiAgQElucHV0KCdvZHhDYWxlbmRhckNlbGwnKVxuICBwdWJsaWMgZGF0ZSE6IERhdGU7XG5cbiAgQElucHV0KCdvZHhDYWxlbmRhckNlbGxDYWxlbmRhclZpZXcnKVxuICBwdWJsaWMgY2FsZW5kYXJWaWV3OiBDYWxlbmRhclZpZXdFbnVtID0gQ2FsZW5kYXJWaWV3RW51bS5Nb250aDtcblxuICBASW5wdXQoJ29keENhbGVuZGFyQ2VsbEFjdGl2ZURhdGUnKVxuICBwdWJsaWMgYWN0aXZlRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgnb2R4Q2FsZW5kYXJDZWxsU2VsZWN0ZWREYXRlJylcbiAgcHVibGljIHNlbGVjdGVkRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBOZ0NoYW5nZXM8Q2FsZW5kYXJDZWxsRGlyZWN0aXZlPik6IHZvaWQge1xuICAgIGlmIChoYXNDaGFuZ2VkKGNoYW5nZXMsIFsnZGF0ZSddLCBmYWxzZSkpIHtcbiAgICAgIHRoaXMuaXNDdXJyZW50ID0gY2hlY2tJZGVudGljYWxEYXRlKHRoaXMuZGF0ZSwgbmV3IERhdGUoKSwgdGhpcy5jYWxlbmRhclZpZXcpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFjdGl2ZURhdGUgJiYgaGFzQ2hhbmdlZChjaGFuZ2VzLCBbJ2RhdGUnLCAnYWN0aXZlRGF0ZSddLCBmYWxzZSkpIHtcbiAgICAgIHRoaXMuaXNBY3RpdmUgPSBjaGVja0lkZW50aWNhbERhdGUodGhpcy5kYXRlLCB0aGlzLmFjdGl2ZURhdGUsIHRoaXMuY2FsZW5kYXJWaWV3KTtcblxuICAgICAgaWYgKHRoaXMuY2FsZW5kYXJWaWV3ID09PSBDYWxlbmRhclZpZXdFbnVtLk1vbnRoKSB7XG4gICAgICAgIHRoaXMuYWRqYWNlbnQgPSAhaXNTYW1lTW9udGgodGhpcy5kYXRlLCB0aGlzLmFjdGl2ZURhdGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZSAmJiBoYXNDaGFuZ2VkKGNoYW5nZXMsIFsnZGF0ZScsICdzZWxlY3RlZERhdGUnXSwgZmFsc2UpKSB7XG4gICAgICB0aGlzLmlzU2VsZWN0ZWQgPSBjaGVja0lkZW50aWNhbERhdGUodGhpcy5kYXRlLCB0aGlzLnNlbGVjdGVkRGF0ZSwgdGhpcy5jYWxlbmRhclZpZXcpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzQWN0aXZlKSB7XG4gICAgICBkZWZlckZuKCgpID0+IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0ZUZvcm1hdCA9IGdldEExMXlMYWJlbCh0aGlzLmNhbGVuZGFyVmlldywgdGhpcy5jb25maWcpO1xuICAgIHJldHVybiB0aGlzLmRhdGVMYWJlbFBpcGUudHJhbnNmb3JtKHRoaXMuZGF0ZSwgZGF0ZUZvcm1hdCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Directive, inject } from '@angular/core';
|
|
2
|
+
import { injectElement, untilDestroyed } from '@odx/angular/utils';
|
|
3
|
+
import { injectCalendarConfig } from '../calendar.config';
|
|
4
|
+
import { CalendarService } from '../services';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class CalendarViewDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.takeUntilDestroyed = untilDestroyed();
|
|
9
|
+
this.calendar = inject(CalendarService);
|
|
10
|
+
this.config = injectCalendarConfig();
|
|
11
|
+
this.element = injectElement();
|
|
12
|
+
}
|
|
13
|
+
get activeDate() {
|
|
14
|
+
return this.calendar.activeDate;
|
|
15
|
+
}
|
|
16
|
+
trackByIndex(index) {
|
|
17
|
+
return index;
|
|
18
|
+
}
|
|
19
|
+
isDateDisabled(value) {
|
|
20
|
+
return this.calendar.isDateDisabled(value);
|
|
21
|
+
}
|
|
22
|
+
changeView() {
|
|
23
|
+
this.calendar.changeView(this.calendarNextView);
|
|
24
|
+
}
|
|
25
|
+
updateActiveDate(event, date) {
|
|
26
|
+
event.preventDefault();
|
|
27
|
+
event.stopPropagation();
|
|
28
|
+
this.calendar.setActiveDate(date);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
CalendarViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarViewDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
32
|
+
CalendarViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: CalendarViewDirective, isStandalone: true, ngImport: i0 });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarViewDirective, decorators: [{
|
|
34
|
+
type: Directive,
|
|
35
|
+
args: [{
|
|
36
|
+
standalone: true,
|
|
37
|
+
}]
|
|
38
|
+
}] });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItdmlldy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL2RpcmVjdGl2ZXMvY2FsZW5kYXItdmlldy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUs5QyxNQUFNLE9BQWdCLHFCQUFxQjtJQUgzQztRQUlxQix1QkFBa0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUV0QyxhQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBTXRDLFdBQU0sR0FBRyxvQkFBb0IsRUFBRSxDQUFDO1FBRWhDLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztLQTBCM0M7SUF4QkMsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFDbEMsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFhO1FBQy9CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFXO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsS0FBWSxFQUFFLElBQVU7UUFDOUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDOztrSEFsQ21CLHFCQUFxQjtzR0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBSDFDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQsIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGluamVjdENhbGVuZGFyQ29uZmlnIH0gZnJvbSAnLi4vY2FsZW5kYXIuY29uZmlnJztcbmltcG9ydCB7IENhbGVuZGFyVmlld0VudW0gfSBmcm9tICcuLi9lbnVtcyc7XG5pbXBvcnQgeyBDYWxlbmRhclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDYWxlbmRhclZpZXdEaXJlY3RpdmUge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FsZW5kYXIgPSBpbmplY3QoQ2FsZW5kYXJTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgY2FsZW5kYXJOZXh0VmlldzogQ2FsZW5kYXJWaWV3RW51bTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgY2FsZW5kYXJDdXJyZW50VmlldzogQ2FsZW5kYXJWaWV3RW51bTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0Q2FsZW5kYXJDb25maWcoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBwdWJsaWMgZ2V0IGFjdGl2ZURhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFja0J5SW5kZXgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgcHVibGljIGlzRGF0ZURpc2FibGVkKHZhbHVlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsZW5kYXIuaXNEYXRlRGlzYWJsZWQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZVZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxlbmRhci5jaGFuZ2VWaWV3KHRoaXMuY2FsZW5kYXJOZXh0Vmlldyk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQWN0aXZlRGF0ZShldmVudDogRXZlbnQsIGRhdGU6IERhdGUpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5jYWxlbmRhci5zZXRBY3RpdmVEYXRlKGRhdGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNlbGVjdERhdGUoZXZlbnQ6IERhdGUpOiB2b2lkO1xufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './calendar-cell.directive';
|
|
2
|
+
export * from './calendar-view.directive';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWxlbmRhci1jZWxsLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2NhbGVuZGFyLXZpZXcuZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var CalendarViewEnum;
|
|
2
|
+
(function (CalendarViewEnum) {
|
|
3
|
+
CalendarViewEnum["Month"] = "month";
|
|
4
|
+
CalendarViewEnum["Year"] = "year";
|
|
5
|
+
CalendarViewEnum["Years"] = "years";
|
|
6
|
+
})(CalendarViewEnum || (CalendarViewEnum = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItdmlldy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9lbnVtcy9jYWxlbmRhci12aWV3LmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksZ0JBSVg7QUFKRCxXQUFZLGdCQUFnQjtJQUMxQixtQ0FBZSxDQUFBO0lBQ2YsaUNBQWEsQ0FBQTtJQUNiLG1DQUFlLENBQUE7QUFDakIsQ0FBQyxFQUpXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFJM0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBDYWxlbmRhclZpZXdFbnVtIHtcbiAgTW9udGggPSAnbW9udGgnLFxuICBZZWFyID0gJ3llYXInLFxuICBZZWFycyA9ICd5ZWFycycsXG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './calendar-view.enum';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL2VudW1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhbGVuZGFyLXZpZXcuZW51bSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL21vZGVscy9kYXRlLWZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRGF0ZUZpbHRlciA9IChkYXRlOiBEYXRlKSA9PiBib29sZWFuO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9tb2RlbHMvZGF0ZS10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBEYXRlVHlwZSA9IERhdGUgfCBudW1iZXIgfCBzdHJpbmc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL21vZGVscy9kYXRlLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRGF0ZVZhbGlkYXRvciA9IChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpID0+IGJvb2xlYW47XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './date-filter';
|
|
2
|
+
export * from './date-type';
|
|
3
|
+
export * from './date-validator';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRlLWZpbHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUtdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUtdmFsaWRhdG9yJztcbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { format } from 'date-fns';
|
|
3
|
+
import { injectCalendarConfig } from '../calendar.config';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DateLabelPipe {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.config = injectCalendarConfig();
|
|
8
|
+
}
|
|
9
|
+
transform(value, dateFormat) {
|
|
10
|
+
if (!value)
|
|
11
|
+
return '';
|
|
12
|
+
return format(value, dateFormat, { locale: this.config.locale.getValue() });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
DateLabelPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateLabelPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
16
|
+
DateLabelPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: DateLabelPipe, isStandalone: true, name: "odxDateLabel", pure: false });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateLabelPipe, decorators: [{
|
|
18
|
+
type: Pipe,
|
|
19
|
+
args: [{
|
|
20
|
+
pure: false,
|
|
21
|
+
name: 'odxDateLabel',
|
|
22
|
+
standalone: true,
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1sYWJlbC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9waXBlcy9kYXRlLWxhYmVsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFPMUQsTUFBTSxPQUFPLGFBQWE7SUFMMUI7UUFNa0IsV0FBTSxHQUFHLG9CQUFvQixFQUFFLENBQUM7S0FPakQ7SUFMUSxTQUFTLENBQUMsS0FBa0IsRUFBRSxVQUFrQjtRQUNyRCxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXRCLE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7OzBHQVBVLGFBQWE7d0dBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUx6QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxLQUFLO29CQUNYLElBQUksRUFBRSxjQUFjO29CQUNwQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBpbmplY3RDYWxlbmRhckNvbmZpZyB9IGZyb20gJy4uL2NhbGVuZGFyLmNvbmZpZyc7XG5cbkBQaXBlKHtcbiAgcHVyZTogZmFsc2UsXG4gIG5hbWU6ICdvZHhEYXRlTGFiZWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlTGFiZWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHB1YmxpYyByZWFkb25seSBjb25maWcgPSBpbmplY3RDYWxlbmRhckNvbmZpZygpO1xuXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IERhdGUgfCBudWxsLCBkYXRlRm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHJldHVybiAnJztcblxuICAgIHJldHVybiBmb3JtYXQodmFsdWUsIGRhdGVGb3JtYXQsIHsgbG9jYWxlOiB0aGlzLmNvbmZpZy5sb2NhbGUuZ2V0VmFsdWUoKSB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './date-label.pipe';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL3BpcGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGUtbGFiZWwucGlwZSc7XG4iXX0=
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { addDays, endOfMonth, endOfWeek, startOfMonth, startOfWeek } from 'date-fns';
|
|
3
|
+
import { map } from 'rxjs';
|
|
4
|
+
import { CalendarService } from './calendar.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class CalendarMonthService {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.calendar = inject(CalendarService);
|
|
9
|
+
this.weekDays$ = this.calendar.activeDate$.pipe(map((date) => this.generateWeekDays(date)));
|
|
10
|
+
this.weeks$ = this.calendar.activeDate$.pipe(map((date) => this.generateWeeks(date)));
|
|
11
|
+
}
|
|
12
|
+
generateWeekDays(date) {
|
|
13
|
+
const firstWeekDay = startOfWeek(date, { weekStartsOn: 1 });
|
|
14
|
+
return Array.from({ length: 7 }, (_, i) => addDays(firstWeekDay, i));
|
|
15
|
+
}
|
|
16
|
+
generateWeeks(date) {
|
|
17
|
+
const startOfTheSelectedMonth = startOfMonth(date);
|
|
18
|
+
const endOfTheSelectedMonth = endOfMonth(date);
|
|
19
|
+
const startDate = startOfWeek(startOfTheSelectedMonth, { weekStartsOn: 1 });
|
|
20
|
+
const endDate = endOfWeek(endOfTheSelectedMonth);
|
|
21
|
+
const allWeeks = [];
|
|
22
|
+
let currentDate = startDate;
|
|
23
|
+
while (currentDate <= endDate) {
|
|
24
|
+
allWeeks.push(this.generateDaysForWeek(currentDate, date));
|
|
25
|
+
currentDate = addDays(currentDate, 7);
|
|
26
|
+
}
|
|
27
|
+
return allWeeks;
|
|
28
|
+
}
|
|
29
|
+
generateDaysForWeek(date, currentDate) {
|
|
30
|
+
return Array.from({ length: 7 }).map((_, i) => addDays(date, i), currentDate);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
CalendarMonthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarMonthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
34
|
+
CalendarMonthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarMonthService });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarMonthService, decorators: [{
|
|
36
|
+
type: Injectable
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbW9udGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvc2VydmljZXMvY2FsZW5kYXItbW9udGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNyRixPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFHckQsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUVxQixhQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXRDLGNBQVMsR0FBdUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRyxXQUFNLEdBQXlCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBMkJ4SDtJQXpCUSxnQkFBZ0IsQ0FBQyxJQUFVO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU1RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVNLGFBQWEsQ0FBQyxJQUFVO1FBQzdCLE1BQU0sdUJBQXVCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELE1BQU0scUJBQXFCLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUVwQixJQUFJLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDNUIsT0FBTyxXQUFXLElBQUksT0FBTyxFQUFFO1lBQzdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzNELFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVNLG1CQUFtQixDQUFDLElBQVUsRUFBRSxXQUFpQjtRQUN0RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7O2lIQTlCVSxvQkFBb0I7cUhBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhZGREYXlzLCBlbmRPZk1vbnRoLCBlbmRPZldlZWssIHN0YXJ0T2ZNb250aCwgc3RhcnRPZldlZWsgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4vY2FsZW5kYXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYWxlbmRhck1vbnRoU2VydmljZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBjYWxlbmRhciA9IGluamVjdChDYWxlbmRhclNlcnZpY2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSB3ZWVrRGF5cyQ6IE9ic2VydmFibGU8RGF0ZVtdPiA9IHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSQucGlwZShtYXAoKGRhdGUpID0+IHRoaXMuZ2VuZXJhdGVXZWVrRGF5cyhkYXRlKSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgd2Vla3MkOiBPYnNlcnZhYmxlPERhdGVbXVtdPiA9IHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSQucGlwZShtYXAoKGRhdGUpID0+IHRoaXMuZ2VuZXJhdGVXZWVrcyhkYXRlKSkpO1xuXG4gIHB1YmxpYyBnZW5lcmF0ZVdlZWtEYXlzKGRhdGU6IERhdGUpOiBEYXRlW10ge1xuICAgIGNvbnN0IGZpcnN0V2Vla0RheSA9IHN0YXJ0T2ZXZWVrKGRhdGUsIHsgd2Vla1N0YXJ0c09uOiAxIH0pO1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IDcgfSwgKF8sIGkpID0+IGFkZERheXMoZmlyc3RXZWVrRGF5LCBpKSk7XG4gIH1cblxuICBwdWJsaWMgZ2VuZXJhdGVXZWVrcyhkYXRlOiBEYXRlKTogRGF0ZVtdW10ge1xuICAgIGNvbnN0IHN0YXJ0T2ZUaGVTZWxlY3RlZE1vbnRoID0gc3RhcnRPZk1vbnRoKGRhdGUpO1xuICAgIGNvbnN0IGVuZE9mVGhlU2VsZWN0ZWRNb250aCA9IGVuZE9mTW9udGgoZGF0ZSk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gc3RhcnRPZldlZWsoc3RhcnRPZlRoZVNlbGVjdGVkTW9udGgsIHsgd2Vla1N0YXJ0c09uOiAxIH0pO1xuICAgIGNvbnN0IGVuZERhdGUgPSBlbmRPZldlZWsoZW5kT2ZUaGVTZWxlY3RlZE1vbnRoKTtcbiAgICBjb25zdCBhbGxXZWVrcyA9IFtdO1xuXG4gICAgbGV0IGN1cnJlbnREYXRlID0gc3RhcnREYXRlO1xuICAgIHdoaWxlIChjdXJyZW50RGF0ZSA8PSBlbmREYXRlKSB7XG4gICAgICBhbGxXZWVrcy5wdXNoKHRoaXMuZ2VuZXJhdGVEYXlzRm9yV2VlayhjdXJyZW50RGF0ZSwgZGF0ZSkpO1xuICAgICAgY3VycmVudERhdGUgPSBhZGREYXlzKGN1cnJlbnREYXRlLCA3KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWxsV2Vla3M7XG4gIH1cblxuICBwdWJsaWMgZ2VuZXJhdGVEYXlzRm9yV2VlayhkYXRlOiBEYXRlLCBjdXJyZW50RGF0ZTogRGF0ZSk6IERhdGVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IDcgfSkubWFwKChfLCBpKSA9PiBhZGREYXlzKGRhdGUsIGkpLCBjdXJyZW50RGF0ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { eachMonthOfInterval, endOfYear, startOfYear } from 'date-fns';
|
|
3
|
+
import { map } from 'rxjs';
|
|
4
|
+
import { CalendarService } from './calendar.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class CalendarYearService {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.calendar = inject(CalendarService);
|
|
9
|
+
this.seasonSeparator = 3;
|
|
10
|
+
this.seasons$ = this.calendar.activeDate$.pipe(map((selectedDate) => this.generateSeasons(selectedDate)));
|
|
11
|
+
}
|
|
12
|
+
generateSeasons(date) {
|
|
13
|
+
const seasons = [];
|
|
14
|
+
const months = eachMonthOfInterval({
|
|
15
|
+
start: startOfYear(date),
|
|
16
|
+
end: endOfYear(date),
|
|
17
|
+
});
|
|
18
|
+
let index = 0;
|
|
19
|
+
while (index < months.length) {
|
|
20
|
+
seasons.push(months.slice(index, index + this.seasonSeparator));
|
|
21
|
+
index += this.seasonSeparator;
|
|
22
|
+
}
|
|
23
|
+
return seasons;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
CalendarYearService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarYearService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
27
|
+
CalendarYearService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarYearService });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarYearService, decorators: [{
|
|
29
|
+
type: Injectable
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIteWVhci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9zZXJ2aWNlcy9jYWxlbmRhci15ZWFyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkUsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBR3JELE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFcUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV0QyxvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUVwQixhQUFRLEdBQXlCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBaUI1STtJQWZRLGVBQWUsQ0FBQyxJQUFVO1FBQy9CLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQztZQUNqQyxLQUFLLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztZQUN4QixHQUFHLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQztTQUNyQixDQUFDLENBQUM7UUFFSCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxPQUFPLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQy9CO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7Z0hBckJVLG1CQUFtQjtvSEFBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGVhY2hNb250aE9mSW50ZXJ2YWwsIGVuZE9mWWVhciwgc3RhcnRPZlllYXIgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4vY2FsZW5kYXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYWxlbmRhclllYXJTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbGVuZGFyID0gaW5qZWN0KENhbGVuZGFyU2VydmljZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNlYXNvblNlcGFyYXRvciA9IDM7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNlYXNvbnMkOiBPYnNlcnZhYmxlPERhdGVbXVtdPiA9IHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSQucGlwZShtYXAoKHNlbGVjdGVkRGF0ZSkgPT4gdGhpcy5nZW5lcmF0ZVNlYXNvbnMoc2VsZWN0ZWREYXRlKSkpO1xuXG4gIHB1YmxpYyBnZW5lcmF0ZVNlYXNvbnMoZGF0ZTogRGF0ZSk6IERhdGVbXVtdIHtcbiAgICBjb25zdCBzZWFzb25zID0gW107XG4gICAgY29uc3QgbW9udGhzID0gZWFjaE1vbnRoT2ZJbnRlcnZhbCh7XG4gICAgICBzdGFydDogc3RhcnRPZlllYXIoZGF0ZSksXG4gICAgICBlbmQ6IGVuZE9mWWVhcihkYXRlKSxcbiAgICB9KTtcblxuICAgIGxldCBpbmRleCA9IDA7XG4gICAgd2hpbGUgKGluZGV4IDwgbW9udGhzLmxlbmd0aCkge1xuICAgICAgc2Vhc29ucy5wdXNoKG1vbnRocy5zbGljZShpbmRleCwgaW5kZXggKyB0aGlzLnNlYXNvblNlcGFyYXRvcikpO1xuICAgICAgaW5kZXggKz0gdGhpcy5zZWFzb25TZXBhcmF0b3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlYXNvbnM7XG4gIH1cbn1cbiJdfQ==
|