@aurodesignsystem-dev/auro-formkit 0.0.0-pr1509.0 → 0.0.0-pr1510.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/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/customize.min.js +4 -19
- package/components/combobox/demo/getting-started.min.js +4 -19
- package/components/combobox/demo/index.min.js +4 -19
- package/components/combobox/dist/index.js +4 -19
- package/components/combobox/dist/registered.js +4 -19
- package/components/counter/demo/customize.min.js +2 -2
- package/components/counter/demo/index.min.js +2 -2
- package/components/counter/dist/index.js +2 -2
- package/components/counter/dist/registered.js +2 -2
- package/components/datepicker/demo/accessibility.md +2 -1
- package/components/datepicker/demo/api.md +63 -62
- package/components/datepicker/demo/customize.md +12 -1
- package/components/datepicker/demo/customize.min.js +456 -183
- package/components/datepicker/demo/index.min.js +456 -183
- package/components/datepicker/dist/index.js +456 -183
- package/components/datepicker/dist/registered.js +456 -183
- package/components/datepicker/dist/src/auro-calendar-cell.d.ts +14 -3
- package/components/datepicker/dist/src/auro-calendar.d.ts +87 -5
- package/components/datepicker/dist/src/auro-datepicker.d.ts +73 -3
- package/components/dropdown/demo/customize.min.js +1 -1
- package/components/dropdown/demo/getting-started.min.js +1 -1
- package/components/dropdown/demo/index.min.js +1 -1
- package/components/dropdown/dist/index.js +1 -1
- package/components/dropdown/dist/registered.js +1 -1
- package/components/form/demo/customize.min.js +474 -231
- package/components/form/demo/getting-started.min.js +474 -231
- package/components/form/demo/index.min.js +474 -231
- package/components/form/demo/registerDemoDeps.min.js +474 -231
- package/components/input/demo/customize.min.js +2 -17
- package/components/input/demo/getting-started.min.js +2 -17
- package/components/input/demo/index.min.js +2 -17
- package/components/input/dist/index.js +2 -17
- package/components/input/dist/registered.js +2 -17
- package/components/radio/demo/customize.min.js +1 -1
- package/components/radio/demo/getting-started.min.js +1 -1
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/customize.min.js +2 -2
- package/components/select/demo/getting-started.min.js +2 -2
- package/components/select/demo/index.min.js +2 -2
- package/components/select/dist/index.js +2 -2
- package/components/select/dist/registered.js +2 -2
- package/custom-elements.json +1868 -1696
- package/package.json +2 -1
|
@@ -1373,7 +1373,7 @@ function normalizeDates$1(context, ...dates) {
|
|
|
1373
1373
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
1374
1374
|
* //=> Tue Sep 02 2014 00:00:00
|
|
1375
1375
|
*/
|
|
1376
|
-
function startOfDay$
|
|
1376
|
+
function startOfDay$1(date, options) {
|
|
1377
1377
|
const _date = toDate$1(date, options?.in);
|
|
1378
1378
|
_date.setHours(0, 0, 0, 0);
|
|
1379
1379
|
return _date;
|
|
@@ -1421,8 +1421,8 @@ function differenceInCalendarDays$1(laterDate, earlierDate, options) {
|
|
|
1421
1421
|
earlierDate,
|
|
1422
1422
|
);
|
|
1423
1423
|
|
|
1424
|
-
const laterStartOfDay = startOfDay$
|
|
1425
|
-
const earlierStartOfDay = startOfDay$
|
|
1424
|
+
const laterStartOfDay = startOfDay$1(laterDate_);
|
|
1425
|
+
const earlierStartOfDay = startOfDay$1(earlierDate_);
|
|
1426
1426
|
|
|
1427
1427
|
const laterTimestamp =
|
|
1428
1428
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$1(laterStartOfDay);
|
|
@@ -10904,8 +10904,8 @@ class RangeDatepickerCell extends i$1 {
|
|
|
10904
10904
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
10905
10905
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
10906
10906
|
if (day) {
|
|
10907
|
-
if (getTime(startOfDay$
|
|
10908
|
-
getTime(startOfDay$
|
|
10907
|
+
if (getTime(startOfDay$1(parsedDateTo * 1000)) / 1000 === day.date ||
|
|
10908
|
+
getTime(startOfDay$1(parsedDateFrom * 1000)) / 1000 === day.date) {
|
|
10909
10909
|
this.selected = true;
|
|
10910
10910
|
}
|
|
10911
10911
|
if (((hoveredDate === day.date || day.date < hoveredDate) &&
|
|
@@ -11093,7 +11093,7 @@ class RangeDatepickerCalendar extends i$1 {
|
|
|
11093
11093
|
this.dayNamesOfTheWeek = [];
|
|
11094
11094
|
this.daysOfMonth = [];
|
|
11095
11095
|
this._locale = null;
|
|
11096
|
-
this.currentDate = parseInt(format$1(startOfDay$
|
|
11096
|
+
this.currentDate = parseInt(format$1(startOfDay$1(Date.now()), 't'), 10);
|
|
11097
11097
|
this.localeChanged();
|
|
11098
11098
|
this.yearAndMonthChanged(this.year, this.month);
|
|
11099
11099
|
}
|
|
@@ -11567,7 +11567,7 @@ __decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "dayNamesO
|
|
|
11567
11567
|
__decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
11568
11568
|
AuroLibraryRuntimeUtils$5.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
11569
11569
|
|
|
11570
|
-
var styleCss$5 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:48px;height:56px;padding:0;border-width:2px;border-style:solid;border-radius:10px;cursor:pointer;user-select:none}.day:focus-visible{outline:none;background-color:unset}.day.activeCell{outline-width:2px;outline-style:solid;outline-offset:-4px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:pointer}.day.reference:after{position:absolute;top:-2px;left:-2px;display:block;width:calc(100% + 2px);height:calc(100% + 2px);box-sizing:content-box;border-radius:10px;border-style:solid;border-width:1px;content:""}.day.inRange::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:10px 0 0 10px;overflow:hidden}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:0 10px 10px 0;overflow:hidden}.day.firstDayOfMonth::before{border-radius:10px 0 0 10px;overflow:hidden}.day.lastDayOfMonth::before{border-radius:0 10px 10px 0;overflow:hidden}.buttonWrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.dateSlot{display:block}::slotted([slot^=date_]){width:100%;white-space:nowrap}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;height:100%}:host([renderForDateSlot]) .currentDayMarker{position:relative}`;
|
|
11570
|
+
var styleCss$5 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:48px;height:56px;padding:0;border-width:2px;border-style:solid;border-radius:10px;cursor:pointer;user-select:none}.day:focus-visible{outline:none;background-color:unset}.day.activeCell{outline-width:2px;outline-style:solid;outline-offset:-4px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:pointer}.day.reference:after{position:absolute;top:-2px;left:-2px;display:block;width:calc(100% + 2px);height:calc(100% + 2px);box-sizing:content-box;border-radius:10px;border-style:solid;border-width:1px;content:""}.day.inRange::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:10px 0 0 10px;overflow:hidden}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:0 10px 10px 0;overflow:hidden}.day.rangeDepartDate.lastHoveredDate::before{border-radius:10px}.day.firstDayOfMonth::before{border-radius:10px 0 0 10px;overflow:hidden}.day.lastDayOfMonth::before{border-radius:0 10px 10px 0;overflow:hidden}.buttonWrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.dateSlot{display:block}::slotted([slot^=date_]){width:100%;white-space:nowrap}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;height:100%}:host([renderForDateSlot]) .currentDayMarker{position:relative}`;
|
|
11571
11571
|
|
|
11572
11572
|
var colorCss$5 = i$3`:host ::slotted([slot^=date_]){color:var(--ds-auro-calendar-cell-price-text-color)}:host ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success, #447a1f)}:host .day{border-color:var(--ds-auro-calendar-cell-border-color);background-color:var(--ds-auro-calendar-cell-container-color);color:var(--ds-auro-calendar-cell-text-color)}:host .day.activeCell:not(.selected){--ds-auro-calendar-cell-container-color: var(--ds-auro-calendar-cell-in-range-color);border-color:var(--ds-advanced-color-state-selected);outline-color:var(--ds-auro-calendar-cell-container-color)}:host .day.selected{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.selected ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success-subtle, #d6eac7)}:host .day.selected:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected-hover, #00274a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.reference:after{border-color:var(--ds-basic-color-border-default, #959595);box-shadow:inset 0 0 0 2px var(--ds-basic-color-surface-default, #ffffff)}:host .day.reference:hover::after{box-shadow:inset 0 0 0 2px var(--ds-advanced-color-shared-background-muted, #f7f7f7)}:host .day:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host .day.disabled{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.blackout{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.inRange:before,:host .day.rangeDepartDate:before,:host .day.rangeReturnDate:before,:host .day.lastHoveredDate:before{background-color:var(--ds-auro-calendar-cell-in-range-color)}:host .day.sameDateTrip:before{--ds-auro-calendar-cell-in-range-color: transparent}`;
|
|
11573
11573
|
|
|
@@ -11594,12 +11594,6 @@ var popoverVersion = '6.0.1';
|
|
|
11594
11594
|
|
|
11595
11595
|
/* eslint-disable curly, max-lines, no-underscore-dangle, no-magic-numbers, no-underscore-dangle, max-params, no-extra-parens, arrow-parens, max-lines, line-comment-position, no-inline-comments, lit/binding-positions, lit/no-invalid-html */
|
|
11596
11596
|
|
|
11597
|
-
const startOfDay$1 = (ms) => {
|
|
11598
|
-
const date = new Date(ms);
|
|
11599
|
-
date.setHours(0, 0, 0, 0);
|
|
11600
|
-
return date.getTime();
|
|
11601
|
-
};
|
|
11602
|
-
|
|
11603
11597
|
class AuroCalendarCell extends i$1 {
|
|
11604
11598
|
constructor() {
|
|
11605
11599
|
super();
|
|
@@ -11646,6 +11640,14 @@ class AuroCalendarCell extends i$1 {
|
|
|
11646
11640
|
type: Boolean,
|
|
11647
11641
|
reflect: true
|
|
11648
11642
|
},
|
|
11643
|
+
/**
|
|
11644
|
+
* @deprecated Propagated from the legacy `auro-calendar.disabledDays`
|
|
11645
|
+
* Unix-timestamp array. The cell honors it for backward compatibility
|
|
11646
|
+
* (see the divergence-check fallback inside `isBlackout`), but
|
|
11647
|
+
* consumers should migrate to `auro-datepicker.blackoutDates`
|
|
11648
|
+
* (YYYY-MM-DD ISO strings). The calendar emits a one-time
|
|
11649
|
+
* deprecation warning the first time a non-empty value is observed.
|
|
11650
|
+
*/
|
|
11649
11651
|
disabledDays: { type: Array },
|
|
11650
11652
|
isCurrentDate: { type: Boolean },
|
|
11651
11653
|
locale: { type: String },
|
|
@@ -11691,8 +11693,8 @@ class AuroCalendarCell extends i$1 {
|
|
|
11691
11693
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
11692
11694
|
|
|
11693
11695
|
if (day) {
|
|
11694
|
-
const departTimestamp =
|
|
11695
|
-
const returnTimestamp =
|
|
11696
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11697
|
+
const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11696
11698
|
|
|
11697
11699
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
11698
11700
|
this.selected = true;
|
|
@@ -11776,22 +11778,42 @@ class AuroCalendarCell extends i$1 {
|
|
|
11776
11778
|
return false;
|
|
11777
11779
|
}
|
|
11778
11780
|
|
|
11779
|
-
//
|
|
11781
|
+
// Delegate to the calendar's memoized blackout Set for O(1) lookup
|
|
11782
|
+
// (instead of rescanning disabledDays + blackoutDates per render). The
|
|
11783
|
+
// Set is rebuilt only when either source array reference changes — see
|
|
11784
|
+
// auro-calendar.js#_getBlackoutSet.
|
|
11785
|
+
if (this.calendar && typeof this.calendar._getBlackoutSet === 'function') {
|
|
11786
|
+
if (this.calendar._getBlackoutSet().has(this.day.date)) {
|
|
11787
|
+
return true;
|
|
11788
|
+
}
|
|
11789
|
+
// If the cell's local disabledDays diverged from the calendar's (a
|
|
11790
|
+
// consumer or test mutated cell.disabledDays directly), the Set does
|
|
11791
|
+
// not reflect that addition — fall through to the per-cell scan only
|
|
11792
|
+
// when the reference no longer matches. Production data flow keeps
|
|
11793
|
+
// these identical, so this branch stays cold.
|
|
11794
|
+
if (this.disabledDays && this.disabledDays !== this.calendar.disabledDays && this.disabledDays.length > 0) {
|
|
11795
|
+
if (this.disabledDays.findIndex((dd) => parseInt(dd, 10) === this.day.date) !== -1) {
|
|
11796
|
+
return true;
|
|
11797
|
+
}
|
|
11798
|
+
}
|
|
11799
|
+
return false;
|
|
11800
|
+
}
|
|
11801
|
+
|
|
11802
|
+
// Pre-firstUpdated fallback — the cell may render once before the
|
|
11803
|
+
// ancestor calendar is wired up. Uses the legacy O(N) scan so the
|
|
11804
|
+
// result stays correct, just slower for the very first render.
|
|
11780
11805
|
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0 &&
|
|
11781
11806
|
(this.disabledDays.findIndex(dd => parseInt(dd, 10) === this.day.date) !== -1)) {
|
|
11782
11807
|
return true;
|
|
11783
11808
|
}
|
|
11784
11809
|
|
|
11785
|
-
// Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
|
|
11786
11810
|
const blackoutDates = this.datepicker?.blackoutDates;
|
|
11787
|
-
|
|
11788
11811
|
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
11789
11812
|
const date = new Date(this.day.date * 1000);
|
|
11790
11813
|
const yyyy = date.getFullYear();
|
|
11791
11814
|
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
11792
11815
|
const dd = String(date.getDate()).padStart(2, '0');
|
|
11793
|
-
|
|
11794
|
-
if (blackoutDates.includes(cellDate)) {
|
|
11816
|
+
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
11795
11817
|
return true;
|
|
11796
11818
|
}
|
|
11797
11819
|
}
|
|
@@ -11902,12 +11924,12 @@ class AuroCalendarCell extends i$1 {
|
|
|
11902
11924
|
const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
|
|
11903
11925
|
if (!Number.isFinite(parsedDateFrom)) return null;
|
|
11904
11926
|
|
|
11905
|
-
const departTimestamp =
|
|
11927
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11906
11928
|
const dayDate = this.day.date;
|
|
11907
11929
|
|
|
11908
11930
|
const parsedDateTo = Number.parseInt(this.dateTo, 10);
|
|
11909
11931
|
const hasDateTo = Number.isFinite(parsedDateTo);
|
|
11910
|
-
const returnTimestamp = hasDateTo ?
|
|
11932
|
+
const returnTimestamp = hasDateTo ? new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
|
|
11911
11933
|
|
|
11912
11934
|
if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
|
|
11913
11935
|
|
|
@@ -11917,7 +11939,9 @@ class AuroCalendarCell extends i$1 {
|
|
|
11917
11939
|
|
|
11918
11940
|
if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
|
|
11919
11941
|
|
|
11920
|
-
|
|
11942
|
+
if (!hasDateTo && dayDate > departTimestamp) return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
11943
|
+
|
|
11944
|
+
// After end date when both dateFrom and dateTo are set.
|
|
11921
11945
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
11922
11946
|
}
|
|
11923
11947
|
|
|
@@ -11930,7 +11954,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
11930
11954
|
*/
|
|
11931
11955
|
isDepartDate(day, dateFrom) {
|
|
11932
11956
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
11933
|
-
const departTimestamp =
|
|
11957
|
+
const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11934
11958
|
|
|
11935
11959
|
return this.selected && day.date === departTimestamp;
|
|
11936
11960
|
}
|
|
@@ -11945,7 +11969,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
11945
11969
|
*/
|
|
11946
11970
|
isReturnDate(day, dateFrom, dateTo) {
|
|
11947
11971
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
11948
|
-
const returnTimestamp =
|
|
11972
|
+
const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
11949
11973
|
|
|
11950
11974
|
return this.selected && day.date === returnTimestamp && dateFrom;
|
|
11951
11975
|
}
|
|
@@ -12109,6 +12133,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
12109
12133
|
setTimeout(() => this.firstUpdated(), 0);
|
|
12110
12134
|
return;
|
|
12111
12135
|
}
|
|
12136
|
+
this.calendar = calendar;
|
|
12112
12137
|
this.datepicker = calendar.datepicker;
|
|
12113
12138
|
this._slotContentHandler = () => {
|
|
12114
12139
|
this.handleSlotContent();
|
|
@@ -12166,12 +12191,13 @@ class AuroCalendarCell extends i$1 {
|
|
|
12166
12191
|
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
12167
12192
|
});
|
|
12168
12193
|
|
|
12169
|
-
//
|
|
12194
|
+
// Keep the host's gridcell aria attributes in sync with the day data.
|
|
12170
12195
|
this.updateHostAria();
|
|
12171
12196
|
}
|
|
12172
12197
|
|
|
12173
12198
|
// Update host aria when selection changes (aria-selected, range labels)
|
|
12174
|
-
|
|
12199
|
+
// or when isCurrentDate flips (aria-current).
|
|
12200
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected') || properties.has('isCurrentDate')) {
|
|
12175
12201
|
this.updateHostAria();
|
|
12176
12202
|
}
|
|
12177
12203
|
|
|
@@ -12182,8 +12208,8 @@ class AuroCalendarCell extends i$1 {
|
|
|
12182
12208
|
}
|
|
12183
12209
|
|
|
12184
12210
|
/**
|
|
12185
|
-
*
|
|
12186
|
-
*
|
|
12211
|
+
* Sets host-level ARIA so each cell exposes its date, selection state,
|
|
12212
|
+
* and blackout status to assistive tech browsing the month grid.
|
|
12187
12213
|
* @private
|
|
12188
12214
|
* @returns {void}
|
|
12189
12215
|
*/
|
|
@@ -12194,14 +12220,20 @@ class AuroCalendarCell extends i$1 {
|
|
|
12194
12220
|
if (outOfRange) {
|
|
12195
12221
|
this.removeAttribute('role');
|
|
12196
12222
|
this.removeAttribute('aria-label');
|
|
12223
|
+
this.removeAttribute('aria-current');
|
|
12197
12224
|
return;
|
|
12198
12225
|
}
|
|
12199
12226
|
|
|
12200
|
-
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
12201
12227
|
this.setAttribute('role', 'gridcell');
|
|
12202
12228
|
this.setAttribute('aria-label', this.getAriaLabel());
|
|
12203
12229
|
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
12204
12230
|
|
|
12231
|
+
if (this.isCurrentDate) {
|
|
12232
|
+
this.setAttribute('aria-current', 'date');
|
|
12233
|
+
} else {
|
|
12234
|
+
this.removeAttribute('aria-current');
|
|
12235
|
+
}
|
|
12236
|
+
|
|
12205
12237
|
if (this.isBlackout()) {
|
|
12206
12238
|
this.setAttribute('aria-disabled', 'true');
|
|
12207
12239
|
} else {
|
|
@@ -12216,7 +12248,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
12216
12248
|
* @returns {void}
|
|
12217
12249
|
*/
|
|
12218
12250
|
focusButton() {
|
|
12219
|
-
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([
|
|
12251
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([disabled])');
|
|
12220
12252
|
if (button) {
|
|
12221
12253
|
button.focus({ focusVisible: true });
|
|
12222
12254
|
}
|
|
@@ -12224,7 +12256,9 @@ class AuroCalendarCell extends i$1 {
|
|
|
12224
12256
|
|
|
12225
12257
|
/**
|
|
12226
12258
|
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
12227
|
-
*
|
|
12259
|
+
* Buttons stay tabindex="-1" because DOM focus stays on the grid wrapper —
|
|
12260
|
+
* arrow keys move the active cell imperatively and the live region carries
|
|
12261
|
+
* the SR announcement.
|
|
12228
12262
|
* @returns {void}
|
|
12229
12263
|
*/
|
|
12230
12264
|
setActive() {
|
|
@@ -12266,10 +12300,13 @@ class AuroCalendarCell extends i$1 {
|
|
|
12266
12300
|
if (!btn || !this.day) return;
|
|
12267
12301
|
|
|
12268
12302
|
const dayDate = this.day.date;
|
|
12269
|
-
const departTimestamp =
|
|
12303
|
+
const departTimestamp = new Date(dateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
12270
12304
|
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
12271
|
-
|
|
12272
|
-
|
|
12305
|
+
// `>=` so hovering the depart cell itself (a same-day round-trip
|
|
12306
|
+
// preview) still surfaces a visual cue: the depart cell receives both
|
|
12307
|
+
// rangeDepartDate and lastHoveredDate.
|
|
12308
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate >= departTimestamp;
|
|
12309
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate >= departTimestamp;
|
|
12273
12310
|
|
|
12274
12311
|
btn.classList.toggle('inRange', isInRange);
|
|
12275
12312
|
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
@@ -12327,7 +12364,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
12327
12364
|
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
12328
12365
|
class="${e$4(buttonClasses)}"
|
|
12329
12366
|
?disabled="${outOfRange}"
|
|
12330
|
-
aria-hidden="${outOfRange ? 'true' : A$4}"
|
|
12331
12367
|
tabindex="-1">
|
|
12332
12368
|
<div class="buttonWrapper" aria-hidden="true">
|
|
12333
12369
|
<div class="currentDayMarker">${this.day?.title || A$4}</div>
|
|
@@ -13439,7 +13475,7 @@ class AuroBibtemplate extends i$1 {
|
|
|
13439
13475
|
}
|
|
13440
13476
|
}
|
|
13441
13477
|
|
|
13442
|
-
var formkitVersion$2 = '
|
|
13478
|
+
var formkitVersion$2 = '202606251933';
|
|
13443
13479
|
|
|
13444
13480
|
let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$4 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$3=i$3`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
|
|
13445
13481
|
`,u$6=i$3`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
|
|
@@ -13562,7 +13598,11 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13562
13598
|
this.calendarRangeMonths = null;
|
|
13563
13599
|
|
|
13564
13600
|
/**
|
|
13565
|
-
*
|
|
13601
|
+
* @deprecated Use `auro-datepicker.blackoutDates` (an array of
|
|
13602
|
+
* `YYYY-MM-DD` ISO strings) instead. This legacy array of Unix
|
|
13603
|
+
* timestamps is still honored for backward compatibility but emits a
|
|
13604
|
+
* one-time `console.debug` the first time a non-empty value is observed.
|
|
13605
|
+
* Support will be removed in a future major release.
|
|
13566
13606
|
* @private
|
|
13567
13607
|
*/
|
|
13568
13608
|
this.disabledDays = [];
|
|
@@ -13819,17 +13859,44 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13819
13859
|
* @returns {void}
|
|
13820
13860
|
*/
|
|
13821
13861
|
updateActiveCellForVisibleMonth() {
|
|
13822
|
-
|
|
13823
|
-
|
|
13824
|
-
requestAnimationFrame(() => {
|
|
13825
|
-
requestAnimationFrame(() => {
|
|
13826
|
-
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
13862
|
+
this._afterMonthRender(() => {
|
|
13863
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
13827
13864
|
|
|
13828
|
-
|
|
13829
|
-
|
|
13830
|
-
|
|
13831
|
-
|
|
13832
|
-
|
|
13865
|
+
if (newDate !== null && newDate !== undefined) {
|
|
13866
|
+
this.activeCellDate = newDate;
|
|
13867
|
+
this.setActiveCell(this.activeCellDate);
|
|
13868
|
+
}
|
|
13869
|
+
});
|
|
13870
|
+
}
|
|
13871
|
+
|
|
13872
|
+
/**
|
|
13873
|
+
* Schedules `callback` two animation frames out, giving the child
|
|
13874
|
+
* `auro-formkit-calendar-month` and `auro-formkit-calendar-cell` elements
|
|
13875
|
+
* a full render-and-paint cycle to settle before the callback reads or
|
|
13876
|
+
* mutates DOM.
|
|
13877
|
+
*
|
|
13878
|
+
* Why two frames, not one:
|
|
13879
|
+
* 1. Lit batches property updates and renders in a microtask, so frame N
|
|
13880
|
+
* schedules the render but the new DOM may not be painted yet.
|
|
13881
|
+
* 2. Cells re-cache `_cachedButton` inside their own `updateComplete.then`,
|
|
13882
|
+
* which also lands a tick later. Reading buttons from frame N+1
|
|
13883
|
+
* (after both renders + cache refresh have flushed) reliably hits the
|
|
13884
|
+
* new month's cells.
|
|
13885
|
+
*
|
|
13886
|
+
* Used by every code path that calls `handleNextMonth`/`handlePrevMonth`
|
|
13887
|
+
* and then needs to inspect the freshly-rendered cells (cross-month
|
|
13888
|
+
* keyboard nav, boundary events, `updateActiveCellForVisibleMonth`).
|
|
13889
|
+
* Do NOT collapse to a single rAF — it intermittently lands before
|
|
13890
|
+
* `_cachedButton` is refreshed, which silently breaks focus restoration
|
|
13891
|
+
* and `setActiveCell` lookups.
|
|
13892
|
+
* @private
|
|
13893
|
+
* @param {() => void} callback - Runs once after the month re-render and
|
|
13894
|
+
* the cells' button caches have refreshed.
|
|
13895
|
+
* @returns {void}
|
|
13896
|
+
*/
|
|
13897
|
+
_afterMonthRender(callback) {
|
|
13898
|
+
requestAnimationFrame(() => {
|
|
13899
|
+
requestAnimationFrame(callback);
|
|
13833
13900
|
});
|
|
13834
13901
|
}
|
|
13835
13902
|
|
|
@@ -13947,6 +14014,47 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13947
14014
|
return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
|
|
13948
14015
|
}
|
|
13949
14016
|
|
|
14017
|
+
/**
|
|
14018
|
+
* Picks the focusable cell whose date is closest to targetTs. Used as a
|
|
14019
|
+
* fallback after a month-boundary nav when the exact target date isn't
|
|
14020
|
+
* focusable — typically because the month re-render lagged or the date
|
|
14021
|
+
* was filtered out by isOutOfRange. When two cells are equidistant, the
|
|
14022
|
+
* navigation direction breaks the tie so the user moves the way they
|
|
14023
|
+
* pressed (forward → later cell, backward → earlier cell).
|
|
14024
|
+
* @private
|
|
14025
|
+
* @param {Array} cells - Focusable cells from getAllFocusableCells.
|
|
14026
|
+
* @param {Number} targetTs - Desired Unix timestamp (seconds).
|
|
14027
|
+
* @param {'next'|'prev'} direction - Navigation direction.
|
|
14028
|
+
* @returns {Object|null} The nearest cell, or null when cells is empty.
|
|
14029
|
+
*/
|
|
14030
|
+
pickNearestCell(cells, targetTs, direction) {
|
|
14031
|
+
if (!cells.length) {
|
|
14032
|
+
return null;
|
|
14033
|
+
}
|
|
14034
|
+
const forward = direction === 'next';
|
|
14035
|
+
let best = null;
|
|
14036
|
+
let bestDelta = Infinity;
|
|
14037
|
+
cells.forEach((cell) => {
|
|
14038
|
+
if (!cell.day) {
|
|
14039
|
+
return;
|
|
14040
|
+
}
|
|
14041
|
+
const distance = Math.abs(cell.day.date - targetTs);
|
|
14042
|
+
if (distance < bestDelta) {
|
|
14043
|
+
best = cell;
|
|
14044
|
+
bestDelta = distance;
|
|
14045
|
+
return;
|
|
14046
|
+
}
|
|
14047
|
+
if (distance === bestDelta && best) {
|
|
14048
|
+
if (forward && cell.day.date > best.day.date) {
|
|
14049
|
+
best = cell;
|
|
14050
|
+
} else if (!forward && cell.day.date < best.day.date) {
|
|
14051
|
+
best = cell;
|
|
14052
|
+
}
|
|
14053
|
+
}
|
|
14054
|
+
});
|
|
14055
|
+
return best;
|
|
14056
|
+
}
|
|
14057
|
+
|
|
13950
14058
|
/**
|
|
13951
14059
|
* Gets all focusable cells across all rendered months.
|
|
13952
14060
|
* @private
|
|
@@ -13963,9 +14071,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13963
14071
|
|
|
13964
14072
|
/**
|
|
13965
14073
|
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
13966
|
-
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
13967
|
-
*
|
|
13968
|
-
*
|
|
14074
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered. DOM focus
|
|
14075
|
+
* stays on the grid wrapper; the live region (see getOrCreateLiveRegion)
|
|
14076
|
+
* is what announces the active cell to assistive tech.
|
|
13969
14077
|
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
13970
14078
|
* @returns {void}
|
|
13971
14079
|
*/
|
|
@@ -14046,6 +14154,72 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14046
14154
|
this.clearRangePreview();
|
|
14047
14155
|
}
|
|
14048
14156
|
|
|
14157
|
+
/**
|
|
14158
|
+
* Returns a memoized Set of blackout timestamps (seconds) drawn from both
|
|
14159
|
+
* the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
|
|
14160
|
+
* The cache invalidates when either source array's reference changes, which
|
|
14161
|
+
* matches Lit's own reactive identity semantics for array properties.
|
|
14162
|
+
* @private
|
|
14163
|
+
* @returns {Set<Number>}
|
|
14164
|
+
*/
|
|
14165
|
+
_getBlackoutSet() {
|
|
14166
|
+
const disabledDays = this.disabledDays || [];
|
|
14167
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
14168
|
+
if (this._blackoutSet
|
|
14169
|
+
&& this._cachedBlackoutDisabledDays === disabledDays
|
|
14170
|
+
&& this._cachedBlackoutDates === blackoutDates) {
|
|
14171
|
+
return this._blackoutSet;
|
|
14172
|
+
}
|
|
14173
|
+
|
|
14174
|
+
if (disabledDays.length > 0) {
|
|
14175
|
+
this._warnDisabledDaysDeprecated();
|
|
14176
|
+
}
|
|
14177
|
+
|
|
14178
|
+
const set = new Set(disabledDays.map((day) => parseInt(day, 10)));
|
|
14179
|
+
|
|
14180
|
+
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
14181
|
+
if (Array.isArray(blackoutDates)) {
|
|
14182
|
+
for (const isoStr of blackoutDates) {
|
|
14183
|
+
const parts = isoStr.split('-');
|
|
14184
|
+
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
14185
|
+
if (Number.isFinite(ts)) {
|
|
14186
|
+
set.add(ts);
|
|
14187
|
+
}
|
|
14188
|
+
}
|
|
14189
|
+
}
|
|
14190
|
+
|
|
14191
|
+
this._blackoutSet = set;
|
|
14192
|
+
this._cachedBlackoutDisabledDays = disabledDays;
|
|
14193
|
+
this._cachedBlackoutDates = blackoutDates;
|
|
14194
|
+
return set;
|
|
14195
|
+
}
|
|
14196
|
+
|
|
14197
|
+
/**
|
|
14198
|
+
* Per-class flag that gates the `disabledDays` deprecation warning so it
|
|
14199
|
+
* fires exactly once per page no matter how many calendars or rebuild
|
|
14200
|
+
* cycles encounter the legacy array.
|
|
14201
|
+
* @private
|
|
14202
|
+
*/
|
|
14203
|
+
static _warnedDisabledDaysDeprecation = false;
|
|
14204
|
+
|
|
14205
|
+
/**
|
|
14206
|
+
* One-time `console.debug` directing consumers from the legacy
|
|
14207
|
+
* `disabledDays` Unix-timestamp API to the ISO `blackoutDates` API. Fires
|
|
14208
|
+
* the first time `_getBlackoutSet` rebuilds from a non-empty
|
|
14209
|
+
* `disabledDays`; subsequent calls (on this or any other AuroCalendar
|
|
14210
|
+
* instance on the page) are silent.
|
|
14211
|
+
* @private
|
|
14212
|
+
* @returns {void}
|
|
14213
|
+
*/
|
|
14214
|
+
_warnDisabledDaysDeprecated() {
|
|
14215
|
+
if (AuroCalendar._warnedDisabledDaysDeprecation) {
|
|
14216
|
+
return;
|
|
14217
|
+
}
|
|
14218
|
+
AuroCalendar._warnedDisabledDaysDeprecation = true;
|
|
14219
|
+
// eslint-disable-next-line no-console
|
|
14220
|
+
console.debug('[auro-datepicker] The `disabledDays` property (Unix timestamps) is deprecated. Migrate to the `blackoutDates` property on auro-datepicker (an array of `YYYY-MM-DD` ISO strings). `disabledDays` will be removed in a future major release.');
|
|
14221
|
+
}
|
|
14222
|
+
|
|
14049
14223
|
/**
|
|
14050
14224
|
* Computes the initial active date from data properties alone — no DOM required.
|
|
14051
14225
|
* Priority:
|
|
@@ -14090,21 +14264,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14090
14264
|
const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
|
|
14091
14265
|
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
14092
14266
|
|
|
14093
|
-
// Build a Set of blackout timestamps for O(1) lookup.
|
|
14094
|
-
|
|
14095
|
-
|
|
14096
|
-
|
|
14097
|
-
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
14098
|
-
const isoBlackouts = this.datepicker?.blackoutDates;
|
|
14099
|
-
if (Array.isArray(isoBlackouts)) {
|
|
14100
|
-
for (const isoStr of isoBlackouts) {
|
|
14101
|
-
const parts = isoStr.split('-');
|
|
14102
|
-
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
14103
|
-
if (Number.isFinite(ts)) {
|
|
14104
|
-
blackoutSet.add(ts);
|
|
14105
|
-
}
|
|
14106
|
-
}
|
|
14107
|
-
}
|
|
14267
|
+
// Build a Set of blackout timestamps for O(1) lookup. Memoized by the
|
|
14268
|
+
// identity of the source arrays so rapid month nav doesn't rebuild the
|
|
14269
|
+
// Set (and re-parse every ISO string) on every keypress.
|
|
14270
|
+
const blackoutSet = this._getBlackoutSet();
|
|
14108
14271
|
|
|
14109
14272
|
/**
|
|
14110
14273
|
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
@@ -14300,8 +14463,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14300
14463
|
|
|
14301
14464
|
/**
|
|
14302
14465
|
* Handles arrow key navigation on the calendar grid wrapper.
|
|
14303
|
-
* Focus stays on the grid wrapper; only
|
|
14304
|
-
*
|
|
14466
|
+
* Focus stays on the grid wrapper; only the visual active-cell indicator
|
|
14467
|
+
* changes. The live region announces the new active cell.
|
|
14305
14468
|
* @private
|
|
14306
14469
|
* @param {KeyboardEvent} event - The keyboard event.
|
|
14307
14470
|
* @returns {void}
|
|
@@ -14366,21 +14529,21 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14366
14529
|
} else {
|
|
14367
14530
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14368
14531
|
}
|
|
14369
|
-
|
|
14370
|
-
|
|
14371
|
-
|
|
14372
|
-
|
|
14373
|
-
|
|
14374
|
-
|
|
14375
|
-
|
|
14376
|
-
|
|
14377
|
-
|
|
14532
|
+
this._afterMonthRender(() => {
|
|
14533
|
+
const cells = this.getAllFocusableCells();
|
|
14534
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
14535
|
+
if (target) {
|
|
14536
|
+
this.setActiveCell(target.day.date);
|
|
14537
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
14538
|
+
} else {
|
|
14539
|
+
const fallback = this.pickNearestCell(cells, targetTs, navDir);
|
|
14540
|
+
if (fallback) {
|
|
14378
14541
|
this.setActiveCell(fallback.day.date);
|
|
14379
14542
|
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
14380
14543
|
}
|
|
14381
|
-
|
|
14382
|
-
|
|
14383
|
-
|
|
14544
|
+
}
|
|
14545
|
+
// Re-focus grid wrapper after month change re-render
|
|
14546
|
+
this.focusActiveCell();
|
|
14384
14547
|
});
|
|
14385
14548
|
}
|
|
14386
14549
|
}
|
|
@@ -14406,26 +14569,20 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14406
14569
|
} else {
|
|
14407
14570
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14408
14571
|
}
|
|
14409
|
-
|
|
14410
|
-
|
|
14411
|
-
|
|
14412
|
-
|
|
14413
|
-
|
|
14414
|
-
|
|
14415
|
-
|
|
14416
|
-
|
|
14417
|
-
|
|
14418
|
-
|
|
14419
|
-
if (navDirection === 'next') {
|
|
14420
|
-
[nearest] = cells;
|
|
14421
|
-
} else {
|
|
14422
|
-
nearest = cells[cells.length - 1];
|
|
14423
|
-
}
|
|
14572
|
+
this._afterMonthRender(() => {
|
|
14573
|
+
const cells = this.getAllFocusableCells();
|
|
14574
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14575
|
+
if (target) {
|
|
14576
|
+
this.setActiveCell(target.day.date);
|
|
14577
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
14578
|
+
} else {
|
|
14579
|
+
const nearest = this.pickNearestCell(cells, targetDate, navDirection);
|
|
14580
|
+
if (nearest) {
|
|
14424
14581
|
this.setActiveCell(nearest.day.date);
|
|
14425
14582
|
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
14426
14583
|
}
|
|
14427
|
-
|
|
14428
|
-
|
|
14584
|
+
}
|
|
14585
|
+
this.focusActiveCell();
|
|
14429
14586
|
});
|
|
14430
14587
|
}
|
|
14431
14588
|
}
|
|
@@ -14475,19 +14632,17 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14475
14632
|
}
|
|
14476
14633
|
|
|
14477
14634
|
this.handleNextMonth({ skipActiveUpdate: true });
|
|
14478
|
-
|
|
14479
|
-
|
|
14480
|
-
|
|
14481
|
-
|
|
14482
|
-
|
|
14483
|
-
|
|
14484
|
-
|
|
14485
|
-
|
|
14486
|
-
|
|
14487
|
-
|
|
14488
|
-
|
|
14489
|
-
}
|
|
14490
|
-
});
|
|
14635
|
+
this._afterMonthRender(() => {
|
|
14636
|
+
const cells = this.getAllFocusableCells();
|
|
14637
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
14638
|
+
if (target) {
|
|
14639
|
+
this.setActiveCell(target.day.date);
|
|
14640
|
+
this.focusActiveCell();
|
|
14641
|
+
} else if (cells.length > 0) {
|
|
14642
|
+
// Fallback: first cell of the last rendered month
|
|
14643
|
+
this.setActiveCell(cells[cells.length - 1].day.date);
|
|
14644
|
+
this.focusActiveCell();
|
|
14645
|
+
}
|
|
14491
14646
|
});
|
|
14492
14647
|
} else if (direction === 'prev' && this.showPrevMonthBtn) {
|
|
14493
14648
|
// Navigate to previous month and focus the computed previous date.
|
|
@@ -14501,19 +14656,17 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14501
14656
|
}
|
|
14502
14657
|
|
|
14503
14658
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14504
|
-
|
|
14505
|
-
|
|
14506
|
-
|
|
14507
|
-
|
|
14508
|
-
|
|
14509
|
-
|
|
14510
|
-
|
|
14511
|
-
|
|
14512
|
-
|
|
14513
|
-
|
|
14514
|
-
|
|
14515
|
-
}
|
|
14516
|
-
});
|
|
14659
|
+
this._afterMonthRender(() => {
|
|
14660
|
+
const cells = this.getAllFocusableCells();
|
|
14661
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
14662
|
+
if (target) {
|
|
14663
|
+
this.setActiveCell(target.day.date);
|
|
14664
|
+
this.focusActiveCell();
|
|
14665
|
+
} else if (cells.length > 0) {
|
|
14666
|
+
// Fallback: last cell of the first rendered month
|
|
14667
|
+
this.setActiveCell(cells[0].day.date);
|
|
14668
|
+
this.focusActiveCell();
|
|
14669
|
+
}
|
|
14517
14670
|
});
|
|
14518
14671
|
}
|
|
14519
14672
|
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
@@ -14541,20 +14694,18 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14541
14694
|
} else {
|
|
14542
14695
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14543
14696
|
}
|
|
14544
|
-
|
|
14545
|
-
|
|
14546
|
-
|
|
14547
|
-
|
|
14548
|
-
|
|
14549
|
-
|
|
14550
|
-
|
|
14551
|
-
|
|
14552
|
-
|
|
14553
|
-
|
|
14554
|
-
|
|
14555
|
-
|
|
14556
|
-
}
|
|
14557
|
-
});
|
|
14697
|
+
this._afterMonthRender(() => {
|
|
14698
|
+
const cells = this.getAllFocusableCells();
|
|
14699
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14700
|
+
if (target) {
|
|
14701
|
+
this.setActiveCell(target.day.date);
|
|
14702
|
+
this.focusActiveCell();
|
|
14703
|
+
} else if (cells.length > 0) {
|
|
14704
|
+
// Clamp to nearest focusable cell
|
|
14705
|
+
const nearest = navDirection === 'next' ? cells[0] : cells[cells.length - 1];
|
|
14706
|
+
this.setActiveCell(nearest.day.date);
|
|
14707
|
+
this.focusActiveCell();
|
|
14708
|
+
}
|
|
14558
14709
|
});
|
|
14559
14710
|
}
|
|
14560
14711
|
}
|
|
@@ -14593,8 +14744,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14593
14744
|
return;
|
|
14594
14745
|
}
|
|
14595
14746
|
|
|
14596
|
-
//
|
|
14597
|
-
// so
|
|
14747
|
+
// DOM focus stays on the grid wrapper while arrow keys move the active
|
|
14748
|
+
// cell, so cell buttons never receive native focus. The debounced live
|
|
14749
|
+
// region carries the full-context announcement instead.
|
|
14598
14750
|
const announcement = this.buildFocusAnnouncement(date);
|
|
14599
14751
|
this.announceFocusDebounced(announcement);
|
|
14600
14752
|
|
|
@@ -14664,10 +14816,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14664
14816
|
return null;
|
|
14665
14817
|
}
|
|
14666
14818
|
|
|
14667
|
-
const departTs =
|
|
14819
|
+
const departTs = new Date(parsedFrom * 1000).setHours(0, 0, 0, 0) / 1000;
|
|
14668
14820
|
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
14669
14821
|
const hasTo = Number.isFinite(parsedTo);
|
|
14670
|
-
const returnTs = hasTo ?
|
|
14822
|
+
const returnTs = hasTo ? new Date(parsedTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
|
|
14671
14823
|
|
|
14672
14824
|
if (date === departTs) {
|
|
14673
14825
|
return this.datepicker.rangeLabelStart || 'range start';
|
|
@@ -14681,6 +14833,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14681
14833
|
if (hasTo && date > departTs && date < returnTs) {
|
|
14682
14834
|
return this.datepicker.rangeLabelInRange || 'in range';
|
|
14683
14835
|
}
|
|
14836
|
+
if (!hasTo && date > departTs) {
|
|
14837
|
+
return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
14838
|
+
}
|
|
14684
14839
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
14685
14840
|
}
|
|
14686
14841
|
|
|
@@ -14877,9 +15032,34 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14877
15032
|
// the last one.
|
|
14878
15033
|
if (this._announceRafId) {
|
|
14879
15034
|
cancelAnimationFrame(this._announceRafId);
|
|
15035
|
+
this._announceRafId = null;
|
|
14880
15036
|
}
|
|
15037
|
+
this._deliverAnnouncement(dateStr, 0);
|
|
15038
|
+
}
|
|
15039
|
+
|
|
15040
|
+
/**
|
|
15041
|
+
* Writes `dateStr` to the live region. If the dropdown's dialog hasn't
|
|
15042
|
+
* mounted yet (so getOrCreateLiveRegion can't attach), retries on the
|
|
15043
|
+
* next animation frame up to MAX_LIVE_REGION_RETRIES instead of silently
|
|
15044
|
+
* dropping the announcement. The retry uses the same `_announceRafId`
|
|
15045
|
+
* the double-rAF below uses, so a newer announceSelection call (or
|
|
15046
|
+
* disconnectedCallback) cancels any in-flight retry.
|
|
15047
|
+
* @private
|
|
15048
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
15049
|
+
* @param {Number} attempts - Number of prior retry attempts.
|
|
15050
|
+
* @returns {void}
|
|
15051
|
+
*/
|
|
15052
|
+
_deliverAnnouncement(dateStr, attempts) {
|
|
14881
15053
|
const liveRegion = this.getOrCreateLiveRegion();
|
|
14882
15054
|
if (!liveRegion) {
|
|
15055
|
+
const MAX_LIVE_REGION_RETRIES = 10;
|
|
15056
|
+
if (attempts < MAX_LIVE_REGION_RETRIES) {
|
|
15057
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
15058
|
+
this._deliverAnnouncement(dateStr, attempts + 1);
|
|
15059
|
+
});
|
|
15060
|
+
} else {
|
|
15061
|
+
this._announceRafId = null;
|
|
15062
|
+
}
|
|
14883
15063
|
return;
|
|
14884
15064
|
}
|
|
14885
15065
|
|
|
@@ -15065,7 +15245,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
15065
15245
|
</button>
|
|
15066
15246
|
` : undefined}
|
|
15067
15247
|
</div>
|
|
15068
|
-
<div id="calendarGrid" class="calendars" role="group" tabindex="0" aria-label="${this.datepicker?.calendarGridLabel}" @keydown="${this.handleGridKeyDown}" @focusin="${this.handleGridFocusIn}" @focusout="${this.handleGridFocusOut}" @calendar-month-mouseleave="${this.clearRangePreview}">
|
|
15248
|
+
<div id="calendarGrid" class="calendars" role="group" aria-roledescription="calendar" tabindex="0" aria-label="${this.datepicker?.calendarGridLabel}" @keydown="${this.handleGridKeyDown}" @focusin="${this.handleGridFocusIn}" @focusout="${this.handleGridFocusOut}" @calendar-month-mouseleave="${this.clearRangePreview}">
|
|
15069
15249
|
${this.renderAllCalendars()}
|
|
15070
15250
|
</div>
|
|
15071
15251
|
</div>
|
|
@@ -18974,7 +19154,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
|
|
|
18974
19154
|
}
|
|
18975
19155
|
};
|
|
18976
19156
|
|
|
18977
|
-
var formkitVersion$1 = '
|
|
19157
|
+
var formkitVersion$1 = '202606251933';
|
|
18978
19158
|
|
|
18979
19159
|
let AuroElement$2 = class AuroElement extends i$1 {
|
|
18980
19160
|
static get properties() {
|
|
@@ -31513,15 +31693,6 @@ class BaseInput extends AuroElement$1 {
|
|
|
31513
31693
|
this.wrapperElement.addEventListener('click', this.handleClick);
|
|
31514
31694
|
}
|
|
31515
31695
|
|
|
31516
|
-
// add attribute for query selectors when auro-input is registered under a custom name
|
|
31517
|
-
// COVERAGE: the body of this branch is unreachable in WTR — connectedCallback
|
|
31518
|
-
// performs the same `setAttribute('auro-input', '')` earlier (see L665-667),
|
|
31519
|
-
// so by the time firstUpdated runs the attribute is already present and the
|
|
31520
|
-
// `!hasAttribute('auro-input')` guard is false. Retained as a defensive
|
|
31521
|
-
// safety net in case connectedCallback is ever short-circuited.
|
|
31522
|
-
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
31523
|
-
this.setAttribute('auro-input', '');
|
|
31524
|
-
}
|
|
31525
31696
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
31526
31697
|
|
|
31527
31698
|
// use validity message override if declared when initializing the component
|
|
@@ -32092,13 +32263,7 @@ class BaseInput extends AuroElement$1 {
|
|
|
32092
32263
|
*/
|
|
32093
32264
|
get placeholderStr() {
|
|
32094
32265
|
if (!this.placeholder && this.type === 'date') {
|
|
32095
|
-
|
|
32096
|
-
// connectedCallback (L682) calls configureDataForType, which at L1266-1268
|
|
32097
|
-
// assigns `this.format = this.util.getDateMaskFromLocale().toLowerCase()`
|
|
32098
|
-
// when type=date and format is unset. That runs before the first render
|
|
32099
|
-
// reads this getter, so the ternary's truthy arm always wins. Retained
|
|
32100
|
-
// as a defensive fallback for direct getter calls before connection.
|
|
32101
|
-
return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
|
|
32266
|
+
return this.format.toUpperCase();
|
|
32102
32267
|
}
|
|
32103
32268
|
return this.placeholder || "";
|
|
32104
32269
|
}
|
|
@@ -32589,7 +32754,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
|
|
|
32589
32754
|
}
|
|
32590
32755
|
};
|
|
32591
32756
|
|
|
32592
|
-
var formkitVersion = '
|
|
32757
|
+
var formkitVersion = '202606251933';
|
|
32593
32758
|
|
|
32594
32759
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
32595
32760
|
// See LICENSE in the project root for license information.
|
|
@@ -34066,6 +34231,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34066
34231
|
this.rangeLabelBeforeRange = 'before range';
|
|
34067
34232
|
this.rangeLabelInRange = 'in range';
|
|
34068
34233
|
this.rangeLabelAfterRange = 'after range';
|
|
34234
|
+
this.rangeLabelEndPreview = 'previewing range end';
|
|
34069
34235
|
this.blackoutDates = [];
|
|
34070
34236
|
this.blackoutLabel = 'unavailable';
|
|
34071
34237
|
this.navLabelPrevMonth = 'Previous month';
|
|
@@ -34165,6 +34331,22 @@ class AuroDatePicker extends AuroElement {
|
|
|
34165
34331
|
*/
|
|
34166
34332
|
this.handleClick = this.handleClick.bind(this);
|
|
34167
34333
|
|
|
34334
|
+
/**
|
|
34335
|
+
* Single AbortController shared by every listener registered in the
|
|
34336
|
+
* configure* methods. Lets disconnectedCallback tear all of them down
|
|
34337
|
+
* with one abort() call.
|
|
34338
|
+
*
|
|
34339
|
+
* The genuine leak risk is the listeners attached to children that can
|
|
34340
|
+
* outlive the host if they get reparented — `this.dropdown`,
|
|
34341
|
+
* `this.calendar`, and the inputs inside the dropdown's slot.
|
|
34342
|
+
* Listeners attached to `this` (e.g. focusin/focusout on the host)
|
|
34343
|
+
* form a self-contained reference graph that the GC can collect with
|
|
34344
|
+
* the host anyway, but they share the same signal so the cleanup
|
|
34345
|
+
* pattern stays uniform across all configure* sites.
|
|
34346
|
+
* @private
|
|
34347
|
+
*/
|
|
34348
|
+
this._listenerAbortController = new AbortController();
|
|
34349
|
+
|
|
34168
34350
|
/**
|
|
34169
34351
|
* @private
|
|
34170
34352
|
*/
|
|
@@ -34213,6 +34395,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34213
34395
|
|
|
34214
34396
|
/**
|
|
34215
34397
|
* Label announced for blackout (disabled but in-range) date cells.
|
|
34398
|
+
* @default 'unavailable'
|
|
34216
34399
|
*/
|
|
34217
34400
|
blackoutLabel: {
|
|
34218
34401
|
type: String,
|
|
@@ -34229,6 +34412,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34229
34412
|
|
|
34230
34413
|
/**
|
|
34231
34414
|
* Accessible label for the calendar grid containing the days of the month.
|
|
34415
|
+
* @default 'Calendar days of the month'
|
|
34232
34416
|
*/
|
|
34233
34417
|
calendarGridLabel: {
|
|
34234
34418
|
type: String,
|
|
@@ -34391,6 +34575,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34391
34575
|
|
|
34392
34576
|
/**
|
|
34393
34577
|
* Accessible label for the next month navigation button.
|
|
34578
|
+
* @default 'Next month'
|
|
34394
34579
|
*/
|
|
34395
34580
|
navLabelNextMonth: {
|
|
34396
34581
|
type: String,
|
|
@@ -34399,6 +34584,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34399
34584
|
|
|
34400
34585
|
/**
|
|
34401
34586
|
* Accessible label for the previous month navigation button.
|
|
34587
|
+
* @default 'Previous month'
|
|
34402
34588
|
*/
|
|
34403
34589
|
navLabelPrevMonth: {
|
|
34404
34590
|
type: String,
|
|
@@ -34477,6 +34663,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34477
34663
|
|
|
34478
34664
|
/**
|
|
34479
34665
|
* Label announced for cells after the range (or after start when no end is selected).
|
|
34666
|
+
* @default 'after range'
|
|
34480
34667
|
*/
|
|
34481
34668
|
rangeLabelAfterRange: {
|
|
34482
34669
|
type: String,
|
|
@@ -34485,6 +34672,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34485
34672
|
|
|
34486
34673
|
/**
|
|
34487
34674
|
* Label announced for cells before the range start.
|
|
34675
|
+
* @default 'before range'
|
|
34488
34676
|
*/
|
|
34489
34677
|
rangeLabelBeforeRange: {
|
|
34490
34678
|
type: String,
|
|
@@ -34493,14 +34681,27 @@ class AuroDatePicker extends AuroElement {
|
|
|
34493
34681
|
|
|
34494
34682
|
/**
|
|
34495
34683
|
* Label announced for the range end date cell.
|
|
34684
|
+
* @default 'range end'
|
|
34496
34685
|
*/
|
|
34497
34686
|
rangeLabelEnd: {
|
|
34498
34687
|
type: String,
|
|
34499
34688
|
reflect: true
|
|
34500
34689
|
},
|
|
34501
34690
|
|
|
34691
|
+
/**
|
|
34692
|
+
* Label announced for the focused cell while previewing a range end
|
|
34693
|
+
* (dateFrom set, dateTo not yet selected). Tells AT users that
|
|
34694
|
+
* pressing Enter would commit this cell as the range end.
|
|
34695
|
+
* @default 'previewing range end'
|
|
34696
|
+
*/
|
|
34697
|
+
rangeLabelEndPreview: {
|
|
34698
|
+
type: String,
|
|
34699
|
+
reflect: true
|
|
34700
|
+
},
|
|
34701
|
+
|
|
34502
34702
|
/**
|
|
34503
34703
|
* Label announced for cells within the selected range.
|
|
34704
|
+
* @default 'in range'
|
|
34504
34705
|
*/
|
|
34505
34706
|
rangeLabelInRange: {
|
|
34506
34707
|
type: String,
|
|
@@ -34509,6 +34710,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34509
34710
|
|
|
34510
34711
|
/**
|
|
34511
34712
|
* Label announced for the range start date cell.
|
|
34713
|
+
* @default 'range start'
|
|
34512
34714
|
*/
|
|
34513
34715
|
rangeLabelStart: {
|
|
34514
34716
|
type: String,
|
|
@@ -34873,10 +35075,26 @@ class AuroDatePicker extends AuroElement {
|
|
|
34873
35075
|
// ─── Vendor calendar time conversions ─────────────────────────────────────
|
|
34874
35076
|
|
|
34875
35077
|
/**
|
|
34876
|
-
* Converts a Unix timestamp (seconds) from the
|
|
35078
|
+
* Converts a Unix timestamp (seconds) from the vendored range-datepicker
|
|
35079
|
+
* (`src/vendor/wc-range-datepicker/day.js`) to an ISO date string.
|
|
35080
|
+
*
|
|
35081
|
+
* Timezone contract:
|
|
35082
|
+
* - INPUT: `time` is assumed to be the seconds-since-epoch of **local
|
|
35083
|
+
* midnight** for the intended calendar day. The vendor's Day constructor
|
|
35084
|
+
* builds it via `date-fns format(date, 't')` from a locally-constructed
|
|
35085
|
+
* Date, so this assumption currently holds end-to-end.
|
|
35086
|
+
* - OUTPUT: `dateFormatter.toISOFormatString` reads the Date's local
|
|
35087
|
+
* getFullYear/getMonth/getDate components, so the returned YYYY-MM-DD
|
|
35088
|
+
* string matches the local calendar day.
|
|
35089
|
+
*
|
|
35090
|
+
* If the vendor ever switches to emitting UTC-midnight timestamps, this
|
|
35091
|
+
* conversion will silently shift the returned date by one day in zones
|
|
35092
|
+
* west of UTC. Any vendor swap should re-verify this contract; the TZ
|
|
35093
|
+
* regression suite (`npm run test:hst`, UTC-10) will catch the symptom.
|
|
35094
|
+
*
|
|
34877
35095
|
* @private
|
|
34878
|
-
* @param {number} time - Unix timestamp
|
|
34879
|
-
* @returns {string} ISO date string (yyyy-mm-dd).
|
|
35096
|
+
* @param {number} time - Unix timestamp (seconds), local midnight of the day.
|
|
35097
|
+
* @returns {string} ISO date string (yyyy-mm-dd) reflecting the local calendar day.
|
|
34880
35098
|
*/
|
|
34881
35099
|
convertWcTimeToDate(time) {
|
|
34882
35100
|
return dateFormatter$1.toISOFormatString(new Date(time * 1000));
|
|
@@ -34978,8 +35196,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
34978
35196
|
}
|
|
34979
35197
|
}
|
|
34980
35198
|
|
|
34981
|
-
// Focus the calendar grid wrapper (
|
|
34982
|
-
// the SR announcement for the active cell
|
|
35199
|
+
// Focus the calendar grid wrapper. The live region (announced just
|
|
35200
|
+
// below) handles the SR announcement for the active cell.
|
|
34983
35201
|
if (activeCell) {
|
|
34984
35202
|
this.calendar.focusActiveCell();
|
|
34985
35203
|
|
|
@@ -35029,11 +35247,13 @@ class AuroDatePicker extends AuroElement {
|
|
|
35029
35247
|
this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
|
|
35030
35248
|
}
|
|
35031
35249
|
|
|
35250
|
+
const { signal } = this._listenerAbortController;
|
|
35251
|
+
|
|
35032
35252
|
this.dropdown.addEventListener('auroDropdown-triggerClick', () => {
|
|
35033
35253
|
if (!this.isPopoverVisible) {
|
|
35034
35254
|
this.dropdown.show();
|
|
35035
35255
|
}
|
|
35036
|
-
});
|
|
35256
|
+
}, { signal });
|
|
35037
35257
|
|
|
35038
35258
|
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
35039
35259
|
this.notifyDatepickerToggled();
|
|
@@ -35051,7 +35271,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35051
35271
|
if (this.valueObject) {
|
|
35052
35272
|
this.centralDate = this.value;
|
|
35053
35273
|
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
35054
|
-
this.centralDate = new Date();
|
|
35274
|
+
this.centralDate = dateFormatter$1.toISOFormatString(new Date());
|
|
35055
35275
|
}
|
|
35056
35276
|
}
|
|
35057
35277
|
|
|
@@ -35131,7 +35351,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35131
35351
|
this.forceScrollOnNextMobileCalendarRender = false;
|
|
35132
35352
|
}, 0);
|
|
35133
35353
|
}
|
|
35134
|
-
});
|
|
35354
|
+
}, { signal });
|
|
35135
35355
|
|
|
35136
35356
|
// Handle responsive strategy changes while the dropdown is open
|
|
35137
35357
|
// (e.g. resizing from desktop → mobile or vice versa).
|
|
@@ -35178,7 +35398,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35178
35398
|
});
|
|
35179
35399
|
});
|
|
35180
35400
|
}
|
|
35181
|
-
});
|
|
35401
|
+
}, { signal });
|
|
35182
35402
|
}
|
|
35183
35403
|
|
|
35184
35404
|
/**
|
|
@@ -35191,6 +35411,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
35191
35411
|
|
|
35192
35412
|
this.inputList = [...this.dropdown.querySelectorAll(this.inputTag._$litStatic$)];
|
|
35193
35413
|
|
|
35414
|
+
const { signal } = this._listenerAbortController;
|
|
35415
|
+
|
|
35194
35416
|
this.inputList.forEach((input, index) => {
|
|
35195
35417
|
input.addEventListener('input', (event) => {
|
|
35196
35418
|
event.stopPropagation();
|
|
@@ -35202,7 +35424,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35202
35424
|
}
|
|
35203
35425
|
|
|
35204
35426
|
this.notifyValueChanged();
|
|
35205
|
-
});
|
|
35427
|
+
}, { signal });
|
|
35206
35428
|
|
|
35207
35429
|
input.addEventListener('auroFormElement-validated', (evt) => {
|
|
35208
35430
|
// not to bubble up input's validated event.
|
|
@@ -35218,7 +35440,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35218
35440
|
this.validity = evt.detail.validity;
|
|
35219
35441
|
this.errorMessage = evt.detail.message;
|
|
35220
35442
|
}
|
|
35221
|
-
});
|
|
35443
|
+
}, { signal });
|
|
35222
35444
|
});
|
|
35223
35445
|
}
|
|
35224
35446
|
|
|
@@ -35232,6 +35454,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
35232
35454
|
this.calendar.datepicker = this;
|
|
35233
35455
|
this.calendar.dropdown = this.dropdown;
|
|
35234
35456
|
|
|
35457
|
+
const { signal } = this._listenerAbortController;
|
|
35458
|
+
|
|
35235
35459
|
this.calendar.addEventListener('auroCalendar-dateSelected', () => {
|
|
35236
35460
|
if (this.inputList[0].value !== this.calendar.dateFrom && this.calendar.dateFrom !== undefined) {
|
|
35237
35461
|
this.inputList[0].value = this.convertWcTimeToDate(this.calendar.dateFrom);
|
|
@@ -35240,11 +35464,11 @@ class AuroDatePicker extends AuroElement {
|
|
|
35240
35464
|
if (this.inputList[1] && this.calendar.dateTo && this.inputList[1].value !== this.calendar.dateTo) {
|
|
35241
35465
|
this.inputList[1].value = this.convertWcTimeToDate(this.calendar.dateTo);
|
|
35242
35466
|
}
|
|
35243
|
-
});
|
|
35467
|
+
}, { signal });
|
|
35244
35468
|
|
|
35245
35469
|
this.calendar.addEventListener('auroCalendar-dismissRequest', () => {
|
|
35246
35470
|
this.dropdown.hide();
|
|
35247
|
-
});
|
|
35471
|
+
}, { signal });
|
|
35248
35472
|
|
|
35249
35473
|
this.calendar.addEventListener('auroCalendar-centralDateChanged', (event) => {
|
|
35250
35474
|
const match = this.centralDateObject && this.util.datesMatch(event.detail.date, this.centralDateObject);
|
|
@@ -35254,7 +35478,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35254
35478
|
}
|
|
35255
35479
|
|
|
35256
35480
|
this.notifyMonthChanged(event);
|
|
35257
|
-
});
|
|
35481
|
+
}, { signal });
|
|
35258
35482
|
}
|
|
35259
35483
|
|
|
35260
35484
|
/**
|
|
@@ -35263,10 +35487,17 @@ class AuroDatePicker extends AuroElement {
|
|
|
35263
35487
|
* @returns {void}
|
|
35264
35488
|
*/
|
|
35265
35489
|
configureDatepicker() {
|
|
35490
|
+
// These listeners are on `this` (the host), so they would GC with the
|
|
35491
|
+
// host even without the abort signal — see the leak rationale on
|
|
35492
|
+
// `_listenerAbortController`. The signal is still passed for uniform
|
|
35493
|
+
// cleanup semantics with the child-element listeners in the other
|
|
35494
|
+
// configure* methods.
|
|
35495
|
+
const { signal } = this._listenerAbortController;
|
|
35496
|
+
|
|
35266
35497
|
this.addEventListener('focusin', () => {
|
|
35267
35498
|
this.touched = true;
|
|
35268
35499
|
this.hasFocus = true;
|
|
35269
|
-
});
|
|
35500
|
+
}, { signal });
|
|
35270
35501
|
|
|
35271
35502
|
this.addEventListener('focusout', () => {
|
|
35272
35503
|
this.hasFocus = false;
|
|
@@ -35278,7 +35509,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35278
35509
|
if (!this.matches(':focus-within')) {
|
|
35279
35510
|
this.validate();
|
|
35280
35511
|
}
|
|
35281
|
-
});
|
|
35512
|
+
}, { signal });
|
|
35282
35513
|
|
|
35283
35514
|
if (this.valueObject) {
|
|
35284
35515
|
this.calendar.dateFrom = this.convertToWcValidTime(this.valueObject);
|
|
@@ -35476,6 +35707,36 @@ class AuroDatePicker extends AuroElement {
|
|
|
35476
35707
|
return this.validity !== undefined && this.validity !== 'valid';
|
|
35477
35708
|
}
|
|
35478
35709
|
|
|
35710
|
+
/**
|
|
35711
|
+
* Per-class dedup set used by `_warnInvalidLocale`. Static so the dedup
|
|
35712
|
+
* spans every datepicker instance on the page; lives on the class (not
|
|
35713
|
+
* at module scope) so it stays an encapsulated implementation detail of
|
|
35714
|
+
* this component and does not interfere with WCA's class-JSDoc
|
|
35715
|
+
* attachment.
|
|
35716
|
+
* @private
|
|
35717
|
+
*/
|
|
35718
|
+
static _warnedInvalidLocales = new Set();
|
|
35719
|
+
|
|
35720
|
+
/**
|
|
35721
|
+
* Logs a one-time `console.debug` when an unsupported locale falls back to
|
|
35722
|
+
* en-US. Deduped by the offending tag so noisy re-renders that resurface
|
|
35723
|
+
* the same bad value stay quiet, but each new bad value still signals so
|
|
35724
|
+
* consumers can spot the typo or missing tag.
|
|
35725
|
+
* @private
|
|
35726
|
+
* @param {string|undefined} badLocale - The locale value that failed.
|
|
35727
|
+
* @returns {void}
|
|
35728
|
+
*/
|
|
35729
|
+
_warnInvalidLocale(badLocale) {
|
|
35730
|
+
const key = String(badLocale ?? '');
|
|
35731
|
+
const seen = AuroDatePicker._warnedInvalidLocales;
|
|
35732
|
+
if (seen.has(key)) {
|
|
35733
|
+
return;
|
|
35734
|
+
}
|
|
35735
|
+
seen.add(key);
|
|
35736
|
+
// eslint-disable-next-line no-console
|
|
35737
|
+
console.debug(`[auro-datepicker] Locale "${key}" is not supported by Intl.DateTimeFormat. Falling back to "en-US". Pass a BCP 47 tag such as "en-US", "fr-FR", or "ja-JP".`);
|
|
35738
|
+
}
|
|
35739
|
+
|
|
35479
35740
|
/**
|
|
35480
35741
|
* Lifecycle method to check if the locale is valid.
|
|
35481
35742
|
* @ignore
|
|
@@ -35486,10 +35747,15 @@ class AuroDatePicker extends AuroElement {
|
|
|
35486
35747
|
if (changedProperties.has('locale')) {
|
|
35487
35748
|
try {
|
|
35488
35749
|
const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
|
|
35489
|
-
|
|
35750
|
+
if (supported.length > 0) {
|
|
35751
|
+
this._validLocale = this.locale;
|
|
35752
|
+
} else {
|
|
35753
|
+
this._validLocale = 'en-US';
|
|
35754
|
+
this._warnInvalidLocale(this.locale);
|
|
35755
|
+
}
|
|
35490
35756
|
} catch {
|
|
35491
|
-
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
|
|
35492
35757
|
this._validLocale = 'en-US';
|
|
35758
|
+
this._warnInvalidLocale(this.locale);
|
|
35493
35759
|
}
|
|
35494
35760
|
|
|
35495
35761
|
const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
|
|
@@ -35571,8 +35837,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
35571
35837
|
// Skip centralDate update when user clicked a cell in range mode
|
|
35572
35838
|
// to prevent the displayed months from shifting
|
|
35573
35839
|
this.centralDate = this.value;
|
|
35574
|
-
//TODO: TEST THIS CHANGE
|
|
35575
|
-
// this.calendarRenderUtil.updateCentralDate(this, this.value);
|
|
35576
35840
|
}
|
|
35577
35841
|
|
|
35578
35842
|
this.setHasValue();
|
|
@@ -35632,8 +35896,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
35632
35896
|
// Skip centralDate update when user clicked a cell in range mode
|
|
35633
35897
|
// to prevent the displayed months from shifting
|
|
35634
35898
|
this.centralDate = this.valueEnd;
|
|
35635
|
-
// TODO: TEST THIS CHANGE
|
|
35636
|
-
// this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
|
|
35637
35899
|
}
|
|
35638
35900
|
|
|
35639
35901
|
this.validate();
|
|
@@ -35775,7 +36037,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35775
36037
|
* @returns {void}
|
|
35776
36038
|
*/
|
|
35777
36039
|
configureClickHandler() {
|
|
35778
|
-
this.addEventListener('click', this.handleClick);
|
|
36040
|
+
this.addEventListener('click', this.handleClick, { signal: this._listenerAbortController.signal });
|
|
35779
36041
|
}
|
|
35780
36042
|
|
|
35781
36043
|
firstUpdated() {
|
|
@@ -35797,6 +36059,17 @@ class AuroDatePicker extends AuroElement {
|
|
|
35797
36059
|
this.locale = this.domHandler.getLocale(this);
|
|
35798
36060
|
}
|
|
35799
36061
|
|
|
36062
|
+
disconnectedCallback() {
|
|
36063
|
+
super.disconnectedCallback();
|
|
36064
|
+
// Defer so that re-parenting (auro-drawer slotting it into a dialog,
|
|
36065
|
+
// for example) does not abort listeners we still need after reconnect.
|
|
36066
|
+
queueMicrotask(() => {
|
|
36067
|
+
if (!this.isConnected) {
|
|
36068
|
+
this._listenerAbortController.abort();
|
|
36069
|
+
}
|
|
36070
|
+
});
|
|
36071
|
+
}
|
|
36072
|
+
|
|
35800
36073
|
// layout render methods
|
|
35801
36074
|
// ------------------------------------
|
|
35802
36075
|
|