@skyux/datetime 11.31.0 → 12.0.0-alpha.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/documentation.json +925 -917
- package/fesm2022/skyux-datetime.mjs +105 -102
- package/fesm2022/skyux-datetime.mjs.map +1 -1
- package/package.json +15 -19
- package/esm2022/index.mjs +0 -23
- package/esm2022/lib/modules/date-pipe/date-pipe.module.mjs +0 -20
- package/esm2022/lib/modules/date-pipe/date.pipe.mjs +0 -68
- package/esm2022/lib/modules/date-pipe/date.service.mjs +0 -94
- package/esm2022/lib/modules/date-pipe/fuzzy-date.pipe.mjs +0 -47
- package/esm2022/lib/modules/date-range-picker/date-range-picker-end-date-resource-key.pipe.mjs +0 -21
- package/esm2022/lib/modules/date-range-picker/date-range-picker-start-date-resource-key.pipe.mjs +0 -21
- package/esm2022/lib/modules/date-range-picker/date-range-picker.component.mjs +0 -445
- package/esm2022/lib/modules/date-range-picker/date-range-picker.module.mjs +0 -17
- package/esm2022/lib/modules/date-range-picker/date-range.service.mjs +0 -95
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculation.mjs +0 -2
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculator-config.mjs +0 -2
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.mjs +0 -2
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculator-id.mjs +0 -118
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculator-type.mjs +0 -23
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculator-validate-function.mjs +0 -2
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculator.mjs +0 -71
- package/esm2022/lib/modules/date-range-picker/types/date-range-default-calculator-config.mjs +0 -2
- package/esm2022/lib/modules/date-range-picker/types/date-range-default-calculator-configs.mjs +0 -173
- package/esm2022/lib/modules/date-range-picker/types/date-range-relative-value.mjs +0 -249
- package/esm2022/lib/modules/date-range-picker/types/date-range.mjs +0 -2
- package/esm2022/lib/modules/datepicker/calendar/datepicker-calendar-change.mjs +0 -2
- package/esm2022/lib/modules/datepicker/calendar/datepicker-calendar-inner.component.mjs +0 -383
- package/esm2022/lib/modules/datepicker/calendar/datepicker-calendar-label.pipe.mjs +0 -39
- package/esm2022/lib/modules/datepicker/calendar/datepicker-calendar.component.mjs +0 -100
- package/esm2022/lib/modules/datepicker/calendar/datepicker-calendar.service.mjs +0 -22
- package/esm2022/lib/modules/datepicker/calendar/daypicker-button.component.mjs +0 -23
- package/esm2022/lib/modules/datepicker/calendar/daypicker-cell.component.mjs +0 -129
- package/esm2022/lib/modules/datepicker/calendar/daypicker-context.mjs +0 -2
- package/esm2022/lib/modules/datepicker/calendar/daypicker.component.mjs +0 -221
- package/esm2022/lib/modules/datepicker/calendar/monthpicker.component.mjs +0 -80
- package/esm2022/lib/modules/datepicker/calendar/yearpicker.component.mjs +0 -87
- package/esm2022/lib/modules/datepicker/date-formatter.mjs +0 -38
- package/esm2022/lib/modules/datepicker/datepicker-config.service.mjs +0 -21
- package/esm2022/lib/modules/datepicker/datepicker-custom-date.mjs +0 -2
- package/esm2022/lib/modules/datepicker/datepicker-host.service.mjs +0 -61
- package/esm2022/lib/modules/datepicker/datepicker-input.directive.mjs +0 -526
- package/esm2022/lib/modules/datepicker/datepicker.component.mjs +0 -419
- package/esm2022/lib/modules/datepicker/datepicker.module.mjs +0 -62
- package/esm2022/lib/modules/datepicker/fuzzy/datepicker-input-fuzzy.directive.mjs +0 -516
- package/esm2022/lib/modules/datepicker/fuzzy/fuzzy-date.mjs +0 -2
- package/esm2022/lib/modules/datepicker/fuzzy/fuzzy-date.service.mjs +0 -411
- package/esm2022/lib/modules/shared/sky-datetime-resources.module.mjs +0 -130
- package/esm2022/lib/modules/timepicker/timepicker-time-format-type.mjs +0 -2
- package/esm2022/lib/modules/timepicker/timepicker-time-output.mjs +0 -2
- package/esm2022/lib/modules/timepicker/timepicker.component.mjs +0 -415
- package/esm2022/lib/modules/timepicker/timepicker.directive.mjs +0 -226
- package/esm2022/lib/modules/timepicker/timepicker.module.mjs +0 -37
- package/esm2022/skyux-datetime.mjs +0 -5
- package/esm2022/testing/legacy/datepicker-fixture.mjs +0 -56
- package/esm2022/testing/legacy/timepicker-fixture.mjs +0 -52
- package/esm2022/testing/modules/date-range-picker/date-range-picker-harness.filters.mjs +0 -2
- package/esm2022/testing/modules/date-range-picker/date-range-picker-harness.mjs +0 -193
- package/esm2022/testing/modules/datepicker/datepicker-calendar-harness.filters.mjs +0 -2
- package/esm2022/testing/modules/datepicker/datepicker-calendar-harness.mjs +0 -88
- package/esm2022/testing/modules/datepicker/datepicker-harness.filters.mjs +0 -2
- package/esm2022/testing/modules/datepicker/datepicker-harness.mjs +0 -60
- package/esm2022/testing/modules/datepicker/datepicker-input-harness.mjs +0 -29
- package/esm2022/testing/modules/datepicker/fuzzy-datepicker-input-harness.mjs +0 -29
- package/esm2022/testing/public-api.mjs +0 -6
- package/esm2022/testing/skyux-datetime-testing.mjs +0 -5
@@ -1,80 +0,0 @@
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
2
|
-
import { Component } from '@angular/core';
|
3
|
-
import { SkyDatepickerCalendarLabelPipe } from './datepicker-calendar-label.pipe';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "./datepicker-calendar-inner.component";
|
6
|
-
import * as i2 from "@angular/common";
|
7
|
-
/**
|
8
|
-
* @internal
|
9
|
-
*/
|
10
|
-
export class SkyMonthPickerComponent {
|
11
|
-
constructor(datepicker) {
|
12
|
-
this.rows = [];
|
13
|
-
this.title = '';
|
14
|
-
this.datepicker = datepicker;
|
15
|
-
}
|
16
|
-
ngOnInit() {
|
17
|
-
this.datepicker.stepMonth = {
|
18
|
-
years: 1,
|
19
|
-
};
|
20
|
-
this.datepicker.setRefreshViewHandler(() => this.#refreshMonthView(), 'month');
|
21
|
-
this.datepicker.setCompareHandler(this.#compareMonth, 'month');
|
22
|
-
this.datepicker.refreshView();
|
23
|
-
this.datepicker.setKeydownHandler((key, event) => {
|
24
|
-
this.#keydownMonths(key, event);
|
25
|
-
}, 'month');
|
26
|
-
}
|
27
|
-
#compareMonth(date1, date2) {
|
28
|
-
const d1 = new Date(date1.getFullYear(), date1.getMonth());
|
29
|
-
const d2 = new Date(date2.getFullYear(), date2.getMonth());
|
30
|
-
return d1.getTime() - d2.getTime();
|
31
|
-
}
|
32
|
-
#refreshMonthView() {
|
33
|
-
const months = new Array(12);
|
34
|
-
const year = this.datepicker.activeDate.getFullYear();
|
35
|
-
let date;
|
36
|
-
for (let i = 0; i < 12; i++) {
|
37
|
-
date = new Date(year, i, 1);
|
38
|
-
date = this.datepicker.fixTimeZone(date);
|
39
|
-
months[i] = this.datepicker.createDateObject(date, this.datepicker.formatMonth, false, this.datepicker.datepickerId + '-' + i);
|
40
|
-
}
|
41
|
-
this.rows = this.datepicker.createCalendarRows(months, this.datepicker.monthColLimit);
|
42
|
-
return this.datepicker.dateFilter(this.datepicker.activeDate, this.datepicker.formatMonthTitle);
|
43
|
-
}
|
44
|
-
#keydownMonths(key, event) {
|
45
|
-
let date = this.datepicker.activeDate.getMonth();
|
46
|
-
/* istanbul ignore else */
|
47
|
-
/* sanity check */
|
48
|
-
if (key === 'arrowleft') {
|
49
|
-
date = date - 1;
|
50
|
-
}
|
51
|
-
else if (key === 'arrowup') {
|
52
|
-
date = date - this.datepicker.monthColLimit;
|
53
|
-
}
|
54
|
-
else if (key === 'arrowright') {
|
55
|
-
date = date + 1;
|
56
|
-
}
|
57
|
-
else if (key === 'arrowdown') {
|
58
|
-
date = date + this.datepicker.monthColLimit;
|
59
|
-
}
|
60
|
-
else if (key === 'pageup' || key === 'pagedown') {
|
61
|
-
const year = this.datepicker.activeDate.getFullYear() + (key === 'pageup' ? -1 : 1);
|
62
|
-
this.datepicker.activeDate.setFullYear(year);
|
63
|
-
}
|
64
|
-
else if (key === 'home') {
|
65
|
-
date = 0;
|
66
|
-
}
|
67
|
-
else if (key === 'end') {
|
68
|
-
date = 11;
|
69
|
-
}
|
70
|
-
this.datepicker.activeDate.setMonth(date);
|
71
|
-
this.datepicker.announceDate(this.datepicker.activeDate, this.datepicker.formatMonthLabel);
|
72
|
-
}
|
73
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyMonthPickerComponent, deps: [{ token: i1.SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component }); }
|
74
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SkyMonthPickerComponent, isStandalone: true, selector: "sky-monthpicker", ngImport: i0, template: "<table role=\"grid\">\n <tbody>\n @for (row of rows; track $index) {\n <tr>\n @for (date of row; track date.uid) {\n <td class=\"text-center\" role=\"gridcell\" [id]=\"date.uid\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date)\n }\"\n [attr.aria-label]=\"\n date.date\n | skyDatepickerCalendarLabel: datepicker.formatMonthLabel\n \"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date)\"\n >\n <span [ngClass]=\"{ 'sky-datepicker-current': date.current }\">{{\n date.label\n }}</span>\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SkyDatepickerCalendarLabelPipe, name: "skyDatepickerCalendarLabel" }] }); }
|
75
|
-
}
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyMonthPickerComponent, decorators: [{
|
77
|
-
type: Component,
|
78
|
-
args: [{ imports: [CommonModule, SkyDatepickerCalendarLabelPipe], selector: 'sky-monthpicker', standalone: true, template: "<table role=\"grid\">\n <tbody>\n @for (row of rows; track $index) {\n <tr>\n @for (date of row; track date.uid) {\n <td class=\"text-center\" role=\"gridcell\" [id]=\"date.uid\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date)\n }\"\n [attr.aria-label]=\"\n date.date\n | skyDatepickerCalendarLabel: datepicker.formatMonthLabel\n \"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date)\"\n >\n <span [ngClass]=\"{ 'sky-datepicker-current': date.current }\">{{\n date.label\n }}</span>\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n" }]
|
79
|
-
}], ctorParameters: () => [{ type: i1.SkyDatepickerCalendarInnerComponent }] });
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGhwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3NyYy9saWIvbW9kdWxlcy9kYXRlcGlja2VyL2NhbGVuZGFyL21vbnRocGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvZGF0ZXBpY2tlci9jYWxlbmRhci9tb250aHBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUdsRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQUdsRjs7R0FFRztBQU9ILE1BQU0sT0FBTyx1QkFBdUI7SUFPbEMsWUFBWSxVQUErQztRQUpwRCxTQUFJLEdBQTRCLEVBQUUsQ0FBQztRQUVuQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBR2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUc7WUFDMUIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDO1FBRUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FDbkMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQzlCLE9BQU8sQ0FDUixDQUFDO1FBRUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFF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VyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLENBQUM7YUFBTSxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsQ0FBQzthQUFNLElBQUksR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3pCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FDakMsQ0FBQztJQUNKLENBQUM7K0dBMUZVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDJFQ2hCcEMsZ2xDQWdDQSwyQ0RyQlksWUFBWSx3SEFBRSw4QkFBOEI7OzRGQUszQyx1QkFBdUI7a0JBTm5DLFNBQVM7OEJBQ0MsQ0FBQyxZQUFZLEVBQUUsOEJBQThCLENBQUMsWUFDN0MsaUJBQWlCLGNBQ2YsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckNhbGVuZGFyTGFiZWxQaXBlIH0gZnJvbSAnLi9kYXRlcGlja2VyLWNhbGVuZGFyLWxhYmVsLnBpcGUnO1xuaW1wb3J0IHsgU2t5RGF5UGlja2VyQ29udGV4dCB9IGZyb20gJy4vZGF5cGlja2VyLWNvbnRleHQnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2t5RGF0ZXBpY2tlckNhbGVuZGFyTGFiZWxQaXBlXSxcbiAgc2VsZWN0b3I6ICdza3ktbW9udGhwaWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJ21vbnRocGlja2VyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TW9udGhQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgZGF0ZXBpY2tlcjogU2t5RGF0ZXBpY2tlckNhbGVuZGFySW5uZXJDb21wb25lbnQ7XG5cbiAgcHVibGljIHJvd3M6IFNreURheVBpY2tlckNvbnRleHRbXVtdID0gW107XG5cbiAgcHVibGljIHRpdGxlID0gJyc7XG5cbiAgY29uc3RydWN0b3IoZGF0ZXBpY2tlcjogU2t5RGF0ZXBpY2tlckNhbGVuZGFySW5uZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLmRhdGVwaWNrZXIgPSBkYXRlcGlja2VyO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0ZXBpY2tlci5zdGVwTW9udGggPSB7XG4gICAgICB5ZWFyczogMSxcbiAgICB9O1xuXG4gICAgdGhpcy5kYXRlcGlja2VyLnNldFJlZnJlc2hWaWV3SGFuZGxlcihcbiAgICAgICgpID0+IHRoaXMuI3JlZnJlc2hNb250aFZpZXcoKSxcbiAgICAgICdtb250aCcsXG4gICAgKTtcblxuICAgIHRoaXMuZGF0ZXBpY2tlci5zZXRDb21wYXJlSGFuZGxlcih0aGlzLiNjb21wYXJlTW9udGgsICdtb250aCcpO1xuXG4gICAgdGhpcy5kYXRlcGlja2VyLnJlZnJlc2hWaWV3KCk7XG5cbiAgICB0aGlzLmRhdGVwaWNrZXIuc2V0S2V5ZG93bkhhbmRsZXIoKGtleTogc3RyaW5nLCBldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgdGhpcy4ja2V5ZG93bk1vbnRocyhrZXksIGV2ZW50KTtcbiAgICB9LCAnbW9udGgnKTtcbiAgfVxuXG4gICNjb21wYXJlTW9udGgoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogbnVtYmVyIHtcbiAgICBjb25zdCBkMSA9IG5ldyBEYXRlKGRhdGUxLmdldEZ1bGxZZWFyKCksIGRhdGUxLmdldE1vbnRoKCkpO1xuICAgIGNvbnN0IGQyID0gbmV3IERhdGUoZGF0ZTIuZ2V0RnVsbFllYXIoKSwgZGF0ZTIuZ2V0TW9udGgoKSk7XG4gICAgcmV0dXJuIGQxLmdldFRpbWUoKSAtIGQyLmdldFRpbWUoKTtcbiAgfVxuXG4gICNyZWZyZXNoTW9udGhWaWV3KCk6IHN0cmluZyB7XG4gICAgY29uc3QgbW9udGhzID0gbmV3IEFycmF5PFNreURheVBpY2tlckNvbnRleHQ+KDEyKTtcbiAgICBjb25zdCB5ZWFyOiBudW1iZXIgPSB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGxldCBkYXRlOiBEYXRlO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICBkYXRlID0gbmV3IERhdGUoeWVhciwgaSwgMSk7XG4gICAgICBkYXRlID0gdGhpcy5kYXRlcGlja2VyLmZpeFRpbWVab25lKGRhdGUpO1xuICAgICAgbW9udGhzW2ldID0gdGhpcy5kYXRlcGlja2VyLmNyZWF0ZURhdGVPYmplY3QoXG4gICAgICAgIGRhdGUsXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5mb3JtYXRNb250aCxcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5kYXRlcGlja2VySWQgKyAnLScgKyBpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnJvd3MgPSB0aGlzLmRhdGVwaWNrZXIuY3JlYXRlQ2FsZW5kYXJSb3dzKFxuICAgICAgbW9udGhzLFxuICAgICAgdGhpcy5kYXRlcGlja2VyLm1vbnRoQ29sTGltaXQsXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmRhdGVwaWNrZXIuZGF0ZUZpbHRlcihcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLFxuICAgICAgdGhpcy5kYXRlcGlja2VyLmZvcm1hdE1vbnRoVGl0bGUsXG4gICAgKTtcbiAgfVxuXG4gICNrZXlkb3duTW9udGhzKGtleTogc3RyaW5nLCBldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGxldCBkYXRlID0gdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0TW9udGgoKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgaWYgKGtleSA9PT0gJ2Fycm93bGVmdCcpIHtcbiAgICAgIGRhdGUgPSBkYXRlIC0gMTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2Fycm93dXAnKSB7XG4gICAgICBkYXRlID0gZGF0ZSAtIHRoaXMuZGF0ZXBpY2tlci5tb250aENvbExpbWl0O1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYXJyb3dyaWdodCcpIHtcbiAgICAgIGRhdGUgPSBkYXRlICsgMTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2Fycm93ZG93bicpIHtcbiAgICAgIGRhdGUgPSBkYXRlICsgdGhpcy5kYXRlcGlja2VyLm1vbnRoQ29sTGltaXQ7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdwYWdldXAnIHx8IGtleSA9PT0gJ3BhZ2Vkb3duJykge1xuICAgICAgY29uc3QgeWVhciA9XG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCkgKyAoa2V5ID09PSAncGFnZXVwJyA/IC0xIDogMSk7XG4gICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5zZXRGdWxsWWVhcih5ZWFyKTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2hvbWUnKSB7XG4gICAgICBkYXRlID0gMDtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2VuZCcpIHtcbiAgICAgIGRhdGUgPSAxMTtcbiAgICB9XG4gICAgdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuc2V0TW9udGgoZGF0ZSk7XG4gICAgdGhpcy5kYXRlcGlja2VyLmFubm91bmNlRGF0ZShcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLFxuICAgICAgdGhpcy5kYXRlcGlja2VyLmZvcm1hdE1vbnRoTGFiZWwsXG4gICAgKTtcbiAgfVxufVxuIiwiPHRhYmxlIHJvbGU9XCJncmlkXCI+XG4gIDx0Ym9keT5cbiAgICBAZm9yIChyb3cgb2Ygcm93czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8dHI+XG4gICAgICAgIEBmb3IgKGRhdGUgb2Ygcm93OyB0cmFjayBkYXRlLnVpZCkge1xuICAgICAgICAgIDx0ZCBjbGFzcz1cInRleHQtY2VudGVyXCIgcm9sZT1cImdyaWRjZWxsXCIgW2lkXT1cImRhdGUudWlkXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1kYXRlcGlja2VyLWJ0bi1kYXRlXCJcbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnc2t5LWRhdGVwaWNrZXItYnRuLXNlbGVjdGVkJzogZGF0ZS5zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAnc2t5LWJ0bi1kaXNhYmxlZCc6IGRhdGUuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJ3NreS1idG4tYWN0aXZlJzogZGF0ZXBpY2tlci5pc0FjdGl2ZShkYXRlKVxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICBkYXRlLmRhdGVcbiAgICAgICAgICAgICAgICAgIHwgc2t5RGF0ZXBpY2tlckNhbGVuZGFyTGFiZWw6IGRhdGVwaWNrZXIuZm9ybWF0TW9udGhMYWJlbFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGF0ZS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJkYXRlcGlja2VyLnNlbGVjdENhbGVuZGFyKCRldmVudCwgZGF0ZS5kYXRlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cInsgJ3NreS1kYXRlcGlja2VyLWN1cnJlbnQnOiBkYXRlLmN1cnJlbnQgfVwiPnt7XG4gICAgICAgICAgICAgICAgZGF0ZS5sYWJlbFxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIH1cbiAgICAgIDwvdHI+XG4gICAgfVxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
|
@@ -1,87 +0,0 @@
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
2
|
-
import { Component } from '@angular/core';
|
3
|
-
import { SkyDatepickerCalendarLabelPipe } from './datepicker-calendar-label.pipe';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "./datepicker-calendar-inner.component";
|
6
|
-
import * as i2 from "@angular/common";
|
7
|
-
/**
|
8
|
-
* @internal
|
9
|
-
*/
|
10
|
-
export class SkyYearPickerComponent {
|
11
|
-
constructor(datepicker) {
|
12
|
-
this.rows = [];
|
13
|
-
this.title = '';
|
14
|
-
this.datepicker = datepicker;
|
15
|
-
}
|
16
|
-
ngOnInit() {
|
17
|
-
this.datepicker.stepYear = { years: this.datepicker.yearRange };
|
18
|
-
this.datepicker.setRefreshViewHandler(() => this.#refreshYearView(), 'year');
|
19
|
-
this.datepicker.setCompareHandler(this.#compareYears, 'year');
|
20
|
-
this.datepicker.setKeydownHandler((key, event) => {
|
21
|
-
this.#keydownYears(key, event);
|
22
|
-
}, 'year');
|
23
|
-
this.datepicker.refreshView();
|
24
|
-
}
|
25
|
-
getStartingYear(year) {
|
26
|
-
return (Math.floor((year - 1) / this.datepicker.yearRange) *
|
27
|
-
this.datepicker.yearRange +
|
28
|
-
1);
|
29
|
-
}
|
30
|
-
#compareYears(date1, date2) {
|
31
|
-
return date1.getFullYear() - date2.getFullYear();
|
32
|
-
}
|
33
|
-
#refreshYearView() {
|
34
|
-
const years = new Array(this.datepicker.yearRange);
|
35
|
-
let date;
|
36
|
-
const start = this.getStartingYear(this.datepicker.activeDate.getFullYear());
|
37
|
-
for (let i = 0; i < this.datepicker.yearRange; i++) {
|
38
|
-
date = new Date(this.datepicker.activeDate);
|
39
|
-
date.setFullYear(start + i, 0, 1);
|
40
|
-
years[i] = this.datepicker.createDateObject(date, this.datepicker.formatYear, false, this.datepicker.datepickerId + '-' + i);
|
41
|
-
}
|
42
|
-
const newTitle = [
|
43
|
-
years[0].label,
|
44
|
-
years[this.datepicker.yearRange - 1].label,
|
45
|
-
].join(' - ');
|
46
|
-
this.rows = this.datepicker.createCalendarRows(years, this.datepicker.yearColLimit);
|
47
|
-
return newTitle;
|
48
|
-
}
|
49
|
-
#keydownYears(key, event) {
|
50
|
-
let date = this.datepicker.activeDate.getFullYear();
|
51
|
-
/* istanbul ignore else */
|
52
|
-
/* sanity check */
|
53
|
-
if (key === 'arrowleft') {
|
54
|
-
date = date - 1;
|
55
|
-
}
|
56
|
-
else if (key === 'arrowup') {
|
57
|
-
date = date - this.datepicker.yearColLimit;
|
58
|
-
}
|
59
|
-
else if (key === 'arrowright') {
|
60
|
-
date = date + 1;
|
61
|
-
}
|
62
|
-
else if (key === 'arrowdown') {
|
63
|
-
date = date + this.datepicker.yearColLimit;
|
64
|
-
}
|
65
|
-
else if (key === 'pageup' || key === 'pagedown') {
|
66
|
-
date += (key === 'pageup' ? -1 : 1) * this.datepicker.yearRange;
|
67
|
-
}
|
68
|
-
else if (key === 'home') {
|
69
|
-
date = this.getStartingYear(this.datepicker.activeDate.getFullYear());
|
70
|
-
}
|
71
|
-
else if (key === 'end') {
|
72
|
-
date =
|
73
|
-
this.getStartingYear(this.datepicker.activeDate.getFullYear()) +
|
74
|
-
this.datepicker.yearRange -
|
75
|
-
1;
|
76
|
-
}
|
77
|
-
this.datepicker.activeDate.setFullYear(date);
|
78
|
-
this.datepicker.announceDate(this.datepicker.activeDate, this.datepicker.formatYearLabel);
|
79
|
-
}
|
80
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyYearPickerComponent, deps: [{ token: i1.SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component }); }
|
81
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SkyYearPickerComponent, isStandalone: true, selector: "sky-yearpicker", ngImport: i0, template: "<table role=\"grid\">\n <tbody>\n @for (row of rows; track $index) {\n <tr>\n @for (date of row; track date.uid) {\n <td class=\"sky-datepicker-row\" role=\"gridcell\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date)\n }\"\n [attr.aria-label]=\"\n date.date\n | skyDatepickerCalendarLabel: datepicker.formatYearLabel\n \"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date)\"\n >\n <span [ngClass]=\"{ 'sky-datepicker-current': date.current }\">{{\n date.label\n }}</span>\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SkyDatepickerCalendarLabelPipe, name: "skyDatepickerCalendarLabel" }] }); }
|
82
|
-
}
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyYearPickerComponent, decorators: [{
|
84
|
-
type: Component,
|
85
|
-
args: [{ imports: [CommonModule, SkyDatepickerCalendarLabelPipe], selector: 'sky-yearpicker', standalone: true, template: "<table role=\"grid\">\n <tbody>\n @for (row of rows; track $index) {\n <tr>\n @for (date of row; track date.uid) {\n <td class=\"sky-datepicker-row\" role=\"gridcell\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date)\n }\"\n [attr.aria-label]=\"\n date.date\n | skyDatepickerCalendarLabel: datepicker.formatYearLabel\n \"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date)\"\n >\n <span [ngClass]=\"{ 'sky-datepicker-current': date.current }\">{{\n date.label\n }}</span>\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n" }]
|
86
|
-
}], ctorParameters: () => [{ type: i1.SkyDatepickerCalendarInnerComponent }] });
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhcnBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvY2FsZW5kYXIveWVhcnBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvY2FsZW5kYXIveWVhcnBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUdsRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQUdsRjs7R0FFRztBQU9ILE1BQU0sT0FBTyxzQkFBc0I7SUFPakMsWUFBWSxVQUErQztRQUpwRCxTQUFJLEdBQTRCLEVBQUUsQ0FBQztRQUVuQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBR2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVoRSxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUNuQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFDN0IsTUFBTSxDQUNQLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFOUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxp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bW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreURhdGVwaWNrZXJDYWxlbmRhcklubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlcGlja2VyLWNhbGVuZGFyLWlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJMYWJlbFBpcGUgfSBmcm9tICcuL2RhdGVwaWNrZXItY2FsZW5kYXItbGFiZWwucGlwZSc7XG5pbXBvcnQgeyBTa3lEYXlQaWNrZXJDb250ZXh0IH0gZnJvbSAnLi9kYXlwaWNrZXItY29udGV4dCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTa3lEYXRlcGlja2VyQ2FsZW5kYXJMYWJlbFBpcGVdLFxuICBzZWxlY3RvcjogJ3NreS15ZWFycGlja2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICd5ZWFycGlja2VyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5WWVhclBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBkYXRlcGlja2VyOiBTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudDtcblxuICBwdWJsaWMgcm93czogU2t5RGF5UGlja2VyQ29udGV4dFtdW10gPSBbXTtcblxuICBwdWJsaWMgdGl0bGUgPSAnJztcblxuICBjb25zdHJ1Y3RvcihkYXRlcGlja2VyOiBTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudCkge1xuICAgIHRoaXMuZGF0ZXBpY2tlciA9IGRhdGVwaWNrZXI7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlcGlja2VyLnN0ZXBZZWFyID0geyB5ZWFyczogdGhpcy5kYXRlcGlja2VyLnllYXJSYW5nZSB9O1xuXG4gICAgdGhpcy5kYXRlcGlja2VyLnNldFJlZnJlc2hWaWV3SGFuZGxlcihcbiAgICAgICgpID0+IHRoaXMuI3JlZnJlc2hZZWFyVmlldygpLFxuICAgICAgJ3llYXInLFxuICAgICk7XG5cbiAgICB0aGlzLmRhdGVwaWNrZXIuc2V0Q29tcGFyZUhhbmRsZXIodGhpcy4jY29tcGFyZVllYXJzLCAneWVhcicpO1xuXG4gICAgdGhpcy5kYXRlcGlja2VyLnNldEtleWRvd25IYW5kbGVyKChrZXk6IHN0cmluZywgZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIHRoaXMuI2tleWRvd25ZZWFycyhrZXksIGV2ZW50KTtcbiAgICB9LCAneWVhcicpO1xuXG4gICAgdGhpcy5kYXRlcGlja2VyLnJlZnJlc2hWaWV3KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0U3RhcnRpbmdZZWFyKHllYXI6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIE1hdGguZmxvb3IoKHllYXIgLSAxKSAvIHRoaXMuZGF0ZXBpY2tlci55ZWFyUmFuZ2UpICpcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyLnllYXJSYW5nZSArXG4gICAgICAxXG4gICAgKTtcbiAgfVxuXG4gICNjb21wYXJlWWVhcnMoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZTEuZ2V0RnVsbFllYXIoKSAtIGRhdGUyLmdldEZ1bGxZZWFyKCk7XG4gIH1cblxuICAjcmVmcmVzaFllYXJWaWV3KCk6IHN0cmluZyB7XG4gICAgY29uc3QgeWVhcnMgPSBuZXcgQXJyYXk8U2t5RGF5UGlja2VyQ29udGV4dD4odGhpcy5kYXRlcGlja2VyLnllYXJSYW5nZSk7XG4gICAgbGV0IGRhdGU6IERhdGU7XG4gICAgY29uc3Qgc3RhcnQgPSB0aGlzLmdldFN0YXJ0aW5nWWVhcihcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kYXRlcGlja2VyLnllYXJSYW5nZTsgaSsrKSB7XG4gICAgICBkYXRlID0gbmV3IERhdGUodGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUpO1xuICAgICAgZGF0ZS5zZXRGdWxsWWVhcihzdGFydCArIGksIDAsIDEpO1xuXG4gICAgICB5ZWFyc1tpXSA9IHRoaXMuZGF0ZXBpY2tlci5jcmVhdGVEYXRlT2JqZWN0KFxuICAgICAgICBkYXRlLFxuICAgICAgICB0aGlzLmRhdGVwaWNrZXIuZm9ybWF0WWVhcixcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5kYXRlcGlja2VySWQgKyAnLScgKyBpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdUaXRsZSA9IFtcbiAgICAgIHllYXJzWzBdLmxhYmVsLFxuICAgICAgeWVhcnNbdGhpcy5kYXRlcGlja2VyLnllYXJSYW5nZSAtIDFdLmxhYmVsLFxuICAgIF0uam9pbignIC0gJyk7XG4gICAgdGhpcy5yb3dzID0gdGhpcy5kYXRlcGlja2VyLmNyZWF0ZUNhbGVuZGFyUm93cyhcbiAgICAgIHllYXJzLFxuICAgICAgdGhpcy5kYXRlcGlja2VyLnllYXJDb2xMaW1pdCxcbiAgICApO1xuXG4gICAgcmV0dXJuIG5ld1RpdGxlO1xuICB9XG5cbiAgI2tleWRvd25ZZWFycyhrZXk6IHN0cmluZywgZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgZGF0ZSA9IHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChrZXkgPT09ICdhcnJvd2xlZnQnKSB7XG4gICAgICBkYXRlID0gZGF0ZSAtIDE7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdhcnJvd3VwJykge1xuICAgICAgZGF0ZSA9IGRhdGUgLSB0aGlzLmRhdGVwaWNrZXIueWVhckNvbExpbWl0O1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYXJyb3dyaWdodCcpIHtcbiAgICAgIGRhdGUgPSBkYXRlICsgMTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2Fycm93ZG93bicpIHtcbiAgICAgIGRhdGUgPSBkYXRlICsgdGhpcy5kYXRlcGlja2VyLnllYXJDb2xMaW1pdDtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3BhZ2V1cCcgfHwga2V5ID09PSAncGFnZWRvd24nKSB7XG4gICAgICBkYXRlICs9IChrZXkgPT09ICdwYWdldXAnID8gLTEgOiAxKSAqIHRoaXMuZGF0ZXBpY2tlci55ZWFyUmFuZ2U7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdob21lJykge1xuICAgICAgZGF0ZSA9IHRoaXMuZ2V0U3RhcnRpbmdZZWFyKHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCkpO1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnZW5kJykge1xuICAgICAgZGF0ZSA9XG4gICAgICAgIHRoaXMuZ2V0U3RhcnRpbmdZZWFyKHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCkpICtcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyLnllYXJSYW5nZSAtXG4gICAgICAgIDE7XG4gICAgfVxuICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLnNldEZ1bGxZZWFyKGRhdGUpO1xuICAgIHRoaXMuZGF0ZXBpY2tlci5hbm5vdW5jZURhdGUoXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZSxcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5mb3JtYXRZZWFyTGFiZWwsXG4gICAgKTtcbiAgfVxufVxuIiwiPHRhYmxlIHJvbGU9XCJncmlkXCI+XG4gIDx0Ym9keT5cbiAgICBAZm9yIChyb3cgb2Ygcm93czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8dHI+XG4gICAgICAgIEBmb3IgKGRhdGUgb2Ygcm93OyB0cmFjayBkYXRlLnVpZCkge1xuICAgICAgICAgIDx0ZCBjbGFzcz1cInNreS1kYXRlcGlja2VyLXJvd1wiIHJvbGU9XCJncmlkY2VsbFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktZGF0ZXBpY2tlci1idG4tZGF0ZVwiXG4gICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3NreS1kYXRlcGlja2VyLWJ0bi1zZWxlY3RlZCc6IGRhdGUuc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgJ3NreS1idG4tZGlzYWJsZWQnOiBkYXRlLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICdza3ktYnRuLWFjdGl2ZSc6IGRhdGVwaWNrZXIuaXNBY3RpdmUoZGF0ZSlcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgZGF0ZS5kYXRlXG4gICAgICAgICAgICAgICAgICB8IHNreURhdGVwaWNrZXJDYWxlbmRhckxhYmVsOiBkYXRlcGlja2VyLmZvcm1hdFllYXJMYWJlbFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGF0ZS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJkYXRlcGlja2VyLnNlbGVjdENhbGVuZGFyKCRldmVudCwgZGF0ZS5kYXRlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cInsgJ3NreS1kYXRlcGlja2VyLWN1cnJlbnQnOiBkYXRlLmN1cnJlbnQgfVwiPnt7XG4gICAgICAgICAgICAgICAgZGF0ZS5sYWJlbFxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIH1cbiAgICAgIDwvdHI+XG4gICAgfVxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
|
@@ -1,38 +0,0 @@
|
|
1
|
-
import moment from 'moment';
|
2
|
-
export class SkyDateFormatter {
|
3
|
-
static { this.defaultLocale = 'en-US'; }
|
4
|
-
static { this.defaultShortDateFormat = 'MM/DD/YYYY'; }
|
5
|
-
/**
|
6
|
-
* Sets moment's global locale.
|
7
|
-
*/
|
8
|
-
static setLocale(locale) {
|
9
|
-
moment.locale(locale || SkyDateFormatter.defaultLocale);
|
10
|
-
}
|
11
|
-
/**
|
12
|
-
* Returns the preferred short date format for the current locale.
|
13
|
-
*/
|
14
|
-
static getPreferredShortDateFormat() {
|
15
|
-
/* istanbul ignore next */
|
16
|
-
return (moment.localeData().longDateFormat('L') ||
|
17
|
-
SkyDateFormatter.defaultShortDateFormat);
|
18
|
-
}
|
19
|
-
format(date, format) {
|
20
|
-
return moment(date.getTime()).format(format);
|
21
|
-
}
|
22
|
-
getDateFromString(dateString, format,
|
23
|
-
/* istanbul ignore next */
|
24
|
-
strict = false) {
|
25
|
-
let momentValue = moment(dateString, format, strict);
|
26
|
-
if (!momentValue.isValid()) {
|
27
|
-
momentValue = moment(dateString, 'YYYY-MM-DDThh:mm:ss.SZ', strict);
|
28
|
-
}
|
29
|
-
return momentValue.toDate();
|
30
|
-
}
|
31
|
-
dateIsValid(date) {
|
32
|
-
return !!(date &&
|
33
|
-
date instanceof Date &&
|
34
|
-
!isNaN(date.valueOf()) &&
|
35
|
-
!isNaN(new Date(date).getDate()));
|
36
|
-
}
|
37
|
-
}
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZS1mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE1BQU0sT0FBTyxnQkFBZ0I7YUFDWixrQkFBYSxHQUFHLE9BQU8sQ0FBQzthQUV4QiwyQkFBc0IsR0FBRyxZQUFZLENBQUM7SUFFckQ7O09BRUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQWM7UUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLDJCQUEyQjtRQUN2QywwQkFBMEI7UUFDMUIsT0FBTyxDQUNMLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO1lBQ3ZDLGdCQUFnQixDQUFDLHNCQUFzQixDQUN4QyxDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFVLEVBQUUsTUFBZTtRQUN2QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLGlCQUFpQixDQUN0QixVQUFrQixFQUNsQixNQUFlO0lBQ2YsMEJBQTBCO0lBQzFCLE1BQU0sR0FBRyxLQUFLO1FBRWQsSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFckQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzNCLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU0sV0FBVyxDQUFDLElBQXNCO1FBQ3ZDLE9BQU8sQ0FBQyxDQUFDLENBQ1AsSUFBSTtZQUNKLElBQUksWUFBWSxJQUFJO1lBQ3BCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QixDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUNqQyxDQUFDO0lBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuZXhwb3J0IGNsYXNzIFNreURhdGVGb3JtYXR0ZXIge1xuICBwcml2YXRlIHN0YXRpYyBkZWZhdWx0TG9jYWxlID0gJ2VuLVVTJztcblxuICBwcml2YXRlIHN0YXRpYyBkZWZhdWx0U2hvcnREYXRlRm9ybWF0ID0gJ01NL0REL1lZWVknO1xuXG4gIC8qKlxuICAgKiBTZXRzIG1vbWVudCdzIGdsb2JhbCBsb2NhbGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHNldExvY2FsZShsb2NhbGU6IHN0cmluZyk6IHZvaWQge1xuICAgIG1vbWVudC5sb2NhbGUobG9jYWxlIHx8IFNreURhdGVGb3JtYXR0ZXIuZGVmYXVsdExvY2FsZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcHJlZmVycmVkIHNob3J0IGRhdGUgZm9ybWF0IGZvciB0aGUgY3VycmVudCBsb2NhbGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldFByZWZlcnJlZFNob3J0RGF0ZUZvcm1hdCgpOiBzdHJpbmcge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIChcbiAgICAgIG1vbWVudC5sb2NhbGVEYXRhKCkubG9uZ0RhdGVGb3JtYXQoJ0wnKSB8fFxuICAgICAgU2t5RGF0ZUZvcm1hdHRlci5kZWZhdWx0U2hvcnREYXRlRm9ybWF0XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtYXQoZGF0ZTogRGF0ZSwgZm9ybWF0Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbW9tZW50KGRhdGUuZ2V0VGltZSgpKS5mb3JtYXQoZm9ybWF0KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREYXRlRnJvbVN0cmluZyhcbiAgICBkYXRlU3RyaW5nOiBzdHJpbmcsXG4gICAgZm9ybWF0Pzogc3RyaW5nLFxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgc3RyaWN0ID0gZmFsc2UsXG4gICk6IERhdGUge1xuICAgIGxldCBtb21lbnRWYWx1ZSA9IG1vbWVudChkYXRlU3RyaW5nLCBmb3JtYXQsIHN0cmljdCk7XG5cbiAgICBpZiAoIW1vbWVudFZhbHVlLmlzVmFsaWQoKSkge1xuICAgICAgbW9tZW50VmFsdWUgPSBtb21lbnQoZGF0ZVN0cmluZywgJ1lZWVktTU0tRERUaGg6bW06c3MuU1onLCBzdHJpY3QpO1xuICAgIH1cblxuICAgIHJldHVybiBtb21lbnRWYWx1ZS50b0RhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBkYXRlSXNWYWxpZChkYXRlOiBEYXRlIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKFxuICAgICAgZGF0ZSAmJlxuICAgICAgZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiZcbiAgICAgICFpc05hTihkYXRlLnZhbHVlT2YoKSkgJiZcbiAgICAgICFpc05hTihuZXcgRGF0ZShkYXRlKS5nZXREYXRlKCkpXG4gICAgKTtcbiAgfVxufVxuIl19
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import { Injectable } from '@angular/core';
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
export class SkyDatepickerConfigService {
|
4
|
-
constructor() {
|
5
|
-
/**
|
6
|
-
* The starting day of the week in the calendar,
|
7
|
-
* where `0` sets the starting day to Sunday.
|
8
|
-
* @default 0
|
9
|
-
*/
|
10
|
-
this.startingDay = 0;
|
11
|
-
}
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDatepickerConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
13
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDatepickerConfigService, providedIn: 'root' }); }
|
14
|
-
}
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDatepickerConfigService, decorators: [{
|
16
|
-
type: Injectable,
|
17
|
-
args: [{
|
18
|
-
providedIn: 'root',
|
19
|
-
}]
|
20
|
-
}] });
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTywwQkFBMEI7SUFIdkM7UUEwQkU7Ozs7V0FJRztRQUNJLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO0tBQ3hCOytHQTdCWSwwQkFBMEI7bUhBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzs0RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0ZXBpY2tlckNvbmZpZ1NlcnZpY2Uge1xuICAvKipcbiAgICogVGhlIGRhdGUgZm9ybWF0IGZvciB0aGUgaW5wdXQuXG4gICAqIEBkZWZhdWx0IFwiTU0vREQvWVlZWVwiXG4gICAqL1xuICBwdWJsaWMgZGF0ZUZvcm1hdDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgbGF0ZXN0IHNlbGVjdGFibGUgZGF0ZSB0aGF0IGlzIGF2YWlsYWJsZSBpbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBwdWJsaWMgbWF4RGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGVhcmxpZXN0IHNlbGVjdGFibGUgZGF0ZSB0aGF0IGlzIGF2YWlsYWJsZSBpbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBwdWJsaWMgbWluRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGRhdGUgdG8gb3BlbiB0aGUgY2FsZW5kYXIgdG8gaW5pdGlhbGx5LlxuICAgKiBAZGVmYXVsdCB0aGUgY3VycmVudCBkYXRlXG4gICAqL1xuICBwdWJsaWMgc3RhcnRBdERhdGU6IERhdGUgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFydGluZyBkYXkgb2YgdGhlIHdlZWsgaW4gdGhlIGNhbGVuZGFyLFxuICAgKiB3aGVyZSBgMGAgc2V0cyB0aGUgc3RhcnRpbmcgZGF5IHRvIFN1bmRheS5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcHVibGljIHN0YXJ0aW5nRGF5ID0gMDtcbn1cbiJdfQ==
|
@@ -1,2 +0,0 @@
|
|
1
|
-
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1jdXN0b20tZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLWN1c3RvbS1kYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIGZvciBhIGN1c3RvbSBkYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreURhdGVwaWNrZXJDdXN0b21EYXRlIHtcbiAgLyoqXG4gICAqIFRoZSBkYXRlIHRvIGN1c3RvbWl6ZS5cbiAgICovXG4gIGRhdGU6IERhdGU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgZGF0ZS5cbiAgICovXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNwbGF5IHRoZSBkYXRlIGFzIGEga2V5IGRhdGUgaW4gdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAga2V5RGF0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIGEgcG9wdXAgb2YgdGhlIHByb3ZpZGVkIHRleHQgd2hlbiBob3ZlcmluZyBvdmVyIHRoZSBrZXkgZGF0ZSBpbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBrZXlEYXRlVGV4dD86IHN0cmluZ1tdO1xufVxuIl19
|
@@ -1,61 +0,0 @@
|
|
1
|
-
import { DestroyRef, Injectable, inject } from '@angular/core';
|
2
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
3
|
-
import { Subject, fromEvent } from 'rxjs';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
/**
|
6
|
-
* Handles interactions between the datepicker host component and the input
|
7
|
-
* directive.
|
8
|
-
* @internal
|
9
|
-
*/
|
10
|
-
export class SkyDatepickerHostService {
|
11
|
-
#destroyRef = inject(DestroyRef);
|
12
|
-
/**
|
13
|
-
* Fires when the picker or trigger button loses focus.
|
14
|
-
*/
|
15
|
-
get focusout() {
|
16
|
-
return this.#focusoutObs;
|
17
|
-
}
|
18
|
-
#focusout = new Subject();
|
19
|
-
#focusoutObs = this.#focusout.asObservable();
|
20
|
-
#host;
|
21
|
-
#isInitialized = false;
|
22
|
-
ngOnDestroy() {
|
23
|
-
this.#focusout.complete();
|
24
|
-
}
|
25
|
-
init(host) {
|
26
|
-
if (this.#isInitialized) {
|
27
|
-
throw new Error('The datepicker host service is already initialized.');
|
28
|
-
}
|
29
|
-
this.#host = host;
|
30
|
-
this.#isInitialized = true;
|
31
|
-
const triggerButtonEl = this.#host.triggerButtonRef?.nativeElement;
|
32
|
-
if (triggerButtonEl instanceof Element) {
|
33
|
-
fromEvent(triggerButtonEl, 'focusout')
|
34
|
-
.pipe(takeUntilDestroyed(this.#destroyRef))
|
35
|
-
.subscribe((evt) => {
|
36
|
-
this.#handleFocusoutEvent(evt);
|
37
|
-
});
|
38
|
-
}
|
39
|
-
}
|
40
|
-
isFocusingDatepicker(evt) {
|
41
|
-
const buttonEl = this.#host?.triggerButtonRef?.nativeElement;
|
42
|
-
return buttonEl instanceof Element && buttonEl === evt.relatedTarget;
|
43
|
-
}
|
44
|
-
#handleFocusoutEvent(evt) {
|
45
|
-
if (this.#host) {
|
46
|
-
const relatedTarget = evt.relatedTarget;
|
47
|
-
const overlayEl = this.#host.getPickerRef()?.nativeElement;
|
48
|
-
const isFocusingOverlay = relatedTarget instanceof Element &&
|
49
|
-
!!overlayEl?.contains(relatedTarget);
|
50
|
-
if (relatedTarget === null || !isFocusingOverlay) {
|
51
|
-
this.#focusout.next(evt);
|
52
|
-
}
|
53
|
-
}
|
54
|
-
}
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDatepickerHostService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
56
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDatepickerHostService }); }
|
57
|
-
}
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDatepickerHostService, decorators: [{
|
59
|
-
type: Injectable
|
60
|
-
}] });
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1ob3N0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1ob3N0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUl0RDs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLHdCQUF3QjtJQUMxQixXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTFDOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7SUFDdEMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0MsS0FBSyxDQUFxQztJQUMxQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBRWhCLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sSUFBSSxDQUFDLElBQTRCO1FBQ3RDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFFM0IsTUFBTSxlQUFlLEdBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDO1FBRTdDLElBQUksZUFBZSxZQUFZLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLFNBQVMsQ0FBYSxlQUFlLEVBQUUsVUFBVSxDQUFDO2lCQUMvQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2lCQUMxQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxHQUFlO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDO1FBRTdELE9BQU8sUUFBUSxZQUFZLE9BQU8sSUFBSSxRQUFRLEtBQUssR0FBRyxDQUFDLGFBQWEsQ0FBQztJQUN2RSxDQUFDO0lBRUQsb0JBQW9CLENBQUMsR0FBZTtRQUNsQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUM7WUFDeEMsTUFBTSxTQUFTLEdBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsRUFBRSxhQUFhLENBQUM7WUFFM0MsTUFBTSxpQkFBaUIsR0FDckIsYUFBYSxZQUFZLE9BQU87Z0JBQ2hDLENBQUMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRXZDLElBQUksYUFBYSxLQUFLLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0EzRFUsd0JBQXdCO21IQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuXG4vKipcbiAqIEhhbmRsZXMgaW50ZXJhY3Rpb25zIGJldHdlZW4gdGhlIGRhdGVwaWNrZXIgaG9zdCBjb21wb25lbnQgYW5kIHRoZSBpbnB1dFxuICogZGlyZWN0aXZlLlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lEYXRlcGlja2VySG9zdFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICByZWFkb25seSAjZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgcGlja2VyIG9yIHRyaWdnZXIgYnV0dG9uIGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgcHVibGljIGdldCBmb2N1c291dCgpOiBPYnNlcnZhYmxlPEZvY3VzRXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy4jZm9jdXNvdXRPYnM7XG4gIH1cblxuICAjZm9jdXNvdXQgPSBuZXcgU3ViamVjdDxGb2N1c0V2ZW50PigpO1xuICAjZm9jdXNvdXRPYnMgPSB0aGlzLiNmb2N1c291dC5hc09ic2VydmFibGUoKTtcbiAgI2hvc3Q6IFNreURhdGVwaWNrZXJDb21wb25lbnQgfCB1bmRlZmluZWQ7XG4gICNpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI2ZvY3Vzb3V0LmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdChob3N0OiBTa3lEYXRlcGlja2VyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2lzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGRhdGVwaWNrZXIgaG9zdCBzZXJ2aWNlIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQuJyk7XG4gICAgfVxuXG4gICAgdGhpcy4jaG9zdCA9IGhvc3Q7XG4gICAgdGhpcy4jaXNJbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICBjb25zdCB0cmlnZ2VyQnV0dG9uRWw6IEVsZW1lbnQgfCB1bmRlZmluZWQgPVxuICAgICAgdGhpcy4jaG9zdC50cmlnZ2VyQnV0dG9uUmVmPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKHRyaWdnZXJCdXR0b25FbCBpbnN0YW5jZW9mIEVsZW1lbnQpIHtcbiAgICAgIGZyb21FdmVudDxGb2N1c0V2ZW50Pih0cmlnZ2VyQnV0dG9uRWwsICdmb2N1c291dCcpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgdGhpcy4jaGFuZGxlRm9jdXNvdXRFdmVudChldnQpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNGb2N1c2luZ0RhdGVwaWNrZXIoZXZ0OiBGb2N1c0V2ZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgYnV0dG9uRWwgPSB0aGlzLiNob3N0Py50cmlnZ2VyQnV0dG9uUmVmPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgcmV0dXJuIGJ1dHRvbkVsIGluc3RhbmNlb2YgRWxlbWVudCAmJiBidXR0b25FbCA9PT0gZXZ0LnJlbGF0ZWRUYXJnZXQ7XG4gIH1cblxuICAjaGFuZGxlRm9jdXNvdXRFdmVudChldnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jaG9zdCkge1xuICAgICAgY29uc3QgcmVsYXRlZFRhcmdldCA9IGV2dC5yZWxhdGVkVGFyZ2V0O1xuICAgICAgY29uc3Qgb3ZlcmxheUVsOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9XG4gICAgICAgIHRoaXMuI2hvc3QuZ2V0UGlja2VyUmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIGNvbnN0IGlzRm9jdXNpbmdPdmVybGF5ID1cbiAgICAgICAgcmVsYXRlZFRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQgJiZcbiAgICAgICAgISFvdmVybGF5RWw/LmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQpO1xuXG4gICAgICBpZiAocmVsYXRlZFRhcmdldCA9PT0gbnVsbCB8fCAhaXNGb2N1c2luZ092ZXJsYXkpIHtcbiAgICAgICAgdGhpcy4jZm9jdXNvdXQubmV4dChldnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|