@aurodesignsystem-dev/auro-formkit 0.0.0-pr1510.3 → 0.0.0-pr1512.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.js +22 -0
- package/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/demo-support.js +1 -0
- package/components/checkbox/demo/getting-started.js +22 -0
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.js +8 -0
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/demo/styles.scss +1 -0
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/customize.js +24 -0
- package/components/combobox/demo/customize.min.js +119 -96
- package/components/combobox/demo/demo-support.js +1 -0
- package/components/combobox/demo/getting-started.js +21 -0
- package/components/combobox/demo/getting-started.min.js +119 -96
- package/components/combobox/demo/index.js +23 -0
- package/components/combobox/demo/index.min.js +119 -96
- package/components/combobox/demo/styles.scss +1 -0
- package/components/combobox/dist/index.js +118 -95
- package/components/combobox/dist/registered.js +118 -95
- package/components/counter/demo/customize.js +21 -0
- package/components/counter/demo/customize.min.js +2 -2
- package/components/counter/demo/demo-support.js +1 -0
- package/components/counter/demo/index.js +21 -0
- package/components/counter/demo/index.min.js +2 -2
- package/components/counter/demo/styles.scss +1 -0
- package/components/counter/dist/index.js +2 -2
- package/components/counter/dist/registered.js +2 -2
- package/components/datepicker/demo/accessibility.md +1 -2
- package/components/datepicker/demo/api.md +62 -63
- package/components/datepicker/demo/customize.js +17 -0
- package/components/datepicker/demo/customize.md +1 -12
- package/components/datepicker/demo/customize.min.js +335 -702
- package/components/datepicker/demo/demo-support.js +1 -0
- package/components/datepicker/demo/index.js +23 -0
- package/components/datepicker/demo/index.min.js +335 -702
- package/components/datepicker/demo/styles.scss +1 -0
- package/components/datepicker/dist/index.js +335 -702
- package/components/datepicker/dist/registered.js +335 -702
- package/components/datepicker/dist/{auro-calendar-cell.d.ts → src/auro-calendar-cell.d.ts} +3 -14
- package/components/datepicker/dist/{auro-calendar.d.ts → src/auro-calendar.d.ts} +6 -90
- package/components/datepicker/dist/{auro-datepicker.d.ts → src/auro-datepicker.d.ts} +5 -78
- package/components/dropdown/demo/customize.js +9 -0
- package/components/dropdown/demo/customize.min.js +1 -1
- package/components/dropdown/demo/demo-support.js +1 -0
- package/components/dropdown/demo/getting-started.js +9 -0
- package/components/dropdown/demo/getting-started.min.js +1 -1
- package/components/dropdown/demo/index.js +16 -0
- package/components/dropdown/demo/index.min.js +1 -1
- package/components/dropdown/demo/styles.scss +1 -0
- package/components/dropdown/dist/index.js +1 -1
- package/components/dropdown/dist/registered.js +1 -1
- package/components/form/demo/customize.js +28 -0
- package/components/form/demo/customize.min.js +583 -904
- package/components/form/demo/demo-support.js +1 -0
- package/components/form/demo/getting-started.js +9 -0
- package/components/form/demo/getting-started.min.js +583 -904
- package/components/form/demo/index.js +5 -0
- package/components/form/demo/index.min.js +583 -904
- package/components/form/demo/registerDemoDeps.js +23 -0
- package/components/form/demo/registerDemoDeps.min.js +583 -904
- package/components/form/demo/styles.scss +1 -0
- package/components/input/demo/api.md +5 -5
- package/components/input/demo/customize.js +25 -0
- package/components/input/demo/customize.md +8 -8
- package/components/input/demo/customize.min.js +116 -93
- package/components/input/demo/demo-support.js +1 -0
- package/components/input/demo/getting-started.js +8 -0
- package/components/input/demo/getting-started.min.js +116 -93
- package/components/input/demo/index.js +8 -0
- package/components/input/demo/index.min.js +116 -93
- package/components/input/demo/styles.css +974 -0
- package/components/input/demo/styles.scss +1 -0
- package/components/input/dist/base-input.d.ts +33 -44
- package/components/input/dist/index.js +129 -94
- package/components/input/dist/registered.js +116 -93
- package/components/menu/demo/demo-support.js +1 -0
- package/components/menu/demo/index.js +25 -0
- package/components/menu/demo/styles.scss +1 -0
- package/components/radio/demo/customize.js +22 -0
- package/components/radio/demo/customize.min.js +1 -1
- package/components/radio/demo/demo-support.js +1 -0
- package/components/radio/demo/getting-started.js +24 -0
- package/components/radio/demo/getting-started.min.js +1 -1
- package/components/radio/demo/index.js +8 -0
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/demo/styles.scss +1 -0
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/customize.js +11 -0
- package/components/select/demo/customize.min.js +2 -2
- package/components/select/demo/demo-support.js +1 -0
- package/components/select/demo/getting-started.js +26 -0
- package/components/select/demo/getting-started.min.js +2 -2
- package/components/select/demo/index.js +11 -0
- package/components/select/demo/index.min.js +2 -2
- package/components/select/demo/styles.scss +1 -0
- package/components/select/dist/index.js +2 -2
- package/components/select/dist/registered.js +2 -2
- package/custom-elements.json +2146 -2218
- package/package.json +2 -6
- package/components/datepicker/dist/blackoutUtils.d.ts +0 -43
- /package/components/datepicker/dist/{auro-calendar-month.d.ts → src/auro-calendar-month.d.ts} +0 -0
- /package/components/datepicker/dist/{buttonVersion.d.ts → src/buttonVersion.d.ts} +0 -0
- /package/components/datepicker/dist/{datepickerKeyboardStrategy.d.ts → src/datepickerKeyboardStrategy.d.ts} +0 -0
- /package/components/datepicker/dist/{iconVersion.d.ts → src/iconVersion.d.ts} +0 -0
- /package/components/datepicker/dist/{index.d.ts → src/index.d.ts} +0 -0
- /package/components/datepicker/dist/{popoverVersion.d.ts → src/popoverVersion.d.ts} +0 -0
- /package/components/datepicker/dist/{styles → src/styles}/classic/color-css.d.ts +0 -0
- /package/components/datepicker/dist/{styles → src/styles}/classic/style-css.d.ts +0 -0
- /package/components/datepicker/dist/{styles → src/styles}/color-calendar-css.d.ts +0 -0
- /package/components/datepicker/dist/{styles → src/styles}/color-cell-css.d.ts +0 -0
- /package/components/datepicker/dist/{styles → src/styles}/color-css.d.ts +0 -0
- /package/components/datepicker/dist/{styles → src/styles}/color-month-css.d.ts +0 -0
- /package/components/datepicker/dist/{styles → src/styles}/shapeSize-css.d.ts +0 -0
- /package/components/datepicker/dist/{styles → src/styles}/snowflake/color-css.d.ts +0 -0
- /package/components/datepicker/dist/{styles → src/styles}/snowflake/style-css.d.ts +0 -0
- /package/components/datepicker/dist/{styles → src/styles}/style-auro-calendar-cell-css.d.ts +0 -0
- /package/components/datepicker/dist/{styles → src/styles}/style-auro-calendar-css.d.ts +0 -0
- /package/components/datepicker/dist/{styles → src/styles}/style-auro-calendar-month-css.d.ts +0 -0
- /package/components/datepicker/dist/{styles → src/styles}/style-css.d.ts +0 -0
- /package/components/datepicker/dist/{styles → src/styles}/tokens-css.d.ts +0 -0
- /package/components/datepicker/dist/{utilities.d.ts → src/utilities.d.ts} +0 -0
- /package/components/datepicker/dist/{utilitiesCalendar.d.ts → src/utilitiesCalendar.d.ts} +0 -0
- /package/components/datepicker/dist/{utilitiesCalendarRender.d.ts → src/utilitiesCalendarRender.d.ts} +0 -0
- /package/components/datepicker/dist/{vendor → src/vendor}/wc-range-datepicker/day.d.ts +0 -0
- /package/components/datepicker/dist/{vendor → src/vendor}/wc-range-datepicker/range-datepicker-calendar.d.ts +0 -0
- /package/components/datepicker/dist/{vendor → src/vendor}/wc-range-datepicker/range-datepicker-cell.d.ts +0 -0
- /package/components/datepicker/dist/{vendor → src/vendor}/wc-range-datepicker/range-datepicker.d.ts +0 -0
|
@@ -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$2(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$2(laterDate_);
|
|
1425
|
+
const earlierStartOfDay = startOfDay$2(earlierDate_);
|
|
1426
1426
|
|
|
1427
1427
|
const laterTimestamp =
|
|
1428
1428
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds$1(laterStartOfDay);
|
|
@@ -10524,6 +10524,13 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
10524
10524
|
* @returns {string | undefined}
|
|
10525
10525
|
*/
|
|
10526
10526
|
toFormattedValue(valueObject, format) {
|
|
10527
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
10528
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
10529
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
10530
|
+
// as "no format → no display value".
|
|
10531
|
+
if (!format) {
|
|
10532
|
+
return undefined;
|
|
10533
|
+
}
|
|
10527
10534
|
const normalizedFormat = format.toLowerCase();
|
|
10528
10535
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
10529
10536
|
|
|
@@ -10904,8 +10911,8 @@ class RangeDatepickerCell extends i$1 {
|
|
|
10904
10911
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
10905
10912
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
10906
10913
|
if (day) {
|
|
10907
|
-
if (getTime(startOfDay$
|
|
10908
|
-
getTime(startOfDay$
|
|
10914
|
+
if (getTime(startOfDay$2(parsedDateTo * 1000)) / 1000 === day.date ||
|
|
10915
|
+
getTime(startOfDay$2(parsedDateFrom * 1000)) / 1000 === day.date) {
|
|
10909
10916
|
this.selected = true;
|
|
10910
10917
|
}
|
|
10911
10918
|
if (((hoveredDate === day.date || day.date < hoveredDate) &&
|
|
@@ -11093,7 +11100,7 @@ class RangeDatepickerCalendar extends i$1 {
|
|
|
11093
11100
|
this.dayNamesOfTheWeek = [];
|
|
11094
11101
|
this.daysOfMonth = [];
|
|
11095
11102
|
this._locale = null;
|
|
11096
|
-
this.currentDate = parseInt(format$1(startOfDay$
|
|
11103
|
+
this.currentDate = parseInt(format$1(startOfDay$2(Date.now()), 't'), 10);
|
|
11097
11104
|
this.localeChanged();
|
|
11098
11105
|
this.yearAndMonthChanged(this.year, this.month);
|
|
11099
11106
|
}
|
|
@@ -11567,7 +11574,7 @@ __decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "dayNamesO
|
|
|
11567
11574
|
__decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
11568
11575
|
AuroLibraryRuntimeUtils$5.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
11569
11576
|
|
|
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}`;
|
|
11577
|
+
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}`;
|
|
11571
11578
|
|
|
11572
11579
|
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
11580
|
|
|
@@ -11592,104 +11599,14 @@ let s$2 = class s{registerComponent(e,t){customElements.get(e)||customElements.d
|
|
|
11592
11599
|
|
|
11593
11600
|
var popoverVersion = '6.0.1';
|
|
11594
11601
|
|
|
11595
|
-
/**
|
|
11596
|
-
* Single source of truth for parsing and matching blackout dates across the
|
|
11597
|
-
* datepicker. Both `auro-calendar` (memoized Set + `isDateBlackout`) and the
|
|
11598
|
-
* pre-`firstUpdated` fallback inside `auro-calendar-cell` route through these
|
|
11599
|
-
* helpers so the YYYY-MM-DD → seconds conversion and the merge-with-legacy
|
|
11600
|
-
* `disabledDays` rules are defined exactly once.
|
|
11601
|
-
*/
|
|
11602
|
-
|
|
11603
|
-
/**
|
|
11604
|
-
* Converts a `YYYY-MM-DD` ISO date string to a Unix timestamp (seconds)
|
|
11605
|
-
* representing local midnight on that calendar day. Returns `null` for
|
|
11606
|
-
* inputs that don't parse to a finite timestamp.
|
|
11607
|
-
*
|
|
11608
|
-
* Uses the `new Date(year, monthIndex, day)` constructor (NOT
|
|
11609
|
-
* `new Date(isoStr)`) so the result is local-midnight rather than UTC
|
|
11610
|
-
* midnight — required to keep the calendar grid aligned with the user's
|
|
11611
|
-
* local calendar day in negative-offset timezones.
|
|
11612
|
-
*
|
|
11613
|
-
* @param {string} isoStr - Date string in `YYYY-MM-DD` format.
|
|
11614
|
-
* @returns {number|null} Local-midnight Unix timestamp (seconds), or null.
|
|
11615
|
-
*/
|
|
11616
|
-
function parseIsoToTimestamp(isoStr) {
|
|
11617
|
-
if (typeof isoStr !== 'string') {
|
|
11618
|
-
return null;
|
|
11619
|
-
}
|
|
11620
|
-
const parts = isoStr.split('-');
|
|
11621
|
-
if (parts.length !== 3) {
|
|
11622
|
-
return null;
|
|
11623
|
-
}
|
|
11624
|
-
const year = parseInt(parts[0], 10);
|
|
11625
|
-
const month = parseInt(parts[1], 10);
|
|
11626
|
-
const day = parseInt(parts[2], 10);
|
|
11627
|
-
if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {
|
|
11628
|
-
return null;
|
|
11629
|
-
}
|
|
11630
|
-
// Reject overflow values like "2024-13-40" — JS `new Date(year, month, day)`
|
|
11631
|
-
// silently normalizes those to a different calendar day, which would
|
|
11632
|
-
// disable the wrong date if we let the result through.
|
|
11633
|
-
if (month < 1 || month > 12 || day < 1 || day > 31) {
|
|
11634
|
-
return null;
|
|
11635
|
-
}
|
|
11636
|
-
const date = new Date(year, month - 1, day);
|
|
11637
|
-
// Guard the residual case where JS still rolls a value (e.g. Feb 30 → Mar 2).
|
|
11638
|
-
// After construction, getFullYear/getMonth/getDate should match the inputs.
|
|
11639
|
-
if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {
|
|
11640
|
-
return null;
|
|
11641
|
-
}
|
|
11642
|
-
const ts = Math.floor(date.getTime() / 1000);
|
|
11643
|
-
return Number.isFinite(ts) ? ts : null;
|
|
11644
|
-
}
|
|
11645
|
-
|
|
11646
|
-
/**
|
|
11647
|
-
* Builds a `Set<number>` of seconds-since-epoch timestamps covering both the
|
|
11648
|
-
* legacy `disabledDays` (already-numeric) array and the ISO `blackoutDates`
|
|
11649
|
-
* array. Use this for O(1) membership checks in hot paths.
|
|
11650
|
-
*
|
|
11651
|
-
* @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
|
|
11652
|
-
* @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
|
|
11653
|
-
* @returns {Set<number>}
|
|
11654
|
-
*/
|
|
11655
|
-
function buildBlackoutSet(disabledDays, blackoutDates) {
|
|
11656
|
-
const set = new Set();
|
|
11657
|
-
if (Array.isArray(disabledDays)) {
|
|
11658
|
-
for (const day of disabledDays) {
|
|
11659
|
-
const ts = parseInt(day, 10);
|
|
11660
|
-
if (Number.isFinite(ts)) {
|
|
11661
|
-
set.add(ts);
|
|
11662
|
-
}
|
|
11663
|
-
}
|
|
11664
|
-
}
|
|
11665
|
-
if (Array.isArray(blackoutDates)) {
|
|
11666
|
-
for (const isoStr of blackoutDates) {
|
|
11667
|
-
const ts = parseIsoToTimestamp(isoStr);
|
|
11668
|
-
if (ts !== null) {
|
|
11669
|
-
set.add(ts);
|
|
11670
|
-
}
|
|
11671
|
-
}
|
|
11672
|
-
}
|
|
11673
|
-
return set;
|
|
11674
|
-
}
|
|
11675
|
-
|
|
11676
|
-
/**
|
|
11677
|
-
* One-shot membership test for a single timestamp against both blackout
|
|
11678
|
-
* sources. Allocates a Set on each call; only use this in cold paths
|
|
11679
|
-
* (e.g. the pre-`firstUpdated` cell fallback). Hot paths should hold the
|
|
11680
|
-
* Set returned from `buildBlackoutSet` and `.has(ts)` directly.
|
|
11681
|
-
*
|
|
11682
|
-
* @param {number} dateTs - Unix timestamp (seconds) to test.
|
|
11683
|
-
* @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
|
|
11684
|
-
* @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
|
|
11685
|
-
* @returns {boolean}
|
|
11686
|
-
*/
|
|
11687
|
-
function isBlackoutTimestamp(dateTs, disabledDays, blackoutDates) {
|
|
11688
|
-
return buildBlackoutSet(disabledDays, blackoutDates).has(dateTs);
|
|
11689
|
-
}
|
|
11690
|
-
|
|
11691
11602
|
/* 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 */
|
|
11692
11603
|
|
|
11604
|
+
const startOfDay$1 = (ms) => {
|
|
11605
|
+
const date = new Date(ms);
|
|
11606
|
+
date.setHours(0, 0, 0, 0);
|
|
11607
|
+
return date.getTime();
|
|
11608
|
+
};
|
|
11609
|
+
|
|
11693
11610
|
class AuroCalendarCell extends i$1 {
|
|
11694
11611
|
constructor() {
|
|
11695
11612
|
super();
|
|
@@ -11736,14 +11653,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
11736
11653
|
type: Boolean,
|
|
11737
11654
|
reflect: true
|
|
11738
11655
|
},
|
|
11739
|
-
/**
|
|
11740
|
-
* @deprecated Propagated from the legacy `auro-calendar.disabledDays`
|
|
11741
|
-
* Unix-timestamp array. The cell honors it for backward compatibility
|
|
11742
|
-
* (see the divergence-check fallback inside `isBlackout`), but
|
|
11743
|
-
* consumers should migrate to `auro-datepicker.blackoutDates`
|
|
11744
|
-
* (YYYY-MM-DD ISO strings). The calendar emits a one-time
|
|
11745
|
-
* deprecation warning the first time a non-empty value is observed.
|
|
11746
|
-
*/
|
|
11747
11656
|
disabledDays: { type: Array },
|
|
11748
11657
|
isCurrentDate: { type: Boolean },
|
|
11749
11658
|
locale: { type: String },
|
|
@@ -11789,8 +11698,8 @@ class AuroCalendarCell extends i$1 {
|
|
|
11789
11698
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
11790
11699
|
|
|
11791
11700
|
if (day) {
|
|
11792
|
-
const departTimestamp =
|
|
11793
|
-
const returnTimestamp =
|
|
11701
|
+
const departTimestamp = startOfDay$1(parsedDateFrom * 1000) / 1000;
|
|
11702
|
+
const returnTimestamp = startOfDay$1(parsedDateTo * 1000) / 1000;
|
|
11794
11703
|
|
|
11795
11704
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
11796
11705
|
this.selected = true;
|
|
@@ -11874,33 +11783,27 @@ class AuroCalendarCell extends i$1 {
|
|
|
11874
11783
|
return false;
|
|
11875
11784
|
}
|
|
11876
11785
|
|
|
11877
|
-
//
|
|
11878
|
-
|
|
11879
|
-
|
|
11880
|
-
|
|
11881
|
-
|
|
11882
|
-
|
|
11786
|
+
// Check against disabledDays timestamps (legacy path)
|
|
11787
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0 &&
|
|
11788
|
+
(this.disabledDays.findIndex(dd => parseInt(dd, 10) === this.day.date) !== -1)) {
|
|
11789
|
+
return true;
|
|
11790
|
+
}
|
|
11791
|
+
|
|
11792
|
+
// Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
|
|
11793
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
11794
|
+
|
|
11795
|
+
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
11796
|
+
const date = new Date(this.day.date * 1000);
|
|
11797
|
+
const yyyy = date.getFullYear();
|
|
11798
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
11799
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
11800
|
+
const cellDate = `${yyyy}-${mm}-${dd}`;
|
|
11801
|
+
if (blackoutDates.includes(cellDate)) {
|
|
11883
11802
|
return true;
|
|
11884
11803
|
}
|
|
11885
|
-
// If the cell's local disabledDays diverged from the calendar's (a
|
|
11886
|
-
// consumer or test mutated cell.disabledDays directly), the Set does
|
|
11887
|
-
// not reflect that addition — fall through to the per-cell scan only
|
|
11888
|
-
// when the reference no longer matches. Production data flow keeps
|
|
11889
|
-
// these identical, so this branch stays cold. Guarded with
|
|
11890
|
-
// Array.isArray to match `_getBlackoutSet`'s contract: non-array
|
|
11891
|
-
// values are treated as empty rather than crashing on `.findIndex`.
|
|
11892
|
-
if (Array.isArray(this.disabledDays) && this.disabledDays !== this.calendar.disabledDays && this.disabledDays.length > 0) {
|
|
11893
|
-
if (this.disabledDays.findIndex((dd) => parseInt(dd, 10) === this.day.date) !== -1) {
|
|
11894
|
-
return true;
|
|
11895
|
-
}
|
|
11896
|
-
}
|
|
11897
|
-
return false;
|
|
11898
11804
|
}
|
|
11899
11805
|
|
|
11900
|
-
|
|
11901
|
-
// ancestor calendar is wired up. Routes through the shared
|
|
11902
|
-
// blackoutUtils helper so the parsing rules stay in one place.
|
|
11903
|
-
return isBlackoutTimestamp(this.day.date, this.disabledDays, this.datepicker?.blackoutDates);
|
|
11806
|
+
return false;
|
|
11904
11807
|
}
|
|
11905
11808
|
|
|
11906
11809
|
/**
|
|
@@ -12006,12 +11909,12 @@ class AuroCalendarCell extends i$1 {
|
|
|
12006
11909
|
const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
|
|
12007
11910
|
if (!Number.isFinite(parsedDateFrom)) return null;
|
|
12008
11911
|
|
|
12009
|
-
const departTimestamp =
|
|
11912
|
+
const departTimestamp = startOfDay$1(parsedDateFrom * 1000) / 1000;
|
|
12010
11913
|
const dayDate = this.day.date;
|
|
12011
11914
|
|
|
12012
11915
|
const parsedDateTo = Number.parseInt(this.dateTo, 10);
|
|
12013
11916
|
const hasDateTo = Number.isFinite(parsedDateTo);
|
|
12014
|
-
const returnTimestamp = hasDateTo ?
|
|
11917
|
+
const returnTimestamp = hasDateTo ? startOfDay$1(parsedDateTo * 1000) / 1000 : null;
|
|
12015
11918
|
|
|
12016
11919
|
if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
|
|
12017
11920
|
|
|
@@ -12021,9 +11924,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
12021
11924
|
|
|
12022
11925
|
if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
|
|
12023
11926
|
|
|
12024
|
-
|
|
12025
|
-
|
|
12026
|
-
// After end date when both dateFrom and dateTo are set.
|
|
11927
|
+
// After start date, no end date yet, or after end date
|
|
12027
11928
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
12028
11929
|
}
|
|
12029
11930
|
|
|
@@ -12036,7 +11937,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
12036
11937
|
*/
|
|
12037
11938
|
isDepartDate(day, dateFrom) {
|
|
12038
11939
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
12039
|
-
const departTimestamp =
|
|
11940
|
+
const departTimestamp = startOfDay$1(parsedDateFrom * 1000) / 1000;
|
|
12040
11941
|
|
|
12041
11942
|
return this.selected && day.date === departTimestamp;
|
|
12042
11943
|
}
|
|
@@ -12051,7 +11952,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
12051
11952
|
*/
|
|
12052
11953
|
isReturnDate(day, dateFrom, dateTo) {
|
|
12053
11954
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
12054
|
-
const returnTimestamp =
|
|
11955
|
+
const returnTimestamp = startOfDay$1(parsedDateTo * 1000) / 1000;
|
|
12055
11956
|
|
|
12056
11957
|
return this.selected && day.date === returnTimestamp && dateFrom;
|
|
12057
11958
|
}
|
|
@@ -12215,7 +12116,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
12215
12116
|
setTimeout(() => this.firstUpdated(), 0);
|
|
12216
12117
|
return;
|
|
12217
12118
|
}
|
|
12218
|
-
this.calendar = calendar;
|
|
12219
12119
|
this.datepicker = calendar.datepicker;
|
|
12220
12120
|
this._slotContentHandler = () => {
|
|
12221
12121
|
this.handleSlotContent();
|
|
@@ -12273,13 +12173,12 @@ class AuroCalendarCell extends i$1 {
|
|
|
12273
12173
|
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
12274
12174
|
});
|
|
12275
12175
|
|
|
12276
|
-
//
|
|
12176
|
+
// Update host-level aria attributes for ariaActiveDescendantElement.
|
|
12277
12177
|
this.updateHostAria();
|
|
12278
12178
|
}
|
|
12279
12179
|
|
|
12280
12180
|
// Update host aria when selection changes (aria-selected, range labels)
|
|
12281
|
-
|
|
12282
|
-
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected') || properties.has('isCurrentDate')) {
|
|
12181
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected')) {
|
|
12283
12182
|
this.updateHostAria();
|
|
12284
12183
|
}
|
|
12285
12184
|
|
|
@@ -12290,8 +12189,8 @@ class AuroCalendarCell extends i$1 {
|
|
|
12290
12189
|
}
|
|
12291
12190
|
|
|
12292
12191
|
/**
|
|
12293
|
-
*
|
|
12294
|
-
*
|
|
12192
|
+
* Updates ARIA attributes on the host element so that
|
|
12193
|
+
* ariaActiveDescendantElement can expose cell info to the SR.
|
|
12295
12194
|
* @private
|
|
12296
12195
|
* @returns {void}
|
|
12297
12196
|
*/
|
|
@@ -12300,27 +12199,16 @@ class AuroCalendarCell extends i$1 {
|
|
|
12300
12199
|
|
|
12301
12200
|
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
12302
12201
|
if (outOfRange) {
|
|
12303
|
-
// Strip every aria attribute the in-range branch may have set on a
|
|
12304
|
-
// previous render — if a cell flips from in-range to out-of-range
|
|
12305
|
-
// (calendar shifts months, minDate/maxDate change, etc.).
|
|
12306
12202
|
this.removeAttribute('role');
|
|
12307
12203
|
this.removeAttribute('aria-label');
|
|
12308
|
-
this.removeAttribute('aria-current');
|
|
12309
|
-
this.removeAttribute('aria-selected');
|
|
12310
|
-
this.removeAttribute('aria-disabled');
|
|
12311
12204
|
return;
|
|
12312
12205
|
}
|
|
12313
12206
|
|
|
12207
|
+
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
12314
12208
|
this.setAttribute('role', 'gridcell');
|
|
12315
12209
|
this.setAttribute('aria-label', this.getAriaLabel());
|
|
12316
12210
|
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
12317
12211
|
|
|
12318
|
-
if (this.isCurrentDate) {
|
|
12319
|
-
this.setAttribute('aria-current', 'date');
|
|
12320
|
-
} else {
|
|
12321
|
-
this.removeAttribute('aria-current');
|
|
12322
|
-
}
|
|
12323
|
-
|
|
12324
12212
|
if (this.isBlackout()) {
|
|
12325
12213
|
this.setAttribute('aria-disabled', 'true');
|
|
12326
12214
|
} else {
|
|
@@ -12335,7 +12223,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
12335
12223
|
* @returns {void}
|
|
12336
12224
|
*/
|
|
12337
12225
|
focusButton() {
|
|
12338
|
-
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([
|
|
12226
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([aria-hidden])');
|
|
12339
12227
|
if (button) {
|
|
12340
12228
|
button.focus({ focusVisible: true });
|
|
12341
12229
|
}
|
|
@@ -12343,9 +12231,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
12343
12231
|
|
|
12344
12232
|
/**
|
|
12345
12233
|
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
12346
|
-
*
|
|
12347
|
-
* arrow keys move the active cell imperatively and the live region carries
|
|
12348
|
-
* the SR announcement.
|
|
12234
|
+
* Note: buttons stay tabindex="-1" because the grid uses aria-activedescendant.
|
|
12349
12235
|
* @returns {void}
|
|
12350
12236
|
*/
|
|
12351
12237
|
setActive() {
|
|
@@ -12387,13 +12273,10 @@ class AuroCalendarCell extends i$1 {
|
|
|
12387
12273
|
if (!btn || !this.day) return;
|
|
12388
12274
|
|
|
12389
12275
|
const dayDate = this.day.date;
|
|
12390
|
-
const departTimestamp =
|
|
12276
|
+
const departTimestamp = startOfDay$1(dateFrom * 1000) / 1000;
|
|
12391
12277
|
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
12392
|
-
|
|
12393
|
-
|
|
12394
|
-
// rangeDepartDate and lastHoveredDate.
|
|
12395
|
-
const isLastHovered = dayDate === hoveredDate && hoveredDate >= departTimestamp;
|
|
12396
|
-
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate >= departTimestamp;
|
|
12278
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate > departTimestamp;
|
|
12279
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate > departTimestamp;
|
|
12397
12280
|
|
|
12398
12281
|
btn.classList.toggle('inRange', isInRange);
|
|
12399
12282
|
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
@@ -12451,6 +12334,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
12451
12334
|
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
12452
12335
|
class="${e$4(buttonClasses)}"
|
|
12453
12336
|
?disabled="${outOfRange}"
|
|
12337
|
+
aria-hidden="${outOfRange ? 'true' : A$4}"
|
|
12454
12338
|
tabindex="-1">
|
|
12455
12339
|
<div class="buttonWrapper" aria-hidden="true">
|
|
12456
12340
|
<div class="currentDayMarker">${this.day?.title || A$4}</div>
|
|
@@ -13562,7 +13446,7 @@ class AuroBibtemplate extends i$1 {
|
|
|
13562
13446
|
}
|
|
13563
13447
|
}
|
|
13564
13448
|
|
|
13565
|
-
var formkitVersion$2 = '
|
|
13449
|
+
var formkitVersion$2 = '202606252337';
|
|
13566
13450
|
|
|
13567
13451
|
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}
|
|
13568
13452
|
`,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}}
|
|
@@ -13685,11 +13569,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13685
13569
|
this.calendarRangeMonths = null;
|
|
13686
13570
|
|
|
13687
13571
|
/**
|
|
13688
|
-
*
|
|
13689
|
-
* `YYYY-MM-DD` ISO strings) instead. This legacy array of Unix
|
|
13690
|
-
* timestamps is still honored for backward compatibility but emits a
|
|
13691
|
-
* one-time `console.debug` the first time a non-empty value is observed.
|
|
13692
|
-
* Support will be removed in a future major release.
|
|
13572
|
+
* Legacy array of disabled-date timestamps.
|
|
13693
13573
|
* @private
|
|
13694
13574
|
*/
|
|
13695
13575
|
this.disabledDays = [];
|
|
@@ -13946,44 +13826,17 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
13946
13826
|
* @returns {void}
|
|
13947
13827
|
*/
|
|
13948
13828
|
updateActiveCellForVisibleMonth() {
|
|
13949
|
-
|
|
13950
|
-
|
|
13951
|
-
|
|
13952
|
-
if (newDate !== null && newDate !== undefined) {
|
|
13953
|
-
this.activeCellDate = newDate;
|
|
13954
|
-
this.setActiveCell(this.activeCellDate);
|
|
13955
|
-
}
|
|
13956
|
-
});
|
|
13957
|
-
}
|
|
13958
|
-
|
|
13959
|
-
/**
|
|
13960
|
-
* Schedules `callback` two animation frames out, giving the child
|
|
13961
|
-
* `auro-formkit-calendar-month` and `auro-formkit-calendar-cell` elements
|
|
13962
|
-
* a full render-and-paint cycle to settle before the callback reads or
|
|
13963
|
-
* mutates DOM.
|
|
13964
|
-
*
|
|
13965
|
-
* Why two frames, not one:
|
|
13966
|
-
* 1. Lit batches property updates and renders in a microtask, so frame N
|
|
13967
|
-
* schedules the render but the new DOM may not be painted yet.
|
|
13968
|
-
* 2. Cells re-cache `_cachedButton` inside their own `updateComplete.then`,
|
|
13969
|
-
* which also lands a tick later. Reading buttons from frame N+1
|
|
13970
|
-
* (after both renders + cache refresh have flushed) reliably hits the
|
|
13971
|
-
* new month's cells.
|
|
13972
|
-
*
|
|
13973
|
-
* Used by every code path that calls `handleNextMonth`/`handlePrevMonth`
|
|
13974
|
-
* and then needs to inspect the freshly-rendered cells (cross-month
|
|
13975
|
-
* keyboard nav, boundary events, `updateActiveCellForVisibleMonth`).
|
|
13976
|
-
* Do NOT collapse to a single rAF — it intermittently lands before
|
|
13977
|
-
* `_cachedButton` is refreshed, which silently breaks focus restoration
|
|
13978
|
-
* and `setActiveCell` lookups.
|
|
13979
|
-
* @private
|
|
13980
|
-
* @param {() => void} callback - Runs once after the month re-render and
|
|
13981
|
-
* the cells' button caches have refreshed.
|
|
13982
|
-
* @returns {void}
|
|
13983
|
-
*/
|
|
13984
|
-
_afterMonthRender(callback) {
|
|
13829
|
+
// Use double-rAF to ensure child month/cell components have fully
|
|
13830
|
+
// rendered and cached their button references before we set tabindex.
|
|
13985
13831
|
requestAnimationFrame(() => {
|
|
13986
|
-
requestAnimationFrame(
|
|
13832
|
+
requestAnimationFrame(() => {
|
|
13833
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
13834
|
+
|
|
13835
|
+
if (newDate !== null && newDate !== undefined) {
|
|
13836
|
+
this.activeCellDate = newDate;
|
|
13837
|
+
this.setActiveCell(this.activeCellDate);
|
|
13838
|
+
}
|
|
13839
|
+
});
|
|
13987
13840
|
});
|
|
13988
13841
|
}
|
|
13989
13842
|
|
|
@@ -14101,47 +13954,6 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14101
13954
|
return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
|
|
14102
13955
|
}
|
|
14103
13956
|
|
|
14104
|
-
/**
|
|
14105
|
-
* Picks the focusable cell whose date is closest to targetTs. Used as a
|
|
14106
|
-
* fallback after a month-boundary nav when the exact target date isn't
|
|
14107
|
-
* focusable — typically because the month re-render lagged or the date
|
|
14108
|
-
* was filtered out by isOutOfRange. When two cells are equidistant, the
|
|
14109
|
-
* navigation direction breaks the tie so the user moves the way they
|
|
14110
|
-
* pressed (forward → later cell, backward → earlier cell).
|
|
14111
|
-
* @private
|
|
14112
|
-
* @param {Array} cells - Focusable cells from getAllFocusableCells.
|
|
14113
|
-
* @param {Number} targetTs - Desired Unix timestamp (seconds).
|
|
14114
|
-
* @param {'next'|'prev'} direction - Navigation direction.
|
|
14115
|
-
* @returns {Object|null} The nearest cell, or null when cells is empty.
|
|
14116
|
-
*/
|
|
14117
|
-
pickNearestCell(cells, targetTs, direction) {
|
|
14118
|
-
if (!cells.length) {
|
|
14119
|
-
return null;
|
|
14120
|
-
}
|
|
14121
|
-
const forward = direction === 'next';
|
|
14122
|
-
let best = null;
|
|
14123
|
-
let bestDelta = Infinity;
|
|
14124
|
-
cells.forEach((cell) => {
|
|
14125
|
-
if (!cell.day) {
|
|
14126
|
-
return;
|
|
14127
|
-
}
|
|
14128
|
-
const distance = Math.abs(cell.day.date - targetTs);
|
|
14129
|
-
if (distance < bestDelta) {
|
|
14130
|
-
best = cell;
|
|
14131
|
-
bestDelta = distance;
|
|
14132
|
-
return;
|
|
14133
|
-
}
|
|
14134
|
-
if (distance === bestDelta && best) {
|
|
14135
|
-
if (forward && cell.day.date > best.day.date) {
|
|
14136
|
-
best = cell;
|
|
14137
|
-
} else if (!forward && cell.day.date < best.day.date) {
|
|
14138
|
-
best = cell;
|
|
14139
|
-
}
|
|
14140
|
-
}
|
|
14141
|
-
});
|
|
14142
|
-
return best;
|
|
14143
|
-
}
|
|
14144
|
-
|
|
14145
13957
|
/**
|
|
14146
13958
|
* Gets all focusable cells across all rendered months.
|
|
14147
13959
|
* @private
|
|
@@ -14158,9 +13970,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14158
13970
|
|
|
14159
13971
|
/**
|
|
14160
13972
|
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
14161
|
-
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
14162
|
-
*
|
|
14163
|
-
*
|
|
13973
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
13974
|
+
* Also updates ariaActiveDescendantElement on the grid wrapper so
|
|
13975
|
+
* screen readers announce the active cell without moving DOM focus.
|
|
14164
13976
|
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
14165
13977
|
* @returns {void}
|
|
14166
13978
|
*/
|
|
@@ -14241,65 +14053,6 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14241
14053
|
this.clearRangePreview();
|
|
14242
14054
|
}
|
|
14243
14055
|
|
|
14244
|
-
/**
|
|
14245
|
-
* Returns a memoized Set of blackout timestamps (seconds) drawn from both
|
|
14246
|
-
* the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
|
|
14247
|
-
* The cache invalidates when either source array's reference changes, which
|
|
14248
|
-
* matches Lit's own reactive identity semantics for array properties.
|
|
14249
|
-
* @private
|
|
14250
|
-
* @returns {Set<Number>}
|
|
14251
|
-
*/
|
|
14252
|
-
_getBlackoutSet() {
|
|
14253
|
-
// Normalize non-array values to a stable `null` sentinel rather than a
|
|
14254
|
-
// fresh `[]` per call — otherwise the reference-identity cache key
|
|
14255
|
-
// (`_cachedBlackoutDisabledDays === disabledDays`) never matches on
|
|
14256
|
-
// subsequent calls and the Set rebuilds every time. `buildBlackoutSet`
|
|
14257
|
-
// already treats null/non-array as "no legacy disabledDays" via its
|
|
14258
|
-
// own Array.isArray gate.
|
|
14259
|
-
const disabledDays = Array.isArray(this.disabledDays) ? this.disabledDays : null;
|
|
14260
|
-
const blackoutDates = this.datepicker?.blackoutDates;
|
|
14261
|
-
if (this._blackoutSet &&
|
|
14262
|
-
this._cachedBlackoutDisabledDays === disabledDays &&
|
|
14263
|
-
this._cachedBlackoutDates === blackoutDates) {
|
|
14264
|
-
return this._blackoutSet;
|
|
14265
|
-
}
|
|
14266
|
-
|
|
14267
|
-
if (disabledDays && disabledDays.length > 0) {
|
|
14268
|
-
this._warnDisabledDaysDeprecated();
|
|
14269
|
-
}
|
|
14270
|
-
|
|
14271
|
-
this._blackoutSet = buildBlackoutSet(disabledDays, blackoutDates);
|
|
14272
|
-
this._cachedBlackoutDisabledDays = disabledDays;
|
|
14273
|
-
this._cachedBlackoutDates = blackoutDates;
|
|
14274
|
-
return this._blackoutSet;
|
|
14275
|
-
}
|
|
14276
|
-
|
|
14277
|
-
/**
|
|
14278
|
-
* Per-class flag that gates the `disabledDays` deprecation warning so it
|
|
14279
|
-
* fires exactly once per page no matter how many calendars or rebuild
|
|
14280
|
-
* cycles encounter the legacy array.
|
|
14281
|
-
* @private
|
|
14282
|
-
*/
|
|
14283
|
-
static _warnedDisabledDaysDeprecation = false;
|
|
14284
|
-
|
|
14285
|
-
/**
|
|
14286
|
-
* One-time `console.debug` directing consumers from the legacy
|
|
14287
|
-
* `disabledDays` Unix-timestamp API to the ISO `blackoutDates` API. Fires
|
|
14288
|
-
* the first time `_getBlackoutSet` rebuilds from a non-empty
|
|
14289
|
-
* `disabledDays`; subsequent calls (on this or any other AuroCalendar
|
|
14290
|
-
* instance on the page) are silent.
|
|
14291
|
-
* @private
|
|
14292
|
-
* @returns {void}
|
|
14293
|
-
*/
|
|
14294
|
-
_warnDisabledDaysDeprecated() {
|
|
14295
|
-
if (AuroCalendar._warnedDisabledDaysDeprecation) {
|
|
14296
|
-
return;
|
|
14297
|
-
}
|
|
14298
|
-
AuroCalendar._warnedDisabledDaysDeprecation = true;
|
|
14299
|
-
// eslint-disable-next-line no-console
|
|
14300
|
-
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.');
|
|
14301
|
-
}
|
|
14302
|
-
|
|
14303
14056
|
/**
|
|
14304
14057
|
* Computes the initial active date from data properties alone — no DOM required.
|
|
14305
14058
|
* Priority:
|
|
@@ -14344,10 +14097,21 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14344
14097
|
const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
|
|
14345
14098
|
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
14346
14099
|
|
|
14347
|
-
// Build a Set of blackout timestamps for O(1) lookup.
|
|
14348
|
-
|
|
14349
|
-
|
|
14350
|
-
|
|
14100
|
+
// Build a Set of blackout timestamps for O(1) lookup.
|
|
14101
|
+
const blackoutSet = new Set(this.disabledDays.map((day) => parseInt(day, 10)));
|
|
14102
|
+
|
|
14103
|
+
// Also include ISO-format blackoutDates from the datepicker if available.
|
|
14104
|
+
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
14105
|
+
const isoBlackouts = this.datepicker?.blackoutDates;
|
|
14106
|
+
if (Array.isArray(isoBlackouts)) {
|
|
14107
|
+
for (const isoStr of isoBlackouts) {
|
|
14108
|
+
const parts = isoStr.split('-');
|
|
14109
|
+
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
14110
|
+
if (Number.isFinite(ts)) {
|
|
14111
|
+
blackoutSet.add(ts);
|
|
14112
|
+
}
|
|
14113
|
+
}
|
|
14114
|
+
}
|
|
14351
14115
|
|
|
14352
14116
|
/**
|
|
14353
14117
|
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
@@ -14543,8 +14307,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14543
14307
|
|
|
14544
14308
|
/**
|
|
14545
14309
|
* Handles arrow key navigation on the calendar grid wrapper.
|
|
14546
|
-
* Focus stays on the grid wrapper; only
|
|
14547
|
-
*
|
|
14310
|
+
* Focus stays on the grid wrapper; only ariaActiveDescendantElement
|
|
14311
|
+
* and the visual active-cell indicator change.
|
|
14548
14312
|
* @private
|
|
14549
14313
|
* @param {KeyboardEvent} event - The keyboard event.
|
|
14550
14314
|
* @returns {void}
|
|
@@ -14609,21 +14373,21 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14609
14373
|
} else {
|
|
14610
14374
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14611
14375
|
}
|
|
14612
|
-
|
|
14613
|
-
|
|
14614
|
-
|
|
14615
|
-
|
|
14616
|
-
|
|
14617
|
-
|
|
14618
|
-
|
|
14619
|
-
|
|
14620
|
-
|
|
14376
|
+
requestAnimationFrame(() => {
|
|
14377
|
+
requestAnimationFrame(() => {
|
|
14378
|
+
const cells = this.getAllFocusableCells();
|
|
14379
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
14380
|
+
if (target) {
|
|
14381
|
+
this.setActiveCell(target.day.date);
|
|
14382
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
14383
|
+
} else if (cells.length > 0) {
|
|
14384
|
+
const fallback = navDir === 'next' ? cells[cells.length - 1] : cells[0];
|
|
14621
14385
|
this.setActiveCell(fallback.day.date);
|
|
14622
14386
|
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
14623
14387
|
}
|
|
14624
|
-
|
|
14625
|
-
|
|
14626
|
-
|
|
14388
|
+
// Re-focus grid wrapper after month change re-render
|
|
14389
|
+
this.focusActiveCell();
|
|
14390
|
+
});
|
|
14627
14391
|
});
|
|
14628
14392
|
}
|
|
14629
14393
|
}
|
|
@@ -14649,20 +14413,26 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14649
14413
|
} else {
|
|
14650
14414
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14651
14415
|
}
|
|
14652
|
-
|
|
14653
|
-
|
|
14654
|
-
|
|
14655
|
-
|
|
14656
|
-
|
|
14657
|
-
|
|
14658
|
-
|
|
14659
|
-
|
|
14660
|
-
|
|
14416
|
+
requestAnimationFrame(() => {
|
|
14417
|
+
requestAnimationFrame(() => {
|
|
14418
|
+
const cells = this.getAllFocusableCells();
|
|
14419
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14420
|
+
if (target) {
|
|
14421
|
+
this.setActiveCell(target.day.date);
|
|
14422
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
14423
|
+
} else if (cells.length > 0) {
|
|
14424
|
+
let nearest = null;
|
|
14425
|
+
|
|
14426
|
+
if (navDirection === 'next') {
|
|
14427
|
+
[nearest] = cells;
|
|
14428
|
+
} else {
|
|
14429
|
+
nearest = cells[cells.length - 1];
|
|
14430
|
+
}
|
|
14661
14431
|
this.setActiveCell(nearest.day.date);
|
|
14662
14432
|
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
14663
14433
|
}
|
|
14664
|
-
|
|
14665
|
-
|
|
14434
|
+
this.focusActiveCell();
|
|
14435
|
+
});
|
|
14666
14436
|
});
|
|
14667
14437
|
}
|
|
14668
14438
|
}
|
|
@@ -14712,22 +14482,19 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14712
14482
|
}
|
|
14713
14483
|
|
|
14714
14484
|
this.handleNextMonth({ skipActiveUpdate: true });
|
|
14715
|
-
|
|
14716
|
-
|
|
14717
|
-
|
|
14718
|
-
|
|
14719
|
-
|
|
14720
|
-
|
|
14721
|
-
|
|
14722
|
-
|
|
14723
|
-
|
|
14724
|
-
|
|
14725
|
-
const fallback = this.pickNearestCell(cells, nextTs, 'next');
|
|
14726
|
-
if (fallback) {
|
|
14727
|
-
this.setActiveCell(fallback.day.date);
|
|
14485
|
+
requestAnimationFrame(() => {
|
|
14486
|
+
requestAnimationFrame(() => {
|
|
14487
|
+
const cells = this.getAllFocusableCells();
|
|
14488
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
14489
|
+
if (target) {
|
|
14490
|
+
this.setActiveCell(target.day.date);
|
|
14491
|
+
this.focusActiveCell();
|
|
14492
|
+
} else if (cells.length > 0) {
|
|
14493
|
+
// Fallback: first cell of the last rendered month
|
|
14494
|
+
this.setActiveCell(cells[cells.length - 1].day.date);
|
|
14728
14495
|
this.focusActiveCell();
|
|
14729
14496
|
}
|
|
14730
|
-
}
|
|
14497
|
+
});
|
|
14731
14498
|
});
|
|
14732
14499
|
} else if (direction === 'prev' && this.showPrevMonthBtn) {
|
|
14733
14500
|
// Navigate to previous month and focus the computed previous date.
|
|
@@ -14741,22 +14508,19 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14741
14508
|
}
|
|
14742
14509
|
|
|
14743
14510
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14744
|
-
|
|
14745
|
-
|
|
14746
|
-
|
|
14747
|
-
|
|
14748
|
-
|
|
14749
|
-
|
|
14750
|
-
|
|
14751
|
-
|
|
14752
|
-
|
|
14753
|
-
|
|
14754
|
-
const fallback = this.pickNearestCell(cells, prevTs, 'prev');
|
|
14755
|
-
if (fallback) {
|
|
14756
|
-
this.setActiveCell(fallback.day.date);
|
|
14511
|
+
requestAnimationFrame(() => {
|
|
14512
|
+
requestAnimationFrame(() => {
|
|
14513
|
+
const cells = this.getAllFocusableCells();
|
|
14514
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
14515
|
+
if (target) {
|
|
14516
|
+
this.setActiveCell(target.day.date);
|
|
14517
|
+
this.focusActiveCell();
|
|
14518
|
+
} else if (cells.length > 0) {
|
|
14519
|
+
// Fallback: last cell of the first rendered month
|
|
14520
|
+
this.setActiveCell(cells[0].day.date);
|
|
14757
14521
|
this.focusActiveCell();
|
|
14758
14522
|
}
|
|
14759
|
-
}
|
|
14523
|
+
});
|
|
14760
14524
|
});
|
|
14761
14525
|
}
|
|
14762
14526
|
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
@@ -14784,22 +14548,20 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14784
14548
|
} else {
|
|
14785
14549
|
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
14786
14550
|
}
|
|
14787
|
-
|
|
14788
|
-
|
|
14789
|
-
|
|
14790
|
-
|
|
14791
|
-
|
|
14792
|
-
|
|
14793
|
-
|
|
14794
|
-
|
|
14795
|
-
|
|
14796
|
-
|
|
14797
|
-
const nearest = this.pickNearestCell(cells, targetDate, navDirection);
|
|
14798
|
-
if (nearest) {
|
|
14551
|
+
requestAnimationFrame(() => {
|
|
14552
|
+
requestAnimationFrame(() => {
|
|
14553
|
+
const cells = this.getAllFocusableCells();
|
|
14554
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
14555
|
+
if (target) {
|
|
14556
|
+
this.setActiveCell(target.day.date);
|
|
14557
|
+
this.focusActiveCell();
|
|
14558
|
+
} else if (cells.length > 0) {
|
|
14559
|
+
// Clamp to nearest focusable cell
|
|
14560
|
+
const nearest = navDirection === 'next' ? cells[0] : cells[cells.length - 1];
|
|
14799
14561
|
this.setActiveCell(nearest.day.date);
|
|
14800
14562
|
this.focusActiveCell();
|
|
14801
14563
|
}
|
|
14802
|
-
}
|
|
14564
|
+
});
|
|
14803
14565
|
});
|
|
14804
14566
|
}
|
|
14805
14567
|
}
|
|
@@ -14838,9 +14600,8 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14838
14600
|
return;
|
|
14839
14601
|
}
|
|
14840
14602
|
|
|
14841
|
-
//
|
|
14842
|
-
//
|
|
14843
|
-
// region carries the full-context announcement instead.
|
|
14603
|
+
// With aria-activedescendant, the button no longer receives native focus,
|
|
14604
|
+
// so we use the debounced live region for the full context announcement.
|
|
14844
14605
|
const announcement = this.buildFocusAnnouncement(date);
|
|
14845
14606
|
this.announceFocusDebounced(announcement);
|
|
14846
14607
|
|
|
@@ -14910,10 +14671,10 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14910
14671
|
return null;
|
|
14911
14672
|
}
|
|
14912
14673
|
|
|
14913
|
-
const departTs =
|
|
14674
|
+
const departTs = startOfDay$2(parsedFrom * 1000) / 1000;
|
|
14914
14675
|
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
14915
14676
|
const hasTo = Number.isFinite(parsedTo);
|
|
14916
|
-
const returnTs = hasTo ?
|
|
14677
|
+
const returnTs = hasTo ? startOfDay$2(parsedTo * 1000) / 1000 : null;
|
|
14917
14678
|
|
|
14918
14679
|
if (date === departTs) {
|
|
14919
14680
|
return this.datepicker.rangeLabelStart || 'range start';
|
|
@@ -14927,22 +14688,36 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
14927
14688
|
if (hasTo && date > departTs && date < returnTs) {
|
|
14928
14689
|
return this.datepicker.rangeLabelInRange || 'in range';
|
|
14929
14690
|
}
|
|
14930
|
-
if (!hasTo && date > departTs) {
|
|
14931
|
-
return this.datepicker.rangeLabelEndPreview || 'previewing range end';
|
|
14932
|
-
}
|
|
14933
14691
|
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
14934
14692
|
}
|
|
14935
14693
|
|
|
14936
14694
|
/**
|
|
14937
|
-
* Checks whether a given date is a blackout date.
|
|
14938
|
-
* memoized `_getBlackoutSet` so the YYYY-MM-DD parsing and the
|
|
14939
|
-
* legacy/ISO merge rules live in exactly one place (see `blackoutUtils.js`).
|
|
14695
|
+
* Checks whether a given date is a blackout date.
|
|
14940
14696
|
* @private
|
|
14941
14697
|
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
14942
14698
|
* @returns {Boolean} True if the date is blacked out.
|
|
14943
14699
|
*/
|
|
14944
14700
|
isDateBlackout(dateTs) {
|
|
14945
|
-
|
|
14701
|
+
// Check legacy disabledDays.
|
|
14702
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
14703
|
+
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
14704
|
+
return true;
|
|
14705
|
+
}
|
|
14706
|
+
}
|
|
14707
|
+
|
|
14708
|
+
// Check ISO blackoutDates.
|
|
14709
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
14710
|
+
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
14711
|
+
const date = new Date(dateTs * 1000);
|
|
14712
|
+
const yyyy = date.getFullYear();
|
|
14713
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
14714
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
14715
|
+
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
14716
|
+
return true;
|
|
14717
|
+
}
|
|
14718
|
+
}
|
|
14719
|
+
|
|
14720
|
+
return false;
|
|
14946
14721
|
}
|
|
14947
14722
|
|
|
14948
14723
|
/**
|
|
@@ -15109,34 +14884,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
15109
14884
|
// the last one.
|
|
15110
14885
|
if (this._announceRafId) {
|
|
15111
14886
|
cancelAnimationFrame(this._announceRafId);
|
|
15112
|
-
this._announceRafId = null;
|
|
15113
14887
|
}
|
|
15114
|
-
this._deliverAnnouncement(dateStr, 0);
|
|
15115
|
-
}
|
|
15116
|
-
|
|
15117
|
-
/**
|
|
15118
|
-
* Writes `dateStr` to the live region. If the dropdown's dialog hasn't
|
|
15119
|
-
* mounted yet (so getOrCreateLiveRegion can't attach), retries on the
|
|
15120
|
-
* next animation frame up to MAX_LIVE_REGION_RETRIES instead of silently
|
|
15121
|
-
* dropping the announcement. The retry uses the same `_announceRafId`
|
|
15122
|
-
* the double-rAF below uses, so a newer announceSelection call (or
|
|
15123
|
-
* disconnectedCallback) cancels any in-flight retry.
|
|
15124
|
-
* @private
|
|
15125
|
-
* @param {String} dateStr - The localized date string to announce.
|
|
15126
|
-
* @param {Number} attempts - Number of prior retry attempts.
|
|
15127
|
-
* @returns {void}
|
|
15128
|
-
*/
|
|
15129
|
-
_deliverAnnouncement(dateStr, attempts) {
|
|
15130
14888
|
const liveRegion = this.getOrCreateLiveRegion();
|
|
15131
14889
|
if (!liveRegion) {
|
|
15132
|
-
const MAX_LIVE_REGION_RETRIES = 10;
|
|
15133
|
-
if (attempts < MAX_LIVE_REGION_RETRIES) {
|
|
15134
|
-
this._announceRafId = requestAnimationFrame(() => {
|
|
15135
|
-
this._deliverAnnouncement(dateStr, attempts + 1);
|
|
15136
|
-
});
|
|
15137
|
-
} else {
|
|
15138
|
-
this._announceRafId = null;
|
|
15139
|
-
}
|
|
15140
14890
|
return;
|
|
15141
14891
|
}
|
|
15142
14892
|
|
|
@@ -15322,7 +15072,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
15322
15072
|
</button>
|
|
15323
15073
|
` : undefined}
|
|
15324
15074
|
</div>
|
|
15325
|
-
<div id="calendarGrid" class="calendars" role="group"
|
|
15075
|
+
<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}">
|
|
15326
15076
|
${this.renderAllCalendars()}
|
|
15327
15077
|
</div>
|
|
15328
15078
|
</div>
|
|
@@ -19231,7 +18981,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
|
|
|
19231
18981
|
}
|
|
19232
18982
|
};
|
|
19233
18983
|
|
|
19234
|
-
var formkitVersion$1 = '
|
|
18984
|
+
var formkitVersion$1 = '202606252337';
|
|
19235
18985
|
|
|
19236
18986
|
let AuroElement$2 = class AuroElement extends i$1 {
|
|
19237
18987
|
static get properties() {
|
|
@@ -30956,6 +30706,13 @@ class AuroInputUtilities {
|
|
|
30956
30706
|
* @returns {string | undefined}
|
|
30957
30707
|
*/
|
|
30958
30708
|
toFormattedValue(valueObject, format) {
|
|
30709
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
30710
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
30711
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
30712
|
+
// as "no format → no display value".
|
|
30713
|
+
if (!format) {
|
|
30714
|
+
return undefined;
|
|
30715
|
+
}
|
|
30959
30716
|
const normalizedFormat = format.toLowerCase();
|
|
30960
30717
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
30961
30718
|
|
|
@@ -31106,79 +30863,18 @@ class BaseInput extends AuroElement$1 {
|
|
|
31106
30863
|
constructor() {
|
|
31107
30864
|
super();
|
|
31108
30865
|
|
|
31109
|
-
|
|
31110
|
-
|
|
31111
|
-
|
|
31112
|
-
|
|
31113
|
-
|
|
31114
|
-
|
|
31115
|
-
|
|
31116
|
-
|
|
31117
|
-
|
|
31118
|
-
|
|
31119
|
-
this.required = false;
|
|
31120
|
-
this.onDark = false;
|
|
31121
|
-
this.setCustomValidityForType = undefined;
|
|
31122
|
-
this.size = 'lg';
|
|
31123
|
-
this.shape = 'classic';
|
|
31124
|
-
this.value = undefined;
|
|
31125
|
-
this._valueObject = undefined;
|
|
31126
|
-
|
|
31127
|
-
this._initializePrivateDefaults();
|
|
31128
|
-
}
|
|
31129
|
-
|
|
31130
|
-
/**
|
|
31131
|
-
* Internal Defaults.
|
|
31132
|
-
* @private
|
|
31133
|
-
* @returns {void}
|
|
31134
|
-
*/
|
|
31135
|
-
_initializePrivateDefaults() {
|
|
30866
|
+
// Single-source initialization. Alphabetized so duplicate or stale
|
|
30867
|
+
// defaults are immediately obvious on a diff. Every field is assigned
|
|
30868
|
+
// exactly once here (previously the constructor + the old
|
|
30869
|
+
// `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
|
|
30870
|
+
// fields and double-allocated `util` and `validation`, discarding the
|
|
30871
|
+
// first instance). `validation` is now allocated exactly once; `util`
|
|
30872
|
+
// is seeded here with an en-US default and then rebuilt in
|
|
30873
|
+
// `connectedCallback` once the consumer-resolved locale is available,
|
|
30874
|
+
// so a parent (datepicker/combobox) calling `validate()` synchronously
|
|
30875
|
+
// during its own update cycle sees a populated util instance.
|
|
31136
30876
|
this.activeLabel = false;
|
|
31137
|
-
|
|
31138
|
-
this.icon = false;
|
|
31139
|
-
this.disabled = false;
|
|
31140
|
-
this.dvInputOnly = false;
|
|
31141
|
-
this.hideLabelVisually = false;
|
|
31142
|
-
this.max = undefined;
|
|
31143
|
-
this.maxLength = undefined;
|
|
31144
|
-
this.min = undefined;
|
|
31145
|
-
this.minLength = undefined;
|
|
31146
|
-
this.noValidate = false;
|
|
31147
|
-
this.onDark = false;
|
|
31148
|
-
this.required = false;
|
|
31149
|
-
this.setCustomValidityForType = undefined;
|
|
31150
|
-
|
|
31151
|
-
// Used for storing raw values returned from input mask.
|
|
31152
|
-
this._rawMaskValue = undefined;
|
|
31153
|
-
|
|
31154
|
-
/**
|
|
31155
|
-
* @private
|
|
31156
|
-
*/
|
|
31157
|
-
this.layout = 'classic';
|
|
31158
|
-
|
|
31159
|
-
/**
|
|
31160
|
-
* @private
|
|
31161
|
-
*/
|
|
31162
|
-
this.shape = 'classic';
|
|
31163
|
-
|
|
31164
|
-
/**
|
|
31165
|
-
* @private
|
|
31166
|
-
*/
|
|
31167
|
-
this.size = 'lg';
|
|
31168
|
-
|
|
31169
|
-
this.touched = false;
|
|
31170
|
-
this.util = new AuroInputUtilities({
|
|
31171
|
-
locale: "en-US",
|
|
31172
|
-
format: this.format
|
|
31173
|
-
});
|
|
31174
|
-
this.validation = new AuroFormValidation();
|
|
31175
|
-
this.inputIconName = undefined;
|
|
31176
|
-
this.showPassword = false;
|
|
31177
|
-
this.validationCCLength = undefined;
|
|
31178
|
-
this.hasValue = false;
|
|
31179
|
-
this.label = 'Input label is undefined';
|
|
31180
|
-
|
|
31181
|
-
|
|
30877
|
+
/** @private */
|
|
31182
30878
|
this.allowedInputTypes = [
|
|
31183
30879
|
"text",
|
|
31184
30880
|
"number",
|
|
@@ -31187,7 +30883,8 @@ class BaseInput extends AuroElement$1 {
|
|
|
31187
30883
|
"credit-card",
|
|
31188
30884
|
"tel"
|
|
31189
30885
|
];
|
|
31190
|
-
this.
|
|
30886
|
+
this.appearance = "default";
|
|
30887
|
+
/** @private */
|
|
31191
30888
|
this.dateFormatMap = {
|
|
31192
30889
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
31193
30890
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -31204,27 +30901,57 @@ class BaseInput extends AuroElement$1 {
|
|
|
31204
30901
|
'dd/mm': 'dateDDMM',
|
|
31205
30902
|
'mm/dd': 'dateMMDD'
|
|
31206
30903
|
};
|
|
30904
|
+
this.disabled = false;
|
|
30905
|
+
/** @private */
|
|
31207
30906
|
this.domHandler = new DomHandler();
|
|
31208
30907
|
this.dvInputOnly = false;
|
|
31209
30908
|
this.hasValue = false;
|
|
30909
|
+
this.hideLabelVisually = false;
|
|
30910
|
+
this.icon = false;
|
|
30911
|
+
/** @private */
|
|
31210
30912
|
this.inputIconName = undefined;
|
|
30913
|
+
/** @private */
|
|
31211
30914
|
this.label = 'Input label is undefined';
|
|
30915
|
+
this.layout = 'classic';
|
|
30916
|
+
this.locale = 'en-US';
|
|
30917
|
+
this.max = undefined;
|
|
30918
|
+
this._maxObject = undefined;
|
|
30919
|
+
this.maxLength = undefined;
|
|
30920
|
+
this.min = undefined;
|
|
30921
|
+
this._minObject = undefined;
|
|
30922
|
+
this.minLength = undefined;
|
|
31212
30923
|
this.noValidate = false;
|
|
31213
|
-
this.
|
|
30924
|
+
this.onDark = false;
|
|
30925
|
+
// Raw values returned from the input mask before model normalization.
|
|
30926
|
+
this._rawMaskValue = undefined;
|
|
30927
|
+
this.required = false;
|
|
30928
|
+
this.setCustomValidityForType = undefined;
|
|
30929
|
+
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
30930
|
+
// itself, and listing it here caused cursor placement issues in Safari.
|
|
30931
|
+
/** @private */
|
|
31214
30932
|
this.setSelectionInputTypes = [
|
|
31215
30933
|
"text",
|
|
31216
30934
|
"password",
|
|
31217
30935
|
"email"
|
|
31218
|
-
];
|
|
30936
|
+
];
|
|
30937
|
+
this.shape = 'classic';
|
|
30938
|
+
/** @private */
|
|
31219
30939
|
this.showPassword = false;
|
|
30940
|
+
this.size = 'lg';
|
|
31220
30941
|
this.touched = false;
|
|
30942
|
+
/** @private */
|
|
31221
30943
|
this.uniqueId = new UniqueId().create();
|
|
30944
|
+
/** @private */
|
|
31222
30945
|
this.util = new AuroInputUtilities({
|
|
31223
30946
|
locale: this.locale,
|
|
31224
30947
|
format: this.format
|
|
31225
30948
|
});
|
|
30949
|
+
/** @private */
|
|
31226
30950
|
this.validation = new AuroFormValidation();
|
|
30951
|
+
/** @private */
|
|
31227
30952
|
this.validationCCLength = undefined;
|
|
30953
|
+
this.value = undefined;
|
|
30954
|
+
this._valueObject = undefined;
|
|
31228
30955
|
}
|
|
31229
30956
|
|
|
31230
30957
|
// function to define props used within the scope of this component
|
|
@@ -31772,6 +31499,15 @@ class BaseInput extends AuroElement$1 {
|
|
|
31772
31499
|
|
|
31773
31500
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
31774
31501
|
|
|
31502
|
+
// Normalize the format token to lowercase so case-mixed values supplied
|
|
31503
|
+
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
31504
|
+
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
31505
|
+
// format silently misses the map and leaves `setCustomValidityForType`
|
|
31506
|
+
// unset.
|
|
31507
|
+
if (this.format) {
|
|
31508
|
+
this.format = this.format.toLowerCase();
|
|
31509
|
+
}
|
|
31510
|
+
|
|
31775
31511
|
// use validity message override if declared when initializing the component
|
|
31776
31512
|
if (this.hasAttribute('setCustomValidity')) {
|
|
31777
31513
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -32205,6 +31941,38 @@ class BaseInput extends AuroElement$1 {
|
|
|
32205
31941
|
this.touched = true;
|
|
32206
31942
|
this.validation.validate(this);
|
|
32207
31943
|
}
|
|
31944
|
+
|
|
31945
|
+
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
31946
|
+
// update that can re-render the input and reset the native cursor; we
|
|
31947
|
+
// capture the caret position before that update commits and restore it
|
|
31948
|
+
// via `setSelectionRange` once the update has flushed. Gated on
|
|
31949
|
+
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
31950
|
+
// formatter manages the cursor itself) doesn't get a competing write.
|
|
31951
|
+
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
31952
|
+
// on input types that don't support text selection (number, email in
|
|
31953
|
+
// some browsers) throws InvalidStateError, which would crash all input
|
|
31954
|
+
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
31955
|
+
// the gated types currently support it, since the list is a public
|
|
31956
|
+
// property a consumer could mutate.
|
|
31957
|
+
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
31958
|
+
let selectionStart;
|
|
31959
|
+
try {
|
|
31960
|
+
selectionStart = this.inputElement.selectionStart;
|
|
31961
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
31962
|
+
return;
|
|
31963
|
+
}
|
|
31964
|
+
if (typeof selectionStart !== 'number') {
|
|
31965
|
+
return;
|
|
31966
|
+
}
|
|
31967
|
+
this.updateComplete.then(() => {
|
|
31968
|
+
try {
|
|
31969
|
+
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
31970
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
31971
|
+
// Some input types (number/email in certain UAs) throw on
|
|
31972
|
+
// setSelectionRange; swallow and let the native cursor stand.
|
|
31973
|
+
}
|
|
31974
|
+
});
|
|
31975
|
+
}
|
|
32208
31976
|
}
|
|
32209
31977
|
|
|
32210
31978
|
/**
|
|
@@ -32831,7 +32599,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
|
|
|
32831
32599
|
}
|
|
32832
32600
|
};
|
|
32833
32601
|
|
|
32834
|
-
var formkitVersion = '
|
|
32602
|
+
var formkitVersion = '202606252337';
|
|
32835
32603
|
|
|
32836
32604
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
32837
32605
|
// See LICENSE in the project root for license information.
|
|
@@ -33334,6 +33102,7 @@ class AuroInput extends BaseInput {
|
|
|
33334
33102
|
<${this.buttonTag}
|
|
33335
33103
|
@click="${this.handleClickShowPassword}"
|
|
33336
33104
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
33105
|
+
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
33337
33106
|
class="notificationBtn passwordBtn"
|
|
33338
33107
|
shape="circle"
|
|
33339
33108
|
size="sm"
|
|
@@ -33407,25 +33176,29 @@ class AuroInput extends BaseInput {
|
|
|
33407
33176
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
33408
33177
|
*/
|
|
33409
33178
|
renderHtmlHelpText() {
|
|
33179
|
+
// Single `<p>` with stable identity across validity transitions —
|
|
33180
|
+
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
33181
|
+
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
33182
|
+
// re-announce because the live-region element it was watching had been
|
|
33183
|
+
// removed and a new one inserted. Keeping one node means the `role`,
|
|
33184
|
+
// `aria-live`, and text content all change in-place, which AT does
|
|
33185
|
+
// observe and announce.
|
|
33186
|
+
const isError = this.validity && this.validity !== 'valid';
|
|
33410
33187
|
return u$a`
|
|
33411
|
-
|
|
33412
|
-
?
|
|
33413
|
-
|
|
33414
|
-
|
|
33415
|
-
|
|
33416
|
-
|
|
33417
|
-
|
|
33418
|
-
|
|
33419
|
-
|
|
33420
|
-
|
|
33421
|
-
|
|
33422
|
-
|
|
33423
|
-
|
|
33424
|
-
|
|
33425
|
-
</p>
|
|
33426
|
-
</${this.helpTextTag}>
|
|
33427
|
-
`
|
|
33428
|
-
}
|
|
33188
|
+
<${this.helpTextTag}
|
|
33189
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
33190
|
+
?error=${isError}>
|
|
33191
|
+
<p
|
|
33192
|
+
id="${this.uniqueId}"
|
|
33193
|
+
part="helpText"
|
|
33194
|
+
role="${o$2(isError ? 'alert' : undefined)}"
|
|
33195
|
+
aria-live="${o$2(isError ? 'assertive' : undefined)}">
|
|
33196
|
+
${isError
|
|
33197
|
+
? this.errorMessage
|
|
33198
|
+
: u$a`<slot name="helpText">${this.getHelpText()}</slot>`
|
|
33199
|
+
}
|
|
33200
|
+
</p>
|
|
33201
|
+
</${this.helpTextTag}>
|
|
33429
33202
|
`;
|
|
33430
33203
|
}
|
|
33431
33204
|
|
|
@@ -33572,6 +33345,15 @@ function formatISODate(isoStr, format) {
|
|
|
33572
33345
|
try {
|
|
33573
33346
|
const date = dateFormatter.stringToDateInstance(isoStr);
|
|
33574
33347
|
|
|
33348
|
+
// `stringToDateInstance` returns an `Invalid Date` for malformed strings
|
|
33349
|
+
// and `null` for non-string input — it does NOT throw. Without this
|
|
33350
|
+
// guard, `getFullYear()`/`getMonth()`/`getDate()` on an Invalid Date
|
|
33351
|
+
// yield `NaN`, and `String(NaN).padStart(4, '0')` produces literals
|
|
33352
|
+
// like "0NaN/0NaN/0NaN" instead of `undefined`.
|
|
33353
|
+
if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
|
|
33354
|
+
return undefined;
|
|
33355
|
+
}
|
|
33356
|
+
|
|
33575
33357
|
const year = String(date.getFullYear()).padStart(4, '0');
|
|
33576
33358
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
33577
33359
|
const day = String(date.getDate()).padStart(2, '0');
|
|
@@ -33582,7 +33364,10 @@ function formatISODate(isoStr, format) {
|
|
|
33582
33364
|
replace(/mm/iu, month).
|
|
33583
33365
|
replace(/dd/iu, day);
|
|
33584
33366
|
} catch (err) {
|
|
33585
|
-
//
|
|
33367
|
+
// Defensive: the Date-returning path is guarded above, but `parseDate`
|
|
33368
|
+
// (inside `stringToDateInstance`) could throw on pathological input
|
|
33369
|
+
// future-library-versions might introduce. Treat any thrown error as
|
|
33370
|
+
// "not a valid date" and return undefined.
|
|
33586
33371
|
return undefined;
|
|
33587
33372
|
}
|
|
33588
33373
|
}
|
|
@@ -34308,7 +34093,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
34308
34093
|
this.rangeLabelBeforeRange = 'before range';
|
|
34309
34094
|
this.rangeLabelInRange = 'in range';
|
|
34310
34095
|
this.rangeLabelAfterRange = 'after range';
|
|
34311
|
-
this.rangeLabelEndPreview = 'previewing range end';
|
|
34312
34096
|
this.blackoutDates = [];
|
|
34313
34097
|
this.blackoutLabel = 'unavailable';
|
|
34314
34098
|
this.navLabelPrevMonth = 'Previous month';
|
|
@@ -34408,22 +34192,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
34408
34192
|
*/
|
|
34409
34193
|
this.handleClick = this.handleClick.bind(this);
|
|
34410
34194
|
|
|
34411
|
-
/**
|
|
34412
|
-
* Single AbortController shared by every listener registered in the
|
|
34413
|
-
* configure* methods. Lets disconnectedCallback tear all of them down
|
|
34414
|
-
* with one abort() call.
|
|
34415
|
-
*
|
|
34416
|
-
* The genuine leak risk is the listeners attached to children that can
|
|
34417
|
-
* outlive the host if they get reparented — `this.dropdown`,
|
|
34418
|
-
* `this.calendar`, and the inputs inside the dropdown's slot.
|
|
34419
|
-
* Listeners attached to `this` (e.g. focusin/focusout on the host)
|
|
34420
|
-
* form a self-contained reference graph that the GC can collect with
|
|
34421
|
-
* the host anyway, but they share the same signal so the cleanup
|
|
34422
|
-
* pattern stays uniform across all configure* sites.
|
|
34423
|
-
* @private
|
|
34424
|
-
*/
|
|
34425
|
-
this._listenerAbortController = new AbortController();
|
|
34426
|
-
|
|
34427
34195
|
/**
|
|
34428
34196
|
* @private
|
|
34429
34197
|
*/
|
|
@@ -34472,7 +34240,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
34472
34240
|
|
|
34473
34241
|
/**
|
|
34474
34242
|
* Label announced for blackout (disabled but in-range) date cells.
|
|
34475
|
-
* @default 'unavailable'
|
|
34476
34243
|
*/
|
|
34477
34244
|
blackoutLabel: {
|
|
34478
34245
|
type: String,
|
|
@@ -34489,7 +34256,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
34489
34256
|
|
|
34490
34257
|
/**
|
|
34491
34258
|
* Accessible label for the calendar grid containing the days of the month.
|
|
34492
|
-
* @default 'Calendar days of the month'
|
|
34493
34259
|
*/
|
|
34494
34260
|
calendarGridLabel: {
|
|
34495
34261
|
type: String,
|
|
@@ -34652,7 +34418,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
34652
34418
|
|
|
34653
34419
|
/**
|
|
34654
34420
|
* Accessible label for the next month navigation button.
|
|
34655
|
-
* @default 'Next month'
|
|
34656
34421
|
*/
|
|
34657
34422
|
navLabelNextMonth: {
|
|
34658
34423
|
type: String,
|
|
@@ -34661,7 +34426,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
34661
34426
|
|
|
34662
34427
|
/**
|
|
34663
34428
|
* Accessible label for the previous month navigation button.
|
|
34664
|
-
* @default 'Previous month'
|
|
34665
34429
|
*/
|
|
34666
34430
|
navLabelPrevMonth: {
|
|
34667
34431
|
type: String,
|
|
@@ -34739,11 +34503,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34739
34503
|
},
|
|
34740
34504
|
|
|
34741
34505
|
/**
|
|
34742
|
-
* Label announced for cells after
|
|
34743
|
-
* `dateFrom` and `dateTo` are set). While a range is still being
|
|
34744
|
-
* picked (`dateFrom` set, `dateTo` unset), focused cells past the
|
|
34745
|
-
* start use `rangeLabelEndPreview` instead.
|
|
34746
|
-
* @default 'after range'
|
|
34506
|
+
* Label announced for cells after the range (or after start when no end is selected).
|
|
34747
34507
|
*/
|
|
34748
34508
|
rangeLabelAfterRange: {
|
|
34749
34509
|
type: String,
|
|
@@ -34752,7 +34512,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
34752
34512
|
|
|
34753
34513
|
/**
|
|
34754
34514
|
* Label announced for cells before the range start.
|
|
34755
|
-
* @default 'before range'
|
|
34756
34515
|
*/
|
|
34757
34516
|
rangeLabelBeforeRange: {
|
|
34758
34517
|
type: String,
|
|
@@ -34761,27 +34520,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
34761
34520
|
|
|
34762
34521
|
/**
|
|
34763
34522
|
* Label announced for the range end date cell.
|
|
34764
|
-
* @default 'range end'
|
|
34765
34523
|
*/
|
|
34766
34524
|
rangeLabelEnd: {
|
|
34767
34525
|
type: String,
|
|
34768
34526
|
reflect: true
|
|
34769
34527
|
},
|
|
34770
34528
|
|
|
34771
|
-
/**
|
|
34772
|
-
* Label announced for the focused cell while previewing a range end
|
|
34773
|
-
* (dateFrom set, dateTo not yet selected). Tells AT users that
|
|
34774
|
-
* pressing Enter would commit this cell as the range end.
|
|
34775
|
-
* @default 'previewing range end'
|
|
34776
|
-
*/
|
|
34777
|
-
rangeLabelEndPreview: {
|
|
34778
|
-
type: String,
|
|
34779
|
-
reflect: true
|
|
34780
|
-
},
|
|
34781
|
-
|
|
34782
34529
|
/**
|
|
34783
34530
|
* Label announced for cells within the selected range.
|
|
34784
|
-
* @default 'in range'
|
|
34785
34531
|
*/
|
|
34786
34532
|
rangeLabelInRange: {
|
|
34787
34533
|
type: String,
|
|
@@ -34790,7 +34536,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
34790
34536
|
|
|
34791
34537
|
/**
|
|
34792
34538
|
* Label announced for the range start date cell.
|
|
34793
|
-
* @default 'range start'
|
|
34794
34539
|
*/
|
|
34795
34540
|
rangeLabelStart: {
|
|
34796
34541
|
type: String,
|
|
@@ -34798,7 +34543,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
34798
34543
|
},
|
|
34799
34544
|
|
|
34800
34545
|
/**
|
|
34801
|
-
* Dates that the user should have for reference as part of their decision
|
|
34546
|
+
* Dates that the user should have for reference as part of their decision making when selecting a date.
|
|
34802
34547
|
* This should be a JSON string array of ISO date strings (`YYYY-MM-DD`).
|
|
34803
34548
|
*/
|
|
34804
34549
|
referenceDates: {
|
|
@@ -35155,26 +34900,10 @@ class AuroDatePicker extends AuroElement {
|
|
|
35155
34900
|
// ─── Vendor calendar time conversions ─────────────────────────────────────
|
|
35156
34901
|
|
|
35157
34902
|
/**
|
|
35158
|
-
* Converts a Unix timestamp (seconds) from the
|
|
35159
|
-
* (`src/vendor/wc-range-datepicker/day.js`) to an ISO date string.
|
|
35160
|
-
*
|
|
35161
|
-
* Timezone contract:
|
|
35162
|
-
* - INPUT: `time` is assumed to be the seconds-since-epoch of **local
|
|
35163
|
-
* midnight** for the intended calendar day. The vendor's Day constructor
|
|
35164
|
-
* builds it via `date-fns format(date, 't')` from a locally-constructed
|
|
35165
|
-
* Date, so this assumption currently holds end-to-end.
|
|
35166
|
-
* - OUTPUT: `dateFormatter.toISOFormatString` reads the Date's local
|
|
35167
|
-
* getFullYear/getMonth/getDate components, so the returned YYYY-MM-DD
|
|
35168
|
-
* string matches the local calendar day.
|
|
35169
|
-
*
|
|
35170
|
-
* If the vendor ever switches to emitting UTC-midnight timestamps, this
|
|
35171
|
-
* conversion will silently shift the returned date by one day in zones
|
|
35172
|
-
* west of UTC. Any vendor swap should re-verify this contract; the TZ
|
|
35173
|
-
* regression suite (`npm run test:hst`, UTC-10) will catch the symptom.
|
|
35174
|
-
*
|
|
34903
|
+
* Converts a Unix timestamp (seconds) from the vendor calendar to an ISO date string.
|
|
35175
34904
|
* @private
|
|
35176
|
-
* @param {number} time - Unix timestamp
|
|
35177
|
-
* @returns {string} ISO date string (yyyy-mm-dd)
|
|
34905
|
+
* @param {number} time - Unix timestamp in seconds.
|
|
34906
|
+
* @returns {string} ISO date string (yyyy-mm-dd).
|
|
35178
34907
|
*/
|
|
35179
34908
|
convertWcTimeToDate(time) {
|
|
35180
34909
|
return dateFormatter$1.toISOFormatString(new Date(time * 1000));
|
|
@@ -35276,8 +35005,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
35276
35005
|
}
|
|
35277
35006
|
}
|
|
35278
35007
|
|
|
35279
|
-
// Focus the calendar grid wrapper
|
|
35280
|
-
//
|
|
35008
|
+
// Focus the calendar grid wrapper (aria-activedescendant handles
|
|
35009
|
+
// the SR announcement for the active cell).
|
|
35281
35010
|
if (activeCell) {
|
|
35282
35011
|
this.calendar.focusActiveCell();
|
|
35283
35012
|
|
|
@@ -35327,13 +35056,11 @@ class AuroDatePicker extends AuroElement {
|
|
|
35327
35056
|
this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
|
|
35328
35057
|
}
|
|
35329
35058
|
|
|
35330
|
-
const { signal } = this._listenerAbortController;
|
|
35331
|
-
|
|
35332
35059
|
this.dropdown.addEventListener('auroDropdown-triggerClick', () => {
|
|
35333
35060
|
if (!this.isPopoverVisible) {
|
|
35334
35061
|
this.dropdown.show();
|
|
35335
35062
|
}
|
|
35336
|
-
}
|
|
35063
|
+
});
|
|
35337
35064
|
|
|
35338
35065
|
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
35339
35066
|
this.notifyDatepickerToggled();
|
|
@@ -35351,7 +35078,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35351
35078
|
if (this.valueObject) {
|
|
35352
35079
|
this.centralDate = this.value;
|
|
35353
35080
|
} else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
|
|
35354
|
-
this.centralDate =
|
|
35081
|
+
this.centralDate = new Date();
|
|
35355
35082
|
}
|
|
35356
35083
|
}
|
|
35357
35084
|
|
|
@@ -35431,7 +35158,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35431
35158
|
this.forceScrollOnNextMobileCalendarRender = false;
|
|
35432
35159
|
}, 0);
|
|
35433
35160
|
}
|
|
35434
|
-
}
|
|
35161
|
+
});
|
|
35435
35162
|
|
|
35436
35163
|
// Handle responsive strategy changes while the dropdown is open
|
|
35437
35164
|
// (e.g. resizing from desktop → mobile or vice versa).
|
|
@@ -35478,7 +35205,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35478
35205
|
});
|
|
35479
35206
|
});
|
|
35480
35207
|
}
|
|
35481
|
-
}
|
|
35208
|
+
});
|
|
35482
35209
|
}
|
|
35483
35210
|
|
|
35484
35211
|
/**
|
|
@@ -35491,8 +35218,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
35491
35218
|
|
|
35492
35219
|
this.inputList = [...this.dropdown.querySelectorAll(this.inputTag._$litStatic$)];
|
|
35493
35220
|
|
|
35494
|
-
const { signal } = this._listenerAbortController;
|
|
35495
|
-
|
|
35496
35221
|
this.inputList.forEach((input, index) => {
|
|
35497
35222
|
input.addEventListener('input', (event) => {
|
|
35498
35223
|
event.stopPropagation();
|
|
@@ -35504,7 +35229,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35504
35229
|
}
|
|
35505
35230
|
|
|
35506
35231
|
this.notifyValueChanged();
|
|
35507
|
-
}
|
|
35232
|
+
});
|
|
35508
35233
|
|
|
35509
35234
|
input.addEventListener('auroFormElement-validated', (evt) => {
|
|
35510
35235
|
// not to bubble up input's validated event.
|
|
@@ -35520,7 +35245,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35520
35245
|
this.validity = evt.detail.validity;
|
|
35521
35246
|
this.errorMessage = evt.detail.message;
|
|
35522
35247
|
}
|
|
35523
|
-
}
|
|
35248
|
+
});
|
|
35524
35249
|
});
|
|
35525
35250
|
}
|
|
35526
35251
|
|
|
@@ -35534,32 +35259,19 @@ class AuroDatePicker extends AuroElement {
|
|
|
35534
35259
|
this.calendar.datepicker = this;
|
|
35535
35260
|
this.calendar.dropdown = this.dropdown;
|
|
35536
35261
|
|
|
35537
|
-
const { signal } = this._listenerAbortController;
|
|
35538
|
-
|
|
35539
35262
|
this.calendar.addEventListener('auroCalendar-dateSelected', () => {
|
|
35540
|
-
|
|
35541
|
-
|
|
35542
|
-
// strings — comparing the input ISO directly against them would
|
|
35543
|
-
// never match, so the write would fire on every event and emit
|
|
35544
|
-
// redundant input/change activity).
|
|
35545
|
-
if (this.calendar.dateFrom !== undefined) {
|
|
35546
|
-
const fromIso = this.convertWcTimeToDate(this.calendar.dateFrom);
|
|
35547
|
-
if (this.inputList[0].value !== fromIso) {
|
|
35548
|
-
this.inputList[0].value = fromIso;
|
|
35549
|
-
}
|
|
35263
|
+
if (this.inputList[0].value !== this.calendar.dateFrom && this.calendar.dateFrom !== undefined) {
|
|
35264
|
+
this.inputList[0].value = this.convertWcTimeToDate(this.calendar.dateFrom);
|
|
35550
35265
|
}
|
|
35551
35266
|
|
|
35552
|
-
if (this.inputList[1] && this.calendar.dateTo) {
|
|
35553
|
-
|
|
35554
|
-
if (this.inputList[1].value !== toIso) {
|
|
35555
|
-
this.inputList[1].value = toIso;
|
|
35556
|
-
}
|
|
35267
|
+
if (this.inputList[1] && this.calendar.dateTo && this.inputList[1].value !== this.calendar.dateTo) {
|
|
35268
|
+
this.inputList[1].value = this.convertWcTimeToDate(this.calendar.dateTo);
|
|
35557
35269
|
}
|
|
35558
|
-
}
|
|
35270
|
+
});
|
|
35559
35271
|
|
|
35560
35272
|
this.calendar.addEventListener('auroCalendar-dismissRequest', () => {
|
|
35561
35273
|
this.dropdown.hide();
|
|
35562
|
-
}
|
|
35274
|
+
});
|
|
35563
35275
|
|
|
35564
35276
|
this.calendar.addEventListener('auroCalendar-centralDateChanged', (event) => {
|
|
35565
35277
|
const match = this.centralDateObject && this.util.datesMatch(event.detail.date, this.centralDateObject);
|
|
@@ -35569,7 +35281,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35569
35281
|
}
|
|
35570
35282
|
|
|
35571
35283
|
this.notifyMonthChanged(event);
|
|
35572
|
-
}
|
|
35284
|
+
});
|
|
35573
35285
|
}
|
|
35574
35286
|
|
|
35575
35287
|
/**
|
|
@@ -35578,17 +35290,10 @@ class AuroDatePicker extends AuroElement {
|
|
|
35578
35290
|
* @returns {void}
|
|
35579
35291
|
*/
|
|
35580
35292
|
configureDatepicker() {
|
|
35581
|
-
// These listeners are on `this` (the host), so they would GC with the
|
|
35582
|
-
// host even without the abort signal — see the leak rationale on
|
|
35583
|
-
// `_listenerAbortController`. The signal is still passed for uniform
|
|
35584
|
-
// cleanup semantics with the child-element listeners in the other
|
|
35585
|
-
// configure* methods.
|
|
35586
|
-
const { signal } = this._listenerAbortController;
|
|
35587
|
-
|
|
35588
35293
|
this.addEventListener('focusin', () => {
|
|
35589
35294
|
this.touched = true;
|
|
35590
35295
|
this.hasFocus = true;
|
|
35591
|
-
}
|
|
35296
|
+
});
|
|
35592
35297
|
|
|
35593
35298
|
this.addEventListener('focusout', () => {
|
|
35594
35299
|
this.hasFocus = false;
|
|
@@ -35600,7 +35305,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
35600
35305
|
if (!this.matches(':focus-within')) {
|
|
35601
35306
|
this.validate();
|
|
35602
35307
|
}
|
|
35603
|
-
}
|
|
35308
|
+
});
|
|
35604
35309
|
|
|
35605
35310
|
if (this.valueObject) {
|
|
35606
35311
|
this.calendar.dateFrom = this.convertToWcValidTime(this.valueObject);
|
|
@@ -35798,41 +35503,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
35798
35503
|
return this.validity !== undefined && this.validity !== 'valid';
|
|
35799
35504
|
}
|
|
35800
35505
|
|
|
35801
|
-
/**
|
|
35802
|
-
* Per-class dedup set used by `_warnInvalidLocale`. Static so the dedup
|
|
35803
|
-
* spans every datepicker instance on the page; lives on the class (not
|
|
35804
|
-
* at module scope) so it stays an encapsulated implementation detail of
|
|
35805
|
-
* this component and does not interfere with WCA's class-JSDoc
|
|
35806
|
-
* attachment.
|
|
35807
|
-
* @private
|
|
35808
|
-
*/
|
|
35809
|
-
static _warnedInvalidLocales = new Set();
|
|
35810
|
-
|
|
35811
|
-
/**
|
|
35812
|
-
* Logs a one-time `console.debug` when an unsupported locale falls back to
|
|
35813
|
-
* en-US. Deduped by the offending tag so noisy re-renders that resurface
|
|
35814
|
-
* the same bad value stay quiet, but each new bad value still signals so
|
|
35815
|
-
* consumers can spot the typo or missing tag.
|
|
35816
|
-
* @private
|
|
35817
|
-
* @param {string|undefined} badLocale - The locale value that failed.
|
|
35818
|
-
* @returns {void}
|
|
35819
|
-
*/
|
|
35820
|
-
_warnInvalidLocale(badLocale) {
|
|
35821
|
-
// Stringify without coalescing — `String(undefined)` / `String(null)`
|
|
35822
|
-
// surface the actual offending value in the log, instead of the
|
|
35823
|
-
// ambiguous `Locale ""` that `String(badLocale ?? '')` would produce.
|
|
35824
|
-
// Dedup still works correctly because each unique stringification
|
|
35825
|
-
// becomes its own Set entry.
|
|
35826
|
-
const key = String(badLocale);
|
|
35827
|
-
const seen = AuroDatePicker._warnedInvalidLocales;
|
|
35828
|
-
if (seen.has(key)) {
|
|
35829
|
-
return;
|
|
35830
|
-
}
|
|
35831
|
-
seen.add(key);
|
|
35832
|
-
// eslint-disable-next-line no-console
|
|
35833
|
-
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".`);
|
|
35834
|
-
}
|
|
35835
|
-
|
|
35836
35506
|
/**
|
|
35837
35507
|
* Lifecycle method to check if the locale is valid.
|
|
35838
35508
|
* @ignore
|
|
@@ -35843,15 +35513,10 @@ class AuroDatePicker extends AuroElement {
|
|
|
35843
35513
|
if (changedProperties.has('locale')) {
|
|
35844
35514
|
try {
|
|
35845
35515
|
const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
|
|
35846
|
-
|
|
35847
|
-
this._validLocale = this.locale;
|
|
35848
|
-
} else {
|
|
35849
|
-
this._validLocale = 'en-US';
|
|
35850
|
-
this._warnInvalidLocale(this.locale);
|
|
35851
|
-
}
|
|
35516
|
+
this._validLocale = supported.length > 0 ? this.locale : 'en-US';
|
|
35852
35517
|
} catch {
|
|
35518
|
+
console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
|
|
35853
35519
|
this._validLocale = 'en-US';
|
|
35854
|
-
this._warnInvalidLocale(this.locale);
|
|
35855
35520
|
}
|
|
35856
35521
|
|
|
35857
35522
|
const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
|
|
@@ -35933,6 +35598,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
35933
35598
|
// Skip centralDate update when user clicked a cell in range mode
|
|
35934
35599
|
// to prevent the displayed months from shifting
|
|
35935
35600
|
this.centralDate = this.value;
|
|
35601
|
+
//TODO: TEST THIS CHANGE
|
|
35602
|
+
// this.calendarRenderUtil.updateCentralDate(this, this.value);
|
|
35936
35603
|
}
|
|
35937
35604
|
|
|
35938
35605
|
this.setHasValue();
|
|
@@ -35992,6 +35659,8 @@ class AuroDatePicker extends AuroElement {
|
|
|
35992
35659
|
// Skip centralDate update when user clicked a cell in range mode
|
|
35993
35660
|
// to prevent the displayed months from shifting
|
|
35994
35661
|
this.centralDate = this.valueEnd;
|
|
35662
|
+
// TODO: TEST THIS CHANGE
|
|
35663
|
+
// this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
|
|
35995
35664
|
}
|
|
35996
35665
|
|
|
35997
35666
|
this.validate();
|
|
@@ -36133,7 +35802,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
36133
35802
|
* @returns {void}
|
|
36134
35803
|
*/
|
|
36135
35804
|
configureClickHandler() {
|
|
36136
|
-
this.addEventListener('click', this.handleClick
|
|
35805
|
+
this.addEventListener('click', this.handleClick);
|
|
36137
35806
|
}
|
|
36138
35807
|
|
|
36139
35808
|
firstUpdated() {
|
|
@@ -36141,15 +35810,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
36141
35810
|
// Add the tag name as an attribute if it is different than the component name
|
|
36142
35811
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
|
|
36143
35812
|
|
|
36144
|
-
// If the element was disconnected before this first render finished,
|
|
36145
|
-
// disconnectedCallback's microtask already aborted the controller. The
|
|
36146
|
-
// connectedCallback reinit guard skips that case because `hasUpdated`
|
|
36147
|
-
// is still false. Mint a fresh controller here so configure* registers
|
|
36148
|
-
// listeners against a live signal.
|
|
36149
|
-
if (this._listenerAbortController.signal.aborted) {
|
|
36150
|
-
this._listenerAbortController = new AbortController();
|
|
36151
|
-
}
|
|
36152
|
-
|
|
36153
35813
|
this.configureDropdown();
|
|
36154
35814
|
this.configureInput();
|
|
36155
35815
|
this.configureCalendar();
|
|
@@ -36161,36 +35821,9 @@ class AuroDatePicker extends AuroElement {
|
|
|
36161
35821
|
connectedCallback() {
|
|
36162
35822
|
super.connectedCallback();
|
|
36163
35823
|
|
|
36164
|
-
// True reconnect after `disconnectedCallback` aborted our controller:
|
|
36165
|
-
// the existing signal is dead, so listeners registered against it
|
|
36166
|
-
// would never fire. Create a fresh controller and re-run the
|
|
36167
|
-
// configure* wiring (each method is idempotent — it just re-caches
|
|
36168
|
-
// child refs and re-registers listeners against the new signal).
|
|
36169
|
-
// `hasUpdated` gates this so the *first* connect (which precedes
|
|
36170
|
-
// firstUpdated) still falls through to firstUpdated's initial wiring.
|
|
36171
|
-
if (this.hasUpdated && this._listenerAbortController.signal.aborted) {
|
|
36172
|
-
this._listenerAbortController = new AbortController();
|
|
36173
|
-
this.configureDropdown();
|
|
36174
|
-
this.configureInput();
|
|
36175
|
-
this.configureCalendar();
|
|
36176
|
-
this.configureDatepicker();
|
|
36177
|
-
this.configureClickHandler();
|
|
36178
|
-
}
|
|
36179
|
-
|
|
36180
35824
|
this.locale = this.domHandler.getLocale(this);
|
|
36181
35825
|
}
|
|
36182
35826
|
|
|
36183
|
-
disconnectedCallback() {
|
|
36184
|
-
super.disconnectedCallback();
|
|
36185
|
-
// Defer so that re-parenting (auro-drawer slotting it into a dialog,
|
|
36186
|
-
// for example) does not abort listeners we still need after reconnect.
|
|
36187
|
-
queueMicrotask(() => {
|
|
36188
|
-
if (!this.isConnected) {
|
|
36189
|
-
this._listenerAbortController.abort();
|
|
36190
|
-
}
|
|
36191
|
-
});
|
|
36192
|
-
}
|
|
36193
|
-
|
|
36194
35827
|
// layout render methods
|
|
36195
35828
|
// ------------------------------------
|
|
36196
35829
|
|