@aurodesignsystem-dev/auro-formkit 0.0.0-pr1489.5 → 0.0.0-pr1489.7
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 -262
- package/components/combobox/demo/getting-started.min.js +523 -262
- package/components/combobox/demo/index.min.js +523 -262
- package/components/combobox/demo/styles.min.css +1 -1
- package/components/combobox/dist/index.js +523 -262
- package/components/combobox/dist/registered.js +523 -262
- package/components/counter/demo/customize.min.js +271 -134
- package/components/counter/demo/index.min.js +271 -134
- 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 +9 -6
- package/components/datepicker/demo/api.md +1 -1
- package/components/datepicker/demo/customize.min.js +1636 -656
- package/components/datepicker/demo/index.md +31 -3
- package/components/datepicker/demo/index.min.js +1652 -661
- 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 +1640 -660
- package/components/datepicker/dist/registered.js +1640 -660
- 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 -9
- package/components/dropdown/demo/getting-started.min.js +22 -9
- package/components/dropdown/demo/index.min.js +22 -9
- 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 -9
- package/components/dropdown/dist/registered.js +22 -9
- package/components/form/demo/customize.min.js +3459 -1572
- package/components/form/demo/getting-started.min.js +3459 -1572
- package/components/form/demo/index.min.js +3459 -1572
- package/components/form/demo/registerDemoDeps.min.js +3459 -1572
- 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 -134
- package/components/select/demo/getting-started.min.js +271 -134
- package/components/select/demo/index.min.js +271 -134
- package/components/select/demo/styles.min.css +1 -1
- package/components/select/dist/index.js +271 -134
- package/components/select/dist/registered.js +271 -134
- package/custom-elements.json +500 -178
- 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';
|
|
@@ -1291,11 +1415,7 @@ class UtilitiesCalendarRender {
|
|
|
1291
1415
|
|
|
1292
1416
|
// 3. If we didn't get a count early, restrict based on min/max date.
|
|
1293
1417
|
if (!calendarCount && elem.minDate && elem.maxDate) {
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
if (monthsInRange < maxRenderableMonths) {
|
|
1297
|
-
calendarCount = monthsInRange;
|
|
1298
|
-
}
|
|
1418
|
+
calendarCount = this.util.monthDiff(new Date(elem.minDate), new Date(elem.maxDate));
|
|
1299
1419
|
}
|
|
1300
1420
|
|
|
1301
1421
|
if (elem.numCalendars !== calendarCount) {
|
|
@@ -1343,7 +1463,6 @@ class UtilitiesCalendarRender {
|
|
|
1343
1463
|
.max="${elem.max}"
|
|
1344
1464
|
?noRange="${elem.noRange}"
|
|
1345
1465
|
.monthFirst="${elem.monthFirst}"
|
|
1346
|
-
.hoveredDate="${elem.hoveredDate}"
|
|
1347
1466
|
.dateTo="${elem.dateTo}"
|
|
1348
1467
|
.dateFrom="${elem.dateFrom}"
|
|
1349
1468
|
.locale="${elem.locale}"
|
|
@@ -1375,43 +1494,6 @@ var snowflakeStyle = css`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
|
|
|
1375
1494
|
|
|
1376
1495
|
var snowflakeColors = css`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
|
|
1377
1496
|
|
|
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
1497
|
/**
|
|
1416
1498
|
* @module constants
|
|
1417
1499
|
* @summary Useful constants
|
|
@@ -7166,6 +7248,43 @@ function subYears(date, amount, options) {
|
|
|
7166
7248
|
return addYears(date, -1, options);
|
|
7167
7249
|
}
|
|
7168
7250
|
|
|
7251
|
+
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}`;
|
|
7252
|
+
|
|
7253
|
+
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)}}`;
|
|
7254
|
+
|
|
7255
|
+
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)}`;
|
|
7256
|
+
|
|
7257
|
+
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)}`;
|
|
7258
|
+
|
|
7259
|
+
/******************************************************************************
|
|
7260
|
+
Copyright (c) Microsoft Corporation.
|
|
7261
|
+
|
|
7262
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
7263
|
+
purpose with or without fee is hereby granted.
|
|
7264
|
+
|
|
7265
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
7266
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
7267
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
7268
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
7269
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
7270
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
7271
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
7272
|
+
***************************************************************************** */
|
|
7273
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
7274
|
+
|
|
7275
|
+
|
|
7276
|
+
function __decorate(decorators, target, key, desc) {
|
|
7277
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
7278
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
7279
|
+
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;
|
|
7280
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7281
|
+
}
|
|
7282
|
+
|
|
7283
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
7284
|
+
var e = new Error(message);
|
|
7285
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
7286
|
+
};
|
|
7287
|
+
|
|
7169
7288
|
class RangeDatepickerCell extends LitElement {
|
|
7170
7289
|
constructor() {
|
|
7171
7290
|
super(...arguments);
|
|
@@ -7888,9 +8007,9 @@ __decorate([property({ type: Array })], RangeDatepickerCalendar.prototype, "dayN
|
|
|
7888
8007
|
__decorate([property({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
7889
8008
|
AuroLibraryRuntimeUtils$5.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
7890
8009
|
|
|
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}}`;
|
|
8010
|
+
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
8011
|
|
|
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:
|
|
8012
|
+
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
8013
|
|
|
7895
8014
|
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
8015
|
`,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 +8032,7 @@ class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,cl
|
|
|
7913
8032
|
|
|
7914
8033
|
var popoverVersion = '6.0.1';
|
|
7915
8034
|
|
|
7916
|
-
/* eslint-disable curly, max-lines, no-underscore-dangle, no-magic-numbers, no-underscore-dangle, max-params, no-
|
|
8035
|
+
/* 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
8036
|
|
|
7918
8037
|
class AuroCalendarCell extends LitElement {
|
|
7919
8038
|
constructor() {
|
|
@@ -7921,7 +8040,6 @@ class AuroCalendarCell extends LitElement {
|
|
|
7921
8040
|
|
|
7922
8041
|
this.day = null;
|
|
7923
8042
|
this.selected = false;
|
|
7924
|
-
this.hovered = false;
|
|
7925
8043
|
this.dateTo = null;
|
|
7926
8044
|
this.dateFrom = null;
|
|
7927
8045
|
this.month = null;
|
|
@@ -7929,7 +8047,6 @@ class AuroCalendarCell extends LitElement {
|
|
|
7929
8047
|
this.max = null;
|
|
7930
8048
|
this.disabled = false;
|
|
7931
8049
|
this.disabledDays = [];
|
|
7932
|
-
this.hoveredDate = null;
|
|
7933
8050
|
this.isCurrentDate = false;
|
|
7934
8051
|
this._locale = null;
|
|
7935
8052
|
this.dateStr = null;
|
|
@@ -7954,7 +8071,6 @@ class AuroCalendarCell extends LitElement {
|
|
|
7954
8071
|
// ...super.properties,
|
|
7955
8072
|
day: { type: Object },
|
|
7956
8073
|
selected: { type: Boolean },
|
|
7957
|
-
hovered: { type: Boolean },
|
|
7958
8074
|
dateTo: { type: String },
|
|
7959
8075
|
dateFrom: { type: String },
|
|
7960
8076
|
month: { type: String },
|
|
@@ -7965,15 +8081,10 @@ class AuroCalendarCell extends LitElement {
|
|
|
7965
8081
|
reflect: true
|
|
7966
8082
|
},
|
|
7967
8083
|
disabledDays: { type: Array },
|
|
7968
|
-
hoveredDate: { type: String },
|
|
7969
8084
|
isCurrentDate: { type: Boolean },
|
|
7970
8085
|
locale: { type: Object },
|
|
7971
8086
|
dateStr: { type: String },
|
|
7972
8087
|
renderForDateSlot: { type: Boolean },
|
|
7973
|
-
active: {
|
|
7974
|
-
type: Boolean,
|
|
7975
|
-
reflect: true
|
|
7976
|
-
},
|
|
7977
8088
|
hasPopoverContent: { type: Boolean }
|
|
7978
8089
|
};
|
|
7979
8090
|
}
|
|
@@ -7998,17 +8109,17 @@ class AuroCalendarCell extends LitElement {
|
|
|
7998
8109
|
}
|
|
7999
8110
|
|
|
8000
8111
|
/**
|
|
8001
|
-
* Handles selected
|
|
8112
|
+
* Handles selected state of the calendar cell when the selection changes.
|
|
8113
|
+
* Also clears any imperative range preview classes so classMap is the
|
|
8114
|
+
* sole source of truth after a selection update.
|
|
8002
8115
|
* @private
|
|
8003
8116
|
* @param {Number} dateFrom - Depart date.
|
|
8004
8117
|
* @param {Number} dateTo - Return date.
|
|
8005
|
-
* @param {Number} hoveredDate - Hovered date.
|
|
8006
8118
|
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
8007
8119
|
* @returns {void}
|
|
8008
8120
|
*/
|
|
8009
|
-
dateChanged(dateFrom, dateTo,
|
|
8121
|
+
dateChanged(dateFrom, dateTo, day) {
|
|
8010
8122
|
this.selected = false;
|
|
8011
|
-
this.hovered = false;
|
|
8012
8123
|
|
|
8013
8124
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
8014
8125
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
@@ -8020,10 +8131,6 @@ class AuroCalendarCell extends LitElement {
|
|
|
8020
8131
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
8021
8132
|
this.selected = true;
|
|
8022
8133
|
}
|
|
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
8134
|
}
|
|
8028
8135
|
}
|
|
8029
8136
|
|
|
@@ -8049,16 +8156,30 @@ class AuroCalendarCell extends LitElement {
|
|
|
8049
8156
|
|
|
8050
8157
|
/**
|
|
8051
8158
|
* Handles user hover events and dispatches a custom event.
|
|
8052
|
-
*
|
|
8159
|
+
* Does NOT set any reactive properties — the range preview is handled
|
|
8160
|
+
* imperatively by the calendar component to avoid O(N) re-renders.
|
|
8053
8161
|
* @private
|
|
8054
8162
|
* @returns {void}
|
|
8055
8163
|
*/
|
|
8056
8164
|
handleHover() {
|
|
8057
|
-
this.hovered = true;
|
|
8058
|
-
|
|
8059
|
-
let _a;
|
|
8060
8165
|
this.dispatchEvent(new CustomEvent('date-is-hovered', {
|
|
8061
|
-
detail: { date:
|
|
8166
|
+
detail: { date: this.day?.date },
|
|
8167
|
+
}));
|
|
8168
|
+
}
|
|
8169
|
+
|
|
8170
|
+
/**
|
|
8171
|
+
* Handles focus events on the cell button.
|
|
8172
|
+
* Dispatches a lightweight event for the calendar to handle SR
|
|
8173
|
+
* announcements and range preview updates without triggering
|
|
8174
|
+
* any Lit lifecycle updates.
|
|
8175
|
+
* @private
|
|
8176
|
+
* @returns {void}
|
|
8177
|
+
*/
|
|
8178
|
+
handleFocus() {
|
|
8179
|
+
this.dispatchEvent(new CustomEvent('calendar-cell-focused', {
|
|
8180
|
+
bubbles: true,
|
|
8181
|
+
composed: true,
|
|
8182
|
+
detail: { date: this.day?.date },
|
|
8062
8183
|
}));
|
|
8063
8184
|
}
|
|
8064
8185
|
|
|
@@ -8072,7 +8193,7 @@ class AuroCalendarCell extends LitElement {
|
|
|
8072
8193
|
* @returns {Boolean} - True if the date is out of range.
|
|
8073
8194
|
*/
|
|
8074
8195
|
isOutOfRange(day, min, max) {
|
|
8075
|
-
if (day && day.date
|
|
8196
|
+
if (day && day.date !== null && day.date !== undefined) {
|
|
8076
8197
|
return day.date < min || day.date > max;
|
|
8077
8198
|
}
|
|
8078
8199
|
return false;
|
|
@@ -8085,13 +8206,13 @@ class AuroCalendarCell extends LitElement {
|
|
|
8085
8206
|
* @returns {Boolean} - True if the date is a blackout date.
|
|
8086
8207
|
*/
|
|
8087
8208
|
isBlackout() {
|
|
8088
|
-
if (!this.day || this.day.date
|
|
8209
|
+
if (!this.day || this.day.date === null || this.day.date === undefined || this.isOutOfRange(this.day, this.min, this.max)) {
|
|
8089
8210
|
return false;
|
|
8090
8211
|
}
|
|
8091
8212
|
|
|
8092
8213
|
// Check against disabledDays timestamps (legacy path)
|
|
8093
8214
|
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
8094
|
-
if (this.disabledDays.findIndex(
|
|
8215
|
+
if (this.disabledDays.findIndex(dd => parseInt(dd, 10) === this.day.date) !== -1) {
|
|
8095
8216
|
return true;
|
|
8096
8217
|
}
|
|
8097
8218
|
}
|
|
@@ -8173,12 +8294,26 @@ class AuroCalendarCell extends LitElement {
|
|
|
8173
8294
|
|
|
8174
8295
|
let label = dateFormatter.format(date);
|
|
8175
8296
|
|
|
8297
|
+
// Append date slot content (e.g. prices) so it is announced with the date.
|
|
8298
|
+
if (this.renderForDateSlot) {
|
|
8299
|
+
const dateSlotEl = this.querySelector(`[slot="date_${this.dateStr}"]`);
|
|
8300
|
+
if (dateSlotEl) {
|
|
8301
|
+
const text = dateSlotEl.innerText?.trim();
|
|
8302
|
+
if (text) {
|
|
8303
|
+
label += `, ${text}`;
|
|
8304
|
+
}
|
|
8305
|
+
}
|
|
8306
|
+
}
|
|
8307
|
+
|
|
8176
8308
|
// appending popover content here so that it gets read in a logical order with the other date content.
|
|
8177
8309
|
if (this.hasPopoverContent) {
|
|
8178
|
-
|
|
8310
|
+
const popoverEl = this.querySelector(`[slot="popover_${this.dateStr}"]`);
|
|
8311
|
+
if (popoverEl) {
|
|
8312
|
+
label += `, ${popoverEl.innerText.trim()}`;
|
|
8313
|
+
}
|
|
8179
8314
|
}
|
|
8180
8315
|
|
|
8181
|
-
// Append range position
|
|
8316
|
+
// Append range position label for range datepickers
|
|
8182
8317
|
const rangePosition = this.getRangePosition();
|
|
8183
8318
|
if (rangePosition) {
|
|
8184
8319
|
label += `, ${rangePosition}`;
|
|
@@ -8289,12 +8424,12 @@ class AuroCalendarCell extends LitElement {
|
|
|
8289
8424
|
}
|
|
8290
8425
|
|
|
8291
8426
|
/**
|
|
8292
|
-
* Checks if the current date is a
|
|
8427
|
+
* Checks if the current date is a referenced date.
|
|
8293
8428
|
* @param {Object} dateStr - The date string in MM_DD_YYYY format.
|
|
8294
|
-
* @returns Boolean - True if the date is a
|
|
8429
|
+
* @returns Boolean - True if the date is a referenced date.
|
|
8295
8430
|
*/
|
|
8296
8431
|
isReferenceDate(dateStr) {
|
|
8297
|
-
// If the datepicker has
|
|
8432
|
+
// If the datepicker has referenced dates specified
|
|
8298
8433
|
if (this.datepicker && this.datepicker.hasAttribute('referenceDates')) {
|
|
8299
8434
|
|
|
8300
8435
|
// Get the referenceDates attribute from the datepicker
|
|
@@ -8408,6 +8543,11 @@ class AuroCalendarCell extends LitElement {
|
|
|
8408
8543
|
};
|
|
8409
8544
|
this.datepicker.addEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
|
|
8410
8545
|
|
|
8546
|
+
// Cache button reference for imperative class manipulation.
|
|
8547
|
+
this.updateComplete.then(() => {
|
|
8548
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
8549
|
+
});
|
|
8550
|
+
|
|
8411
8551
|
// Trigger an initial update now that `this.datepicker` is assigned so
|
|
8412
8552
|
// cells reflect blackout/slot state that was configured before first render.
|
|
8413
8553
|
this.requestUpdate();
|
|
@@ -8439,13 +8579,26 @@ class AuroCalendarCell extends LitElement {
|
|
|
8439
8579
|
}
|
|
8440
8580
|
|
|
8441
8581
|
updated(properties) {
|
|
8442
|
-
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('
|
|
8443
|
-
this.dateChanged(this.dateFrom, this.dateTo, this.
|
|
8582
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('day')) {
|
|
8583
|
+
this.dateChanged(this.dateFrom, this.dateTo, this.day);
|
|
8444
8584
|
}
|
|
8445
8585
|
|
|
8446
|
-
if (this.day) {
|
|
8586
|
+
if (properties.has('day') && this.day) {
|
|
8447
8587
|
this.setDateSlotName();
|
|
8448
8588
|
this.handleSlotContent();
|
|
8589
|
+
|
|
8590
|
+
// Re-cache button reference when the day changes (cell may have re-rendered).
|
|
8591
|
+
this.updateComplete.then(() => {
|
|
8592
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
8593
|
+
});
|
|
8594
|
+
|
|
8595
|
+
// Update host-level aria attributes for ariaActiveDescendantElement.
|
|
8596
|
+
this.updateHostAria();
|
|
8597
|
+
}
|
|
8598
|
+
|
|
8599
|
+
// Update host aria when selection changes (aria-selected, range labels)
|
|
8600
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected')) {
|
|
8601
|
+
this.updateHostAria();
|
|
8449
8602
|
}
|
|
8450
8603
|
|
|
8451
8604
|
// Configure popover when it first becomes rendered
|
|
@@ -8455,64 +8608,165 @@ class AuroCalendarCell extends LitElement {
|
|
|
8455
8608
|
}
|
|
8456
8609
|
|
|
8457
8610
|
/**
|
|
8458
|
-
*
|
|
8611
|
+
* Updates ARIA attributes on the host element so that
|
|
8612
|
+
* ariaActiveDescendantElement can expose cell info to the SR.
|
|
8613
|
+
* @private
|
|
8459
8614
|
* @returns {void}
|
|
8460
8615
|
*/
|
|
8461
|
-
|
|
8462
|
-
|
|
8463
|
-
if (button) {
|
|
8464
|
-
button.focus();
|
|
8465
|
-
}
|
|
8466
|
-
}
|
|
8616
|
+
updateHostAria() {
|
|
8617
|
+
if (!this.day || this.day.date === undefined) return;
|
|
8467
8618
|
|
|
8468
|
-
renderCellButton() {
|
|
8469
8619
|
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
8470
|
-
|
|
8471
|
-
|
|
8620
|
+
if (outOfRange) {
|
|
8621
|
+
this.removeAttribute('role');
|
|
8622
|
+
this.removeAttribute('aria-label');
|
|
8623
|
+
return;
|
|
8624
|
+
}
|
|
8472
8625
|
|
|
8473
|
-
|
|
8474
|
-
|
|
8475
|
-
|
|
8476
|
-
|
|
8477
|
-
|
|
8478
|
-
|
|
8479
|
-
|
|
8626
|
+
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
8627
|
+
this.setAttribute('role', 'gridcell');
|
|
8628
|
+
this.setAttribute('aria-label', this.getAriaLabel());
|
|
8629
|
+
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
8630
|
+
|
|
8631
|
+
if (this.isBlackout()) {
|
|
8632
|
+
this.setAttribute('aria-disabled', 'true');
|
|
8633
|
+
} else {
|
|
8634
|
+
this.removeAttribute('aria-disabled');
|
|
8635
|
+
}
|
|
8636
|
+
}
|
|
8637
|
+
|
|
8638
|
+
/**
|
|
8639
|
+
* Programmatically focuses the cell's interactive button element.
|
|
8640
|
+
* Uses focusVisible: true so the :focus-visible ring appears even when
|
|
8641
|
+
* the bib was opened via mouse click (which sets mouse input modality).
|
|
8642
|
+
* @returns {void}
|
|
8643
|
+
*/
|
|
8644
|
+
focusButton() {
|
|
8645
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([aria-hidden])');
|
|
8646
|
+
if (button) {
|
|
8647
|
+
button.focus({ focusVisible: true });
|
|
8648
|
+
}
|
|
8649
|
+
}
|
|
8650
|
+
|
|
8651
|
+
/**
|
|
8652
|
+
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
8653
|
+
* Note: buttons stay tabindex="-1" because the grid uses aria-activedescendant.
|
|
8654
|
+
* @returns {void}
|
|
8655
|
+
*/
|
|
8656
|
+
setActive() {
|
|
8657
|
+
this.active = true;
|
|
8658
|
+
|
|
8659
|
+
// Show the popover when this cell becomes active via keyboard navigation.
|
|
8660
|
+
if (this.auroPopover) {
|
|
8661
|
+
this.auroPopover.toggleShow();
|
|
8662
|
+
}
|
|
8663
|
+
}
|
|
8664
|
+
|
|
8665
|
+
/**
|
|
8666
|
+
* Imperatively marks this cell as inactive without triggering a Lit re-render.
|
|
8667
|
+
* @returns {void}
|
|
8668
|
+
*/
|
|
8669
|
+
clearActive() {
|
|
8670
|
+
this.active = false;
|
|
8671
|
+
const btn = this._cachedButton || this.shadowRoot.querySelector('button.day');
|
|
8672
|
+
if (btn) {
|
|
8673
|
+
btn.classList.remove('activeCell');
|
|
8674
|
+
}
|
|
8675
|
+
|
|
8676
|
+
// Hide the popover when this cell loses active state.
|
|
8677
|
+
if (this.auroPopover) {
|
|
8678
|
+
this.auroPopover.toggleHide();
|
|
8679
|
+
}
|
|
8680
|
+
}
|
|
8681
|
+
|
|
8682
|
+
/**
|
|
8683
|
+
* Updates range preview classes imperatively (no Lit re-render).
|
|
8684
|
+
* Called by the calendar component when the hovered date changes
|
|
8685
|
+
* during range selection (dateFrom set, dateTo not yet set).
|
|
8686
|
+
* @param {Number} hoveredDate - Unix timestamp of the currently hovered/focused date.
|
|
8687
|
+
* @param {Number} dateFrom - Unix timestamp of the selected departure date.
|
|
8688
|
+
* @returns {void}
|
|
8689
|
+
*/
|
|
8690
|
+
updateRangePreviewClasses(hoveredDate, dateFrom) {
|
|
8691
|
+
const btn = this._cachedButton;
|
|
8692
|
+
if (!btn || !this.day) return;
|
|
8693
|
+
|
|
8694
|
+
const dayDate = this.day.date;
|
|
8695
|
+
const departTimestamp = startOfDay(dateFrom * 1000) / 1000;
|
|
8696
|
+
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
8697
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate > departTimestamp;
|
|
8698
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate > departTimestamp;
|
|
8699
|
+
|
|
8700
|
+
btn.classList.toggle('inRange', isInRange);
|
|
8701
|
+
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
8702
|
+
btn.classList.toggle('rangeDepartDate', isDepartWithPreview);
|
|
8703
|
+
}
|
|
8704
|
+
|
|
8705
|
+
/**
|
|
8706
|
+
* Clears all imperative range preview classes from the cell button.
|
|
8707
|
+
* Called when a selection occurs so classMap becomes the sole source of truth.
|
|
8708
|
+
* @returns {void}
|
|
8709
|
+
*/
|
|
8710
|
+
clearRangePreviewClasses() {
|
|
8711
|
+
const btn = this._cachedButton;
|
|
8712
|
+
if (!btn) return;
|
|
8713
|
+
|
|
8714
|
+
btn.classList.remove('inRange', 'lastHoveredDate', 'rangeDepartDate');
|
|
8715
|
+
}
|
|
8716
|
+
|
|
8717
|
+
renderCellButton() {
|
|
8718
|
+
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
8719
|
+
const blackout = this.isBlackout();
|
|
8720
|
+
|
|
8721
|
+
// Static and selection-driven classes only. Hover-driven classes
|
|
8722
|
+
// (inRange, lastHoveredDate, rangeDepartDate during preview) are
|
|
8723
|
+
// managed imperatively via updateRangePreviewClasses() to avoid
|
|
8724
|
+
// O(N) Lit re-renders on every focus/hover event.
|
|
8725
|
+
const isFirstDay = this.day?.title === 1;
|
|
8726
|
+
const isLastDay = this.day?.date && (() => {
|
|
8727
|
+
const dt = new Date(this.day.date * 1000);
|
|
8728
|
+
return dt.getDate() === new Date(dt.getFullYear(), dt.getMonth() + 1, 0).getDate();
|
|
8729
|
+
})();
|
|
8730
|
+
|
|
8731
|
+
const buttonClasses = {
|
|
8732
|
+
'day': true,
|
|
8733
|
+
'body-default': true,
|
|
8734
|
+
'currentDate': this.isCurrentDate,
|
|
8735
|
+
'selected': this.selected,
|
|
8736
|
+
'inRange': this.datepicker?.hasAttribute('range') && this.dateTo && this.isInRange(this.day, this.dateFrom, this.dateTo),
|
|
8480
8737
|
'disabled': outOfRange,
|
|
8481
|
-
|
|
8482
|
-
'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) &&
|
|
8738
|
+
blackout,
|
|
8739
|
+
'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) && this.dateTo,
|
|
8483
8740
|
'rangeReturnDate': this.datepicker?.hasAttribute('range') && this.isReturnDate(this.day, this.dateFrom, this.dateTo),
|
|
8484
8741
|
'reference': this.isReferenceDate(this.dateStr),
|
|
8485
|
-
'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo
|
|
8742
|
+
'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo,
|
|
8743
|
+
'firstDayOfMonth': isFirstDay,
|
|
8744
|
+
'lastDayOfMonth': isLastDay,
|
|
8486
8745
|
};
|
|
8487
8746
|
|
|
8488
8747
|
return html$1`
|
|
8489
8748
|
<button
|
|
8490
8749
|
slot="trigger"
|
|
8491
8750
|
id="${this.getCellId()}"
|
|
8492
|
-
role="${role}"
|
|
8493
8751
|
@click="${outOfRange ? undefined : this.handleTap}"
|
|
8494
8752
|
@mouseover="${outOfRange ? undefined : this.handleHover}"
|
|
8495
|
-
@focus="${outOfRange ? undefined : this.
|
|
8753
|
+
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
8496
8754
|
class="${classMap(buttonClasses)}"
|
|
8497
8755
|
?disabled="${outOfRange}"
|
|
8498
|
-
aria-disabled="${blackout ? 'true' : nothing}"
|
|
8499
8756
|
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>
|
|
8757
|
+
tabindex="-1">
|
|
8504
8758
|
<div class="buttonWrapper" aria-hidden="true">
|
|
8505
8759
|
<div class="currentDayMarker">${this.day?.title || nothing}</div>
|
|
8506
|
-
|
|
8507
|
-
|
|
8508
|
-
|
|
8760
|
+
<div class="dateSlot body-2xs" part="dateSlot" aria-hidden="true" ?hidden="${!this.renderForDateSlot}">
|
|
8761
|
+
<slot name="date_${this.dateStr}"></slot>
|
|
8762
|
+
</div>
|
|
8509
8763
|
</div>
|
|
8510
8764
|
</button>
|
|
8511
8765
|
`;
|
|
8512
8766
|
}
|
|
8513
8767
|
|
|
8514
8768
|
render() {
|
|
8515
|
-
const hasPopoverContent = this
|
|
8769
|
+
const { hasPopoverContent } = this;
|
|
8516
8770
|
|
|
8517
8771
|
if (hasPopoverContent) {
|
|
8518
8772
|
return html$1`
|
|
@@ -8642,7 +8896,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8642
8896
|
*/
|
|
8643
8897
|
renderDayOfWeek(dayOfWeek, index) {
|
|
8644
8898
|
const fullName = this.dayFullNames ? this.dayFullNames[index] : dayOfWeek;
|
|
8645
|
-
return html`<div class="th body-default"
|
|
8899
|
+
return html`<div class="th body-default"><abbr title="${fullName}">${dayOfWeek}</abbr></div>`;
|
|
8646
8900
|
}
|
|
8647
8901
|
|
|
8648
8902
|
/**
|
|
@@ -8651,92 +8905,39 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8651
8905
|
*/
|
|
8652
8906
|
getFocusableCells() {
|
|
8653
8907
|
const cells = Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-cell'));
|
|
8654
|
-
return cells.filter(cell => {
|
|
8655
|
-
if (!cell.day)
|
|
8908
|
+
return cells.filter((cell) => {
|
|
8909
|
+
if (!cell.day) {
|
|
8910
|
+
return false;
|
|
8911
|
+
}
|
|
8656
8912
|
return !cell.isOutOfRange(cell.day, cell.min, cell.max);
|
|
8657
8913
|
});
|
|
8658
8914
|
}
|
|
8659
8915
|
|
|
8660
8916
|
/**
|
|
8661
|
-
*
|
|
8662
|
-
*
|
|
8917
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
8918
|
+
* as a reactive property. Instead, just dispatches the event upward so
|
|
8919
|
+
* the calendar can handle range preview imperatively.
|
|
8663
8920
|
* @private
|
|
8664
|
-
* @param {
|
|
8921
|
+
* @param {CustomEvent} event - The date-is-hovered event from a cell.
|
|
8665
8922
|
* @returns {void}
|
|
8666
8923
|
*/
|
|
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
|
-
}
|
|
8924
|
+
handleDateHovered(event) {
|
|
8925
|
+
this.dispatchEvent(new CustomEvent('hovered-date-changed', {
|
|
8926
|
+
detail: { value: event.detail.date },
|
|
8927
|
+
}));
|
|
8928
|
+
}
|
|
8732
8929
|
|
|
8733
|
-
|
|
8734
|
-
|
|
8735
|
-
|
|
8736
|
-
|
|
8737
|
-
|
|
8738
|
-
|
|
8739
|
-
|
|
8930
|
+
/**
|
|
8931
|
+
* Dispatches a bubbling event when the mouse leaves the date grid body
|
|
8932
|
+
* so the parent calendar can clear the range hover preview.
|
|
8933
|
+
* @private
|
|
8934
|
+
* @returns {void}
|
|
8935
|
+
*/
|
|
8936
|
+
handleTbodyMouseLeave() {
|
|
8937
|
+
this.dispatchEvent(new CustomEvent('calendar-month-mouseleave', {
|
|
8938
|
+
bubbles: true,
|
|
8939
|
+
composed: true,
|
|
8940
|
+
}));
|
|
8740
8941
|
}
|
|
8741
8942
|
|
|
8742
8943
|
renderWeek(week) {
|
|
@@ -8755,7 +8956,6 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8755
8956
|
.min="${this.min}"
|
|
8756
8957
|
.max="${this.max}"
|
|
8757
8958
|
.month="${this.month}"
|
|
8758
|
-
.hoveredDate="${this.hoveredDate}"
|
|
8759
8959
|
.dateTo="${this.dateTo}"
|
|
8760
8960
|
.dateFrom="${this.dateFrom}"
|
|
8761
8961
|
.locale="${this.locale}"
|
|
@@ -8777,10 +8977,10 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8777
8977
|
var _a, _b;
|
|
8778
8978
|
|
|
8779
8979
|
return html `
|
|
8780
|
-
<div
|
|
8980
|
+
<div>
|
|
8781
8981
|
<div class="header">
|
|
8782
8982
|
${this.renderPrevButton()}
|
|
8783
|
-
<div class="headerTitle heading-xs" id="${this.getHeadingId()}" aria-
|
|
8983
|
+
<div class="headerTitle heading-xs" id="${this.getHeadingId()}" aria-hidden="true">
|
|
8784
8984
|
${this.monthFirst ? html`
|
|
8785
8985
|
<div>${this.computeCurrentMonthName(this.month)}</div>
|
|
8786
8986
|
<div>${this.renderYear()}</div>
|
|
@@ -8792,13 +8992,13 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8792
8992
|
${this.renderNextButton()}
|
|
8793
8993
|
</div>
|
|
8794
8994
|
|
|
8795
|
-
<div class="table" role="grid"
|
|
8796
|
-
<div class="thead"
|
|
8797
|
-
<div class="tr"
|
|
8995
|
+
<div class="table" role="grid">
|
|
8996
|
+
<div class="thead" aria-hidden="true">
|
|
8997
|
+
<div class="tr">
|
|
8798
8998
|
${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
|
|
8799
8999
|
</div>
|
|
8800
9000
|
</div>
|
|
8801
|
-
<div class="tbody" role="rowgroup">
|
|
9001
|
+
<div class="tbody" role="rowgroup" @mouseleave="${this.handleTbodyMouseLeave}">
|
|
8802
9002
|
${(_b = this.daysOfMonth) === null || _b === void 0 ? void 0 : _b.map(week => this.renderWeek(week))}
|
|
8803
9003
|
</div>
|
|
8804
9004
|
</div>
|
|
@@ -9610,7 +9810,7 @@ class AuroBibtemplate extends LitElement {
|
|
|
9610
9810
|
}
|
|
9611
9811
|
}
|
|
9612
9812
|
|
|
9613
|
-
var formkitVersion$2 = '
|
|
9813
|
+
var formkitVersion$2 = '202606022350';
|
|
9614
9814
|
|
|
9615
9815
|
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
9816
|
`,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 +9871,7 @@ let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[
|
|
|
9671
9871
|
|
|
9672
9872
|
var buttonVersion$1 = '12.3.2';
|
|
9673
9873
|
|
|
9674
|
-
/* eslint-disable no-magic-numbers, no-undef-init, max-lines, lit/binding-positions, lit/no-invalid-html */
|
|
9874
|
+
/* 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
9875
|
|
|
9676
9876
|
|
|
9677
9877
|
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
@@ -9715,6 +9915,13 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9715
9915
|
*/
|
|
9716
9916
|
this.activeCellDate = null;
|
|
9717
9917
|
|
|
9918
|
+
/**
|
|
9919
|
+
* Whether the #calendarGrid wrapper currently has focus.
|
|
9920
|
+
* Used to determine whether the visualFocus ring should be shown.
|
|
9921
|
+
* @private
|
|
9922
|
+
*/
|
|
9923
|
+
this._gridHasFocus = false;
|
|
9924
|
+
|
|
9718
9925
|
/**
|
|
9719
9926
|
* @private
|
|
9720
9927
|
*/
|
|
@@ -9725,6 +9932,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9725
9932
|
*/
|
|
9726
9933
|
this.calendarRangeMonths = null;
|
|
9727
9934
|
|
|
9935
|
+
/**
|
|
9936
|
+
* Legacy array of disabled-date timestamps.
|
|
9937
|
+
* @private
|
|
9938
|
+
*/
|
|
9939
|
+
this.disabledDays = [];
|
|
9940
|
+
|
|
9728
9941
|
/**
|
|
9729
9942
|
* @private
|
|
9730
9943
|
*/
|
|
@@ -9748,6 +9961,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9748
9961
|
this.buttonTag = versioning.generateTag('auro-formkit-datepicker-button', buttonVersion$1, T$1);
|
|
9749
9962
|
|
|
9750
9963
|
this.dropdown = undefined;
|
|
9964
|
+
|
|
9965
|
+
/**
|
|
9966
|
+
* Unique instance ID for the live region element.
|
|
9967
|
+
* @private
|
|
9968
|
+
*/
|
|
9969
|
+
this._calendarInstanceId = Date.now().toString(36);
|
|
9751
9970
|
}
|
|
9752
9971
|
|
|
9753
9972
|
static get styles() {
|
|
@@ -9760,6 +9979,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9760
9979
|
|
|
9761
9980
|
static get properties() {
|
|
9762
9981
|
return {
|
|
9982
|
+
|
|
9763
9983
|
/**
|
|
9764
9984
|
* The last month that may be displayed in the calendar.
|
|
9765
9985
|
*/
|
|
@@ -9876,22 +10096,36 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9876
10096
|
/**
|
|
9877
10097
|
* Updates the month and year when the user navigates to the previous calendar month.
|
|
9878
10098
|
* @private
|
|
10099
|
+
* @param {Object} [options] - Optional settings.
|
|
10100
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
10101
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
9879
10102
|
* @returns {void}
|
|
9880
10103
|
*/
|
|
9881
|
-
handlePrevMonth() {
|
|
10104
|
+
handlePrevMonth(options) {
|
|
10105
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
10106
|
+
this.clearRangePreview();
|
|
9882
10107
|
this.utilCal.handleMonthChange(this, 'prev');
|
|
9883
|
-
|
|
10108
|
+
if (!opts.skipActiveUpdate) {
|
|
10109
|
+
this.updateActiveCellForVisibleMonth();
|
|
10110
|
+
}
|
|
9884
10111
|
this.announceMonthChange();
|
|
9885
10112
|
}
|
|
9886
10113
|
|
|
9887
10114
|
/**
|
|
9888
10115
|
* Updates the month and year when the user navigates to the next calendar month.
|
|
9889
10116
|
* @private
|
|
10117
|
+
* @param {Object} [options] - Optional settings.
|
|
10118
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
10119
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
9890
10120
|
* @returns {void}
|
|
9891
10121
|
*/
|
|
9892
|
-
handleNextMonth() {
|
|
10122
|
+
handleNextMonth(options) {
|
|
10123
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
10124
|
+
this.clearRangePreview();
|
|
9893
10125
|
this.utilCal.handleMonthChange(this, 'next');
|
|
9894
|
-
|
|
10126
|
+
if (!opts.skipActiveUpdate) {
|
|
10127
|
+
this.updateActiveCellForVisibleMonth();
|
|
10128
|
+
}
|
|
9895
10129
|
this.announceMonthChange();
|
|
9896
10130
|
}
|
|
9897
10131
|
|
|
@@ -9901,27 +10135,39 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9901
10135
|
* @returns {void}
|
|
9902
10136
|
*/
|
|
9903
10137
|
announceMonthChange() {
|
|
10138
|
+
// Cancel any pending debounced cell announcement so it does not
|
|
10139
|
+
// overwrite this month navigation announcement.
|
|
10140
|
+
if (this._focusAnnounceTimer) {
|
|
10141
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
10142
|
+
this._focusAnnounceTimer = null;
|
|
10143
|
+
}
|
|
10144
|
+
|
|
9904
10145
|
const date = new Date(this.centralDate);
|
|
9905
10146
|
const localeCode = this.locale?.code || undefined;
|
|
9906
|
-
const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long',
|
|
10147
|
+
const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long',
|
|
10148
|
+
year: 'numeric' });
|
|
9907
10149
|
this.announceSelection(formatter.format(date));
|
|
9908
10150
|
}
|
|
9909
10151
|
|
|
9910
10152
|
/**
|
|
9911
|
-
*
|
|
9912
|
-
*
|
|
9913
|
-
*
|
|
10153
|
+
* Updates the active cell after month navigation (prev/next buttons).
|
|
10154
|
+
* Always moves the active cell to the first enabled date in the newly
|
|
10155
|
+
* visible months so that tabbing back to the grid lands on an enabled cell.
|
|
9914
10156
|
* @private
|
|
9915
10157
|
* @returns {void}
|
|
9916
10158
|
*/
|
|
9917
10159
|
updateActiveCellForVisibleMonth() {
|
|
9918
|
-
//
|
|
9919
|
-
//
|
|
9920
|
-
|
|
9921
|
-
|
|
9922
|
-
|
|
9923
|
-
|
|
9924
|
-
|
|
10160
|
+
// Use double-rAF to ensure child month/cell components have fully
|
|
10161
|
+
// rendered and cached their button references before we set tabindex.
|
|
10162
|
+
requestAnimationFrame(() => {
|
|
10163
|
+
requestAnimationFrame(() => {
|
|
10164
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
10165
|
+
|
|
10166
|
+
if (newDate !== null && newDate !== undefined) {
|
|
10167
|
+
this.activeCellDate = newDate;
|
|
10168
|
+
this.setActiveCell(this.activeCellDate);
|
|
10169
|
+
}
|
|
10170
|
+
});
|
|
9925
10171
|
});
|
|
9926
10172
|
}
|
|
9927
10173
|
|
|
@@ -10018,7 +10264,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10018
10264
|
*/
|
|
10019
10265
|
focusCloseButton() {
|
|
10020
10266
|
const bibtemplate = this.shadowRoot.querySelector(this.bibtemplateTag._$litStatic$);
|
|
10021
|
-
if (bibtemplate)
|
|
10267
|
+
if (bibtemplate) {
|
|
10268
|
+
bibtemplate.focusCloseButton();
|
|
10269
|
+
}
|
|
10022
10270
|
}
|
|
10023
10271
|
|
|
10024
10272
|
/**
|
|
@@ -10047,7 +10295,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10047
10295
|
getAllFocusableCells() {
|
|
10048
10296
|
const months = this.getMonthComponents();
|
|
10049
10297
|
let cells = [];
|
|
10050
|
-
months.forEach(month => {
|
|
10298
|
+
months.forEach((month) => {
|
|
10051
10299
|
cells = cells.concat(month.getFocusableCells());
|
|
10052
10300
|
});
|
|
10053
10301
|
return cells;
|
|
@@ -10055,37 +10303,87 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10055
10303
|
|
|
10056
10304
|
/**
|
|
10057
10305
|
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
10306
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
10307
|
+
* Also updates ariaActiveDescendantElement on the grid wrapper so
|
|
10308
|
+
* screen readers announce the active cell without moving DOM focus.
|
|
10058
10309
|
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
10059
10310
|
* @returns {void}
|
|
10060
10311
|
*/
|
|
10061
10312
|
setActiveCell(date) {
|
|
10062
10313
|
const allCells = this.getAllFocusableCells();
|
|
10063
10314
|
|
|
10064
|
-
|
|
10065
|
-
|
|
10315
|
+
let newActiveCell = null;
|
|
10316
|
+
allCells.forEach((cell) => {
|
|
10317
|
+
if (cell.day && cell.day.date === date) {
|
|
10318
|
+
cell.setActive();
|
|
10319
|
+
newActiveCell = cell;
|
|
10320
|
+
} else if (cell.active) {
|
|
10321
|
+
cell.clearActive();
|
|
10322
|
+
}
|
|
10066
10323
|
});
|
|
10067
10324
|
|
|
10068
10325
|
this.activeCellDate = date;
|
|
10326
|
+
|
|
10327
|
+
// Apply activeCell ring only when the grid currently has focus.
|
|
10328
|
+
if (newActiveCell && this._gridHasFocus) {
|
|
10329
|
+
const btn = newActiveCell._cachedButton || newActiveCell.shadowRoot.querySelector('button.day');
|
|
10330
|
+
if (btn) {
|
|
10331
|
+
btn.classList.add('activeCell');
|
|
10332
|
+
}
|
|
10333
|
+
}
|
|
10069
10334
|
}
|
|
10070
10335
|
|
|
10071
10336
|
/**
|
|
10072
|
-
* Focuses the
|
|
10073
|
-
*
|
|
10074
|
-
*
|
|
10337
|
+
* Focuses the calendar grid wrapper and sets the active cell.
|
|
10338
|
+
* DOM focus stays on the grid wrapper; the aria-live region
|
|
10339
|
+
* tells the screen reader which cell is "active".
|
|
10075
10340
|
* @returns {void}
|
|
10076
10341
|
*/
|
|
10077
10342
|
focusActiveCell() {
|
|
10078
|
-
if (this.activeCellDate
|
|
10343
|
+
if (this.activeCellDate !== null && this.activeCellDate !== undefined) {
|
|
10079
10344
|
this.setActiveCell(this.activeCellDate);
|
|
10080
10345
|
}
|
|
10081
10346
|
|
|
10082
|
-
const
|
|
10083
|
-
|
|
10347
|
+
const gridWrapper = this.shadowRoot.querySelector('#calendarGrid');
|
|
10348
|
+
if (gridWrapper) {
|
|
10349
|
+
gridWrapper.focus({ preventScroll: true,
|
|
10350
|
+
focusVisible: true });
|
|
10351
|
+
}
|
|
10352
|
+
}
|
|
10353
|
+
|
|
10354
|
+
/**
|
|
10355
|
+
* Shows the activeCell ring when the grid gains focus.
|
|
10356
|
+
* @private
|
|
10357
|
+
* @returns {void}
|
|
10358
|
+
*/
|
|
10359
|
+
handleGridFocusIn() {
|
|
10360
|
+
this._gridHasFocus = true;
|
|
10361
|
+
const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
|
|
10084
10362
|
if (activeCell) {
|
|
10085
|
-
activeCell.
|
|
10086
|
-
|
|
10087
|
-
|
|
10363
|
+
const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
|
|
10364
|
+
if (btn) {
|
|
10365
|
+
btn.classList.add('activeCell');
|
|
10366
|
+
}
|
|
10367
|
+
}
|
|
10368
|
+
}
|
|
10369
|
+
|
|
10370
|
+
/**
|
|
10371
|
+
* Hides the activeCell ring when the grid loses focus.
|
|
10372
|
+
* @private
|
|
10373
|
+
* @returns {void}
|
|
10374
|
+
*/
|
|
10375
|
+
handleGridFocusOut() {
|
|
10376
|
+
this._gridHasFocus = false;
|
|
10377
|
+
// Remove activeCell from ALL cells to prevent stale rings.
|
|
10378
|
+
const allCells = this.getAllFocusableCells();
|
|
10379
|
+
for (const cell of allCells) {
|
|
10380
|
+
const btn = cell._cachedButton || cell.shadowRoot.querySelector('button.day');
|
|
10381
|
+
if (btn) {
|
|
10382
|
+
btn.classList.remove('activeCell');
|
|
10383
|
+
}
|
|
10088
10384
|
}
|
|
10385
|
+
// Clear range hover preview so no highlight lingers after focus leaves the grid.
|
|
10386
|
+
this.clearRangePreview();
|
|
10089
10387
|
}
|
|
10090
10388
|
|
|
10091
10389
|
/**
|
|
@@ -10099,7 +10397,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10099
10397
|
* 5b. First enabled date scanning forward from finite min (unbounded max)
|
|
10100
10398
|
* 5c. First enabled date scanning backward from finite max (unbounded min)
|
|
10101
10399
|
* 6. First in-range date (even if blackout) so focus can land somewhere
|
|
10102
|
-
* 7.
|
|
10400
|
+
* 7. Undefined — no valid target.
|
|
10103
10401
|
*
|
|
10104
10402
|
* @private
|
|
10105
10403
|
* @param {Object} [options] - Optional settings.
|
|
@@ -10114,12 +10412,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10114
10412
|
/**
|
|
10115
10413
|
* Adds days to a timestamp using Date arithmetic to handle DST correctly.
|
|
10116
10414
|
* Returns a local-midnight-aligned timestamp in seconds.
|
|
10415
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
10416
|
+
* @param {Number} days - Number of days to add.
|
|
10417
|
+
* @returns {Number} The adjusted timestamp in seconds.
|
|
10117
10418
|
*/
|
|
10118
10419
|
const addDays = (ts, days) => {
|
|
10119
|
-
const
|
|
10120
|
-
|
|
10121
|
-
|
|
10122
|
-
return Math.floor(
|
|
10420
|
+
const date = new Date(ts * 1000);
|
|
10421
|
+
date.setDate(date.getDate() + days);
|
|
10422
|
+
date.setHours(0, 0, 0, 0);
|
|
10423
|
+
return Math.floor(date.getTime() / 1000);
|
|
10123
10424
|
};
|
|
10124
10425
|
|
|
10125
10426
|
const rawMin = Number(this.min);
|
|
@@ -10130,9 +10431,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10130
10431
|
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
10131
10432
|
|
|
10132
10433
|
// Build a Set of blackout timestamps for O(1) lookup.
|
|
10133
|
-
const blackoutSet = new Set(
|
|
10134
|
-
(this.disabledDays || []).map(d => parseInt(d, 10))
|
|
10135
|
-
);
|
|
10434
|
+
const blackoutSet = new Set(this.disabledDays.map((day) => parseInt(day, 10)));
|
|
10136
10435
|
|
|
10137
10436
|
// Also include ISO-format blackoutDates from the datepicker if available.
|
|
10138
10437
|
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
@@ -10141,19 +10440,25 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10141
10440
|
for (const isoStr of isoBlackouts) {
|
|
10142
10441
|
const parts = isoStr.split('-');
|
|
10143
10442
|
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))
|
|
10443
|
+
if (Number.isFinite(ts)) {
|
|
10444
|
+
blackoutSet.add(ts);
|
|
10445
|
+
}
|
|
10145
10446
|
}
|
|
10146
10447
|
}
|
|
10147
10448
|
|
|
10148
10449
|
/**
|
|
10149
10450
|
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
10150
10451
|
* it is within [min, max] AND not a blackout day.
|
|
10452
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
10453
|
+
* @returns {boolean} True if the date is enabled.
|
|
10151
10454
|
*/
|
|
10152
10455
|
const isEnabled = (ts) => ts >= minTs && ts <= maxTs && !blackoutSet.has(ts);
|
|
10153
10456
|
|
|
10154
10457
|
/**
|
|
10155
10458
|
* A date is "in range" (focusable in the grid) when it is within [min, max].
|
|
10156
10459
|
* Blackout dates are focusable but not selectable.
|
|
10460
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
10461
|
+
* @returns {boolean} True if the date is in range.
|
|
10157
10462
|
*/
|
|
10158
10463
|
const isInRange = (ts) => ts >= minTs && ts <= maxTs;
|
|
10159
10464
|
|
|
@@ -10162,7 +10467,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10162
10467
|
// the newly visible month rather than the (possibly off-screen) selection.
|
|
10163
10468
|
if (!options.skipDateFrom && this.dateFrom) {
|
|
10164
10469
|
const parsedFrom = parseInt(this.dateFrom, 10);
|
|
10165
|
-
if (Number.isFinite(parsedFrom) && isInRange(parsedFrom))
|
|
10470
|
+
if (Number.isFinite(parsedFrom) && isInRange(parsedFrom)) {
|
|
10471
|
+
return parsedFrom;
|
|
10472
|
+
}
|
|
10166
10473
|
}
|
|
10167
10474
|
|
|
10168
10475
|
// 2. Today's date (midnight-aligned) if enabled.
|
|
@@ -10189,32 +10496,35 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10189
10496
|
const visibleEnd = new Date(centralYear, centralMonth + 1, 0); // last day of month
|
|
10190
10497
|
visibleEnd.setHours(0, 0, 0, 0);
|
|
10191
10498
|
const startTs = Math.floor(visibleStart.getTime() / 1000);
|
|
10192
|
-
const endTs = Math.floor(visibleEnd.getTime() / 1000);
|
|
10193
10499
|
const daysInMonth = visibleEnd.getDate();
|
|
10194
10500
|
|
|
10195
|
-
for (let idx = 0; idx < daysInMonth; idx
|
|
10501
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
10196
10502
|
const ts = addDays(startTs, idx);
|
|
10197
|
-
if (ts
|
|
10198
|
-
|
|
10503
|
+
if (isEnabled(ts)) {
|
|
10504
|
+
return ts;
|
|
10505
|
+
}
|
|
10199
10506
|
}
|
|
10200
10507
|
|
|
10201
10508
|
// No enabled date in the visible month — fall back to first in-range
|
|
10202
10509
|
// date in the month so focus still lands on a focusable cell.
|
|
10203
|
-
for (let idx = 0; idx < daysInMonth; idx
|
|
10510
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
10204
10511
|
const ts = addDays(startTs, idx);
|
|
10205
|
-
if (ts
|
|
10206
|
-
|
|
10512
|
+
if (isInRange(ts)) {
|
|
10513
|
+
return ts;
|
|
10514
|
+
}
|
|
10207
10515
|
}
|
|
10208
10516
|
}
|
|
10209
10517
|
}
|
|
10210
10518
|
|
|
10211
|
-
if (isEnabled(now))
|
|
10519
|
+
if (isEnabled(now)) {
|
|
10520
|
+
return now;
|
|
10521
|
+
}
|
|
10212
10522
|
|
|
10213
10523
|
// When a centralDate is configured (or inferred), constrain the scan to the
|
|
10214
10524
|
// rendered month(s) first so a single-month calendar does not pick a date
|
|
10215
10525
|
// that has no DOM cell. Determine the visible range based on centralDate and
|
|
10216
10526
|
// the number of rendered months.
|
|
10217
|
-
const renderedMonths = this.numCalendars
|
|
10527
|
+
const renderedMonths = Math.max(this.numCalendars, 1);
|
|
10218
10528
|
const visibleAnchor = centralDateValue && !isNaN(centralDateValue.getTime())
|
|
10219
10529
|
? centralDateValue
|
|
10220
10530
|
: new Date(now * 1000);
|
|
@@ -10227,40 +10537,52 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10227
10537
|
const visDays = Math.round((visEndTs - visStartTs) / 86400) + 1;
|
|
10228
10538
|
|
|
10229
10539
|
// Scan visible months for an enabled date.
|
|
10230
|
-
for (let idx = 0; idx < visDays; idx
|
|
10540
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
10231
10541
|
const ts = addDays(visStartTs, idx);
|
|
10232
|
-
if (ts
|
|
10233
|
-
|
|
10542
|
+
if (isEnabled(ts)) {
|
|
10543
|
+
return ts;
|
|
10544
|
+
}
|
|
10234
10545
|
}
|
|
10235
10546
|
|
|
10236
10547
|
// No enabled date in visible months — try an in-range (focusable) date so
|
|
10237
10548
|
// keyboard focus still has a tabindex="0" target.
|
|
10238
|
-
for (let idx = 0; idx < visDays; idx
|
|
10549
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
10239
10550
|
const ts = addDays(visStartTs, idx);
|
|
10240
|
-
if (ts
|
|
10241
|
-
|
|
10551
|
+
if (isInRange(ts)) {
|
|
10552
|
+
return ts;
|
|
10553
|
+
}
|
|
10242
10554
|
}
|
|
10243
10555
|
|
|
10244
10556
|
// 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
|
|
10557
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10246
10558
|
const ts = addDays(now, idx);
|
|
10247
|
-
if (Number.isFinite(maxTs) && ts > maxTs)
|
|
10248
|
-
|
|
10559
|
+
if (Number.isFinite(maxTs) && ts > maxTs) {
|
|
10560
|
+
break;
|
|
10561
|
+
}
|
|
10562
|
+
if (isEnabled(ts)) {
|
|
10563
|
+
return ts;
|
|
10564
|
+
}
|
|
10249
10565
|
}
|
|
10250
10566
|
|
|
10251
10567
|
// 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
|
|
10568
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10253
10569
|
const ts = addDays(now, -idx);
|
|
10254
|
-
if (Number.isFinite(minTs) && ts < minTs)
|
|
10255
|
-
|
|
10570
|
+
if (Number.isFinite(minTs) && ts < minTs) {
|
|
10571
|
+
break;
|
|
10572
|
+
}
|
|
10573
|
+
if (isEnabled(ts)) {
|
|
10574
|
+
return ts;
|
|
10575
|
+
}
|
|
10256
10576
|
}
|
|
10257
10577
|
|
|
10258
10578
|
// 5. If scans missed (e.g. min/max range is far from today), fall back to
|
|
10259
10579
|
// the first enabled date in the [min, max] range.
|
|
10260
10580
|
if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
10261
10581
|
let ts = minTs;
|
|
10262
|
-
for (let idx = 0; ts <= maxTs; idx
|
|
10263
|
-
if (isEnabled(ts))
|
|
10582
|
+
for (let idx = 0; ts <= maxTs; idx += 1) {
|
|
10583
|
+
if (isEnabled(ts)) {
|
|
10584
|
+
return ts;
|
|
10585
|
+
}
|
|
10264
10586
|
ts = addDays(minTs, idx + 1);
|
|
10265
10587
|
}
|
|
10266
10588
|
}
|
|
@@ -10268,29 +10590,191 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10268
10590
|
// 5b. Finite min with unbounded max (e.g. minDate far in the future):
|
|
10269
10591
|
// scan forward from min for up to MAX_SCAN_DAYS.
|
|
10270
10592
|
if (Number.isFinite(minTs) && !Number.isFinite(maxTs)) {
|
|
10271
|
-
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx
|
|
10593
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10272
10594
|
const ts = addDays(minTs, idx);
|
|
10273
|
-
if (isEnabled(ts))
|
|
10595
|
+
if (isEnabled(ts)) {
|
|
10596
|
+
return ts;
|
|
10597
|
+
}
|
|
10274
10598
|
}
|
|
10275
10599
|
}
|
|
10276
10600
|
|
|
10277
10601
|
// 5c. Unbounded min with a finite max far in the past (e.g. birth-date picker):
|
|
10278
10602
|
// scan backward from max for up to MAX_SCAN_DAYS.
|
|
10279
10603
|
if (!Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
10280
|
-
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx
|
|
10604
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10281
10605
|
const ts = addDays(maxTs, -idx);
|
|
10282
|
-
if (isEnabled(ts))
|
|
10606
|
+
if (isEnabled(ts)) {
|
|
10607
|
+
return ts;
|
|
10608
|
+
}
|
|
10283
10609
|
}
|
|
10284
10610
|
}
|
|
10285
10611
|
|
|
10286
10612
|
// 6. All dates are blackout — fall back to the first in-range date so focus
|
|
10287
10613
|
// still lands on a focusable (but not selectable) cell.
|
|
10288
|
-
if (Number.isFinite(minTs) && isInRange(minTs))
|
|
10289
|
-
|
|
10614
|
+
if (Number.isFinite(minTs) && isInRange(minTs)) {
|
|
10615
|
+
return minTs;
|
|
10616
|
+
}
|
|
10617
|
+
if (isInRange(now)) {
|
|
10618
|
+
return now;
|
|
10619
|
+
}
|
|
10290
10620
|
|
|
10291
10621
|
return undefined;
|
|
10292
10622
|
}
|
|
10293
10623
|
|
|
10624
|
+
/**
|
|
10625
|
+
* Checks if a target date (unix seconds) is within the configured [min, max] range.
|
|
10626
|
+
* Returns false if the date falls outside the range, preventing navigation
|
|
10627
|
+
* to months where all dates are disabled.
|
|
10628
|
+
* @private
|
|
10629
|
+
* @param {Number} targetTs - Unix timestamp in seconds.
|
|
10630
|
+
* @returns {Boolean} True if the date is within range.
|
|
10631
|
+
*/
|
|
10632
|
+
isDateInRange(targetTs) {
|
|
10633
|
+
const rawMin = Number(this.min);
|
|
10634
|
+
const rawMax = Number(this.max);
|
|
10635
|
+
if (Number.isFinite(rawMin) && targetTs < rawMin) {
|
|
10636
|
+
return false;
|
|
10637
|
+
}
|
|
10638
|
+
if (Number.isFinite(rawMax) && targetTs > rawMax) {
|
|
10639
|
+
return false;
|
|
10640
|
+
}
|
|
10641
|
+
return true;
|
|
10642
|
+
}
|
|
10643
|
+
|
|
10644
|
+
/**
|
|
10645
|
+
* Handles arrow key navigation on the calendar grid wrapper.
|
|
10646
|
+
* Focus stays on the grid wrapper; only ariaActiveDescendantElement
|
|
10647
|
+
* and the visual active-cell indicator change.
|
|
10648
|
+
* @private
|
|
10649
|
+
* @param {KeyboardEvent} event - The keyboard event.
|
|
10650
|
+
* @returns {void}
|
|
10651
|
+
*/
|
|
10652
|
+
handleGridKeyDown(event) {
|
|
10653
|
+
const { key } = event;
|
|
10654
|
+
const actionKeys = [
|
|
10655
|
+
'ArrowRight',
|
|
10656
|
+
'ArrowLeft',
|
|
10657
|
+
'ArrowDown',
|
|
10658
|
+
'ArrowUp',
|
|
10659
|
+
'Enter',
|
|
10660
|
+
' '
|
|
10661
|
+
];
|
|
10662
|
+
|
|
10663
|
+
if (!actionKeys.includes(key)) {
|
|
10664
|
+
return;
|
|
10665
|
+
}
|
|
10666
|
+
|
|
10667
|
+
event.preventDefault();
|
|
10668
|
+
|
|
10669
|
+
const allCells = this.getAllFocusableCells();
|
|
10670
|
+
if (allCells.length === 0) {
|
|
10671
|
+
return;
|
|
10672
|
+
}
|
|
10673
|
+
|
|
10674
|
+
const activeCell = allCells.find((cell) => cell.active);
|
|
10675
|
+
if (!activeCell) {
|
|
10676
|
+
return;
|
|
10677
|
+
}
|
|
10678
|
+
|
|
10679
|
+
// Handle Enter/Space to select the active cell
|
|
10680
|
+
if (key === 'Enter' || key === ' ') {
|
|
10681
|
+
activeCell.handleTap();
|
|
10682
|
+
return;
|
|
10683
|
+
}
|
|
10684
|
+
|
|
10685
|
+
const activeIndex = allCells.indexOf(activeCell);
|
|
10686
|
+
|
|
10687
|
+
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
10688
|
+
const direction = key === 'ArrowRight' ? 1 : -1;
|
|
10689
|
+
const targetIndex = activeIndex + direction;
|
|
10690
|
+
|
|
10691
|
+
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
10692
|
+
// Target cell exists in rendered months
|
|
10693
|
+
this.setActiveCell(allCells[targetIndex].day.date);
|
|
10694
|
+
this.scrollToActiveCell();
|
|
10695
|
+
// Dispatch focus event for the cell so live region + range preview update
|
|
10696
|
+
this.handleCellFocused({ detail: { date: allCells[targetIndex].day.date } });
|
|
10697
|
+
} else {
|
|
10698
|
+
// At boundary — need to navigate to next/prev month
|
|
10699
|
+
const navDir = direction === 1 ? 'next' : 'prev';
|
|
10700
|
+
const targetDate = new Date(activeCell.day.date * 1000);
|
|
10701
|
+
targetDate.setDate(targetDate.getDate() + direction);
|
|
10702
|
+
targetDate.setHours(0, 0, 0, 0);
|
|
10703
|
+
const targetTs = Math.floor(targetDate.getTime() / 1000);
|
|
10704
|
+
|
|
10705
|
+
if (this.isDateInRange(targetTs) && ((navDir === 'next' && this.showNextMonthBtn) || (navDir === 'prev' && this.showPrevMonthBtn))) { // eslint-disable-line no-extra-parens
|
|
10706
|
+
|
|
10707
|
+
if (navDir === 'next') {
|
|
10708
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10709
|
+
} else {
|
|
10710
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10711
|
+
}
|
|
10712
|
+
requestAnimationFrame(() => {
|
|
10713
|
+
requestAnimationFrame(() => {
|
|
10714
|
+
const cells = this.getAllFocusableCells();
|
|
10715
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
10716
|
+
if (target) {
|
|
10717
|
+
this.setActiveCell(target.day.date);
|
|
10718
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
10719
|
+
} else if (cells.length > 0) {
|
|
10720
|
+
const fallback = navDir === 'next' ? cells[cells.length - 1] : cells[0];
|
|
10721
|
+
this.setActiveCell(fallback.day.date);
|
|
10722
|
+
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
10723
|
+
}
|
|
10724
|
+
// Re-focus grid wrapper after month change re-render
|
|
10725
|
+
this.focusActiveCell();
|
|
10726
|
+
});
|
|
10727
|
+
});
|
|
10728
|
+
}
|
|
10729
|
+
}
|
|
10730
|
+
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
10731
|
+
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
10732
|
+
const currentDate = new Date(activeCell.day.date * 1000);
|
|
10733
|
+
currentDate.setDate(currentDate.getDate() + increment);
|
|
10734
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
10735
|
+
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
10736
|
+
|
|
10737
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
10738
|
+
|
|
10739
|
+
if (targetCell) {
|
|
10740
|
+
this.setActiveCell(targetCell.day.date);
|
|
10741
|
+
this.scrollToActiveCell();
|
|
10742
|
+
this.handleCellFocused({ detail: { date: targetCell.day.date } });
|
|
10743
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
10744
|
+
// Target might be in an unrendered month
|
|
10745
|
+
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
10746
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
10747
|
+
if (navDirection === 'next') {
|
|
10748
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10749
|
+
} else {
|
|
10750
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10751
|
+
}
|
|
10752
|
+
requestAnimationFrame(() => {
|
|
10753
|
+
requestAnimationFrame(() => {
|
|
10754
|
+
const cells = this.getAllFocusableCells();
|
|
10755
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
10756
|
+
if (target) {
|
|
10757
|
+
this.setActiveCell(target.day.date);
|
|
10758
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
10759
|
+
} else if (cells.length > 0) {
|
|
10760
|
+
let nearest = null;
|
|
10761
|
+
|
|
10762
|
+
if (navDirection === 'next') {
|
|
10763
|
+
[nearest] = cells;
|
|
10764
|
+
} else {
|
|
10765
|
+
nearest = cells[cells.length - 1];
|
|
10766
|
+
}
|
|
10767
|
+
this.setActiveCell(nearest.day.date);
|
|
10768
|
+
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
10769
|
+
}
|
|
10770
|
+
this.focusActiveCell();
|
|
10771
|
+
});
|
|
10772
|
+
});
|
|
10773
|
+
}
|
|
10774
|
+
}
|
|
10775
|
+
}
|
|
10776
|
+
}
|
|
10777
|
+
|
|
10294
10778
|
/**
|
|
10295
10779
|
* Handles cross-month boundary navigation events from month components.
|
|
10296
10780
|
* @private
|
|
@@ -10303,15 +10787,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10303
10787
|
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
10304
10788
|
// Linear navigation: find adjacent focusable cell across months
|
|
10305
10789
|
const allCells = this.getAllFocusableCells();
|
|
10306
|
-
const currentIndex = allCells.findIndex(cell => cell.day && cell.day.date === fromDate);
|
|
10790
|
+
const currentIndex = allCells.findIndex((cell) => cell.day && cell.day.date === fromDate);
|
|
10307
10791
|
|
|
10308
|
-
if (currentIndex === -1)
|
|
10792
|
+
if (currentIndex === -1) {
|
|
10793
|
+
return;
|
|
10794
|
+
}
|
|
10309
10795
|
|
|
10310
|
-
let targetIndex;
|
|
10796
|
+
let targetIndex = -1;
|
|
10311
10797
|
if (direction === 'next') {
|
|
10312
10798
|
targetIndex = currentIndex + 1;
|
|
10313
|
-
} else {
|
|
10314
|
-
targetIndex = currentIndex - 1;
|
|
10315
10799
|
}
|
|
10316
10800
|
|
|
10317
10801
|
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
@@ -10329,11 +10813,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10329
10813
|
nextDate.setHours(0, 0, 0, 0);
|
|
10330
10814
|
const nextTs = Math.floor(nextDate.getTime() / 1000);
|
|
10331
10815
|
|
|
10332
|
-
this.
|
|
10816
|
+
if (!this.isDateInRange(nextTs)) {
|
|
10817
|
+
return;
|
|
10818
|
+
}
|
|
10819
|
+
|
|
10820
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10333
10821
|
requestAnimationFrame(() => {
|
|
10334
10822
|
requestAnimationFrame(() => {
|
|
10335
10823
|
const cells = this.getAllFocusableCells();
|
|
10336
|
-
const target = cells.find(cell => cell.day && cell.day.date === nextTs);
|
|
10824
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
10337
10825
|
if (target) {
|
|
10338
10826
|
this.setActiveCell(target.day.date);
|
|
10339
10827
|
this.focusActiveCell();
|
|
@@ -10351,11 +10839,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10351
10839
|
prevDate.setHours(0, 0, 0, 0);
|
|
10352
10840
|
const prevTs = Math.floor(prevDate.getTime() / 1000);
|
|
10353
10841
|
|
|
10354
|
-
this.
|
|
10842
|
+
if (!this.isDateInRange(prevTs)) {
|
|
10843
|
+
return;
|
|
10844
|
+
}
|
|
10845
|
+
|
|
10846
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10355
10847
|
requestAnimationFrame(() => {
|
|
10356
10848
|
requestAnimationFrame(() => {
|
|
10357
10849
|
const cells = this.getAllFocusableCells();
|
|
10358
|
-
const target = cells.find(cell => cell.day && cell.day.date === prevTs);
|
|
10850
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
10359
10851
|
if (target) {
|
|
10360
10852
|
this.setActiveCell(target.day.date);
|
|
10361
10853
|
this.focusActiveCell();
|
|
@@ -10377,25 +10869,25 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10377
10869
|
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
10378
10870
|
|
|
10379
10871
|
const allCells = this.getAllFocusableCells();
|
|
10380
|
-
|
|
10872
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
10381
10873
|
|
|
10382
10874
|
if (targetCell) {
|
|
10383
10875
|
this.setActiveCell(targetCell.day.date);
|
|
10384
10876
|
this.scrollToActiveCell();
|
|
10385
10877
|
this.focusActiveCell();
|
|
10386
|
-
} else {
|
|
10878
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
10387
10879
|
// Target might be in an unrendered month, navigate there
|
|
10388
10880
|
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
10389
|
-
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) {
|
|
10881
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
10390
10882
|
if (navDirection === 'next') {
|
|
10391
|
-
this.handleNextMonth();
|
|
10883
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10392
10884
|
} else {
|
|
10393
|
-
this.handlePrevMonth();
|
|
10885
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10394
10886
|
}
|
|
10395
10887
|
requestAnimationFrame(() => {
|
|
10396
10888
|
requestAnimationFrame(() => {
|
|
10397
10889
|
const cells = this.getAllFocusableCells();
|
|
10398
|
-
const target = cells.find(cell => cell.day && cell.day.date === targetDate);
|
|
10890
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
10399
10891
|
if (target) {
|
|
10400
10892
|
this.setActiveCell(target.day.date);
|
|
10401
10893
|
this.focusActiveCell();
|
|
@@ -10421,7 +10913,195 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10421
10913
|
handleCellActivate(event) {
|
|
10422
10914
|
const { date } = event.detail;
|
|
10423
10915
|
this.setActiveCell(date);
|
|
10424
|
-
|
|
10916
|
+
|
|
10917
|
+
// Don't call focusActiveCell() here. The tap/click already placed
|
|
10918
|
+
// focus on the cell button, and moving it to #calendarGrid would
|
|
10919
|
+
// trigger focusout on the button, closing any open popover on the
|
|
10920
|
+
// cell. Keyboard events are composed and still bubble through
|
|
10921
|
+
// shadow DOM boundaries to the grid's @keydown handler, so
|
|
10922
|
+
// subsequent keyboard navigation continues to work.
|
|
10923
|
+
}
|
|
10924
|
+
|
|
10925
|
+
/**
|
|
10926
|
+
* Handles focus events from calendar cells.
|
|
10927
|
+
* Updates the live region with an SR announcement and triggers
|
|
10928
|
+
* the imperative range preview if applicable.
|
|
10929
|
+
* @private
|
|
10930
|
+
* @param {CustomEvent} event - The calendar-cell-focused event.
|
|
10931
|
+
* @returns {void}
|
|
10932
|
+
*/
|
|
10933
|
+
handleCellFocused(event) {
|
|
10934
|
+
const { date } = event.detail;
|
|
10935
|
+
if (date === null) {
|
|
10936
|
+
return;
|
|
10937
|
+
}
|
|
10938
|
+
|
|
10939
|
+
// With aria-activedescendant, the button no longer receives native focus,
|
|
10940
|
+
// so we use the debounced live region for the full context announcement.
|
|
10941
|
+
const announcement = this.buildFocusAnnouncement(date);
|
|
10942
|
+
this.announceFocusDebounced(announcement);
|
|
10943
|
+
|
|
10944
|
+
// Update the range preview imperatively if in range-preview mode.
|
|
10945
|
+
this.updateRangePreview(date);
|
|
10946
|
+
}
|
|
10947
|
+
|
|
10948
|
+
/**
|
|
10949
|
+
* Builds a full SR announcement string for a focused cell date.
|
|
10950
|
+
* Includes the localized date, range position, popover content,
|
|
10951
|
+
* and blackout status.
|
|
10952
|
+
* @private
|
|
10953
|
+
* @param {Number} date - Unix timestamp (seconds) of the focused cell.
|
|
10954
|
+
* @returns {String} The announcement string.
|
|
10955
|
+
*/
|
|
10956
|
+
buildFocusAnnouncement(date) {
|
|
10957
|
+
let label = this.formatAnnouncementDate(date);
|
|
10958
|
+
|
|
10959
|
+
// Append date slot content (e.g. prices) if present.
|
|
10960
|
+
const dateObj = new Date(date * 1000);
|
|
10961
|
+
const mm = String(dateObj.getMonth() + 1).padStart(2, '0');
|
|
10962
|
+
const dd = String(dateObj.getDate()).padStart(2, '0');
|
|
10963
|
+
const yyyy = dateObj.getFullYear();
|
|
10964
|
+
const dateStr = `${mm}_${dd}_${yyyy}`;
|
|
10965
|
+
const dateSlotEl = this.datepicker?.querySelector(`[slot="date_${dateStr}"]`);
|
|
10966
|
+
if (dateSlotEl) {
|
|
10967
|
+
const text = dateSlotEl.innerText?.trim();
|
|
10968
|
+
if (text) {
|
|
10969
|
+
label += `, ${text}`;
|
|
10970
|
+
}
|
|
10971
|
+
}
|
|
10972
|
+
|
|
10973
|
+
// Append popover content if present.
|
|
10974
|
+
const popoverEl = this.datepicker?.querySelector(`[slot="popover_${dateStr}"]`);
|
|
10975
|
+
if (popoverEl) {
|
|
10976
|
+
const text = popoverEl.innerText?.trim();
|
|
10977
|
+
if (text) {
|
|
10978
|
+
label += `, ${text}`;
|
|
10979
|
+
}
|
|
10980
|
+
}
|
|
10981
|
+
|
|
10982
|
+
// Append range position context.
|
|
10983
|
+
if (this.datepicker?.hasAttribute('range')) {
|
|
10984
|
+
const rangeLabel = this.getRangePositionLabel(date);
|
|
10985
|
+
if (rangeLabel) {
|
|
10986
|
+
label += `, ${rangeLabel}`;
|
|
10987
|
+
}
|
|
10988
|
+
}
|
|
10989
|
+
|
|
10990
|
+
// Append blackout label.
|
|
10991
|
+
if (this.isDateBlackout(date)) {
|
|
10992
|
+
label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
|
|
10993
|
+
}
|
|
10994
|
+
|
|
10995
|
+
return label;
|
|
10996
|
+
}
|
|
10997
|
+
|
|
10998
|
+
/**
|
|
10999
|
+
* Determines the range position label for a given date.
|
|
11000
|
+
* @private
|
|
11001
|
+
* @param {Number} date - Unix timestamp (seconds).
|
|
11002
|
+
* @returns {String|null} The range position label, or null.
|
|
11003
|
+
*/
|
|
11004
|
+
getRangePositionLabel(date) {
|
|
11005
|
+
const parsedFrom = Number.parseInt(this.dateFrom, 10);
|
|
11006
|
+
if (!Number.isFinite(parsedFrom)) {
|
|
11007
|
+
return null;
|
|
11008
|
+
}
|
|
11009
|
+
|
|
11010
|
+
const departTs = startOfDay(parsedFrom * 1000) / 1000;
|
|
11011
|
+
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
11012
|
+
const hasTo = Number.isFinite(parsedTo);
|
|
11013
|
+
const returnTs = hasTo ? startOfDay(parsedTo * 1000) / 1000 : null;
|
|
11014
|
+
|
|
11015
|
+
if (date === departTs) {
|
|
11016
|
+
return this.datepicker.rangeLabelStart || 'range start';
|
|
11017
|
+
}
|
|
11018
|
+
if (hasTo && date === returnTs) {
|
|
11019
|
+
return this.datepicker.rangeLabelEnd || 'range end';
|
|
11020
|
+
}
|
|
11021
|
+
if (date < departTs) {
|
|
11022
|
+
return this.datepicker.rangeLabelBeforeRange || 'before range';
|
|
11023
|
+
}
|
|
11024
|
+
if (hasTo && date > departTs && date < returnTs) {
|
|
11025
|
+
return this.datepicker.rangeLabelInRange || 'in range';
|
|
11026
|
+
}
|
|
11027
|
+
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
11028
|
+
}
|
|
11029
|
+
|
|
11030
|
+
/**
|
|
11031
|
+
* Checks whether a given date is a blackout date.
|
|
11032
|
+
* @private
|
|
11033
|
+
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
11034
|
+
* @returns {Boolean} True if the date is blacked out.
|
|
11035
|
+
*/
|
|
11036
|
+
isDateBlackout(dateTs) {
|
|
11037
|
+
// Check legacy disabledDays.
|
|
11038
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
11039
|
+
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
11040
|
+
return true;
|
|
11041
|
+
}
|
|
11042
|
+
}
|
|
11043
|
+
|
|
11044
|
+
// Check ISO blackoutDates.
|
|
11045
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
11046
|
+
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
11047
|
+
const date = new Date(dateTs * 1000);
|
|
11048
|
+
const yyyy = date.getFullYear();
|
|
11049
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
11050
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
11051
|
+
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
11052
|
+
return true;
|
|
11053
|
+
}
|
|
11054
|
+
}
|
|
11055
|
+
|
|
11056
|
+
return false;
|
|
11057
|
+
}
|
|
11058
|
+
|
|
11059
|
+
/**
|
|
11060
|
+
* Updates the range preview classes imperatively across all cells.
|
|
11061
|
+
* Only active when in range mode with dateFrom set and dateTo not yet set.
|
|
11062
|
+
* @private
|
|
11063
|
+
* @param {Number} hoveredDate - Unix timestamp of the hovered/focused date.
|
|
11064
|
+
* @returns {void}
|
|
11065
|
+
*/
|
|
11066
|
+
updateRangePreview(hoveredDate) {
|
|
11067
|
+
if (this.noRange || !this.dateFrom || this.dateTo) {
|
|
11068
|
+
return;
|
|
11069
|
+
}
|
|
11070
|
+
|
|
11071
|
+
const parsedDateFrom = parseInt(this.dateFrom, 10);
|
|
11072
|
+
const allCells = this.getAllFocusableCells();
|
|
11073
|
+
|
|
11074
|
+
allCells.forEach((cell) => {
|
|
11075
|
+
cell.updateRangePreviewClasses(hoveredDate, parsedDateFrom);
|
|
11076
|
+
});
|
|
11077
|
+
}
|
|
11078
|
+
|
|
11079
|
+
/**
|
|
11080
|
+
* Clears range preview classes from all cells.
|
|
11081
|
+
* @private
|
|
11082
|
+
* @returns {void}
|
|
11083
|
+
*/
|
|
11084
|
+
clearRangePreview() {
|
|
11085
|
+
if (this.dateFrom && this.dateTo) {
|
|
11086
|
+
return;
|
|
11087
|
+
}
|
|
11088
|
+
|
|
11089
|
+
const allCells = this.getAllFocusableCells();
|
|
11090
|
+
allCells.forEach((cell) => {
|
|
11091
|
+
cell.clearRangePreviewClasses();
|
|
11092
|
+
});
|
|
11093
|
+
}
|
|
11094
|
+
|
|
11095
|
+
/**
|
|
11096
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
11097
|
+
* as a reactive property. Instead, handles the range preview imperatively.
|
|
11098
|
+
* @private
|
|
11099
|
+
* @param {CustomEvent} event - The hovered-date-changed event from a month.
|
|
11100
|
+
* @returns {void}
|
|
11101
|
+
*/
|
|
11102
|
+
hoveredDateChanged(event) {
|
|
11103
|
+
const hoveredDate = event.detail.value;
|
|
11104
|
+
this.updateRangePreview(hoveredDate);
|
|
10425
11105
|
}
|
|
10426
11106
|
|
|
10427
11107
|
/**
|
|
@@ -10430,7 +11110,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10430
11110
|
* @returns {void}
|
|
10431
11111
|
*/
|
|
10432
11112
|
scrollToActiveCell() {
|
|
10433
|
-
if (this.activeCellDate
|
|
11113
|
+
if (this.activeCellDate === null || this.activeCellDate === undefined) {
|
|
11114
|
+
return;
|
|
11115
|
+
}
|
|
10434
11116
|
|
|
10435
11117
|
const date = new Date(this.activeCellDate * 1000);
|
|
10436
11118
|
const month = date.getMonth() + 1;
|
|
@@ -10440,25 +11122,138 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10440
11122
|
|
|
10441
11123
|
if (monthElem) {
|
|
10442
11124
|
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
10443
|
-
monthElem.scrollIntoView({ block: 'nearest',
|
|
11125
|
+
monthElem.scrollIntoView({ block: 'nearest',
|
|
11126
|
+
behavior: prefersReducedMotion ? 'instant' : 'smooth' });
|
|
11127
|
+
}
|
|
11128
|
+
}
|
|
11129
|
+
|
|
11130
|
+
/**
|
|
11131
|
+
* Returns (and lazily creates) an aria-live region inside the dropdown's
|
|
11132
|
+
* <dialog> element. This placement is critical for two reasons:
|
|
11133
|
+
*
|
|
11134
|
+
* 1. Inside the dialog's accessible scope — dialog.showModal() makes
|
|
11135
|
+
* everything outside the top-layer dialog inert, and desktop modal
|
|
11136
|
+
* mode uses _setPageInert() on document.body siblings. A live region
|
|
11137
|
+
* on document.body would be invisible to screen readers in both cases.
|
|
11138
|
+
*
|
|
11139
|
+
* 2. Not nested in shadow DOM — Chrome inconsistently observes aria-live
|
|
11140
|
+
* mutations inside shadow DOM across machines and versions. The dialog
|
|
11141
|
+
* element is only one shadow root deep (the dropdown bib's shadow DOM),
|
|
11142
|
+
* which Chrome handles reliably. The calendar's own shadow DOM (nested
|
|
11143
|
+
* inside the bib via slotting) is two+ levels deep and unreliable.
|
|
11144
|
+
*
|
|
11145
|
+
* @private
|
|
11146
|
+
* @returns {HTMLElement} The live region element.
|
|
11147
|
+
*/
|
|
11148
|
+
getOrCreateLiveRegion() {
|
|
11149
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
11150
|
+
return this._liveRegion;
|
|
11151
|
+
}
|
|
11152
|
+
|
|
11153
|
+
// Access the dialog element inside the dropdown bib's shadow DOM.
|
|
11154
|
+
const dialog = this.dropdown?.bibContent?.shadowRoot?.querySelector('dialog');
|
|
11155
|
+
if (!dialog) {
|
|
11156
|
+
return null;
|
|
11157
|
+
}
|
|
11158
|
+
|
|
11159
|
+
// Check if we already created one for this calendar instance.
|
|
11160
|
+
const regionId = `auro-calendar-live-${this._calendarInstanceId}`;
|
|
11161
|
+
const existing = dialog.querySelector(`#${regionId}`);
|
|
11162
|
+
if (existing) {
|
|
11163
|
+
this._liveRegion = existing;
|
|
11164
|
+
return existing;
|
|
11165
|
+
}
|
|
11166
|
+
|
|
11167
|
+
const el = document.createElement('div');
|
|
11168
|
+
el.id = regionId;
|
|
11169
|
+
el.setAttribute('aria-live', 'assertive');
|
|
11170
|
+
el.setAttribute('aria-atomic', 'true');
|
|
11171
|
+
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;';
|
|
11172
|
+
dialog.appendChild(el);
|
|
11173
|
+
|
|
11174
|
+
this._liveRegion = el;
|
|
11175
|
+
return el;
|
|
11176
|
+
}
|
|
11177
|
+
|
|
11178
|
+
/**
|
|
11179
|
+
* Removes the live region when this calendar is disconnected.
|
|
11180
|
+
* @private
|
|
11181
|
+
* @returns {void}
|
|
11182
|
+
*/
|
|
11183
|
+
disconnectedCallback() {
|
|
11184
|
+
super.disconnectedCallback();
|
|
11185
|
+
|
|
11186
|
+
// Cancel any pending announcements so they don't fire after teardown.
|
|
11187
|
+
if (this._announceRafId) {
|
|
11188
|
+
cancelAnimationFrame(this._announceRafId);
|
|
11189
|
+
this._announceRafId = null;
|
|
11190
|
+
}
|
|
11191
|
+
if (this._focusAnnounceTimer) {
|
|
11192
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
11193
|
+
this._focusAnnounceTimer = null;
|
|
11194
|
+
}
|
|
11195
|
+
|
|
11196
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
11197
|
+
this._liveRegion.remove();
|
|
10444
11198
|
}
|
|
11199
|
+
this._liveRegion = null;
|
|
10445
11200
|
}
|
|
10446
11201
|
|
|
10447
11202
|
/**
|
|
10448
|
-
* Announces a date selection via the live region.
|
|
11203
|
+
* Announces a date selection or focus change via the live region.
|
|
11204
|
+
* Uses requestAnimationFrame to ensure the clear and set happen in
|
|
11205
|
+
* separate rendering frames — Chrome may coalesce synchronous or
|
|
11206
|
+
* microtask-deferred mutations into a single accessibility tree update.
|
|
10449
11207
|
* @private
|
|
10450
11208
|
* @param {String} dateStr - The localized date string to announce.
|
|
10451
11209
|
* @returns {void}
|
|
10452
11210
|
*/
|
|
10453
11211
|
announceSelection(dateStr) {
|
|
10454
|
-
|
|
10455
|
-
|
|
10456
|
-
|
|
10457
|
-
|
|
10458
|
-
|
|
11212
|
+
// Cancel any previously queued rAF announcement so a rapid
|
|
11213
|
+
// sequence of calls (e.g. bib open → month nav) only announces
|
|
11214
|
+
// the last one.
|
|
11215
|
+
if (this._announceRafId) {
|
|
11216
|
+
cancelAnimationFrame(this._announceRafId);
|
|
11217
|
+
}
|
|
11218
|
+
const liveRegion = this.getOrCreateLiveRegion();
|
|
11219
|
+
if (!liveRegion) {
|
|
11220
|
+
return;
|
|
11221
|
+
}
|
|
11222
|
+
|
|
11223
|
+
// Double-rAF: clear in frame N, set in frame N+1. Chrome batches
|
|
11224
|
+
// accessibility tree mutations within a single animation frame, so
|
|
11225
|
+
// a same-frame clear+set can be coalesced into a no-op if the new
|
|
11226
|
+
// value matches a recently announced string. Splitting across two
|
|
11227
|
+
// frames guarantees Chrome sees two distinct tree states and fires
|
|
11228
|
+
// a new accessibility event for the content change.
|
|
11229
|
+
liveRegion.textContent = '';
|
|
11230
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
11231
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
10459
11232
|
liveRegion.textContent = dateStr;
|
|
11233
|
+
this._announceRafId = null;
|
|
10460
11234
|
});
|
|
11235
|
+
});
|
|
11236
|
+
}
|
|
11237
|
+
|
|
11238
|
+
/**
|
|
11239
|
+
* Debounced version of announceSelection for focus navigation.
|
|
11240
|
+
* Uses the assertive live region with a 150ms debounce so only the
|
|
11241
|
+
* final cell after rapid arrow-key traversal is announced. We
|
|
11242
|
+
* originally tried aria-live="polite" here, but VoiceOver treats
|
|
11243
|
+
* polite as "wait until idle" — which never happens during active
|
|
11244
|
+
* keyboard navigation — so the announcements were silently dropped.
|
|
11245
|
+
* @private
|
|
11246
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
11247
|
+
* @returns {void}
|
|
11248
|
+
*/
|
|
11249
|
+
announceFocusDebounced(dateStr) {
|
|
11250
|
+
if (this._focusAnnounceTimer) {
|
|
11251
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
10461
11252
|
}
|
|
11253
|
+
this._focusAnnounceTimer = setTimeout(() => {
|
|
11254
|
+
this.announceSelection(dateStr);
|
|
11255
|
+
this._focusAnnounceTimer = null;
|
|
11256
|
+
}, 150);
|
|
10462
11257
|
}
|
|
10463
11258
|
|
|
10464
11259
|
/**
|
|
@@ -10471,12 +11266,16 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10471
11266
|
const date = new Date(parseInt(timestamp, 10) * 1000);
|
|
10472
11267
|
const localeCode = this.locale?.code || undefined;
|
|
10473
11268
|
const formatter = new Intl.DateTimeFormat(localeCode, {
|
|
10474
|
-
weekday: 'long',
|
|
11269
|
+
weekday: 'long',
|
|
11270
|
+
year: 'numeric',
|
|
11271
|
+
month: 'long',
|
|
11272
|
+
day: 'numeric'
|
|
10475
11273
|
});
|
|
10476
11274
|
return formatter.format(date);
|
|
10477
11275
|
}
|
|
10478
11276
|
|
|
10479
11277
|
firstUpdated() {
|
|
11278
|
+
|
|
10480
11279
|
this.addEventListener('date-from-changed', () => {
|
|
10481
11280
|
this.dispatchEvent(new CustomEvent('auroCalendar-dateSelected', {
|
|
10482
11281
|
bubbles: true,
|
|
@@ -10505,6 +11304,11 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10505
11304
|
this.addEventListener('calendar-cell-activate', (event) => {
|
|
10506
11305
|
this.handleCellActivate(event);
|
|
10507
11306
|
});
|
|
11307
|
+
|
|
11308
|
+
// Listen for cell focus events (SR announcements + range preview)
|
|
11309
|
+
this.addEventListener('calendar-cell-focused', (event) => {
|
|
11310
|
+
this.handleCellFocused(event);
|
|
11311
|
+
});
|
|
10508
11312
|
}
|
|
10509
11313
|
|
|
10510
11314
|
injectSlot(slotName, nodes) {
|
|
@@ -10531,7 +11335,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10531
11335
|
if (changedProperties.has('visible')) {
|
|
10532
11336
|
if (this.visible) {
|
|
10533
11337
|
// Compute the active date eagerly from data — no DOM needed.
|
|
10534
|
-
if (this.activeCellDate == null) {
|
|
11338
|
+
if (this.activeCellDate == null) { // eslint-disable-line no-eq-null, eqeqeq
|
|
10535
11339
|
this.activeCellDate = this.computeActiveDate();
|
|
10536
11340
|
}
|
|
10537
11341
|
|
|
@@ -10599,7 +11403,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10599
11403
|
</button>
|
|
10600
11404
|
` : undefined}
|
|
10601
11405
|
</div>
|
|
10602
|
-
<div class="calendars">
|
|
11406
|
+
<div id="calendarGrid" class="calendars" role="group" tabindex="0" @keydown="${this.handleGridKeyDown}" @focusin="${this.handleGridFocusIn}" @focusout="${this.handleGridFocusOut}" @calendar-month-mouseleave="${this.clearRangePreview}">
|
|
10603
11407
|
${this.renderAllCalendars()}
|
|
10604
11408
|
</div>
|
|
10605
11409
|
</div>
|
|
@@ -14484,7 +15288,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
|
|
|
14484
15288
|
}
|
|
14485
15289
|
};
|
|
14486
15290
|
|
|
14487
|
-
var formkitVersion$1 = '
|
|
15291
|
+
var formkitVersion$1 = '202606022350';
|
|
14488
15292
|
|
|
14489
15293
|
let AuroElement$2 = class AuroElement extends LitElement {
|
|
14490
15294
|
static get properties() {
|
|
@@ -15477,16 +16281,20 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
15477
16281
|
|
|
15478
16282
|
// Walk up the ancestor chain, inerting siblings at each level
|
|
15479
16283
|
// to ensure the entire page outside the host subtree is inert.
|
|
16284
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
16285
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
15480
16286
|
let current = host;
|
|
15481
16287
|
while (current.parentElement) {
|
|
15482
16288
|
const parent = current.parentElement;
|
|
15483
16289
|
for (const sibling of parent.children) {
|
|
15484
16290
|
if (sibling !== current) {
|
|
15485
|
-
|
|
15486
|
-
|
|
15487
|
-
|
|
15488
|
-
}
|
|
16291
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
16292
|
+
if (count === 0) {
|
|
16293
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
16294
|
+
}
|
|
16295
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
15489
16296
|
sibling.inert = true;
|
|
16297
|
+
this._inertSiblings.push(sibling);
|
|
15490
16298
|
}
|
|
15491
16299
|
}
|
|
15492
16300
|
current = parent;
|
|
@@ -15495,14 +16303,23 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
15495
16303
|
|
|
15496
16304
|
/**
|
|
15497
16305
|
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
15498
|
-
*
|
|
15499
|
-
*
|
|
16306
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
16307
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
16308
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
15500
16309
|
* @private
|
|
15501
16310
|
*/
|
|
15502
16311
|
_clearPageInert() {
|
|
15503
16312
|
if (this._inertSiblings) {
|
|
15504
|
-
for (const
|
|
15505
|
-
|
|
16313
|
+
for (const sibling of this._inertSiblings) {
|
|
16314
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
16315
|
+
if (count <= 0) {
|
|
16316
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
16317
|
+
delete sibling.dataset.auroInertCount;
|
|
16318
|
+
delete sibling.dataset.auroInertWas;
|
|
16319
|
+
sibling.inert = wasInert;
|
|
16320
|
+
} else {
|
|
16321
|
+
sibling.dataset.auroInertCount = String(count);
|
|
16322
|
+
}
|
|
15506
16323
|
}
|
|
15507
16324
|
this._inertSiblings = undefined;
|
|
15508
16325
|
}
|
|
@@ -19820,109 +20637,236 @@ class AuroInputUtilities {
|
|
|
19820
20637
|
}
|
|
19821
20638
|
}
|
|
19822
20639
|
|
|
19823
|
-
|
|
20640
|
+
/**
|
|
20641
|
+
* @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.
|
|
20642
|
+
* @param {string} dateStr - Date string to parse.
|
|
20643
|
+
* @param {string} format - Date format to parse.
|
|
20644
|
+
* @returns {{ month?: string, day?: string, year?: string }|undefined}
|
|
20645
|
+
*/
|
|
20646
|
+
function getDateParts(dateStr, format) {
|
|
20647
|
+
if (!dateStr) {
|
|
20648
|
+
return undefined;
|
|
20649
|
+
}
|
|
20650
|
+
|
|
20651
|
+
const formatSeparatorMatch = format.match(/[/.-]/);
|
|
20652
|
+
let valueParts;
|
|
20653
|
+
let formatParts;
|
|
19824
20654
|
|
|
19825
|
-
|
|
20655
|
+
if (formatSeparatorMatch) {
|
|
20656
|
+
const separator = formatSeparatorMatch[0];
|
|
20657
|
+
valueParts = dateStr.split(separator);
|
|
20658
|
+
formatParts = format.split(separator);
|
|
20659
|
+
} else {
|
|
20660
|
+
if (dateStr.match(/[/.-]/)) {
|
|
20661
|
+
throw new Error(
|
|
20662
|
+
"AuroDatepickerUtilities | parseDate: Date string has no separators",
|
|
20663
|
+
);
|
|
20664
|
+
}
|
|
19826
20665
|
|
|
19827
|
-
|
|
19828
|
-
|
|
19829
|
-
|
|
19830
|
-
|
|
19831
|
-
|
|
19832
|
-
*/
|
|
19833
|
-
this.parseDate = (dateStr, format = 'mm/dd/yyyy') => {
|
|
20666
|
+
if (dateStr.length !== format.length) {
|
|
20667
|
+
throw new Error(
|
|
20668
|
+
"AuroDatepickerUtilities | parseDate: Date string and format length do not match",
|
|
20669
|
+
);
|
|
20670
|
+
}
|
|
19834
20671
|
|
|
19835
|
-
|
|
19836
|
-
|
|
19837
|
-
|
|
19838
|
-
}
|
|
20672
|
+
valueParts = [dateStr];
|
|
20673
|
+
formatParts = [format];
|
|
20674
|
+
}
|
|
19839
20675
|
|
|
19840
|
-
|
|
19841
|
-
|
|
20676
|
+
if (valueParts.length !== formatParts.length) {
|
|
20677
|
+
throw new Error(
|
|
20678
|
+
`AuroDatepickerUtilities | parseDate: Date string and format do not match : ${dateStr} vs ${format}`,
|
|
20679
|
+
);
|
|
20680
|
+
}
|
|
19842
20681
|
|
|
19843
|
-
|
|
19844
|
-
|
|
19845
|
-
const formatParts = format.split(separator);
|
|
20682
|
+
const result = formatParts.reduce((acc, part, index) => {
|
|
20683
|
+
const value = valueParts[index];
|
|
19846
20684
|
|
|
19847
|
-
|
|
19848
|
-
|
|
19849
|
-
|
|
19850
|
-
|
|
20685
|
+
if (/m/iu.test(part) && part.length === value.length) {
|
|
20686
|
+
acc.month = value;
|
|
20687
|
+
} else if (/d/iu.test(part) && part.length === value.length) {
|
|
20688
|
+
acc.day = value;
|
|
20689
|
+
} else if (/y/iu.test(part) && part.length === value.length) {
|
|
20690
|
+
acc.year = value;
|
|
20691
|
+
}
|
|
19851
20692
|
|
|
19852
|
-
|
|
19853
|
-
|
|
19854
|
-
const value = valueParts[index];
|
|
20693
|
+
return acc;
|
|
20694
|
+
}, {});
|
|
19855
20695
|
|
|
19856
|
-
|
|
19857
|
-
|
|
19858
|
-
|
|
19859
|
-
|
|
19860
|
-
|
|
19861
|
-
acc.year = value;
|
|
19862
|
-
}
|
|
20696
|
+
if (!result.month && !result.day && !result.year) {
|
|
20697
|
+
throw new Error(
|
|
20698
|
+
"AuroDatepickerUtilities | parseDate: Unable to parse date string",
|
|
20699
|
+
);
|
|
20700
|
+
}
|
|
19863
20701
|
|
|
19864
|
-
|
|
19865
|
-
|
|
20702
|
+
return result;
|
|
20703
|
+
}
|
|
19866
20704
|
|
|
19867
|
-
|
|
19868
|
-
|
|
19869
|
-
|
|
19870
|
-
|
|
20705
|
+
function isCalendarDate(year, month, day) {
|
|
20706
|
+
let yearNumber = Number(year);
|
|
20707
|
+
const monthNumber = Number(month);
|
|
20708
|
+
const dayNumber = Number(day);
|
|
19871
20709
|
|
|
19872
|
-
|
|
19873
|
-
|
|
19874
|
-
|
|
20710
|
+
if (
|
|
20711
|
+
!Number.isInteger(yearNumber) ||
|
|
20712
|
+
!Number.isInteger(monthNumber) ||
|
|
20713
|
+
!Number.isInteger(dayNumber)
|
|
20714
|
+
) {
|
|
20715
|
+
return false;
|
|
20716
|
+
}
|
|
19875
20717
|
|
|
19876
|
-
|
|
19877
|
-
|
|
19878
|
-
|
|
19879
|
-
|
|
19880
|
-
|
|
19881
|
-
|
|
19882
|
-
this.getDateAsString = (date, locale = undefined) => date.toLocaleDateString(locale, {
|
|
19883
|
-
year: "numeric",
|
|
19884
|
-
month: "2-digit",
|
|
19885
|
-
day: "2-digit",
|
|
19886
|
-
});
|
|
20718
|
+
// 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.
|
|
20719
|
+
if (yearNumber < 100 && yearNumber >= 50) {
|
|
20720
|
+
yearNumber += 1900;
|
|
20721
|
+
} else if (yearNumber < 50) {
|
|
20722
|
+
yearNumber += 2000;
|
|
20723
|
+
}
|
|
19887
20724
|
|
|
19888
|
-
|
|
19889
|
-
|
|
19890
|
-
|
|
19891
|
-
|
|
19892
|
-
|
|
19893
|
-
|
|
19894
|
-
|
|
20725
|
+
const stringified = `${String(yearNumber).padStart(4, "0")}-${String(monthNumber).padStart(2, "0")}-${String(dayNumber).padStart(2, "0")}`;
|
|
20726
|
+
const date = new Date(stringified.replace(/[.-]/g, "/"));
|
|
20727
|
+
|
|
20728
|
+
return (
|
|
20729
|
+
!Number.isNaN(date.getTime()) && toISOFormatString(date) === stringified
|
|
20730
|
+
);
|
|
20731
|
+
}
|
|
20732
|
+
|
|
20733
|
+
/**
|
|
20734
|
+
* @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).
|
|
20735
|
+
*
|
|
20736
|
+
* Partial formats are supported: components absent from `format` default to `year → "0"`,
|
|
20737
|
+
* `month → "01"`, `day → "01"` for calendar validation only. The returned object contains
|
|
20738
|
+
* only the fields actually present in the format string — missing fields are never injected.
|
|
20739
|
+
* @param {string} dateStr - Date string to parse.
|
|
20740
|
+
* @param {string} format - Date format to parse.
|
|
20741
|
+
* @returns {{ month?: string, day?: string, year?: string }|undefined}
|
|
20742
|
+
* @throws {Error} Throws when the parsed result does not represent a valid calendar date.
|
|
20743
|
+
*/
|
|
20744
|
+
function parseDate(dateStr, format = "mm/dd/yyyy") {
|
|
20745
|
+
if (!dateStr || !format) {
|
|
20746
|
+
return undefined;
|
|
20747
|
+
}
|
|
20748
|
+
const result = getDateParts(dateStr.trim(), format);
|
|
20749
|
+
|
|
20750
|
+
if (!result) {
|
|
20751
|
+
return undefined;
|
|
20752
|
+
}
|
|
20753
|
+
|
|
20754
|
+
const lowerFormat = format.toLowerCase();
|
|
20755
|
+
const year = lowerFormat.includes("yy") ? result.year : "0";
|
|
20756
|
+
const month = lowerFormat.includes("mm") ? result.month : "01";
|
|
20757
|
+
const day = lowerFormat.includes("dd") ? result.day : "01";
|
|
20758
|
+
|
|
20759
|
+
if (isCalendarDate(year, month, day)) {
|
|
20760
|
+
return result;
|
|
20761
|
+
}
|
|
20762
|
+
|
|
20763
|
+
throw new Error(
|
|
20764
|
+
`AuroDatepickerUtilities | parseDate: Date string is not a valid date ${JSON.stringify(result)} with format ${format}`,
|
|
20765
|
+
);
|
|
20766
|
+
}
|
|
20767
|
+
|
|
20768
|
+
/**
|
|
20769
|
+
* Convert a date object to string format.
|
|
20770
|
+
* @param {Object} date - Date to convert to string.
|
|
20771
|
+
* @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
|
|
20772
|
+
* @returns {String} Returns the date as a string.
|
|
20773
|
+
*/
|
|
20774
|
+
function getDateAsString(date, locale = undefined) {
|
|
20775
|
+
return date.toLocaleDateString(locale, {
|
|
20776
|
+
year: "numeric",
|
|
20777
|
+
month: "2-digit",
|
|
20778
|
+
day: "2-digit",
|
|
20779
|
+
});
|
|
20780
|
+
}
|
|
20781
|
+
|
|
20782
|
+
/**
|
|
20783
|
+
* Converts a date string to a North American date format.
|
|
20784
|
+
* @param {String} dateStr - Date to validate.
|
|
20785
|
+
* @param {String} format - Date format to validate against.
|
|
20786
|
+
* @returns {String}
|
|
20787
|
+
*/
|
|
20788
|
+
function toNorthAmericanFormat$1(dateStr, format) {
|
|
20789
|
+
if (format === "mm/dd/yyyy") {
|
|
20790
|
+
return dateStr;
|
|
20791
|
+
}
|
|
19895
20792
|
|
|
19896
|
-
|
|
19897
|
-
return dateStr;
|
|
19898
|
-
}
|
|
20793
|
+
const parsedDate = parseDate(dateStr, format);
|
|
19899
20794
|
|
|
19900
|
-
|
|
20795
|
+
if (!parsedDate) {
|
|
20796
|
+
throw new Error(
|
|
20797
|
+
"AuroDatepickerUtilities | toNorthAmericanFormat: Unable to parse date string",
|
|
20798
|
+
);
|
|
20799
|
+
}
|
|
19901
20800
|
|
|
19902
|
-
|
|
19903
|
-
throw new Error('AuroDatepickerUtilities | toNorthAmericanFormat: Unable to parse date string');
|
|
19904
|
-
}
|
|
20801
|
+
const { month, day, year } = parsedDate;
|
|
19905
20802
|
|
|
19906
|
-
|
|
20803
|
+
return [month, day, year].filter(Boolean).join("/");
|
|
20804
|
+
}
|
|
19907
20805
|
|
|
19908
|
-
|
|
19909
|
-
|
|
19910
|
-
|
|
19911
|
-
|
|
20806
|
+
/**
|
|
20807
|
+
* Validates that a date string matches the provided format and represents a real calendar date.
|
|
20808
|
+
*
|
|
20809
|
+
* @param {string} dateStr - Date string to validate.
|
|
20810
|
+
* @param {string} [format="yyyy-mm-dd"] - Format of the date string.
|
|
20811
|
+
* @returns {boolean} True when the date string is valid for the provided format, otherwise false.
|
|
20812
|
+
*/
|
|
20813
|
+
function isValidDate(dateStr, format = "yyyy-mm-dd") {
|
|
20814
|
+
try {
|
|
20815
|
+
if (typeof dateStr !== "string" || !dateStr || format?.length < 8) {
|
|
20816
|
+
return false;
|
|
20817
|
+
}
|
|
19912
20818
|
|
|
19913
|
-
|
|
19914
|
-
|
|
19915
|
-
|
|
20819
|
+
if (parseDate(dateStr, format)) {
|
|
20820
|
+
return true;
|
|
20821
|
+
}
|
|
20822
|
+
} catch (error) {
|
|
20823
|
+
return false;
|
|
20824
|
+
}
|
|
20825
|
+
return false;
|
|
20826
|
+
}
|
|
19916
20827
|
|
|
19917
|
-
|
|
19918
|
-
|
|
19919
|
-
|
|
20828
|
+
/**
|
|
20829
|
+
* 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.
|
|
20830
|
+
*
|
|
20831
|
+
* @param {Date} date - Date instance to convert to an ISO-like string.
|
|
20832
|
+
* @returns {string} A string in the format "yyyy-mm-dd" representing the provided date.
|
|
20833
|
+
* @throws {Error} Throws an error when the input is not a valid Date instance.
|
|
20834
|
+
*/
|
|
20835
|
+
function toISOFormatString(date) {
|
|
20836
|
+
if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
|
|
20837
|
+
throw new Error(
|
|
20838
|
+
"AuroDatepickerUtilities | toISOFormatString: Input must be a valid Date instance",
|
|
20839
|
+
);
|
|
20840
|
+
}
|
|
20841
|
+
return `${String(date.getFullYear()).padStart(4, "0")}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
|
|
20842
|
+
}
|
|
19920
20843
|
|
|
19921
|
-
|
|
19922
|
-
|
|
20844
|
+
/**
|
|
20845
|
+
* 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.
|
|
20846
|
+
*
|
|
20847
|
+
* @param {String} dateStr - Date string to convert into a Date object.
|
|
20848
|
+
* @param {String} format - Date format used to parse the string when it is not in ISO format.
|
|
20849
|
+
* @returns {Date|null} Returns a Date instance for valid input or null for non-string input.
|
|
20850
|
+
* @throws {Error} Throws when parsing fails for non-ISO string input.
|
|
20851
|
+
*/
|
|
20852
|
+
function stringToDateInstance(dateStr, format = "yyyy-mm-dd") {
|
|
20853
|
+
if (typeof dateStr !== "string") {
|
|
20854
|
+
return null;
|
|
19923
20855
|
}
|
|
20856
|
+
|
|
20857
|
+
const { month, day, year } = parseDate(dateStr, format);
|
|
20858
|
+
return new Date(`${year}/${month}/${day}`);
|
|
19924
20859
|
}
|
|
19925
|
-
|
|
20860
|
+
|
|
20861
|
+
const dateFormatter = {
|
|
20862
|
+
parseDate,
|
|
20863
|
+
getDateParts,
|
|
20864
|
+
getDateAsString,
|
|
20865
|
+
toNorthAmericanFormat: toNorthAmericanFormat$1,
|
|
20866
|
+
isValidDate,
|
|
20867
|
+
toISOFormatString,
|
|
20868
|
+
stringToDateInstance,
|
|
20869
|
+
};
|
|
19926
20870
|
|
|
19927
20871
|
// filepath: dateConstraints.mjs
|
|
19928
20872
|
const DATE_UTIL_CONSTRAINTS = {
|
|
@@ -19994,12 +20938,11 @@ class AuroDateUtilitiesBase {
|
|
|
19994
20938
|
/* eslint-disable no-magic-numbers */
|
|
19995
20939
|
|
|
19996
20940
|
class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
19997
|
-
|
|
19998
20941
|
/**
|
|
19999
20942
|
* Returns the current century.
|
|
20000
20943
|
* @returns {String} The current century.
|
|
20001
20944
|
*/
|
|
20002
|
-
getCentury
|
|
20945
|
+
getCentury() {
|
|
20003
20946
|
return String(new Date().getFullYear()).slice(0, 2);
|
|
20004
20947
|
}
|
|
20005
20948
|
|
|
@@ -20008,14 +20951,12 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20008
20951
|
* @param {String} year - The year to convert to four digits.
|
|
20009
20952
|
* @returns {String} The four digit year.
|
|
20010
20953
|
*/
|
|
20011
|
-
getFourDigitYear
|
|
20012
|
-
|
|
20954
|
+
getFourDigitYear(year) {
|
|
20013
20955
|
const strYear = String(year).trim();
|
|
20014
20956
|
return strYear.length <= 2 ? this.getCentury() + strYear : strYear;
|
|
20015
20957
|
}
|
|
20016
20958
|
|
|
20017
20959
|
constructor() {
|
|
20018
|
-
|
|
20019
20960
|
super();
|
|
20020
20961
|
|
|
20021
20962
|
/**
|
|
@@ -20024,7 +20965,8 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20024
20965
|
* @param {Object} date2 - Second date to compare.
|
|
20025
20966
|
* @returns {Boolean} Returns true if the dates match.
|
|
20026
20967
|
*/
|
|
20027
|
-
this.datesMatch = (date1, date2) =>
|
|
20968
|
+
this.datesMatch = (date1, date2) =>
|
|
20969
|
+
new Date(date1).getTime() === new Date(date2).getTime();
|
|
20028
20970
|
|
|
20029
20971
|
/**
|
|
20030
20972
|
* Returns true if value passed in is a valid date.
|
|
@@ -20033,53 +20975,41 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20033
20975
|
* @returns {Boolean}
|
|
20034
20976
|
*/
|
|
20035
20977
|
this.validDateStr = (date, format) => {
|
|
20036
|
-
|
|
20037
20978
|
// The length we expect the date string to be
|
|
20038
|
-
const dateStrLength = format
|
|
20979
|
+
const dateStrLength = format?.length || 0;
|
|
20039
20980
|
|
|
20040
20981
|
// Guard Clause: Date and format are defined
|
|
20041
20982
|
if (typeof date === "undefined" || typeof format === "undefined") {
|
|
20042
|
-
throw new Error(
|
|
20983
|
+
throw new Error(
|
|
20984
|
+
"AuroDatepickerUtilities | validateDateStr: Date and format are required",
|
|
20985
|
+
);
|
|
20043
20986
|
}
|
|
20044
20987
|
|
|
20045
20988
|
// Guard Clause: Date should be of type string
|
|
20046
20989
|
if (typeof date !== "string") {
|
|
20047
|
-
throw new Error(
|
|
20990
|
+
throw new Error(
|
|
20991
|
+
"AuroDatepickerUtilities | validateDateStr: Date must be a string",
|
|
20992
|
+
);
|
|
20048
20993
|
}
|
|
20049
20994
|
|
|
20050
20995
|
// Guard Clause: Format should be of type string
|
|
20051
20996
|
if (typeof format !== "string") {
|
|
20052
|
-
throw new Error(
|
|
20997
|
+
throw new Error(
|
|
20998
|
+
"AuroDatepickerUtilities | validateDateStr: Format must be a string",
|
|
20999
|
+
);
|
|
20053
21000
|
}
|
|
20054
21001
|
|
|
20055
21002
|
// Guard Clause: Length is what we expect it to be
|
|
20056
21003
|
if (date.length !== dateStrLength) {
|
|
20057
21004
|
return false;
|
|
20058
21005
|
}
|
|
20059
|
-
// Get a formatted date string and parse it
|
|
20060
|
-
const dateParts = dateFormatter.parseDate(date, format);
|
|
20061
|
-
|
|
20062
|
-
// Guard Clause: Date parse succeeded
|
|
20063
|
-
if (!dateParts) {
|
|
20064
|
-
return false;
|
|
20065
|
-
}
|
|
20066
21006
|
|
|
20067
|
-
//
|
|
20068
|
-
|
|
20069
|
-
|
|
20070
|
-
|
|
20071
|
-
const dateObj = new Date(this.getFourDigitYear(dateParts.year), dateParts.month - 1, dateParts.day || 1);
|
|
20072
|
-
|
|
20073
|
-
// Get the date string of the date object we created from the string date
|
|
20074
|
-
const actualDateStr = dateFormatter.getDateAsString(dateObj, "en-US");
|
|
20075
|
-
|
|
20076
|
-
// Guard Clause: Generated date matches date string input
|
|
20077
|
-
if (expectedDateStr !== actualDateStr) {
|
|
21007
|
+
// Get a formatted date string and parse and validate it
|
|
21008
|
+
try {
|
|
21009
|
+
return Boolean(dateFormatter.parseDate(date, format));
|
|
21010
|
+
} catch (error) {
|
|
20078
21011
|
return false;
|
|
20079
21012
|
}
|
|
20080
|
-
|
|
20081
|
-
// If we passed all other checks, we can assume the date is valid
|
|
20082
|
-
return true;
|
|
20083
21013
|
};
|
|
20084
21014
|
|
|
20085
21015
|
/**
|
|
@@ -20089,10 +21019,11 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20089
21019
|
* @returns {boolean}
|
|
20090
21020
|
*/
|
|
20091
21021
|
this.dateAndFormatMatch = (value, format) => {
|
|
20092
|
-
|
|
20093
21022
|
// Ensure we have both values we need to do the comparison
|
|
20094
21023
|
if (!value || !format) {
|
|
20095
|
-
throw new Error(
|
|
21024
|
+
throw new Error(
|
|
21025
|
+
"AuroFormValidation | dateFormatMatch: value and format are required",
|
|
21026
|
+
);
|
|
20096
21027
|
}
|
|
20097
21028
|
|
|
20098
21029
|
// If the lengths are different, they cannot match
|
|
@@ -20101,11 +21032,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20101
21032
|
}
|
|
20102
21033
|
|
|
20103
21034
|
// Get the parts of the date
|
|
20104
|
-
const dateParts = dateFormatter.
|
|
21035
|
+
const dateParts = dateFormatter.getDateParts(value, format);
|
|
20105
21036
|
|
|
20106
21037
|
// Validator for day
|
|
20107
21038
|
const dayValueIsValid = (day) => {
|
|
20108
|
-
|
|
20109
21039
|
// Guard clause: if there is no day in the dateParts, we can ignore this check.
|
|
20110
21040
|
if (!dateParts.day) {
|
|
20111
21041
|
return true;
|
|
@@ -20121,7 +21051,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20121
21051
|
|
|
20122
21052
|
// Guard clause: ensure day is a valid integer
|
|
20123
21053
|
if (Number.isNaN(numDay)) {
|
|
20124
|
-
throw new Error(
|
|
21054
|
+
throw new Error(
|
|
21055
|
+
"AuroDatepickerUtilities | dayValueIsValid: Unable to parse day value integer",
|
|
21056
|
+
);
|
|
20125
21057
|
}
|
|
20126
21058
|
|
|
20127
21059
|
// Guard clause: ensure day is within the valid range
|
|
@@ -20135,6 +21067,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20135
21067
|
|
|
20136
21068
|
// Validator for month
|
|
20137
21069
|
const monthValueIsValid = (month) => {
|
|
21070
|
+
// Guard clause: if there is no month in the dateParts, we can ignore this check.
|
|
21071
|
+
if (!dateParts.month) {
|
|
21072
|
+
return true;
|
|
21073
|
+
}
|
|
20138
21074
|
|
|
20139
21075
|
// Guard clause: ensure month exists.
|
|
20140
21076
|
if (!month) {
|
|
@@ -20146,7 +21082,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20146
21082
|
|
|
20147
21083
|
// Guard clause: ensure month is a valid integer
|
|
20148
21084
|
if (Number.isNaN(numMonth)) {
|
|
20149
|
-
throw new Error(
|
|
21085
|
+
throw new Error(
|
|
21086
|
+
"AuroDatepickerUtilities | monthValueIsValid: Unable to parse month value integer",
|
|
21087
|
+
);
|
|
20150
21088
|
}
|
|
20151
21089
|
|
|
20152
21090
|
// Guard clause: ensure month is within the valid range
|
|
@@ -20160,6 +21098,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20160
21098
|
|
|
20161
21099
|
// Validator for year
|
|
20162
21100
|
const yearIsValid = (_year) => {
|
|
21101
|
+
// Guard clause: if there is no year in the dateParts, we can ignore this check.
|
|
21102
|
+
if (!dateParts.year) {
|
|
21103
|
+
return true;
|
|
21104
|
+
}
|
|
20163
21105
|
|
|
20164
21106
|
// Guard clause: ensure year exists.
|
|
20165
21107
|
if (!_year) {
|
|
@@ -20174,7 +21116,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20174
21116
|
|
|
20175
21117
|
// Guard clause: ensure year is a valid integer
|
|
20176
21118
|
if (Number.isNaN(numYear)) {
|
|
20177
|
-
throw new Error(
|
|
21119
|
+
throw new Error(
|
|
21120
|
+
"AuroDatepickerUtilities | yearValueIsValid: Unable to parse year value integer",
|
|
21121
|
+
);
|
|
20178
21122
|
}
|
|
20179
21123
|
|
|
20180
21124
|
// Guard clause: ensure year is within the valid range
|
|
@@ -20190,7 +21134,7 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20190
21134
|
const checks = [
|
|
20191
21135
|
monthValueIsValid(dateParts.month),
|
|
20192
21136
|
dayValueIsValid(dateParts.day),
|
|
20193
|
-
yearIsValid(dateParts.year)
|
|
21137
|
+
yearIsValid(dateParts.year),
|
|
20194
21138
|
];
|
|
20195
21139
|
|
|
20196
21140
|
// If any of the checks failed, the date format does not match and the result is invalid
|
|
@@ -20224,10 +21168,7 @@ const {
|
|
|
20224
21168
|
} = dateUtilities;
|
|
20225
21169
|
|
|
20226
21170
|
const {
|
|
20227
|
-
toNorthAmericanFormat
|
|
20228
|
-
parseDate,
|
|
20229
|
-
getDateAsString
|
|
20230
|
-
} = dateFormatter;
|
|
21171
|
+
toNorthAmericanFormat} = dateFormatter;
|
|
20231
21172
|
|
|
20232
21173
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
20233
21174
|
// See LICENSE in the project root for license information.
|
|
@@ -22442,7 +23383,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
22442
23383
|
}
|
|
22443
23384
|
};
|
|
22444
23385
|
|
|
22445
|
-
var formkitVersion = '
|
|
23386
|
+
var formkitVersion = '202606022350';
|
|
22446
23387
|
|
|
22447
23388
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
22448
23389
|
// See LICENSE in the project root for license information.
|
|
@@ -23798,6 +24739,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
23798
24739
|
delegatesFocus: true,
|
|
23799
24740
|
};
|
|
23800
24741
|
}
|
|
24742
|
+
|
|
23801
24743
|
constructor() {
|
|
23802
24744
|
super();
|
|
23803
24745
|
|
|
@@ -23965,7 +24907,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
23965
24907
|
|
|
23966
24908
|
/**
|
|
23967
24909
|
* Defines whether the component will be on lighter or darker backgrounds.
|
|
23968
|
-
* @
|
|
24910
|
+
* @type {'default' | 'inverse'}
|
|
23969
24911
|
* @default 'default'
|
|
23970
24912
|
*/
|
|
23971
24913
|
appearance: {
|
|
@@ -23982,6 +24924,22 @@ class AuroDatePicker extends AuroElement {
|
|
|
23982
24924
|
reflect: true
|
|
23983
24925
|
},
|
|
23984
24926
|
|
|
24927
|
+
/**
|
|
24928
|
+
* Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
|
|
24929
|
+
*/
|
|
24930
|
+
blackoutDates: {
|
|
24931
|
+
type: Array,
|
|
24932
|
+
reflect: true
|
|
24933
|
+
},
|
|
24934
|
+
|
|
24935
|
+
/**
|
|
24936
|
+
* Label announced for blackout (disabled but in-range) date cells.
|
|
24937
|
+
*/
|
|
24938
|
+
blackoutLabel: {
|
|
24939
|
+
type: String,
|
|
24940
|
+
reflect: true
|
|
24941
|
+
},
|
|
24942
|
+
|
|
23985
24943
|
/**
|
|
23986
24944
|
* The last date that may be displayed in the calendar.
|
|
23987
24945
|
*/
|
|
@@ -24037,27 +24995,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
24037
24995
|
reflect: true
|
|
24038
24996
|
},
|
|
24039
24997
|
|
|
24040
|
-
hasFocus: {
|
|
24041
|
-
type: Boolean,
|
|
24042
|
-
reflect: false,
|
|
24043
|
-
},
|
|
24044
|
-
|
|
24045
|
-
/**
|
|
24046
|
-
* @private
|
|
24047
|
-
*/
|
|
24048
|
-
hasValue: {
|
|
24049
|
-
type: Boolean,
|
|
24050
|
-
reflect: false,
|
|
24051
|
-
},
|
|
24052
|
-
|
|
24053
|
-
/**
|
|
24054
|
-
* @private
|
|
24055
|
-
*/
|
|
24056
|
-
hasAllValues: {
|
|
24057
|
-
type: Boolean,
|
|
24058
|
-
reflect: false
|
|
24059
|
-
},
|
|
24060
|
-
|
|
24061
24998
|
/**
|
|
24062
24999
|
* Specifies the date format. The default is `mm/dd/yyyy`.
|
|
24063
25000
|
*/
|
|
@@ -24079,6 +25016,27 @@ class AuroDatePicker extends AuroElement {
|
|
|
24079
25016
|
reflect: true
|
|
24080
25017
|
},
|
|
24081
25018
|
|
|
25019
|
+
/**
|
|
25020
|
+
* @private
|
|
25021
|
+
*/
|
|
25022
|
+
hasAllValues: {
|
|
25023
|
+
type: Boolean,
|
|
25024
|
+
reflect: false
|
|
25025
|
+
},
|
|
25026
|
+
|
|
25027
|
+
hasFocus: {
|
|
25028
|
+
type: Boolean,
|
|
25029
|
+
reflect: false,
|
|
25030
|
+
},
|
|
25031
|
+
|
|
25032
|
+
/**
|
|
25033
|
+
* @private
|
|
25034
|
+
*/
|
|
25035
|
+
hasValue: {
|
|
25036
|
+
type: Boolean,
|
|
25037
|
+
reflect: false,
|
|
25038
|
+
},
|
|
25039
|
+
|
|
24082
25040
|
/** Exposes inputmode attribute for input. */
|
|
24083
25041
|
inputmode: {
|
|
24084
25042
|
type: String,
|
|
@@ -24121,6 +25079,13 @@ class AuroDatePicker extends AuroElement {
|
|
|
24121
25079
|
reflect: true
|
|
24122
25080
|
},
|
|
24123
25081
|
|
|
25082
|
+
/**
|
|
25083
|
+
* @private
|
|
25084
|
+
*/
|
|
25085
|
+
monthFirst: {
|
|
25086
|
+
type: Boolean
|
|
25087
|
+
},
|
|
25088
|
+
|
|
24124
25089
|
/**
|
|
24125
25090
|
* Names of all 12 months to render in the calendar, used for localization of date string in mobile layout.
|
|
24126
25091
|
*/
|
|
@@ -24129,25 +25094,26 @@ class AuroDatePicker extends AuroElement {
|
|
|
24129
25094
|
},
|
|
24130
25095
|
|
|
24131
25096
|
/**
|
|
24132
|
-
*
|
|
25097
|
+
* Accessible label for the next month navigation button.
|
|
24133
25098
|
*/
|
|
24134
|
-
|
|
24135
|
-
type:
|
|
25099
|
+
navLabelNextMonth: {
|
|
25100
|
+
type: String,
|
|
25101
|
+
reflect: true
|
|
24136
25102
|
},
|
|
24137
25103
|
|
|
24138
25104
|
/**
|
|
24139
|
-
*
|
|
24140
|
-
* when there isn't enough space in the specified `placement`.
|
|
25105
|
+
* Accessible label for the previous month navigation button.
|
|
24141
25106
|
*/
|
|
24142
|
-
|
|
24143
|
-
type:
|
|
25107
|
+
navLabelPrevMonth: {
|
|
25108
|
+
type: String,
|
|
24144
25109
|
reflect: true
|
|
24145
25110
|
},
|
|
24146
25111
|
|
|
24147
25112
|
/**
|
|
24148
|
-
* If declared, the
|
|
25113
|
+
* If declared, the bib will NOT flip to an alternate position
|
|
25114
|
+
* when there isn't enough space in the specified `placement`.
|
|
24149
25115
|
*/
|
|
24150
|
-
|
|
25116
|
+
noFlip: {
|
|
24151
25117
|
type: Boolean,
|
|
24152
25118
|
reflect: true
|
|
24153
25119
|
},
|
|
@@ -24214,17 +25180,9 @@ class AuroDatePicker extends AuroElement {
|
|
|
24214
25180
|
},
|
|
24215
25181
|
|
|
24216
25182
|
/**
|
|
24217
|
-
* Label announced for the range start
|
|
24218
|
-
*/
|
|
24219
|
-
rangeLabelStart: {
|
|
24220
|
-
type: String,
|
|
24221
|
-
reflect: true
|
|
24222
|
-
},
|
|
24223
|
-
|
|
24224
|
-
/**
|
|
24225
|
-
* Label announced for the range end date cell.
|
|
25183
|
+
* Label announced for cells after the range (or after start when no end is selected).
|
|
24226
25184
|
*/
|
|
24227
|
-
|
|
25185
|
+
rangeLabelAfterRange: {
|
|
24228
25186
|
type: String,
|
|
24229
25187
|
reflect: true
|
|
24230
25188
|
},
|
|
@@ -24238,49 +25196,25 @@ class AuroDatePicker extends AuroElement {
|
|
|
24238
25196
|
},
|
|
24239
25197
|
|
|
24240
25198
|
/**
|
|
24241
|
-
* Label announced for
|
|
24242
|
-
*/
|
|
24243
|
-
rangeLabelInRange: {
|
|
24244
|
-
type: String,
|
|
24245
|
-
reflect: true
|
|
24246
|
-
},
|
|
24247
|
-
|
|
24248
|
-
/**
|
|
24249
|
-
* Label announced for cells after the range (or after start when no end is selected).
|
|
24250
|
-
*/
|
|
24251
|
-
rangeLabelAfterRange: {
|
|
24252
|
-
type: String,
|
|
24253
|
-
reflect: true
|
|
24254
|
-
},
|
|
24255
|
-
|
|
24256
|
-
/**
|
|
24257
|
-
* Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
|
|
24258
|
-
*/
|
|
24259
|
-
blackoutDates: {
|
|
24260
|
-
type: Array,
|
|
24261
|
-
reflect: true
|
|
24262
|
-
},
|
|
24263
|
-
|
|
24264
|
-
/**
|
|
24265
|
-
* Label announced for blackout (disabled but in-range) date cells.
|
|
25199
|
+
* Label announced for the range end date cell.
|
|
24266
25200
|
*/
|
|
24267
|
-
|
|
25201
|
+
rangeLabelEnd: {
|
|
24268
25202
|
type: String,
|
|
24269
25203
|
reflect: true
|
|
24270
25204
|
},
|
|
24271
25205
|
|
|
24272
25206
|
/**
|
|
24273
|
-
*
|
|
25207
|
+
* Label announced for cells within the selected range.
|
|
24274
25208
|
*/
|
|
24275
|
-
|
|
25209
|
+
rangeLabelInRange: {
|
|
24276
25210
|
type: String,
|
|
24277
25211
|
reflect: true
|
|
24278
25212
|
},
|
|
24279
25213
|
|
|
24280
25214
|
/**
|
|
24281
|
-
*
|
|
25215
|
+
* Label announced for the range start date cell.
|
|
24282
25216
|
*/
|
|
24283
|
-
|
|
25217
|
+
rangeLabelStart: {
|
|
24284
25218
|
type: String,
|
|
24285
25219
|
reflect: true
|
|
24286
25220
|
},
|
|
@@ -24338,6 +25272,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
24338
25272
|
type: String
|
|
24339
25273
|
},
|
|
24340
25274
|
|
|
25275
|
+
/**
|
|
25276
|
+
* If declared, the dropdown will shift its position to avoid being cut off by the viewport.
|
|
25277
|
+
*/
|
|
25278
|
+
shift: {
|
|
25279
|
+
type: Boolean,
|
|
25280
|
+
reflect: true
|
|
25281
|
+
},
|
|
25282
|
+
|
|
24341
25283
|
/**
|
|
24342
25284
|
* Set true to make datepicker stacked style.
|
|
24343
25285
|
*/
|
|
@@ -24346,6 +25288,16 @@ class AuroDatePicker extends AuroElement {
|
|
|
24346
25288
|
reflect: true
|
|
24347
25289
|
},
|
|
24348
25290
|
|
|
25291
|
+
/**
|
|
25292
|
+
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
25293
|
+
* @private
|
|
25294
|
+
*/
|
|
25295
|
+
touched: {
|
|
25296
|
+
type: Boolean,
|
|
25297
|
+
reflect: true,
|
|
25298
|
+
attribute: false
|
|
25299
|
+
},
|
|
25300
|
+
|
|
24349
25301
|
/**
|
|
24350
25302
|
* Specifies the `validityState` this element is in.
|
|
24351
25303
|
*/
|
|
@@ -24366,16 +25318,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
24366
25318
|
*/
|
|
24367
25319
|
valueEnd: {
|
|
24368
25320
|
type: String
|
|
24369
|
-
},
|
|
24370
|
-
|
|
24371
|
-
/**
|
|
24372
|
-
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
24373
|
-
* @private
|
|
24374
|
-
*/
|
|
24375
|
-
touched: {
|
|
24376
|
-
type: Boolean,
|
|
24377
|
-
reflect: true,
|
|
24378
|
-
attribute: false
|
|
24379
25321
|
}
|
|
24380
25322
|
};
|
|
24381
25323
|
}
|
|
@@ -24484,8 +25426,9 @@ class AuroDatePicker extends AuroElement {
|
|
|
24484
25426
|
}
|
|
24485
25427
|
|
|
24486
25428
|
/**
|
|
24487
|
-
* @private
|
|
24488
25429
|
* Common display value wrapper classes.
|
|
25430
|
+
* @private
|
|
25431
|
+
* @returns {Object} Class map for Lit's classMap directive.
|
|
24489
25432
|
*/
|
|
24490
25433
|
get commonDisplayValueWrapperClasses() {
|
|
24491
25434
|
return {
|
|
@@ -24653,7 +25596,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
24653
25596
|
}
|
|
24654
25597
|
|
|
24655
25598
|
// Compute and mark the active cell
|
|
24656
|
-
if (this.calendar.activeCellDate
|
|
25599
|
+
if (this.calendar.activeCellDate === null || this.calendar.activeCellDate === undefined) {
|
|
24657
25600
|
this.calendar.activeCellDate = this.calendar.computeActiveDate();
|
|
24658
25601
|
}
|
|
24659
25602
|
if (this.calendar.activeCellDate !== undefined) {
|
|
@@ -24662,29 +25605,37 @@ class AuroDatePicker extends AuroElement {
|
|
|
24662
25605
|
|
|
24663
25606
|
// If no cell matched (e.g. centralDate month differs from the rendered
|
|
24664
25607
|
// range on mobile), fall back to the first rendered enabled cell.
|
|
24665
|
-
let activeCell = allCells.find(cell => cell.active);
|
|
25608
|
+
let activeCell = allCells.find((cell) => cell.active);
|
|
24666
25609
|
if (!activeCell && allCells.length) {
|
|
24667
|
-
const fallback = allCells
|
|
25610
|
+
const [fallback] = allCells;
|
|
24668
25611
|
if (fallback.day) {
|
|
24669
25612
|
this.calendar.activeCellDate = fallback.day.date;
|
|
24670
25613
|
this.calendar.setActiveCell(this.calendar.activeCellDate);
|
|
24671
|
-
activeCell = allCells.find(cell => cell.active);
|
|
25614
|
+
activeCell = allCells.find((cell) => cell.active);
|
|
24672
25615
|
}
|
|
24673
25616
|
}
|
|
24674
25617
|
|
|
24675
|
-
//
|
|
24676
|
-
//
|
|
25618
|
+
// Focus the calendar grid wrapper (aria-activedescendant handles
|
|
25619
|
+
// the SR announcement for the active cell).
|
|
24677
25620
|
if (activeCell) {
|
|
24678
|
-
|
|
24679
|
-
|
|
24680
|
-
|
|
24681
|
-
|
|
24682
|
-
|
|
24683
|
-
|
|
24684
|
-
|
|
24685
|
-
|
|
24686
|
-
|
|
24687
|
-
|
|
25621
|
+
this.calendar.focusActiveCell();
|
|
25622
|
+
|
|
25623
|
+
// Announce the initial active cell via the live region.
|
|
25624
|
+
// Delay the announcement so it arrives after VoiceOver finishes
|
|
25625
|
+
// speaking the focus-change announcement for the grid wrapper.
|
|
25626
|
+
// Without this delay, VoiceOver drops the live region update
|
|
25627
|
+
// because it's already mid-announcement from the focus move.
|
|
25628
|
+
const announcement = this.calendar.buildFocusAnnouncement(activeCell.day.date);
|
|
25629
|
+
setTimeout(() => {
|
|
25630
|
+
this.calendar.announceSelection(announcement);
|
|
25631
|
+
}, 500);
|
|
25632
|
+
|
|
25633
|
+
// On mobile fullscreen, scroll the month list so the active cell's
|
|
25634
|
+
// month is visible. Without this, the list stays scrolled to the
|
|
25635
|
+
// calendarStartDate month which may be far from the active cell.
|
|
25636
|
+
if (this.dropdown.isBibFullscreen) {
|
|
25637
|
+
this.calendar.scrollToActiveCell();
|
|
25638
|
+
}
|
|
24688
25639
|
} else if (attempts < MAX_ATTEMPTS) {
|
|
24689
25640
|
requestAnimationFrame(tryFocus);
|
|
24690
25641
|
}
|
|
@@ -24834,14 +25785,35 @@ class AuroDatePicker extends AuroElement {
|
|
|
24834
25785
|
if (bibEl && this.dropdown.isPopoverVisible) {
|
|
24835
25786
|
bibEl.close();
|
|
24836
25787
|
bibEl.open(true);
|
|
25788
|
+
}
|
|
25789
|
+
|
|
25790
|
+
// Re-render the calendar with the new fullscreen layout,
|
|
25791
|
+
// then restore focus after the re-render completes.
|
|
25792
|
+
this.calendar.isFullscreen = true;
|
|
25793
|
+
this.calendar.updateComplete.then(() => {
|
|
24837
25794
|
doubleRaf(() => {
|
|
24838
25795
|
this.focusActiveCellWhenReady();
|
|
24839
25796
|
});
|
|
24840
|
-
}
|
|
25797
|
+
});
|
|
24841
25798
|
});
|
|
24842
25799
|
} else if (!this.dropdown.isBibFullscreen) {
|
|
24843
|
-
// Switching from fullscreen to floating — restore trigger accessibility
|
|
24844
|
-
|
|
25800
|
+
// Switching from fullscreen to floating — only restore trigger accessibility
|
|
25801
|
+
// when the bib is closed or the desktop layout is not a modal. A desktopModal
|
|
25802
|
+
// dropdown keeps the trigger inert while open, matching the desktop-open path.
|
|
25803
|
+
if (!this.dropdown.isPopoverVisible || !this.dropdown.desktopModal) {
|
|
25804
|
+
this.dropdown.trigger.inert = false;
|
|
25805
|
+
}
|
|
25806
|
+
|
|
25807
|
+
// Re-render the calendar with the desktop layout,
|
|
25808
|
+
// then restore focus after the re-render completes.
|
|
25809
|
+
this.dropdown.updateComplete.then(() => {
|
|
25810
|
+
this.calendar.isFullscreen = false;
|
|
25811
|
+
this.calendar.updateComplete.then(() => {
|
|
25812
|
+
doubleRaf(() => {
|
|
25813
|
+
this.focusActiveCellWhenReady();
|
|
25814
|
+
});
|
|
25815
|
+
});
|
|
25816
|
+
});
|
|
24845
25817
|
}
|
|
24846
25818
|
});
|
|
24847
25819
|
}
|
|
@@ -25083,12 +26055,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
25083
26055
|
}
|
|
25084
26056
|
|
|
25085
26057
|
const formatted = this.util.toNorthAmericanFormat(dateStr, this.format);
|
|
25086
|
-
if (!this.util.validDateStr(dateStr, this.format))
|
|
26058
|
+
if (!this.util.validDateStr(dateStr, this.format)) {
|
|
26059
|
+
return false;
|
|
26060
|
+
}
|
|
25087
26061
|
|
|
25088
|
-
const
|
|
25089
|
-
const yyyy =
|
|
25090
|
-
const mm = String(
|
|
25091
|
-
const dd = String(
|
|
26062
|
+
const dt = new Date(formatted);
|
|
26063
|
+
const yyyy = dt.getFullYear();
|
|
26064
|
+
const mm = String(dt.getMonth() + 1).padStart(2, '0');
|
|
26065
|
+
const dd = String(dt.getDate()).padStart(2, '0');
|
|
25092
26066
|
return this.blackoutDates.includes(`${yyyy}-${mm}-${dd}`);
|
|
25093
26067
|
}
|
|
25094
26068
|
|
|
@@ -25106,7 +26080,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
25106
26080
|
|
|
25107
26081
|
// After standard validation, check blackout dates for typed input
|
|
25108
26082
|
if (this.validity !== 'customError') {
|
|
25109
|
-
if (this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd))) {
|
|
26083
|
+
if (this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd))) { // eslint-disable-line no-extra-parens
|
|
25110
26084
|
const msg = this.setCustomValidityCustomError || 'Selected date is unavailable';
|
|
25111
26085
|
this.validity = 'customError';
|
|
25112
26086
|
this.errorMessage = msg;
|
|
@@ -25152,7 +26126,13 @@ class AuroDatePicker extends AuroElement {
|
|
|
25152
26126
|
// 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"]
|
|
25153
26127
|
const stringfiedDates = JSON.stringify(this.referenceDates);
|
|
25154
26128
|
if (stringfiedDates.includes('-')) {
|
|
25155
|
-
this.referenceDates = this.referenceDates.map(date => date.replace(/-/gu, '/'
|
|
26129
|
+
this.referenceDates = this.referenceDates.map((date) => date.replace(/-/gu, '/'));
|
|
26130
|
+
}
|
|
26131
|
+
|
|
26132
|
+
// Force calendar cells to re-render with updated reference date state.
|
|
26133
|
+
if (this.calendar) {
|
|
26134
|
+
this.calendar.requestUpdate();
|
|
26135
|
+
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
25156
26136
|
}
|
|
25157
26137
|
}
|
|
25158
26138
|
|
|
@@ -25741,7 +26721,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
25741
26721
|
/**
|
|
25742
26722
|
* Handles click on the clear button.
|
|
25743
26723
|
* @private
|
|
25744
|
-
* @param {MouseEvent} event
|
|
26724
|
+
* @param {MouseEvent} event - The mouse event from the clear button click.
|
|
25745
26725
|
* @returns {void}
|
|
25746
26726
|
*/
|
|
25747
26727
|
handleClearClick(event) {
|