@aurodesignsystem-dev/auro-formkit 0.0.0-pr1489.0 → 0.0.0-pr1489.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/checkbox/demo/customize.min.js +249 -125
- package/components/checkbox/demo/getting-started.min.js +249 -125
- package/components/checkbox/demo/index.min.js +249 -125
- package/components/checkbox/demo/styles.min.css +1 -1
- package/components/checkbox/dist/index.js +249 -125
- package/components/checkbox/dist/registered.js +249 -125
- package/components/combobox/demo/customize.min.js +523 -259
- package/components/combobox/demo/getting-started.min.js +523 -259
- package/components/combobox/demo/index.min.js +523 -259
- package/components/combobox/demo/styles.min.css +1 -1
- package/components/combobox/dist/index.js +523 -259
- package/components/combobox/dist/registered.js +523 -259
- package/components/counter/demo/customize.min.js +271 -131
- package/components/counter/demo/index.min.js +271 -131
- package/components/counter/demo/styles.min.css +1 -1
- package/components/counter/dist/index.js +249 -125
- package/components/counter/dist/registered.js +249 -125
- package/components/datepicker/demo/accessibility.md +12 -9
- package/components/datepicker/demo/api.md +1 -1
- package/components/datepicker/demo/customize.md +4 -0
- package/components/datepicker/demo/customize.min.js +1638 -654
- package/components/datepicker/demo/index.md +35 -5
- package/components/datepicker/demo/index.min.js +1654 -659
- package/components/datepicker/demo/keyboard-behavior.md +16 -16
- package/components/datepicker/demo/styles.min.css +1 -1
- package/components/datepicker/demo/voiceover.md +5 -3
- package/components/datepicker/demo/why-datepicker.md +2 -2
- package/components/datepicker/dist/index.js +1642 -658
- package/components/datepicker/dist/registered.js +1642 -658
- package/components/datepicker/dist/src/auro-calendar-cell.d.ts +52 -17
- package/components/datepicker/dist/src/auro-calendar-month.d.ts +12 -4
- package/components/datepicker/dist/src/auro-calendar.d.ts +161 -8
- package/components/datepicker/dist/src/auro-datepicker.d.ts +77 -79
- package/components/dropdown/demo/customize.min.js +22 -6
- package/components/dropdown/demo/getting-started.min.js +22 -6
- package/components/dropdown/demo/index.min.js +22 -6
- package/components/dropdown/demo/styles.min.css +1 -1
- package/components/dropdown/dist/auro-dropdown.d.ts +3 -2
- package/components/dropdown/dist/index.js +22 -6
- package/components/dropdown/dist/registered.js +22 -6
- package/components/form/demo/customize.min.js +3461 -1561
- package/components/form/demo/getting-started.min.js +3461 -1561
- package/components/form/demo/index.min.js +3461 -1561
- package/components/form/demo/registerDemoDeps.min.js +3461 -1561
- package/components/form/demo/styles.min.css +1 -1
- package/components/input/demo/customize.min.js +249 -125
- package/components/input/demo/getting-started.min.js +249 -125
- package/components/input/demo/index.min.js +249 -125
- package/components/input/demo/styles.min.css +1 -1
- package/components/input/dist/index.js +249 -125
- package/components/input/dist/registered.js +249 -125
- package/components/menu/demo/styles.min.css +1 -1
- package/components/radio/demo/customize.min.js +249 -125
- package/components/radio/demo/getting-started.min.js +249 -125
- package/components/radio/demo/index.min.js +249 -125
- package/components/radio/demo/styles.min.css +1 -1
- package/components/radio/dist/index.js +249 -125
- package/components/radio/dist/registered.js +249 -125
- package/components/select/demo/customize.min.js +271 -131
- package/components/select/demo/getting-started.min.js +271 -131
- package/components/select/demo/index.min.js +271 -131
- package/components/select/demo/styles.min.css +1 -1
- package/components/select/dist/index.js +271 -131
- package/components/select/dist/registered.js +271 -131
- package/custom-elements.json +1936 -1614
- package/package.json +8 -8
|
@@ -8,109 +8,236 @@ import 'lit-html';
|
|
|
8
8
|
import 'lit-html/directives/unsafe-html.js';
|
|
9
9
|
import { repeat } from 'lit/directives/repeat.js';
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* @description Splits a date string into its parts according to the provided format. Does NOT validate that the result is a real calendar date — use `parseDate` when validation is required.
|
|
13
|
+
* @param {string} dateStr - Date string to parse.
|
|
14
|
+
* @param {string} format - Date format to parse.
|
|
15
|
+
* @returns {{ month?: string, day?: string, year?: string }|undefined}
|
|
16
|
+
*/
|
|
17
|
+
function getDateParts$1(dateStr, format) {
|
|
18
|
+
if (!dateStr) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
12
21
|
|
|
13
|
-
|
|
22
|
+
const formatSeparatorMatch = format.match(/[/.-]/);
|
|
23
|
+
let valueParts;
|
|
24
|
+
let formatParts;
|
|
14
25
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
26
|
+
if (formatSeparatorMatch) {
|
|
27
|
+
const separator = formatSeparatorMatch[0];
|
|
28
|
+
valueParts = dateStr.split(separator);
|
|
29
|
+
formatParts = format.split(separator);
|
|
30
|
+
} else {
|
|
31
|
+
if (dateStr.match(/[/.-]/)) {
|
|
32
|
+
throw new Error(
|
|
33
|
+
"AuroDatepickerUtilities | parseDate: Date string has no separators",
|
|
34
|
+
);
|
|
35
|
+
}
|
|
22
36
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
37
|
+
if (dateStr.length !== format.length) {
|
|
38
|
+
throw new Error(
|
|
39
|
+
"AuroDatepickerUtilities | parseDate: Date string and format length do not match",
|
|
40
|
+
);
|
|
41
|
+
}
|
|
27
42
|
|
|
28
|
-
|
|
29
|
-
|
|
43
|
+
valueParts = [dateStr];
|
|
44
|
+
formatParts = [format];
|
|
45
|
+
}
|
|
30
46
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
47
|
+
if (valueParts.length !== formatParts.length) {
|
|
48
|
+
throw new Error(
|
|
49
|
+
`AuroDatepickerUtilities | parseDate: Date string and format do not match : ${dateStr} vs ${format}`,
|
|
50
|
+
);
|
|
51
|
+
}
|
|
34
52
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
throw new Error('AuroDatepickerUtilities | parseDate: Date string and format length do not match');
|
|
38
|
-
}
|
|
53
|
+
const result = formatParts.reduce((acc, part, index) => {
|
|
54
|
+
const value = valueParts[index];
|
|
39
55
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
56
|
+
if (/m/iu.test(part) && part.length === value.length) {
|
|
57
|
+
acc.month = value;
|
|
58
|
+
} else if (/d/iu.test(part) && part.length === value.length) {
|
|
59
|
+
acc.day = value;
|
|
60
|
+
} else if (/y/iu.test(part) && part.length === value.length) {
|
|
61
|
+
acc.year = value;
|
|
62
|
+
}
|
|
43
63
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
} else if ((/d/iu).test(part)) {
|
|
47
|
-
acc.day = value;
|
|
48
|
-
} else if ((/y/iu).test(part)) {
|
|
49
|
-
acc.year = value;
|
|
50
|
-
}
|
|
64
|
+
return acc;
|
|
65
|
+
}, {});
|
|
51
66
|
|
|
52
|
-
|
|
53
|
-
|
|
67
|
+
if (!result.month && !result.day && !result.year) {
|
|
68
|
+
throw new Error(
|
|
69
|
+
"AuroDatepickerUtilities | parseDate: Unable to parse date string",
|
|
70
|
+
);
|
|
71
|
+
}
|
|
54
72
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
return result;
|
|
58
|
-
}
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
59
75
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
76
|
+
function isCalendarDate$1(year, month, day) {
|
|
77
|
+
let yearNumber = Number(year);
|
|
78
|
+
const monthNumber = Number(month);
|
|
79
|
+
const dayNumber = Number(day);
|
|
63
80
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
year: "numeric",
|
|
72
|
-
month: "2-digit",
|
|
73
|
-
day: "2-digit",
|
|
74
|
-
});
|
|
81
|
+
if (
|
|
82
|
+
!Number.isInteger(yearNumber) ||
|
|
83
|
+
!Number.isInteger(monthNumber) ||
|
|
84
|
+
!Number.isInteger(dayNumber)
|
|
85
|
+
) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
75
88
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
this.toNorthAmericanFormat = (dateStr, format) => {
|
|
89
|
+
// Handle 2-digit years by converting them to 4-digit years based on a cutoff. This allows for parsing of 2-digit year formats while still validating the resulting date.
|
|
90
|
+
if (yearNumber < 100 && yearNumber >= 50) {
|
|
91
|
+
yearNumber += 1900;
|
|
92
|
+
} else if (yearNumber < 50) {
|
|
93
|
+
yearNumber += 2000;
|
|
94
|
+
}
|
|
83
95
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
96
|
+
const stringified = `${String(yearNumber).padStart(4, "0")}-${String(monthNumber).padStart(2, "0")}-${String(dayNumber).padStart(2, "0")}`;
|
|
97
|
+
const date = new Date(stringified.replace(/[.-]/g, "/"));
|
|
87
98
|
|
|
88
|
-
|
|
99
|
+
return (
|
|
100
|
+
!Number.isNaN(date.getTime()) && toISOFormatString$1(date) === stringified
|
|
101
|
+
);
|
|
102
|
+
}
|
|
89
103
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
104
|
+
/**
|
|
105
|
+
* @description Parses a date string into its components and validates that the result is a real calendar date. Use `getDateParts` instead when raw splitting without validation is needed (e.g. for in-progress input).
|
|
106
|
+
*
|
|
107
|
+
* Partial formats are supported: components absent from `format` default to `year → "0"`,
|
|
108
|
+
* `month → "01"`, `day → "01"` for calendar validation only. The returned object contains
|
|
109
|
+
* only the fields actually present in the format string — missing fields are never injected.
|
|
110
|
+
* @param {string} dateStr - Date string to parse.
|
|
111
|
+
* @param {string} format - Date format to parse.
|
|
112
|
+
* @returns {{ month?: string, day?: string, year?: string }|undefined}
|
|
113
|
+
* @throws {Error} Throws when the parsed result does not represent a valid calendar date.
|
|
114
|
+
*/
|
|
115
|
+
function parseDate$1(dateStr, format = "mm/dd/yyyy") {
|
|
116
|
+
if (!dateStr || !format) {
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
const result = getDateParts$1(dateStr.trim(), format);
|
|
93
120
|
|
|
94
|
-
|
|
121
|
+
if (!result) {
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
95
124
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
125
|
+
const lowerFormat = format.toLowerCase();
|
|
126
|
+
const year = lowerFormat.includes("yy") ? result.year : "0";
|
|
127
|
+
const month = lowerFormat.includes("mm") ? result.month : "01";
|
|
128
|
+
const day = lowerFormat.includes("dd") ? result.day : "01";
|
|
100
129
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
130
|
+
if (isCalendarDate$1(year, month, day)) {
|
|
131
|
+
return result;
|
|
132
|
+
}
|
|
104
133
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
134
|
+
throw new Error(
|
|
135
|
+
`AuroDatepickerUtilities | parseDate: Date string is not a valid date ${JSON.stringify(result)} with format ${format}`,
|
|
136
|
+
);
|
|
137
|
+
}
|
|
108
138
|
|
|
109
|
-
|
|
110
|
-
|
|
139
|
+
/**
|
|
140
|
+
* Convert a date object to string format.
|
|
141
|
+
* @param {Object} date - Date to convert to string.
|
|
142
|
+
* @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
|
|
143
|
+
* @returns {String} Returns the date as a string.
|
|
144
|
+
*/
|
|
145
|
+
function getDateAsString$1(date, locale = undefined) {
|
|
146
|
+
return date.toLocaleDateString(locale, {
|
|
147
|
+
year: "numeric",
|
|
148
|
+
month: "2-digit",
|
|
149
|
+
day: "2-digit",
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Converts a date string to a North American date format.
|
|
155
|
+
* @param {String} dateStr - Date to validate.
|
|
156
|
+
* @param {String} format - Date format to validate against.
|
|
157
|
+
* @returns {String}
|
|
158
|
+
*/
|
|
159
|
+
function toNorthAmericanFormat$3(dateStr, format) {
|
|
160
|
+
if (format === "mm/dd/yyyy") {
|
|
161
|
+
return dateStr;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
const parsedDate = parseDate$1(dateStr, format);
|
|
165
|
+
|
|
166
|
+
if (!parsedDate) {
|
|
167
|
+
throw new Error(
|
|
168
|
+
"AuroDatepickerUtilities | toNorthAmericanFormat: Unable to parse date string",
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
const { month, day, year } = parsedDate;
|
|
173
|
+
|
|
174
|
+
return [month, day, year].filter(Boolean).join("/");
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Validates that a date string matches the provided format and represents a real calendar date.
|
|
179
|
+
*
|
|
180
|
+
* @param {string} dateStr - Date string to validate.
|
|
181
|
+
* @param {string} [format="yyyy-mm-dd"] - Format of the date string.
|
|
182
|
+
* @returns {boolean} True when the date string is valid for the provided format, otherwise false.
|
|
183
|
+
*/
|
|
184
|
+
function isValidDate$1(dateStr, format = "yyyy-mm-dd") {
|
|
185
|
+
try {
|
|
186
|
+
if (typeof dateStr !== "string" || !dateStr || format?.length < 8) {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (parseDate$1(dateStr, format)) {
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
} catch (error) {
|
|
194
|
+
return false;
|
|
195
|
+
}
|
|
196
|
+
return false;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Converts a JavaScript Date instance to a simple ISO-like date string. This returns only the calendar date portion without any time or timezone information.
|
|
201
|
+
*
|
|
202
|
+
* @param {Date} date - Date instance to convert to an ISO-like string.
|
|
203
|
+
* @returns {string} A string in the format "yyyy-mm-dd" representing the provided date.
|
|
204
|
+
* @throws {Error} Throws an error when the input is not a valid Date instance.
|
|
205
|
+
*/
|
|
206
|
+
function toISOFormatString$1(date) {
|
|
207
|
+
if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
|
|
208
|
+
throw new Error(
|
|
209
|
+
"AuroDatepickerUtilities | toISOFormatString: Input must be a valid Date instance",
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
return `${String(date.getFullYear()).padStart(4, "0")}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Converts a date string into a JavaScript Date instance. This method supports ISO formatted strings and other formats that can be parsed by the formatter.
|
|
217
|
+
*
|
|
218
|
+
* @param {String} dateStr - Date string to convert into a Date object.
|
|
219
|
+
* @param {String} format - Date format used to parse the string when it is not in ISO format.
|
|
220
|
+
* @returns {Date|null} Returns a Date instance for valid input or null for non-string input.
|
|
221
|
+
* @throws {Error} Throws when parsing fails for non-ISO string input.
|
|
222
|
+
*/
|
|
223
|
+
function stringToDateInstance$1(dateStr, format = "yyyy-mm-dd") {
|
|
224
|
+
if (typeof dateStr !== "string") {
|
|
225
|
+
return null;
|
|
111
226
|
}
|
|
227
|
+
|
|
228
|
+
const { month, day, year } = parseDate$1(dateStr, format);
|
|
229
|
+
return new Date(`${year}/${month}/${day}`);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
const dateFormatter$1 = {
|
|
233
|
+
parseDate: parseDate$1,
|
|
234
|
+
getDateParts: getDateParts$1,
|
|
235
|
+
getDateAsString: getDateAsString$1,
|
|
236
|
+
toNorthAmericanFormat: toNorthAmericanFormat$3,
|
|
237
|
+
isValidDate: isValidDate$1,
|
|
238
|
+
toISOFormatString: toISOFormatString$1,
|
|
239
|
+
stringToDateInstance: stringToDateInstance$1,
|
|
112
240
|
};
|
|
113
|
-
const dateFormatter$1 = new DateFormatter$1();
|
|
114
241
|
|
|
115
242
|
// filepath: dateConstraints.mjs
|
|
116
243
|
const DATE_UTIL_CONSTRAINTS$1 = {
|
|
@@ -182,12 +309,11 @@ let AuroDateUtilitiesBase$1 = class AuroDateUtilitiesBase {
|
|
|
182
309
|
/* eslint-disable no-magic-numbers */
|
|
183
310
|
|
|
184
311
|
let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$1 {
|
|
185
|
-
|
|
186
312
|
/**
|
|
187
313
|
* Returns the current century.
|
|
188
314
|
* @returns {String} The current century.
|
|
189
315
|
*/
|
|
190
|
-
getCentury
|
|
316
|
+
getCentury() {
|
|
191
317
|
return String(new Date().getFullYear()).slice(0, 2);
|
|
192
318
|
}
|
|
193
319
|
|
|
@@ -196,14 +322,12 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
196
322
|
* @param {String} year - The year to convert to four digits.
|
|
197
323
|
* @returns {String} The four digit year.
|
|
198
324
|
*/
|
|
199
|
-
getFourDigitYear
|
|
200
|
-
|
|
325
|
+
getFourDigitYear(year) {
|
|
201
326
|
const strYear = String(year).trim();
|
|
202
327
|
return strYear.length <= 2 ? this.getCentury() + strYear : strYear;
|
|
203
328
|
}
|
|
204
329
|
|
|
205
330
|
constructor() {
|
|
206
|
-
|
|
207
331
|
super();
|
|
208
332
|
|
|
209
333
|
/**
|
|
@@ -212,7 +336,8 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
212
336
|
* @param {Object} date2 - Second date to compare.
|
|
213
337
|
* @returns {Boolean} Returns true if the dates match.
|
|
214
338
|
*/
|
|
215
|
-
this.datesMatch = (date1, date2) =>
|
|
339
|
+
this.datesMatch = (date1, date2) =>
|
|
340
|
+
new Date(date1).getTime() === new Date(date2).getTime();
|
|
216
341
|
|
|
217
342
|
/**
|
|
218
343
|
* Returns true if value passed in is a valid date.
|
|
@@ -221,53 +346,41 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
221
346
|
* @returns {Boolean}
|
|
222
347
|
*/
|
|
223
348
|
this.validDateStr = (date, format) => {
|
|
224
|
-
|
|
225
349
|
// The length we expect the date string to be
|
|
226
|
-
const dateStrLength = format
|
|
350
|
+
const dateStrLength = format?.length || 0;
|
|
227
351
|
|
|
228
352
|
// Guard Clause: Date and format are defined
|
|
229
353
|
if (typeof date === "undefined" || typeof format === "undefined") {
|
|
230
|
-
throw new Error(
|
|
354
|
+
throw new Error(
|
|
355
|
+
"AuroDatepickerUtilities | validateDateStr: Date and format are required",
|
|
356
|
+
);
|
|
231
357
|
}
|
|
232
358
|
|
|
233
359
|
// Guard Clause: Date should be of type string
|
|
234
360
|
if (typeof date !== "string") {
|
|
235
|
-
throw new Error(
|
|
361
|
+
throw new Error(
|
|
362
|
+
"AuroDatepickerUtilities | validateDateStr: Date must be a string",
|
|
363
|
+
);
|
|
236
364
|
}
|
|
237
365
|
|
|
238
366
|
// Guard Clause: Format should be of type string
|
|
239
367
|
if (typeof format !== "string") {
|
|
240
|
-
throw new Error(
|
|
368
|
+
throw new Error(
|
|
369
|
+
"AuroDatepickerUtilities | validateDateStr: Format must be a string",
|
|
370
|
+
);
|
|
241
371
|
}
|
|
242
372
|
|
|
243
373
|
// Guard Clause: Length is what we expect it to be
|
|
244
374
|
if (date.length !== dateStrLength) {
|
|
245
375
|
return false;
|
|
246
376
|
}
|
|
247
|
-
// Get a formatted date string and parse it
|
|
248
|
-
const dateParts = dateFormatter$1.parseDate(date, format);
|
|
249
|
-
|
|
250
|
-
// Guard Clause: Date parse succeeded
|
|
251
|
-
if (!dateParts) {
|
|
252
|
-
return false;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
// Create the expected date string based on the date parts
|
|
256
|
-
const expectedDateStr = `${dateParts.month}/${dateParts.day || "01"}/${this.getFourDigitYear(dateParts.year)}`;
|
|
257
|
-
|
|
258
|
-
// Generate a date object that we will extract a string date from to compare to the passed in date string
|
|
259
|
-
const dateObj = new Date(this.getFourDigitYear(dateParts.year), dateParts.month - 1, dateParts.day || 1);
|
|
260
|
-
|
|
261
|
-
// Get the date string of the date object we created from the string date
|
|
262
|
-
const actualDateStr = dateFormatter$1.getDateAsString(dateObj, "en-US");
|
|
263
377
|
|
|
264
|
-
//
|
|
265
|
-
|
|
378
|
+
// Get a formatted date string and parse and validate it
|
|
379
|
+
try {
|
|
380
|
+
return Boolean(dateFormatter$1.parseDate(date, format));
|
|
381
|
+
} catch (error) {
|
|
266
382
|
return false;
|
|
267
383
|
}
|
|
268
|
-
|
|
269
|
-
// If we passed all other checks, we can assume the date is valid
|
|
270
|
-
return true;
|
|
271
384
|
};
|
|
272
385
|
|
|
273
386
|
/**
|
|
@@ -277,10 +390,11 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
277
390
|
* @returns {boolean}
|
|
278
391
|
*/
|
|
279
392
|
this.dateAndFormatMatch = (value, format) => {
|
|
280
|
-
|
|
281
393
|
// Ensure we have both values we need to do the comparison
|
|
282
394
|
if (!value || !format) {
|
|
283
|
-
throw new Error(
|
|
395
|
+
throw new Error(
|
|
396
|
+
"AuroFormValidation | dateFormatMatch: value and format are required",
|
|
397
|
+
);
|
|
284
398
|
}
|
|
285
399
|
|
|
286
400
|
// If the lengths are different, they cannot match
|
|
@@ -289,11 +403,10 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
289
403
|
}
|
|
290
404
|
|
|
291
405
|
// Get the parts of the date
|
|
292
|
-
const dateParts = dateFormatter$1.
|
|
406
|
+
const dateParts = dateFormatter$1.getDateParts(value, format);
|
|
293
407
|
|
|
294
408
|
// Validator for day
|
|
295
409
|
const dayValueIsValid = (day) => {
|
|
296
|
-
|
|
297
410
|
// Guard clause: if there is no day in the dateParts, we can ignore this check.
|
|
298
411
|
if (!dateParts.day) {
|
|
299
412
|
return true;
|
|
@@ -309,7 +422,9 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
309
422
|
|
|
310
423
|
// Guard clause: ensure day is a valid integer
|
|
311
424
|
if (Number.isNaN(numDay)) {
|
|
312
|
-
throw new Error(
|
|
425
|
+
throw new Error(
|
|
426
|
+
"AuroDatepickerUtilities | dayValueIsValid: Unable to parse day value integer",
|
|
427
|
+
);
|
|
313
428
|
}
|
|
314
429
|
|
|
315
430
|
// Guard clause: ensure day is within the valid range
|
|
@@ -323,6 +438,10 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
323
438
|
|
|
324
439
|
// Validator for month
|
|
325
440
|
const monthValueIsValid = (month) => {
|
|
441
|
+
// Guard clause: if there is no month in the dateParts, we can ignore this check.
|
|
442
|
+
if (!dateParts.month) {
|
|
443
|
+
return true;
|
|
444
|
+
}
|
|
326
445
|
|
|
327
446
|
// Guard clause: ensure month exists.
|
|
328
447
|
if (!month) {
|
|
@@ -334,7 +453,9 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
334
453
|
|
|
335
454
|
// Guard clause: ensure month is a valid integer
|
|
336
455
|
if (Number.isNaN(numMonth)) {
|
|
337
|
-
throw new Error(
|
|
456
|
+
throw new Error(
|
|
457
|
+
"AuroDatepickerUtilities | monthValueIsValid: Unable to parse month value integer",
|
|
458
|
+
);
|
|
338
459
|
}
|
|
339
460
|
|
|
340
461
|
// Guard clause: ensure month is within the valid range
|
|
@@ -348,6 +469,10 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
348
469
|
|
|
349
470
|
// Validator for year
|
|
350
471
|
const yearIsValid = (_year) => {
|
|
472
|
+
// Guard clause: if there is no year in the dateParts, we can ignore this check.
|
|
473
|
+
if (!dateParts.year) {
|
|
474
|
+
return true;
|
|
475
|
+
}
|
|
351
476
|
|
|
352
477
|
// Guard clause: ensure year exists.
|
|
353
478
|
if (!_year) {
|
|
@@ -362,7 +487,9 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
362
487
|
|
|
363
488
|
// Guard clause: ensure year is a valid integer
|
|
364
489
|
if (Number.isNaN(numYear)) {
|
|
365
|
-
throw new Error(
|
|
490
|
+
throw new Error(
|
|
491
|
+
"AuroDatepickerUtilities | yearValueIsValid: Unable to parse year value integer",
|
|
492
|
+
);
|
|
366
493
|
}
|
|
367
494
|
|
|
368
495
|
// Guard clause: ensure year is within the valid range
|
|
@@ -378,7 +505,7 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
378
505
|
const checks = [
|
|
379
506
|
monthValueIsValid(dateParts.month),
|
|
380
507
|
dayValueIsValid(dateParts.day),
|
|
381
|
-
yearIsValid(dateParts.year)
|
|
508
|
+
yearIsValid(dateParts.year),
|
|
382
509
|
];
|
|
383
510
|
|
|
384
511
|
// If any of the checks failed, the date format does not match and the result is invalid
|
|
@@ -412,10 +539,7 @@ const {
|
|
|
412
539
|
} = dateUtilities$1;
|
|
413
540
|
|
|
414
541
|
const {
|
|
415
|
-
toNorthAmericanFormat: toNorthAmericanFormat$1
|
|
416
|
-
parseDate: parseDate$1,
|
|
417
|
-
getDateAsString: getDateAsString$1
|
|
418
|
-
} = dateFormatter$1;
|
|
542
|
+
toNorthAmericanFormat: toNorthAmericanFormat$2} = dateFormatter$1;
|
|
419
543
|
|
|
420
544
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
421
545
|
// See LICENSE in the project root for license information.
|
|
@@ -735,13 +859,13 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
735
859
|
}
|
|
736
860
|
|
|
737
861
|
// Perform the rest of the validation
|
|
738
|
-
const formattedValue = toNorthAmericanFormat$
|
|
862
|
+
const formattedValue = toNorthAmericanFormat$2(elem.value, elem.format);
|
|
739
863
|
const valueDate = new Date(formattedValue);
|
|
740
864
|
|
|
741
865
|
// // Validate max date
|
|
742
866
|
if (elem.max?.length === elem.lengthForType) {
|
|
743
867
|
|
|
744
|
-
const maxDate = new Date(toNorthAmericanFormat$
|
|
868
|
+
const maxDate = new Date(toNorthAmericanFormat$2(elem.max, elem.format));
|
|
745
869
|
|
|
746
870
|
if (valueDate > maxDate) {
|
|
747
871
|
elem.validity = 'rangeOverflow';
|
|
@@ -752,7 +876,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
752
876
|
|
|
753
877
|
// Validate min date
|
|
754
878
|
if (elem.min?.length === elem.lengthForType) {
|
|
755
|
-
const minDate = new Date(toNorthAmericanFormat$
|
|
879
|
+
const minDate = new Date(toNorthAmericanFormat$2(elem.min, elem.format));
|
|
756
880
|
|
|
757
881
|
if (valueDate < minDate) {
|
|
758
882
|
elem.validity = 'rangeUnderflow';
|
|
@@ -1289,13 +1413,10 @@ class UtilitiesCalendarRender {
|
|
|
1289
1413
|
// 2. Start by assuming we can render the max number of months.
|
|
1290
1414
|
let calendarCount = maxRenderableMonths;
|
|
1291
1415
|
|
|
1292
|
-
// 3. If
|
|
1416
|
+
// 3. If maximumRenderableMonths() returns 0 (e.g. an invalid/empty defined range),
|
|
1417
|
+
// fall back to the min/max date range so something is rendered.
|
|
1293
1418
|
if (!calendarCount && elem.minDate && elem.maxDate) {
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
if (monthsInRange < maxRenderableMonths) {
|
|
1297
|
-
calendarCount = monthsInRange;
|
|
1298
|
-
}
|
|
1419
|
+
calendarCount = this.util.monthDiff(new Date(elem.minDate), new Date(elem.maxDate));
|
|
1299
1420
|
}
|
|
1300
1421
|
|
|
1301
1422
|
if (elem.numCalendars !== calendarCount) {
|
|
@@ -1343,7 +1464,6 @@ class UtilitiesCalendarRender {
|
|
|
1343
1464
|
.max="${elem.max}"
|
|
1344
1465
|
?noRange="${elem.noRange}"
|
|
1345
1466
|
.monthFirst="${elem.monthFirst}"
|
|
1346
|
-
.hoveredDate="${elem.hoveredDate}"
|
|
1347
1467
|
.dateTo="${elem.dateTo}"
|
|
1348
1468
|
.dateFrom="${elem.dateFrom}"
|
|
1349
1469
|
.locale="${elem.locale}"
|
|
@@ -1375,43 +1495,6 @@ var snowflakeStyle = css`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
|
|
|
1375
1495
|
|
|
1376
1496
|
var snowflakeColors = css`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
|
|
1377
1497
|
|
|
1378
|
-
var styleCss$7 = css`.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}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;--desktop-footer-height: 80px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendarNavButtons{position:absolute;z-index:1;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}.calendarWrapper.hasFooter{padding-bottom:var(--desktop-footer-height)}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}.sr-only{position:absolute;overflow:hidden;clip:rect(0, 0, 0, 0);width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap}`;
|
|
1379
|
-
|
|
1380
|
-
var colorCss$7 = css`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
|
|
1381
|
-
|
|
1382
|
-
var styleCss$6 = css`:focus:not(:focus-visible){outline:3px solid transparent}.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}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem)}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.th abbr{text-decoration:none}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height:384px}}.td{flex:1;margin:0;padding:0}.tr{display:flex;flex-direction:row;width:100%}`;
|
|
1383
|
-
|
|
1384
|
-
var colorCss$6 = css`:focus:not(:focus-visible){outline:3px solid transparent}:host{background-color:var(--ds-auro-calendar-month-container-color)}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{background-color:var(--ds-auro-calendar-month-divider-color)}}.header{color:var(--ds-auro-calendar-month-header-color)}`;
|
|
1385
|
-
|
|
1386
|
-
/******************************************************************************
|
|
1387
|
-
Copyright (c) Microsoft Corporation.
|
|
1388
|
-
|
|
1389
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
1390
|
-
purpose with or without fee is hereby granted.
|
|
1391
|
-
|
|
1392
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
1393
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
1394
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
1395
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
1396
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
1397
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
1398
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
1399
|
-
***************************************************************************** */
|
|
1400
|
-
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
function __decorate(decorators, target, key, desc) {
|
|
1404
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1405
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1406
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1407
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1408
|
-
}
|
|
1409
|
-
|
|
1410
|
-
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
1411
|
-
var e = new Error(message);
|
|
1412
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
1413
|
-
};
|
|
1414
|
-
|
|
1415
1498
|
/**
|
|
1416
1499
|
* @module constants
|
|
1417
1500
|
* @summary Useful constants
|
|
@@ -7166,6 +7249,43 @@ function subYears(date, amount, options) {
|
|
|
7166
7249
|
return addYears(date, -1, options);
|
|
7167
7250
|
}
|
|
7168
7251
|
|
|
7252
|
+
var styleCss$7 = css`.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}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;--desktop-footer-height: 80px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendars:focus{outline:none}.calendarNavButtons{position:absolute;z-index:1;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}.calendarWrapper.hasFooter{padding-bottom:var(--desktop-footer-height)}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}.sr-only{position:absolute;overflow:hidden;clip:rect(0, 0, 0, 0);width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap}`;
|
|
7253
|
+
|
|
7254
|
+
var colorCss$7 = css`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
|
|
7255
|
+
|
|
7256
|
+
var styleCss$6 = css`:focus:not(:focus-visible){outline:3px solid transparent}.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}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem) var(--ds-size-200, 1rem) 0}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.th abbr{text-decoration:none}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height:336px}}.td{flex:1;margin:0;padding:0}.tr{display:flex;flex-direction:row;width:100%;border-radius:10px;overflow:hidden}.tr:not(:last-of-type){margin-bottom:var(--ds-size-100, 0.5rem)}`;
|
|
7257
|
+
|
|
7258
|
+
var colorCss$6 = css`:focus:not(:focus-visible){outline:3px solid transparent}:host{background-color:var(--ds-auro-calendar-month-container-color)}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{background-color:var(--ds-auro-calendar-month-divider-color)}}.header{color:var(--ds-auro-calendar-month-header-color)}`;
|
|
7259
|
+
|
|
7260
|
+
/******************************************************************************
|
|
7261
|
+
Copyright (c) Microsoft Corporation.
|
|
7262
|
+
|
|
7263
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
7264
|
+
purpose with or without fee is hereby granted.
|
|
7265
|
+
|
|
7266
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
7267
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
7268
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
7269
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
7270
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
7271
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
7272
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
7273
|
+
***************************************************************************** */
|
|
7274
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
7275
|
+
|
|
7276
|
+
|
|
7277
|
+
function __decorate(decorators, target, key, desc) {
|
|
7278
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
7279
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
7280
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
7281
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7282
|
+
}
|
|
7283
|
+
|
|
7284
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
7285
|
+
var e = new Error(message);
|
|
7286
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
7287
|
+
};
|
|
7288
|
+
|
|
7169
7289
|
class RangeDatepickerCell extends LitElement {
|
|
7170
7290
|
constructor() {
|
|
7171
7291
|
super(...arguments);
|
|
@@ -7888,9 +8008,9 @@ __decorate([property({ type: Array })], RangeDatepickerCalendar.prototype, "dayN
|
|
|
7888
8008
|
__decorate([property({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
7889
8009
|
AuroLibraryRuntimeUtils$5.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
7890
8010
|
|
|
7891
|
-
var styleCss$5 = css`.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:var(--ds-size-500, 2.5rem);height:calc(var(--ds-size-700, 3.5rem) - 2px);padding:0;border-width:1px;border-style:solid;border-radius:var(--ds-size-300, 1.5rem);cursor:pointer;user-select:none}.day:focus-visible{outline:2px solid var(--ds-basic-color-border-default, #959595);outline-offset:2px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:default}.day.reference{box-shadow:inset 0 0 0 2px var(--ds-advanced-color-shared-background, #ffffff)}.day.inRange::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%)}@media screen and (min-width: 576px){.day.inRange::before{width:var(--ds-size-600, 3rem)}}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%);width:7.1428571429vw;transform:translate(0%, -50%)}@media screen and (min-width: 576px){.day.rangeDepartDate::before{width:calc(var(--ds-size-600, 3rem)/2)}}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%);width:7.1428571429vw;transform:translate(-100%, -50%)}@media screen and (min-width: 576px){.day.rangeReturnDate::before,.day.lastHoveredDate::before{width:calc(var(--ds-size-600, 3rem)/2)}}.dateSlot{display:flex;flex-direction:column}.srOnly{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;clip:rect(0, 0, 0, 0);white-space:nowrap}::slotted([slot^=date_]){position:absolute;top:80%;left:50%;width:100%;white-space:nowrap;transform:translate(-50%, -50%)}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;top:5px}:host([renderForDateSlot]) .currentDayMarker{position:relative;padding-bottom:5px;top:-8px}@media screen and (min-width: 576px){.day{width:var(--ds-size-600, 3rem);height:var(--ds-size-800, 4rem)}.day:hover{cursor:pointer}}`;
|
|
8011
|
+
var styleCss$5 = css`.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:""}.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}`;
|
|
7892
8012
|
|
|
7893
|
-
var colorCss$5 = css`: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:
|
|
8013
|
+
var colorCss$5 = css`: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}`;
|
|
7894
8014
|
|
|
7895
8015
|
class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,class extends t{});}closestElement(e,t=this,i=(t,s=t&&t.closest(e))=>t&&t!==document&&t!==window?s||i(t.getRootNode().host):null){return i(t)}handleComponentTagRename(e,t){const i=t.toLowerCase();e.tagName.toLowerCase()!==i&&e.setAttribute(i,true);}elementMatch(e,t){const i=t.toLowerCase();return e.tagName.toLowerCase()===i||e.hasAttribute(i)}getSlotText(e,t){const i=e.shadowRoot?.querySelector(`slot[name="${t}"]`);return (i?.assignedNodes({flatten:true})||[]).map(e=>e.textContent?.trim()).join(" ").trim()||null}}var r$1="top",o="bottom",n$1="right",a="left",l$3="auto",c$3=[r$1,o,n$1,a],p$6="start",d$3="end",f$6="viewport",h$3="popper",u$6=c$3.reduce(function(e,t){return e.concat([t+"-"+p$6,t+"-"+d$3])},[]),m$6=[].concat(c$3,[l$3]).reduce(function(e,t){return e.concat([t,t+"-"+p$6,t+"-"+d$3])},[]),g$6=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function v$3(e){return e?(e.nodeName||"").toLowerCase():null}function y$6(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function w$6(e){return e instanceof y$6(e).Element||e instanceof Element}function b$3(e){return e instanceof y$6(e).HTMLElement||e instanceof HTMLElement}function x$3(e){return "undefined"!=typeof ShadowRoot&&(e instanceof y$6(e).ShadowRoot||e instanceof ShadowRoot)}var S$3={name:"applyStyles",enabled:true,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var i=t.styles[e]||{},s=t.attributes[e]||{},r=t.elements[e];b$3(r)&&v$3(r)&&(Object.assign(r.style,i),Object.keys(s).forEach(function(e){var t=s[e];false===t?r.removeAttribute(e):r.setAttribute(e,true===t?"":t);}));});},effect:function(e){var t=e.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow),function(){Object.keys(t.elements).forEach(function(e){var s=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:i[e]).reduce(function(e,t){return e[t]="",e},{});b$3(s)&&v$3(s)&&(Object.assign(s.style,o),Object.keys(r).forEach(function(e){s.removeAttribute(e);}));});}},requires:["computeStyles"]};function _$4(e){return e.split("-")[0]}var A$3=Math.max,O=Math.min,k$6=Math.round;function T$3(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function z$6(){return !/^((?!chrome|android).)*safari/i.test(T$3())}function E(e,t,i){ void 0===t&&(t=false),void 0===i&&(i=false);var s=e.getBoundingClientRect(),r=1,o=1;t&&b$3(e)&&(r=e.offsetWidth>0&&k$6(s.width)/e.offsetWidth||1,o=e.offsetHeight>0&&k$6(s.height)/e.offsetHeight||1);var n=(w$6(e)?y$6(e):window).visualViewport,a=!z$6()&&i,l=(s.left+(a&&n?n.offsetLeft:0))/r,c=(s.top+(a&&n?n.offsetTop:0))/o,p=s.width/r,d=s.height/o;return {width:p,height:d,top:c,right:l+p,bottom:c+d,left:l,x:l,y:c}}function M$6(e){var t=E(e),i=e.offsetWidth,s=e.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-s)<=1&&(s=t.height),{x:e.offsetLeft,y:e.offsetTop,width:i,height:s}}function B$3(e,t){var i=t.getRootNode&&t.getRootNode();if(e.contains(t))return true;if(i&&x$3(i)){var s=t;do{if(s&&e.isSameNode(s))return true;s=s.parentNode||s.host;}while(s)}return false}function L(e){return y$6(e).getComputedStyle(e)}function R$3(e){return ["table","td","th"].indexOf(v$3(e))>=0}function H$3(e){return ((w$6(e)?e.ownerDocument:e.document)||window.document).documentElement}function C$3(e){return "html"===v$3(e)?e:e.assignedSlot||e.parentNode||(x$3(e)?e.host:null)||H$3(e)}function D(e){return b$3(e)&&"fixed"!==L(e).position?e.offsetParent:null}function N$3(e){for(var t=y$6(e),i=D(e);i&&R$3(i)&&"static"===L(i).position;)i=D(i);return i&&("html"===v$3(i)||"body"===v$3(i)&&"static"===L(i).position)?t:i||function(e){var t=/firefox/i.test(T$3());if(/Trident/i.test(T$3())&&b$3(e)&&"fixed"===L(e).position)return null;var i=C$3(e);for(x$3(i)&&(i=i.host);b$3(i)&&["html","body"].indexOf(v$3(i))<0;){var s=L(i);if("none"!==s.transform||"none"!==s.perspective||"paint"===s.contain||-1!==["transform","perspective"].indexOf(s.willChange)||t&&"filter"===s.willChange||t&&s.filter&&"none"!==s.filter)return i;i=i.parentNode;}return null}(e)||t}function P(e){return ["top","bottom"].indexOf(e)>=0?"x":"y"}function j(e,t,i){return A$3(e,O(t,i))}function I(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function q$3(e,t){return t.reduce(function(t,i){return t[i]=e,t},{})}var F={name:"arrow",enabled:true,phase:"main",fn:function(e){var t,i=e.state,s=e.name,l=e.options,p=i.elements.arrow,d=i.modifiersData.popperOffsets,f=_$4(i.placement),h=P(f),u=[a,n$1].indexOf(f)>=0?"height":"width";if(p&&d){var m=function(e,t){return I("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:q$3(e,c$3))}(l.padding,i),g=M$6(p),v="y"===h?r$1:a,y="y"===h?o:n$1,w=i.rects.reference[u]+i.rects.reference[h]-d[h]-i.rects.popper[u],b=d[h]-i.rects.reference[h],x=N$3(p),S=x?"y"===h?x.clientHeight||0:x.clientWidth||0:0,A=w/2-b/2,O=m[v],k=S-g[u]-m[y],T=S/2-g[u]/2+A,z=j(O,T,k),E=h;i.modifiersData[s]=((t={})[E]=z,t.centerOffset=z-T,t);}},effect:function(e){var t=e.state,i=e.options.element,s=void 0===i?"[data-popper-arrow]":i;null!=s&&("string"!=typeof s||(s=t.elements.popper.querySelector(s)))&&B$3(t.elements.popper,s)&&(t.elements.arrow=s);},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function U$3(e){return e.split("-")[1]}var V={top:"auto",right:"auto",bottom:"auto",left:"auto"};function W(e){var t,i=e.popper,s=e.popperRect,l=e.placement,c=e.variation,p=e.offsets,f=e.position,h=e.gpuAcceleration,u=e.adaptive,m=e.roundOffsets,g=e.isFixed,v=p.x,w=void 0===v?0:v,b=p.y,x=void 0===b?0:b,S="function"==typeof m?m({x:w,y:x}):{x:w,y:x};w=S.x,x=S.y;var _=p.hasOwnProperty("x"),A=p.hasOwnProperty("y"),O=a,T=r$1,z=window;if(u){var E=N$3(i),M="clientHeight",B="clientWidth";if(E===y$6(i)&&"static"!==L(E=H$3(i)).position&&"absolute"===f&&(M="scrollHeight",B="scrollWidth"),l===r$1||(l===a||l===n$1)&&c===d$3)T=o,x-=(g&&E===z&&z.visualViewport?z.visualViewport.height:E[M])-s.height,x*=h?1:-1;if(l===a||(l===r$1||l===o)&&c===d$3)O=n$1,w-=(g&&E===z&&z.visualViewport?z.visualViewport.width:E[B])-s.width,w*=h?1:-1;}var R,C=Object.assign({position:f},u&&V),D=true===m?function(e,t){var i=e.x,s=e.y,r=t.devicePixelRatio||1;return {x:k$6(i*r)/r||0,y:k$6(s*r)/r||0}}({x:w,y:x},y$6(i)):{x:w,y:x};return w=D.x,x=D.y,h?Object.assign({},C,((R={})[T]=A?"0":"",R[O]=_?"0":"",R.transform=(z.devicePixelRatio||1)<=1?"translate("+w+"px, "+x+"px)":"translate3d("+w+"px, "+x+"px, 0)",R)):Object.assign({},C,((t={})[T]=A?x+"px":"",t[O]=_?w+"px":"",t.transform="",t))}var X={passive:true};var $={left:"right",right:"left",bottom:"top",top:"bottom"};function G(e){return e.replace(/left|right|bottom|top/g,function(e){return $[e]})}var K={start:"end",end:"start"};function Y(e){return e.replace(/start|end/g,function(e){return K[e]})}function J(e){var t=y$6(e);return {scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Q(e){return E(H$3(e)).left+J(e).scrollLeft}function Z(e){var t=L(e),i=t.overflow,s=t.overflowX,r=t.overflowY;return /auto|scroll|overlay|hidden/.test(i+r+s)}function ee(e){return ["html","body","#document"].indexOf(v$3(e))>=0?e.ownerDocument.body:b$3(e)&&Z(e)?e:ee(C$3(e))}function te(e,t){var i;void 0===t&&(t=[]);var s=ee(e),r=s===(null==(i=e.ownerDocument)?void 0:i.body),o=y$6(s),n=r?[o].concat(o.visualViewport||[],Z(s)?s:[]):s,a=t.concat(n);return r?a:a.concat(te(C$3(n)))}function ie(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function se(e,t,i){return t===f$6?ie(function(e,t){var i=y$6(e),s=H$3(e),r=i.visualViewport,o=s.clientWidth,n=s.clientHeight,a=0,l=0;if(r){o=r.width,n=r.height;var c=z$6();(c||!c&&"fixed"===t)&&(a=r.offsetLeft,l=r.offsetTop);}return {width:o,height:n,x:a+Q(e),y:l}}(e,i)):w$6(t)?function(e,t){var i=E(e,false,"fixed"===t);return i.top=i.top+e.clientTop,i.left=i.left+e.clientLeft,i.bottom=i.top+e.clientHeight,i.right=i.left+e.clientWidth,i.width=e.clientWidth,i.height=e.clientHeight,i.x=i.left,i.y=i.top,i}(t,i):ie(function(e){var t,i=H$3(e),s=J(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=A$3(i.scrollWidth,i.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),n=A$3(i.scrollHeight,i.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-s.scrollLeft+Q(e),l=-s.scrollTop;return "rtl"===L(r||i).direction&&(a+=A$3(i.clientWidth,r?r.clientWidth:0)-o),{width:o,height:n,x:a,y:l}}(H$3(e)))}function re(e,t,i,s){var r="clippingParents"===t?function(e){var t=te(C$3(e)),i=["absolute","fixed"].indexOf(L(e).position)>=0&&b$3(e)?N$3(e):e;return w$6(i)?t.filter(function(e){return w$6(e)&&B$3(e,i)&&"body"!==v$3(e)}):[]}(e):[].concat(t),o=[].concat(r,[i]),n=o[0],a=o.reduce(function(t,i){var r=se(e,i,s);return t.top=A$3(r.top,t.top),t.right=O(r.right,t.right),t.bottom=O(r.bottom,t.bottom),t.left=A$3(r.left,t.left),t},se(e,n,s));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function oe(e){var t,i=e.reference,s=e.element,l=e.placement,c=l?_$4(l):null,f=l?U$3(l):null,h=i.x+i.width/2-s.width/2,u=i.y+i.height/2-s.height/2;switch(c){case r$1:t={x:h,y:i.y-s.height};break;case o:t={x:h,y:i.y+i.height};break;case n$1:t={x:i.x+i.width,y:u};break;case a:t={x:i.x-s.width,y:u};break;default:t={x:i.x,y:i.y};}var m=c?P(c):null;if(null!=m){var g="y"===m?"height":"width";switch(f){case p$6:t[m]=t[m]-(i[g]/2-s[g]/2);break;case d$3:t[m]=t[m]+(i[g]/2-s[g]/2);}}return t}function ne(e,t){ void 0===t&&(t={});var i=t,s=i.placement,a=void 0===s?e.placement:s,l=i.strategy,p=void 0===l?e.strategy:l,d=i.boundary,u=void 0===d?"clippingParents":d,m=i.rootBoundary,g=void 0===m?f$6:m,v=i.elementContext,y=void 0===v?h$3:v,b=i.altBoundary,x=void 0!==b&&b,S=i.padding,_=void 0===S?0:S,A=I("number"!=typeof _?_:q$3(_,c$3)),O=y===h$3?"reference":h$3,k=e.rects.popper,T=e.elements[x?O:y],z=re(w$6(T)?T:T.contextElement||H$3(e.elements.popper),u,g,p),M=E(e.elements.reference),B=oe({reference:M,element:k,placement:a}),L=ie(Object.assign({},k,B)),R=y===h$3?L:M,C={top:z.top-R.top+A.top,bottom:R.bottom-z.bottom+A.bottom,left:z.left-R.left+A.left,right:R.right-z.right+A.right},D=e.modifiersData.offset;if(y===h$3&&D){var N=D[a];Object.keys(C).forEach(function(e){var t=[n$1,o].indexOf(e)>=0?1:-1,i=[r$1,o].indexOf(e)>=0?"y":"x";C[e]+=N[i]*t;});}return C}function ae(e,t){ void 0===t&&(t={});var i=t,s=i.placement,r=i.boundary,o=i.rootBoundary,n=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,p=void 0===l?m$6:l,d=U$3(s),f=d?a?u$6:u$6.filter(function(e){return U$3(e)===d}):c$3,h=f.filter(function(e){return p.indexOf(e)>=0});0===h.length&&(h=f);var g=h.reduce(function(t,i){return t[i]=ne(e,{placement:i,boundary:r,rootBoundary:o,padding:n})[_$4(i)],t},{});return Object.keys(g).sort(function(e,t){return g[e]-g[t]})}var le={name:"flip",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name;if(!t.modifiersData[s]._skip){for(var c=i.mainAxis,d=void 0===c||c,f=i.altAxis,h=void 0===f||f,u=i.fallbackPlacements,m=i.padding,g=i.boundary,v=i.rootBoundary,y=i.altBoundary,w=i.flipVariations,b=void 0===w||w,x=i.allowedAutoPlacements,S=t.options.placement,A=_$4(S),O=u||(A===S||!b?[G(S)]:function(e){if(_$4(e)===l$3)return [];var t=G(e);return [Y(e),t,Y(t)]}(S)),k=[S].concat(O).reduce(function(e,i){return e.concat(_$4(i)===l$3?ae(t,{placement:i,boundary:g,rootBoundary:v,padding:m,flipVariations:b,allowedAutoPlacements:x}):i)},[]),T=t.rects.reference,z=t.rects.popper,E=new Map,M=true,B=k[0],L=0;L<k.length;L++){var R=k[L],H=_$4(R),C=U$3(R)===p$6,D=[r$1,o].indexOf(H)>=0,N=D?"width":"height",P=ne(t,{placement:R,boundary:g,rootBoundary:v,altBoundary:y,padding:m}),j=D?C?n$1:a:C?o:r$1;T[N]>z[N]&&(j=G(j));var I=G(j),q=[];if(d&&q.push(P[H]<=0),h&&q.push(P[j]<=0,P[I]<=0),q.every(function(e){return e})){B=R,M=false;break}E.set(R,q);}if(M)for(var F=function(e){var t=k.find(function(t){var i=E.get(t);if(i)return i.slice(0,e).every(function(e){return e})});if(t)return B=t,"break"},V=b?3:1;V>0;V--){if("break"===F(V))break}t.placement!==B&&(t.modifiersData[s]._skip=true,t.placement=B,t.reset=true);}},requiresIfExists:["offset"],data:{_skip:false}};function ce(e,t,i){return void 0===i&&(i={x:0,y:0}),{top:e.top-t.height-i.y,right:e.right-t.width+i.x,bottom:e.bottom-t.height+i.y,left:e.left-t.width-i.x}}function pe(e){return [r$1,n$1,o,a].some(function(t){return e[t]>=0})}var de={name:"offset",enabled:true,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,i=e.options,s=e.name,o=i.offset,l=void 0===o?[0,0]:o,c=m$6.reduce(function(e,i){return e[i]=function(e,t,i){var s=_$4(e),o=[a,r$1].indexOf(s)>=0?-1:1,l="function"==typeof i?i(Object.assign({},t,{placement:e})):i,c=l[0],p=l[1];return c=c||0,p=(p||0)*o,[a,n$1].indexOf(s)>=0?{x:p,y:c}:{x:c,y:p}}(i,t.rects,l),e},{}),p=c[t.placement],d=p.x,f=p.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=d,t.modifiersData.popperOffsets.y+=f),t.modifiersData[s]=c;}};var fe={name:"preventOverflow",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name,l=i.mainAxis,c=void 0===l||l,d=i.altAxis,f=void 0!==d&&d,h=i.boundary,u=i.rootBoundary,m=i.altBoundary,g=i.padding,v=i.tether,y=void 0===v||v,w=i.tetherOffset,b=void 0===w?0:w,x=ne(t,{boundary:h,rootBoundary:u,padding:g,altBoundary:m}),S=_$4(t.placement),k=U$3(t.placement),T=!k,z=P(S),E="x"===z?"y":"x",B=t.modifiersData.popperOffsets,L=t.rects.reference,R=t.rects.popper,H="function"==typeof b?b(Object.assign({},t.rects,{placement:t.placement})):b,C="number"==typeof H?{mainAxis:H,altAxis:H}:Object.assign({mainAxis:0,altAxis:0},H),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(B){if(c){var q,F="y"===z?r$1:a,V="y"===z?o:n$1,W="y"===z?"height":"width",X=B[z],$=X+x[F],G=X-x[V],K=y?-R[W]/2:0,Y=k===p$6?L[W]:R[W],J=k===p$6?-R[W]:-L[W],Q=t.elements.arrow,Z=y&&Q?M$6(Q):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[F],ie=ee[V],se=j(0,L[W],Z[W]),re=T?L[W]/2-K-se-te-C.mainAxis:Y-se-te-C.mainAxis,oe=T?-L[W]/2+K+se+ie+C.mainAxis:J+se+ie+C.mainAxis,ae=t.elements.arrow&&N$3(t.elements.arrow),le=ae?"y"===z?ae.clientTop||0:ae.clientLeft||0:0,ce=null!=(q=null==D?void 0:D[z])?q:0,pe=X+oe-ce,de=j(y?O($,X+re-ce-le):$,X,y?A$3(G,pe):G);B[z]=de,I[z]=de-X;}if(f){var fe,he="x"===z?r$1:a,ue="x"===z?o:n$1,me=B[E],ge="y"===E?"height":"width",ve=me+x[he],ye=me-x[ue],we=-1!==[r$1,a].indexOf(S),be=null!=(fe=null==D?void 0:D[E])?fe:0,xe=we?ve:me-L[ge]-R[ge]-be+C.altAxis,Se=we?me+L[ge]+R[ge]-be-C.altAxis:ye,_e=y&&we?function(e,t,i){var s=j(e,t,i);return s>i?i:s}(xe,me,Se):j(y?xe:ve,me,y?Se:ye);B[E]=_e,I[E]=_e-me;}t.modifiersData[s]=I;}},requiresIfExists:["offset"]};function he(e,t,i){ void 0===i&&(i=false);var s,r,o=b$3(t),n=b$3(t)&&function(e){var t=e.getBoundingClientRect(),i=k$6(t.width)/e.offsetWidth||1,s=k$6(t.height)/e.offsetHeight||1;return 1!==i||1!==s}(t),a=H$3(t),l=E(e,n,i),c={scrollLeft:0,scrollTop:0},p={x:0,y:0};return (o||!o&&!i)&&(("body"!==v$3(t)||Z(a))&&(c=(s=t)!==y$6(s)&&b$3(s)?{scrollLeft:(r=s).scrollLeft,scrollTop:r.scrollTop}:J(s)),b$3(t)?((p=E(t,true)).x+=t.clientLeft,p.y+=t.clientTop):a&&(p.x=Q(a))),{x:l.left+c.scrollLeft-p.x,y:l.top+c.scrollTop-p.y,width:l.width,height:l.height}}function ue(e){var t=new Map,i=new Set,s=[];function r(e){i.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!i.has(e)){var s=t.get(e);s&&r(s);}}),s.push(e);}return e.forEach(function(e){t.set(e.name,e);}),e.forEach(function(e){i.has(e.name)||r(e);}),s}var me={placement:"bottom",modifiers:[],strategy:"absolute"};function ge(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return !t.some(function(e){return !(e&&"function"==typeof e.getBoundingClientRect)})}function ve(e){ void 0===e&&(e={});var t=e,i=t.defaultModifiers,s=void 0===i?[]:i,r=t.defaultOptions,o=void 0===r?me:r;return function(e,t,i){ void 0===i&&(i=o);var r,n,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},me,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},l=[],c=false,p={state:a,setOptions:function(i){var r="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,r),a.scrollParents={reference:w$6(e)?te(e):e.contextElement?te(e.contextElement):[],popper:te(t)};var n,c,f=function(e){var t=ue(e);return g$6.reduce(function(e,i){return e.concat(t.filter(function(e){return e.phase===i}))},[])}((n=[].concat(s,a.options.modifiers),c=n.reduce(function(e,t){var i=e[t.name];return e[t.name]=i?Object.assign({},i,t,{options:Object.assign({},i.options,t.options),data:Object.assign({},i.data,t.data)}):t,e},{}),Object.keys(c).map(function(e){return c[e]})));return a.orderedModifiers=f.filter(function(e){return e.enabled}),a.orderedModifiers.forEach(function(e){var t=e.name,i=e.options,s=void 0===i?{}:i,r=e.effect;if("function"==typeof r){var o=r({state:a,name:t,instance:p,options:s}),n=function(){};l.push(o||n);}}),p.update()},forceUpdate:function(){if(!c){var e=a.elements,t=e.reference,i=e.popper;if(ge(t,i)){a.rects={reference:he(t,N$3(i),"fixed"===a.options.strategy),popper:M$6(i)},a.reset=false,a.placement=a.options.placement,a.orderedModifiers.forEach(function(e){return a.modifiersData[e.name]=Object.assign({},e.data)});for(var s=0;s<a.orderedModifiers.length;s++)if(true!==a.reset){var r=a.orderedModifiers[s],o=r.fn,n=r.options,l=void 0===n?{}:n,d=r.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:p})||a);}else a.reset=false,s=-1;}}},update:(r=function(){return new Promise(function(e){p.forceUpdate(),e(a);})},function(){return n||(n=new Promise(function(e){Promise.resolve().then(function(){n=void 0,e(r());});})),n}),destroy:function(){d(),c=true;}};if(!ge(e,t))return p;function d(){l.forEach(function(e){return e()}),l=[];}return p.setOptions(i).then(function(e){!c&&i.onFirstUpdate&&i.onFirstUpdate(e);}),p}}var ye=ve({defaultModifiers:[{name:"eventListeners",enabled:true,phase:"write",fn:function(){},effect:function(e){var t=e.state,i=e.instance,s=e.options,r=s.scroll,o=void 0===r||r,n=s.resize,a=void 0===n||n,l=y$6(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach(function(e){e.addEventListener("scroll",i.update,X);}),a&&l.addEventListener("resize",i.update,X),function(){o&&c.forEach(function(e){e.removeEventListener("scroll",i.update,X);}),a&&l.removeEventListener("resize",i.update,X);}},data:{}},{name:"popperOffsets",enabled:true,phase:"read",fn:function(e){var t=e.state,i=e.name;t.modifiersData[i]=oe({reference:t.rects.reference,element:t.rects.popper,placement:t.placement});},data:{}},{name:"computeStyles",enabled:true,phase:"beforeWrite",fn:function(e){var t=e.state,i=e.options,s=i.gpuAcceleration,r=void 0===s||s,o=i.adaptive,n=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:_$4(t.placement),variation:U$3(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,W(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:n,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,W(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:false,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement});},data:{}},S$3,de,le,fe,F,{name:"hide",enabled:true,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,i=e.name,s=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,n=ne(t,{elementContext:"reference"}),a=ne(t,{altBoundary:true}),l=ce(n,s),c=ce(a,r,o),p=pe(l),d=pe(c);t.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":d});}}]});class we{constructor(e,t,i,s){this.anchor=e,this.popover=t,this.boundaryElement=this.setBoundary(s),this.options={placement:i,visibleClass:"data-show"},this.popover.classList.remove(this.options.visibleClass);}setBoundary(e){return "string"==typeof e?document.querySelector(e)||document.body:e||document.body}show(){this.popper&&this.popper.destroy(),this.popper=ye(this.anchor,this.popover,{tooltip:this.anchor,placement:this.options.placement,modifiers:[{name:"offset",options:{offset:[0,18]}},{name:"preventOverflow",options:{mainAxis:true,boundary:this.boundaryElement,rootBoundary:"document",padding:16}}]});}triggerUpdate(){this.popper.update();}hide(){this.popover.classList.remove(this.options.visibleClass);}}var be=css`::slotted(*):not([onDark]),::slotted(*):not([appearance=inverse]){color:var(--ds-auro-popover-text-color)}.popover{background-color:var(--ds-auro-popover-container-color);box-shadow:var(--ds-auro-popover-boxshadow-color)}.arrow:before{background-color:var(--ds-auro-popover-container-color);box-shadow:2px 2px 1px 0 var(--ds-auro-popover-boxshadow-color)}
|
|
7896
8016
|
`,xe=css`.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}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host(:not([data-show])) .popover,:host([disabled]) .popover,:host([addSpace]) :host(:not([data-show])) .popover{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;padding:0;border:0}.util_insetNone{padding:0}.util_insetXxxs{padding:.125rem}.util_insetXxxs--stretch{padding:.25rem .125rem}.util_insetXxxs--squish{padding:0 .125rem}.util_insetXxs{padding:.25rem}.util_insetXxs--stretch{padding:.375rem .25rem}.util_insetXxs--squish{padding:.125rem .25rem}.util_insetXs{padding:.5rem}.util_insetXs--stretch{padding:.75rem .5rem}.util_insetXs--squish{padding:.25rem .5rem}.util_insetSm{padding:.75rem}.util_insetSm--stretch{padding:1.125rem .75rem}.util_insetSm--squish{padding:.375rem .75rem}.util_insetMd{padding:1rem}.util_insetMd--stretch{padding:1.5rem 1rem}.util_insetMd--squish{padding:.5rem 1rem}.util_insetLg{padding:1.5rem}.util_insetLg--stretch{padding:2.25rem 1.5rem}.util_insetLg--squish{padding:.75rem 1.5rem}.util_insetXl{padding:2rem}.util_insetXl--stretch{padding:3rem 2rem}.util_insetXl--squish{padding:1rem 2rem}.util_insetXxl{padding:3rem}.util_insetXxl--stretch{padding:4.5rem 3rem}.util_insetXxl--squish{padding:1.5rem 3rem}.util_insetXxxl{padding:4rem}.util_insetXxxl--stretch{padding:6rem 4rem}.util_insetXxxl--squish{padding:2rem 4rem}::slotted(*){white-space:normal}::slotted(*:hover){cursor:pointer}[data-trigger-placement]::slotted(*:hover){position:relative}[data-trigger-placement]::slotted(*:hover):before{position:absolute;left:0;display:block;width:100%;height:calc(var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem));content:""}[data-trigger-placement^=top]::slotted(*:hover):before{top:calc(-1 * (var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem)))}[data-trigger-placement^=bottom]::slotted(*:hover):before{bottom:calc(-1 * (var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem)))}:host([data-show]) .popover{z-index:var(--ds-depth-tooltip, 400)}:host([removeSpace]) .popover{margin:calc(-1 * (var(--ds-size-50, .25rem) + 1px)) 0!important}:host([addSpace]) .popover{margin:var(--ds-size-200, 1rem) 0!important}:host([addSpace]) [data-trigger-placement]::slotted(*:hover):before{height:var(--ds-size-500, 2.5rem)}:host([addSpace]) [data-trigger-placement^=top]::slotted(*:hover):before{top:calc(-1 * var(--ds-size-500, 2.5rem))}:host([addSpace]) [data-trigger-placement^=bottom]::slotted(*:hover):before{bottom:calc(-1 * var(--ds-size-500, 2.5rem))}.popover{display:inline-block;max-width:calc(100% - var(--ds-size-400, 2rem));border-radius:var(--ds-border-radius, .375rem)}@media screen and (min-width:576px){.popover{max-width:50%}}@media screen and (min-width:768px){.popover{max-width:40%}}@media screen and (min-width:1024px){.popover{max-width:27rem}}[data-popper-placement^=top]>.arrow{bottom:calc(-1 * (var(--ds-size-100, .5rem) + var(--ds-size-25, .125rem)))}[data-popper-placement^=top]>.arrow:before{top:calc(-1 * var(--ds-size-200, 1rem));left:calc(-1 * var(--ds-size-75, .375rem));transform:rotate(45deg)}[data-popper-placement^=bottom]>.arrow{top:calc(-1 * (var(--ds-size-100, .5rem) + var(--ds-size-25, .125rem)))}[data-popper-placement^=bottom]>.arrow:before{top:var(--ds-size-50, .25rem);right:calc(-1 * var(--ds-size-200, 1rem));transform:rotate(-135deg)}.arrow{position:relative;margin-top:-var(--ds-size-100,.5rem)}.arrow:before{position:absolute;width:var(--ds-size-150, .75rem);height:var(--ds-size-150, .75rem);content:""}
|
|
@@ -7913,7 +8033,7 @@ class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,cl
|
|
|
7913
8033
|
|
|
7914
8034
|
var popoverVersion = '6.0.1';
|
|
7915
8035
|
|
|
7916
|
-
/* eslint-disable curly, max-lines, no-underscore-dangle, no-magic-numbers, no-underscore-dangle, max-params, no-
|
|
8036
|
+
/* 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 */
|
|
7917
8037
|
|
|
7918
8038
|
class AuroCalendarCell extends LitElement {
|
|
7919
8039
|
constructor() {
|
|
@@ -7921,7 +8041,6 @@ class AuroCalendarCell extends LitElement {
|
|
|
7921
8041
|
|
|
7922
8042
|
this.day = null;
|
|
7923
8043
|
this.selected = false;
|
|
7924
|
-
this.hovered = false;
|
|
7925
8044
|
this.dateTo = null;
|
|
7926
8045
|
this.dateFrom = null;
|
|
7927
8046
|
this.month = null;
|
|
@@ -7929,7 +8048,6 @@ class AuroCalendarCell extends LitElement {
|
|
|
7929
8048
|
this.max = null;
|
|
7930
8049
|
this.disabled = false;
|
|
7931
8050
|
this.disabledDays = [];
|
|
7932
|
-
this.hoveredDate = null;
|
|
7933
8051
|
this.isCurrentDate = false;
|
|
7934
8052
|
this._locale = null;
|
|
7935
8053
|
this.dateStr = null;
|
|
@@ -7954,7 +8072,6 @@ class AuroCalendarCell extends LitElement {
|
|
|
7954
8072
|
// ...super.properties,
|
|
7955
8073
|
day: { type: Object },
|
|
7956
8074
|
selected: { type: Boolean },
|
|
7957
|
-
hovered: { type: Boolean },
|
|
7958
8075
|
dateTo: { type: String },
|
|
7959
8076
|
dateFrom: { type: String },
|
|
7960
8077
|
month: { type: String },
|
|
@@ -7965,15 +8082,10 @@ class AuroCalendarCell extends LitElement {
|
|
|
7965
8082
|
reflect: true
|
|
7966
8083
|
},
|
|
7967
8084
|
disabledDays: { type: Array },
|
|
7968
|
-
hoveredDate: { type: String },
|
|
7969
8085
|
isCurrentDate: { type: Boolean },
|
|
7970
8086
|
locale: { type: Object },
|
|
7971
8087
|
dateStr: { type: String },
|
|
7972
8088
|
renderForDateSlot: { type: Boolean },
|
|
7973
|
-
active: {
|
|
7974
|
-
type: Boolean,
|
|
7975
|
-
reflect: true
|
|
7976
|
-
},
|
|
7977
8089
|
hasPopoverContent: { type: Boolean }
|
|
7978
8090
|
};
|
|
7979
8091
|
}
|
|
@@ -7998,17 +8110,17 @@ class AuroCalendarCell extends LitElement {
|
|
|
7998
8110
|
}
|
|
7999
8111
|
|
|
8000
8112
|
/**
|
|
8001
|
-
* Handles selected
|
|
8113
|
+
* Handles selected state of the calendar cell when the selection changes.
|
|
8114
|
+
* Also clears any imperative range preview classes so classMap is the
|
|
8115
|
+
* sole source of truth after a selection update.
|
|
8002
8116
|
* @private
|
|
8003
8117
|
* @param {Number} dateFrom - Depart date.
|
|
8004
8118
|
* @param {Number} dateTo - Return date.
|
|
8005
|
-
* @param {Number} hoveredDate - Hovered date.
|
|
8006
8119
|
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
8007
8120
|
* @returns {void}
|
|
8008
8121
|
*/
|
|
8009
|
-
dateChanged(dateFrom, dateTo,
|
|
8122
|
+
dateChanged(dateFrom, dateTo, day) {
|
|
8010
8123
|
this.selected = false;
|
|
8011
|
-
this.hovered = false;
|
|
8012
8124
|
|
|
8013
8125
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
8014
8126
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
@@ -8020,10 +8132,6 @@ class AuroCalendarCell extends LitElement {
|
|
|
8020
8132
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
8021
8133
|
this.selected = true;
|
|
8022
8134
|
}
|
|
8023
|
-
|
|
8024
|
-
if (((hoveredDate === day.date || day.date < hoveredDate) && day.date > parsedDateFrom && !parsedDateTo && !Number.isNaN(parsedDateFrom) && parsedDateFrom !== undefined && !this.selected) || (day.date > parsedDateFrom && day.date < parsedDateTo)) {
|
|
8025
|
-
this.hovered = true;
|
|
8026
|
-
}
|
|
8027
8135
|
}
|
|
8028
8136
|
}
|
|
8029
8137
|
|
|
@@ -8049,16 +8157,30 @@ class AuroCalendarCell extends LitElement {
|
|
|
8049
8157
|
|
|
8050
8158
|
/**
|
|
8051
8159
|
* Handles user hover events and dispatches a custom event.
|
|
8052
|
-
*
|
|
8160
|
+
* Does NOT set any reactive properties — the range preview is handled
|
|
8161
|
+
* imperatively by the calendar component to avoid O(N) re-renders.
|
|
8053
8162
|
* @private
|
|
8054
8163
|
* @returns {void}
|
|
8055
8164
|
*/
|
|
8056
8165
|
handleHover() {
|
|
8057
|
-
this.hovered = true;
|
|
8058
|
-
|
|
8059
|
-
let _a;
|
|
8060
8166
|
this.dispatchEvent(new CustomEvent('date-is-hovered', {
|
|
8061
|
-
detail: { date:
|
|
8167
|
+
detail: { date: this.day?.date },
|
|
8168
|
+
}));
|
|
8169
|
+
}
|
|
8170
|
+
|
|
8171
|
+
/**
|
|
8172
|
+
* Handles focus events on the cell button.
|
|
8173
|
+
* Dispatches a lightweight event for the calendar to handle SR
|
|
8174
|
+
* announcements and range preview updates without triggering
|
|
8175
|
+
* any Lit lifecycle updates.
|
|
8176
|
+
* @private
|
|
8177
|
+
* @returns {void}
|
|
8178
|
+
*/
|
|
8179
|
+
handleFocus() {
|
|
8180
|
+
this.dispatchEvent(new CustomEvent('calendar-cell-focused', {
|
|
8181
|
+
bubbles: true,
|
|
8182
|
+
composed: true,
|
|
8183
|
+
detail: { date: this.day?.date },
|
|
8062
8184
|
}));
|
|
8063
8185
|
}
|
|
8064
8186
|
|
|
@@ -8072,7 +8194,7 @@ class AuroCalendarCell extends LitElement {
|
|
|
8072
8194
|
* @returns {Boolean} - True if the date is out of range.
|
|
8073
8195
|
*/
|
|
8074
8196
|
isOutOfRange(day, min, max) {
|
|
8075
|
-
if (day && day.date
|
|
8197
|
+
if (day && day.date !== null && day.date !== undefined) {
|
|
8076
8198
|
return day.date < min || day.date > max;
|
|
8077
8199
|
}
|
|
8078
8200
|
return false;
|
|
@@ -8085,13 +8207,13 @@ class AuroCalendarCell extends LitElement {
|
|
|
8085
8207
|
* @returns {Boolean} - True if the date is a blackout date.
|
|
8086
8208
|
*/
|
|
8087
8209
|
isBlackout() {
|
|
8088
|
-
if (!this.day || this.day.date
|
|
8210
|
+
if (!this.day || this.day.date === null || this.day.date === undefined || this.isOutOfRange(this.day, this.min, this.max)) {
|
|
8089
8211
|
return false;
|
|
8090
8212
|
}
|
|
8091
8213
|
|
|
8092
8214
|
// Check against disabledDays timestamps (legacy path)
|
|
8093
8215
|
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
8094
|
-
if (this.disabledDays.findIndex(
|
|
8216
|
+
if (this.disabledDays.findIndex(dd => parseInt(dd, 10) === this.day.date) !== -1) {
|
|
8095
8217
|
return true;
|
|
8096
8218
|
}
|
|
8097
8219
|
}
|
|
@@ -8173,12 +8295,26 @@ class AuroCalendarCell extends LitElement {
|
|
|
8173
8295
|
|
|
8174
8296
|
let label = dateFormatter.format(date);
|
|
8175
8297
|
|
|
8298
|
+
// Append date slot content (e.g. prices) so it is announced with the date.
|
|
8299
|
+
if (this.renderForDateSlot) {
|
|
8300
|
+
const dateSlotEl = this.querySelector(`[slot="date_${this.dateStr}"]`);
|
|
8301
|
+
if (dateSlotEl) {
|
|
8302
|
+
const text = dateSlotEl.innerText?.trim();
|
|
8303
|
+
if (text) {
|
|
8304
|
+
label += `, ${text}`;
|
|
8305
|
+
}
|
|
8306
|
+
}
|
|
8307
|
+
}
|
|
8308
|
+
|
|
8176
8309
|
// appending popover content here so that it gets read in a logical order with the other date content.
|
|
8177
8310
|
if (this.hasPopoverContent) {
|
|
8178
|
-
|
|
8311
|
+
const popoverEl = this.querySelector(`[slot="popover_${this.dateStr}"]`);
|
|
8312
|
+
if (popoverEl) {
|
|
8313
|
+
label += `, ${popoverEl.innerText.trim()}`;
|
|
8314
|
+
}
|
|
8179
8315
|
}
|
|
8180
8316
|
|
|
8181
|
-
// Append range position
|
|
8317
|
+
// Append range position label for range datepickers
|
|
8182
8318
|
const rangePosition = this.getRangePosition();
|
|
8183
8319
|
if (rangePosition) {
|
|
8184
8320
|
label += `, ${rangePosition}`;
|
|
@@ -8289,12 +8425,12 @@ class AuroCalendarCell extends LitElement {
|
|
|
8289
8425
|
}
|
|
8290
8426
|
|
|
8291
8427
|
/**
|
|
8292
|
-
* Checks if the current date is a
|
|
8428
|
+
* Checks if the current date is a referenced date.
|
|
8293
8429
|
* @param {Object} dateStr - The date string in MM_DD_YYYY format.
|
|
8294
|
-
* @returns Boolean - True if the date is a
|
|
8430
|
+
* @returns Boolean - True if the date is a referenced date.
|
|
8295
8431
|
*/
|
|
8296
8432
|
isReferenceDate(dateStr) {
|
|
8297
|
-
// If the datepicker has
|
|
8433
|
+
// If the datepicker has referenced dates specified
|
|
8298
8434
|
if (this.datepicker && this.datepicker.hasAttribute('referenceDates')) {
|
|
8299
8435
|
|
|
8300
8436
|
// Get the referenceDates attribute from the datepicker
|
|
@@ -8408,6 +8544,11 @@ class AuroCalendarCell extends LitElement {
|
|
|
8408
8544
|
};
|
|
8409
8545
|
this.datepicker.addEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
|
|
8410
8546
|
|
|
8547
|
+
// Cache button reference for imperative class manipulation.
|
|
8548
|
+
this.updateComplete.then(() => {
|
|
8549
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
8550
|
+
});
|
|
8551
|
+
|
|
8411
8552
|
// Trigger an initial update now that `this.datepicker` is assigned so
|
|
8412
8553
|
// cells reflect blackout/slot state that was configured before first render.
|
|
8413
8554
|
this.requestUpdate();
|
|
@@ -8439,13 +8580,26 @@ class AuroCalendarCell extends LitElement {
|
|
|
8439
8580
|
}
|
|
8440
8581
|
|
|
8441
8582
|
updated(properties) {
|
|
8442
|
-
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('
|
|
8443
|
-
this.dateChanged(this.dateFrom, this.dateTo, this.
|
|
8583
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('day')) {
|
|
8584
|
+
this.dateChanged(this.dateFrom, this.dateTo, this.day);
|
|
8444
8585
|
}
|
|
8445
8586
|
|
|
8446
|
-
if (this.day) {
|
|
8587
|
+
if (properties.has('day') && this.day) {
|
|
8447
8588
|
this.setDateSlotName();
|
|
8448
8589
|
this.handleSlotContent();
|
|
8590
|
+
|
|
8591
|
+
// Re-cache button reference when the day changes (cell may have re-rendered).
|
|
8592
|
+
this.updateComplete.then(() => {
|
|
8593
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
8594
|
+
});
|
|
8595
|
+
|
|
8596
|
+
// Update host-level aria attributes for ariaActiveDescendantElement.
|
|
8597
|
+
this.updateHostAria();
|
|
8598
|
+
}
|
|
8599
|
+
|
|
8600
|
+
// Update host aria when selection changes (aria-selected, range labels)
|
|
8601
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected')) {
|
|
8602
|
+
this.updateHostAria();
|
|
8449
8603
|
}
|
|
8450
8604
|
|
|
8451
8605
|
// Configure popover when it first becomes rendered
|
|
@@ -8455,64 +8609,165 @@ class AuroCalendarCell extends LitElement {
|
|
|
8455
8609
|
}
|
|
8456
8610
|
|
|
8457
8611
|
/**
|
|
8458
|
-
*
|
|
8612
|
+
* Updates ARIA attributes on the host element so that
|
|
8613
|
+
* ariaActiveDescendantElement can expose cell info to the SR.
|
|
8614
|
+
* @private
|
|
8459
8615
|
* @returns {void}
|
|
8460
8616
|
*/
|
|
8461
|
-
|
|
8462
|
-
|
|
8463
|
-
if (button) {
|
|
8464
|
-
button.focus();
|
|
8465
|
-
}
|
|
8466
|
-
}
|
|
8617
|
+
updateHostAria() {
|
|
8618
|
+
if (!this.day || this.day.date === undefined) return;
|
|
8467
8619
|
|
|
8468
|
-
renderCellButton() {
|
|
8469
8620
|
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
8470
|
-
|
|
8471
|
-
|
|
8621
|
+
if (outOfRange) {
|
|
8622
|
+
this.removeAttribute('role');
|
|
8623
|
+
this.removeAttribute('aria-label');
|
|
8624
|
+
return;
|
|
8625
|
+
}
|
|
8472
8626
|
|
|
8473
|
-
|
|
8474
|
-
|
|
8475
|
-
|
|
8476
|
-
|
|
8477
|
-
|
|
8478
|
-
|
|
8479
|
-
|
|
8627
|
+
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
8628
|
+
this.setAttribute('role', 'gridcell');
|
|
8629
|
+
this.setAttribute('aria-label', this.getAriaLabel());
|
|
8630
|
+
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
8631
|
+
|
|
8632
|
+
if (this.isBlackout()) {
|
|
8633
|
+
this.setAttribute('aria-disabled', 'true');
|
|
8634
|
+
} else {
|
|
8635
|
+
this.removeAttribute('aria-disabled');
|
|
8636
|
+
}
|
|
8637
|
+
}
|
|
8638
|
+
|
|
8639
|
+
/**
|
|
8640
|
+
* Programmatically focuses the cell's interactive button element.
|
|
8641
|
+
* Uses focusVisible: true so the :focus-visible ring appears even when
|
|
8642
|
+
* the bib was opened via mouse click (which sets mouse input modality).
|
|
8643
|
+
* @returns {void}
|
|
8644
|
+
*/
|
|
8645
|
+
focusButton() {
|
|
8646
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([aria-hidden])');
|
|
8647
|
+
if (button) {
|
|
8648
|
+
button.focus({ focusVisible: true });
|
|
8649
|
+
}
|
|
8650
|
+
}
|
|
8651
|
+
|
|
8652
|
+
/**
|
|
8653
|
+
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
8654
|
+
* Note: buttons stay tabindex="-1" because the grid uses aria-activedescendant.
|
|
8655
|
+
* @returns {void}
|
|
8656
|
+
*/
|
|
8657
|
+
setActive() {
|
|
8658
|
+
this.active = true;
|
|
8659
|
+
|
|
8660
|
+
// Show the popover when this cell becomes active via keyboard navigation.
|
|
8661
|
+
if (this.auroPopover) {
|
|
8662
|
+
this.auroPopover.toggleShow();
|
|
8663
|
+
}
|
|
8664
|
+
}
|
|
8665
|
+
|
|
8666
|
+
/**
|
|
8667
|
+
* Imperatively marks this cell as inactive without triggering a Lit re-render.
|
|
8668
|
+
* @returns {void}
|
|
8669
|
+
*/
|
|
8670
|
+
clearActive() {
|
|
8671
|
+
this.active = false;
|
|
8672
|
+
const btn = this._cachedButton || this.shadowRoot.querySelector('button.day');
|
|
8673
|
+
if (btn) {
|
|
8674
|
+
btn.classList.remove('activeCell');
|
|
8675
|
+
}
|
|
8676
|
+
|
|
8677
|
+
// Hide the popover when this cell loses active state.
|
|
8678
|
+
if (this.auroPopover) {
|
|
8679
|
+
this.auroPopover.toggleHide();
|
|
8680
|
+
}
|
|
8681
|
+
}
|
|
8682
|
+
|
|
8683
|
+
/**
|
|
8684
|
+
* Updates range preview classes imperatively (no Lit re-render).
|
|
8685
|
+
* Called by the calendar component when the hovered date changes
|
|
8686
|
+
* during range selection (dateFrom set, dateTo not yet set).
|
|
8687
|
+
* @param {Number} hoveredDate - Unix timestamp of the currently hovered/focused date.
|
|
8688
|
+
* @param {Number} dateFrom - Unix timestamp of the selected departure date.
|
|
8689
|
+
* @returns {void}
|
|
8690
|
+
*/
|
|
8691
|
+
updateRangePreviewClasses(hoveredDate, dateFrom) {
|
|
8692
|
+
const btn = this._cachedButton;
|
|
8693
|
+
if (!btn || !this.day) return;
|
|
8694
|
+
|
|
8695
|
+
const dayDate = this.day.date;
|
|
8696
|
+
const departTimestamp = startOfDay(dateFrom * 1000) / 1000;
|
|
8697
|
+
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
8698
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate > departTimestamp;
|
|
8699
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate > departTimestamp;
|
|
8700
|
+
|
|
8701
|
+
btn.classList.toggle('inRange', isInRange);
|
|
8702
|
+
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
8703
|
+
btn.classList.toggle('rangeDepartDate', isDepartWithPreview);
|
|
8704
|
+
}
|
|
8705
|
+
|
|
8706
|
+
/**
|
|
8707
|
+
* Clears all imperative range preview classes from the cell button.
|
|
8708
|
+
* Called when a selection occurs so classMap becomes the sole source of truth.
|
|
8709
|
+
* @returns {void}
|
|
8710
|
+
*/
|
|
8711
|
+
clearRangePreviewClasses() {
|
|
8712
|
+
const btn = this._cachedButton;
|
|
8713
|
+
if (!btn) return;
|
|
8714
|
+
|
|
8715
|
+
btn.classList.remove('inRange', 'lastHoveredDate', 'rangeDepartDate');
|
|
8716
|
+
}
|
|
8717
|
+
|
|
8718
|
+
renderCellButton() {
|
|
8719
|
+
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
8720
|
+
const blackout = this.isBlackout();
|
|
8721
|
+
|
|
8722
|
+
// Static and selection-driven classes only. Hover-driven classes
|
|
8723
|
+
// (inRange, lastHoveredDate, rangeDepartDate during preview) are
|
|
8724
|
+
// managed imperatively via updateRangePreviewClasses() to avoid
|
|
8725
|
+
// O(N) Lit re-renders on every focus/hover event.
|
|
8726
|
+
const isFirstDay = this.day?.title === 1;
|
|
8727
|
+
const isLastDay = this.day?.date && (() => {
|
|
8728
|
+
const dt = new Date(this.day.date * 1000);
|
|
8729
|
+
return dt.getDate() === new Date(dt.getFullYear(), dt.getMonth() + 1, 0).getDate();
|
|
8730
|
+
})();
|
|
8731
|
+
|
|
8732
|
+
const buttonClasses = {
|
|
8733
|
+
'day': true,
|
|
8734
|
+
'body-default': true,
|
|
8735
|
+
'currentDate': this.isCurrentDate,
|
|
8736
|
+
'selected': this.selected,
|
|
8737
|
+
'inRange': this.datepicker?.hasAttribute('range') && this.dateTo && this.isInRange(this.day, this.dateFrom, this.dateTo),
|
|
8480
8738
|
'disabled': outOfRange,
|
|
8481
|
-
|
|
8482
|
-
'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) &&
|
|
8739
|
+
blackout,
|
|
8740
|
+
'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) && this.dateTo,
|
|
8483
8741
|
'rangeReturnDate': this.datepicker?.hasAttribute('range') && this.isReturnDate(this.day, this.dateFrom, this.dateTo),
|
|
8484
8742
|
'reference': this.isReferenceDate(this.dateStr),
|
|
8485
|
-
'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo
|
|
8743
|
+
'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo,
|
|
8744
|
+
'firstDayOfMonth': isFirstDay,
|
|
8745
|
+
'lastDayOfMonth': isLastDay,
|
|
8486
8746
|
};
|
|
8487
8747
|
|
|
8488
8748
|
return html$1`
|
|
8489
8749
|
<button
|
|
8490
8750
|
slot="trigger"
|
|
8491
8751
|
id="${this.getCellId()}"
|
|
8492
|
-
role="${role}"
|
|
8493
8752
|
@click="${outOfRange ? undefined : this.handleTap}"
|
|
8494
8753
|
@mouseover="${outOfRange ? undefined : this.handleHover}"
|
|
8495
|
-
@focus="${outOfRange ? undefined : this.
|
|
8754
|
+
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
8496
8755
|
class="${classMap(buttonClasses)}"
|
|
8497
8756
|
?disabled="${outOfRange}"
|
|
8498
|
-
aria-disabled="${blackout ? 'true' : nothing}"
|
|
8499
8757
|
aria-hidden="${outOfRange ? 'true' : nothing}"
|
|
8500
|
-
|
|
8501
|
-
aria-current="${this.isCurrentDate ? 'date' : nothing}"
|
|
8502
|
-
tabindex="${this.active ? '0' : '-1'}">
|
|
8503
|
-
<span class="srOnly">${this.getAriaLabel()}</span>
|
|
8758
|
+
tabindex="-1">
|
|
8504
8759
|
<div class="buttonWrapper" aria-hidden="true">
|
|
8505
8760
|
<div class="currentDayMarker">${this.day?.title || nothing}</div>
|
|
8506
|
-
|
|
8507
|
-
|
|
8508
|
-
|
|
8761
|
+
<div class="dateSlot body-2xs" part="dateSlot" aria-hidden="true" ?hidden="${!this.renderForDateSlot}">
|
|
8762
|
+
<slot name="date_${this.dateStr}"></slot>
|
|
8763
|
+
</div>
|
|
8509
8764
|
</div>
|
|
8510
8765
|
</button>
|
|
8511
8766
|
`;
|
|
8512
8767
|
}
|
|
8513
8768
|
|
|
8514
8769
|
render() {
|
|
8515
|
-
const hasPopoverContent = this
|
|
8770
|
+
const { hasPopoverContent } = this;
|
|
8516
8771
|
|
|
8517
8772
|
if (hasPopoverContent) {
|
|
8518
8773
|
return html$1`
|
|
@@ -8642,7 +8897,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8642
8897
|
*/
|
|
8643
8898
|
renderDayOfWeek(dayOfWeek, index) {
|
|
8644
8899
|
const fullName = this.dayFullNames ? this.dayFullNames[index] : dayOfWeek;
|
|
8645
|
-
return html`<div class="th body-default"
|
|
8900
|
+
return html`<div class="th body-default"><abbr title="${fullName}">${dayOfWeek}</abbr></div>`;
|
|
8646
8901
|
}
|
|
8647
8902
|
|
|
8648
8903
|
/**
|
|
@@ -8651,92 +8906,39 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8651
8906
|
*/
|
|
8652
8907
|
getFocusableCells() {
|
|
8653
8908
|
const cells = Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-cell'));
|
|
8654
|
-
return cells.filter(cell => {
|
|
8655
|
-
if (!cell.day)
|
|
8909
|
+
return cells.filter((cell) => {
|
|
8910
|
+
if (!cell.day) {
|
|
8911
|
+
return false;
|
|
8912
|
+
}
|
|
8656
8913
|
return !cell.isOutOfRange(cell.day, cell.min, cell.max);
|
|
8657
8914
|
});
|
|
8658
8915
|
}
|
|
8659
8916
|
|
|
8660
8917
|
/**
|
|
8661
|
-
*
|
|
8662
|
-
*
|
|
8918
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
8919
|
+
* as a reactive property. Instead, just dispatches the event upward so
|
|
8920
|
+
* the calendar can handle range preview imperatively.
|
|
8663
8921
|
* @private
|
|
8664
|
-
* @param {
|
|
8922
|
+
* @param {CustomEvent} event - The date-is-hovered event from a cell.
|
|
8665
8923
|
* @returns {void}
|
|
8666
8924
|
*/
|
|
8667
|
-
|
|
8668
|
-
|
|
8669
|
-
|
|
8670
|
-
|
|
8671
|
-
|
|
8672
|
-
|
|
8673
|
-
event.preventDefault();
|
|
8674
|
-
|
|
8675
|
-
const focusableCells = this.getFocusableCells();
|
|
8676
|
-
if (focusableCells.length === 0) return;
|
|
8677
|
-
|
|
8678
|
-
// Find the currently active cell within this month
|
|
8679
|
-
const activeCell = focusableCells.find(cell => cell.active);
|
|
8680
|
-
if (!activeCell) return;
|
|
8681
|
-
|
|
8682
|
-
const activeIndex = focusableCells.indexOf(activeCell);
|
|
8683
|
-
let targetCell = null;
|
|
8684
|
-
|
|
8685
|
-
if (key === 'ArrowRight') {
|
|
8686
|
-
if (activeIndex < focusableCells.length - 1) {
|
|
8687
|
-
targetCell = focusableCells[activeIndex + 1];
|
|
8688
|
-
} else {
|
|
8689
|
-
// At end of month, request cross-month navigation
|
|
8690
|
-
this.dispatchEvent(new CustomEvent('calendar-month-boundary', {
|
|
8691
|
-
bubbles: true,
|
|
8692
|
-
composed: true,
|
|
8693
|
-
detail: { direction: 'next', fromDate: activeCell.day.date, key }
|
|
8694
|
-
}));
|
|
8695
|
-
return;
|
|
8696
|
-
}
|
|
8697
|
-
} else if (key === 'ArrowLeft') {
|
|
8698
|
-
if (activeIndex > 0) {
|
|
8699
|
-
targetCell = focusableCells[activeIndex - 1];
|
|
8700
|
-
} else {
|
|
8701
|
-
// At start of month, request cross-month navigation
|
|
8702
|
-
this.dispatchEvent(new CustomEvent('calendar-month-boundary', {
|
|
8703
|
-
bubbles: true,
|
|
8704
|
-
composed: true,
|
|
8705
|
-
detail: { direction: 'prev', fromDate: activeCell.day.date, key }
|
|
8706
|
-
}));
|
|
8707
|
-
return;
|
|
8708
|
-
}
|
|
8709
|
-
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
8710
|
-
// Find the target day (same day-of-week, +/- 7 days)
|
|
8711
|
-
// Use Date arithmetic instead of fixed seconds to handle DST correctly
|
|
8712
|
-
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
8713
|
-
const currentDate = new Date(activeCell.day.date * 1000);
|
|
8714
|
-
currentDate.setDate(currentDate.getDate() + increment);
|
|
8715
|
-
currentDate.setHours(0, 0, 0, 0);
|
|
8716
|
-
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
8717
|
-
|
|
8718
|
-
// Look for the target date in this month's focusable cells
|
|
8719
|
-
targetCell = focusableCells.find(cell => cell.day.date === targetDate);
|
|
8720
|
-
|
|
8721
|
-
if (!targetCell) {
|
|
8722
|
-
// Target is in another month or all cells in that direction are disabled
|
|
8723
|
-
const direction = key === 'ArrowDown' ? 'next' : 'prev';
|
|
8724
|
-
this.dispatchEvent(new CustomEvent('calendar-month-boundary', {
|
|
8725
|
-
bubbles: true,
|
|
8726
|
-
composed: true,
|
|
8727
|
-
detail: { direction, fromDate: activeCell.day.date, key }
|
|
8728
|
-
}));
|
|
8729
|
-
return;
|
|
8730
|
-
}
|
|
8731
|
-
}
|
|
8925
|
+
handleDateHovered(event) {
|
|
8926
|
+
this.dispatchEvent(new CustomEvent('hovered-date-changed', {
|
|
8927
|
+
detail: { value: event.detail.date },
|
|
8928
|
+
}));
|
|
8929
|
+
}
|
|
8732
8930
|
|
|
8733
|
-
|
|
8734
|
-
|
|
8735
|
-
|
|
8736
|
-
|
|
8737
|
-
|
|
8738
|
-
|
|
8739
|
-
|
|
8931
|
+
/**
|
|
8932
|
+
* Dispatches a bubbling event when the mouse leaves the date grid body
|
|
8933
|
+
* so the parent calendar can clear the range hover preview.
|
|
8934
|
+
* @private
|
|
8935
|
+
* @returns {void}
|
|
8936
|
+
*/
|
|
8937
|
+
handleTbodyMouseLeave() {
|
|
8938
|
+
this.dispatchEvent(new CustomEvent('calendar-month-mouseleave', {
|
|
8939
|
+
bubbles: true,
|
|
8940
|
+
composed: true,
|
|
8941
|
+
}));
|
|
8740
8942
|
}
|
|
8741
8943
|
|
|
8742
8944
|
renderWeek(week) {
|
|
@@ -8755,7 +8957,6 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8755
8957
|
.min="${this.min}"
|
|
8756
8958
|
.max="${this.max}"
|
|
8757
8959
|
.month="${this.month}"
|
|
8758
|
-
.hoveredDate="${this.hoveredDate}"
|
|
8759
8960
|
.dateTo="${this.dateTo}"
|
|
8760
8961
|
.dateFrom="${this.dateFrom}"
|
|
8761
8962
|
.locale="${this.locale}"
|
|
@@ -8777,10 +8978,10 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8777
8978
|
var _a, _b;
|
|
8778
8979
|
|
|
8779
8980
|
return html `
|
|
8780
|
-
<div
|
|
8981
|
+
<div>
|
|
8781
8982
|
<div class="header">
|
|
8782
8983
|
${this.renderPrevButton()}
|
|
8783
|
-
<div class="headerTitle heading-xs" id="${this.getHeadingId()}" aria-
|
|
8984
|
+
<div class="headerTitle heading-xs" id="${this.getHeadingId()}" aria-hidden="true">
|
|
8784
8985
|
${this.monthFirst ? html`
|
|
8785
8986
|
<div>${this.computeCurrentMonthName(this.month)}</div>
|
|
8786
8987
|
<div>${this.renderYear()}</div>
|
|
@@ -8792,13 +8993,13 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8792
8993
|
${this.renderNextButton()}
|
|
8793
8994
|
</div>
|
|
8794
8995
|
|
|
8795
|
-
<div class="table" role="grid"
|
|
8796
|
-
<div class="thead"
|
|
8797
|
-
<div class="tr"
|
|
8996
|
+
<div class="table" role="grid">
|
|
8997
|
+
<div class="thead" aria-hidden="true">
|
|
8998
|
+
<div class="tr">
|
|
8798
8999
|
${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
|
|
8799
9000
|
</div>
|
|
8800
9001
|
</div>
|
|
8801
|
-
<div class="tbody" role="rowgroup">
|
|
9002
|
+
<div class="tbody" role="rowgroup" @mouseleave="${this.handleTbodyMouseLeave}">
|
|
8802
9003
|
${(_b = this.daysOfMonth) === null || _b === void 0 ? void 0 : _b.map(week => this.renderWeek(week))}
|
|
8803
9004
|
</div>
|
|
8804
9005
|
</div>
|
|
@@ -9610,7 +9811,7 @@ class AuroBibtemplate extends LitElement {
|
|
|
9610
9811
|
}
|
|
9611
9812
|
}
|
|
9612
9813
|
|
|
9613
|
-
var formkitVersion$2 = '
|
|
9814
|
+
var formkitVersion$2 = '202606030033';
|
|
9614
9815
|
|
|
9615
9816
|
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=literal`${unsafeStatic(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$1 = 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$1=css`: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}
|
|
9616
9817
|
`,u$4=css`.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}}
|
|
@@ -9671,7 +9872,7 @@ let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[
|
|
|
9671
9872
|
|
|
9672
9873
|
var buttonVersion$1 = '12.3.2';
|
|
9673
9874
|
|
|
9674
|
-
/* eslint-disable no-magic-numbers, no-undef-init, max-lines, lit/binding-positions, lit/no-invalid-html */
|
|
9875
|
+
/* eslint-disable no-magic-numbers, complexity, line-comment-position, no-undef-init, max-lines, line-comment-position, no-underscore-dangle, lit/binding-positions, lit/no-invalid-html, no-inline-comments */
|
|
9675
9876
|
|
|
9676
9877
|
|
|
9677
9878
|
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
@@ -9715,6 +9916,13 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9715
9916
|
*/
|
|
9716
9917
|
this.activeCellDate = null;
|
|
9717
9918
|
|
|
9919
|
+
/**
|
|
9920
|
+
* Whether the #calendarGrid wrapper currently has focus.
|
|
9921
|
+
* Used to determine whether the visualFocus ring should be shown.
|
|
9922
|
+
* @private
|
|
9923
|
+
*/
|
|
9924
|
+
this._gridHasFocus = false;
|
|
9925
|
+
|
|
9718
9926
|
/**
|
|
9719
9927
|
* @private
|
|
9720
9928
|
*/
|
|
@@ -9725,6 +9933,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9725
9933
|
*/
|
|
9726
9934
|
this.calendarRangeMonths = null;
|
|
9727
9935
|
|
|
9936
|
+
/**
|
|
9937
|
+
* Legacy array of disabled-date timestamps.
|
|
9938
|
+
* @private
|
|
9939
|
+
*/
|
|
9940
|
+
this.disabledDays = [];
|
|
9941
|
+
|
|
9728
9942
|
/**
|
|
9729
9943
|
* @private
|
|
9730
9944
|
*/
|
|
@@ -9748,6 +9962,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9748
9962
|
this.buttonTag = versioning.generateTag('auro-formkit-datepicker-button', buttonVersion$1, T$1);
|
|
9749
9963
|
|
|
9750
9964
|
this.dropdown = undefined;
|
|
9965
|
+
|
|
9966
|
+
/**
|
|
9967
|
+
* Unique instance ID for the live region element.
|
|
9968
|
+
* @private
|
|
9969
|
+
*/
|
|
9970
|
+
this._calendarInstanceId = Date.now().toString(36);
|
|
9751
9971
|
}
|
|
9752
9972
|
|
|
9753
9973
|
static get styles() {
|
|
@@ -9760,6 +9980,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9760
9980
|
|
|
9761
9981
|
static get properties() {
|
|
9762
9982
|
return {
|
|
9983
|
+
|
|
9763
9984
|
/**
|
|
9764
9985
|
* The last month that may be displayed in the calendar.
|
|
9765
9986
|
*/
|
|
@@ -9876,22 +10097,36 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9876
10097
|
/**
|
|
9877
10098
|
* Updates the month and year when the user navigates to the previous calendar month.
|
|
9878
10099
|
* @private
|
|
10100
|
+
* @param {Object} [options] - Optional settings.
|
|
10101
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
10102
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
9879
10103
|
* @returns {void}
|
|
9880
10104
|
*/
|
|
9881
|
-
handlePrevMonth() {
|
|
10105
|
+
handlePrevMonth(options) {
|
|
10106
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
10107
|
+
this.clearRangePreview();
|
|
9882
10108
|
this.utilCal.handleMonthChange(this, 'prev');
|
|
9883
|
-
|
|
10109
|
+
if (!opts.skipActiveUpdate) {
|
|
10110
|
+
this.updateActiveCellForVisibleMonth();
|
|
10111
|
+
}
|
|
9884
10112
|
this.announceMonthChange();
|
|
9885
10113
|
}
|
|
9886
10114
|
|
|
9887
10115
|
/**
|
|
9888
10116
|
* Updates the month and year when the user navigates to the next calendar month.
|
|
9889
10117
|
* @private
|
|
10118
|
+
* @param {Object} [options] - Optional settings.
|
|
10119
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
10120
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
9890
10121
|
* @returns {void}
|
|
9891
10122
|
*/
|
|
9892
|
-
handleNextMonth() {
|
|
10123
|
+
handleNextMonth(options) {
|
|
10124
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
10125
|
+
this.clearRangePreview();
|
|
9893
10126
|
this.utilCal.handleMonthChange(this, 'next');
|
|
9894
|
-
|
|
10127
|
+
if (!opts.skipActiveUpdate) {
|
|
10128
|
+
this.updateActiveCellForVisibleMonth();
|
|
10129
|
+
}
|
|
9895
10130
|
this.announceMonthChange();
|
|
9896
10131
|
}
|
|
9897
10132
|
|
|
@@ -9901,27 +10136,39 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9901
10136
|
* @returns {void}
|
|
9902
10137
|
*/
|
|
9903
10138
|
announceMonthChange() {
|
|
10139
|
+
// Cancel any pending debounced cell announcement so it does not
|
|
10140
|
+
// overwrite this month navigation announcement.
|
|
10141
|
+
if (this._focusAnnounceTimer) {
|
|
10142
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
10143
|
+
this._focusAnnounceTimer = null;
|
|
10144
|
+
}
|
|
10145
|
+
|
|
9904
10146
|
const date = new Date(this.centralDate);
|
|
9905
10147
|
const localeCode = this.locale?.code || undefined;
|
|
9906
|
-
const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long',
|
|
10148
|
+
const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long',
|
|
10149
|
+
year: 'numeric' });
|
|
9907
10150
|
this.announceSelection(formatter.format(date));
|
|
9908
10151
|
}
|
|
9909
10152
|
|
|
9910
10153
|
/**
|
|
9911
|
-
*
|
|
9912
|
-
*
|
|
9913
|
-
*
|
|
10154
|
+
* Updates the active cell after month navigation (prev/next buttons).
|
|
10155
|
+
* Always moves the active cell to the first enabled date in the newly
|
|
10156
|
+
* visible months so that tabbing back to the grid lands on an enabled cell.
|
|
9914
10157
|
* @private
|
|
9915
10158
|
* @returns {void}
|
|
9916
10159
|
*/
|
|
9917
10160
|
updateActiveCellForVisibleMonth() {
|
|
9918
|
-
//
|
|
9919
|
-
//
|
|
9920
|
-
|
|
9921
|
-
|
|
9922
|
-
|
|
9923
|
-
|
|
9924
|
-
|
|
10161
|
+
// Use double-rAF to ensure child month/cell components have fully
|
|
10162
|
+
// rendered and cached their button references before we set tabindex.
|
|
10163
|
+
requestAnimationFrame(() => {
|
|
10164
|
+
requestAnimationFrame(() => {
|
|
10165
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
10166
|
+
|
|
10167
|
+
if (newDate !== null && newDate !== undefined) {
|
|
10168
|
+
this.activeCellDate = newDate;
|
|
10169
|
+
this.setActiveCell(this.activeCellDate);
|
|
10170
|
+
}
|
|
10171
|
+
});
|
|
9925
10172
|
});
|
|
9926
10173
|
}
|
|
9927
10174
|
|
|
@@ -10018,7 +10265,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10018
10265
|
*/
|
|
10019
10266
|
focusCloseButton() {
|
|
10020
10267
|
const bibtemplate = this.shadowRoot.querySelector(this.bibtemplateTag._$litStatic$);
|
|
10021
|
-
if (bibtemplate)
|
|
10268
|
+
if (bibtemplate) {
|
|
10269
|
+
bibtemplate.focusCloseButton();
|
|
10270
|
+
}
|
|
10022
10271
|
}
|
|
10023
10272
|
|
|
10024
10273
|
/**
|
|
@@ -10047,7 +10296,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10047
10296
|
getAllFocusableCells() {
|
|
10048
10297
|
const months = this.getMonthComponents();
|
|
10049
10298
|
let cells = [];
|
|
10050
|
-
months.forEach(month => {
|
|
10299
|
+
months.forEach((month) => {
|
|
10051
10300
|
cells = cells.concat(month.getFocusableCells());
|
|
10052
10301
|
});
|
|
10053
10302
|
return cells;
|
|
@@ -10055,37 +10304,87 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10055
10304
|
|
|
10056
10305
|
/**
|
|
10057
10306
|
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
10307
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
10308
|
+
* Also updates ariaActiveDescendantElement on the grid wrapper so
|
|
10309
|
+
* screen readers announce the active cell without moving DOM focus.
|
|
10058
10310
|
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
10059
10311
|
* @returns {void}
|
|
10060
10312
|
*/
|
|
10061
10313
|
setActiveCell(date) {
|
|
10062
10314
|
const allCells = this.getAllFocusableCells();
|
|
10063
10315
|
|
|
10064
|
-
|
|
10065
|
-
|
|
10316
|
+
let newActiveCell = null;
|
|
10317
|
+
allCells.forEach((cell) => {
|
|
10318
|
+
if (cell.day && cell.day.date === date) {
|
|
10319
|
+
cell.setActive();
|
|
10320
|
+
newActiveCell = cell;
|
|
10321
|
+
} else if (cell.active) {
|
|
10322
|
+
cell.clearActive();
|
|
10323
|
+
}
|
|
10066
10324
|
});
|
|
10067
10325
|
|
|
10068
10326
|
this.activeCellDate = date;
|
|
10327
|
+
|
|
10328
|
+
// Apply activeCell ring only when the grid currently has focus.
|
|
10329
|
+
if (newActiveCell && this._gridHasFocus) {
|
|
10330
|
+
const btn = newActiveCell._cachedButton || newActiveCell.shadowRoot.querySelector('button.day');
|
|
10331
|
+
if (btn) {
|
|
10332
|
+
btn.classList.add('activeCell');
|
|
10333
|
+
}
|
|
10334
|
+
}
|
|
10069
10335
|
}
|
|
10070
10336
|
|
|
10071
10337
|
/**
|
|
10072
|
-
* Focuses the
|
|
10073
|
-
*
|
|
10074
|
-
*
|
|
10338
|
+
* Focuses the calendar grid wrapper and sets the active cell.
|
|
10339
|
+
* DOM focus stays on the grid wrapper; the aria-live region
|
|
10340
|
+
* tells the screen reader which cell is "active".
|
|
10075
10341
|
* @returns {void}
|
|
10076
10342
|
*/
|
|
10077
10343
|
focusActiveCell() {
|
|
10078
|
-
if (this.activeCellDate
|
|
10344
|
+
if (this.activeCellDate !== null && this.activeCellDate !== undefined) {
|
|
10079
10345
|
this.setActiveCell(this.activeCellDate);
|
|
10080
10346
|
}
|
|
10081
10347
|
|
|
10082
|
-
const
|
|
10083
|
-
|
|
10348
|
+
const gridWrapper = this.shadowRoot.querySelector('#calendarGrid');
|
|
10349
|
+
if (gridWrapper) {
|
|
10350
|
+
gridWrapper.focus({ preventScroll: true,
|
|
10351
|
+
focusVisible: true });
|
|
10352
|
+
}
|
|
10353
|
+
}
|
|
10354
|
+
|
|
10355
|
+
/**
|
|
10356
|
+
* Shows the activeCell ring when the grid gains focus.
|
|
10357
|
+
* @private
|
|
10358
|
+
* @returns {void}
|
|
10359
|
+
*/
|
|
10360
|
+
handleGridFocusIn() {
|
|
10361
|
+
this._gridHasFocus = true;
|
|
10362
|
+
const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
|
|
10084
10363
|
if (activeCell) {
|
|
10085
|
-
activeCell.
|
|
10086
|
-
|
|
10087
|
-
|
|
10364
|
+
const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
|
|
10365
|
+
if (btn) {
|
|
10366
|
+
btn.classList.add('activeCell');
|
|
10367
|
+
}
|
|
10368
|
+
}
|
|
10369
|
+
}
|
|
10370
|
+
|
|
10371
|
+
/**
|
|
10372
|
+
* Hides the activeCell ring when the grid loses focus.
|
|
10373
|
+
* @private
|
|
10374
|
+
* @returns {void}
|
|
10375
|
+
*/
|
|
10376
|
+
handleGridFocusOut() {
|
|
10377
|
+
this._gridHasFocus = false;
|
|
10378
|
+
// Remove activeCell from ALL cells to prevent stale rings.
|
|
10379
|
+
const allCells = this.getAllFocusableCells();
|
|
10380
|
+
for (const cell of allCells) {
|
|
10381
|
+
const btn = cell._cachedButton || cell.shadowRoot.querySelector('button.day');
|
|
10382
|
+
if (btn) {
|
|
10383
|
+
btn.classList.remove('activeCell');
|
|
10384
|
+
}
|
|
10088
10385
|
}
|
|
10386
|
+
// Clear range hover preview so no highlight lingers after focus leaves the grid.
|
|
10387
|
+
this.clearRangePreview();
|
|
10089
10388
|
}
|
|
10090
10389
|
|
|
10091
10390
|
/**
|
|
@@ -10099,7 +10398,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10099
10398
|
* 5b. First enabled date scanning forward from finite min (unbounded max)
|
|
10100
10399
|
* 5c. First enabled date scanning backward from finite max (unbounded min)
|
|
10101
10400
|
* 6. First in-range date (even if blackout) so focus can land somewhere
|
|
10102
|
-
* 7.
|
|
10401
|
+
* 7. Undefined — no valid target.
|
|
10103
10402
|
*
|
|
10104
10403
|
* @private
|
|
10105
10404
|
* @param {Object} [options] - Optional settings.
|
|
@@ -10114,12 +10413,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10114
10413
|
/**
|
|
10115
10414
|
* Adds days to a timestamp using Date arithmetic to handle DST correctly.
|
|
10116
10415
|
* Returns a local-midnight-aligned timestamp in seconds.
|
|
10416
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
10417
|
+
* @param {Number} days - Number of days to add.
|
|
10418
|
+
* @returns {Number} The adjusted timestamp in seconds.
|
|
10117
10419
|
*/
|
|
10118
10420
|
const addDays = (ts, days) => {
|
|
10119
|
-
const
|
|
10120
|
-
|
|
10121
|
-
|
|
10122
|
-
return Math.floor(
|
|
10421
|
+
const date = new Date(ts * 1000);
|
|
10422
|
+
date.setDate(date.getDate() + days);
|
|
10423
|
+
date.setHours(0, 0, 0, 0);
|
|
10424
|
+
return Math.floor(date.getTime() / 1000);
|
|
10123
10425
|
};
|
|
10124
10426
|
|
|
10125
10427
|
const rawMin = Number(this.min);
|
|
@@ -10130,9 +10432,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10130
10432
|
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
10131
10433
|
|
|
10132
10434
|
// Build a Set of blackout timestamps for O(1) lookup.
|
|
10133
|
-
const blackoutSet = new Set(
|
|
10134
|
-
(this.disabledDays || []).map(d => parseInt(d, 10))
|
|
10135
|
-
);
|
|
10435
|
+
const blackoutSet = new Set(this.disabledDays.map((day) => parseInt(day, 10)));
|
|
10136
10436
|
|
|
10137
10437
|
// Also include ISO-format blackoutDates from the datepicker if available.
|
|
10138
10438
|
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
@@ -10141,19 +10441,25 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10141
10441
|
for (const isoStr of isoBlackouts) {
|
|
10142
10442
|
const parts = isoStr.split('-');
|
|
10143
10443
|
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
10144
|
-
if (Number.isFinite(ts))
|
|
10444
|
+
if (Number.isFinite(ts)) {
|
|
10445
|
+
blackoutSet.add(ts);
|
|
10446
|
+
}
|
|
10145
10447
|
}
|
|
10146
10448
|
}
|
|
10147
10449
|
|
|
10148
10450
|
/**
|
|
10149
10451
|
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
10150
10452
|
* it is within [min, max] AND not a blackout day.
|
|
10453
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
10454
|
+
* @returns {boolean} True if the date is enabled.
|
|
10151
10455
|
*/
|
|
10152
10456
|
const isEnabled = (ts) => ts >= minTs && ts <= maxTs && !blackoutSet.has(ts);
|
|
10153
10457
|
|
|
10154
10458
|
/**
|
|
10155
10459
|
* A date is "in range" (focusable in the grid) when it is within [min, max].
|
|
10156
10460
|
* Blackout dates are focusable but not selectable.
|
|
10461
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
10462
|
+
* @returns {boolean} True if the date is in range.
|
|
10157
10463
|
*/
|
|
10158
10464
|
const isInRange = (ts) => ts >= minTs && ts <= maxTs;
|
|
10159
10465
|
|
|
@@ -10162,7 +10468,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10162
10468
|
// the newly visible month rather than the (possibly off-screen) selection.
|
|
10163
10469
|
if (!options.skipDateFrom && this.dateFrom) {
|
|
10164
10470
|
const parsedFrom = parseInt(this.dateFrom, 10);
|
|
10165
|
-
if (Number.isFinite(parsedFrom) && isInRange(parsedFrom))
|
|
10471
|
+
if (Number.isFinite(parsedFrom) && isInRange(parsedFrom)) {
|
|
10472
|
+
return parsedFrom;
|
|
10473
|
+
}
|
|
10166
10474
|
}
|
|
10167
10475
|
|
|
10168
10476
|
// 2. Today's date (midnight-aligned) if enabled.
|
|
@@ -10189,32 +10497,35 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10189
10497
|
const visibleEnd = new Date(centralYear, centralMonth + 1, 0); // last day of month
|
|
10190
10498
|
visibleEnd.setHours(0, 0, 0, 0);
|
|
10191
10499
|
const startTs = Math.floor(visibleStart.getTime() / 1000);
|
|
10192
|
-
const endTs = Math.floor(visibleEnd.getTime() / 1000);
|
|
10193
10500
|
const daysInMonth = visibleEnd.getDate();
|
|
10194
10501
|
|
|
10195
|
-
for (let idx = 0; idx < daysInMonth; idx
|
|
10502
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
10196
10503
|
const ts = addDays(startTs, idx);
|
|
10197
|
-
if (ts
|
|
10198
|
-
|
|
10504
|
+
if (isEnabled(ts)) {
|
|
10505
|
+
return ts;
|
|
10506
|
+
}
|
|
10199
10507
|
}
|
|
10200
10508
|
|
|
10201
10509
|
// No enabled date in the visible month — fall back to first in-range
|
|
10202
10510
|
// date in the month so focus still lands on a focusable cell.
|
|
10203
|
-
for (let idx = 0; idx < daysInMonth; idx
|
|
10511
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
10204
10512
|
const ts = addDays(startTs, idx);
|
|
10205
|
-
if (ts
|
|
10206
|
-
|
|
10513
|
+
if (isInRange(ts)) {
|
|
10514
|
+
return ts;
|
|
10515
|
+
}
|
|
10207
10516
|
}
|
|
10208
10517
|
}
|
|
10209
10518
|
}
|
|
10210
10519
|
|
|
10211
|
-
if (isEnabled(now))
|
|
10520
|
+
if (isEnabled(now)) {
|
|
10521
|
+
return now;
|
|
10522
|
+
}
|
|
10212
10523
|
|
|
10213
10524
|
// When a centralDate is configured (or inferred), constrain the scan to the
|
|
10214
10525
|
// rendered month(s) first so a single-month calendar does not pick a date
|
|
10215
10526
|
// that has no DOM cell. Determine the visible range based on centralDate and
|
|
10216
10527
|
// the number of rendered months.
|
|
10217
|
-
const renderedMonths = this.numCalendars
|
|
10528
|
+
const renderedMonths = Math.max(this.numCalendars, 1);
|
|
10218
10529
|
const visibleAnchor = centralDateValue && !isNaN(centralDateValue.getTime())
|
|
10219
10530
|
? centralDateValue
|
|
10220
10531
|
: new Date(now * 1000);
|
|
@@ -10227,40 +10538,52 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10227
10538
|
const visDays = Math.round((visEndTs - visStartTs) / 86400) + 1;
|
|
10228
10539
|
|
|
10229
10540
|
// Scan visible months for an enabled date.
|
|
10230
|
-
for (let idx = 0; idx < visDays; idx
|
|
10541
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
10231
10542
|
const ts = addDays(visStartTs, idx);
|
|
10232
|
-
if (ts
|
|
10233
|
-
|
|
10543
|
+
if (isEnabled(ts)) {
|
|
10544
|
+
return ts;
|
|
10545
|
+
}
|
|
10234
10546
|
}
|
|
10235
10547
|
|
|
10236
10548
|
// No enabled date in visible months — try an in-range (focusable) date so
|
|
10237
10549
|
// keyboard focus still has a tabindex="0" target.
|
|
10238
|
-
for (let idx = 0; idx < visDays; idx
|
|
10550
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
10239
10551
|
const ts = addDays(visStartTs, idx);
|
|
10240
|
-
if (ts
|
|
10241
|
-
|
|
10552
|
+
if (isInRange(ts)) {
|
|
10553
|
+
return ts;
|
|
10554
|
+
}
|
|
10242
10555
|
}
|
|
10243
10556
|
|
|
10244
10557
|
// 3. First future enabled date (scan forward from tomorrow, capped by max and MAX_SCAN_DAYS).
|
|
10245
|
-
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx
|
|
10558
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10246
10559
|
const ts = addDays(now, idx);
|
|
10247
|
-
if (Number.isFinite(maxTs) && ts > maxTs)
|
|
10248
|
-
|
|
10560
|
+
if (Number.isFinite(maxTs) && ts > maxTs) {
|
|
10561
|
+
break;
|
|
10562
|
+
}
|
|
10563
|
+
if (isEnabled(ts)) {
|
|
10564
|
+
return ts;
|
|
10565
|
+
}
|
|
10249
10566
|
}
|
|
10250
10567
|
|
|
10251
10568
|
// 4. First previous enabled date (scan backward from yesterday, capped by min and MAX_SCAN_DAYS).
|
|
10252
|
-
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx
|
|
10569
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10253
10570
|
const ts = addDays(now, -idx);
|
|
10254
|
-
if (Number.isFinite(minTs) && ts < minTs)
|
|
10255
|
-
|
|
10571
|
+
if (Number.isFinite(minTs) && ts < minTs) {
|
|
10572
|
+
break;
|
|
10573
|
+
}
|
|
10574
|
+
if (isEnabled(ts)) {
|
|
10575
|
+
return ts;
|
|
10576
|
+
}
|
|
10256
10577
|
}
|
|
10257
10578
|
|
|
10258
10579
|
// 5. If scans missed (e.g. min/max range is far from today), fall back to
|
|
10259
10580
|
// the first enabled date in the [min, max] range.
|
|
10260
10581
|
if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
10261
10582
|
let ts = minTs;
|
|
10262
|
-
for (let idx = 0; ts <= maxTs; idx
|
|
10263
|
-
if (isEnabled(ts))
|
|
10583
|
+
for (let idx = 0; ts <= maxTs; idx += 1) {
|
|
10584
|
+
if (isEnabled(ts)) {
|
|
10585
|
+
return ts;
|
|
10586
|
+
}
|
|
10264
10587
|
ts = addDays(minTs, idx + 1);
|
|
10265
10588
|
}
|
|
10266
10589
|
}
|
|
@@ -10268,29 +10591,191 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10268
10591
|
// 5b. Finite min with unbounded max (e.g. minDate far in the future):
|
|
10269
10592
|
// scan forward from min for up to MAX_SCAN_DAYS.
|
|
10270
10593
|
if (Number.isFinite(minTs) && !Number.isFinite(maxTs)) {
|
|
10271
|
-
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx
|
|
10594
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10272
10595
|
const ts = addDays(minTs, idx);
|
|
10273
|
-
if (isEnabled(ts))
|
|
10596
|
+
if (isEnabled(ts)) {
|
|
10597
|
+
return ts;
|
|
10598
|
+
}
|
|
10274
10599
|
}
|
|
10275
10600
|
}
|
|
10276
10601
|
|
|
10277
10602
|
// 5c. Unbounded min with a finite max far in the past (e.g. birth-date picker):
|
|
10278
10603
|
// scan backward from max for up to MAX_SCAN_DAYS.
|
|
10279
10604
|
if (!Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
10280
|
-
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx
|
|
10605
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10281
10606
|
const ts = addDays(maxTs, -idx);
|
|
10282
|
-
if (isEnabled(ts))
|
|
10607
|
+
if (isEnabled(ts)) {
|
|
10608
|
+
return ts;
|
|
10609
|
+
}
|
|
10283
10610
|
}
|
|
10284
10611
|
}
|
|
10285
10612
|
|
|
10286
10613
|
// 6. All dates are blackout — fall back to the first in-range date so focus
|
|
10287
10614
|
// still lands on a focusable (but not selectable) cell.
|
|
10288
|
-
if (Number.isFinite(minTs) && isInRange(minTs))
|
|
10289
|
-
|
|
10615
|
+
if (Number.isFinite(minTs) && isInRange(minTs)) {
|
|
10616
|
+
return minTs;
|
|
10617
|
+
}
|
|
10618
|
+
if (isInRange(now)) {
|
|
10619
|
+
return now;
|
|
10620
|
+
}
|
|
10290
10621
|
|
|
10291
10622
|
return undefined;
|
|
10292
10623
|
}
|
|
10293
10624
|
|
|
10625
|
+
/**
|
|
10626
|
+
* Checks if a target date (unix seconds) is within the configured [min, max] range.
|
|
10627
|
+
* Returns false if the date falls outside the range, preventing navigation
|
|
10628
|
+
* to months where all dates are disabled.
|
|
10629
|
+
* @private
|
|
10630
|
+
* @param {Number} targetTs - Unix timestamp in seconds.
|
|
10631
|
+
* @returns {Boolean} True if the date is within range.
|
|
10632
|
+
*/
|
|
10633
|
+
isDateInRange(targetTs) {
|
|
10634
|
+
const rawMin = Number(this.min);
|
|
10635
|
+
const rawMax = Number(this.max);
|
|
10636
|
+
if (Number.isFinite(rawMin) && targetTs < rawMin) {
|
|
10637
|
+
return false;
|
|
10638
|
+
}
|
|
10639
|
+
if (Number.isFinite(rawMax) && targetTs > rawMax) {
|
|
10640
|
+
return false;
|
|
10641
|
+
}
|
|
10642
|
+
return true;
|
|
10643
|
+
}
|
|
10644
|
+
|
|
10645
|
+
/**
|
|
10646
|
+
* Handles arrow key navigation on the calendar grid wrapper.
|
|
10647
|
+
* Focus stays on the grid wrapper; only ariaActiveDescendantElement
|
|
10648
|
+
* and the visual active-cell indicator change.
|
|
10649
|
+
* @private
|
|
10650
|
+
* @param {KeyboardEvent} event - The keyboard event.
|
|
10651
|
+
* @returns {void}
|
|
10652
|
+
*/
|
|
10653
|
+
handleGridKeyDown(event) {
|
|
10654
|
+
const { key } = event;
|
|
10655
|
+
const actionKeys = [
|
|
10656
|
+
'ArrowRight',
|
|
10657
|
+
'ArrowLeft',
|
|
10658
|
+
'ArrowDown',
|
|
10659
|
+
'ArrowUp',
|
|
10660
|
+
'Enter',
|
|
10661
|
+
' '
|
|
10662
|
+
];
|
|
10663
|
+
|
|
10664
|
+
if (!actionKeys.includes(key)) {
|
|
10665
|
+
return;
|
|
10666
|
+
}
|
|
10667
|
+
|
|
10668
|
+
event.preventDefault();
|
|
10669
|
+
|
|
10670
|
+
const allCells = this.getAllFocusableCells();
|
|
10671
|
+
if (allCells.length === 0) {
|
|
10672
|
+
return;
|
|
10673
|
+
}
|
|
10674
|
+
|
|
10675
|
+
const activeCell = allCells.find((cell) => cell.active);
|
|
10676
|
+
if (!activeCell) {
|
|
10677
|
+
return;
|
|
10678
|
+
}
|
|
10679
|
+
|
|
10680
|
+
// Handle Enter/Space to select the active cell
|
|
10681
|
+
if (key === 'Enter' || key === ' ') {
|
|
10682
|
+
activeCell.handleTap();
|
|
10683
|
+
return;
|
|
10684
|
+
}
|
|
10685
|
+
|
|
10686
|
+
const activeIndex = allCells.indexOf(activeCell);
|
|
10687
|
+
|
|
10688
|
+
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
10689
|
+
const direction = key === 'ArrowRight' ? 1 : -1;
|
|
10690
|
+
const targetIndex = activeIndex + direction;
|
|
10691
|
+
|
|
10692
|
+
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
10693
|
+
// Target cell exists in rendered months
|
|
10694
|
+
this.setActiveCell(allCells[targetIndex].day.date);
|
|
10695
|
+
this.scrollToActiveCell();
|
|
10696
|
+
// Dispatch focus event for the cell so live region + range preview update
|
|
10697
|
+
this.handleCellFocused({ detail: { date: allCells[targetIndex].day.date } });
|
|
10698
|
+
} else {
|
|
10699
|
+
// At boundary — need to navigate to next/prev month
|
|
10700
|
+
const navDir = direction === 1 ? 'next' : 'prev';
|
|
10701
|
+
const targetDate = new Date(activeCell.day.date * 1000);
|
|
10702
|
+
targetDate.setDate(targetDate.getDate() + direction);
|
|
10703
|
+
targetDate.setHours(0, 0, 0, 0);
|
|
10704
|
+
const targetTs = Math.floor(targetDate.getTime() / 1000);
|
|
10705
|
+
|
|
10706
|
+
if (this.isDateInRange(targetTs) && ((navDir === 'next' && this.showNextMonthBtn) || (navDir === 'prev' && this.showPrevMonthBtn))) { // eslint-disable-line no-extra-parens
|
|
10707
|
+
|
|
10708
|
+
if (navDir === 'next') {
|
|
10709
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10710
|
+
} else {
|
|
10711
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10712
|
+
}
|
|
10713
|
+
requestAnimationFrame(() => {
|
|
10714
|
+
requestAnimationFrame(() => {
|
|
10715
|
+
const cells = this.getAllFocusableCells();
|
|
10716
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
10717
|
+
if (target) {
|
|
10718
|
+
this.setActiveCell(target.day.date);
|
|
10719
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
10720
|
+
} else if (cells.length > 0) {
|
|
10721
|
+
const fallback = navDir === 'next' ? cells[cells.length - 1] : cells[0];
|
|
10722
|
+
this.setActiveCell(fallback.day.date);
|
|
10723
|
+
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
10724
|
+
}
|
|
10725
|
+
// Re-focus grid wrapper after month change re-render
|
|
10726
|
+
this.focusActiveCell();
|
|
10727
|
+
});
|
|
10728
|
+
});
|
|
10729
|
+
}
|
|
10730
|
+
}
|
|
10731
|
+
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
10732
|
+
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
10733
|
+
const currentDate = new Date(activeCell.day.date * 1000);
|
|
10734
|
+
currentDate.setDate(currentDate.getDate() + increment);
|
|
10735
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
10736
|
+
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
10737
|
+
|
|
10738
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
10739
|
+
|
|
10740
|
+
if (targetCell) {
|
|
10741
|
+
this.setActiveCell(targetCell.day.date);
|
|
10742
|
+
this.scrollToActiveCell();
|
|
10743
|
+
this.handleCellFocused({ detail: { date: targetCell.day.date } });
|
|
10744
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
10745
|
+
// Target might be in an unrendered month
|
|
10746
|
+
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
10747
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
10748
|
+
if (navDirection === 'next') {
|
|
10749
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10750
|
+
} else {
|
|
10751
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10752
|
+
}
|
|
10753
|
+
requestAnimationFrame(() => {
|
|
10754
|
+
requestAnimationFrame(() => {
|
|
10755
|
+
const cells = this.getAllFocusableCells();
|
|
10756
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
10757
|
+
if (target) {
|
|
10758
|
+
this.setActiveCell(target.day.date);
|
|
10759
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
10760
|
+
} else if (cells.length > 0) {
|
|
10761
|
+
let nearest = null;
|
|
10762
|
+
|
|
10763
|
+
if (navDirection === 'next') {
|
|
10764
|
+
[nearest] = cells;
|
|
10765
|
+
} else {
|
|
10766
|
+
nearest = cells[cells.length - 1];
|
|
10767
|
+
}
|
|
10768
|
+
this.setActiveCell(nearest.day.date);
|
|
10769
|
+
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
10770
|
+
}
|
|
10771
|
+
this.focusActiveCell();
|
|
10772
|
+
});
|
|
10773
|
+
});
|
|
10774
|
+
}
|
|
10775
|
+
}
|
|
10776
|
+
}
|
|
10777
|
+
}
|
|
10778
|
+
|
|
10294
10779
|
/**
|
|
10295
10780
|
* Handles cross-month boundary navigation events from month components.
|
|
10296
10781
|
* @private
|
|
@@ -10303,15 +10788,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10303
10788
|
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
10304
10789
|
// Linear navigation: find adjacent focusable cell across months
|
|
10305
10790
|
const allCells = this.getAllFocusableCells();
|
|
10306
|
-
const currentIndex = allCells.findIndex(cell => cell.day && cell.day.date === fromDate);
|
|
10791
|
+
const currentIndex = allCells.findIndex((cell) => cell.day && cell.day.date === fromDate);
|
|
10307
10792
|
|
|
10308
|
-
if (currentIndex === -1)
|
|
10793
|
+
if (currentIndex === -1) {
|
|
10794
|
+
return;
|
|
10795
|
+
}
|
|
10309
10796
|
|
|
10310
|
-
let targetIndex;
|
|
10797
|
+
let targetIndex = -1;
|
|
10311
10798
|
if (direction === 'next') {
|
|
10312
10799
|
targetIndex = currentIndex + 1;
|
|
10313
|
-
} else {
|
|
10314
|
-
targetIndex = currentIndex - 1;
|
|
10315
10800
|
}
|
|
10316
10801
|
|
|
10317
10802
|
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
@@ -10329,11 +10814,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10329
10814
|
nextDate.setHours(0, 0, 0, 0);
|
|
10330
10815
|
const nextTs = Math.floor(nextDate.getTime() / 1000);
|
|
10331
10816
|
|
|
10332
|
-
this.
|
|
10817
|
+
if (!this.isDateInRange(nextTs)) {
|
|
10818
|
+
return;
|
|
10819
|
+
}
|
|
10820
|
+
|
|
10821
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10333
10822
|
requestAnimationFrame(() => {
|
|
10334
10823
|
requestAnimationFrame(() => {
|
|
10335
10824
|
const cells = this.getAllFocusableCells();
|
|
10336
|
-
const target = cells.find(cell => cell.day && cell.day.date === nextTs);
|
|
10825
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
10337
10826
|
if (target) {
|
|
10338
10827
|
this.setActiveCell(target.day.date);
|
|
10339
10828
|
this.focusActiveCell();
|
|
@@ -10351,11 +10840,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10351
10840
|
prevDate.setHours(0, 0, 0, 0);
|
|
10352
10841
|
const prevTs = Math.floor(prevDate.getTime() / 1000);
|
|
10353
10842
|
|
|
10354
|
-
this.
|
|
10843
|
+
if (!this.isDateInRange(prevTs)) {
|
|
10844
|
+
return;
|
|
10845
|
+
}
|
|
10846
|
+
|
|
10847
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10355
10848
|
requestAnimationFrame(() => {
|
|
10356
10849
|
requestAnimationFrame(() => {
|
|
10357
10850
|
const cells = this.getAllFocusableCells();
|
|
10358
|
-
const target = cells.find(cell => cell.day && cell.day.date === prevTs);
|
|
10851
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
10359
10852
|
if (target) {
|
|
10360
10853
|
this.setActiveCell(target.day.date);
|
|
10361
10854
|
this.focusActiveCell();
|
|
@@ -10377,25 +10870,25 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10377
10870
|
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
10378
10871
|
|
|
10379
10872
|
const allCells = this.getAllFocusableCells();
|
|
10380
|
-
|
|
10873
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
10381
10874
|
|
|
10382
10875
|
if (targetCell) {
|
|
10383
10876
|
this.setActiveCell(targetCell.day.date);
|
|
10384
10877
|
this.scrollToActiveCell();
|
|
10385
10878
|
this.focusActiveCell();
|
|
10386
|
-
} else {
|
|
10879
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
10387
10880
|
// Target might be in an unrendered month, navigate there
|
|
10388
10881
|
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
10389
|
-
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) {
|
|
10882
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
10390
10883
|
if (navDirection === 'next') {
|
|
10391
|
-
this.handleNextMonth();
|
|
10884
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10392
10885
|
} else {
|
|
10393
|
-
this.handlePrevMonth();
|
|
10886
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10394
10887
|
}
|
|
10395
10888
|
requestAnimationFrame(() => {
|
|
10396
10889
|
requestAnimationFrame(() => {
|
|
10397
10890
|
const cells = this.getAllFocusableCells();
|
|
10398
|
-
const target = cells.find(cell => cell.day && cell.day.date === targetDate);
|
|
10891
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
10399
10892
|
if (target) {
|
|
10400
10893
|
this.setActiveCell(target.day.date);
|
|
10401
10894
|
this.focusActiveCell();
|
|
@@ -10421,7 +10914,195 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10421
10914
|
handleCellActivate(event) {
|
|
10422
10915
|
const { date } = event.detail;
|
|
10423
10916
|
this.setActiveCell(date);
|
|
10424
|
-
|
|
10917
|
+
|
|
10918
|
+
// Don't call focusActiveCell() here. The tap/click already placed
|
|
10919
|
+
// focus on the cell button, and moving it to #calendarGrid would
|
|
10920
|
+
// trigger focusout on the button, closing any open popover on the
|
|
10921
|
+
// cell. Keyboard events are composed and still bubble through
|
|
10922
|
+
// shadow DOM boundaries to the grid's @keydown handler, so
|
|
10923
|
+
// subsequent keyboard navigation continues to work.
|
|
10924
|
+
}
|
|
10925
|
+
|
|
10926
|
+
/**
|
|
10927
|
+
* Handles focus events from calendar cells.
|
|
10928
|
+
* Updates the live region with an SR announcement and triggers
|
|
10929
|
+
* the imperative range preview if applicable.
|
|
10930
|
+
* @private
|
|
10931
|
+
* @param {CustomEvent} event - The calendar-cell-focused event.
|
|
10932
|
+
* @returns {void}
|
|
10933
|
+
*/
|
|
10934
|
+
handleCellFocused(event) {
|
|
10935
|
+
const { date } = event.detail;
|
|
10936
|
+
if (date === null) {
|
|
10937
|
+
return;
|
|
10938
|
+
}
|
|
10939
|
+
|
|
10940
|
+
// With aria-activedescendant, the button no longer receives native focus,
|
|
10941
|
+
// so we use the debounced live region for the full context announcement.
|
|
10942
|
+
const announcement = this.buildFocusAnnouncement(date);
|
|
10943
|
+
this.announceFocusDebounced(announcement);
|
|
10944
|
+
|
|
10945
|
+
// Update the range preview imperatively if in range-preview mode.
|
|
10946
|
+
this.updateRangePreview(date);
|
|
10947
|
+
}
|
|
10948
|
+
|
|
10949
|
+
/**
|
|
10950
|
+
* Builds a full SR announcement string for a focused cell date.
|
|
10951
|
+
* Includes the localized date, range position, popover content,
|
|
10952
|
+
* and blackout status.
|
|
10953
|
+
* @private
|
|
10954
|
+
* @param {Number} date - Unix timestamp (seconds) of the focused cell.
|
|
10955
|
+
* @returns {String} The announcement string.
|
|
10956
|
+
*/
|
|
10957
|
+
buildFocusAnnouncement(date) {
|
|
10958
|
+
let label = this.formatAnnouncementDate(date);
|
|
10959
|
+
|
|
10960
|
+
// Append date slot content (e.g. prices) if present.
|
|
10961
|
+
const dateObj = new Date(date * 1000);
|
|
10962
|
+
const mm = String(dateObj.getMonth() + 1).padStart(2, '0');
|
|
10963
|
+
const dd = String(dateObj.getDate()).padStart(2, '0');
|
|
10964
|
+
const yyyy = dateObj.getFullYear();
|
|
10965
|
+
const dateStr = `${mm}_${dd}_${yyyy}`;
|
|
10966
|
+
const dateSlotEl = this.datepicker?.querySelector(`[slot="date_${dateStr}"]`);
|
|
10967
|
+
if (dateSlotEl) {
|
|
10968
|
+
const text = dateSlotEl.innerText?.trim();
|
|
10969
|
+
if (text) {
|
|
10970
|
+
label += `, ${text}`;
|
|
10971
|
+
}
|
|
10972
|
+
}
|
|
10973
|
+
|
|
10974
|
+
// Append popover content if present.
|
|
10975
|
+
const popoverEl = this.datepicker?.querySelector(`[slot="popover_${dateStr}"]`);
|
|
10976
|
+
if (popoverEl) {
|
|
10977
|
+
const text = popoverEl.innerText?.trim();
|
|
10978
|
+
if (text) {
|
|
10979
|
+
label += `, ${text}`;
|
|
10980
|
+
}
|
|
10981
|
+
}
|
|
10982
|
+
|
|
10983
|
+
// Append range position context.
|
|
10984
|
+
if (this.datepicker?.hasAttribute('range')) {
|
|
10985
|
+
const rangeLabel = this.getRangePositionLabel(date);
|
|
10986
|
+
if (rangeLabel) {
|
|
10987
|
+
label += `, ${rangeLabel}`;
|
|
10988
|
+
}
|
|
10989
|
+
}
|
|
10990
|
+
|
|
10991
|
+
// Append blackout label.
|
|
10992
|
+
if (this.isDateBlackout(date)) {
|
|
10993
|
+
label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
|
|
10994
|
+
}
|
|
10995
|
+
|
|
10996
|
+
return label;
|
|
10997
|
+
}
|
|
10998
|
+
|
|
10999
|
+
/**
|
|
11000
|
+
* Determines the range position label for a given date.
|
|
11001
|
+
* @private
|
|
11002
|
+
* @param {Number} date - Unix timestamp (seconds).
|
|
11003
|
+
* @returns {String|null} The range position label, or null.
|
|
11004
|
+
*/
|
|
11005
|
+
getRangePositionLabel(date) {
|
|
11006
|
+
const parsedFrom = Number.parseInt(this.dateFrom, 10);
|
|
11007
|
+
if (!Number.isFinite(parsedFrom)) {
|
|
11008
|
+
return null;
|
|
11009
|
+
}
|
|
11010
|
+
|
|
11011
|
+
const departTs = startOfDay(parsedFrom * 1000) / 1000;
|
|
11012
|
+
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
11013
|
+
const hasTo = Number.isFinite(parsedTo);
|
|
11014
|
+
const returnTs = hasTo ? startOfDay(parsedTo * 1000) / 1000 : null;
|
|
11015
|
+
|
|
11016
|
+
if (date === departTs) {
|
|
11017
|
+
return this.datepicker.rangeLabelStart || 'range start';
|
|
11018
|
+
}
|
|
11019
|
+
if (hasTo && date === returnTs) {
|
|
11020
|
+
return this.datepicker.rangeLabelEnd || 'range end';
|
|
11021
|
+
}
|
|
11022
|
+
if (date < departTs) {
|
|
11023
|
+
return this.datepicker.rangeLabelBeforeRange || 'before range';
|
|
11024
|
+
}
|
|
11025
|
+
if (hasTo && date > departTs && date < returnTs) {
|
|
11026
|
+
return this.datepicker.rangeLabelInRange || 'in range';
|
|
11027
|
+
}
|
|
11028
|
+
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
11029
|
+
}
|
|
11030
|
+
|
|
11031
|
+
/**
|
|
11032
|
+
* Checks whether a given date is a blackout date.
|
|
11033
|
+
* @private
|
|
11034
|
+
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
11035
|
+
* @returns {Boolean} True if the date is blacked out.
|
|
11036
|
+
*/
|
|
11037
|
+
isDateBlackout(dateTs) {
|
|
11038
|
+
// Check legacy disabledDays.
|
|
11039
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
11040
|
+
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
11041
|
+
return true;
|
|
11042
|
+
}
|
|
11043
|
+
}
|
|
11044
|
+
|
|
11045
|
+
// Check ISO blackoutDates.
|
|
11046
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
11047
|
+
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
11048
|
+
const date = new Date(dateTs * 1000);
|
|
11049
|
+
const yyyy = date.getFullYear();
|
|
11050
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
11051
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
11052
|
+
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
11053
|
+
return true;
|
|
11054
|
+
}
|
|
11055
|
+
}
|
|
11056
|
+
|
|
11057
|
+
return false;
|
|
11058
|
+
}
|
|
11059
|
+
|
|
11060
|
+
/**
|
|
11061
|
+
* Updates the range preview classes imperatively across all cells.
|
|
11062
|
+
* Only active when in range mode with dateFrom set and dateTo not yet set.
|
|
11063
|
+
* @private
|
|
11064
|
+
* @param {Number} hoveredDate - Unix timestamp of the hovered/focused date.
|
|
11065
|
+
* @returns {void}
|
|
11066
|
+
*/
|
|
11067
|
+
updateRangePreview(hoveredDate) {
|
|
11068
|
+
if (this.noRange || !this.dateFrom || this.dateTo) {
|
|
11069
|
+
return;
|
|
11070
|
+
}
|
|
11071
|
+
|
|
11072
|
+
const parsedDateFrom = parseInt(this.dateFrom, 10);
|
|
11073
|
+
const allCells = this.getAllFocusableCells();
|
|
11074
|
+
|
|
11075
|
+
allCells.forEach((cell) => {
|
|
11076
|
+
cell.updateRangePreviewClasses(hoveredDate, parsedDateFrom);
|
|
11077
|
+
});
|
|
11078
|
+
}
|
|
11079
|
+
|
|
11080
|
+
/**
|
|
11081
|
+
* Clears range preview classes from all cells.
|
|
11082
|
+
* @private
|
|
11083
|
+
* @returns {void}
|
|
11084
|
+
*/
|
|
11085
|
+
clearRangePreview() {
|
|
11086
|
+
if (this.dateFrom && this.dateTo) {
|
|
11087
|
+
return;
|
|
11088
|
+
}
|
|
11089
|
+
|
|
11090
|
+
const allCells = this.getAllFocusableCells();
|
|
11091
|
+
allCells.forEach((cell) => {
|
|
11092
|
+
cell.clearRangePreviewClasses();
|
|
11093
|
+
});
|
|
11094
|
+
}
|
|
11095
|
+
|
|
11096
|
+
/**
|
|
11097
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
11098
|
+
* as a reactive property. Instead, handles the range preview imperatively.
|
|
11099
|
+
* @private
|
|
11100
|
+
* @param {CustomEvent} event - The hovered-date-changed event from a month.
|
|
11101
|
+
* @returns {void}
|
|
11102
|
+
*/
|
|
11103
|
+
hoveredDateChanged(event) {
|
|
11104
|
+
const hoveredDate = event.detail.value;
|
|
11105
|
+
this.updateRangePreview(hoveredDate);
|
|
10425
11106
|
}
|
|
10426
11107
|
|
|
10427
11108
|
/**
|
|
@@ -10430,7 +11111,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10430
11111
|
* @returns {void}
|
|
10431
11112
|
*/
|
|
10432
11113
|
scrollToActiveCell() {
|
|
10433
|
-
if (this.activeCellDate
|
|
11114
|
+
if (this.activeCellDate === null || this.activeCellDate === undefined) {
|
|
11115
|
+
return;
|
|
11116
|
+
}
|
|
10434
11117
|
|
|
10435
11118
|
const date = new Date(this.activeCellDate * 1000);
|
|
10436
11119
|
const month = date.getMonth() + 1;
|
|
@@ -10440,25 +11123,138 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10440
11123
|
|
|
10441
11124
|
if (monthElem) {
|
|
10442
11125
|
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
10443
|
-
monthElem.scrollIntoView({ block: 'nearest',
|
|
11126
|
+
monthElem.scrollIntoView({ block: 'nearest',
|
|
11127
|
+
behavior: prefersReducedMotion ? 'instant' : 'smooth' });
|
|
11128
|
+
}
|
|
11129
|
+
}
|
|
11130
|
+
|
|
11131
|
+
/**
|
|
11132
|
+
* Returns (and lazily creates) an aria-live region inside the dropdown's
|
|
11133
|
+
* <dialog> element. This placement is critical for two reasons:
|
|
11134
|
+
*
|
|
11135
|
+
* 1. Inside the dialog's accessible scope — dialog.showModal() makes
|
|
11136
|
+
* everything outside the top-layer dialog inert, and desktop modal
|
|
11137
|
+
* mode uses _setPageInert() on document.body siblings. A live region
|
|
11138
|
+
* on document.body would be invisible to screen readers in both cases.
|
|
11139
|
+
*
|
|
11140
|
+
* 2. Not nested in shadow DOM — Chrome inconsistently observes aria-live
|
|
11141
|
+
* mutations inside shadow DOM across machines and versions. The dialog
|
|
11142
|
+
* element is only one shadow root deep (the dropdown bib's shadow DOM),
|
|
11143
|
+
* which Chrome handles reliably. The calendar's own shadow DOM (nested
|
|
11144
|
+
* inside the bib via slotting) is two+ levels deep and unreliable.
|
|
11145
|
+
*
|
|
11146
|
+
* @private
|
|
11147
|
+
* @returns {HTMLElement} The live region element.
|
|
11148
|
+
*/
|
|
11149
|
+
getOrCreateLiveRegion() {
|
|
11150
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
11151
|
+
return this._liveRegion;
|
|
11152
|
+
}
|
|
11153
|
+
|
|
11154
|
+
// Access the dialog element inside the dropdown bib's shadow DOM.
|
|
11155
|
+
const dialog = this.dropdown?.bibContent?.shadowRoot?.querySelector('dialog');
|
|
11156
|
+
if (!dialog) {
|
|
11157
|
+
return null;
|
|
11158
|
+
}
|
|
11159
|
+
|
|
11160
|
+
// Check if we already created one for this calendar instance.
|
|
11161
|
+
const regionId = `auro-calendar-live-${this._calendarInstanceId}`;
|
|
11162
|
+
const existing = dialog.querySelector(`#${regionId}`);
|
|
11163
|
+
if (existing) {
|
|
11164
|
+
this._liveRegion = existing;
|
|
11165
|
+
return existing;
|
|
11166
|
+
}
|
|
11167
|
+
|
|
11168
|
+
const el = document.createElement('div');
|
|
11169
|
+
el.id = regionId;
|
|
11170
|
+
el.setAttribute('aria-live', 'assertive');
|
|
11171
|
+
el.setAttribute('aria-atomic', 'true');
|
|
11172
|
+
el.style.cssText = 'position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;';
|
|
11173
|
+
dialog.appendChild(el);
|
|
11174
|
+
|
|
11175
|
+
this._liveRegion = el;
|
|
11176
|
+
return el;
|
|
11177
|
+
}
|
|
11178
|
+
|
|
11179
|
+
/**
|
|
11180
|
+
* Removes the live region when this calendar is disconnected.
|
|
11181
|
+
* @private
|
|
11182
|
+
* @returns {void}
|
|
11183
|
+
*/
|
|
11184
|
+
disconnectedCallback() {
|
|
11185
|
+
super.disconnectedCallback();
|
|
11186
|
+
|
|
11187
|
+
// Cancel any pending announcements so they don't fire after teardown.
|
|
11188
|
+
if (this._announceRafId) {
|
|
11189
|
+
cancelAnimationFrame(this._announceRafId);
|
|
11190
|
+
this._announceRafId = null;
|
|
11191
|
+
}
|
|
11192
|
+
if (this._focusAnnounceTimer) {
|
|
11193
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
11194
|
+
this._focusAnnounceTimer = null;
|
|
10444
11195
|
}
|
|
11196
|
+
|
|
11197
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
11198
|
+
this._liveRegion.remove();
|
|
11199
|
+
}
|
|
11200
|
+
this._liveRegion = null;
|
|
10445
11201
|
}
|
|
10446
11202
|
|
|
10447
11203
|
/**
|
|
10448
|
-
* Announces a date selection via the live region.
|
|
11204
|
+
* Announces a date selection or focus change via the live region.
|
|
11205
|
+
* Uses requestAnimationFrame to ensure the clear and set happen in
|
|
11206
|
+
* separate rendering frames — Chrome may coalesce synchronous or
|
|
11207
|
+
* microtask-deferred mutations into a single accessibility tree update.
|
|
10449
11208
|
* @private
|
|
10450
11209
|
* @param {String} dateStr - The localized date string to announce.
|
|
10451
11210
|
* @returns {void}
|
|
10452
11211
|
*/
|
|
10453
11212
|
announceSelection(dateStr) {
|
|
10454
|
-
|
|
10455
|
-
|
|
10456
|
-
|
|
10457
|
-
|
|
10458
|
-
|
|
11213
|
+
// Cancel any previously queued rAF announcement so a rapid
|
|
11214
|
+
// sequence of calls (e.g. bib open → month nav) only announces
|
|
11215
|
+
// the last one.
|
|
11216
|
+
if (this._announceRafId) {
|
|
11217
|
+
cancelAnimationFrame(this._announceRafId);
|
|
11218
|
+
}
|
|
11219
|
+
const liveRegion = this.getOrCreateLiveRegion();
|
|
11220
|
+
if (!liveRegion) {
|
|
11221
|
+
return;
|
|
11222
|
+
}
|
|
11223
|
+
|
|
11224
|
+
// Double-rAF: clear in frame N, set in frame N+1. Chrome batches
|
|
11225
|
+
// accessibility tree mutations within a single animation frame, so
|
|
11226
|
+
// a same-frame clear+set can be coalesced into a no-op if the new
|
|
11227
|
+
// value matches a recently announced string. Splitting across two
|
|
11228
|
+
// frames guarantees Chrome sees two distinct tree states and fires
|
|
11229
|
+
// a new accessibility event for the content change.
|
|
11230
|
+
liveRegion.textContent = '';
|
|
11231
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
11232
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
10459
11233
|
liveRegion.textContent = dateStr;
|
|
11234
|
+
this._announceRafId = null;
|
|
10460
11235
|
});
|
|
11236
|
+
});
|
|
11237
|
+
}
|
|
11238
|
+
|
|
11239
|
+
/**
|
|
11240
|
+
* Debounced version of announceSelection for focus navigation.
|
|
11241
|
+
* Uses the assertive live region with a 150ms debounce so only the
|
|
11242
|
+
* final cell after rapid arrow-key traversal is announced. We
|
|
11243
|
+
* originally tried aria-live="polite" here, but VoiceOver treats
|
|
11244
|
+
* polite as "wait until idle" — which never happens during active
|
|
11245
|
+
* keyboard navigation — so the announcements were silently dropped.
|
|
11246
|
+
* @private
|
|
11247
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
11248
|
+
* @returns {void}
|
|
11249
|
+
*/
|
|
11250
|
+
announceFocusDebounced(dateStr) {
|
|
11251
|
+
if (this._focusAnnounceTimer) {
|
|
11252
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
10461
11253
|
}
|
|
11254
|
+
this._focusAnnounceTimer = setTimeout(() => {
|
|
11255
|
+
this.announceSelection(dateStr);
|
|
11256
|
+
this._focusAnnounceTimer = null;
|
|
11257
|
+
}, 150);
|
|
10462
11258
|
}
|
|
10463
11259
|
|
|
10464
11260
|
/**
|
|
@@ -10471,12 +11267,16 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10471
11267
|
const date = new Date(parseInt(timestamp, 10) * 1000);
|
|
10472
11268
|
const localeCode = this.locale?.code || undefined;
|
|
10473
11269
|
const formatter = new Intl.DateTimeFormat(localeCode, {
|
|
10474
|
-
weekday: 'long',
|
|
11270
|
+
weekday: 'long',
|
|
11271
|
+
year: 'numeric',
|
|
11272
|
+
month: 'long',
|
|
11273
|
+
day: 'numeric'
|
|
10475
11274
|
});
|
|
10476
11275
|
return formatter.format(date);
|
|
10477
11276
|
}
|
|
10478
11277
|
|
|
10479
11278
|
firstUpdated() {
|
|
11279
|
+
|
|
10480
11280
|
this.addEventListener('date-from-changed', () => {
|
|
10481
11281
|
this.dispatchEvent(new CustomEvent('auroCalendar-dateSelected', {
|
|
10482
11282
|
bubbles: true,
|
|
@@ -10505,6 +11305,11 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10505
11305
|
this.addEventListener('calendar-cell-activate', (event) => {
|
|
10506
11306
|
this.handleCellActivate(event);
|
|
10507
11307
|
});
|
|
11308
|
+
|
|
11309
|
+
// Listen for cell focus events (SR announcements + range preview)
|
|
11310
|
+
this.addEventListener('calendar-cell-focused', (event) => {
|
|
11311
|
+
this.handleCellFocused(event);
|
|
11312
|
+
});
|
|
10508
11313
|
}
|
|
10509
11314
|
|
|
10510
11315
|
injectSlot(slotName, nodes) {
|
|
@@ -10531,7 +11336,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10531
11336
|
if (changedProperties.has('visible')) {
|
|
10532
11337
|
if (this.visible) {
|
|
10533
11338
|
// Compute the active date eagerly from data — no DOM needed.
|
|
10534
|
-
if (this.activeCellDate == null) {
|
|
11339
|
+
if (this.activeCellDate == null) { // eslint-disable-line no-eq-null, eqeqeq
|
|
10535
11340
|
this.activeCellDate = this.computeActiveDate();
|
|
10536
11341
|
}
|
|
10537
11342
|
|
|
@@ -10599,7 +11404,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10599
11404
|
</button>
|
|
10600
11405
|
` : undefined}
|
|
10601
11406
|
</div>
|
|
10602
|
-
<div class="calendars">
|
|
11407
|
+
<div id="calendarGrid" class="calendars" role="group" tabindex="0" @keydown="${this.handleGridKeyDown}" @focusin="${this.handleGridFocusIn}" @focusout="${this.handleGridFocusOut}" @calendar-month-mouseleave="${this.clearRangePreview}">
|
|
10603
11408
|
${this.renderAllCalendars()}
|
|
10604
11409
|
</div>
|
|
10605
11410
|
</div>
|
|
@@ -14484,7 +15289,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
|
|
|
14484
15289
|
}
|
|
14485
15290
|
};
|
|
14486
15291
|
|
|
14487
|
-
var formkitVersion$1 = '
|
|
15292
|
+
var formkitVersion$1 = '202606030033';
|
|
14488
15293
|
|
|
14489
15294
|
let AuroElement$2 = class AuroElement extends LitElement {
|
|
14490
15295
|
static get properties() {
|
|
@@ -15477,13 +16282,20 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
15477
16282
|
|
|
15478
16283
|
// Walk up the ancestor chain, inerting siblings at each level
|
|
15479
16284
|
// to ensure the entire page outside the host subtree is inert.
|
|
16285
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
16286
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
15480
16287
|
let current = host;
|
|
15481
16288
|
while (current.parentElement) {
|
|
15482
16289
|
const parent = current.parentElement;
|
|
15483
16290
|
for (const sibling of parent.children) {
|
|
15484
16291
|
if (sibling !== current) {
|
|
15485
|
-
|
|
16292
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
16293
|
+
if (count === 0) {
|
|
16294
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
16295
|
+
}
|
|
16296
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
15486
16297
|
sibling.inert = true;
|
|
16298
|
+
this._inertSiblings.push(sibling);
|
|
15487
16299
|
}
|
|
15488
16300
|
}
|
|
15489
16301
|
current = parent;
|
|
@@ -15492,14 +16304,23 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
15492
16304
|
|
|
15493
16305
|
/**
|
|
15494
16306
|
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
15495
|
-
*
|
|
15496
|
-
*
|
|
16307
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
16308
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
16309
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
15497
16310
|
* @private
|
|
15498
16311
|
*/
|
|
15499
16312
|
_clearPageInert() {
|
|
15500
16313
|
if (this._inertSiblings) {
|
|
15501
|
-
for (const
|
|
15502
|
-
|
|
16314
|
+
for (const sibling of this._inertSiblings) {
|
|
16315
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
16316
|
+
if (count <= 0) {
|
|
16317
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
16318
|
+
delete sibling.dataset.auroInertCount;
|
|
16319
|
+
delete sibling.dataset.auroInertWas;
|
|
16320
|
+
sibling.inert = wasInert;
|
|
16321
|
+
} else {
|
|
16322
|
+
sibling.dataset.auroInertCount = String(count);
|
|
16323
|
+
}
|
|
15503
16324
|
}
|
|
15504
16325
|
this._inertSiblings = undefined;
|
|
15505
16326
|
}
|
|
@@ -19817,109 +20638,236 @@ class AuroInputUtilities {
|
|
|
19817
20638
|
}
|
|
19818
20639
|
}
|
|
19819
20640
|
|
|
19820
|
-
|
|
20641
|
+
/**
|
|
20642
|
+
* @description Splits a date string into its parts according to the provided format. Does NOT validate that the result is a real calendar date — use `parseDate` when validation is required.
|
|
20643
|
+
* @param {string} dateStr - Date string to parse.
|
|
20644
|
+
* @param {string} format - Date format to parse.
|
|
20645
|
+
* @returns {{ month?: string, day?: string, year?: string }|undefined}
|
|
20646
|
+
*/
|
|
20647
|
+
function getDateParts(dateStr, format) {
|
|
20648
|
+
if (!dateStr) {
|
|
20649
|
+
return undefined;
|
|
20650
|
+
}
|
|
20651
|
+
|
|
20652
|
+
const formatSeparatorMatch = format.match(/[/.-]/);
|
|
20653
|
+
let valueParts;
|
|
20654
|
+
let formatParts;
|
|
19821
20655
|
|
|
19822
|
-
|
|
20656
|
+
if (formatSeparatorMatch) {
|
|
20657
|
+
const separator = formatSeparatorMatch[0];
|
|
20658
|
+
valueParts = dateStr.split(separator);
|
|
20659
|
+
formatParts = format.split(separator);
|
|
20660
|
+
} else {
|
|
20661
|
+
if (dateStr.match(/[/.-]/)) {
|
|
20662
|
+
throw new Error(
|
|
20663
|
+
"AuroDatepickerUtilities | parseDate: Date string has no separators",
|
|
20664
|
+
);
|
|
20665
|
+
}
|
|
19823
20666
|
|
|
19824
|
-
|
|
19825
|
-
|
|
19826
|
-
|
|
19827
|
-
|
|
19828
|
-
|
|
19829
|
-
*/
|
|
19830
|
-
this.parseDate = (dateStr, format = 'mm/dd/yyyy') => {
|
|
20667
|
+
if (dateStr.length !== format.length) {
|
|
20668
|
+
throw new Error(
|
|
20669
|
+
"AuroDatepickerUtilities | parseDate: Date string and format length do not match",
|
|
20670
|
+
);
|
|
20671
|
+
}
|
|
19831
20672
|
|
|
19832
|
-
|
|
19833
|
-
|
|
19834
|
-
|
|
19835
|
-
}
|
|
20673
|
+
valueParts = [dateStr];
|
|
20674
|
+
formatParts = [format];
|
|
20675
|
+
}
|
|
19836
20676
|
|
|
19837
|
-
|
|
19838
|
-
|
|
20677
|
+
if (valueParts.length !== formatParts.length) {
|
|
20678
|
+
throw new Error(
|
|
20679
|
+
`AuroDatepickerUtilities | parseDate: Date string and format do not match : ${dateStr} vs ${format}`,
|
|
20680
|
+
);
|
|
20681
|
+
}
|
|
19839
20682
|
|
|
19840
|
-
|
|
19841
|
-
|
|
19842
|
-
const formatParts = format.split(separator);
|
|
20683
|
+
const result = formatParts.reduce((acc, part, index) => {
|
|
20684
|
+
const value = valueParts[index];
|
|
19843
20685
|
|
|
19844
|
-
|
|
19845
|
-
|
|
19846
|
-
|
|
19847
|
-
|
|
20686
|
+
if (/m/iu.test(part) && part.length === value.length) {
|
|
20687
|
+
acc.month = value;
|
|
20688
|
+
} else if (/d/iu.test(part) && part.length === value.length) {
|
|
20689
|
+
acc.day = value;
|
|
20690
|
+
} else if (/y/iu.test(part) && part.length === value.length) {
|
|
20691
|
+
acc.year = value;
|
|
20692
|
+
}
|
|
19848
20693
|
|
|
19849
|
-
|
|
19850
|
-
|
|
19851
|
-
const value = valueParts[index];
|
|
20694
|
+
return acc;
|
|
20695
|
+
}, {});
|
|
19852
20696
|
|
|
19853
|
-
|
|
19854
|
-
|
|
19855
|
-
|
|
19856
|
-
|
|
19857
|
-
|
|
19858
|
-
acc.year = value;
|
|
19859
|
-
}
|
|
20697
|
+
if (!result.month && !result.day && !result.year) {
|
|
20698
|
+
throw new Error(
|
|
20699
|
+
"AuroDatepickerUtilities | parseDate: Unable to parse date string",
|
|
20700
|
+
);
|
|
20701
|
+
}
|
|
19860
20702
|
|
|
19861
|
-
|
|
19862
|
-
|
|
20703
|
+
return result;
|
|
20704
|
+
}
|
|
19863
20705
|
|
|
19864
|
-
|
|
19865
|
-
|
|
19866
|
-
|
|
19867
|
-
|
|
20706
|
+
function isCalendarDate(year, month, day) {
|
|
20707
|
+
let yearNumber = Number(year);
|
|
20708
|
+
const monthNumber = Number(month);
|
|
20709
|
+
const dayNumber = Number(day);
|
|
19868
20710
|
|
|
19869
|
-
|
|
19870
|
-
|
|
19871
|
-
|
|
20711
|
+
if (
|
|
20712
|
+
!Number.isInteger(yearNumber) ||
|
|
20713
|
+
!Number.isInteger(monthNumber) ||
|
|
20714
|
+
!Number.isInteger(dayNumber)
|
|
20715
|
+
) {
|
|
20716
|
+
return false;
|
|
20717
|
+
}
|
|
19872
20718
|
|
|
19873
|
-
|
|
19874
|
-
|
|
19875
|
-
|
|
19876
|
-
|
|
19877
|
-
|
|
19878
|
-
|
|
19879
|
-
this.getDateAsString = (date, locale = undefined) => date.toLocaleDateString(locale, {
|
|
19880
|
-
year: "numeric",
|
|
19881
|
-
month: "2-digit",
|
|
19882
|
-
day: "2-digit",
|
|
19883
|
-
});
|
|
20719
|
+
// Handle 2-digit years by converting them to 4-digit years based on a cutoff. This allows for parsing of 2-digit year formats while still validating the resulting date.
|
|
20720
|
+
if (yearNumber < 100 && yearNumber >= 50) {
|
|
20721
|
+
yearNumber += 1900;
|
|
20722
|
+
} else if (yearNumber < 50) {
|
|
20723
|
+
yearNumber += 2000;
|
|
20724
|
+
}
|
|
19884
20725
|
|
|
19885
|
-
|
|
19886
|
-
|
|
19887
|
-
|
|
19888
|
-
|
|
19889
|
-
|
|
19890
|
-
|
|
19891
|
-
|
|
20726
|
+
const stringified = `${String(yearNumber).padStart(4, "0")}-${String(monthNumber).padStart(2, "0")}-${String(dayNumber).padStart(2, "0")}`;
|
|
20727
|
+
const date = new Date(stringified.replace(/[.-]/g, "/"));
|
|
20728
|
+
|
|
20729
|
+
return (
|
|
20730
|
+
!Number.isNaN(date.getTime()) && toISOFormatString(date) === stringified
|
|
20731
|
+
);
|
|
20732
|
+
}
|
|
20733
|
+
|
|
20734
|
+
/**
|
|
20735
|
+
* @description Parses a date string into its components and validates that the result is a real calendar date. Use `getDateParts` instead when raw splitting without validation is needed (e.g. for in-progress input).
|
|
20736
|
+
*
|
|
20737
|
+
* Partial formats are supported: components absent from `format` default to `year → "0"`,
|
|
20738
|
+
* `month → "01"`, `day → "01"` for calendar validation only. The returned object contains
|
|
20739
|
+
* only the fields actually present in the format string — missing fields are never injected.
|
|
20740
|
+
* @param {string} dateStr - Date string to parse.
|
|
20741
|
+
* @param {string} format - Date format to parse.
|
|
20742
|
+
* @returns {{ month?: string, day?: string, year?: string }|undefined}
|
|
20743
|
+
* @throws {Error} Throws when the parsed result does not represent a valid calendar date.
|
|
20744
|
+
*/
|
|
20745
|
+
function parseDate(dateStr, format = "mm/dd/yyyy") {
|
|
20746
|
+
if (!dateStr || !format) {
|
|
20747
|
+
return undefined;
|
|
20748
|
+
}
|
|
20749
|
+
const result = getDateParts(dateStr.trim(), format);
|
|
20750
|
+
|
|
20751
|
+
if (!result) {
|
|
20752
|
+
return undefined;
|
|
20753
|
+
}
|
|
20754
|
+
|
|
20755
|
+
const lowerFormat = format.toLowerCase();
|
|
20756
|
+
const year = lowerFormat.includes("yy") ? result.year : "0";
|
|
20757
|
+
const month = lowerFormat.includes("mm") ? result.month : "01";
|
|
20758
|
+
const day = lowerFormat.includes("dd") ? result.day : "01";
|
|
20759
|
+
|
|
20760
|
+
if (isCalendarDate(year, month, day)) {
|
|
20761
|
+
return result;
|
|
20762
|
+
}
|
|
20763
|
+
|
|
20764
|
+
throw new Error(
|
|
20765
|
+
`AuroDatepickerUtilities | parseDate: Date string is not a valid date ${JSON.stringify(result)} with format ${format}`,
|
|
20766
|
+
);
|
|
20767
|
+
}
|
|
20768
|
+
|
|
20769
|
+
/**
|
|
20770
|
+
* Convert a date object to string format.
|
|
20771
|
+
* @param {Object} date - Date to convert to string.
|
|
20772
|
+
* @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
|
|
20773
|
+
* @returns {String} Returns the date as a string.
|
|
20774
|
+
*/
|
|
20775
|
+
function getDateAsString(date, locale = undefined) {
|
|
20776
|
+
return date.toLocaleDateString(locale, {
|
|
20777
|
+
year: "numeric",
|
|
20778
|
+
month: "2-digit",
|
|
20779
|
+
day: "2-digit",
|
|
20780
|
+
});
|
|
20781
|
+
}
|
|
20782
|
+
|
|
20783
|
+
/**
|
|
20784
|
+
* Converts a date string to a North American date format.
|
|
20785
|
+
* @param {String} dateStr - Date to validate.
|
|
20786
|
+
* @param {String} format - Date format to validate against.
|
|
20787
|
+
* @returns {String}
|
|
20788
|
+
*/
|
|
20789
|
+
function toNorthAmericanFormat$1(dateStr, format) {
|
|
20790
|
+
if (format === "mm/dd/yyyy") {
|
|
20791
|
+
return dateStr;
|
|
20792
|
+
}
|
|
19892
20793
|
|
|
19893
|
-
|
|
19894
|
-
return dateStr;
|
|
19895
|
-
}
|
|
20794
|
+
const parsedDate = parseDate(dateStr, format);
|
|
19896
20795
|
|
|
19897
|
-
|
|
20796
|
+
if (!parsedDate) {
|
|
20797
|
+
throw new Error(
|
|
20798
|
+
"AuroDatepickerUtilities | toNorthAmericanFormat: Unable to parse date string",
|
|
20799
|
+
);
|
|
20800
|
+
}
|
|
19898
20801
|
|
|
19899
|
-
|
|
19900
|
-
throw new Error('AuroDatepickerUtilities | toNorthAmericanFormat: Unable to parse date string');
|
|
19901
|
-
}
|
|
20802
|
+
const { month, day, year } = parsedDate;
|
|
19902
20803
|
|
|
19903
|
-
|
|
20804
|
+
return [month, day, year].filter(Boolean).join("/");
|
|
20805
|
+
}
|
|
19904
20806
|
|
|
19905
|
-
|
|
19906
|
-
|
|
19907
|
-
|
|
19908
|
-
|
|
20807
|
+
/**
|
|
20808
|
+
* Validates that a date string matches the provided format and represents a real calendar date.
|
|
20809
|
+
*
|
|
20810
|
+
* @param {string} dateStr - Date string to validate.
|
|
20811
|
+
* @param {string} [format="yyyy-mm-dd"] - Format of the date string.
|
|
20812
|
+
* @returns {boolean} True when the date string is valid for the provided format, otherwise false.
|
|
20813
|
+
*/
|
|
20814
|
+
function isValidDate(dateStr, format = "yyyy-mm-dd") {
|
|
20815
|
+
try {
|
|
20816
|
+
if (typeof dateStr !== "string" || !dateStr || format?.length < 8) {
|
|
20817
|
+
return false;
|
|
20818
|
+
}
|
|
19909
20819
|
|
|
19910
|
-
|
|
19911
|
-
|
|
19912
|
-
|
|
20820
|
+
if (parseDate(dateStr, format)) {
|
|
20821
|
+
return true;
|
|
20822
|
+
}
|
|
20823
|
+
} catch (error) {
|
|
20824
|
+
return false;
|
|
20825
|
+
}
|
|
20826
|
+
return false;
|
|
20827
|
+
}
|
|
19913
20828
|
|
|
19914
|
-
|
|
19915
|
-
|
|
19916
|
-
|
|
20829
|
+
/**
|
|
20830
|
+
* Converts a JavaScript Date instance to a simple ISO-like date string. This returns only the calendar date portion without any time or timezone information.
|
|
20831
|
+
*
|
|
20832
|
+
* @param {Date} date - Date instance to convert to an ISO-like string.
|
|
20833
|
+
* @returns {string} A string in the format "yyyy-mm-dd" representing the provided date.
|
|
20834
|
+
* @throws {Error} Throws an error when the input is not a valid Date instance.
|
|
20835
|
+
*/
|
|
20836
|
+
function toISOFormatString(date) {
|
|
20837
|
+
if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
|
|
20838
|
+
throw new Error(
|
|
20839
|
+
"AuroDatepickerUtilities | toISOFormatString: Input must be a valid Date instance",
|
|
20840
|
+
);
|
|
20841
|
+
}
|
|
20842
|
+
return `${String(date.getFullYear()).padStart(4, "0")}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
|
|
20843
|
+
}
|
|
19917
20844
|
|
|
19918
|
-
|
|
19919
|
-
|
|
20845
|
+
/**
|
|
20846
|
+
* Converts a date string into a JavaScript Date instance. This method supports ISO formatted strings and other formats that can be parsed by the formatter.
|
|
20847
|
+
*
|
|
20848
|
+
* @param {String} dateStr - Date string to convert into a Date object.
|
|
20849
|
+
* @param {String} format - Date format used to parse the string when it is not in ISO format.
|
|
20850
|
+
* @returns {Date|null} Returns a Date instance for valid input or null for non-string input.
|
|
20851
|
+
* @throws {Error} Throws when parsing fails for non-ISO string input.
|
|
20852
|
+
*/
|
|
20853
|
+
function stringToDateInstance(dateStr, format = "yyyy-mm-dd") {
|
|
20854
|
+
if (typeof dateStr !== "string") {
|
|
20855
|
+
return null;
|
|
19920
20856
|
}
|
|
20857
|
+
|
|
20858
|
+
const { month, day, year } = parseDate(dateStr, format);
|
|
20859
|
+
return new Date(`${year}/${month}/${day}`);
|
|
19921
20860
|
}
|
|
19922
|
-
|
|
20861
|
+
|
|
20862
|
+
const dateFormatter = {
|
|
20863
|
+
parseDate,
|
|
20864
|
+
getDateParts,
|
|
20865
|
+
getDateAsString,
|
|
20866
|
+
toNorthAmericanFormat: toNorthAmericanFormat$1,
|
|
20867
|
+
isValidDate,
|
|
20868
|
+
toISOFormatString,
|
|
20869
|
+
stringToDateInstance,
|
|
20870
|
+
};
|
|
19923
20871
|
|
|
19924
20872
|
// filepath: dateConstraints.mjs
|
|
19925
20873
|
const DATE_UTIL_CONSTRAINTS = {
|
|
@@ -19991,12 +20939,11 @@ class AuroDateUtilitiesBase {
|
|
|
19991
20939
|
/* eslint-disable no-magic-numbers */
|
|
19992
20940
|
|
|
19993
20941
|
class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
19994
|
-
|
|
19995
20942
|
/**
|
|
19996
20943
|
* Returns the current century.
|
|
19997
20944
|
* @returns {String} The current century.
|
|
19998
20945
|
*/
|
|
19999
|
-
getCentury
|
|
20946
|
+
getCentury() {
|
|
20000
20947
|
return String(new Date().getFullYear()).slice(0, 2);
|
|
20001
20948
|
}
|
|
20002
20949
|
|
|
@@ -20005,14 +20952,12 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20005
20952
|
* @param {String} year - The year to convert to four digits.
|
|
20006
20953
|
* @returns {String} The four digit year.
|
|
20007
20954
|
*/
|
|
20008
|
-
getFourDigitYear
|
|
20009
|
-
|
|
20955
|
+
getFourDigitYear(year) {
|
|
20010
20956
|
const strYear = String(year).trim();
|
|
20011
20957
|
return strYear.length <= 2 ? this.getCentury() + strYear : strYear;
|
|
20012
20958
|
}
|
|
20013
20959
|
|
|
20014
20960
|
constructor() {
|
|
20015
|
-
|
|
20016
20961
|
super();
|
|
20017
20962
|
|
|
20018
20963
|
/**
|
|
@@ -20021,7 +20966,8 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20021
20966
|
* @param {Object} date2 - Second date to compare.
|
|
20022
20967
|
* @returns {Boolean} Returns true if the dates match.
|
|
20023
20968
|
*/
|
|
20024
|
-
this.datesMatch = (date1, date2) =>
|
|
20969
|
+
this.datesMatch = (date1, date2) =>
|
|
20970
|
+
new Date(date1).getTime() === new Date(date2).getTime();
|
|
20025
20971
|
|
|
20026
20972
|
/**
|
|
20027
20973
|
* Returns true if value passed in is a valid date.
|
|
@@ -20030,53 +20976,41 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20030
20976
|
* @returns {Boolean}
|
|
20031
20977
|
*/
|
|
20032
20978
|
this.validDateStr = (date, format) => {
|
|
20033
|
-
|
|
20034
20979
|
// The length we expect the date string to be
|
|
20035
|
-
const dateStrLength = format
|
|
20980
|
+
const dateStrLength = format?.length || 0;
|
|
20036
20981
|
|
|
20037
20982
|
// Guard Clause: Date and format are defined
|
|
20038
20983
|
if (typeof date === "undefined" || typeof format === "undefined") {
|
|
20039
|
-
throw new Error(
|
|
20984
|
+
throw new Error(
|
|
20985
|
+
"AuroDatepickerUtilities | validateDateStr: Date and format are required",
|
|
20986
|
+
);
|
|
20040
20987
|
}
|
|
20041
20988
|
|
|
20042
20989
|
// Guard Clause: Date should be of type string
|
|
20043
20990
|
if (typeof date !== "string") {
|
|
20044
|
-
throw new Error(
|
|
20991
|
+
throw new Error(
|
|
20992
|
+
"AuroDatepickerUtilities | validateDateStr: Date must be a string",
|
|
20993
|
+
);
|
|
20045
20994
|
}
|
|
20046
20995
|
|
|
20047
20996
|
// Guard Clause: Format should be of type string
|
|
20048
20997
|
if (typeof format !== "string") {
|
|
20049
|
-
throw new Error(
|
|
20998
|
+
throw new Error(
|
|
20999
|
+
"AuroDatepickerUtilities | validateDateStr: Format must be a string",
|
|
21000
|
+
);
|
|
20050
21001
|
}
|
|
20051
21002
|
|
|
20052
21003
|
// Guard Clause: Length is what we expect it to be
|
|
20053
21004
|
if (date.length !== dateStrLength) {
|
|
20054
21005
|
return false;
|
|
20055
21006
|
}
|
|
20056
|
-
// Get a formatted date string and parse it
|
|
20057
|
-
const dateParts = dateFormatter.parseDate(date, format);
|
|
20058
|
-
|
|
20059
|
-
// Guard Clause: Date parse succeeded
|
|
20060
|
-
if (!dateParts) {
|
|
20061
|
-
return false;
|
|
20062
|
-
}
|
|
20063
21007
|
|
|
20064
|
-
//
|
|
20065
|
-
|
|
20066
|
-
|
|
20067
|
-
|
|
20068
|
-
const dateObj = new Date(this.getFourDigitYear(dateParts.year), dateParts.month - 1, dateParts.day || 1);
|
|
20069
|
-
|
|
20070
|
-
// Get the date string of the date object we created from the string date
|
|
20071
|
-
const actualDateStr = dateFormatter.getDateAsString(dateObj, "en-US");
|
|
20072
|
-
|
|
20073
|
-
// Guard Clause: Generated date matches date string input
|
|
20074
|
-
if (expectedDateStr !== actualDateStr) {
|
|
21008
|
+
// Get a formatted date string and parse and validate it
|
|
21009
|
+
try {
|
|
21010
|
+
return Boolean(dateFormatter.parseDate(date, format));
|
|
21011
|
+
} catch (error) {
|
|
20075
21012
|
return false;
|
|
20076
21013
|
}
|
|
20077
|
-
|
|
20078
|
-
// If we passed all other checks, we can assume the date is valid
|
|
20079
|
-
return true;
|
|
20080
21014
|
};
|
|
20081
21015
|
|
|
20082
21016
|
/**
|
|
@@ -20086,10 +21020,11 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20086
21020
|
* @returns {boolean}
|
|
20087
21021
|
*/
|
|
20088
21022
|
this.dateAndFormatMatch = (value, format) => {
|
|
20089
|
-
|
|
20090
21023
|
// Ensure we have both values we need to do the comparison
|
|
20091
21024
|
if (!value || !format) {
|
|
20092
|
-
throw new Error(
|
|
21025
|
+
throw new Error(
|
|
21026
|
+
"AuroFormValidation | dateFormatMatch: value and format are required",
|
|
21027
|
+
);
|
|
20093
21028
|
}
|
|
20094
21029
|
|
|
20095
21030
|
// If the lengths are different, they cannot match
|
|
@@ -20098,11 +21033,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20098
21033
|
}
|
|
20099
21034
|
|
|
20100
21035
|
// Get the parts of the date
|
|
20101
|
-
const dateParts = dateFormatter.
|
|
21036
|
+
const dateParts = dateFormatter.getDateParts(value, format);
|
|
20102
21037
|
|
|
20103
21038
|
// Validator for day
|
|
20104
21039
|
const dayValueIsValid = (day) => {
|
|
20105
|
-
|
|
20106
21040
|
// Guard clause: if there is no day in the dateParts, we can ignore this check.
|
|
20107
21041
|
if (!dateParts.day) {
|
|
20108
21042
|
return true;
|
|
@@ -20118,7 +21052,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20118
21052
|
|
|
20119
21053
|
// Guard clause: ensure day is a valid integer
|
|
20120
21054
|
if (Number.isNaN(numDay)) {
|
|
20121
|
-
throw new Error(
|
|
21055
|
+
throw new Error(
|
|
21056
|
+
"AuroDatepickerUtilities | dayValueIsValid: Unable to parse day value integer",
|
|
21057
|
+
);
|
|
20122
21058
|
}
|
|
20123
21059
|
|
|
20124
21060
|
// Guard clause: ensure day is within the valid range
|
|
@@ -20132,6 +21068,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20132
21068
|
|
|
20133
21069
|
// Validator for month
|
|
20134
21070
|
const monthValueIsValid = (month) => {
|
|
21071
|
+
// Guard clause: if there is no month in the dateParts, we can ignore this check.
|
|
21072
|
+
if (!dateParts.month) {
|
|
21073
|
+
return true;
|
|
21074
|
+
}
|
|
20135
21075
|
|
|
20136
21076
|
// Guard clause: ensure month exists.
|
|
20137
21077
|
if (!month) {
|
|
@@ -20143,7 +21083,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20143
21083
|
|
|
20144
21084
|
// Guard clause: ensure month is a valid integer
|
|
20145
21085
|
if (Number.isNaN(numMonth)) {
|
|
20146
|
-
throw new Error(
|
|
21086
|
+
throw new Error(
|
|
21087
|
+
"AuroDatepickerUtilities | monthValueIsValid: Unable to parse month value integer",
|
|
21088
|
+
);
|
|
20147
21089
|
}
|
|
20148
21090
|
|
|
20149
21091
|
// Guard clause: ensure month is within the valid range
|
|
@@ -20157,6 +21099,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20157
21099
|
|
|
20158
21100
|
// Validator for year
|
|
20159
21101
|
const yearIsValid = (_year) => {
|
|
21102
|
+
// Guard clause: if there is no year in the dateParts, we can ignore this check.
|
|
21103
|
+
if (!dateParts.year) {
|
|
21104
|
+
return true;
|
|
21105
|
+
}
|
|
20160
21106
|
|
|
20161
21107
|
// Guard clause: ensure year exists.
|
|
20162
21108
|
if (!_year) {
|
|
@@ -20171,7 +21117,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20171
21117
|
|
|
20172
21118
|
// Guard clause: ensure year is a valid integer
|
|
20173
21119
|
if (Number.isNaN(numYear)) {
|
|
20174
|
-
throw new Error(
|
|
21120
|
+
throw new Error(
|
|
21121
|
+
"AuroDatepickerUtilities | yearValueIsValid: Unable to parse year value integer",
|
|
21122
|
+
);
|
|
20175
21123
|
}
|
|
20176
21124
|
|
|
20177
21125
|
// Guard clause: ensure year is within the valid range
|
|
@@ -20187,7 +21135,7 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20187
21135
|
const checks = [
|
|
20188
21136
|
monthValueIsValid(dateParts.month),
|
|
20189
21137
|
dayValueIsValid(dateParts.day),
|
|
20190
|
-
yearIsValid(dateParts.year)
|
|
21138
|
+
yearIsValid(dateParts.year),
|
|
20191
21139
|
];
|
|
20192
21140
|
|
|
20193
21141
|
// If any of the checks failed, the date format does not match and the result is invalid
|
|
@@ -20221,10 +21169,7 @@ const {
|
|
|
20221
21169
|
} = dateUtilities;
|
|
20222
21170
|
|
|
20223
21171
|
const {
|
|
20224
|
-
toNorthAmericanFormat
|
|
20225
|
-
parseDate,
|
|
20226
|
-
getDateAsString
|
|
20227
|
-
} = dateFormatter;
|
|
21172
|
+
toNorthAmericanFormat} = dateFormatter;
|
|
20228
21173
|
|
|
20229
21174
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
20230
21175
|
// See LICENSE in the project root for license information.
|
|
@@ -22439,7 +23384,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
22439
23384
|
}
|
|
22440
23385
|
};
|
|
22441
23386
|
|
|
22442
|
-
var formkitVersion = '
|
|
23387
|
+
var formkitVersion = '202606030033';
|
|
22443
23388
|
|
|
22444
23389
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
22445
23390
|
// See LICENSE in the project root for license information.
|
|
@@ -23795,6 +24740,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
23795
24740
|
delegatesFocus: true,
|
|
23796
24741
|
};
|
|
23797
24742
|
}
|
|
24743
|
+
|
|
23798
24744
|
constructor() {
|
|
23799
24745
|
super();
|
|
23800
24746
|
|
|
@@ -23962,7 +24908,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
23962
24908
|
|
|
23963
24909
|
/**
|
|
23964
24910
|
* Defines whether the component will be on lighter or darker backgrounds.
|
|
23965
|
-
* @
|
|
24911
|
+
* @type {'default' | 'inverse'}
|
|
23966
24912
|
* @default 'default'
|
|
23967
24913
|
*/
|
|
23968
24914
|
appearance: {
|
|
@@ -23979,6 +24925,22 @@ class AuroDatePicker extends AuroElement {
|
|
|
23979
24925
|
reflect: true
|
|
23980
24926
|
},
|
|
23981
24927
|
|
|
24928
|
+
/**
|
|
24929
|
+
* Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
|
|
24930
|
+
*/
|
|
24931
|
+
blackoutDates: {
|
|
24932
|
+
type: Array,
|
|
24933
|
+
reflect: true
|
|
24934
|
+
},
|
|
24935
|
+
|
|
24936
|
+
/**
|
|
24937
|
+
* Label announced for blackout (disabled but in-range) date cells.
|
|
24938
|
+
*/
|
|
24939
|
+
blackoutLabel: {
|
|
24940
|
+
type: String,
|
|
24941
|
+
reflect: true
|
|
24942
|
+
},
|
|
24943
|
+
|
|
23982
24944
|
/**
|
|
23983
24945
|
* The last date that may be displayed in the calendar.
|
|
23984
24946
|
*/
|
|
@@ -24034,27 +24996,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
24034
24996
|
reflect: true
|
|
24035
24997
|
},
|
|
24036
24998
|
|
|
24037
|
-
hasFocus: {
|
|
24038
|
-
type: Boolean,
|
|
24039
|
-
reflect: false,
|
|
24040
|
-
},
|
|
24041
|
-
|
|
24042
|
-
/**
|
|
24043
|
-
* @private
|
|
24044
|
-
*/
|
|
24045
|
-
hasValue: {
|
|
24046
|
-
type: Boolean,
|
|
24047
|
-
reflect: false,
|
|
24048
|
-
},
|
|
24049
|
-
|
|
24050
|
-
/**
|
|
24051
|
-
* @private
|
|
24052
|
-
*/
|
|
24053
|
-
hasAllValues: {
|
|
24054
|
-
type: Boolean,
|
|
24055
|
-
reflect: false
|
|
24056
|
-
},
|
|
24057
|
-
|
|
24058
24999
|
/**
|
|
24059
25000
|
* Specifies the date format. The default is `mm/dd/yyyy`.
|
|
24060
25001
|
*/
|
|
@@ -24076,6 +25017,27 @@ class AuroDatePicker extends AuroElement {
|
|
|
24076
25017
|
reflect: true
|
|
24077
25018
|
},
|
|
24078
25019
|
|
|
25020
|
+
/**
|
|
25021
|
+
* @private
|
|
25022
|
+
*/
|
|
25023
|
+
hasAllValues: {
|
|
25024
|
+
type: Boolean,
|
|
25025
|
+
reflect: false
|
|
25026
|
+
},
|
|
25027
|
+
|
|
25028
|
+
hasFocus: {
|
|
25029
|
+
type: Boolean,
|
|
25030
|
+
reflect: false,
|
|
25031
|
+
},
|
|
25032
|
+
|
|
25033
|
+
/**
|
|
25034
|
+
* @private
|
|
25035
|
+
*/
|
|
25036
|
+
hasValue: {
|
|
25037
|
+
type: Boolean,
|
|
25038
|
+
reflect: false,
|
|
25039
|
+
},
|
|
25040
|
+
|
|
24079
25041
|
/** Exposes inputmode attribute for input. */
|
|
24080
25042
|
inputmode: {
|
|
24081
25043
|
type: String,
|
|
@@ -24118,6 +25080,13 @@ class AuroDatePicker extends AuroElement {
|
|
|
24118
25080
|
reflect: true
|
|
24119
25081
|
},
|
|
24120
25082
|
|
|
25083
|
+
/**
|
|
25084
|
+
* @private
|
|
25085
|
+
*/
|
|
25086
|
+
monthFirst: {
|
|
25087
|
+
type: Boolean
|
|
25088
|
+
},
|
|
25089
|
+
|
|
24121
25090
|
/**
|
|
24122
25091
|
* Names of all 12 months to render in the calendar, used for localization of date string in mobile layout.
|
|
24123
25092
|
*/
|
|
@@ -24126,25 +25095,26 @@ class AuroDatePicker extends AuroElement {
|
|
|
24126
25095
|
},
|
|
24127
25096
|
|
|
24128
25097
|
/**
|
|
24129
|
-
*
|
|
25098
|
+
* Accessible label for the next month navigation button.
|
|
24130
25099
|
*/
|
|
24131
|
-
|
|
24132
|
-
type:
|
|
25100
|
+
navLabelNextMonth: {
|
|
25101
|
+
type: String,
|
|
25102
|
+
reflect: true
|
|
24133
25103
|
},
|
|
24134
25104
|
|
|
24135
25105
|
/**
|
|
24136
|
-
*
|
|
24137
|
-
* when there isn't enough space in the specified `placement`.
|
|
25106
|
+
* Accessible label for the previous month navigation button.
|
|
24138
25107
|
*/
|
|
24139
|
-
|
|
24140
|
-
type:
|
|
25108
|
+
navLabelPrevMonth: {
|
|
25109
|
+
type: String,
|
|
24141
25110
|
reflect: true
|
|
24142
25111
|
},
|
|
24143
25112
|
|
|
24144
25113
|
/**
|
|
24145
|
-
* If declared, the
|
|
25114
|
+
* If declared, the bib will NOT flip to an alternate position
|
|
25115
|
+
* when there isn't enough space in the specified `placement`.
|
|
24146
25116
|
*/
|
|
24147
|
-
|
|
25117
|
+
noFlip: {
|
|
24148
25118
|
type: Boolean,
|
|
24149
25119
|
reflect: true
|
|
24150
25120
|
},
|
|
@@ -24211,17 +25181,9 @@ class AuroDatePicker extends AuroElement {
|
|
|
24211
25181
|
},
|
|
24212
25182
|
|
|
24213
25183
|
/**
|
|
24214
|
-
* Label announced for the range start
|
|
24215
|
-
*/
|
|
24216
|
-
rangeLabelStart: {
|
|
24217
|
-
type: String,
|
|
24218
|
-
reflect: true
|
|
24219
|
-
},
|
|
24220
|
-
|
|
24221
|
-
/**
|
|
24222
|
-
* Label announced for the range end date cell.
|
|
25184
|
+
* Label announced for cells after the range (or after start when no end is selected).
|
|
24223
25185
|
*/
|
|
24224
|
-
|
|
25186
|
+
rangeLabelAfterRange: {
|
|
24225
25187
|
type: String,
|
|
24226
25188
|
reflect: true
|
|
24227
25189
|
},
|
|
@@ -24235,49 +25197,25 @@ class AuroDatePicker extends AuroElement {
|
|
|
24235
25197
|
},
|
|
24236
25198
|
|
|
24237
25199
|
/**
|
|
24238
|
-
* Label announced for
|
|
24239
|
-
*/
|
|
24240
|
-
rangeLabelInRange: {
|
|
24241
|
-
type: String,
|
|
24242
|
-
reflect: true
|
|
24243
|
-
},
|
|
24244
|
-
|
|
24245
|
-
/**
|
|
24246
|
-
* Label announced for cells after the range (or after start when no end is selected).
|
|
24247
|
-
*/
|
|
24248
|
-
rangeLabelAfterRange: {
|
|
24249
|
-
type: String,
|
|
24250
|
-
reflect: true
|
|
24251
|
-
},
|
|
24252
|
-
|
|
24253
|
-
/**
|
|
24254
|
-
* Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
|
|
24255
|
-
*/
|
|
24256
|
-
blackoutDates: {
|
|
24257
|
-
type: Array,
|
|
24258
|
-
reflect: true
|
|
24259
|
-
},
|
|
24260
|
-
|
|
24261
|
-
/**
|
|
24262
|
-
* Label announced for blackout (disabled but in-range) date cells.
|
|
25200
|
+
* Label announced for the range end date cell.
|
|
24263
25201
|
*/
|
|
24264
|
-
|
|
25202
|
+
rangeLabelEnd: {
|
|
24265
25203
|
type: String,
|
|
24266
25204
|
reflect: true
|
|
24267
25205
|
},
|
|
24268
25206
|
|
|
24269
25207
|
/**
|
|
24270
|
-
*
|
|
25208
|
+
* Label announced for cells within the selected range.
|
|
24271
25209
|
*/
|
|
24272
|
-
|
|
25210
|
+
rangeLabelInRange: {
|
|
24273
25211
|
type: String,
|
|
24274
25212
|
reflect: true
|
|
24275
25213
|
},
|
|
24276
25214
|
|
|
24277
25215
|
/**
|
|
24278
|
-
*
|
|
25216
|
+
* Label announced for the range start date cell.
|
|
24279
25217
|
*/
|
|
24280
|
-
|
|
25218
|
+
rangeLabelStart: {
|
|
24281
25219
|
type: String,
|
|
24282
25220
|
reflect: true
|
|
24283
25221
|
},
|
|
@@ -24335,6 +25273,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
24335
25273
|
type: String
|
|
24336
25274
|
},
|
|
24337
25275
|
|
|
25276
|
+
/**
|
|
25277
|
+
* If declared, the dropdown will shift its position to avoid being cut off by the viewport.
|
|
25278
|
+
*/
|
|
25279
|
+
shift: {
|
|
25280
|
+
type: Boolean,
|
|
25281
|
+
reflect: true
|
|
25282
|
+
},
|
|
25283
|
+
|
|
24338
25284
|
/**
|
|
24339
25285
|
* Set true to make datepicker stacked style.
|
|
24340
25286
|
*/
|
|
@@ -24343,6 +25289,16 @@ class AuroDatePicker extends AuroElement {
|
|
|
24343
25289
|
reflect: true
|
|
24344
25290
|
},
|
|
24345
25291
|
|
|
25292
|
+
/**
|
|
25293
|
+
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
25294
|
+
* @private
|
|
25295
|
+
*/
|
|
25296
|
+
touched: {
|
|
25297
|
+
type: Boolean,
|
|
25298
|
+
reflect: true,
|
|
25299
|
+
attribute: false
|
|
25300
|
+
},
|
|
25301
|
+
|
|
24346
25302
|
/**
|
|
24347
25303
|
* Specifies the `validityState` this element is in.
|
|
24348
25304
|
*/
|
|
@@ -24363,16 +25319,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
24363
25319
|
*/
|
|
24364
25320
|
valueEnd: {
|
|
24365
25321
|
type: String
|
|
24366
|
-
},
|
|
24367
|
-
|
|
24368
|
-
/**
|
|
24369
|
-
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
24370
|
-
* @private
|
|
24371
|
-
*/
|
|
24372
|
-
touched: {
|
|
24373
|
-
type: Boolean,
|
|
24374
|
-
reflect: true,
|
|
24375
|
-
attribute: false
|
|
24376
25322
|
}
|
|
24377
25323
|
};
|
|
24378
25324
|
}
|
|
@@ -24481,8 +25427,9 @@ class AuroDatePicker extends AuroElement {
|
|
|
24481
25427
|
}
|
|
24482
25428
|
|
|
24483
25429
|
/**
|
|
24484
|
-
* @private
|
|
24485
25430
|
* Common display value wrapper classes.
|
|
25431
|
+
* @private
|
|
25432
|
+
* @returns {Object} Class map for Lit's classMap directive.
|
|
24486
25433
|
*/
|
|
24487
25434
|
get commonDisplayValueWrapperClasses() {
|
|
24488
25435
|
return {
|
|
@@ -24650,7 +25597,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
24650
25597
|
}
|
|
24651
25598
|
|
|
24652
25599
|
// Compute and mark the active cell
|
|
24653
|
-
if (this.calendar.activeCellDate
|
|
25600
|
+
if (this.calendar.activeCellDate === null || this.calendar.activeCellDate === undefined) {
|
|
24654
25601
|
this.calendar.activeCellDate = this.calendar.computeActiveDate();
|
|
24655
25602
|
}
|
|
24656
25603
|
if (this.calendar.activeCellDate !== undefined) {
|
|
@@ -24659,29 +25606,37 @@ class AuroDatePicker extends AuroElement {
|
|
|
24659
25606
|
|
|
24660
25607
|
// If no cell matched (e.g. centralDate month differs from the rendered
|
|
24661
25608
|
// range on mobile), fall back to the first rendered enabled cell.
|
|
24662
|
-
let activeCell = allCells.find(cell => cell.active);
|
|
25609
|
+
let activeCell = allCells.find((cell) => cell.active);
|
|
24663
25610
|
if (!activeCell && allCells.length) {
|
|
24664
|
-
const fallback = allCells
|
|
25611
|
+
const [fallback] = allCells;
|
|
24665
25612
|
if (fallback.day) {
|
|
24666
25613
|
this.calendar.activeCellDate = fallback.day.date;
|
|
24667
25614
|
this.calendar.setActiveCell(this.calendar.activeCellDate);
|
|
24668
|
-
activeCell = allCells.find(cell => cell.active);
|
|
25615
|
+
activeCell = allCells.find((cell) => cell.active);
|
|
24669
25616
|
}
|
|
24670
25617
|
}
|
|
24671
25618
|
|
|
24672
|
-
//
|
|
24673
|
-
//
|
|
25619
|
+
// Focus the calendar grid wrapper (aria-activedescendant handles
|
|
25620
|
+
// the SR announcement for the active cell).
|
|
24674
25621
|
if (activeCell) {
|
|
24675
|
-
|
|
24676
|
-
|
|
24677
|
-
|
|
24678
|
-
|
|
24679
|
-
|
|
24680
|
-
|
|
24681
|
-
|
|
24682
|
-
|
|
24683
|
-
|
|
24684
|
-
|
|
25622
|
+
this.calendar.focusActiveCell();
|
|
25623
|
+
|
|
25624
|
+
// Announce the initial active cell via the live region.
|
|
25625
|
+
// Delay the announcement so it arrives after VoiceOver finishes
|
|
25626
|
+
// speaking the focus-change announcement for the grid wrapper.
|
|
25627
|
+
// Without this delay, VoiceOver drops the live region update
|
|
25628
|
+
// because it's already mid-announcement from the focus move.
|
|
25629
|
+
const announcement = this.calendar.buildFocusAnnouncement(activeCell.day.date);
|
|
25630
|
+
setTimeout(() => {
|
|
25631
|
+
this.calendar.announceSelection(announcement);
|
|
25632
|
+
}, 500);
|
|
25633
|
+
|
|
25634
|
+
// On mobile fullscreen, scroll the month list so the active cell's
|
|
25635
|
+
// month is visible. Without this, the list stays scrolled to the
|
|
25636
|
+
// calendarStartDate month which may be far from the active cell.
|
|
25637
|
+
if (this.dropdown.isBibFullscreen) {
|
|
25638
|
+
this.calendar.scrollToActiveCell();
|
|
25639
|
+
}
|
|
24685
25640
|
} else if (attempts < MAX_ATTEMPTS) {
|
|
24686
25641
|
requestAnimationFrame(tryFocus);
|
|
24687
25642
|
}
|
|
@@ -24831,14 +25786,35 @@ class AuroDatePicker extends AuroElement {
|
|
|
24831
25786
|
if (bibEl && this.dropdown.isPopoverVisible) {
|
|
24832
25787
|
bibEl.close();
|
|
24833
25788
|
bibEl.open(true);
|
|
25789
|
+
}
|
|
25790
|
+
|
|
25791
|
+
// Re-render the calendar with the new fullscreen layout,
|
|
25792
|
+
// then restore focus after the re-render completes.
|
|
25793
|
+
this.calendar.isFullscreen = true;
|
|
25794
|
+
this.calendar.updateComplete.then(() => {
|
|
24834
25795
|
doubleRaf(() => {
|
|
24835
25796
|
this.focusActiveCellWhenReady();
|
|
24836
25797
|
});
|
|
24837
|
-
}
|
|
25798
|
+
});
|
|
24838
25799
|
});
|
|
24839
25800
|
} else if (!this.dropdown.isBibFullscreen) {
|
|
24840
|
-
// Switching from fullscreen to floating — restore trigger accessibility
|
|
24841
|
-
|
|
25801
|
+
// Switching from fullscreen to floating — only restore trigger accessibility
|
|
25802
|
+
// when the bib is closed or the desktop layout is not a modal. A desktopModal
|
|
25803
|
+
// dropdown keeps the trigger inert while open, matching the desktop-open path.
|
|
25804
|
+
if (!this.dropdown.isPopoverVisible || !this.dropdown.desktopModal) {
|
|
25805
|
+
this.dropdown.trigger.inert = false;
|
|
25806
|
+
}
|
|
25807
|
+
|
|
25808
|
+
// Re-render the calendar with the desktop layout,
|
|
25809
|
+
// then restore focus after the re-render completes.
|
|
25810
|
+
this.dropdown.updateComplete.then(() => {
|
|
25811
|
+
this.calendar.isFullscreen = false;
|
|
25812
|
+
this.calendar.updateComplete.then(() => {
|
|
25813
|
+
doubleRaf(() => {
|
|
25814
|
+
this.focusActiveCellWhenReady();
|
|
25815
|
+
});
|
|
25816
|
+
});
|
|
25817
|
+
});
|
|
24842
25818
|
}
|
|
24843
25819
|
});
|
|
24844
25820
|
}
|
|
@@ -25080,12 +26056,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
25080
26056
|
}
|
|
25081
26057
|
|
|
25082
26058
|
const formatted = this.util.toNorthAmericanFormat(dateStr, this.format);
|
|
25083
|
-
if (!this.util.validDateStr(dateStr, this.format))
|
|
26059
|
+
if (!this.util.validDateStr(dateStr, this.format)) {
|
|
26060
|
+
return false;
|
|
26061
|
+
}
|
|
25084
26062
|
|
|
25085
|
-
const
|
|
25086
|
-
const yyyy =
|
|
25087
|
-
const mm = String(
|
|
25088
|
-
const dd = String(
|
|
26063
|
+
const dt = new Date(formatted);
|
|
26064
|
+
const yyyy = dt.getFullYear();
|
|
26065
|
+
const mm = String(dt.getMonth() + 1).padStart(2, '0');
|
|
26066
|
+
const dd = String(dt.getDate()).padStart(2, '0');
|
|
25089
26067
|
return this.blackoutDates.includes(`${yyyy}-${mm}-${dd}`);
|
|
25090
26068
|
}
|
|
25091
26069
|
|
|
@@ -25103,7 +26081,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
25103
26081
|
|
|
25104
26082
|
// After standard validation, check blackout dates for typed input
|
|
25105
26083
|
if (this.validity !== 'customError') {
|
|
25106
|
-
if (this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd))) {
|
|
26084
|
+
if (this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd))) { // eslint-disable-line no-extra-parens
|
|
25107
26085
|
const msg = this.setCustomValidityCustomError || 'Selected date is unavailable';
|
|
25108
26086
|
this.validity = 'customError';
|
|
25109
26087
|
this.errorMessage = msg;
|
|
@@ -25149,7 +26127,13 @@ class AuroDatePicker extends AuroElement {
|
|
|
25149
26127
|
// backward compatibility for old format of referenceDates which is a stringified array with - instead of / as separator, e.g. ["10-22-2025","10-23-2025"]
|
|
25150
26128
|
const stringfiedDates = JSON.stringify(this.referenceDates);
|
|
25151
26129
|
if (stringfiedDates.includes('-')) {
|
|
25152
|
-
this.referenceDates = this.referenceDates.map(date => date.replace(/-/gu, '/'
|
|
26130
|
+
this.referenceDates = this.referenceDates.map((date) => date.replace(/-/gu, '/'));
|
|
26131
|
+
}
|
|
26132
|
+
|
|
26133
|
+
// Force calendar cells to re-render with updated reference date state.
|
|
26134
|
+
if (this.calendar) {
|
|
26135
|
+
this.calendar.requestUpdate();
|
|
26136
|
+
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
25153
26137
|
}
|
|
25154
26138
|
}
|
|
25155
26139
|
|
|
@@ -25738,7 +26722,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
25738
26722
|
/**
|
|
25739
26723
|
* Handles click on the clear button.
|
|
25740
26724
|
* @private
|
|
25741
|
-
* @param {MouseEvent} event
|
|
26725
|
+
* @param {MouseEvent} event - The mouse event from the clear button click.
|
|
25742
26726
|
* @returns {void}
|
|
25743
26727
|
*/
|
|
25744
26728
|
handleClearClick(event) {
|