@aurodesignsystem-dev/auro-formkit 0.0.0-pr1489.5 → 0.0.0-pr1490.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/checkbox/demo/customize.min.js +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 +502 -254
- package/components/combobox/demo/getting-started.min.js +502 -254
- package/components/combobox/demo/index.min.js +502 -254
- package/components/combobox/demo/styles.min.css +1 -1
- package/components/combobox/dist/index.js +502 -254
- package/components/combobox/dist/registered.js +502 -254
- package/components/counter/demo/customize.min.js +250 -126
- package/components/counter/demo/index.min.js +250 -126
- 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 +1544 -527
- package/components/datepicker/demo/index.md +6 -4
- package/components/datepicker/demo/index.min.js +1560 -532
- package/components/datepicker/demo/keyboard-behavior.md +15 -15
- 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 +1536 -519
- package/components/datepicker/dist/registered.js +1536 -519
- package/components/datepicker/dist/src/auro-calendar-cell.d.ts +50 -15
- package/components/datepicker/dist/src/auro-calendar-month.d.ts +9 -0
- package/components/datepicker/dist/src/auro-calendar.d.ts +161 -8
- package/components/datepicker/dist/src/auro-datepicker.d.ts +5 -7
- package/components/dropdown/demo/customize.min.js +1 -1
- package/components/dropdown/demo/getting-started.min.js +1 -1
- package/components/dropdown/demo/index.min.js +1 -1
- package/components/dropdown/demo/styles.min.css +1 -1
- package/components/dropdown/dist/index.js +1 -1
- package/components/dropdown/dist/registered.js +1 -1
- package/components/form/demo/customize.min.js +3263 -1378
- package/components/form/demo/getting-started.min.js +3263 -1378
- package/components/form/demo/index.min.js +3263 -1378
- package/components/form/demo/registerDemoDeps.min.js +3263 -1378
- 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 +250 -126
- package/components/select/demo/getting-started.min.js +250 -126
- package/components/select/demo/index.min.js +250 -126
- package/components/select/demo/styles.min.css +1 -1
- package/components/select/dist/index.js +250 -126
- package/components/select/dist/registered.js +250 -126
- package/custom-elements.json +1818 -1491
- package/package.json +8 -8
|
@@ -25,109 +25,236 @@ const t$2={ATTRIBUTE:1,CHILD:2},e$5=t=>(...e)=>({_$litDirective$:t,values:e});le
|
|
|
25
25
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
26
26
|
*/const e$4=e$5(class extends i$4{constructor(t){if(super(t),t.type!==t$2.ATTRIBUTE||"class"!==t.name||t.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return " "+Object.keys(t).filter(s=>t[s]).join(" ")+" "}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(" ").split(/\s/).filter(t=>""!==t)));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)));}return E$1}});
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
/**
|
|
29
|
+
* @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.
|
|
30
|
+
* @param {string} dateStr - Date string to parse.
|
|
31
|
+
* @param {string} format - Date format to parse.
|
|
32
|
+
* @returns {{ month?: string, day?: string, year?: string }|undefined}
|
|
33
|
+
*/
|
|
34
|
+
function getDateParts$1(dateStr, format) {
|
|
35
|
+
if (!dateStr) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
29
38
|
|
|
30
|
-
|
|
39
|
+
const formatSeparatorMatch = format.match(/[/.-]/);
|
|
40
|
+
let valueParts;
|
|
41
|
+
let formatParts;
|
|
31
42
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
43
|
+
if (formatSeparatorMatch) {
|
|
44
|
+
const separator = formatSeparatorMatch[0];
|
|
45
|
+
valueParts = dateStr.split(separator);
|
|
46
|
+
formatParts = format.split(separator);
|
|
47
|
+
} else {
|
|
48
|
+
if (dateStr.match(/[/.-]/)) {
|
|
49
|
+
throw new Error(
|
|
50
|
+
"AuroDatepickerUtilities | parseDate: Date string has no separators",
|
|
51
|
+
);
|
|
52
|
+
}
|
|
39
53
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
54
|
+
if (dateStr.length !== format.length) {
|
|
55
|
+
throw new Error(
|
|
56
|
+
"AuroDatepickerUtilities | parseDate: Date string and format length do not match",
|
|
57
|
+
);
|
|
58
|
+
}
|
|
44
59
|
|
|
45
|
-
|
|
46
|
-
|
|
60
|
+
valueParts = [dateStr];
|
|
61
|
+
formatParts = [format];
|
|
62
|
+
}
|
|
47
63
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
64
|
+
if (valueParts.length !== formatParts.length) {
|
|
65
|
+
throw new Error(
|
|
66
|
+
`AuroDatepickerUtilities | parseDate: Date string and format do not match : ${dateStr} vs ${format}`,
|
|
67
|
+
);
|
|
68
|
+
}
|
|
51
69
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
throw new Error('AuroDatepickerUtilities | parseDate: Date string and format length do not match');
|
|
55
|
-
}
|
|
70
|
+
const result = formatParts.reduce((acc, part, index) => {
|
|
71
|
+
const value = valueParts[index];
|
|
56
72
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
73
|
+
if (/m/iu.test(part) && part.length === value.length) {
|
|
74
|
+
acc.month = value;
|
|
75
|
+
} else if (/d/iu.test(part) && part.length === value.length) {
|
|
76
|
+
acc.day = value;
|
|
77
|
+
} else if (/y/iu.test(part) && part.length === value.length) {
|
|
78
|
+
acc.year = value;
|
|
79
|
+
}
|
|
60
80
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
} else if ((/d/iu).test(part)) {
|
|
64
|
-
acc.day = value;
|
|
65
|
-
} else if ((/y/iu).test(part)) {
|
|
66
|
-
acc.year = value;
|
|
67
|
-
}
|
|
81
|
+
return acc;
|
|
82
|
+
}, {});
|
|
68
83
|
|
|
69
|
-
|
|
70
|
-
|
|
84
|
+
if (!result.month && !result.day && !result.year) {
|
|
85
|
+
throw new Error(
|
|
86
|
+
"AuroDatepickerUtilities | parseDate: Unable to parse date string",
|
|
87
|
+
);
|
|
88
|
+
}
|
|
71
89
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return result;
|
|
75
|
-
}
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
76
92
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
93
|
+
function isCalendarDate$1(year, month, day) {
|
|
94
|
+
let yearNumber = Number(year);
|
|
95
|
+
const monthNumber = Number(month);
|
|
96
|
+
const dayNumber = Number(day);
|
|
80
97
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
year: "numeric",
|
|
89
|
-
month: "2-digit",
|
|
90
|
-
day: "2-digit",
|
|
91
|
-
});
|
|
98
|
+
if (
|
|
99
|
+
!Number.isInteger(yearNumber) ||
|
|
100
|
+
!Number.isInteger(monthNumber) ||
|
|
101
|
+
!Number.isInteger(dayNumber)
|
|
102
|
+
) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
92
105
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
this.toNorthAmericanFormat = (dateStr, format) => {
|
|
106
|
+
// 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.
|
|
107
|
+
if (yearNumber < 100 && yearNumber >= 50) {
|
|
108
|
+
yearNumber += 1900;
|
|
109
|
+
} else if (yearNumber < 50) {
|
|
110
|
+
yearNumber += 2000;
|
|
111
|
+
}
|
|
100
112
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
113
|
+
const stringified = `${String(yearNumber).padStart(4, "0")}-${String(monthNumber).padStart(2, "0")}-${String(dayNumber).padStart(2, "0")}`;
|
|
114
|
+
const date = new Date(stringified.replace(/[.-]/g, "/"));
|
|
104
115
|
|
|
105
|
-
|
|
116
|
+
return (
|
|
117
|
+
!Number.isNaN(date.getTime()) && toISOFormatString$1(date) === stringified
|
|
118
|
+
);
|
|
119
|
+
}
|
|
106
120
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
121
|
+
/**
|
|
122
|
+
* @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).
|
|
123
|
+
*
|
|
124
|
+
* Partial formats are supported: components absent from `format` default to `year → "0"`,
|
|
125
|
+
* `month → "01"`, `day → "01"` for calendar validation only. The returned object contains
|
|
126
|
+
* only the fields actually present in the format string — missing fields are never injected.
|
|
127
|
+
* @param {string} dateStr - Date string to parse.
|
|
128
|
+
* @param {string} format - Date format to parse.
|
|
129
|
+
* @returns {{ month?: string, day?: string, year?: string }|undefined}
|
|
130
|
+
* @throws {Error} Throws when the parsed result does not represent a valid calendar date.
|
|
131
|
+
*/
|
|
132
|
+
function parseDate$1(dateStr, format = "mm/dd/yyyy") {
|
|
133
|
+
if (!dateStr || !format) {
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
const result = getDateParts$1(dateStr.trim(), format);
|
|
110
137
|
|
|
111
|
-
|
|
138
|
+
if (!result) {
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
112
141
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
142
|
+
const lowerFormat = format.toLowerCase();
|
|
143
|
+
const year = lowerFormat.includes("yy") ? result.year : "0";
|
|
144
|
+
const month = lowerFormat.includes("mm") ? result.month : "01";
|
|
145
|
+
const day = lowerFormat.includes("dd") ? result.day : "01";
|
|
117
146
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
147
|
+
if (isCalendarDate$1(year, month, day)) {
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
121
150
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
151
|
+
throw new Error(
|
|
152
|
+
`AuroDatepickerUtilities | parseDate: Date string is not a valid date ${JSON.stringify(result)} with format ${format}`,
|
|
153
|
+
);
|
|
154
|
+
}
|
|
125
155
|
|
|
126
|
-
|
|
127
|
-
|
|
156
|
+
/**
|
|
157
|
+
* Convert a date object to string format.
|
|
158
|
+
* @param {Object} date - Date to convert to string.
|
|
159
|
+
* @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
|
|
160
|
+
* @returns {String} Returns the date as a string.
|
|
161
|
+
*/
|
|
162
|
+
function getDateAsString$1(date, locale = undefined) {
|
|
163
|
+
return date.toLocaleDateString(locale, {
|
|
164
|
+
year: "numeric",
|
|
165
|
+
month: "2-digit",
|
|
166
|
+
day: "2-digit",
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Converts a date string to a North American date format.
|
|
172
|
+
* @param {String} dateStr - Date to validate.
|
|
173
|
+
* @param {String} format - Date format to validate against.
|
|
174
|
+
* @returns {String}
|
|
175
|
+
*/
|
|
176
|
+
function toNorthAmericanFormat$3(dateStr, format) {
|
|
177
|
+
if (format === "mm/dd/yyyy") {
|
|
178
|
+
return dateStr;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
const parsedDate = parseDate$1(dateStr, format);
|
|
182
|
+
|
|
183
|
+
if (!parsedDate) {
|
|
184
|
+
throw new Error(
|
|
185
|
+
"AuroDatepickerUtilities | toNorthAmericanFormat: Unable to parse date string",
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
const { month, day, year } = parsedDate;
|
|
190
|
+
|
|
191
|
+
return [month, day, year].filter(Boolean).join("/");
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Validates that a date string matches the provided format and represents a real calendar date.
|
|
196
|
+
*
|
|
197
|
+
* @param {string} dateStr - Date string to validate.
|
|
198
|
+
* @param {string} [format="yyyy-mm-dd"] - Format of the date string.
|
|
199
|
+
* @returns {boolean} True when the date string is valid for the provided format, otherwise false.
|
|
200
|
+
*/
|
|
201
|
+
function isValidDate$1(dateStr, format = "yyyy-mm-dd") {
|
|
202
|
+
try {
|
|
203
|
+
if (typeof dateStr !== "string" || !dateStr || format?.length < 8) {
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
if (parseDate$1(dateStr, format)) {
|
|
208
|
+
return true;
|
|
209
|
+
}
|
|
210
|
+
} catch (error) {
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* 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.
|
|
218
|
+
*
|
|
219
|
+
* @param {Date} date - Date instance to convert to an ISO-like string.
|
|
220
|
+
* @returns {string} A string in the format "yyyy-mm-dd" representing the provided date.
|
|
221
|
+
* @throws {Error} Throws an error when the input is not a valid Date instance.
|
|
222
|
+
*/
|
|
223
|
+
function toISOFormatString$1(date) {
|
|
224
|
+
if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
|
|
225
|
+
throw new Error(
|
|
226
|
+
"AuroDatepickerUtilities | toISOFormatString: Input must be a valid Date instance",
|
|
227
|
+
);
|
|
228
|
+
}
|
|
229
|
+
return `${String(date.getFullYear()).padStart(4, "0")}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* 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.
|
|
234
|
+
*
|
|
235
|
+
* @param {String} dateStr - Date string to convert into a Date object.
|
|
236
|
+
* @param {String} format - Date format used to parse the string when it is not in ISO format.
|
|
237
|
+
* @returns {Date|null} Returns a Date instance for valid input or null for non-string input.
|
|
238
|
+
* @throws {Error} Throws when parsing fails for non-ISO string input.
|
|
239
|
+
*/
|
|
240
|
+
function stringToDateInstance$1(dateStr, format = "yyyy-mm-dd") {
|
|
241
|
+
if (typeof dateStr !== "string") {
|
|
242
|
+
return null;
|
|
128
243
|
}
|
|
244
|
+
|
|
245
|
+
const { month, day, year } = parseDate$1(dateStr, format);
|
|
246
|
+
return new Date(`${year}/${month}/${day}`);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
const dateFormatter$1 = {
|
|
250
|
+
parseDate: parseDate$1,
|
|
251
|
+
getDateParts: getDateParts$1,
|
|
252
|
+
getDateAsString: getDateAsString$1,
|
|
253
|
+
toNorthAmericanFormat: toNorthAmericanFormat$3,
|
|
254
|
+
isValidDate: isValidDate$1,
|
|
255
|
+
toISOFormatString: toISOFormatString$1,
|
|
256
|
+
stringToDateInstance: stringToDateInstance$1,
|
|
129
257
|
};
|
|
130
|
-
const dateFormatter$1 = new DateFormatter$1();
|
|
131
258
|
|
|
132
259
|
// filepath: dateConstraints.mjs
|
|
133
260
|
const DATE_UTIL_CONSTRAINTS$1 = {
|
|
@@ -199,12 +326,11 @@ let AuroDateUtilitiesBase$1 = class AuroDateUtilitiesBase {
|
|
|
199
326
|
/* eslint-disable no-magic-numbers */
|
|
200
327
|
|
|
201
328
|
let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$1 {
|
|
202
|
-
|
|
203
329
|
/**
|
|
204
330
|
* Returns the current century.
|
|
205
331
|
* @returns {String} The current century.
|
|
206
332
|
*/
|
|
207
|
-
getCentury
|
|
333
|
+
getCentury() {
|
|
208
334
|
return String(new Date().getFullYear()).slice(0, 2);
|
|
209
335
|
}
|
|
210
336
|
|
|
@@ -213,14 +339,12 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
213
339
|
* @param {String} year - The year to convert to four digits.
|
|
214
340
|
* @returns {String} The four digit year.
|
|
215
341
|
*/
|
|
216
|
-
getFourDigitYear
|
|
217
|
-
|
|
342
|
+
getFourDigitYear(year) {
|
|
218
343
|
const strYear = String(year).trim();
|
|
219
344
|
return strYear.length <= 2 ? this.getCentury() + strYear : strYear;
|
|
220
345
|
}
|
|
221
346
|
|
|
222
347
|
constructor() {
|
|
223
|
-
|
|
224
348
|
super();
|
|
225
349
|
|
|
226
350
|
/**
|
|
@@ -229,7 +353,8 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
229
353
|
* @param {Object} date2 - Second date to compare.
|
|
230
354
|
* @returns {Boolean} Returns true if the dates match.
|
|
231
355
|
*/
|
|
232
|
-
this.datesMatch = (date1, date2) =>
|
|
356
|
+
this.datesMatch = (date1, date2) =>
|
|
357
|
+
new Date(date1).getTime() === new Date(date2).getTime();
|
|
233
358
|
|
|
234
359
|
/**
|
|
235
360
|
* Returns true if value passed in is a valid date.
|
|
@@ -238,53 +363,41 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
238
363
|
* @returns {Boolean}
|
|
239
364
|
*/
|
|
240
365
|
this.validDateStr = (date, format) => {
|
|
241
|
-
|
|
242
366
|
// The length we expect the date string to be
|
|
243
|
-
const dateStrLength = format
|
|
367
|
+
const dateStrLength = format?.length || 0;
|
|
244
368
|
|
|
245
369
|
// Guard Clause: Date and format are defined
|
|
246
370
|
if (typeof date === "undefined" || typeof format === "undefined") {
|
|
247
|
-
throw new Error(
|
|
371
|
+
throw new Error(
|
|
372
|
+
"AuroDatepickerUtilities | validateDateStr: Date and format are required",
|
|
373
|
+
);
|
|
248
374
|
}
|
|
249
375
|
|
|
250
376
|
// Guard Clause: Date should be of type string
|
|
251
377
|
if (typeof date !== "string") {
|
|
252
|
-
throw new Error(
|
|
378
|
+
throw new Error(
|
|
379
|
+
"AuroDatepickerUtilities | validateDateStr: Date must be a string",
|
|
380
|
+
);
|
|
253
381
|
}
|
|
254
382
|
|
|
255
383
|
// Guard Clause: Format should be of type string
|
|
256
384
|
if (typeof format !== "string") {
|
|
257
|
-
throw new Error(
|
|
385
|
+
throw new Error(
|
|
386
|
+
"AuroDatepickerUtilities | validateDateStr: Format must be a string",
|
|
387
|
+
);
|
|
258
388
|
}
|
|
259
389
|
|
|
260
390
|
// Guard Clause: Length is what we expect it to be
|
|
261
391
|
if (date.length !== dateStrLength) {
|
|
262
392
|
return false;
|
|
263
393
|
}
|
|
264
|
-
// Get a formatted date string and parse it
|
|
265
|
-
const dateParts = dateFormatter$1.parseDate(date, format);
|
|
266
|
-
|
|
267
|
-
// Guard Clause: Date parse succeeded
|
|
268
|
-
if (!dateParts) {
|
|
269
|
-
return false;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
// Create the expected date string based on the date parts
|
|
273
|
-
const expectedDateStr = `${dateParts.month}/${dateParts.day || "01"}/${this.getFourDigitYear(dateParts.year)}`;
|
|
274
|
-
|
|
275
|
-
// Generate a date object that we will extract a string date from to compare to the passed in date string
|
|
276
|
-
const dateObj = new Date(this.getFourDigitYear(dateParts.year), dateParts.month - 1, dateParts.day || 1);
|
|
277
|
-
|
|
278
|
-
// Get the date string of the date object we created from the string date
|
|
279
|
-
const actualDateStr = dateFormatter$1.getDateAsString(dateObj, "en-US");
|
|
280
394
|
|
|
281
|
-
//
|
|
282
|
-
|
|
395
|
+
// Get a formatted date string and parse and validate it
|
|
396
|
+
try {
|
|
397
|
+
return Boolean(dateFormatter$1.parseDate(date, format));
|
|
398
|
+
} catch (error) {
|
|
283
399
|
return false;
|
|
284
400
|
}
|
|
285
|
-
|
|
286
|
-
// If we passed all other checks, we can assume the date is valid
|
|
287
|
-
return true;
|
|
288
401
|
};
|
|
289
402
|
|
|
290
403
|
/**
|
|
@@ -294,10 +407,11 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
294
407
|
* @returns {boolean}
|
|
295
408
|
*/
|
|
296
409
|
this.dateAndFormatMatch = (value, format) => {
|
|
297
|
-
|
|
298
410
|
// Ensure we have both values we need to do the comparison
|
|
299
411
|
if (!value || !format) {
|
|
300
|
-
throw new Error(
|
|
412
|
+
throw new Error(
|
|
413
|
+
"AuroFormValidation | dateFormatMatch: value and format are required",
|
|
414
|
+
);
|
|
301
415
|
}
|
|
302
416
|
|
|
303
417
|
// If the lengths are different, they cannot match
|
|
@@ -306,11 +420,10 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
306
420
|
}
|
|
307
421
|
|
|
308
422
|
// Get the parts of the date
|
|
309
|
-
const dateParts = dateFormatter$1.
|
|
423
|
+
const dateParts = dateFormatter$1.getDateParts(value, format);
|
|
310
424
|
|
|
311
425
|
// Validator for day
|
|
312
426
|
const dayValueIsValid = (day) => {
|
|
313
|
-
|
|
314
427
|
// Guard clause: if there is no day in the dateParts, we can ignore this check.
|
|
315
428
|
if (!dateParts.day) {
|
|
316
429
|
return true;
|
|
@@ -326,7 +439,9 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
326
439
|
|
|
327
440
|
// Guard clause: ensure day is a valid integer
|
|
328
441
|
if (Number.isNaN(numDay)) {
|
|
329
|
-
throw new Error(
|
|
442
|
+
throw new Error(
|
|
443
|
+
"AuroDatepickerUtilities | dayValueIsValid: Unable to parse day value integer",
|
|
444
|
+
);
|
|
330
445
|
}
|
|
331
446
|
|
|
332
447
|
// Guard clause: ensure day is within the valid range
|
|
@@ -340,6 +455,10 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
340
455
|
|
|
341
456
|
// Validator for month
|
|
342
457
|
const monthValueIsValid = (month) => {
|
|
458
|
+
// Guard clause: if there is no month in the dateParts, we can ignore this check.
|
|
459
|
+
if (!dateParts.month) {
|
|
460
|
+
return true;
|
|
461
|
+
}
|
|
343
462
|
|
|
344
463
|
// Guard clause: ensure month exists.
|
|
345
464
|
if (!month) {
|
|
@@ -351,7 +470,9 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
351
470
|
|
|
352
471
|
// Guard clause: ensure month is a valid integer
|
|
353
472
|
if (Number.isNaN(numMonth)) {
|
|
354
|
-
throw new Error(
|
|
473
|
+
throw new Error(
|
|
474
|
+
"AuroDatepickerUtilities | monthValueIsValid: Unable to parse month value integer",
|
|
475
|
+
);
|
|
355
476
|
}
|
|
356
477
|
|
|
357
478
|
// Guard clause: ensure month is within the valid range
|
|
@@ -365,6 +486,10 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
365
486
|
|
|
366
487
|
// Validator for year
|
|
367
488
|
const yearIsValid = (_year) => {
|
|
489
|
+
// Guard clause: if there is no year in the dateParts, we can ignore this check.
|
|
490
|
+
if (!dateParts.year) {
|
|
491
|
+
return true;
|
|
492
|
+
}
|
|
368
493
|
|
|
369
494
|
// Guard clause: ensure year exists.
|
|
370
495
|
if (!_year) {
|
|
@@ -379,7 +504,9 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
379
504
|
|
|
380
505
|
// Guard clause: ensure year is a valid integer
|
|
381
506
|
if (Number.isNaN(numYear)) {
|
|
382
|
-
throw new Error(
|
|
507
|
+
throw new Error(
|
|
508
|
+
"AuroDatepickerUtilities | yearValueIsValid: Unable to parse year value integer",
|
|
509
|
+
);
|
|
383
510
|
}
|
|
384
511
|
|
|
385
512
|
// Guard clause: ensure year is within the valid range
|
|
@@ -395,7 +522,7 @@ let AuroDateUtilities$1 = class AuroDateUtilities extends AuroDateUtilitiesBase$
|
|
|
395
522
|
const checks = [
|
|
396
523
|
monthValueIsValid(dateParts.month),
|
|
397
524
|
dayValueIsValid(dateParts.day),
|
|
398
|
-
yearIsValid(dateParts.year)
|
|
525
|
+
yearIsValid(dateParts.year),
|
|
399
526
|
];
|
|
400
527
|
|
|
401
528
|
// If any of the checks failed, the date format does not match and the result is invalid
|
|
@@ -429,10 +556,7 @@ const {
|
|
|
429
556
|
} = dateUtilities$1;
|
|
430
557
|
|
|
431
558
|
const {
|
|
432
|
-
toNorthAmericanFormat: toNorthAmericanFormat$1
|
|
433
|
-
parseDate: parseDate$1,
|
|
434
|
-
getDateAsString: getDateAsString$1
|
|
435
|
-
} = dateFormatter$1;
|
|
559
|
+
toNorthAmericanFormat: toNorthAmericanFormat$2} = dateFormatter$1;
|
|
436
560
|
|
|
437
561
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
438
562
|
// See LICENSE in the project root for license information.
|
|
@@ -752,13 +876,13 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
752
876
|
}
|
|
753
877
|
|
|
754
878
|
// Perform the rest of the validation
|
|
755
|
-
const formattedValue = toNorthAmericanFormat$
|
|
879
|
+
const formattedValue = toNorthAmericanFormat$2(elem.value, elem.format);
|
|
756
880
|
const valueDate = new Date(formattedValue);
|
|
757
881
|
|
|
758
882
|
// // Validate max date
|
|
759
883
|
if (elem.max?.length === elem.lengthForType) {
|
|
760
884
|
|
|
761
|
-
const maxDate = new Date(toNorthAmericanFormat$
|
|
885
|
+
const maxDate = new Date(toNorthAmericanFormat$2(elem.max, elem.format));
|
|
762
886
|
|
|
763
887
|
if (valueDate > maxDate) {
|
|
764
888
|
elem.validity = 'rangeOverflow';
|
|
@@ -769,7 +893,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
769
893
|
|
|
770
894
|
// Validate min date
|
|
771
895
|
if (elem.min?.length === elem.lengthForType) {
|
|
772
|
-
const minDate = new Date(toNorthAmericanFormat$
|
|
896
|
+
const minDate = new Date(toNorthAmericanFormat$2(elem.min, elem.format));
|
|
773
897
|
|
|
774
898
|
if (valueDate < minDate) {
|
|
775
899
|
elem.validity = 'rangeUnderflow';
|
|
@@ -1379,7 +1503,6 @@ class UtilitiesCalendarRender {
|
|
|
1379
1503
|
.max="${elem.max}"
|
|
1380
1504
|
?noRange="${elem.noRange}"
|
|
1381
1505
|
.monthFirst="${elem.monthFirst}"
|
|
1382
|
-
.hoveredDate="${elem.hoveredDate}"
|
|
1383
1506
|
.dateTo="${elem.dateTo}"
|
|
1384
1507
|
.dateFrom="${elem.dateFrom}"
|
|
1385
1508
|
.locale="${elem.locale}"
|
|
@@ -1411,49 +1534,6 @@ var snowflakeStyle = i$3`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
|
|
|
1411
1534
|
|
|
1412
1535
|
var snowflakeColors = i$3`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
|
|
1413
1536
|
|
|
1414
|
-
var styleCss$7 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}: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}`;
|
|
1415
|
-
|
|
1416
|
-
var colorCss$7 = i$3`.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)}}`;
|
|
1417
|
-
|
|
1418
|
-
var styleCss$6 = i$3`: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%}`;
|
|
1419
|
-
|
|
1420
|
-
var colorCss$6 = i$3`: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)}`;
|
|
1421
|
-
|
|
1422
|
-
/******************************************************************************
|
|
1423
|
-
Copyright (c) Microsoft Corporation.
|
|
1424
|
-
|
|
1425
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
1426
|
-
purpose with or without fee is hereby granted.
|
|
1427
|
-
|
|
1428
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
1429
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
1430
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
1431
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
1432
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
1433
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
1434
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
1435
|
-
***************************************************************************** */
|
|
1436
|
-
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
function __decorate(decorators, target, key, desc) {
|
|
1440
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1441
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1442
|
-
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;
|
|
1443
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1444
|
-
}
|
|
1445
|
-
|
|
1446
|
-
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
1447
|
-
var e = new Error(message);
|
|
1448
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
1449
|
-
};
|
|
1450
|
-
|
|
1451
|
-
/**
|
|
1452
|
-
* @license
|
|
1453
|
-
* Copyright 2017 Google LLC
|
|
1454
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
1455
|
-
*/const o$4={attribute:true,type:String,converter:u$9,reflect:false,hasChanged:f$8},r$4=(t=o$4,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),"setter"===n&&((t=Object.create(t)).wrapped=true),s.set(r.name,t),"accessor"===n){const{name:o}=r;return {set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,true,r);},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if("setter"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,true,r);}}throw Error("Unsupported decorator location: "+n)};function n$4(t){return (e,o)=>"object"==typeof o?r$4(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}
|
|
1456
|
-
|
|
1457
1537
|
/**
|
|
1458
1538
|
* @module constants
|
|
1459
1539
|
* @summary Useful constants
|
|
@@ -7208,6 +7288,49 @@ function subYears(date, amount, options) {
|
|
|
7208
7288
|
return addYears(date, -1, options);
|
|
7209
7289
|
}
|
|
7210
7290
|
|
|
7291
|
+
var styleCss$7 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}: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}`;
|
|
7292
|
+
|
|
7293
|
+
var colorCss$7 = i$3`.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)}}`;
|
|
7294
|
+
|
|
7295
|
+
var styleCss$6 = i$3`: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%}`;
|
|
7296
|
+
|
|
7297
|
+
var colorCss$6 = i$3`: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)}`;
|
|
7298
|
+
|
|
7299
|
+
/******************************************************************************
|
|
7300
|
+
Copyright (c) Microsoft Corporation.
|
|
7301
|
+
|
|
7302
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
7303
|
+
purpose with or without fee is hereby granted.
|
|
7304
|
+
|
|
7305
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
7306
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
7307
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
7308
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
7309
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
7310
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
7311
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
7312
|
+
***************************************************************************** */
|
|
7313
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
7314
|
+
|
|
7315
|
+
|
|
7316
|
+
function __decorate(decorators, target, key, desc) {
|
|
7317
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
7318
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
7319
|
+
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;
|
|
7320
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7321
|
+
}
|
|
7322
|
+
|
|
7323
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
7324
|
+
var e = new Error(message);
|
|
7325
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
7326
|
+
};
|
|
7327
|
+
|
|
7328
|
+
/**
|
|
7329
|
+
* @license
|
|
7330
|
+
* Copyright 2017 Google LLC
|
|
7331
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
7332
|
+
*/const o$4={attribute:true,type:String,converter:u$9,reflect:false,hasChanged:f$8},r$4=(t=o$4,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),"setter"===n&&((t=Object.create(t)).wrapped=true),s.set(r.name,t),"accessor"===n){const{name:o}=r;return {set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,true,r);},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if("setter"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,true,r);}}throw Error("Unsupported decorator location: "+n)};function n$4(t){return (e,o)=>"object"==typeof o?r$4(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}
|
|
7333
|
+
|
|
7211
7334
|
class RangeDatepickerCell extends i$1 {
|
|
7212
7335
|
constructor() {
|
|
7213
7336
|
super(...arguments);
|
|
@@ -7930,9 +8053,9 @@ __decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "dayNamesO
|
|
|
7930
8053
|
__decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
7931
8054
|
AuroLibraryRuntimeUtils$5.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
7932
8055
|
|
|
7933
|
-
var styleCss$5 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width: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}}`;
|
|
8056
|
+
var styleCss$5 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:48px;height:56px;padding:0;border-width:2px;border-style:solid;border-radius:10px;cursor:pointer;user-select:none}.day:focus-visible{outline:none;background-color:unset}.day.activeCell{outline-width:2px;outline-style:solid;outline-offset:-4px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor: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)}}.buttonWrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.dateSlot{display:block}.srOnly{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;clip:rect(0, 0, 0, 0);white-space:nowrap}.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_]){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}`;
|
|
7934
8057
|
|
|
7935
|
-
var colorCss$5 = i$3`:host ::slotted([slot^=date_]){color:var(--ds-auro-calendar-cell-price-text-color)}:host ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success, #447a1f)}:host .day{border-color:var(--ds-auro-calendar-cell-border-color);background-color:var(--ds-auro-calendar-cell-container-color);color:var(--ds-auro-calendar-cell-text-color)}:host .day:
|
|
8058
|
+
var colorCss$5 = i$3`:host ::slotted([slot^=date_]){color:var(--ds-auro-calendar-cell-price-text-color)}:host ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success, #447a1f)}:host .day{border-color:var(--ds-auro-calendar-cell-border-color);background-color:var(--ds-auro-calendar-cell-container-color);color:var(--ds-auro-calendar-cell-text-color)}:host .day.activeCell:not(.selected){--ds-auro-calendar-cell-container-color: var(--ds-auro-calendar-cell-in-range-color);border-color:var(--ds-advanced-color-state-selected);outline-color:var(--ds-auro-calendar-cell-container-color)}:host .day.selected{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.selected ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success-subtle, #d6eac7)}:host .day.selected:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected-hover, #00274a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.reference{--ds-auro-calendar-cell-border-color: var(--ds-basic-color-border-default, #959595)}:host .day.reference:not(.selected):not(.disabled){--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-muted, #676767)}:host .day.reference.selected{--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}: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}`;
|
|
7936
8059
|
|
|
7937
8060
|
let s$2 = 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$3="top",o$3="bottom",n$3="right",a="left",l$3="auto",c$5=[r$3,o$3,n$3,a],p$7="start",d$3="end",f$7="viewport",h$6="popper",u$8=c$5.reduce(function(e,t){return e.concat([t+"-"+p$7,t+"-"+d$3])},[]),m$7=[].concat(c$5,[l$3]).reduce(function(e,t){return e.concat([t,t+"-"+p$7,t+"-"+d$3])},[]),g$6=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function v$4(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$4(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$4(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$7(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$4(e))>=0}function H$3(e){return ((w$6(e)?e.ownerDocument:e.document)||window.document).documentElement}function C$3(e){return "html"===v$4(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$4(i)||"body"===v$4(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$4(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$3].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$5))}(l.padding,i),g=M$7(p),v="y"===h?r$3:a,y="y"===h?o$3:n$3,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$3,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$3||(l===a||l===n$3)&&c===d$3)T=o$3,x-=(g&&E===z&&z.visualViewport?z.visualViewport.height:E[M])-s.height,x*=h?1:-1;if(l===a||(l===r$3||l===o$3)&&c===d$3)O=n$3,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$4(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$7?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$4(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$3:t={x:h,y:i.y-s.height};break;case o$3:t={x:h,y:i.y+i.height};break;case n$3: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$7: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$7:m,v=i.elementContext,y=void 0===v?h$6:v,b=i.altBoundary,x=void 0!==b&&b,S=i.padding,_=void 0===S?0:S,A=I("number"!=typeof _?_:q$3(_,c$5)),O=y===h$6?"reference":h$6,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$6?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$6&&D){var N=D[a];Object.keys(C).forEach(function(e){var t=[n$3,o$3].indexOf(e)>=0?1:-1,i=[r$3,o$3].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$7:l,d=U$3(s),f=d?a?u$8:u$8.filter(function(e){return U$3(e)===d}):c$5,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$7,D=[r$3,o$3].indexOf(H)>=0,N=D?"width":"height",P=ne(t,{placement:R,boundary:g,rootBoundary:v,altBoundary:y,padding:m}),j=D?C?n$3:a:C?o$3:r$3;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$3,n$3,o$3,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$7.reduce(function(e,i){return e[i]=function(e,t,i){var s=_$4(e),o=[a,r$3].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$3].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$3:a,V="y"===z?o$3:n$3,W="y"===z?"height":"width",X=B[z],$=X+x[F],G=X-x[V],K=y?-R[W]/2:0,Y=k===p$7?L[W]:R[W],J=k===p$7?-R[W]:-L[W],Q=t.elements.arrow,Z=y&&Q?M$7(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$3:a,ue="x"===z?o$3:n$3,me=B[E],ge="y"===E?"height":"width",ve=me+x[he],ye=me-x[ue],we=-1!==[r$3,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$4(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$7(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=i$3`::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)}
|
|
7938
8061
|
`,xe=i$3`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}.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:""}
|
|
@@ -7955,7 +8078,7 @@ let s$2 = class s{registerComponent(e,t){customElements.get(e)||customElements.d
|
|
|
7955
8078
|
|
|
7956
8079
|
var popoverVersion = '6.0.1';
|
|
7957
8080
|
|
|
7958
|
-
/* eslint-disable curly, max-lines, no-underscore-dangle, no-magic-numbers, no-underscore-dangle, max-params, no-
|
|
8081
|
+
/* 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 */
|
|
7959
8082
|
|
|
7960
8083
|
class AuroCalendarCell extends i$1 {
|
|
7961
8084
|
constructor() {
|
|
@@ -7963,7 +8086,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
7963
8086
|
|
|
7964
8087
|
this.day = null;
|
|
7965
8088
|
this.selected = false;
|
|
7966
|
-
this.hovered = false;
|
|
7967
8089
|
this.dateTo = null;
|
|
7968
8090
|
this.dateFrom = null;
|
|
7969
8091
|
this.month = null;
|
|
@@ -7971,7 +8093,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
7971
8093
|
this.max = null;
|
|
7972
8094
|
this.disabled = false;
|
|
7973
8095
|
this.disabledDays = [];
|
|
7974
|
-
this.hoveredDate = null;
|
|
7975
8096
|
this.isCurrentDate = false;
|
|
7976
8097
|
this._locale = null;
|
|
7977
8098
|
this.dateStr = null;
|
|
@@ -7996,7 +8117,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
7996
8117
|
// ...super.properties,
|
|
7997
8118
|
day: { type: Object },
|
|
7998
8119
|
selected: { type: Boolean },
|
|
7999
|
-
hovered: { type: Boolean },
|
|
8000
8120
|
dateTo: { type: String },
|
|
8001
8121
|
dateFrom: { type: String },
|
|
8002
8122
|
month: { type: String },
|
|
@@ -8007,15 +8127,10 @@ class AuroCalendarCell extends i$1 {
|
|
|
8007
8127
|
reflect: true
|
|
8008
8128
|
},
|
|
8009
8129
|
disabledDays: { type: Array },
|
|
8010
|
-
hoveredDate: { type: String },
|
|
8011
8130
|
isCurrentDate: { type: Boolean },
|
|
8012
8131
|
locale: { type: Object },
|
|
8013
8132
|
dateStr: { type: String },
|
|
8014
8133
|
renderForDateSlot: { type: Boolean },
|
|
8015
|
-
active: {
|
|
8016
|
-
type: Boolean,
|
|
8017
|
-
reflect: true
|
|
8018
|
-
},
|
|
8019
8134
|
hasPopoverContent: { type: Boolean }
|
|
8020
8135
|
};
|
|
8021
8136
|
}
|
|
@@ -8040,17 +8155,17 @@ class AuroCalendarCell extends i$1 {
|
|
|
8040
8155
|
}
|
|
8041
8156
|
|
|
8042
8157
|
/**
|
|
8043
|
-
* Handles selected
|
|
8158
|
+
* Handles selected state of the calendar cell when the selection changes.
|
|
8159
|
+
* Also clears any imperative range preview classes so classMap is the
|
|
8160
|
+
* sole source of truth after a selection update.
|
|
8044
8161
|
* @private
|
|
8045
8162
|
* @param {Number} dateFrom - Depart date.
|
|
8046
8163
|
* @param {Number} dateTo - Return date.
|
|
8047
|
-
* @param {Number} hoveredDate - Hovered date.
|
|
8048
8164
|
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
8049
8165
|
* @returns {void}
|
|
8050
8166
|
*/
|
|
8051
|
-
dateChanged(dateFrom, dateTo,
|
|
8167
|
+
dateChanged(dateFrom, dateTo, day) {
|
|
8052
8168
|
this.selected = false;
|
|
8053
|
-
this.hovered = false;
|
|
8054
8169
|
|
|
8055
8170
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
8056
8171
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
@@ -8062,10 +8177,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
8062
8177
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
8063
8178
|
this.selected = true;
|
|
8064
8179
|
}
|
|
8065
|
-
|
|
8066
|
-
if (((hoveredDate === day.date || day.date < hoveredDate) && day.date > parsedDateFrom && !parsedDateTo && !Number.isNaN(parsedDateFrom) && parsedDateFrom !== undefined && !this.selected) || (day.date > parsedDateFrom && day.date < parsedDateTo)) {
|
|
8067
|
-
this.hovered = true;
|
|
8068
|
-
}
|
|
8069
8180
|
}
|
|
8070
8181
|
}
|
|
8071
8182
|
|
|
@@ -8091,16 +8202,30 @@ class AuroCalendarCell extends i$1 {
|
|
|
8091
8202
|
|
|
8092
8203
|
/**
|
|
8093
8204
|
* Handles user hover events and dispatches a custom event.
|
|
8094
|
-
*
|
|
8205
|
+
* Does NOT set any reactive properties — the range preview is handled
|
|
8206
|
+
* imperatively by the calendar component to avoid O(N) re-renders.
|
|
8095
8207
|
* @private
|
|
8096
8208
|
* @returns {void}
|
|
8097
8209
|
*/
|
|
8098
8210
|
handleHover() {
|
|
8099
|
-
this.hovered = true;
|
|
8100
|
-
|
|
8101
|
-
let _a;
|
|
8102
8211
|
this.dispatchEvent(new CustomEvent('date-is-hovered', {
|
|
8103
|
-
detail: { date:
|
|
8212
|
+
detail: { date: this.day?.date },
|
|
8213
|
+
}));
|
|
8214
|
+
}
|
|
8215
|
+
|
|
8216
|
+
/**
|
|
8217
|
+
* Handles focus events on the cell button.
|
|
8218
|
+
* Dispatches a lightweight event for the calendar to handle SR
|
|
8219
|
+
* announcements and range preview updates without triggering
|
|
8220
|
+
* any Lit lifecycle updates.
|
|
8221
|
+
* @private
|
|
8222
|
+
* @returns {void}
|
|
8223
|
+
*/
|
|
8224
|
+
handleFocus() {
|
|
8225
|
+
this.dispatchEvent(new CustomEvent('calendar-cell-focused', {
|
|
8226
|
+
bubbles: true,
|
|
8227
|
+
composed: true,
|
|
8228
|
+
detail: { date: this.day?.date },
|
|
8104
8229
|
}));
|
|
8105
8230
|
}
|
|
8106
8231
|
|
|
@@ -8114,7 +8239,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
8114
8239
|
* @returns {Boolean} - True if the date is out of range.
|
|
8115
8240
|
*/
|
|
8116
8241
|
isOutOfRange(day, min, max) {
|
|
8117
|
-
if (day && day.date
|
|
8242
|
+
if (day && day.date !== null && day.date !== undefined) {
|
|
8118
8243
|
return day.date < min || day.date > max;
|
|
8119
8244
|
}
|
|
8120
8245
|
return false;
|
|
@@ -8127,13 +8252,13 @@ class AuroCalendarCell extends i$1 {
|
|
|
8127
8252
|
* @returns {Boolean} - True if the date is a blackout date.
|
|
8128
8253
|
*/
|
|
8129
8254
|
isBlackout() {
|
|
8130
|
-
if (!this.day || this.day.date
|
|
8255
|
+
if (!this.day || this.day.date === null || this.day.date === undefined || this.isOutOfRange(this.day, this.min, this.max)) {
|
|
8131
8256
|
return false;
|
|
8132
8257
|
}
|
|
8133
8258
|
|
|
8134
8259
|
// Check against disabledDays timestamps (legacy path)
|
|
8135
8260
|
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
8136
|
-
if (this.disabledDays.findIndex(
|
|
8261
|
+
if (this.disabledDays.findIndex(dd => parseInt(dd, 10) === this.day.date) !== -1) {
|
|
8137
8262
|
return true;
|
|
8138
8263
|
}
|
|
8139
8264
|
}
|
|
@@ -8215,12 +8340,26 @@ class AuroCalendarCell extends i$1 {
|
|
|
8215
8340
|
|
|
8216
8341
|
let label = dateFormatter.format(date);
|
|
8217
8342
|
|
|
8343
|
+
// Append date slot content (e.g. prices) so it is announced with the date.
|
|
8344
|
+
if (this.renderForDateSlot) {
|
|
8345
|
+
const dateSlotEl = this.querySelector(`[slot="date_${this.dateStr}"]`);
|
|
8346
|
+
if (dateSlotEl) {
|
|
8347
|
+
const text = dateSlotEl.innerText?.trim();
|
|
8348
|
+
if (text) {
|
|
8349
|
+
label += `, ${text}`;
|
|
8350
|
+
}
|
|
8351
|
+
}
|
|
8352
|
+
}
|
|
8353
|
+
|
|
8218
8354
|
// appending popover content here so that it gets read in a logical order with the other date content.
|
|
8219
8355
|
if (this.hasPopoverContent) {
|
|
8220
|
-
|
|
8356
|
+
const popoverEl = this.querySelector(`[slot="popover_${this.dateStr}"]`);
|
|
8357
|
+
if (popoverEl) {
|
|
8358
|
+
label += `, ${popoverEl.innerText.trim()}`;
|
|
8359
|
+
}
|
|
8221
8360
|
}
|
|
8222
8361
|
|
|
8223
|
-
// Append range position
|
|
8362
|
+
// Append range position label for range datepickers
|
|
8224
8363
|
const rangePosition = this.getRangePosition();
|
|
8225
8364
|
if (rangePosition) {
|
|
8226
8365
|
label += `, ${rangePosition}`;
|
|
@@ -8450,6 +8589,11 @@ class AuroCalendarCell extends i$1 {
|
|
|
8450
8589
|
};
|
|
8451
8590
|
this.datepicker.addEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
|
|
8452
8591
|
|
|
8592
|
+
// Cache button reference for imperative class manipulation.
|
|
8593
|
+
this.updateComplete.then(() => {
|
|
8594
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
8595
|
+
});
|
|
8596
|
+
|
|
8453
8597
|
// Trigger an initial update now that `this.datepicker` is assigned so
|
|
8454
8598
|
// cells reflect blackout/slot state that was configured before first render.
|
|
8455
8599
|
this.requestUpdate();
|
|
@@ -8481,13 +8625,26 @@ class AuroCalendarCell extends i$1 {
|
|
|
8481
8625
|
}
|
|
8482
8626
|
|
|
8483
8627
|
updated(properties) {
|
|
8484
|
-
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('
|
|
8485
|
-
this.dateChanged(this.dateFrom, this.dateTo, this.
|
|
8628
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('day')) {
|
|
8629
|
+
this.dateChanged(this.dateFrom, this.dateTo, this.day);
|
|
8486
8630
|
}
|
|
8487
8631
|
|
|
8488
|
-
if (this.day) {
|
|
8632
|
+
if (properties.has('day') && this.day) {
|
|
8489
8633
|
this.setDateSlotName();
|
|
8490
8634
|
this.handleSlotContent();
|
|
8635
|
+
|
|
8636
|
+
// Re-cache button reference when the day changes (cell may have re-rendered).
|
|
8637
|
+
this.updateComplete.then(() => {
|
|
8638
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
8639
|
+
});
|
|
8640
|
+
|
|
8641
|
+
// Update host-level aria attributes for ariaActiveDescendantElement.
|
|
8642
|
+
this.updateHostAria();
|
|
8643
|
+
}
|
|
8644
|
+
|
|
8645
|
+
// Update host aria when selection changes (aria-selected, range labels)
|
|
8646
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected')) {
|
|
8647
|
+
this.updateHostAria();
|
|
8491
8648
|
}
|
|
8492
8649
|
|
|
8493
8650
|
// Configure popover when it first becomes rendered
|
|
@@ -8497,31 +8654,129 @@ class AuroCalendarCell extends i$1 {
|
|
|
8497
8654
|
}
|
|
8498
8655
|
|
|
8499
8656
|
/**
|
|
8500
|
-
*
|
|
8657
|
+
* Updates ARIA attributes on the host element so that
|
|
8658
|
+
* ariaActiveDescendantElement can expose cell info to the SR.
|
|
8659
|
+
* @private
|
|
8501
8660
|
* @returns {void}
|
|
8502
8661
|
*/
|
|
8503
|
-
|
|
8504
|
-
|
|
8505
|
-
|
|
8506
|
-
|
|
8662
|
+
updateHostAria() {
|
|
8663
|
+
if (!this.day || this.day.date === undefined) return;
|
|
8664
|
+
|
|
8665
|
+
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
8666
|
+
if (outOfRange) {
|
|
8667
|
+
this.removeAttribute('role');
|
|
8668
|
+
this.removeAttribute('aria-label');
|
|
8669
|
+
return;
|
|
8670
|
+
}
|
|
8671
|
+
|
|
8672
|
+
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
8673
|
+
this.setAttribute('role', 'gridcell');
|
|
8674
|
+
this.setAttribute('aria-label', this.getAriaLabel());
|
|
8675
|
+
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
8676
|
+
|
|
8677
|
+
if (this.isBlackout()) {
|
|
8678
|
+
this.setAttribute('aria-disabled', 'true');
|
|
8679
|
+
} else {
|
|
8680
|
+
this.removeAttribute('aria-disabled');
|
|
8681
|
+
}
|
|
8682
|
+
}
|
|
8683
|
+
|
|
8684
|
+
/**
|
|
8685
|
+
* Programmatically focuses the cell's interactive button element.
|
|
8686
|
+
* Uses focusVisible: true so the :focus-visible ring appears even when
|
|
8687
|
+
* the bib was opened via mouse click (which sets mouse input modality).
|
|
8688
|
+
* @returns {void}
|
|
8689
|
+
*/
|
|
8690
|
+
focusButton() {
|
|
8691
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([aria-hidden])');
|
|
8692
|
+
if (button) {
|
|
8693
|
+
button.focus({ focusVisible: true });
|
|
8694
|
+
}
|
|
8695
|
+
}
|
|
8696
|
+
|
|
8697
|
+
/**
|
|
8698
|
+
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
8699
|
+
* Note: buttons stay tabindex="-1" because the grid uses aria-activedescendant.
|
|
8700
|
+
* @returns {void}
|
|
8701
|
+
*/
|
|
8702
|
+
setActive() {
|
|
8703
|
+
this.active = true;
|
|
8704
|
+
|
|
8705
|
+
// Show the popover when this cell becomes active via keyboard navigation.
|
|
8706
|
+
if (this.auroPopover) {
|
|
8707
|
+
this.auroPopover.toggleShow();
|
|
8708
|
+
}
|
|
8709
|
+
}
|
|
8710
|
+
|
|
8711
|
+
/**
|
|
8712
|
+
* Imperatively marks this cell as inactive without triggering a Lit re-render.
|
|
8713
|
+
* @returns {void}
|
|
8714
|
+
*/
|
|
8715
|
+
clearActive() {
|
|
8716
|
+
this.active = false;
|
|
8717
|
+
const btn = this._cachedButton || this.shadowRoot.querySelector('button.day');
|
|
8718
|
+
if (btn) {
|
|
8719
|
+
btn.classList.remove('activeCell');
|
|
8720
|
+
}
|
|
8721
|
+
|
|
8722
|
+
// Hide the popover when this cell loses active state.
|
|
8723
|
+
if (this.auroPopover) {
|
|
8724
|
+
this.auroPopover.toggleHide();
|
|
8507
8725
|
}
|
|
8508
8726
|
}
|
|
8509
8727
|
|
|
8728
|
+
/**
|
|
8729
|
+
* Updates range preview classes imperatively (no Lit re-render).
|
|
8730
|
+
* Called by the calendar component when the hovered date changes
|
|
8731
|
+
* during range selection (dateFrom set, dateTo not yet set).
|
|
8732
|
+
* @param {Number} hoveredDate - Unix timestamp of the currently hovered/focused date.
|
|
8733
|
+
* @param {Number} dateFrom - Unix timestamp of the selected departure date.
|
|
8734
|
+
* @returns {void}
|
|
8735
|
+
*/
|
|
8736
|
+
updateRangePreviewClasses(hoveredDate, dateFrom) {
|
|
8737
|
+
const btn = this._cachedButton;
|
|
8738
|
+
if (!btn || !this.day) return;
|
|
8739
|
+
|
|
8740
|
+
const dayDate = this.day.date;
|
|
8741
|
+
const departTimestamp = startOfDay(dateFrom * 1000) / 1000;
|
|
8742
|
+
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
8743
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate > departTimestamp;
|
|
8744
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate > departTimestamp;
|
|
8745
|
+
|
|
8746
|
+
btn.classList.toggle('inRange', isInRange);
|
|
8747
|
+
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
8748
|
+
btn.classList.toggle('rangeDepartDate', isDepartWithPreview);
|
|
8749
|
+
}
|
|
8750
|
+
|
|
8751
|
+
/**
|
|
8752
|
+
* Clears all imperative range preview classes from the cell button.
|
|
8753
|
+
* Called when a selection occurs so classMap becomes the sole source of truth.
|
|
8754
|
+
* @returns {void}
|
|
8755
|
+
*/
|
|
8756
|
+
clearRangePreviewClasses() {
|
|
8757
|
+
const btn = this._cachedButton;
|
|
8758
|
+
if (!btn) return;
|
|
8759
|
+
|
|
8760
|
+
btn.classList.remove('inRange', 'lastHoveredDate', 'rangeDepartDate');
|
|
8761
|
+
}
|
|
8762
|
+
|
|
8510
8763
|
renderCellButton() {
|
|
8511
8764
|
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
8512
|
-
const role = outOfRange ? 'presentation' : 'gridcell';
|
|
8513
8765
|
const blackout = this.isBlackout();
|
|
8514
8766
|
|
|
8767
|
+
// Static and selection-driven classes only. Hover-driven classes
|
|
8768
|
+
// (inRange, lastHoveredDate, rangeDepartDate during preview) are
|
|
8769
|
+
// managed imperatively via updateRangePreviewClasses() to avoid
|
|
8770
|
+
// O(N) Lit re-renders on every focus/hover event.
|
|
8515
8771
|
const buttonClasses = {
|
|
8516
8772
|
'day': true,
|
|
8517
|
-
'body-
|
|
8773
|
+
'body-default': true,
|
|
8518
8774
|
'currentDate': this.isCurrentDate,
|
|
8519
8775
|
'selected': this.selected,
|
|
8520
|
-
'inRange': this.datepicker?.hasAttribute('range') && this.
|
|
8521
|
-
'lastHoveredDate': this.isLastHoveredDate(this.day, this.dateFrom, this.dateTo, this.hoveredDate) && this.datepicker && this.datepicker.hasAttribute('range'),
|
|
8776
|
+
'inRange': this.datepicker?.hasAttribute('range') && this.dateTo && this.isInRange(this.day, this.dateFrom, this.dateTo),
|
|
8522
8777
|
'disabled': outOfRange,
|
|
8523
|
-
|
|
8524
|
-
'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) &&
|
|
8778
|
+
blackout,
|
|
8779
|
+
'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) && this.dateTo,
|
|
8525
8780
|
'rangeReturnDate': this.datepicker?.hasAttribute('range') && this.isReturnDate(this.day, this.dateFrom, this.dateTo),
|
|
8526
8781
|
'reference': this.isReferenceDate(this.dateStr),
|
|
8527
8782
|
'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo
|
|
@@ -8531,30 +8786,25 @@ class AuroCalendarCell extends i$1 {
|
|
|
8531
8786
|
<button
|
|
8532
8787
|
slot="trigger"
|
|
8533
8788
|
id="${this.getCellId()}"
|
|
8534
|
-
role="${role}"
|
|
8535
8789
|
@click="${outOfRange ? undefined : this.handleTap}"
|
|
8536
8790
|
@mouseover="${outOfRange ? undefined : this.handleHover}"
|
|
8537
|
-
@focus="${outOfRange ? undefined : this.
|
|
8791
|
+
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
8538
8792
|
class="${e$4(buttonClasses)}"
|
|
8539
8793
|
?disabled="${outOfRange}"
|
|
8540
|
-
aria-disabled="${blackout ? 'true' : A$4}"
|
|
8541
8794
|
aria-hidden="${outOfRange ? 'true' : A$4}"
|
|
8542
|
-
|
|
8543
|
-
aria-current="${this.isCurrentDate ? 'date' : A$4}"
|
|
8544
|
-
tabindex="${this.active ? '0' : '-1'}">
|
|
8545
|
-
<span class="srOnly">${this.getAriaLabel()}</span>
|
|
8795
|
+
tabindex="-1">
|
|
8546
8796
|
<div class="buttonWrapper" aria-hidden="true">
|
|
8547
8797
|
<div class="currentDayMarker">${this.day?.title || A$4}</div>
|
|
8548
|
-
|
|
8549
|
-
|
|
8550
|
-
|
|
8798
|
+
<div class="dateSlot body-2xs" part="dateSlot" aria-hidden="true" ?hidden="${!this.renderForDateSlot}">
|
|
8799
|
+
<slot name="date_${this.dateStr}"></slot>
|
|
8800
|
+
</div>
|
|
8551
8801
|
</div>
|
|
8552
8802
|
</button>
|
|
8553
8803
|
`;
|
|
8554
8804
|
}
|
|
8555
8805
|
|
|
8556
8806
|
render() {
|
|
8557
|
-
const hasPopoverContent = this
|
|
8807
|
+
const { hasPopoverContent } = this;
|
|
8558
8808
|
|
|
8559
8809
|
if (hasPopoverContent) {
|
|
8560
8810
|
return u$a`
|
|
@@ -8684,7 +8934,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8684
8934
|
*/
|
|
8685
8935
|
renderDayOfWeek(dayOfWeek, index) {
|
|
8686
8936
|
const fullName = this.dayFullNames ? this.dayFullNames[index] : dayOfWeek;
|
|
8687
|
-
return b$5`<div class="th body-default"
|
|
8937
|
+
return b$5`<div class="th body-default"><abbr title="${fullName}">${dayOfWeek}</abbr></div>`;
|
|
8688
8938
|
}
|
|
8689
8939
|
|
|
8690
8940
|
/**
|
|
@@ -8693,12 +8943,28 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8693
8943
|
*/
|
|
8694
8944
|
getFocusableCells() {
|
|
8695
8945
|
const cells = Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-cell'));
|
|
8696
|
-
return cells.filter(cell => {
|
|
8697
|
-
if (!cell.day)
|
|
8946
|
+
return cells.filter((cell) => {
|
|
8947
|
+
if (!cell.day) {
|
|
8948
|
+
return false;
|
|
8949
|
+
}
|
|
8698
8950
|
return !cell.isOutOfRange(cell.day, cell.min, cell.max);
|
|
8699
8951
|
});
|
|
8700
8952
|
}
|
|
8701
8953
|
|
|
8954
|
+
/**
|
|
8955
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
8956
|
+
* as a reactive property. Instead, just dispatches the event upward so
|
|
8957
|
+
* the calendar can handle range preview imperatively.
|
|
8958
|
+
* @private
|
|
8959
|
+
* @param {CustomEvent} event - The date-is-hovered event from a cell.
|
|
8960
|
+
* @returns {void}
|
|
8961
|
+
*/
|
|
8962
|
+
handleDateHovered(event) {
|
|
8963
|
+
this.dispatchEvent(new CustomEvent('hovered-date-changed', {
|
|
8964
|
+
detail: { value: event.detail.date },
|
|
8965
|
+
}));
|
|
8966
|
+
}
|
|
8967
|
+
|
|
8702
8968
|
/**
|
|
8703
8969
|
* Handles arrow key navigation within the month grid.
|
|
8704
8970
|
* Dispatches a cross-month navigation event when the boundary is reached.
|
|
@@ -8708,18 +8974,29 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8708
8974
|
*/
|
|
8709
8975
|
handleGridKeyDown(event) {
|
|
8710
8976
|
const { key } = event;
|
|
8711
|
-
const arrowKeys = [
|
|
8977
|
+
const arrowKeys = [
|
|
8978
|
+
'ArrowRight',
|
|
8979
|
+
'ArrowLeft',
|
|
8980
|
+
'ArrowDown',
|
|
8981
|
+
'ArrowUp'
|
|
8982
|
+
];
|
|
8712
8983
|
|
|
8713
|
-
if (!arrowKeys.includes(key))
|
|
8984
|
+
if (!arrowKeys.includes(key)) {
|
|
8985
|
+
return;
|
|
8986
|
+
}
|
|
8714
8987
|
|
|
8715
8988
|
event.preventDefault();
|
|
8716
8989
|
|
|
8717
8990
|
const focusableCells = this.getFocusableCells();
|
|
8718
|
-
if (focusableCells.length === 0)
|
|
8991
|
+
if (focusableCells.length === 0) {
|
|
8992
|
+
return;
|
|
8993
|
+
}
|
|
8719
8994
|
|
|
8720
8995
|
// Find the currently active cell within this month
|
|
8721
|
-
const activeCell = focusableCells.find(cell => cell.active);
|
|
8722
|
-
if (!activeCell)
|
|
8996
|
+
const activeCell = focusableCells.find((cell) => cell.active);
|
|
8997
|
+
if (!activeCell) {
|
|
8998
|
+
return;
|
|
8999
|
+
}
|
|
8723
9000
|
|
|
8724
9001
|
const activeIndex = focusableCells.indexOf(activeCell);
|
|
8725
9002
|
let targetCell = null;
|
|
@@ -8732,7 +9009,9 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8732
9009
|
this.dispatchEvent(new CustomEvent('calendar-month-boundary', {
|
|
8733
9010
|
bubbles: true,
|
|
8734
9011
|
composed: true,
|
|
8735
|
-
detail: { direction: 'next',
|
|
9012
|
+
detail: { direction: 'next',
|
|
9013
|
+
fromDate: activeCell.day.date,
|
|
9014
|
+
key }
|
|
8736
9015
|
}));
|
|
8737
9016
|
return;
|
|
8738
9017
|
}
|
|
@@ -8744,7 +9023,9 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8744
9023
|
this.dispatchEvent(new CustomEvent('calendar-month-boundary', {
|
|
8745
9024
|
bubbles: true,
|
|
8746
9025
|
composed: true,
|
|
8747
|
-
detail: { direction: 'prev',
|
|
9026
|
+
detail: { direction: 'prev',
|
|
9027
|
+
fromDate: activeCell.day.date,
|
|
9028
|
+
key }
|
|
8748
9029
|
}));
|
|
8749
9030
|
return;
|
|
8750
9031
|
}
|
|
@@ -8758,7 +9039,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8758
9039
|
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
8759
9040
|
|
|
8760
9041
|
// Look for the target date in this month's focusable cells
|
|
8761
|
-
targetCell = focusableCells.find(cell => cell.day.date === targetDate);
|
|
9042
|
+
targetCell = focusableCells.find((cell) => cell.day.date === targetDate);
|
|
8762
9043
|
|
|
8763
9044
|
if (!targetCell) {
|
|
8764
9045
|
// Target is in another month or all cells in that direction are disabled
|
|
@@ -8766,7 +9047,9 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8766
9047
|
this.dispatchEvent(new CustomEvent('calendar-month-boundary', {
|
|
8767
9048
|
bubbles: true,
|
|
8768
9049
|
composed: true,
|
|
8769
|
-
detail: { direction,
|
|
9050
|
+
detail: { direction,
|
|
9051
|
+
fromDate: activeCell.day.date,
|
|
9052
|
+
key }
|
|
8770
9053
|
}));
|
|
8771
9054
|
return;
|
|
8772
9055
|
}
|
|
@@ -8797,7 +9080,6 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8797
9080
|
.min="${this.min}"
|
|
8798
9081
|
.max="${this.max}"
|
|
8799
9082
|
.month="${this.month}"
|
|
8800
|
-
.hoveredDate="${this.hoveredDate}"
|
|
8801
9083
|
.dateTo="${this.dateTo}"
|
|
8802
9084
|
.dateFrom="${this.dateFrom}"
|
|
8803
9085
|
.locale="${this.locale}"
|
|
@@ -8822,7 +9104,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8822
9104
|
<div aria-labelledby="${this.getHeadingId()}">
|
|
8823
9105
|
<div class="header">
|
|
8824
9106
|
${this.renderPrevButton()}
|
|
8825
|
-
<div class="headerTitle heading-xs" id="${this.getHeadingId()}" aria-
|
|
9107
|
+
<div class="headerTitle heading-xs" id="${this.getHeadingId()}" aria-hidden="true">
|
|
8826
9108
|
${this.monthFirst ? b$5`
|
|
8827
9109
|
<div>${this.computeCurrentMonthName(this.month)}</div>
|
|
8828
9110
|
<div>${this.renderYear()}</div>
|
|
@@ -8834,9 +9116,9 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8834
9116
|
${this.renderNextButton()}
|
|
8835
9117
|
</div>
|
|
8836
9118
|
|
|
8837
|
-
<div class="table" role="grid" aria-labelledby="${this.getHeadingId()}"
|
|
8838
|
-
<div class="thead"
|
|
8839
|
-
<div class="tr"
|
|
9119
|
+
<div class="table" role="grid" aria-labelledby="${this.getHeadingId()}">
|
|
9120
|
+
<div class="thead" aria-hidden="true">
|
|
9121
|
+
<div class="tr">
|
|
8840
9122
|
${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
|
|
8841
9123
|
</div>
|
|
8842
9124
|
</div>
|
|
@@ -9658,7 +9940,7 @@ class AuroBibtemplate extends i$1 {
|
|
|
9658
9940
|
}
|
|
9659
9941
|
}
|
|
9660
9942
|
|
|
9661
|
-
var formkitVersion$2 = '
|
|
9943
|
+
var formkitVersion$2 = '202606012111';
|
|
9662
9944
|
|
|
9663
9945
|
let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$4 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$3=i$3`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
|
|
9664
9946
|
`,u$6=i$3`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
|
|
@@ -9719,7 +10001,7 @@ let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[
|
|
|
9719
10001
|
|
|
9720
10002
|
var buttonVersion$1 = '12.3.2';
|
|
9721
10003
|
|
|
9722
|
-
/* eslint-disable no-magic-numbers, no-undef-init, max-lines, lit/binding-positions, lit/no-invalid-html */
|
|
10004
|
+
/* 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 */
|
|
9723
10005
|
|
|
9724
10006
|
|
|
9725
10007
|
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
@@ -9763,6 +10045,13 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9763
10045
|
*/
|
|
9764
10046
|
this.activeCellDate = null;
|
|
9765
10047
|
|
|
10048
|
+
/**
|
|
10049
|
+
* Whether the #calendarGrid wrapper currently has focus.
|
|
10050
|
+
* Used to determine whether the visualFocus ring should be shown.
|
|
10051
|
+
* @private
|
|
10052
|
+
*/
|
|
10053
|
+
this._gridHasFocus = false;
|
|
10054
|
+
|
|
9766
10055
|
/**
|
|
9767
10056
|
* @private
|
|
9768
10057
|
*/
|
|
@@ -9796,6 +10085,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9796
10085
|
this.buttonTag = versioning.generateTag('auro-formkit-datepicker-button', buttonVersion$1, T$1);
|
|
9797
10086
|
|
|
9798
10087
|
this.dropdown = undefined;
|
|
10088
|
+
|
|
10089
|
+
/**
|
|
10090
|
+
* Unique instance ID for the live region element.
|
|
10091
|
+
* @private
|
|
10092
|
+
*/
|
|
10093
|
+
this._calendarInstanceId = Date.now().toString(36);
|
|
9799
10094
|
}
|
|
9800
10095
|
|
|
9801
10096
|
static get styles() {
|
|
@@ -9808,6 +10103,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9808
10103
|
|
|
9809
10104
|
static get properties() {
|
|
9810
10105
|
return {
|
|
10106
|
+
|
|
9811
10107
|
/**
|
|
9812
10108
|
* The last month that may be displayed in the calendar.
|
|
9813
10109
|
*/
|
|
@@ -9924,22 +10220,36 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9924
10220
|
/**
|
|
9925
10221
|
* Updates the month and year when the user navigates to the previous calendar month.
|
|
9926
10222
|
* @private
|
|
10223
|
+
* @param {Object} [options] - Optional settings.
|
|
10224
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
10225
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
9927
10226
|
* @returns {void}
|
|
9928
10227
|
*/
|
|
9929
|
-
handlePrevMonth() {
|
|
10228
|
+
handlePrevMonth(options) {
|
|
10229
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
10230
|
+
this.clearRangePreview();
|
|
9930
10231
|
this.utilCal.handleMonthChange(this, 'prev');
|
|
9931
|
-
|
|
10232
|
+
if (!opts.skipActiveUpdate) {
|
|
10233
|
+
this.updateActiveCellForVisibleMonth();
|
|
10234
|
+
}
|
|
9932
10235
|
this.announceMonthChange();
|
|
9933
10236
|
}
|
|
9934
10237
|
|
|
9935
10238
|
/**
|
|
9936
10239
|
* Updates the month and year when the user navigates to the next calendar month.
|
|
9937
10240
|
* @private
|
|
10241
|
+
* @param {Object} [options] - Optional settings.
|
|
10242
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
10243
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
9938
10244
|
* @returns {void}
|
|
9939
10245
|
*/
|
|
9940
|
-
handleNextMonth() {
|
|
10246
|
+
handleNextMonth(options) {
|
|
10247
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
10248
|
+
this.clearRangePreview();
|
|
9941
10249
|
this.utilCal.handleMonthChange(this, 'next');
|
|
9942
|
-
|
|
10250
|
+
if (!opts.skipActiveUpdate) {
|
|
10251
|
+
this.updateActiveCellForVisibleMonth();
|
|
10252
|
+
}
|
|
9943
10253
|
this.announceMonthChange();
|
|
9944
10254
|
}
|
|
9945
10255
|
|
|
@@ -9949,27 +10259,39 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9949
10259
|
* @returns {void}
|
|
9950
10260
|
*/
|
|
9951
10261
|
announceMonthChange() {
|
|
10262
|
+
// Cancel any pending debounced cell announcement so it does not
|
|
10263
|
+
// overwrite this month navigation announcement.
|
|
10264
|
+
if (this._focusAnnounceTimer) {
|
|
10265
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
10266
|
+
this._focusAnnounceTimer = null;
|
|
10267
|
+
}
|
|
10268
|
+
|
|
9952
10269
|
const date = new Date(this.centralDate);
|
|
9953
10270
|
const localeCode = this.locale?.code || undefined;
|
|
9954
|
-
const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long',
|
|
10271
|
+
const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long',
|
|
10272
|
+
year: 'numeric' });
|
|
9955
10273
|
this.announceSelection(formatter.format(date));
|
|
9956
10274
|
}
|
|
9957
10275
|
|
|
9958
10276
|
/**
|
|
9959
|
-
*
|
|
9960
|
-
*
|
|
9961
|
-
*
|
|
10277
|
+
* Updates the active cell after month navigation (prev/next buttons).
|
|
10278
|
+
* Always moves the active cell to the first enabled date in the newly
|
|
10279
|
+
* visible months so that tabbing back to the grid lands on an enabled cell.
|
|
9962
10280
|
* @private
|
|
9963
10281
|
* @returns {void}
|
|
9964
10282
|
*/
|
|
9965
10283
|
updateActiveCellForVisibleMonth() {
|
|
9966
|
-
//
|
|
9967
|
-
//
|
|
9968
|
-
|
|
9969
|
-
|
|
9970
|
-
|
|
9971
|
-
|
|
9972
|
-
|
|
10284
|
+
// Use double-rAF to ensure child month/cell components have fully
|
|
10285
|
+
// rendered and cached their button references before we set tabindex.
|
|
10286
|
+
requestAnimationFrame(() => {
|
|
10287
|
+
requestAnimationFrame(() => {
|
|
10288
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
10289
|
+
|
|
10290
|
+
if (newDate !== null && newDate !== undefined) {
|
|
10291
|
+
this.activeCellDate = newDate;
|
|
10292
|
+
this.setActiveCell(this.activeCellDate);
|
|
10293
|
+
}
|
|
10294
|
+
});
|
|
9973
10295
|
});
|
|
9974
10296
|
}
|
|
9975
10297
|
|
|
@@ -10066,7 +10388,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10066
10388
|
*/
|
|
10067
10389
|
focusCloseButton() {
|
|
10068
10390
|
const bibtemplate = this.shadowRoot.querySelector(this.bibtemplateTag._$litStatic$);
|
|
10069
|
-
if (bibtemplate)
|
|
10391
|
+
if (bibtemplate) {
|
|
10392
|
+
bibtemplate.focusCloseButton();
|
|
10393
|
+
}
|
|
10070
10394
|
}
|
|
10071
10395
|
|
|
10072
10396
|
/**
|
|
@@ -10095,7 +10419,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10095
10419
|
getAllFocusableCells() {
|
|
10096
10420
|
const months = this.getMonthComponents();
|
|
10097
10421
|
let cells = [];
|
|
10098
|
-
months.forEach(month => {
|
|
10422
|
+
months.forEach((month) => {
|
|
10099
10423
|
cells = cells.concat(month.getFocusableCells());
|
|
10100
10424
|
});
|
|
10101
10425
|
return cells;
|
|
@@ -10103,36 +10427,84 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10103
10427
|
|
|
10104
10428
|
/**
|
|
10105
10429
|
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
10430
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
10431
|
+
* Also updates ariaActiveDescendantElement on the grid wrapper so
|
|
10432
|
+
* screen readers announce the active cell without moving DOM focus.
|
|
10106
10433
|
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
10107
10434
|
* @returns {void}
|
|
10108
10435
|
*/
|
|
10109
10436
|
setActiveCell(date) {
|
|
10110
10437
|
const allCells = this.getAllFocusableCells();
|
|
10111
10438
|
|
|
10112
|
-
|
|
10113
|
-
|
|
10439
|
+
let newActiveCell = null;
|
|
10440
|
+
allCells.forEach((cell) => {
|
|
10441
|
+
if (cell.day && cell.day.date === date) {
|
|
10442
|
+
cell.setActive();
|
|
10443
|
+
newActiveCell = cell;
|
|
10444
|
+
} else if (cell.active) {
|
|
10445
|
+
cell.clearActive();
|
|
10446
|
+
}
|
|
10114
10447
|
});
|
|
10115
10448
|
|
|
10116
10449
|
this.activeCellDate = date;
|
|
10450
|
+
|
|
10451
|
+
// Apply activeCell ring only when the grid currently has focus.
|
|
10452
|
+
if (newActiveCell && this._gridHasFocus) {
|
|
10453
|
+
const btn = newActiveCell._cachedButton || newActiveCell.shadowRoot.querySelector('button.day');
|
|
10454
|
+
if (btn) {
|
|
10455
|
+
btn.classList.add('activeCell');
|
|
10456
|
+
}
|
|
10457
|
+
}
|
|
10117
10458
|
}
|
|
10118
10459
|
|
|
10119
10460
|
/**
|
|
10120
|
-
* Focuses the
|
|
10121
|
-
*
|
|
10122
|
-
*
|
|
10461
|
+
* Focuses the calendar grid wrapper and sets the active cell.
|
|
10462
|
+
* DOM focus stays on the grid wrapper; the aria-live region
|
|
10463
|
+
* tells the screen reader which cell is "active".
|
|
10123
10464
|
* @returns {void}
|
|
10124
10465
|
*/
|
|
10125
10466
|
focusActiveCell() {
|
|
10126
|
-
if (this.activeCellDate
|
|
10467
|
+
if (this.activeCellDate !== null && this.activeCellDate !== undefined) {
|
|
10127
10468
|
this.setActiveCell(this.activeCellDate);
|
|
10128
10469
|
}
|
|
10129
10470
|
|
|
10130
|
-
const
|
|
10131
|
-
|
|
10471
|
+
const gridWrapper = this.shadowRoot.querySelector('#calendarGrid');
|
|
10472
|
+
if (gridWrapper) {
|
|
10473
|
+
gridWrapper.focus({ preventScroll: true,
|
|
10474
|
+
focusVisible: true });
|
|
10475
|
+
}
|
|
10476
|
+
}
|
|
10477
|
+
|
|
10478
|
+
/**
|
|
10479
|
+
* Shows the activeCell ring when the grid gains focus.
|
|
10480
|
+
* @private
|
|
10481
|
+
* @returns {void}
|
|
10482
|
+
*/
|
|
10483
|
+
handleGridFocusIn() {
|
|
10484
|
+
this._gridHasFocus = true;
|
|
10485
|
+
const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
|
|
10132
10486
|
if (activeCell) {
|
|
10133
|
-
activeCell.
|
|
10134
|
-
|
|
10135
|
-
|
|
10487
|
+
const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
|
|
10488
|
+
if (btn) {
|
|
10489
|
+
btn.classList.add('activeCell');
|
|
10490
|
+
}
|
|
10491
|
+
}
|
|
10492
|
+
}
|
|
10493
|
+
|
|
10494
|
+
/**
|
|
10495
|
+
* Hides the activeCell ring when the grid loses focus.
|
|
10496
|
+
* @private
|
|
10497
|
+
* @returns {void}
|
|
10498
|
+
*/
|
|
10499
|
+
handleGridFocusOut() {
|
|
10500
|
+
this._gridHasFocus = false;
|
|
10501
|
+
// Remove activeCell from ALL cells to prevent stale rings.
|
|
10502
|
+
const allCells = this.getAllFocusableCells();
|
|
10503
|
+
for (const cell of allCells) {
|
|
10504
|
+
const btn = cell._cachedButton || cell.shadowRoot.querySelector('button.day');
|
|
10505
|
+
if (btn) {
|
|
10506
|
+
btn.classList.remove('activeCell');
|
|
10507
|
+
}
|
|
10136
10508
|
}
|
|
10137
10509
|
}
|
|
10138
10510
|
|
|
@@ -10147,7 +10519,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10147
10519
|
* 5b. First enabled date scanning forward from finite min (unbounded max)
|
|
10148
10520
|
* 5c. First enabled date scanning backward from finite max (unbounded min)
|
|
10149
10521
|
* 6. First in-range date (even if blackout) so focus can land somewhere
|
|
10150
|
-
* 7.
|
|
10522
|
+
* 7. Undefined — no valid target.
|
|
10151
10523
|
*
|
|
10152
10524
|
* @private
|
|
10153
10525
|
* @param {Object} [options] - Optional settings.
|
|
@@ -10162,12 +10534,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10162
10534
|
/**
|
|
10163
10535
|
* Adds days to a timestamp using Date arithmetic to handle DST correctly.
|
|
10164
10536
|
* Returns a local-midnight-aligned timestamp in seconds.
|
|
10537
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
10538
|
+
* @param {Number} days - Number of days to add.
|
|
10539
|
+
* @returns {Number} The adjusted timestamp in seconds.
|
|
10165
10540
|
*/
|
|
10166
10541
|
const addDays = (ts, days) => {
|
|
10167
|
-
const
|
|
10168
|
-
|
|
10169
|
-
|
|
10170
|
-
return Math.floor(
|
|
10542
|
+
const date = new Date(ts * 1000);
|
|
10543
|
+
date.setDate(date.getDate() + days);
|
|
10544
|
+
date.setHours(0, 0, 0, 0);
|
|
10545
|
+
return Math.floor(date.getTime() / 1000);
|
|
10171
10546
|
};
|
|
10172
10547
|
|
|
10173
10548
|
const rawMin = Number(this.min);
|
|
@@ -10178,9 +10553,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10178
10553
|
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
10179
10554
|
|
|
10180
10555
|
// Build a Set of blackout timestamps for O(1) lookup.
|
|
10181
|
-
const blackoutSet = new Set(
|
|
10182
|
-
(this.disabledDays || []).map(d => parseInt(d, 10))
|
|
10183
|
-
);
|
|
10556
|
+
const blackoutSet = new Set((this.disabledDays || []).map((day) => parseInt(day, 10)));
|
|
10184
10557
|
|
|
10185
10558
|
// Also include ISO-format blackoutDates from the datepicker if available.
|
|
10186
10559
|
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
@@ -10189,19 +10562,25 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10189
10562
|
for (const isoStr of isoBlackouts) {
|
|
10190
10563
|
const parts = isoStr.split('-');
|
|
10191
10564
|
const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
|
|
10192
|
-
if (Number.isFinite(ts))
|
|
10565
|
+
if (Number.isFinite(ts)) {
|
|
10566
|
+
blackoutSet.add(ts);
|
|
10567
|
+
}
|
|
10193
10568
|
}
|
|
10194
10569
|
}
|
|
10195
10570
|
|
|
10196
10571
|
/**
|
|
10197
10572
|
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
10198
10573
|
* it is within [min, max] AND not a blackout day.
|
|
10574
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
10575
|
+
* @returns {boolean} True if the date is enabled.
|
|
10199
10576
|
*/
|
|
10200
10577
|
const isEnabled = (ts) => ts >= minTs && ts <= maxTs && !blackoutSet.has(ts);
|
|
10201
10578
|
|
|
10202
10579
|
/**
|
|
10203
10580
|
* A date is "in range" (focusable in the grid) when it is within [min, max].
|
|
10204
10581
|
* Blackout dates are focusable but not selectable.
|
|
10582
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
10583
|
+
* @returns {boolean} True if the date is in range.
|
|
10205
10584
|
*/
|
|
10206
10585
|
const isInRange = (ts) => ts >= minTs && ts <= maxTs;
|
|
10207
10586
|
|
|
@@ -10210,7 +10589,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10210
10589
|
// the newly visible month rather than the (possibly off-screen) selection.
|
|
10211
10590
|
if (!options.skipDateFrom && this.dateFrom) {
|
|
10212
10591
|
const parsedFrom = parseInt(this.dateFrom, 10);
|
|
10213
|
-
if (Number.isFinite(parsedFrom) && isInRange(parsedFrom))
|
|
10592
|
+
if (Number.isFinite(parsedFrom) && isInRange(parsedFrom)) {
|
|
10593
|
+
return parsedFrom;
|
|
10594
|
+
}
|
|
10214
10595
|
}
|
|
10215
10596
|
|
|
10216
10597
|
// 2. Today's date (midnight-aligned) if enabled.
|
|
@@ -10240,23 +10621,33 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10240
10621
|
const endTs = Math.floor(visibleEnd.getTime() / 1000);
|
|
10241
10622
|
const daysInMonth = visibleEnd.getDate();
|
|
10242
10623
|
|
|
10243
|
-
for (let idx = 0; idx < daysInMonth; idx
|
|
10624
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
10244
10625
|
const ts = addDays(startTs, idx);
|
|
10245
|
-
if (ts > endTs)
|
|
10246
|
-
|
|
10626
|
+
if (ts > endTs) {
|
|
10627
|
+
break;
|
|
10628
|
+
}
|
|
10629
|
+
if (isEnabled(ts)) {
|
|
10630
|
+
return ts;
|
|
10631
|
+
}
|
|
10247
10632
|
}
|
|
10248
10633
|
|
|
10249
10634
|
// No enabled date in the visible month — fall back to first in-range
|
|
10250
10635
|
// date in the month so focus still lands on a focusable cell.
|
|
10251
|
-
for (let idx = 0; idx < daysInMonth; idx
|
|
10636
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
10252
10637
|
const ts = addDays(startTs, idx);
|
|
10253
|
-
if (ts > endTs)
|
|
10254
|
-
|
|
10638
|
+
if (ts > endTs) {
|
|
10639
|
+
break;
|
|
10640
|
+
}
|
|
10641
|
+
if (isInRange(ts)) {
|
|
10642
|
+
return ts;
|
|
10643
|
+
}
|
|
10255
10644
|
}
|
|
10256
10645
|
}
|
|
10257
10646
|
}
|
|
10258
10647
|
|
|
10259
|
-
if (isEnabled(now))
|
|
10648
|
+
if (isEnabled(now)) {
|
|
10649
|
+
return now;
|
|
10650
|
+
}
|
|
10260
10651
|
|
|
10261
10652
|
// When a centralDate is configured (or inferred), constrain the scan to the
|
|
10262
10653
|
// rendered month(s) first so a single-month calendar does not pick a date
|
|
@@ -10275,40 +10666,58 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10275
10666
|
const visDays = Math.round((visEndTs - visStartTs) / 86400) + 1;
|
|
10276
10667
|
|
|
10277
10668
|
// Scan visible months for an enabled date.
|
|
10278
|
-
for (let idx = 0; idx < visDays; idx
|
|
10669
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
10279
10670
|
const ts = addDays(visStartTs, idx);
|
|
10280
|
-
if (ts > visEndTs)
|
|
10281
|
-
|
|
10671
|
+
if (ts > visEndTs) {
|
|
10672
|
+
break;
|
|
10673
|
+
}
|
|
10674
|
+
if (isEnabled(ts)) {
|
|
10675
|
+
return ts;
|
|
10676
|
+
}
|
|
10282
10677
|
}
|
|
10283
10678
|
|
|
10284
10679
|
// No enabled date in visible months — try an in-range (focusable) date so
|
|
10285
10680
|
// keyboard focus still has a tabindex="0" target.
|
|
10286
|
-
for (let idx = 0; idx < visDays; idx
|
|
10681
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
10287
10682
|
const ts = addDays(visStartTs, idx);
|
|
10288
|
-
if (ts > visEndTs)
|
|
10289
|
-
|
|
10683
|
+
if (ts > visEndTs) {
|
|
10684
|
+
break;
|
|
10685
|
+
}
|
|
10686
|
+
if (isInRange(ts)) {
|
|
10687
|
+
return ts;
|
|
10688
|
+
}
|
|
10290
10689
|
}
|
|
10291
10690
|
|
|
10292
10691
|
// 3. First future enabled date (scan forward from tomorrow, capped by max and MAX_SCAN_DAYS).
|
|
10293
|
-
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx
|
|
10692
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10294
10693
|
const ts = addDays(now, idx);
|
|
10295
|
-
if (Number.isFinite(maxTs) && ts > maxTs)
|
|
10296
|
-
|
|
10694
|
+
if (Number.isFinite(maxTs) && ts > maxTs) {
|
|
10695
|
+
break;
|
|
10696
|
+
}
|
|
10697
|
+
if (isEnabled(ts)) {
|
|
10698
|
+
return ts;
|
|
10699
|
+
}
|
|
10297
10700
|
}
|
|
10298
10701
|
|
|
10299
10702
|
// 4. First previous enabled date (scan backward from yesterday, capped by min and MAX_SCAN_DAYS).
|
|
10300
|
-
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx
|
|
10703
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10301
10704
|
const ts = addDays(now, -idx);
|
|
10302
|
-
if (Number.isFinite(minTs) && ts < minTs)
|
|
10303
|
-
|
|
10705
|
+
if (Number.isFinite(minTs) && ts < minTs) {
|
|
10706
|
+
break;
|
|
10707
|
+
}
|
|
10708
|
+
if (isEnabled(ts)) {
|
|
10709
|
+
return ts;
|
|
10710
|
+
}
|
|
10304
10711
|
}
|
|
10305
10712
|
|
|
10306
10713
|
// 5. If scans missed (e.g. min/max range is far from today), fall back to
|
|
10307
10714
|
// the first enabled date in the [min, max] range.
|
|
10308
10715
|
if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
10309
10716
|
let ts = minTs;
|
|
10310
|
-
for (let idx = 0; ts <= maxTs; idx
|
|
10311
|
-
if (isEnabled(ts))
|
|
10717
|
+
for (let idx = 0; ts <= maxTs; idx += 1) {
|
|
10718
|
+
if (isEnabled(ts)) {
|
|
10719
|
+
return ts;
|
|
10720
|
+
}
|
|
10312
10721
|
ts = addDays(minTs, idx + 1);
|
|
10313
10722
|
}
|
|
10314
10723
|
}
|
|
@@ -10316,29 +10725,185 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10316
10725
|
// 5b. Finite min with unbounded max (e.g. minDate far in the future):
|
|
10317
10726
|
// scan forward from min for up to MAX_SCAN_DAYS.
|
|
10318
10727
|
if (Number.isFinite(minTs) && !Number.isFinite(maxTs)) {
|
|
10319
|
-
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx
|
|
10728
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10320
10729
|
const ts = addDays(minTs, idx);
|
|
10321
|
-
if (isEnabled(ts))
|
|
10730
|
+
if (isEnabled(ts)) {
|
|
10731
|
+
return ts;
|
|
10732
|
+
}
|
|
10322
10733
|
}
|
|
10323
10734
|
}
|
|
10324
10735
|
|
|
10325
10736
|
// 5c. Unbounded min with a finite max far in the past (e.g. birth-date picker):
|
|
10326
10737
|
// scan backward from max for up to MAX_SCAN_DAYS.
|
|
10327
10738
|
if (!Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
10328
|
-
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx
|
|
10739
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10329
10740
|
const ts = addDays(maxTs, -idx);
|
|
10330
|
-
if (isEnabled(ts))
|
|
10741
|
+
if (isEnabled(ts)) {
|
|
10742
|
+
return ts;
|
|
10743
|
+
}
|
|
10331
10744
|
}
|
|
10332
10745
|
}
|
|
10333
10746
|
|
|
10334
10747
|
// 6. All dates are blackout — fall back to the first in-range date so focus
|
|
10335
10748
|
// still lands on a focusable (but not selectable) cell.
|
|
10336
|
-
if (Number.isFinite(minTs) && isInRange(minTs))
|
|
10337
|
-
|
|
10749
|
+
if (Number.isFinite(minTs) && isInRange(minTs)) {
|
|
10750
|
+
return minTs;
|
|
10751
|
+
}
|
|
10752
|
+
if (isInRange(now)) {
|
|
10753
|
+
return now;
|
|
10754
|
+
}
|
|
10338
10755
|
|
|
10339
10756
|
return undefined;
|
|
10340
10757
|
}
|
|
10341
10758
|
|
|
10759
|
+
/**
|
|
10760
|
+
* Checks if a target date (unix seconds) is within the configured [min, max] range.
|
|
10761
|
+
* Returns false if the date falls outside the range, preventing navigation
|
|
10762
|
+
* to months where all dates are disabled.
|
|
10763
|
+
* @private
|
|
10764
|
+
* @param {Number} targetTs - Unix timestamp in seconds.
|
|
10765
|
+
* @returns {Boolean} True if the date is within range.
|
|
10766
|
+
*/
|
|
10767
|
+
isDateInRange(targetTs) {
|
|
10768
|
+
const rawMin = Number(this.min);
|
|
10769
|
+
const rawMax = Number(this.max);
|
|
10770
|
+
if (Number.isFinite(rawMin) && targetTs < rawMin) {
|
|
10771
|
+
return false;
|
|
10772
|
+
}
|
|
10773
|
+
if (Number.isFinite(rawMax) && targetTs > rawMax) {
|
|
10774
|
+
return false;
|
|
10775
|
+
}
|
|
10776
|
+
return true;
|
|
10777
|
+
}
|
|
10778
|
+
|
|
10779
|
+
/**
|
|
10780
|
+
* Handles arrow key navigation on the calendar grid wrapper.
|
|
10781
|
+
* Focus stays on the grid wrapper; only ariaActiveDescendantElement
|
|
10782
|
+
* and the visual active-cell indicator change.
|
|
10783
|
+
* @private
|
|
10784
|
+
* @param {KeyboardEvent} event - The keyboard event.
|
|
10785
|
+
* @returns {void}
|
|
10786
|
+
*/
|
|
10787
|
+
handleGridKeyDown(event) {
|
|
10788
|
+
const { key } = event;
|
|
10789
|
+
const actionKeys = [
|
|
10790
|
+
'ArrowRight',
|
|
10791
|
+
'ArrowLeft',
|
|
10792
|
+
'ArrowDown',
|
|
10793
|
+
'ArrowUp',
|
|
10794
|
+
'Enter',
|
|
10795
|
+
' '
|
|
10796
|
+
];
|
|
10797
|
+
|
|
10798
|
+
if (!actionKeys.includes(key)) {
|
|
10799
|
+
return;
|
|
10800
|
+
}
|
|
10801
|
+
|
|
10802
|
+
event.preventDefault();
|
|
10803
|
+
|
|
10804
|
+
const allCells = this.getAllFocusableCells();
|
|
10805
|
+
if (allCells.length === 0) {
|
|
10806
|
+
return;
|
|
10807
|
+
}
|
|
10808
|
+
|
|
10809
|
+
const activeCell = allCells.find((cell) => cell.active);
|
|
10810
|
+
if (!activeCell) {
|
|
10811
|
+
return;
|
|
10812
|
+
}
|
|
10813
|
+
|
|
10814
|
+
// Handle Enter/Space to select the active cell
|
|
10815
|
+
if (key === 'Enter' || key === ' ') {
|
|
10816
|
+
activeCell.handleTap();
|
|
10817
|
+
return;
|
|
10818
|
+
}
|
|
10819
|
+
|
|
10820
|
+
const activeIndex = allCells.indexOf(activeCell);
|
|
10821
|
+
|
|
10822
|
+
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
10823
|
+
const direction = key === 'ArrowRight' ? 1 : -1;
|
|
10824
|
+
const targetIndex = activeIndex + direction;
|
|
10825
|
+
|
|
10826
|
+
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
10827
|
+
// Target cell exists in rendered months
|
|
10828
|
+
this.setActiveCell(allCells[targetIndex].day.date);
|
|
10829
|
+
this.scrollToActiveCell();
|
|
10830
|
+
// Dispatch focus event for the cell so live region + range preview update
|
|
10831
|
+
this.handleCellFocused({ detail: { date: allCells[targetIndex].day.date } });
|
|
10832
|
+
} else {
|
|
10833
|
+
// At boundary — need to navigate to next/prev month
|
|
10834
|
+
const navDir = direction === 1 ? 'next' : 'prev';
|
|
10835
|
+
const targetDate = new Date(activeCell.day.date * 1000);
|
|
10836
|
+
targetDate.setDate(targetDate.getDate() + direction);
|
|
10837
|
+
targetDate.setHours(0, 0, 0, 0);
|
|
10838
|
+
const targetTs = Math.floor(targetDate.getTime() / 1000);
|
|
10839
|
+
|
|
10840
|
+
if (this.isDateInRange(targetTs) && ((navDir === 'next' && this.showNextMonthBtn) || (navDir === 'prev' && this.showPrevMonthBtn))) { // eslint-disable-line no-extra-parens
|
|
10841
|
+
|
|
10842
|
+
if (navDir === 'next') {
|
|
10843
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10844
|
+
} else {
|
|
10845
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10846
|
+
}
|
|
10847
|
+
requestAnimationFrame(() => {
|
|
10848
|
+
requestAnimationFrame(() => {
|
|
10849
|
+
const cells = this.getAllFocusableCells();
|
|
10850
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
10851
|
+
if (target) {
|
|
10852
|
+
this.setActiveCell(target.day.date);
|
|
10853
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
10854
|
+
} else if (cells.length > 0) {
|
|
10855
|
+
const fallback = navDir === 'next' ? cells[cells.length - 1] : cells[0];
|
|
10856
|
+
this.setActiveCell(fallback.day.date);
|
|
10857
|
+
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
10858
|
+
}
|
|
10859
|
+
// Re-focus grid wrapper after month change re-render
|
|
10860
|
+
this.focusActiveCell();
|
|
10861
|
+
});
|
|
10862
|
+
});
|
|
10863
|
+
}
|
|
10864
|
+
}
|
|
10865
|
+
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
10866
|
+
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
10867
|
+
const currentDate = new Date(activeCell.day.date * 1000);
|
|
10868
|
+
currentDate.setDate(currentDate.getDate() + increment);
|
|
10869
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
10870
|
+
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
10871
|
+
|
|
10872
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
10873
|
+
|
|
10874
|
+
if (targetCell) {
|
|
10875
|
+
this.setActiveCell(targetCell.day.date);
|
|
10876
|
+
this.scrollToActiveCell();
|
|
10877
|
+
this.handleCellFocused({ detail: { date: targetCell.day.date } });
|
|
10878
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
10879
|
+
// Target might be in an unrendered month
|
|
10880
|
+
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
10881
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
10882
|
+
if (navDirection === 'next') {
|
|
10883
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10884
|
+
} else {
|
|
10885
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10886
|
+
}
|
|
10887
|
+
requestAnimationFrame(() => {
|
|
10888
|
+
requestAnimationFrame(() => {
|
|
10889
|
+
const cells = this.getAllFocusableCells();
|
|
10890
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
10891
|
+
if (target) {
|
|
10892
|
+
this.setActiveCell(target.day.date);
|
|
10893
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
10894
|
+
} else if (cells.length > 0) {
|
|
10895
|
+
const nearest = navDirection === 'next' ? cells[0] : cells[cells.length - 1];
|
|
10896
|
+
this.setActiveCell(nearest.day.date);
|
|
10897
|
+
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
10898
|
+
}
|
|
10899
|
+
this.focusActiveCell();
|
|
10900
|
+
});
|
|
10901
|
+
});
|
|
10902
|
+
}
|
|
10903
|
+
}
|
|
10904
|
+
}
|
|
10905
|
+
}
|
|
10906
|
+
|
|
10342
10907
|
/**
|
|
10343
10908
|
* Handles cross-month boundary navigation events from month components.
|
|
10344
10909
|
* @private
|
|
@@ -10351,15 +10916,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10351
10916
|
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
10352
10917
|
// Linear navigation: find adjacent focusable cell across months
|
|
10353
10918
|
const allCells = this.getAllFocusableCells();
|
|
10354
|
-
const currentIndex = allCells.findIndex(cell => cell.day && cell.day.date === fromDate);
|
|
10919
|
+
const currentIndex = allCells.findIndex((cell) => cell.day && cell.day.date === fromDate);
|
|
10355
10920
|
|
|
10356
|
-
if (currentIndex === -1)
|
|
10921
|
+
if (currentIndex === -1) {
|
|
10922
|
+
return;
|
|
10923
|
+
}
|
|
10357
10924
|
|
|
10358
|
-
let targetIndex;
|
|
10925
|
+
let targetIndex = -1;
|
|
10359
10926
|
if (direction === 'next') {
|
|
10360
10927
|
targetIndex = currentIndex + 1;
|
|
10361
|
-
} else {
|
|
10362
|
-
targetIndex = currentIndex - 1;
|
|
10363
10928
|
}
|
|
10364
10929
|
|
|
10365
10930
|
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
@@ -10377,11 +10942,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10377
10942
|
nextDate.setHours(0, 0, 0, 0);
|
|
10378
10943
|
const nextTs = Math.floor(nextDate.getTime() / 1000);
|
|
10379
10944
|
|
|
10380
|
-
this.
|
|
10945
|
+
if (!this.isDateInRange(nextTs)) {
|
|
10946
|
+
return;
|
|
10947
|
+
}
|
|
10948
|
+
|
|
10949
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10381
10950
|
requestAnimationFrame(() => {
|
|
10382
10951
|
requestAnimationFrame(() => {
|
|
10383
10952
|
const cells = this.getAllFocusableCells();
|
|
10384
|
-
const target = cells.find(cell => cell.day && cell.day.date === nextTs);
|
|
10953
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
10385
10954
|
if (target) {
|
|
10386
10955
|
this.setActiveCell(target.day.date);
|
|
10387
10956
|
this.focusActiveCell();
|
|
@@ -10399,11 +10968,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10399
10968
|
prevDate.setHours(0, 0, 0, 0);
|
|
10400
10969
|
const prevTs = Math.floor(prevDate.getTime() / 1000);
|
|
10401
10970
|
|
|
10402
|
-
this.
|
|
10971
|
+
if (!this.isDateInRange(prevTs)) {
|
|
10972
|
+
return;
|
|
10973
|
+
}
|
|
10974
|
+
|
|
10975
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10403
10976
|
requestAnimationFrame(() => {
|
|
10404
10977
|
requestAnimationFrame(() => {
|
|
10405
10978
|
const cells = this.getAllFocusableCells();
|
|
10406
|
-
const target = cells.find(cell => cell.day && cell.day.date === prevTs);
|
|
10979
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
10407
10980
|
if (target) {
|
|
10408
10981
|
this.setActiveCell(target.day.date);
|
|
10409
10982
|
this.focusActiveCell();
|
|
@@ -10415,61 +10988,245 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10415
10988
|
});
|
|
10416
10989
|
});
|
|
10417
10990
|
}
|
|
10418
|
-
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
10419
|
-
// Vertical navigation: find same day-of-week +/- 7 days
|
|
10420
|
-
// Use Date arithmetic instead of fixed seconds to handle DST correctly
|
|
10421
|
-
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
10422
|
-
const currentDate = new Date(fromDate * 1000);
|
|
10423
|
-
currentDate.setDate(currentDate.getDate() + increment);
|
|
10424
|
-
currentDate.setHours(0, 0, 0, 0);
|
|
10425
|
-
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
10991
|
+
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
10992
|
+
// Vertical navigation: find same day-of-week +/- 7 days
|
|
10993
|
+
// Use Date arithmetic instead of fixed seconds to handle DST correctly
|
|
10994
|
+
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
10995
|
+
const currentDate = new Date(fromDate * 1000);
|
|
10996
|
+
currentDate.setDate(currentDate.getDate() + increment);
|
|
10997
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
10998
|
+
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
10999
|
+
|
|
11000
|
+
const allCells = this.getAllFocusableCells();
|
|
11001
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
11002
|
+
|
|
11003
|
+
if (targetCell) {
|
|
11004
|
+
this.setActiveCell(targetCell.day.date);
|
|
11005
|
+
this.scrollToActiveCell();
|
|
11006
|
+
this.focusActiveCell();
|
|
11007
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
11008
|
+
// Target might be in an unrendered month, navigate there
|
|
11009
|
+
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
11010
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
11011
|
+
if (navDirection === 'next') {
|
|
11012
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
11013
|
+
} else {
|
|
11014
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
11015
|
+
}
|
|
11016
|
+
requestAnimationFrame(() => {
|
|
11017
|
+
requestAnimationFrame(() => {
|
|
11018
|
+
const cells = this.getAllFocusableCells();
|
|
11019
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
11020
|
+
if (target) {
|
|
11021
|
+
this.setActiveCell(target.day.date);
|
|
11022
|
+
this.focusActiveCell();
|
|
11023
|
+
} else if (cells.length > 0) {
|
|
11024
|
+
// Clamp to nearest focusable cell
|
|
11025
|
+
const nearest = navDirection === 'next' ? cells[0] : cells[cells.length - 1];
|
|
11026
|
+
this.setActiveCell(nearest.day.date);
|
|
11027
|
+
this.focusActiveCell();
|
|
11028
|
+
}
|
|
11029
|
+
});
|
|
11030
|
+
});
|
|
11031
|
+
}
|
|
11032
|
+
}
|
|
11033
|
+
}
|
|
11034
|
+
}
|
|
11035
|
+
|
|
11036
|
+
/**
|
|
11037
|
+
* Handles cell activation events from month components.
|
|
11038
|
+
* @private
|
|
11039
|
+
* @param {CustomEvent} event - The activation event with target date.
|
|
11040
|
+
* @returns {void}
|
|
11041
|
+
*/
|
|
11042
|
+
handleCellActivate(event) {
|
|
11043
|
+
const { date } = event.detail;
|
|
11044
|
+
this.setActiveCell(date);
|
|
11045
|
+
|
|
11046
|
+
// Don't call focusActiveCell() here. The tap/click already placed
|
|
11047
|
+
// focus on the cell button, and moving it to #calendarGrid would
|
|
11048
|
+
// trigger focusout on the button, closing any open popover on the
|
|
11049
|
+
// cell. Keyboard events are composed and still bubble through
|
|
11050
|
+
// shadow DOM boundaries to the grid's @keydown handler, so
|
|
11051
|
+
// subsequent keyboard navigation continues to work.
|
|
11052
|
+
}
|
|
11053
|
+
|
|
11054
|
+
/**
|
|
11055
|
+
* Handles focus events from calendar cells.
|
|
11056
|
+
* Updates the live region with an SR announcement and triggers
|
|
11057
|
+
* the imperative range preview if applicable.
|
|
11058
|
+
* @private
|
|
11059
|
+
* @param {CustomEvent} event - The calendar-cell-focused event.
|
|
11060
|
+
* @returns {void}
|
|
11061
|
+
*/
|
|
11062
|
+
handleCellFocused(event) {
|
|
11063
|
+
const { date } = event.detail;
|
|
11064
|
+
if (date === null) {
|
|
11065
|
+
return;
|
|
11066
|
+
}
|
|
11067
|
+
|
|
11068
|
+
// With aria-activedescendant, the button no longer receives native focus,
|
|
11069
|
+
// so we use the debounced live region for the full context announcement.
|
|
11070
|
+
const announcement = this.buildFocusAnnouncement(date);
|
|
11071
|
+
this.announceFocusDebounced(announcement);
|
|
11072
|
+
|
|
11073
|
+
// Update the range preview imperatively if in range-preview mode.
|
|
11074
|
+
this.updateRangePreview(date);
|
|
11075
|
+
}
|
|
11076
|
+
|
|
11077
|
+
/**
|
|
11078
|
+
* Builds a full SR announcement string for a focused cell date.
|
|
11079
|
+
* Includes the localized date, range position, popover content,
|
|
11080
|
+
* and blackout status.
|
|
11081
|
+
* @private
|
|
11082
|
+
* @param {Number} date - Unix timestamp (seconds) of the focused cell.
|
|
11083
|
+
* @returns {String} The announcement string.
|
|
11084
|
+
*/
|
|
11085
|
+
buildFocusAnnouncement(date) {
|
|
11086
|
+
let label = this.formatAnnouncementDate(date);
|
|
11087
|
+
|
|
11088
|
+
// Append date slot content (e.g. prices) if present.
|
|
11089
|
+
const dateObj = new Date(date * 1000);
|
|
11090
|
+
const mm = String(dateObj.getMonth() + 1).padStart(2, '0');
|
|
11091
|
+
const dd = String(dateObj.getDate()).padStart(2, '0');
|
|
11092
|
+
const yyyy = dateObj.getFullYear();
|
|
11093
|
+
const dateStr = `${mm}_${dd}_${yyyy}`;
|
|
11094
|
+
const dateSlotEl = this.datepicker?.querySelector(`[slot="date_${dateStr}"]`);
|
|
11095
|
+
if (dateSlotEl) {
|
|
11096
|
+
const text = dateSlotEl.innerText?.trim();
|
|
11097
|
+
if (text) {
|
|
11098
|
+
label += `, ${text}`;
|
|
11099
|
+
}
|
|
11100
|
+
}
|
|
11101
|
+
|
|
11102
|
+
// Append popover content if present.
|
|
11103
|
+
const popoverEl = this.datepicker?.querySelector(`[slot="popover_${dateStr}"]`);
|
|
11104
|
+
if (popoverEl) {
|
|
11105
|
+
const text = popoverEl.innerText?.trim();
|
|
11106
|
+
if (text) {
|
|
11107
|
+
label += `, ${text}`;
|
|
11108
|
+
}
|
|
11109
|
+
}
|
|
11110
|
+
|
|
11111
|
+
// Append range position context.
|
|
11112
|
+
if (this.datepicker?.hasAttribute('range')) {
|
|
11113
|
+
const rangeLabel = this.getRangePositionLabel(date);
|
|
11114
|
+
if (rangeLabel) {
|
|
11115
|
+
label += `, ${rangeLabel}`;
|
|
11116
|
+
}
|
|
11117
|
+
}
|
|
11118
|
+
|
|
11119
|
+
// Append blackout label.
|
|
11120
|
+
if (this.isDateBlackout(date)) {
|
|
11121
|
+
label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
|
|
11122
|
+
}
|
|
11123
|
+
|
|
11124
|
+
return label;
|
|
11125
|
+
}
|
|
11126
|
+
|
|
11127
|
+
/**
|
|
11128
|
+
* Determines the range position label for a given date.
|
|
11129
|
+
* @private
|
|
11130
|
+
* @param {Number} date - Unix timestamp (seconds).
|
|
11131
|
+
* @returns {String|null} The range position label, or null.
|
|
11132
|
+
*/
|
|
11133
|
+
getRangePositionLabel(date) {
|
|
11134
|
+
const parsedFrom = Number.parseInt(this.dateFrom, 10);
|
|
11135
|
+
if (!Number.isFinite(parsedFrom)) {
|
|
11136
|
+
return null;
|
|
11137
|
+
}
|
|
11138
|
+
|
|
11139
|
+
const departTs = startOfDay(parsedFrom * 1000) / 1000;
|
|
11140
|
+
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
11141
|
+
const hasTo = Number.isFinite(parsedTo);
|
|
11142
|
+
const returnTs = hasTo ? startOfDay(parsedTo * 1000) / 1000 : null;
|
|
11143
|
+
|
|
11144
|
+
if (date === departTs) {
|
|
11145
|
+
return this.datepicker.rangeLabelStart || 'range start';
|
|
11146
|
+
}
|
|
11147
|
+
if (hasTo && date === returnTs) {
|
|
11148
|
+
return this.datepicker.rangeLabelEnd || 'range end';
|
|
11149
|
+
}
|
|
11150
|
+
if (date < departTs) {
|
|
11151
|
+
return this.datepicker.rangeLabelBeforeRange || 'before range';
|
|
11152
|
+
}
|
|
11153
|
+
if (hasTo && date > departTs && date < returnTs) {
|
|
11154
|
+
return this.datepicker.rangeLabelInRange || 'in range';
|
|
11155
|
+
}
|
|
11156
|
+
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
11157
|
+
}
|
|
11158
|
+
|
|
11159
|
+
/**
|
|
11160
|
+
* Checks whether a given date is a blackout date.
|
|
11161
|
+
* @private
|
|
11162
|
+
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
11163
|
+
* @returns {Boolean} True if the date is blacked out.
|
|
11164
|
+
*/
|
|
11165
|
+
isDateBlackout(dateTs) {
|
|
11166
|
+
// Check legacy disabledDays.
|
|
11167
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
11168
|
+
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
11169
|
+
return true;
|
|
11170
|
+
}
|
|
11171
|
+
}
|
|
11172
|
+
|
|
11173
|
+
// Check ISO blackoutDates.
|
|
11174
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
11175
|
+
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
11176
|
+
const date = new Date(dateTs * 1000);
|
|
11177
|
+
const yyyy = date.getFullYear();
|
|
11178
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
11179
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
11180
|
+
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
11181
|
+
return true;
|
|
11182
|
+
}
|
|
11183
|
+
}
|
|
10426
11184
|
|
|
10427
|
-
|
|
10428
|
-
|
|
11185
|
+
return false;
|
|
11186
|
+
}
|
|
10429
11187
|
|
|
10430
|
-
|
|
10431
|
-
|
|
10432
|
-
|
|
10433
|
-
|
|
10434
|
-
|
|
10435
|
-
|
|
10436
|
-
|
|
10437
|
-
|
|
10438
|
-
|
|
10439
|
-
|
|
10440
|
-
} else {
|
|
10441
|
-
this.handlePrevMonth();
|
|
10442
|
-
}
|
|
10443
|
-
requestAnimationFrame(() => {
|
|
10444
|
-
requestAnimationFrame(() => {
|
|
10445
|
-
const cells = this.getAllFocusableCells();
|
|
10446
|
-
const target = cells.find(cell => cell.day && cell.day.date === targetDate);
|
|
10447
|
-
if (target) {
|
|
10448
|
-
this.setActiveCell(target.day.date);
|
|
10449
|
-
this.focusActiveCell();
|
|
10450
|
-
} else if (cells.length > 0) {
|
|
10451
|
-
// Clamp to nearest focusable cell
|
|
10452
|
-
const nearest = navDirection === 'next' ? cells[0] : cells[cells.length - 1];
|
|
10453
|
-
this.setActiveCell(nearest.day.date);
|
|
10454
|
-
this.focusActiveCell();
|
|
10455
|
-
}
|
|
10456
|
-
});
|
|
10457
|
-
});
|
|
10458
|
-
}
|
|
10459
|
-
}
|
|
11188
|
+
/**
|
|
11189
|
+
* Updates the range preview classes imperatively across all cells.
|
|
11190
|
+
* Only active when in range mode with dateFrom set and dateTo not yet set.
|
|
11191
|
+
* @private
|
|
11192
|
+
* @param {Number} hoveredDate - Unix timestamp of the hovered/focused date.
|
|
11193
|
+
* @returns {void}
|
|
11194
|
+
*/
|
|
11195
|
+
updateRangePreview(hoveredDate) {
|
|
11196
|
+
if (this.noRange || !this.dateFrom || this.dateTo) {
|
|
11197
|
+
return;
|
|
10460
11198
|
}
|
|
11199
|
+
|
|
11200
|
+
const parsedDateFrom = parseInt(this.dateFrom, 10);
|
|
11201
|
+
const allCells = this.getAllFocusableCells();
|
|
11202
|
+
|
|
11203
|
+
allCells.forEach((cell) => {
|
|
11204
|
+
cell.updateRangePreviewClasses(hoveredDate, parsedDateFrom);
|
|
11205
|
+
});
|
|
10461
11206
|
}
|
|
10462
11207
|
|
|
10463
11208
|
/**
|
|
10464
|
-
*
|
|
11209
|
+
* Clears range preview classes from all cells.
|
|
10465
11210
|
* @private
|
|
10466
|
-
* @param {CustomEvent} event - The activation event with target date.
|
|
10467
11211
|
* @returns {void}
|
|
10468
11212
|
*/
|
|
10469
|
-
|
|
10470
|
-
const
|
|
10471
|
-
|
|
10472
|
-
|
|
11213
|
+
clearRangePreview() {
|
|
11214
|
+
const allCells = this.getAllFocusableCells();
|
|
11215
|
+
allCells.forEach((cell) => {
|
|
11216
|
+
cell.clearRangePreviewClasses();
|
|
11217
|
+
});
|
|
11218
|
+
}
|
|
11219
|
+
|
|
11220
|
+
/**
|
|
11221
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
11222
|
+
* as a reactive property. Instead, handles the range preview imperatively.
|
|
11223
|
+
* @private
|
|
11224
|
+
* @param {CustomEvent} event - The hovered-date-changed event from a month.
|
|
11225
|
+
* @returns {void}
|
|
11226
|
+
*/
|
|
11227
|
+
hoveredDateChanged(event) {
|
|
11228
|
+
const hoveredDate = event.detail.value;
|
|
11229
|
+
this.updateRangePreview(hoveredDate);
|
|
10473
11230
|
}
|
|
10474
11231
|
|
|
10475
11232
|
/**
|
|
@@ -10478,7 +11235,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10478
11235
|
* @returns {void}
|
|
10479
11236
|
*/
|
|
10480
11237
|
scrollToActiveCell() {
|
|
10481
|
-
if (this.activeCellDate
|
|
11238
|
+
if (this.activeCellDate === null || this.activeCellDate === undefined) {
|
|
11239
|
+
return;
|
|
11240
|
+
}
|
|
10482
11241
|
|
|
10483
11242
|
const date = new Date(this.activeCellDate * 1000);
|
|
10484
11243
|
const month = date.getMonth() + 1;
|
|
@@ -10488,25 +11247,138 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10488
11247
|
|
|
10489
11248
|
if (monthElem) {
|
|
10490
11249
|
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
10491
|
-
monthElem.scrollIntoView({ block: 'nearest',
|
|
11250
|
+
monthElem.scrollIntoView({ block: 'nearest',
|
|
11251
|
+
behavior: prefersReducedMotion ? 'instant' : 'smooth' });
|
|
11252
|
+
}
|
|
11253
|
+
}
|
|
11254
|
+
|
|
11255
|
+
/**
|
|
11256
|
+
* Returns (and lazily creates) an aria-live region inside the dropdown's
|
|
11257
|
+
* <dialog> element. This placement is critical for two reasons:
|
|
11258
|
+
*
|
|
11259
|
+
* 1. Inside the dialog's accessible scope — dialog.showModal() makes
|
|
11260
|
+
* everything outside the top-layer dialog inert, and desktop modal
|
|
11261
|
+
* mode uses _setPageInert() on document.body siblings. A live region
|
|
11262
|
+
* on document.body would be invisible to screen readers in both cases.
|
|
11263
|
+
*
|
|
11264
|
+
* 2. Not nested in shadow DOM — Chrome inconsistently observes aria-live
|
|
11265
|
+
* mutations inside shadow DOM across machines and versions. The dialog
|
|
11266
|
+
* element is only one shadow root deep (the dropdown bib's shadow DOM),
|
|
11267
|
+
* which Chrome handles reliably. The calendar's own shadow DOM (nested
|
|
11268
|
+
* inside the bib via slotting) is two+ levels deep and unreliable.
|
|
11269
|
+
*
|
|
11270
|
+
* @private
|
|
11271
|
+
* @returns {HTMLElement} The live region element.
|
|
11272
|
+
*/
|
|
11273
|
+
getOrCreateLiveRegion() {
|
|
11274
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
11275
|
+
return this._liveRegion;
|
|
11276
|
+
}
|
|
11277
|
+
|
|
11278
|
+
// Access the dialog element inside the dropdown bib's shadow DOM.
|
|
11279
|
+
const dialog = this.dropdown?.bibContent?.shadowRoot?.querySelector('dialog');
|
|
11280
|
+
if (!dialog) {
|
|
11281
|
+
return null;
|
|
11282
|
+
}
|
|
11283
|
+
|
|
11284
|
+
// Check if we already created one for this calendar instance.
|
|
11285
|
+
const regionId = `auro-calendar-live-${this._calendarInstanceId}`;
|
|
11286
|
+
const existing = dialog.querySelector(`#${regionId}`);
|
|
11287
|
+
if (existing) {
|
|
11288
|
+
this._liveRegion = existing;
|
|
11289
|
+
return existing;
|
|
11290
|
+
}
|
|
11291
|
+
|
|
11292
|
+
const el = document.createElement('div');
|
|
11293
|
+
el.id = regionId;
|
|
11294
|
+
el.setAttribute('aria-live', 'assertive');
|
|
11295
|
+
el.setAttribute('aria-atomic', 'true');
|
|
11296
|
+
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;';
|
|
11297
|
+
dialog.appendChild(el);
|
|
11298
|
+
|
|
11299
|
+
this._liveRegion = el;
|
|
11300
|
+
return el;
|
|
11301
|
+
}
|
|
11302
|
+
|
|
11303
|
+
/**
|
|
11304
|
+
* Removes the live region when this calendar is disconnected.
|
|
11305
|
+
* @private
|
|
11306
|
+
* @returns {void}
|
|
11307
|
+
*/
|
|
11308
|
+
disconnectedCallback() {
|
|
11309
|
+
super.disconnectedCallback();
|
|
11310
|
+
|
|
11311
|
+
// Cancel any pending announcements so they don't fire after teardown.
|
|
11312
|
+
if (this._announceRafId) {
|
|
11313
|
+
cancelAnimationFrame(this._announceRafId);
|
|
11314
|
+
this._announceRafId = null;
|
|
11315
|
+
}
|
|
11316
|
+
if (this._focusAnnounceTimer) {
|
|
11317
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
11318
|
+
this._focusAnnounceTimer = null;
|
|
10492
11319
|
}
|
|
11320
|
+
|
|
11321
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
11322
|
+
this._liveRegion.remove();
|
|
11323
|
+
}
|
|
11324
|
+
this._liveRegion = null;
|
|
10493
11325
|
}
|
|
10494
11326
|
|
|
10495
11327
|
/**
|
|
10496
|
-
* Announces a date selection via the live region.
|
|
11328
|
+
* Announces a date selection or focus change via the live region.
|
|
11329
|
+
* Uses requestAnimationFrame to ensure the clear and set happen in
|
|
11330
|
+
* separate rendering frames — Chrome may coalesce synchronous or
|
|
11331
|
+
* microtask-deferred mutations into a single accessibility tree update.
|
|
10497
11332
|
* @private
|
|
10498
11333
|
* @param {String} dateStr - The localized date string to announce.
|
|
10499
11334
|
* @returns {void}
|
|
10500
11335
|
*/
|
|
10501
11336
|
announceSelection(dateStr) {
|
|
10502
|
-
|
|
10503
|
-
|
|
10504
|
-
|
|
10505
|
-
|
|
10506
|
-
|
|
11337
|
+
// Cancel any previously queued rAF announcement so a rapid
|
|
11338
|
+
// sequence of calls (e.g. bib open → month nav) only announces
|
|
11339
|
+
// the last one.
|
|
11340
|
+
if (this._announceRafId) {
|
|
11341
|
+
cancelAnimationFrame(this._announceRafId);
|
|
11342
|
+
}
|
|
11343
|
+
const liveRegion = this.getOrCreateLiveRegion();
|
|
11344
|
+
if (!liveRegion) {
|
|
11345
|
+
return;
|
|
11346
|
+
}
|
|
11347
|
+
|
|
11348
|
+
// Double-rAF: clear in frame N, set in frame N+1. Chrome batches
|
|
11349
|
+
// accessibility tree mutations within a single animation frame, so
|
|
11350
|
+
// a same-frame clear+set can be coalesced into a no-op if the new
|
|
11351
|
+
// value matches a recently announced string. Splitting across two
|
|
11352
|
+
// frames guarantees Chrome sees two distinct tree states and fires
|
|
11353
|
+
// a new accessibility event for the content change.
|
|
11354
|
+
liveRegion.textContent = '';
|
|
11355
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
11356
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
10507
11357
|
liveRegion.textContent = dateStr;
|
|
11358
|
+
this._announceRafId = null;
|
|
10508
11359
|
});
|
|
11360
|
+
});
|
|
11361
|
+
}
|
|
11362
|
+
|
|
11363
|
+
/**
|
|
11364
|
+
* Debounced version of announceSelection for focus navigation.
|
|
11365
|
+
* Uses the assertive live region with a 150ms debounce so only the
|
|
11366
|
+
* final cell after rapid arrow-key traversal is announced. We
|
|
11367
|
+
* originally tried aria-live="polite" here, but VoiceOver treats
|
|
11368
|
+
* polite as "wait until idle" — which never happens during active
|
|
11369
|
+
* keyboard navigation — so the announcements were silently dropped.
|
|
11370
|
+
* @private
|
|
11371
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
11372
|
+
* @returns {void}
|
|
11373
|
+
*/
|
|
11374
|
+
announceFocusDebounced(dateStr) {
|
|
11375
|
+
if (this._focusAnnounceTimer) {
|
|
11376
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
10509
11377
|
}
|
|
11378
|
+
this._focusAnnounceTimer = setTimeout(() => {
|
|
11379
|
+
this.announceSelection(dateStr);
|
|
11380
|
+
this._focusAnnounceTimer = null;
|
|
11381
|
+
}, 150);
|
|
10510
11382
|
}
|
|
10511
11383
|
|
|
10512
11384
|
/**
|
|
@@ -10519,12 +11391,16 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10519
11391
|
const date = new Date(parseInt(timestamp, 10) * 1000);
|
|
10520
11392
|
const localeCode = this.locale?.code || undefined;
|
|
10521
11393
|
const formatter = new Intl.DateTimeFormat(localeCode, {
|
|
10522
|
-
weekday: 'long',
|
|
11394
|
+
weekday: 'long',
|
|
11395
|
+
year: 'numeric',
|
|
11396
|
+
month: 'long',
|
|
11397
|
+
day: 'numeric'
|
|
10523
11398
|
});
|
|
10524
11399
|
return formatter.format(date);
|
|
10525
11400
|
}
|
|
10526
11401
|
|
|
10527
11402
|
firstUpdated() {
|
|
11403
|
+
|
|
10528
11404
|
this.addEventListener('date-from-changed', () => {
|
|
10529
11405
|
this.dispatchEvent(new CustomEvent('auroCalendar-dateSelected', {
|
|
10530
11406
|
bubbles: true,
|
|
@@ -10553,6 +11429,11 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10553
11429
|
this.addEventListener('calendar-cell-activate', (event) => {
|
|
10554
11430
|
this.handleCellActivate(event);
|
|
10555
11431
|
});
|
|
11432
|
+
|
|
11433
|
+
// Listen for cell focus events (SR announcements + range preview)
|
|
11434
|
+
this.addEventListener('calendar-cell-focused', (event) => {
|
|
11435
|
+
this.handleCellFocused(event);
|
|
11436
|
+
});
|
|
10556
11437
|
}
|
|
10557
11438
|
|
|
10558
11439
|
injectSlot(slotName, nodes) {
|
|
@@ -10579,7 +11460,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10579
11460
|
if (changedProperties.has('visible')) {
|
|
10580
11461
|
if (this.visible) {
|
|
10581
11462
|
// Compute the active date eagerly from data — no DOM needed.
|
|
10582
|
-
if (this.activeCellDate
|
|
11463
|
+
if (this.activeCellDate === null || this.activeCellDate === undefined) {
|
|
10583
11464
|
this.activeCellDate = this.computeActiveDate();
|
|
10584
11465
|
}
|
|
10585
11466
|
|
|
@@ -10647,7 +11528,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10647
11528
|
</button>
|
|
10648
11529
|
` : undefined}
|
|
10649
11530
|
</div>
|
|
10650
|
-
<div class="calendars">
|
|
11531
|
+
<div id="calendarGrid" class="calendars" role="group" tabindex="0" @keydown="${this.handleGridKeyDown}" @focusin="${this.handleGridFocusIn}" @focusout="${this.handleGridFocusOut}">
|
|
10651
11532
|
${this.renderAllCalendars()}
|
|
10652
11533
|
</div>
|
|
10653
11534
|
</div>
|
|
@@ -14556,7 +15437,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
|
|
|
14556
15437
|
}
|
|
14557
15438
|
};
|
|
14558
15439
|
|
|
14559
|
-
var formkitVersion$1 = '
|
|
15440
|
+
var formkitVersion$1 = '202606012111';
|
|
14560
15441
|
|
|
14561
15442
|
let AuroElement$2 = class AuroElement extends i$1 {
|
|
14562
15443
|
static get properties() {
|
|
@@ -19899,109 +20780,236 @@ class AuroInputUtilities {
|
|
|
19899
20780
|
}
|
|
19900
20781
|
}
|
|
19901
20782
|
|
|
19902
|
-
|
|
20783
|
+
/**
|
|
20784
|
+
* @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.
|
|
20785
|
+
* @param {string} dateStr - Date string to parse.
|
|
20786
|
+
* @param {string} format - Date format to parse.
|
|
20787
|
+
* @returns {{ month?: string, day?: string, year?: string }|undefined}
|
|
20788
|
+
*/
|
|
20789
|
+
function getDateParts(dateStr, format) {
|
|
20790
|
+
if (!dateStr) {
|
|
20791
|
+
return undefined;
|
|
20792
|
+
}
|
|
19903
20793
|
|
|
19904
|
-
|
|
20794
|
+
const formatSeparatorMatch = format.match(/[/.-]/);
|
|
20795
|
+
let valueParts;
|
|
20796
|
+
let formatParts;
|
|
19905
20797
|
|
|
19906
|
-
|
|
19907
|
-
|
|
19908
|
-
|
|
19909
|
-
|
|
19910
|
-
|
|
19911
|
-
|
|
19912
|
-
|
|
20798
|
+
if (formatSeparatorMatch) {
|
|
20799
|
+
const separator = formatSeparatorMatch[0];
|
|
20800
|
+
valueParts = dateStr.split(separator);
|
|
20801
|
+
formatParts = format.split(separator);
|
|
20802
|
+
} else {
|
|
20803
|
+
if (dateStr.match(/[/.-]/)) {
|
|
20804
|
+
throw new Error(
|
|
20805
|
+
"AuroDatepickerUtilities | parseDate: Date string has no separators",
|
|
20806
|
+
);
|
|
20807
|
+
}
|
|
19913
20808
|
|
|
19914
|
-
|
|
19915
|
-
|
|
19916
|
-
|
|
19917
|
-
|
|
20809
|
+
if (dateStr.length !== format.length) {
|
|
20810
|
+
throw new Error(
|
|
20811
|
+
"AuroDatepickerUtilities | parseDate: Date string and format length do not match",
|
|
20812
|
+
);
|
|
20813
|
+
}
|
|
20814
|
+
|
|
20815
|
+
valueParts = [dateStr];
|
|
20816
|
+
formatParts = [format];
|
|
20817
|
+
}
|
|
20818
|
+
|
|
20819
|
+
if (valueParts.length !== formatParts.length) {
|
|
20820
|
+
throw new Error(
|
|
20821
|
+
`AuroDatepickerUtilities | parseDate: Date string and format do not match : ${dateStr} vs ${format}`,
|
|
20822
|
+
);
|
|
20823
|
+
}
|
|
19918
20824
|
|
|
19919
|
-
|
|
19920
|
-
|
|
20825
|
+
const result = formatParts.reduce((acc, part, index) => {
|
|
20826
|
+
const value = valueParts[index];
|
|
19921
20827
|
|
|
19922
|
-
|
|
19923
|
-
|
|
19924
|
-
|
|
20828
|
+
if (/m/iu.test(part) && part.length === value.length) {
|
|
20829
|
+
acc.month = value;
|
|
20830
|
+
} else if (/d/iu.test(part) && part.length === value.length) {
|
|
20831
|
+
acc.day = value;
|
|
20832
|
+
} else if (/y/iu.test(part) && part.length === value.length) {
|
|
20833
|
+
acc.year = value;
|
|
20834
|
+
}
|
|
19925
20835
|
|
|
19926
|
-
|
|
19927
|
-
|
|
19928
|
-
throw new Error('AuroDatepickerUtilities | parseDate: Date string and format length do not match');
|
|
19929
|
-
}
|
|
20836
|
+
return acc;
|
|
20837
|
+
}, {});
|
|
19930
20838
|
|
|
19931
|
-
|
|
19932
|
-
|
|
19933
|
-
|
|
20839
|
+
if (!result.month && !result.day && !result.year) {
|
|
20840
|
+
throw new Error(
|
|
20841
|
+
"AuroDatepickerUtilities | parseDate: Unable to parse date string",
|
|
20842
|
+
);
|
|
20843
|
+
}
|
|
19934
20844
|
|
|
19935
|
-
|
|
19936
|
-
|
|
19937
|
-
} else if ((/d/iu).test(part)) {
|
|
19938
|
-
acc.day = value;
|
|
19939
|
-
} else if ((/y/iu).test(part)) {
|
|
19940
|
-
acc.year = value;
|
|
19941
|
-
}
|
|
20845
|
+
return result;
|
|
20846
|
+
}
|
|
19942
20847
|
|
|
19943
|
-
|
|
19944
|
-
|
|
20848
|
+
function isCalendarDate(year, month, day) {
|
|
20849
|
+
let yearNumber = Number(year);
|
|
20850
|
+
const monthNumber = Number(month);
|
|
20851
|
+
const dayNumber = Number(day);
|
|
19945
20852
|
|
|
19946
|
-
|
|
19947
|
-
|
|
19948
|
-
|
|
19949
|
-
|
|
20853
|
+
if (
|
|
20854
|
+
!Number.isInteger(yearNumber) ||
|
|
20855
|
+
!Number.isInteger(monthNumber) ||
|
|
20856
|
+
!Number.isInteger(dayNumber)
|
|
20857
|
+
) {
|
|
20858
|
+
return false;
|
|
20859
|
+
}
|
|
19950
20860
|
|
|
19951
|
-
|
|
19952
|
-
|
|
19953
|
-
|
|
20861
|
+
// 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.
|
|
20862
|
+
if (yearNumber < 100 && yearNumber >= 50) {
|
|
20863
|
+
yearNumber += 1900;
|
|
20864
|
+
} else if (yearNumber < 50) {
|
|
20865
|
+
yearNumber += 2000;
|
|
20866
|
+
}
|
|
19954
20867
|
|
|
19955
|
-
|
|
19956
|
-
|
|
19957
|
-
* @param {Object} date - Date to convert to string.
|
|
19958
|
-
* @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
|
|
19959
|
-
* @returns {String} Returns the date as a string.
|
|
19960
|
-
*/
|
|
19961
|
-
this.getDateAsString = (date, locale = undefined) => date.toLocaleDateString(locale, {
|
|
19962
|
-
year: "numeric",
|
|
19963
|
-
month: "2-digit",
|
|
19964
|
-
day: "2-digit",
|
|
19965
|
-
});
|
|
20868
|
+
const stringified = `${String(yearNumber).padStart(4, "0")}-${String(monthNumber).padStart(2, "0")}-${String(dayNumber).padStart(2, "0")}`;
|
|
20869
|
+
const date = new Date(stringified.replace(/[.-]/g, "/"));
|
|
19966
20870
|
|
|
19967
|
-
|
|
19968
|
-
|
|
19969
|
-
|
|
19970
|
-
|
|
19971
|
-
* @returns {Boolean}
|
|
19972
|
-
*/
|
|
19973
|
-
this.toNorthAmericanFormat = (dateStr, format) => {
|
|
20871
|
+
return (
|
|
20872
|
+
!Number.isNaN(date.getTime()) && toISOFormatString(date) === stringified
|
|
20873
|
+
);
|
|
20874
|
+
}
|
|
19974
20875
|
|
|
19975
|
-
|
|
19976
|
-
|
|
19977
|
-
|
|
20876
|
+
/**
|
|
20877
|
+
* @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).
|
|
20878
|
+
*
|
|
20879
|
+
* Partial formats are supported: components absent from `format` default to `year → "0"`,
|
|
20880
|
+
* `month → "01"`, `day → "01"` for calendar validation only. The returned object contains
|
|
20881
|
+
* only the fields actually present in the format string — missing fields are never injected.
|
|
20882
|
+
* @param {string} dateStr - Date string to parse.
|
|
20883
|
+
* @param {string} format - Date format to parse.
|
|
20884
|
+
* @returns {{ month?: string, day?: string, year?: string }|undefined}
|
|
20885
|
+
* @throws {Error} Throws when the parsed result does not represent a valid calendar date.
|
|
20886
|
+
*/
|
|
20887
|
+
function parseDate(dateStr, format = "mm/dd/yyyy") {
|
|
20888
|
+
if (!dateStr || !format) {
|
|
20889
|
+
return undefined;
|
|
20890
|
+
}
|
|
20891
|
+
const result = getDateParts(dateStr.trim(), format);
|
|
19978
20892
|
|
|
19979
|
-
|
|
20893
|
+
if (!result) {
|
|
20894
|
+
return undefined;
|
|
20895
|
+
}
|
|
19980
20896
|
|
|
19981
|
-
|
|
19982
|
-
|
|
19983
|
-
|
|
20897
|
+
const lowerFormat = format.toLowerCase();
|
|
20898
|
+
const year = lowerFormat.includes("yy") ? result.year : "0";
|
|
20899
|
+
const month = lowerFormat.includes("mm") ? result.month : "01";
|
|
20900
|
+
const day = lowerFormat.includes("dd") ? result.day : "01";
|
|
19984
20901
|
|
|
19985
|
-
|
|
20902
|
+
if (isCalendarDate(year, month, day)) {
|
|
20903
|
+
return result;
|
|
20904
|
+
}
|
|
19986
20905
|
|
|
19987
|
-
|
|
19988
|
-
|
|
19989
|
-
|
|
19990
|
-
|
|
20906
|
+
throw new Error(
|
|
20907
|
+
`AuroDatepickerUtilities | parseDate: Date string is not a valid date ${JSON.stringify(result)} with format ${format}`,
|
|
20908
|
+
);
|
|
20909
|
+
}
|
|
19991
20910
|
|
|
19992
|
-
|
|
19993
|
-
|
|
19994
|
-
|
|
20911
|
+
/**
|
|
20912
|
+
* Convert a date object to string format.
|
|
20913
|
+
* @param {Object} date - Date to convert to string.
|
|
20914
|
+
* @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
|
|
20915
|
+
* @returns {String} Returns the date as a string.
|
|
20916
|
+
*/
|
|
20917
|
+
function getDateAsString(date, locale = undefined) {
|
|
20918
|
+
return date.toLocaleDateString(locale, {
|
|
20919
|
+
year: "numeric",
|
|
20920
|
+
month: "2-digit",
|
|
20921
|
+
day: "2-digit",
|
|
20922
|
+
});
|
|
20923
|
+
}
|
|
19995
20924
|
|
|
19996
|
-
|
|
19997
|
-
|
|
19998
|
-
|
|
20925
|
+
/**
|
|
20926
|
+
* Converts a date string to a North American date format.
|
|
20927
|
+
* @param {String} dateStr - Date to validate.
|
|
20928
|
+
* @param {String} format - Date format to validate against.
|
|
20929
|
+
* @returns {String}
|
|
20930
|
+
*/
|
|
20931
|
+
function toNorthAmericanFormat$1(dateStr, format) {
|
|
20932
|
+
if (format === "mm/dd/yyyy") {
|
|
20933
|
+
return dateStr;
|
|
20934
|
+
}
|
|
19999
20935
|
|
|
20000
|
-
|
|
20001
|
-
|
|
20936
|
+
const parsedDate = parseDate(dateStr, format);
|
|
20937
|
+
|
|
20938
|
+
if (!parsedDate) {
|
|
20939
|
+
throw new Error(
|
|
20940
|
+
"AuroDatepickerUtilities | toNorthAmericanFormat: Unable to parse date string",
|
|
20941
|
+
);
|
|
20942
|
+
}
|
|
20943
|
+
|
|
20944
|
+
const { month, day, year } = parsedDate;
|
|
20945
|
+
|
|
20946
|
+
return [month, day, year].filter(Boolean).join("/");
|
|
20947
|
+
}
|
|
20948
|
+
|
|
20949
|
+
/**
|
|
20950
|
+
* Validates that a date string matches the provided format and represents a real calendar date.
|
|
20951
|
+
*
|
|
20952
|
+
* @param {string} dateStr - Date string to validate.
|
|
20953
|
+
* @param {string} [format="yyyy-mm-dd"] - Format of the date string.
|
|
20954
|
+
* @returns {boolean} True when the date string is valid for the provided format, otherwise false.
|
|
20955
|
+
*/
|
|
20956
|
+
function isValidDate(dateStr, format = "yyyy-mm-dd") {
|
|
20957
|
+
try {
|
|
20958
|
+
if (typeof dateStr !== "string" || !dateStr || format?.length < 8) {
|
|
20959
|
+
return false;
|
|
20960
|
+
}
|
|
20961
|
+
|
|
20962
|
+
if (parseDate(dateStr, format)) {
|
|
20963
|
+
return true;
|
|
20964
|
+
}
|
|
20965
|
+
} catch (error) {
|
|
20966
|
+
return false;
|
|
20967
|
+
}
|
|
20968
|
+
return false;
|
|
20969
|
+
}
|
|
20970
|
+
|
|
20971
|
+
/**
|
|
20972
|
+
* 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.
|
|
20973
|
+
*
|
|
20974
|
+
* @param {Date} date - Date instance to convert to an ISO-like string.
|
|
20975
|
+
* @returns {string} A string in the format "yyyy-mm-dd" representing the provided date.
|
|
20976
|
+
* @throws {Error} Throws an error when the input is not a valid Date instance.
|
|
20977
|
+
*/
|
|
20978
|
+
function toISOFormatString(date) {
|
|
20979
|
+
if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
|
|
20980
|
+
throw new Error(
|
|
20981
|
+
"AuroDatepickerUtilities | toISOFormatString: Input must be a valid Date instance",
|
|
20982
|
+
);
|
|
20983
|
+
}
|
|
20984
|
+
return `${String(date.getFullYear()).padStart(4, "0")}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
|
|
20985
|
+
}
|
|
20986
|
+
|
|
20987
|
+
/**
|
|
20988
|
+
* 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.
|
|
20989
|
+
*
|
|
20990
|
+
* @param {String} dateStr - Date string to convert into a Date object.
|
|
20991
|
+
* @param {String} format - Date format used to parse the string when it is not in ISO format.
|
|
20992
|
+
* @returns {Date|null} Returns a Date instance for valid input or null for non-string input.
|
|
20993
|
+
* @throws {Error} Throws when parsing fails for non-ISO string input.
|
|
20994
|
+
*/
|
|
20995
|
+
function stringToDateInstance(dateStr, format = "yyyy-mm-dd") {
|
|
20996
|
+
if (typeof dateStr !== "string") {
|
|
20997
|
+
return null;
|
|
20002
20998
|
}
|
|
20999
|
+
|
|
21000
|
+
const { month, day, year } = parseDate(dateStr, format);
|
|
21001
|
+
return new Date(`${year}/${month}/${day}`);
|
|
20003
21002
|
}
|
|
20004
|
-
|
|
21003
|
+
|
|
21004
|
+
const dateFormatter = {
|
|
21005
|
+
parseDate,
|
|
21006
|
+
getDateParts,
|
|
21007
|
+
getDateAsString,
|
|
21008
|
+
toNorthAmericanFormat: toNorthAmericanFormat$1,
|
|
21009
|
+
isValidDate,
|
|
21010
|
+
toISOFormatString,
|
|
21011
|
+
stringToDateInstance,
|
|
21012
|
+
};
|
|
20005
21013
|
|
|
20006
21014
|
// filepath: dateConstraints.mjs
|
|
20007
21015
|
const DATE_UTIL_CONSTRAINTS = {
|
|
@@ -20073,12 +21081,11 @@ class AuroDateUtilitiesBase {
|
|
|
20073
21081
|
/* eslint-disable no-magic-numbers */
|
|
20074
21082
|
|
|
20075
21083
|
class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
20076
|
-
|
|
20077
21084
|
/**
|
|
20078
21085
|
* Returns the current century.
|
|
20079
21086
|
* @returns {String} The current century.
|
|
20080
21087
|
*/
|
|
20081
|
-
getCentury
|
|
21088
|
+
getCentury() {
|
|
20082
21089
|
return String(new Date().getFullYear()).slice(0, 2);
|
|
20083
21090
|
}
|
|
20084
21091
|
|
|
@@ -20087,14 +21094,12 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20087
21094
|
* @param {String} year - The year to convert to four digits.
|
|
20088
21095
|
* @returns {String} The four digit year.
|
|
20089
21096
|
*/
|
|
20090
|
-
getFourDigitYear
|
|
20091
|
-
|
|
21097
|
+
getFourDigitYear(year) {
|
|
20092
21098
|
const strYear = String(year).trim();
|
|
20093
21099
|
return strYear.length <= 2 ? this.getCentury() + strYear : strYear;
|
|
20094
21100
|
}
|
|
20095
21101
|
|
|
20096
21102
|
constructor() {
|
|
20097
|
-
|
|
20098
21103
|
super();
|
|
20099
21104
|
|
|
20100
21105
|
/**
|
|
@@ -20103,7 +21108,8 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20103
21108
|
* @param {Object} date2 - Second date to compare.
|
|
20104
21109
|
* @returns {Boolean} Returns true if the dates match.
|
|
20105
21110
|
*/
|
|
20106
|
-
this.datesMatch = (date1, date2) =>
|
|
21111
|
+
this.datesMatch = (date1, date2) =>
|
|
21112
|
+
new Date(date1).getTime() === new Date(date2).getTime();
|
|
20107
21113
|
|
|
20108
21114
|
/**
|
|
20109
21115
|
* Returns true if value passed in is a valid date.
|
|
@@ -20112,53 +21118,41 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20112
21118
|
* @returns {Boolean}
|
|
20113
21119
|
*/
|
|
20114
21120
|
this.validDateStr = (date, format) => {
|
|
20115
|
-
|
|
20116
21121
|
// The length we expect the date string to be
|
|
20117
|
-
const dateStrLength = format
|
|
21122
|
+
const dateStrLength = format?.length || 0;
|
|
20118
21123
|
|
|
20119
21124
|
// Guard Clause: Date and format are defined
|
|
20120
21125
|
if (typeof date === "undefined" || typeof format === "undefined") {
|
|
20121
|
-
throw new Error(
|
|
21126
|
+
throw new Error(
|
|
21127
|
+
"AuroDatepickerUtilities | validateDateStr: Date and format are required",
|
|
21128
|
+
);
|
|
20122
21129
|
}
|
|
20123
21130
|
|
|
20124
21131
|
// Guard Clause: Date should be of type string
|
|
20125
21132
|
if (typeof date !== "string") {
|
|
20126
|
-
throw new Error(
|
|
21133
|
+
throw new Error(
|
|
21134
|
+
"AuroDatepickerUtilities | validateDateStr: Date must be a string",
|
|
21135
|
+
);
|
|
20127
21136
|
}
|
|
20128
21137
|
|
|
20129
21138
|
// Guard Clause: Format should be of type string
|
|
20130
21139
|
if (typeof format !== "string") {
|
|
20131
|
-
throw new Error(
|
|
21140
|
+
throw new Error(
|
|
21141
|
+
"AuroDatepickerUtilities | validateDateStr: Format must be a string",
|
|
21142
|
+
);
|
|
20132
21143
|
}
|
|
20133
21144
|
|
|
20134
21145
|
// Guard Clause: Length is what we expect it to be
|
|
20135
21146
|
if (date.length !== dateStrLength) {
|
|
20136
21147
|
return false;
|
|
20137
21148
|
}
|
|
20138
|
-
// Get a formatted date string and parse it
|
|
20139
|
-
const dateParts = dateFormatter.parseDate(date, format);
|
|
20140
|
-
|
|
20141
|
-
// Guard Clause: Date parse succeeded
|
|
20142
|
-
if (!dateParts) {
|
|
20143
|
-
return false;
|
|
20144
|
-
}
|
|
20145
|
-
|
|
20146
|
-
// Create the expected date string based on the date parts
|
|
20147
|
-
const expectedDateStr = `${dateParts.month}/${dateParts.day || "01"}/${this.getFourDigitYear(dateParts.year)}`;
|
|
20148
|
-
|
|
20149
|
-
// Generate a date object that we will extract a string date from to compare to the passed in date string
|
|
20150
|
-
const dateObj = new Date(this.getFourDigitYear(dateParts.year), dateParts.month - 1, dateParts.day || 1);
|
|
20151
21149
|
|
|
20152
|
-
// Get
|
|
20153
|
-
|
|
20154
|
-
|
|
20155
|
-
|
|
20156
|
-
if (expectedDateStr !== actualDateStr) {
|
|
21150
|
+
// Get a formatted date string and parse and validate it
|
|
21151
|
+
try {
|
|
21152
|
+
return Boolean(dateFormatter.parseDate(date, format));
|
|
21153
|
+
} catch (error) {
|
|
20157
21154
|
return false;
|
|
20158
21155
|
}
|
|
20159
|
-
|
|
20160
|
-
// If we passed all other checks, we can assume the date is valid
|
|
20161
|
-
return true;
|
|
20162
21156
|
};
|
|
20163
21157
|
|
|
20164
21158
|
/**
|
|
@@ -20168,10 +21162,11 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20168
21162
|
* @returns {boolean}
|
|
20169
21163
|
*/
|
|
20170
21164
|
this.dateAndFormatMatch = (value, format) => {
|
|
20171
|
-
|
|
20172
21165
|
// Ensure we have both values we need to do the comparison
|
|
20173
21166
|
if (!value || !format) {
|
|
20174
|
-
throw new Error(
|
|
21167
|
+
throw new Error(
|
|
21168
|
+
"AuroFormValidation | dateFormatMatch: value and format are required",
|
|
21169
|
+
);
|
|
20175
21170
|
}
|
|
20176
21171
|
|
|
20177
21172
|
// If the lengths are different, they cannot match
|
|
@@ -20180,11 +21175,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20180
21175
|
}
|
|
20181
21176
|
|
|
20182
21177
|
// Get the parts of the date
|
|
20183
|
-
const dateParts = dateFormatter.
|
|
21178
|
+
const dateParts = dateFormatter.getDateParts(value, format);
|
|
20184
21179
|
|
|
20185
21180
|
// Validator for day
|
|
20186
21181
|
const dayValueIsValid = (day) => {
|
|
20187
|
-
|
|
20188
21182
|
// Guard clause: if there is no day in the dateParts, we can ignore this check.
|
|
20189
21183
|
if (!dateParts.day) {
|
|
20190
21184
|
return true;
|
|
@@ -20200,7 +21194,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20200
21194
|
|
|
20201
21195
|
// Guard clause: ensure day is a valid integer
|
|
20202
21196
|
if (Number.isNaN(numDay)) {
|
|
20203
|
-
throw new Error(
|
|
21197
|
+
throw new Error(
|
|
21198
|
+
"AuroDatepickerUtilities | dayValueIsValid: Unable to parse day value integer",
|
|
21199
|
+
);
|
|
20204
21200
|
}
|
|
20205
21201
|
|
|
20206
21202
|
// Guard clause: ensure day is within the valid range
|
|
@@ -20214,6 +21210,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20214
21210
|
|
|
20215
21211
|
// Validator for month
|
|
20216
21212
|
const monthValueIsValid = (month) => {
|
|
21213
|
+
// Guard clause: if there is no month in the dateParts, we can ignore this check.
|
|
21214
|
+
if (!dateParts.month) {
|
|
21215
|
+
return true;
|
|
21216
|
+
}
|
|
20217
21217
|
|
|
20218
21218
|
// Guard clause: ensure month exists.
|
|
20219
21219
|
if (!month) {
|
|
@@ -20225,7 +21225,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20225
21225
|
|
|
20226
21226
|
// Guard clause: ensure month is a valid integer
|
|
20227
21227
|
if (Number.isNaN(numMonth)) {
|
|
20228
|
-
throw new Error(
|
|
21228
|
+
throw new Error(
|
|
21229
|
+
"AuroDatepickerUtilities | monthValueIsValid: Unable to parse month value integer",
|
|
21230
|
+
);
|
|
20229
21231
|
}
|
|
20230
21232
|
|
|
20231
21233
|
// Guard clause: ensure month is within the valid range
|
|
@@ -20239,6 +21241,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20239
21241
|
|
|
20240
21242
|
// Validator for year
|
|
20241
21243
|
const yearIsValid = (_year) => {
|
|
21244
|
+
// Guard clause: if there is no year in the dateParts, we can ignore this check.
|
|
21245
|
+
if (!dateParts.year) {
|
|
21246
|
+
return true;
|
|
21247
|
+
}
|
|
20242
21248
|
|
|
20243
21249
|
// Guard clause: ensure year exists.
|
|
20244
21250
|
if (!_year) {
|
|
@@ -20253,7 +21259,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20253
21259
|
|
|
20254
21260
|
// Guard clause: ensure year is a valid integer
|
|
20255
21261
|
if (Number.isNaN(numYear)) {
|
|
20256
|
-
throw new Error(
|
|
21262
|
+
throw new Error(
|
|
21263
|
+
"AuroDatepickerUtilities | yearValueIsValid: Unable to parse year value integer",
|
|
21264
|
+
);
|
|
20257
21265
|
}
|
|
20258
21266
|
|
|
20259
21267
|
// Guard clause: ensure year is within the valid range
|
|
@@ -20269,7 +21277,7 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20269
21277
|
const checks = [
|
|
20270
21278
|
monthValueIsValid(dateParts.month),
|
|
20271
21279
|
dayValueIsValid(dateParts.day),
|
|
20272
|
-
yearIsValid(dateParts.year)
|
|
21280
|
+
yearIsValid(dateParts.year),
|
|
20273
21281
|
];
|
|
20274
21282
|
|
|
20275
21283
|
// If any of the checks failed, the date format does not match and the result is invalid
|
|
@@ -20303,10 +21311,7 @@ const {
|
|
|
20303
21311
|
} = dateUtilities;
|
|
20304
21312
|
|
|
20305
21313
|
const {
|
|
20306
|
-
toNorthAmericanFormat
|
|
20307
|
-
parseDate,
|
|
20308
|
-
getDateAsString
|
|
20309
|
-
} = dateFormatter;
|
|
21314
|
+
toNorthAmericanFormat} = dateFormatter;
|
|
20310
21315
|
|
|
20311
21316
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
20312
21317
|
// See LICENSE in the project root for license information.
|
|
@@ -22521,7 +23526,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
|
|
|
22521
23526
|
}
|
|
22522
23527
|
};
|
|
22523
23528
|
|
|
22524
|
-
var formkitVersion = '
|
|
23529
|
+
var formkitVersion = '202606012111';
|
|
22525
23530
|
|
|
22526
23531
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
22527
23532
|
// See LICENSE in the project root for license information.
|
|
@@ -23877,6 +24882,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
23877
24882
|
delegatesFocus: true,
|
|
23878
24883
|
};
|
|
23879
24884
|
}
|
|
24885
|
+
|
|
23880
24886
|
constructor() {
|
|
23881
24887
|
super();
|
|
23882
24888
|
|
|
@@ -24044,7 +25050,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
24044
25050
|
|
|
24045
25051
|
/**
|
|
24046
25052
|
* Defines whether the component will be on lighter or darker backgrounds.
|
|
24047
|
-
* @
|
|
25053
|
+
* @type {'default' | 'inverse'}
|
|
24048
25054
|
* @default 'default'
|
|
24049
25055
|
*/
|
|
24050
25056
|
appearance: {
|
|
@@ -24563,8 +25569,9 @@ class AuroDatePicker extends AuroElement {
|
|
|
24563
25569
|
}
|
|
24564
25570
|
|
|
24565
25571
|
/**
|
|
24566
|
-
* @private
|
|
24567
25572
|
* Common display value wrapper classes.
|
|
25573
|
+
* @private
|
|
25574
|
+
* @returns {Object} Class map for Lit's classMap directive.
|
|
24568
25575
|
*/
|
|
24569
25576
|
get commonDisplayValueWrapperClasses() {
|
|
24570
25577
|
return {
|
|
@@ -24732,7 +25739,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
24732
25739
|
}
|
|
24733
25740
|
|
|
24734
25741
|
// Compute and mark the active cell
|
|
24735
|
-
if (this.calendar.activeCellDate
|
|
25742
|
+
if (this.calendar.activeCellDate === null || this.calendar.activeCellDate === undefined) {
|
|
24736
25743
|
this.calendar.activeCellDate = this.calendar.computeActiveDate();
|
|
24737
25744
|
}
|
|
24738
25745
|
if (this.calendar.activeCellDate !== undefined) {
|
|
@@ -24741,29 +25748,37 @@ class AuroDatePicker extends AuroElement {
|
|
|
24741
25748
|
|
|
24742
25749
|
// If no cell matched (e.g. centralDate month differs from the rendered
|
|
24743
25750
|
// range on mobile), fall back to the first rendered enabled cell.
|
|
24744
|
-
let activeCell = allCells.find(cell => cell.active);
|
|
25751
|
+
let activeCell = allCells.find((cell) => cell.active);
|
|
24745
25752
|
if (!activeCell && allCells.length) {
|
|
24746
|
-
const fallback = allCells
|
|
25753
|
+
const [fallback] = allCells;
|
|
24747
25754
|
if (fallback.day) {
|
|
24748
25755
|
this.calendar.activeCellDate = fallback.day.date;
|
|
24749
25756
|
this.calendar.setActiveCell(this.calendar.activeCellDate);
|
|
24750
|
-
activeCell = allCells.find(cell => cell.active);
|
|
25757
|
+
activeCell = allCells.find((cell) => cell.active);
|
|
24751
25758
|
}
|
|
24752
25759
|
}
|
|
24753
25760
|
|
|
24754
|
-
//
|
|
24755
|
-
//
|
|
25761
|
+
// Focus the calendar grid wrapper (aria-activedescendant handles
|
|
25762
|
+
// the SR announcement for the active cell).
|
|
24756
25763
|
if (activeCell) {
|
|
24757
|
-
|
|
24758
|
-
|
|
24759
|
-
|
|
24760
|
-
|
|
24761
|
-
|
|
24762
|
-
|
|
24763
|
-
|
|
24764
|
-
|
|
24765
|
-
|
|
24766
|
-
|
|
25764
|
+
this.calendar.focusActiveCell();
|
|
25765
|
+
|
|
25766
|
+
// Announce the initial active cell via the live region.
|
|
25767
|
+
// Delay the announcement so it arrives after VoiceOver finishes
|
|
25768
|
+
// speaking the focus-change announcement for the grid wrapper.
|
|
25769
|
+
// Without this delay, VoiceOver drops the live region update
|
|
25770
|
+
// because it's already mid-announcement from the focus move.
|
|
25771
|
+
const announcement = this.calendar.buildFocusAnnouncement(activeCell.day.date);
|
|
25772
|
+
setTimeout(() => {
|
|
25773
|
+
this.calendar.announceSelection(announcement);
|
|
25774
|
+
}, 500);
|
|
25775
|
+
|
|
25776
|
+
// On mobile fullscreen, scroll the month list so the active cell's
|
|
25777
|
+
// month is visible. Without this, the list stays scrolled to the
|
|
25778
|
+
// calendarStartDate month which may be far from the active cell.
|
|
25779
|
+
if (this.dropdown.isBibFullscreen) {
|
|
25780
|
+
this.calendar.scrollToActiveCell();
|
|
25781
|
+
}
|
|
24767
25782
|
} else if (attempts < MAX_ATTEMPTS) {
|
|
24768
25783
|
requestAnimationFrame(tryFocus);
|
|
24769
25784
|
}
|
|
@@ -25162,12 +26177,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
25162
26177
|
}
|
|
25163
26178
|
|
|
25164
26179
|
const formatted = this.util.toNorthAmericanFormat(dateStr, this.format);
|
|
25165
|
-
if (!this.util.validDateStr(dateStr, this.format))
|
|
26180
|
+
if (!this.util.validDateStr(dateStr, this.format)) {
|
|
26181
|
+
return false;
|
|
26182
|
+
}
|
|
25166
26183
|
|
|
25167
|
-
const
|
|
25168
|
-
const yyyy =
|
|
25169
|
-
const mm = String(
|
|
25170
|
-
const dd = String(
|
|
26184
|
+
const dt = new Date(formatted);
|
|
26185
|
+
const yyyy = dt.getFullYear();
|
|
26186
|
+
const mm = String(dt.getMonth() + 1).padStart(2, '0');
|
|
26187
|
+
const dd = String(dt.getDate()).padStart(2, '0');
|
|
25171
26188
|
return this.blackoutDates.includes(`${yyyy}-${mm}-${dd}`);
|
|
25172
26189
|
}
|
|
25173
26190
|
|
|
@@ -25185,7 +26202,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
25185
26202
|
|
|
25186
26203
|
// After standard validation, check blackout dates for typed input
|
|
25187
26204
|
if (this.validity !== 'customError') {
|
|
25188
|
-
if (this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd))) {
|
|
26205
|
+
if (this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd))) { // eslint-disable-line no-extra-parens
|
|
25189
26206
|
const msg = this.setCustomValidityCustomError || 'Selected date is unavailable';
|
|
25190
26207
|
this.validity = 'customError';
|
|
25191
26208
|
this.errorMessage = msg;
|
|
@@ -25231,7 +26248,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
25231
26248
|
// 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"]
|
|
25232
26249
|
const stringfiedDates = JSON.stringify(this.referenceDates);
|
|
25233
26250
|
if (stringfiedDates.includes('-')) {
|
|
25234
|
-
this.referenceDates = this.referenceDates.map(date => date.replace(/-/gu, '/'
|
|
26251
|
+
this.referenceDates = this.referenceDates.map((date) => date.replace(/-/gu, '/'));
|
|
25235
26252
|
}
|
|
25236
26253
|
}
|
|
25237
26254
|
|
|
@@ -25820,7 +26837,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
25820
26837
|
/**
|
|
25821
26838
|
* Handles click on the clear button.
|
|
25822
26839
|
* @private
|
|
25823
|
-
* @param {MouseEvent} event
|
|
26840
|
+
* @param {MouseEvent} event - The mouse event from the clear button click.
|
|
25824
26841
|
* @returns {void}
|
|
25825
26842
|
*/
|
|
25826
26843
|
handleClearClick(event) {
|