@aurodesignsystem-dev/auro-formkit 0.0.0-pr1489.5 → 0.0.0-pr1489.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/checkbox/demo/customize.min.js +249 -125
- package/components/checkbox/demo/getting-started.min.js +249 -125
- package/components/checkbox/demo/index.min.js +249 -125
- package/components/checkbox/demo/styles.min.css +1 -1
- package/components/checkbox/dist/index.js +249 -125
- package/components/checkbox/dist/registered.js +249 -125
- package/components/combobox/demo/customize.min.js +523 -262
- package/components/combobox/demo/getting-started.min.js +523 -262
- package/components/combobox/demo/index.min.js +523 -262
- package/components/combobox/demo/styles.min.css +1 -1
- package/components/combobox/dist/index.js +523 -262
- package/components/combobox/dist/registered.js +523 -262
- package/components/counter/demo/customize.min.js +271 -134
- package/components/counter/demo/index.min.js +271 -134
- package/components/counter/demo/styles.min.css +1 -1
- package/components/counter/dist/index.js +249 -125
- package/components/counter/dist/registered.js +249 -125
- package/components/datepicker/demo/accessibility.md +9 -6
- package/components/datepicker/demo/api.md +1 -1
- package/components/datepicker/demo/customize.min.js +1636 -656
- package/components/datepicker/demo/index.md +31 -3
- package/components/datepicker/demo/index.min.js +1652 -661
- package/components/datepicker/demo/keyboard-behavior.md +16 -16
- package/components/datepicker/demo/styles.min.css +1 -1
- package/components/datepicker/demo/voiceover.md +5 -3
- package/components/datepicker/demo/why-datepicker.md +2 -2
- package/components/datepicker/dist/index.js +1640 -660
- package/components/datepicker/dist/registered.js +1640 -660
- package/components/datepicker/dist/src/auro-calendar-cell.d.ts +52 -17
- package/components/datepicker/dist/src/auro-calendar-month.d.ts +12 -4
- package/components/datepicker/dist/src/auro-calendar.d.ts +161 -8
- package/components/datepicker/dist/src/auro-datepicker.d.ts +77 -79
- package/components/dropdown/demo/customize.min.js +22 -9
- package/components/dropdown/demo/getting-started.min.js +22 -9
- package/components/dropdown/demo/index.min.js +22 -9
- package/components/dropdown/demo/styles.min.css +1 -1
- package/components/dropdown/dist/auro-dropdown.d.ts +3 -2
- package/components/dropdown/dist/index.js +22 -9
- package/components/dropdown/dist/registered.js +22 -9
- package/components/form/demo/customize.min.js +3459 -1572
- package/components/form/demo/getting-started.min.js +3459 -1572
- package/components/form/demo/index.min.js +3459 -1572
- package/components/form/demo/registerDemoDeps.min.js +3459 -1572
- package/components/form/demo/styles.min.css +1 -1
- package/components/input/demo/customize.min.js +249 -125
- package/components/input/demo/getting-started.min.js +249 -125
- package/components/input/demo/index.min.js +249 -125
- package/components/input/demo/styles.min.css +1 -1
- package/components/input/dist/index.js +249 -125
- package/components/input/dist/registered.js +249 -125
- package/components/menu/demo/styles.min.css +1 -1
- package/components/radio/demo/customize.min.js +249 -125
- package/components/radio/demo/getting-started.min.js +249 -125
- package/components/radio/demo/index.min.js +249 -125
- package/components/radio/demo/styles.min.css +1 -1
- package/components/radio/dist/index.js +249 -125
- package/components/radio/dist/registered.js +249 -125
- package/components/select/demo/customize.min.js +271 -134
- package/components/select/demo/getting-started.min.js +271 -134
- package/components/select/demo/index.min.js +271 -134
- package/components/select/demo/styles.min.css +1 -1
- package/components/select/dist/index.js +271 -134
- package/components/select/dist/registered.js +271 -134
- package/custom-elements.json +500 -178
- package/package.json +8 -8
|
@@ -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';
|
|
@@ -1327,11 +1451,7 @@ class UtilitiesCalendarRender {
|
|
|
1327
1451
|
|
|
1328
1452
|
// 3. If we didn't get a count early, restrict based on min/max date.
|
|
1329
1453
|
if (!calendarCount && elem.minDate && elem.maxDate) {
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
if (monthsInRange < maxRenderableMonths) {
|
|
1333
|
-
calendarCount = monthsInRange;
|
|
1334
|
-
}
|
|
1454
|
+
calendarCount = this.util.monthDiff(new Date(elem.minDate), new Date(elem.maxDate));
|
|
1335
1455
|
}
|
|
1336
1456
|
|
|
1337
1457
|
if (elem.numCalendars !== calendarCount) {
|
|
@@ -1379,7 +1499,6 @@ class UtilitiesCalendarRender {
|
|
|
1379
1499
|
.max="${elem.max}"
|
|
1380
1500
|
?noRange="${elem.noRange}"
|
|
1381
1501
|
.monthFirst="${elem.monthFirst}"
|
|
1382
|
-
.hoveredDate="${elem.hoveredDate}"
|
|
1383
1502
|
.dateTo="${elem.dateTo}"
|
|
1384
1503
|
.dateFrom="${elem.dateFrom}"
|
|
1385
1504
|
.locale="${elem.locale}"
|
|
@@ -1411,49 +1530,6 @@ var snowflakeStyle = i$3`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
|
|
|
1411
1530
|
|
|
1412
1531
|
var snowflakeColors = i$3`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
|
|
1413
1532
|
|
|
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
1533
|
/**
|
|
1458
1534
|
* @module constants
|
|
1459
1535
|
* @summary Useful constants
|
|
@@ -7208,6 +7284,49 @@ function subYears(date, amount, options) {
|
|
|
7208
7284
|
return addYears(date, -1, options);
|
|
7209
7285
|
}
|
|
7210
7286
|
|
|
7287
|
+
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}`;
|
|
7288
|
+
|
|
7289
|
+
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)}}`;
|
|
7290
|
+
|
|
7291
|
+
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%;border-radius:10px;overflow:hidden}.tr:not(:last-of-type){margin-bottom:var(--ds-size-100, 0.5rem)}`;
|
|
7292
|
+
|
|
7293
|
+
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)}`;
|
|
7294
|
+
|
|
7295
|
+
/******************************************************************************
|
|
7296
|
+
Copyright (c) Microsoft Corporation.
|
|
7297
|
+
|
|
7298
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
7299
|
+
purpose with or without fee is hereby granted.
|
|
7300
|
+
|
|
7301
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
7302
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
7303
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
7304
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
7305
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
7306
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
7307
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
7308
|
+
***************************************************************************** */
|
|
7309
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
7310
|
+
|
|
7311
|
+
|
|
7312
|
+
function __decorate(decorators, target, key, desc) {
|
|
7313
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
7314
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
7315
|
+
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;
|
|
7316
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7317
|
+
}
|
|
7318
|
+
|
|
7319
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
7320
|
+
var e = new Error(message);
|
|
7321
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
7322
|
+
};
|
|
7323
|
+
|
|
7324
|
+
/**
|
|
7325
|
+
* @license
|
|
7326
|
+
* Copyright 2017 Google LLC
|
|
7327
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
7328
|
+
*/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)}
|
|
7329
|
+
|
|
7211
7330
|
class RangeDatepickerCell extends i$1 {
|
|
7212
7331
|
constructor() {
|
|
7213
7332
|
super(...arguments);
|
|
@@ -7930,9 +8049,9 @@ __decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "dayNamesO
|
|
|
7930
8049
|
__decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
|
|
7931
8050
|
AuroLibraryRuntimeUtils$5.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
|
|
7932
8051
|
|
|
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}}`;
|
|
8052
|
+
var styleCss$5 = i$3`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:48px;height:56px;padding:0;border-width:2px;border-style:solid;border-radius:10px;cursor:pointer;user-select:none}.day:focus-visible{outline:none;background-color:unset}.day.activeCell{outline-width:2px;outline-style:solid;outline-offset:-4px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:pointer}.day.reference:after{position:absolute;top:-2px;left:-2px;display:block;width:calc(100% + 2px);height:calc(100% + 2px);box-sizing:content-box;border-radius:10px;border-style:solid;border-width:1px;content:""}.day.inRange::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:0 10px 10px 0;overflow:hidden}.day.firstDayOfMonth::before{border-radius:10px 0 0 10px;overflow:hidden}.day.lastDayOfMonth::before{border-radius:0 10px 10px 0;overflow:hidden}.buttonWrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.dateSlot{display:block}::slotted([slot^=date_]){width:100%;white-space:nowrap}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;height:100%}:host([renderForDateSlot]) .currentDayMarker{position:relative}`;
|
|
7934
8053
|
|
|
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:
|
|
8054
|
+
var colorCss$5 = i$3`:host ::slotted([slot^=date_]){color:var(--ds-auro-calendar-cell-price-text-color)}:host ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success, #447a1f)}:host .day{border-color:var(--ds-auro-calendar-cell-border-color);background-color:var(--ds-auro-calendar-cell-container-color);color:var(--ds-auro-calendar-cell-text-color)}:host .day.activeCell:not(.selected){--ds-auro-calendar-cell-container-color: var(--ds-auro-calendar-cell-in-range-color);border-color:var(--ds-advanced-color-state-selected);outline-color:var(--ds-auro-calendar-cell-container-color)}:host .day.selected{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.selected ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success-subtle, #d6eac7)}:host .day.selected:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected-hover, #00274a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.reference:after{border-color:var(--ds-basic-color-border-default, #959595);box-shadow:inset 0 0 0 2px var(--ds-basic-color-surface-default, #ffffff)}:host .day.reference:hover::after{box-shadow:inset 0 0 0 2px var(--ds-advanced-color-shared-background-muted, #f7f7f7)}:host .day:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host .day.disabled{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.blackout{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.inRange:before,:host .day.rangeDepartDate:before,:host .day.rangeReturnDate:before,:host .day.lastHoveredDate:before{background-color:var(--ds-auro-calendar-cell-in-range-color)}:host .day.sameDateTrip:before{--ds-auro-calendar-cell-in-range-color: transparent}`;
|
|
7936
8055
|
|
|
7937
8056
|
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
8057
|
`,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 +8074,7 @@ let s$2 = class s{registerComponent(e,t){customElements.get(e)||customElements.d
|
|
|
7955
8074
|
|
|
7956
8075
|
var popoverVersion = '6.0.1';
|
|
7957
8076
|
|
|
7958
|
-
/* eslint-disable curly, max-lines, no-underscore-dangle, no-magic-numbers, no-underscore-dangle, max-params, no-
|
|
8077
|
+
/* 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
8078
|
|
|
7960
8079
|
class AuroCalendarCell extends i$1 {
|
|
7961
8080
|
constructor() {
|
|
@@ -7963,7 +8082,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
7963
8082
|
|
|
7964
8083
|
this.day = null;
|
|
7965
8084
|
this.selected = false;
|
|
7966
|
-
this.hovered = false;
|
|
7967
8085
|
this.dateTo = null;
|
|
7968
8086
|
this.dateFrom = null;
|
|
7969
8087
|
this.month = null;
|
|
@@ -7971,7 +8089,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
7971
8089
|
this.max = null;
|
|
7972
8090
|
this.disabled = false;
|
|
7973
8091
|
this.disabledDays = [];
|
|
7974
|
-
this.hoveredDate = null;
|
|
7975
8092
|
this.isCurrentDate = false;
|
|
7976
8093
|
this._locale = null;
|
|
7977
8094
|
this.dateStr = null;
|
|
@@ -7996,7 +8113,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
7996
8113
|
// ...super.properties,
|
|
7997
8114
|
day: { type: Object },
|
|
7998
8115
|
selected: { type: Boolean },
|
|
7999
|
-
hovered: { type: Boolean },
|
|
8000
8116
|
dateTo: { type: String },
|
|
8001
8117
|
dateFrom: { type: String },
|
|
8002
8118
|
month: { type: String },
|
|
@@ -8007,15 +8123,10 @@ class AuroCalendarCell extends i$1 {
|
|
|
8007
8123
|
reflect: true
|
|
8008
8124
|
},
|
|
8009
8125
|
disabledDays: { type: Array },
|
|
8010
|
-
hoveredDate: { type: String },
|
|
8011
8126
|
isCurrentDate: { type: Boolean },
|
|
8012
8127
|
locale: { type: Object },
|
|
8013
8128
|
dateStr: { type: String },
|
|
8014
8129
|
renderForDateSlot: { type: Boolean },
|
|
8015
|
-
active: {
|
|
8016
|
-
type: Boolean,
|
|
8017
|
-
reflect: true
|
|
8018
|
-
},
|
|
8019
8130
|
hasPopoverContent: { type: Boolean }
|
|
8020
8131
|
};
|
|
8021
8132
|
}
|
|
@@ -8040,17 +8151,17 @@ class AuroCalendarCell extends i$1 {
|
|
|
8040
8151
|
}
|
|
8041
8152
|
|
|
8042
8153
|
/**
|
|
8043
|
-
* Handles selected
|
|
8154
|
+
* Handles selected state of the calendar cell when the selection changes.
|
|
8155
|
+
* Also clears any imperative range preview classes so classMap is the
|
|
8156
|
+
* sole source of truth after a selection update.
|
|
8044
8157
|
* @private
|
|
8045
8158
|
* @param {Number} dateFrom - Depart date.
|
|
8046
8159
|
* @param {Number} dateTo - Return date.
|
|
8047
|
-
* @param {Number} hoveredDate - Hovered date.
|
|
8048
8160
|
* @param {Object} day - An object containing the dateFrom and day of month values.
|
|
8049
8161
|
* @returns {void}
|
|
8050
8162
|
*/
|
|
8051
|
-
dateChanged(dateFrom, dateTo,
|
|
8163
|
+
dateChanged(dateFrom, dateTo, day) {
|
|
8052
8164
|
this.selected = false;
|
|
8053
|
-
this.hovered = false;
|
|
8054
8165
|
|
|
8055
8166
|
const parsedDateFrom = parseInt(dateFrom, 10);
|
|
8056
8167
|
const parsedDateTo = parseInt(dateTo, 10);
|
|
@@ -8062,10 +8173,6 @@ class AuroCalendarCell extends i$1 {
|
|
|
8062
8173
|
if (day.date === departTimestamp || day.date === returnTimestamp) {
|
|
8063
8174
|
this.selected = true;
|
|
8064
8175
|
}
|
|
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
8176
|
}
|
|
8070
8177
|
}
|
|
8071
8178
|
|
|
@@ -8091,16 +8198,30 @@ class AuroCalendarCell extends i$1 {
|
|
|
8091
8198
|
|
|
8092
8199
|
/**
|
|
8093
8200
|
* Handles user hover events and dispatches a custom event.
|
|
8094
|
-
*
|
|
8201
|
+
* Does NOT set any reactive properties — the range preview is handled
|
|
8202
|
+
* imperatively by the calendar component to avoid O(N) re-renders.
|
|
8095
8203
|
* @private
|
|
8096
8204
|
* @returns {void}
|
|
8097
8205
|
*/
|
|
8098
8206
|
handleHover() {
|
|
8099
|
-
this.hovered = true;
|
|
8100
|
-
|
|
8101
|
-
let _a;
|
|
8102
8207
|
this.dispatchEvent(new CustomEvent('date-is-hovered', {
|
|
8103
|
-
detail: { date:
|
|
8208
|
+
detail: { date: this.day?.date },
|
|
8209
|
+
}));
|
|
8210
|
+
}
|
|
8211
|
+
|
|
8212
|
+
/**
|
|
8213
|
+
* Handles focus events on the cell button.
|
|
8214
|
+
* Dispatches a lightweight event for the calendar to handle SR
|
|
8215
|
+
* announcements and range preview updates without triggering
|
|
8216
|
+
* any Lit lifecycle updates.
|
|
8217
|
+
* @private
|
|
8218
|
+
* @returns {void}
|
|
8219
|
+
*/
|
|
8220
|
+
handleFocus() {
|
|
8221
|
+
this.dispatchEvent(new CustomEvent('calendar-cell-focused', {
|
|
8222
|
+
bubbles: true,
|
|
8223
|
+
composed: true,
|
|
8224
|
+
detail: { date: this.day?.date },
|
|
8104
8225
|
}));
|
|
8105
8226
|
}
|
|
8106
8227
|
|
|
@@ -8114,7 +8235,7 @@ class AuroCalendarCell extends i$1 {
|
|
|
8114
8235
|
* @returns {Boolean} - True if the date is out of range.
|
|
8115
8236
|
*/
|
|
8116
8237
|
isOutOfRange(day, min, max) {
|
|
8117
|
-
if (day && day.date
|
|
8238
|
+
if (day && day.date !== null && day.date !== undefined) {
|
|
8118
8239
|
return day.date < min || day.date > max;
|
|
8119
8240
|
}
|
|
8120
8241
|
return false;
|
|
@@ -8127,13 +8248,13 @@ class AuroCalendarCell extends i$1 {
|
|
|
8127
8248
|
* @returns {Boolean} - True if the date is a blackout date.
|
|
8128
8249
|
*/
|
|
8129
8250
|
isBlackout() {
|
|
8130
|
-
if (!this.day || this.day.date
|
|
8251
|
+
if (!this.day || this.day.date === null || this.day.date === undefined || this.isOutOfRange(this.day, this.min, this.max)) {
|
|
8131
8252
|
return false;
|
|
8132
8253
|
}
|
|
8133
8254
|
|
|
8134
8255
|
// Check against disabledDays timestamps (legacy path)
|
|
8135
8256
|
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
8136
|
-
if (this.disabledDays.findIndex(
|
|
8257
|
+
if (this.disabledDays.findIndex(dd => parseInt(dd, 10) === this.day.date) !== -1) {
|
|
8137
8258
|
return true;
|
|
8138
8259
|
}
|
|
8139
8260
|
}
|
|
@@ -8215,12 +8336,26 @@ class AuroCalendarCell extends i$1 {
|
|
|
8215
8336
|
|
|
8216
8337
|
let label = dateFormatter.format(date);
|
|
8217
8338
|
|
|
8339
|
+
// Append date slot content (e.g. prices) so it is announced with the date.
|
|
8340
|
+
if (this.renderForDateSlot) {
|
|
8341
|
+
const dateSlotEl = this.querySelector(`[slot="date_${this.dateStr}"]`);
|
|
8342
|
+
if (dateSlotEl) {
|
|
8343
|
+
const text = dateSlotEl.innerText?.trim();
|
|
8344
|
+
if (text) {
|
|
8345
|
+
label += `, ${text}`;
|
|
8346
|
+
}
|
|
8347
|
+
}
|
|
8348
|
+
}
|
|
8349
|
+
|
|
8218
8350
|
// appending popover content here so that it gets read in a logical order with the other date content.
|
|
8219
8351
|
if (this.hasPopoverContent) {
|
|
8220
|
-
|
|
8352
|
+
const popoverEl = this.querySelector(`[slot="popover_${this.dateStr}"]`);
|
|
8353
|
+
if (popoverEl) {
|
|
8354
|
+
label += `, ${popoverEl.innerText.trim()}`;
|
|
8355
|
+
}
|
|
8221
8356
|
}
|
|
8222
8357
|
|
|
8223
|
-
// Append range position
|
|
8358
|
+
// Append range position label for range datepickers
|
|
8224
8359
|
const rangePosition = this.getRangePosition();
|
|
8225
8360
|
if (rangePosition) {
|
|
8226
8361
|
label += `, ${rangePosition}`;
|
|
@@ -8331,12 +8466,12 @@ class AuroCalendarCell extends i$1 {
|
|
|
8331
8466
|
}
|
|
8332
8467
|
|
|
8333
8468
|
/**
|
|
8334
|
-
* Checks if the current date is a
|
|
8469
|
+
* Checks if the current date is a referenced date.
|
|
8335
8470
|
* @param {Object} dateStr - The date string in MM_DD_YYYY format.
|
|
8336
|
-
* @returns Boolean - True if the date is a
|
|
8471
|
+
* @returns Boolean - True if the date is a referenced date.
|
|
8337
8472
|
*/
|
|
8338
8473
|
isReferenceDate(dateStr) {
|
|
8339
|
-
// If the datepicker has
|
|
8474
|
+
// If the datepicker has referenced dates specified
|
|
8340
8475
|
if (this.datepicker && this.datepicker.hasAttribute('referenceDates')) {
|
|
8341
8476
|
|
|
8342
8477
|
// Get the referenceDates attribute from the datepicker
|
|
@@ -8450,6 +8585,11 @@ class AuroCalendarCell extends i$1 {
|
|
|
8450
8585
|
};
|
|
8451
8586
|
this.datepicker.addEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
|
|
8452
8587
|
|
|
8588
|
+
// Cache button reference for imperative class manipulation.
|
|
8589
|
+
this.updateComplete.then(() => {
|
|
8590
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
8591
|
+
});
|
|
8592
|
+
|
|
8453
8593
|
// Trigger an initial update now that `this.datepicker` is assigned so
|
|
8454
8594
|
// cells reflect blackout/slot state that was configured before first render.
|
|
8455
8595
|
this.requestUpdate();
|
|
@@ -8481,13 +8621,26 @@ class AuroCalendarCell extends i$1 {
|
|
|
8481
8621
|
}
|
|
8482
8622
|
|
|
8483
8623
|
updated(properties) {
|
|
8484
|
-
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('
|
|
8485
|
-
this.dateChanged(this.dateFrom, this.dateTo, this.
|
|
8624
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('day')) {
|
|
8625
|
+
this.dateChanged(this.dateFrom, this.dateTo, this.day);
|
|
8486
8626
|
}
|
|
8487
8627
|
|
|
8488
|
-
if (this.day) {
|
|
8628
|
+
if (properties.has('day') && this.day) {
|
|
8489
8629
|
this.setDateSlotName();
|
|
8490
8630
|
this.handleSlotContent();
|
|
8631
|
+
|
|
8632
|
+
// Re-cache button reference when the day changes (cell may have re-rendered).
|
|
8633
|
+
this.updateComplete.then(() => {
|
|
8634
|
+
this._cachedButton = this.shadowRoot.querySelector('button.day');
|
|
8635
|
+
});
|
|
8636
|
+
|
|
8637
|
+
// Update host-level aria attributes for ariaActiveDescendantElement.
|
|
8638
|
+
this.updateHostAria();
|
|
8639
|
+
}
|
|
8640
|
+
|
|
8641
|
+
// Update host aria when selection changes (aria-selected, range labels)
|
|
8642
|
+
if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected')) {
|
|
8643
|
+
this.updateHostAria();
|
|
8491
8644
|
}
|
|
8492
8645
|
|
|
8493
8646
|
// Configure popover when it first becomes rendered
|
|
@@ -8497,64 +8650,165 @@ class AuroCalendarCell extends i$1 {
|
|
|
8497
8650
|
}
|
|
8498
8651
|
|
|
8499
8652
|
/**
|
|
8500
|
-
*
|
|
8653
|
+
* Updates ARIA attributes on the host element so that
|
|
8654
|
+
* ariaActiveDescendantElement can expose cell info to the SR.
|
|
8655
|
+
* @private
|
|
8656
|
+
* @returns {void}
|
|
8657
|
+
*/
|
|
8658
|
+
updateHostAria() {
|
|
8659
|
+
if (!this.day || this.day.date === undefined) return;
|
|
8660
|
+
|
|
8661
|
+
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
8662
|
+
if (outOfRange) {
|
|
8663
|
+
this.removeAttribute('role');
|
|
8664
|
+
this.removeAttribute('aria-label');
|
|
8665
|
+
return;
|
|
8666
|
+
}
|
|
8667
|
+
|
|
8668
|
+
// The host acts as the gridcell for ariaActiveDescendantElement.
|
|
8669
|
+
this.setAttribute('role', 'gridcell');
|
|
8670
|
+
this.setAttribute('aria-label', this.getAriaLabel());
|
|
8671
|
+
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
|
8672
|
+
|
|
8673
|
+
if (this.isBlackout()) {
|
|
8674
|
+
this.setAttribute('aria-disabled', 'true');
|
|
8675
|
+
} else {
|
|
8676
|
+
this.removeAttribute('aria-disabled');
|
|
8677
|
+
}
|
|
8678
|
+
}
|
|
8679
|
+
|
|
8680
|
+
/**
|
|
8681
|
+
* Programmatically focuses the cell's interactive button element.
|
|
8682
|
+
* Uses focusVisible: true so the :focus-visible ring appears even when
|
|
8683
|
+
* the bib was opened via mouse click (which sets mouse input modality).
|
|
8501
8684
|
* @returns {void}
|
|
8502
8685
|
*/
|
|
8503
8686
|
focusButton() {
|
|
8504
|
-
const button = this.shadowRoot.querySelector('button:not([aria-hidden])');
|
|
8687
|
+
const button = this._cachedButton || this.shadowRoot.querySelector('button:not([aria-hidden])');
|
|
8505
8688
|
if (button) {
|
|
8506
|
-
button.focus();
|
|
8689
|
+
button.focus({ focusVisible: true });
|
|
8690
|
+
}
|
|
8691
|
+
}
|
|
8692
|
+
|
|
8693
|
+
/**
|
|
8694
|
+
* Imperatively marks this cell as active without triggering a Lit re-render.
|
|
8695
|
+
* Note: buttons stay tabindex="-1" because the grid uses aria-activedescendant.
|
|
8696
|
+
* @returns {void}
|
|
8697
|
+
*/
|
|
8698
|
+
setActive() {
|
|
8699
|
+
this.active = true;
|
|
8700
|
+
|
|
8701
|
+
// Show the popover when this cell becomes active via keyboard navigation.
|
|
8702
|
+
if (this.auroPopover) {
|
|
8703
|
+
this.auroPopover.toggleShow();
|
|
8704
|
+
}
|
|
8705
|
+
}
|
|
8706
|
+
|
|
8707
|
+
/**
|
|
8708
|
+
* Imperatively marks this cell as inactive without triggering a Lit re-render.
|
|
8709
|
+
* @returns {void}
|
|
8710
|
+
*/
|
|
8711
|
+
clearActive() {
|
|
8712
|
+
this.active = false;
|
|
8713
|
+
const btn = this._cachedButton || this.shadowRoot.querySelector('button.day');
|
|
8714
|
+
if (btn) {
|
|
8715
|
+
btn.classList.remove('activeCell');
|
|
8716
|
+
}
|
|
8717
|
+
|
|
8718
|
+
// Hide the popover when this cell loses active state.
|
|
8719
|
+
if (this.auroPopover) {
|
|
8720
|
+
this.auroPopover.toggleHide();
|
|
8507
8721
|
}
|
|
8508
8722
|
}
|
|
8509
8723
|
|
|
8724
|
+
/**
|
|
8725
|
+
* Updates range preview classes imperatively (no Lit re-render).
|
|
8726
|
+
* Called by the calendar component when the hovered date changes
|
|
8727
|
+
* during range selection (dateFrom set, dateTo not yet set).
|
|
8728
|
+
* @param {Number} hoveredDate - Unix timestamp of the currently hovered/focused date.
|
|
8729
|
+
* @param {Number} dateFrom - Unix timestamp of the selected departure date.
|
|
8730
|
+
* @returns {void}
|
|
8731
|
+
*/
|
|
8732
|
+
updateRangePreviewClasses(hoveredDate, dateFrom) {
|
|
8733
|
+
const btn = this._cachedButton;
|
|
8734
|
+
if (!btn || !this.day) return;
|
|
8735
|
+
|
|
8736
|
+
const dayDate = this.day.date;
|
|
8737
|
+
const departTimestamp = startOfDay(dateFrom * 1000) / 1000;
|
|
8738
|
+
const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
|
|
8739
|
+
const isLastHovered = dayDate === hoveredDate && hoveredDate > departTimestamp;
|
|
8740
|
+
const isDepartWithPreview = dayDate === departTimestamp && hoveredDate > departTimestamp;
|
|
8741
|
+
|
|
8742
|
+
btn.classList.toggle('inRange', isInRange);
|
|
8743
|
+
btn.classList.toggle('lastHoveredDate', isLastHovered);
|
|
8744
|
+
btn.classList.toggle('rangeDepartDate', isDepartWithPreview);
|
|
8745
|
+
}
|
|
8746
|
+
|
|
8747
|
+
/**
|
|
8748
|
+
* Clears all imperative range preview classes from the cell button.
|
|
8749
|
+
* Called when a selection occurs so classMap becomes the sole source of truth.
|
|
8750
|
+
* @returns {void}
|
|
8751
|
+
*/
|
|
8752
|
+
clearRangePreviewClasses() {
|
|
8753
|
+
const btn = this._cachedButton;
|
|
8754
|
+
if (!btn) return;
|
|
8755
|
+
|
|
8756
|
+
btn.classList.remove('inRange', 'lastHoveredDate', 'rangeDepartDate');
|
|
8757
|
+
}
|
|
8758
|
+
|
|
8510
8759
|
renderCellButton() {
|
|
8511
8760
|
const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
|
|
8512
|
-
const role = outOfRange ? 'presentation' : 'gridcell';
|
|
8513
8761
|
const blackout = this.isBlackout();
|
|
8514
8762
|
|
|
8763
|
+
// Static and selection-driven classes only. Hover-driven classes
|
|
8764
|
+
// (inRange, lastHoveredDate, rangeDepartDate during preview) are
|
|
8765
|
+
// managed imperatively via updateRangePreviewClasses() to avoid
|
|
8766
|
+
// O(N) Lit re-renders on every focus/hover event.
|
|
8767
|
+
const isFirstDay = this.day?.title === 1;
|
|
8768
|
+
const isLastDay = this.day?.date && (() => {
|
|
8769
|
+
const dt = new Date(this.day.date * 1000);
|
|
8770
|
+
return dt.getDate() === new Date(dt.getFullYear(), dt.getMonth() + 1, 0).getDate();
|
|
8771
|
+
})();
|
|
8772
|
+
|
|
8515
8773
|
const buttonClasses = {
|
|
8516
8774
|
'day': true,
|
|
8517
|
-
'body-
|
|
8775
|
+
'body-default': true,
|
|
8518
8776
|
'currentDate': this.isCurrentDate,
|
|
8519
8777
|
'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'),
|
|
8778
|
+
'inRange': this.datepicker?.hasAttribute('range') && this.dateTo && this.isInRange(this.day, this.dateFrom, this.dateTo),
|
|
8522
8779
|
'disabled': outOfRange,
|
|
8523
|
-
|
|
8524
|
-
'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) &&
|
|
8780
|
+
blackout,
|
|
8781
|
+
'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) && this.dateTo,
|
|
8525
8782
|
'rangeReturnDate': this.datepicker?.hasAttribute('range') && this.isReturnDate(this.day, this.dateFrom, this.dateTo),
|
|
8526
8783
|
'reference': this.isReferenceDate(this.dateStr),
|
|
8527
|
-
'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo
|
|
8784
|
+
'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo,
|
|
8785
|
+
'firstDayOfMonth': isFirstDay,
|
|
8786
|
+
'lastDayOfMonth': isLastDay,
|
|
8528
8787
|
};
|
|
8529
8788
|
|
|
8530
8789
|
return u$a`
|
|
8531
8790
|
<button
|
|
8532
8791
|
slot="trigger"
|
|
8533
8792
|
id="${this.getCellId()}"
|
|
8534
|
-
role="${role}"
|
|
8535
8793
|
@click="${outOfRange ? undefined : this.handleTap}"
|
|
8536
8794
|
@mouseover="${outOfRange ? undefined : this.handleHover}"
|
|
8537
|
-
@focus="${outOfRange ? undefined : this.
|
|
8795
|
+
@focus="${outOfRange ? undefined : this.handleFocus}"
|
|
8538
8796
|
class="${e$4(buttonClasses)}"
|
|
8539
8797
|
?disabled="${outOfRange}"
|
|
8540
|
-
aria-disabled="${blackout ? 'true' : A$4}"
|
|
8541
8798
|
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>
|
|
8799
|
+
tabindex="-1">
|
|
8546
8800
|
<div class="buttonWrapper" aria-hidden="true">
|
|
8547
8801
|
<div class="currentDayMarker">${this.day?.title || A$4}</div>
|
|
8548
|
-
|
|
8549
|
-
|
|
8550
|
-
|
|
8802
|
+
<div class="dateSlot body-2xs" part="dateSlot" aria-hidden="true" ?hidden="${!this.renderForDateSlot}">
|
|
8803
|
+
<slot name="date_${this.dateStr}"></slot>
|
|
8804
|
+
</div>
|
|
8551
8805
|
</div>
|
|
8552
8806
|
</button>
|
|
8553
8807
|
`;
|
|
8554
8808
|
}
|
|
8555
8809
|
|
|
8556
8810
|
render() {
|
|
8557
|
-
const hasPopoverContent = this
|
|
8811
|
+
const { hasPopoverContent } = this;
|
|
8558
8812
|
|
|
8559
8813
|
if (hasPopoverContent) {
|
|
8560
8814
|
return u$a`
|
|
@@ -8684,7 +8938,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8684
8938
|
*/
|
|
8685
8939
|
renderDayOfWeek(dayOfWeek, index) {
|
|
8686
8940
|
const fullName = this.dayFullNames ? this.dayFullNames[index] : dayOfWeek;
|
|
8687
|
-
return b$5`<div class="th body-default"
|
|
8941
|
+
return b$5`<div class="th body-default"><abbr title="${fullName}">${dayOfWeek}</abbr></div>`;
|
|
8688
8942
|
}
|
|
8689
8943
|
|
|
8690
8944
|
/**
|
|
@@ -8693,92 +8947,39 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8693
8947
|
*/
|
|
8694
8948
|
getFocusableCells() {
|
|
8695
8949
|
const cells = Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-cell'));
|
|
8696
|
-
return cells.filter(cell => {
|
|
8697
|
-
if (!cell.day)
|
|
8950
|
+
return cells.filter((cell) => {
|
|
8951
|
+
if (!cell.day) {
|
|
8952
|
+
return false;
|
|
8953
|
+
}
|
|
8698
8954
|
return !cell.isOutOfRange(cell.day, cell.min, cell.max);
|
|
8699
8955
|
});
|
|
8700
8956
|
}
|
|
8701
8957
|
|
|
8702
8958
|
/**
|
|
8703
|
-
*
|
|
8704
|
-
*
|
|
8959
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
8960
|
+
* as a reactive property. Instead, just dispatches the event upward so
|
|
8961
|
+
* the calendar can handle range preview imperatively.
|
|
8705
8962
|
* @private
|
|
8706
|
-
* @param {
|
|
8963
|
+
* @param {CustomEvent} event - The date-is-hovered event from a cell.
|
|
8707
8964
|
* @returns {void}
|
|
8708
8965
|
*/
|
|
8709
|
-
|
|
8710
|
-
|
|
8711
|
-
|
|
8712
|
-
|
|
8713
|
-
|
|
8714
|
-
|
|
8715
|
-
event.preventDefault();
|
|
8716
|
-
|
|
8717
|
-
const focusableCells = this.getFocusableCells();
|
|
8718
|
-
if (focusableCells.length === 0) return;
|
|
8719
|
-
|
|
8720
|
-
// Find the currently active cell within this month
|
|
8721
|
-
const activeCell = focusableCells.find(cell => cell.active);
|
|
8722
|
-
if (!activeCell) return;
|
|
8723
|
-
|
|
8724
|
-
const activeIndex = focusableCells.indexOf(activeCell);
|
|
8725
|
-
let targetCell = null;
|
|
8726
|
-
|
|
8727
|
-
if (key === 'ArrowRight') {
|
|
8728
|
-
if (activeIndex < focusableCells.length - 1) {
|
|
8729
|
-
targetCell = focusableCells[activeIndex + 1];
|
|
8730
|
-
} else {
|
|
8731
|
-
// At end of month, request cross-month navigation
|
|
8732
|
-
this.dispatchEvent(new CustomEvent('calendar-month-boundary', {
|
|
8733
|
-
bubbles: true,
|
|
8734
|
-
composed: true,
|
|
8735
|
-
detail: { direction: 'next', fromDate: activeCell.day.date, key }
|
|
8736
|
-
}));
|
|
8737
|
-
return;
|
|
8738
|
-
}
|
|
8739
|
-
} else if (key === 'ArrowLeft') {
|
|
8740
|
-
if (activeIndex > 0) {
|
|
8741
|
-
targetCell = focusableCells[activeIndex - 1];
|
|
8742
|
-
} else {
|
|
8743
|
-
// At start of month, request cross-month navigation
|
|
8744
|
-
this.dispatchEvent(new CustomEvent('calendar-month-boundary', {
|
|
8745
|
-
bubbles: true,
|
|
8746
|
-
composed: true,
|
|
8747
|
-
detail: { direction: 'prev', fromDate: activeCell.day.date, key }
|
|
8748
|
-
}));
|
|
8749
|
-
return;
|
|
8750
|
-
}
|
|
8751
|
-
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
8752
|
-
// Find the target day (same day-of-week, +/- 7 days)
|
|
8753
|
-
// Use Date arithmetic instead of fixed seconds to handle DST correctly
|
|
8754
|
-
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
8755
|
-
const currentDate = new Date(activeCell.day.date * 1000);
|
|
8756
|
-
currentDate.setDate(currentDate.getDate() + increment);
|
|
8757
|
-
currentDate.setHours(0, 0, 0, 0);
|
|
8758
|
-
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
8759
|
-
|
|
8760
|
-
// Look for the target date in this month's focusable cells
|
|
8761
|
-
targetCell = focusableCells.find(cell => cell.day.date === targetDate);
|
|
8762
|
-
|
|
8763
|
-
if (!targetCell) {
|
|
8764
|
-
// Target is in another month or all cells in that direction are disabled
|
|
8765
|
-
const direction = key === 'ArrowDown' ? 'next' : 'prev';
|
|
8766
|
-
this.dispatchEvent(new CustomEvent('calendar-month-boundary', {
|
|
8767
|
-
bubbles: true,
|
|
8768
|
-
composed: true,
|
|
8769
|
-
detail: { direction, fromDate: activeCell.day.date, key }
|
|
8770
|
-
}));
|
|
8771
|
-
return;
|
|
8772
|
-
}
|
|
8773
|
-
}
|
|
8966
|
+
handleDateHovered(event) {
|
|
8967
|
+
this.dispatchEvent(new CustomEvent('hovered-date-changed', {
|
|
8968
|
+
detail: { value: event.detail.date },
|
|
8969
|
+
}));
|
|
8970
|
+
}
|
|
8774
8971
|
|
|
8775
|
-
|
|
8776
|
-
|
|
8777
|
-
|
|
8778
|
-
|
|
8779
|
-
|
|
8780
|
-
|
|
8781
|
-
|
|
8972
|
+
/**
|
|
8973
|
+
* Dispatches a bubbling event when the mouse leaves the date grid body
|
|
8974
|
+
* so the parent calendar can clear the range hover preview.
|
|
8975
|
+
* @private
|
|
8976
|
+
* @returns {void}
|
|
8977
|
+
*/
|
|
8978
|
+
handleTbodyMouseLeave() {
|
|
8979
|
+
this.dispatchEvent(new CustomEvent('calendar-month-mouseleave', {
|
|
8980
|
+
bubbles: true,
|
|
8981
|
+
composed: true,
|
|
8982
|
+
}));
|
|
8782
8983
|
}
|
|
8783
8984
|
|
|
8784
8985
|
renderWeek(week) {
|
|
@@ -8797,7 +8998,6 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8797
8998
|
.min="${this.min}"
|
|
8798
8999
|
.max="${this.max}"
|
|
8799
9000
|
.month="${this.month}"
|
|
8800
|
-
.hoveredDate="${this.hoveredDate}"
|
|
8801
9001
|
.dateTo="${this.dateTo}"
|
|
8802
9002
|
.dateFrom="${this.dateFrom}"
|
|
8803
9003
|
.locale="${this.locale}"
|
|
@@ -8819,10 +9019,10 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8819
9019
|
var _a, _b;
|
|
8820
9020
|
|
|
8821
9021
|
return b$5 `
|
|
8822
|
-
<div
|
|
9022
|
+
<div>
|
|
8823
9023
|
<div class="header">
|
|
8824
9024
|
${this.renderPrevButton()}
|
|
8825
|
-
<div class="headerTitle heading-xs" id="${this.getHeadingId()}" aria-
|
|
9025
|
+
<div class="headerTitle heading-xs" id="${this.getHeadingId()}" aria-hidden="true">
|
|
8826
9026
|
${this.monthFirst ? b$5`
|
|
8827
9027
|
<div>${this.computeCurrentMonthName(this.month)}</div>
|
|
8828
9028
|
<div>${this.renderYear()}</div>
|
|
@@ -8834,13 +9034,13 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
|
|
|
8834
9034
|
${this.renderNextButton()}
|
|
8835
9035
|
</div>
|
|
8836
9036
|
|
|
8837
|
-
<div class="table" role="grid"
|
|
8838
|
-
<div class="thead"
|
|
8839
|
-
<div class="tr"
|
|
9037
|
+
<div class="table" role="grid">
|
|
9038
|
+
<div class="thead" aria-hidden="true">
|
|
9039
|
+
<div class="tr">
|
|
8840
9040
|
${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
|
|
8841
9041
|
</div>
|
|
8842
9042
|
</div>
|
|
8843
|
-
<div class="tbody" role="rowgroup">
|
|
9043
|
+
<div class="tbody" role="rowgroup" @mouseleave="${this.handleTbodyMouseLeave}">
|
|
8844
9044
|
${(_b = this.daysOfMonth) === null || _b === void 0 ? void 0 : _b.map(week => this.renderWeek(week))}
|
|
8845
9045
|
</div>
|
|
8846
9046
|
</div>
|
|
@@ -9658,7 +9858,7 @@ class AuroBibtemplate extends i$1 {
|
|
|
9658
9858
|
}
|
|
9659
9859
|
}
|
|
9660
9860
|
|
|
9661
|
-
var formkitVersion$2 = '
|
|
9861
|
+
var formkitVersion$2 = '202606022350';
|
|
9662
9862
|
|
|
9663
9863
|
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
9864
|
`,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 +9919,7 @@ let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[
|
|
|
9719
9919
|
|
|
9720
9920
|
var buttonVersion$1 = '12.3.2';
|
|
9721
9921
|
|
|
9722
|
-
/* eslint-disable no-magic-numbers, no-undef-init, max-lines, lit/binding-positions, lit/no-invalid-html */
|
|
9922
|
+
/* 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
9923
|
|
|
9724
9924
|
|
|
9725
9925
|
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
@@ -9763,6 +9963,13 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9763
9963
|
*/
|
|
9764
9964
|
this.activeCellDate = null;
|
|
9765
9965
|
|
|
9966
|
+
/**
|
|
9967
|
+
* Whether the #calendarGrid wrapper currently has focus.
|
|
9968
|
+
* Used to determine whether the visualFocus ring should be shown.
|
|
9969
|
+
* @private
|
|
9970
|
+
*/
|
|
9971
|
+
this._gridHasFocus = false;
|
|
9972
|
+
|
|
9766
9973
|
/**
|
|
9767
9974
|
* @private
|
|
9768
9975
|
*/
|
|
@@ -9773,6 +9980,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9773
9980
|
*/
|
|
9774
9981
|
this.calendarRangeMonths = null;
|
|
9775
9982
|
|
|
9983
|
+
/**
|
|
9984
|
+
* Legacy array of disabled-date timestamps.
|
|
9985
|
+
* @private
|
|
9986
|
+
*/
|
|
9987
|
+
this.disabledDays = [];
|
|
9988
|
+
|
|
9776
9989
|
/**
|
|
9777
9990
|
* @private
|
|
9778
9991
|
*/
|
|
@@ -9796,6 +10009,12 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9796
10009
|
this.buttonTag = versioning.generateTag('auro-formkit-datepicker-button', buttonVersion$1, T$1);
|
|
9797
10010
|
|
|
9798
10011
|
this.dropdown = undefined;
|
|
10012
|
+
|
|
10013
|
+
/**
|
|
10014
|
+
* Unique instance ID for the live region element.
|
|
10015
|
+
* @private
|
|
10016
|
+
*/
|
|
10017
|
+
this._calendarInstanceId = Date.now().toString(36);
|
|
9799
10018
|
}
|
|
9800
10019
|
|
|
9801
10020
|
static get styles() {
|
|
@@ -9808,6 +10027,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9808
10027
|
|
|
9809
10028
|
static get properties() {
|
|
9810
10029
|
return {
|
|
10030
|
+
|
|
9811
10031
|
/**
|
|
9812
10032
|
* The last month that may be displayed in the calendar.
|
|
9813
10033
|
*/
|
|
@@ -9924,22 +10144,36 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9924
10144
|
/**
|
|
9925
10145
|
* Updates the month and year when the user navigates to the previous calendar month.
|
|
9926
10146
|
* @private
|
|
10147
|
+
* @param {Object} [options] - Optional settings.
|
|
10148
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
10149
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
9927
10150
|
* @returns {void}
|
|
9928
10151
|
*/
|
|
9929
|
-
handlePrevMonth() {
|
|
10152
|
+
handlePrevMonth(options) {
|
|
10153
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
10154
|
+
this.clearRangePreview();
|
|
9930
10155
|
this.utilCal.handleMonthChange(this, 'prev');
|
|
9931
|
-
|
|
10156
|
+
if (!opts.skipActiveUpdate) {
|
|
10157
|
+
this.updateActiveCellForVisibleMonth();
|
|
10158
|
+
}
|
|
9932
10159
|
this.announceMonthChange();
|
|
9933
10160
|
}
|
|
9934
10161
|
|
|
9935
10162
|
/**
|
|
9936
10163
|
* Updates the month and year when the user navigates to the next calendar month.
|
|
9937
10164
|
* @private
|
|
10165
|
+
* @param {Object} [options] - Optional settings.
|
|
10166
|
+
* @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
|
|
10167
|
+
* recomputation. Used by arrow key handlers that manage the active cell themselves.
|
|
9938
10168
|
* @returns {void}
|
|
9939
10169
|
*/
|
|
9940
|
-
handleNextMonth() {
|
|
10170
|
+
handleNextMonth(options) {
|
|
10171
|
+
const opts = options instanceof Event ? {} : options || {};
|
|
10172
|
+
this.clearRangePreview();
|
|
9941
10173
|
this.utilCal.handleMonthChange(this, 'next');
|
|
9942
|
-
|
|
10174
|
+
if (!opts.skipActiveUpdate) {
|
|
10175
|
+
this.updateActiveCellForVisibleMonth();
|
|
10176
|
+
}
|
|
9943
10177
|
this.announceMonthChange();
|
|
9944
10178
|
}
|
|
9945
10179
|
|
|
@@ -9949,27 +10183,39 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
9949
10183
|
* @returns {void}
|
|
9950
10184
|
*/
|
|
9951
10185
|
announceMonthChange() {
|
|
10186
|
+
// Cancel any pending debounced cell announcement so it does not
|
|
10187
|
+
// overwrite this month navigation announcement.
|
|
10188
|
+
if (this._focusAnnounceTimer) {
|
|
10189
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
10190
|
+
this._focusAnnounceTimer = null;
|
|
10191
|
+
}
|
|
10192
|
+
|
|
9952
10193
|
const date = new Date(this.centralDate);
|
|
9953
10194
|
const localeCode = this.locale?.code || undefined;
|
|
9954
|
-
const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long',
|
|
10195
|
+
const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long',
|
|
10196
|
+
year: 'numeric' });
|
|
9955
10197
|
this.announceSelection(formatter.format(date));
|
|
9956
10198
|
}
|
|
9957
10199
|
|
|
9958
10200
|
/**
|
|
9959
|
-
*
|
|
9960
|
-
*
|
|
9961
|
-
*
|
|
10201
|
+
* Updates the active cell after month navigation (prev/next buttons).
|
|
10202
|
+
* Always moves the active cell to the first enabled date in the newly
|
|
10203
|
+
* visible months so that tabbing back to the grid lands on an enabled cell.
|
|
9962
10204
|
* @private
|
|
9963
10205
|
* @returns {void}
|
|
9964
10206
|
*/
|
|
9965
10207
|
updateActiveCellForVisibleMonth() {
|
|
9966
|
-
//
|
|
9967
|
-
//
|
|
9968
|
-
|
|
9969
|
-
|
|
9970
|
-
|
|
9971
|
-
|
|
9972
|
-
|
|
10208
|
+
// Use double-rAF to ensure child month/cell components have fully
|
|
10209
|
+
// rendered and cached their button references before we set tabindex.
|
|
10210
|
+
requestAnimationFrame(() => {
|
|
10211
|
+
requestAnimationFrame(() => {
|
|
10212
|
+
const newDate = this.computeActiveDate({ skipDateFrom: true });
|
|
10213
|
+
|
|
10214
|
+
if (newDate !== null && newDate !== undefined) {
|
|
10215
|
+
this.activeCellDate = newDate;
|
|
10216
|
+
this.setActiveCell(this.activeCellDate);
|
|
10217
|
+
}
|
|
10218
|
+
});
|
|
9973
10219
|
});
|
|
9974
10220
|
}
|
|
9975
10221
|
|
|
@@ -10066,7 +10312,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10066
10312
|
*/
|
|
10067
10313
|
focusCloseButton() {
|
|
10068
10314
|
const bibtemplate = this.shadowRoot.querySelector(this.bibtemplateTag._$litStatic$);
|
|
10069
|
-
if (bibtemplate)
|
|
10315
|
+
if (bibtemplate) {
|
|
10316
|
+
bibtemplate.focusCloseButton();
|
|
10317
|
+
}
|
|
10070
10318
|
}
|
|
10071
10319
|
|
|
10072
10320
|
/**
|
|
@@ -10095,7 +10343,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10095
10343
|
getAllFocusableCells() {
|
|
10096
10344
|
const months = this.getMonthComponents();
|
|
10097
10345
|
let cells = [];
|
|
10098
|
-
months.forEach(month => {
|
|
10346
|
+
months.forEach((month) => {
|
|
10099
10347
|
cells = cells.concat(month.getFocusableCells());
|
|
10100
10348
|
});
|
|
10101
10349
|
return cells;
|
|
@@ -10103,37 +10351,87 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10103
10351
|
|
|
10104
10352
|
/**
|
|
10105
10353
|
* Sets the active cell across all months. Only one cell has tabindex="0" at a time.
|
|
10354
|
+
* Uses imperative DOM manipulation — no Lit re-render triggered.
|
|
10355
|
+
* Also updates ariaActiveDescendantElement on the grid wrapper so
|
|
10356
|
+
* screen readers announce the active cell without moving DOM focus.
|
|
10106
10357
|
* @param {Number} date - Unix timestamp of the cell to activate.
|
|
10107
10358
|
* @returns {void}
|
|
10108
10359
|
*/
|
|
10109
10360
|
setActiveCell(date) {
|
|
10110
10361
|
const allCells = this.getAllFocusableCells();
|
|
10111
10362
|
|
|
10112
|
-
|
|
10113
|
-
|
|
10363
|
+
let newActiveCell = null;
|
|
10364
|
+
allCells.forEach((cell) => {
|
|
10365
|
+
if (cell.day && cell.day.date === date) {
|
|
10366
|
+
cell.setActive();
|
|
10367
|
+
newActiveCell = cell;
|
|
10368
|
+
} else if (cell.active) {
|
|
10369
|
+
cell.clearActive();
|
|
10370
|
+
}
|
|
10114
10371
|
});
|
|
10115
10372
|
|
|
10116
10373
|
this.activeCellDate = date;
|
|
10374
|
+
|
|
10375
|
+
// Apply activeCell ring only when the grid currently has focus.
|
|
10376
|
+
if (newActiveCell && this._gridHasFocus) {
|
|
10377
|
+
const btn = newActiveCell._cachedButton || newActiveCell.shadowRoot.querySelector('button.day');
|
|
10378
|
+
if (btn) {
|
|
10379
|
+
btn.classList.add('activeCell');
|
|
10380
|
+
}
|
|
10381
|
+
}
|
|
10117
10382
|
}
|
|
10118
10383
|
|
|
10119
10384
|
/**
|
|
10120
|
-
* Focuses the
|
|
10121
|
-
*
|
|
10122
|
-
*
|
|
10385
|
+
* Focuses the calendar grid wrapper and sets the active cell.
|
|
10386
|
+
* DOM focus stays on the grid wrapper; the aria-live region
|
|
10387
|
+
* tells the screen reader which cell is "active".
|
|
10123
10388
|
* @returns {void}
|
|
10124
10389
|
*/
|
|
10125
10390
|
focusActiveCell() {
|
|
10126
|
-
if (this.activeCellDate
|
|
10391
|
+
if (this.activeCellDate !== null && this.activeCellDate !== undefined) {
|
|
10127
10392
|
this.setActiveCell(this.activeCellDate);
|
|
10128
10393
|
}
|
|
10129
10394
|
|
|
10130
|
-
const
|
|
10131
|
-
|
|
10395
|
+
const gridWrapper = this.shadowRoot.querySelector('#calendarGrid');
|
|
10396
|
+
if (gridWrapper) {
|
|
10397
|
+
gridWrapper.focus({ preventScroll: true,
|
|
10398
|
+
focusVisible: true });
|
|
10399
|
+
}
|
|
10400
|
+
}
|
|
10401
|
+
|
|
10402
|
+
/**
|
|
10403
|
+
* Shows the activeCell ring when the grid gains focus.
|
|
10404
|
+
* @private
|
|
10405
|
+
* @returns {void}
|
|
10406
|
+
*/
|
|
10407
|
+
handleGridFocusIn() {
|
|
10408
|
+
this._gridHasFocus = true;
|
|
10409
|
+
const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
|
|
10132
10410
|
if (activeCell) {
|
|
10133
|
-
activeCell.
|
|
10134
|
-
|
|
10135
|
-
|
|
10411
|
+
const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
|
|
10412
|
+
if (btn) {
|
|
10413
|
+
btn.classList.add('activeCell');
|
|
10414
|
+
}
|
|
10415
|
+
}
|
|
10416
|
+
}
|
|
10417
|
+
|
|
10418
|
+
/**
|
|
10419
|
+
* Hides the activeCell ring when the grid loses focus.
|
|
10420
|
+
* @private
|
|
10421
|
+
* @returns {void}
|
|
10422
|
+
*/
|
|
10423
|
+
handleGridFocusOut() {
|
|
10424
|
+
this._gridHasFocus = false;
|
|
10425
|
+
// Remove activeCell from ALL cells to prevent stale rings.
|
|
10426
|
+
const allCells = this.getAllFocusableCells();
|
|
10427
|
+
for (const cell of allCells) {
|
|
10428
|
+
const btn = cell._cachedButton || cell.shadowRoot.querySelector('button.day');
|
|
10429
|
+
if (btn) {
|
|
10430
|
+
btn.classList.remove('activeCell');
|
|
10431
|
+
}
|
|
10136
10432
|
}
|
|
10433
|
+
// Clear range hover preview so no highlight lingers after focus leaves the grid.
|
|
10434
|
+
this.clearRangePreview();
|
|
10137
10435
|
}
|
|
10138
10436
|
|
|
10139
10437
|
/**
|
|
@@ -10147,7 +10445,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10147
10445
|
* 5b. First enabled date scanning forward from finite min (unbounded max)
|
|
10148
10446
|
* 5c. First enabled date scanning backward from finite max (unbounded min)
|
|
10149
10447
|
* 6. First in-range date (even if blackout) so focus can land somewhere
|
|
10150
|
-
* 7.
|
|
10448
|
+
* 7. Undefined — no valid target.
|
|
10151
10449
|
*
|
|
10152
10450
|
* @private
|
|
10153
10451
|
* @param {Object} [options] - Optional settings.
|
|
@@ -10162,12 +10460,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10162
10460
|
/**
|
|
10163
10461
|
* Adds days to a timestamp using Date arithmetic to handle DST correctly.
|
|
10164
10462
|
* Returns a local-midnight-aligned timestamp in seconds.
|
|
10463
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
10464
|
+
* @param {Number} days - Number of days to add.
|
|
10465
|
+
* @returns {Number} The adjusted timestamp in seconds.
|
|
10165
10466
|
*/
|
|
10166
10467
|
const addDays = (ts, days) => {
|
|
10167
|
-
const
|
|
10168
|
-
|
|
10169
|
-
|
|
10170
|
-
return Math.floor(
|
|
10468
|
+
const date = new Date(ts * 1000);
|
|
10469
|
+
date.setDate(date.getDate() + days);
|
|
10470
|
+
date.setHours(0, 0, 0, 0);
|
|
10471
|
+
return Math.floor(date.getTime() / 1000);
|
|
10171
10472
|
};
|
|
10172
10473
|
|
|
10173
10474
|
const rawMin = Number(this.min);
|
|
@@ -10178,9 +10479,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10178
10479
|
const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
|
|
10179
10480
|
|
|
10180
10481
|
// Build a Set of blackout timestamps for O(1) lookup.
|
|
10181
|
-
const blackoutSet = new Set(
|
|
10182
|
-
(this.disabledDays || []).map(d => parseInt(d, 10))
|
|
10183
|
-
);
|
|
10482
|
+
const blackoutSet = new Set(this.disabledDays.map((day) => parseInt(day, 10)));
|
|
10184
10483
|
|
|
10185
10484
|
// Also include ISO-format blackoutDates from the datepicker if available.
|
|
10186
10485
|
// Parse YYYY-MM-DD as local date to avoid UTC shift issues.
|
|
@@ -10189,19 +10488,25 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10189
10488
|
for (const isoStr of isoBlackouts) {
|
|
10190
10489
|
const parts = isoStr.split('-');
|
|
10191
10490
|
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))
|
|
10491
|
+
if (Number.isFinite(ts)) {
|
|
10492
|
+
blackoutSet.add(ts);
|
|
10493
|
+
}
|
|
10193
10494
|
}
|
|
10194
10495
|
}
|
|
10195
10496
|
|
|
10196
10497
|
/**
|
|
10197
10498
|
* A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
|
|
10198
10499
|
* it is within [min, max] AND not a blackout day.
|
|
10500
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
10501
|
+
* @returns {boolean} True if the date is enabled.
|
|
10199
10502
|
*/
|
|
10200
10503
|
const isEnabled = (ts) => ts >= minTs && ts <= maxTs && !blackoutSet.has(ts);
|
|
10201
10504
|
|
|
10202
10505
|
/**
|
|
10203
10506
|
* A date is "in range" (focusable in the grid) when it is within [min, max].
|
|
10204
10507
|
* Blackout dates are focusable but not selectable.
|
|
10508
|
+
* @param {Number} ts - Unix timestamp in seconds.
|
|
10509
|
+
* @returns {boolean} True if the date is in range.
|
|
10205
10510
|
*/
|
|
10206
10511
|
const isInRange = (ts) => ts >= minTs && ts <= maxTs;
|
|
10207
10512
|
|
|
@@ -10210,7 +10515,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10210
10515
|
// the newly visible month rather than the (possibly off-screen) selection.
|
|
10211
10516
|
if (!options.skipDateFrom && this.dateFrom) {
|
|
10212
10517
|
const parsedFrom = parseInt(this.dateFrom, 10);
|
|
10213
|
-
if (Number.isFinite(parsedFrom) && isInRange(parsedFrom))
|
|
10518
|
+
if (Number.isFinite(parsedFrom) && isInRange(parsedFrom)) {
|
|
10519
|
+
return parsedFrom;
|
|
10520
|
+
}
|
|
10214
10521
|
}
|
|
10215
10522
|
|
|
10216
10523
|
// 2. Today's date (midnight-aligned) if enabled.
|
|
@@ -10237,32 +10544,35 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10237
10544
|
const visibleEnd = new Date(centralYear, centralMonth + 1, 0); // last day of month
|
|
10238
10545
|
visibleEnd.setHours(0, 0, 0, 0);
|
|
10239
10546
|
const startTs = Math.floor(visibleStart.getTime() / 1000);
|
|
10240
|
-
const endTs = Math.floor(visibleEnd.getTime() / 1000);
|
|
10241
10547
|
const daysInMonth = visibleEnd.getDate();
|
|
10242
10548
|
|
|
10243
|
-
for (let idx = 0; idx < daysInMonth; idx
|
|
10549
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
10244
10550
|
const ts = addDays(startTs, idx);
|
|
10245
|
-
if (ts
|
|
10246
|
-
|
|
10551
|
+
if (isEnabled(ts)) {
|
|
10552
|
+
return ts;
|
|
10553
|
+
}
|
|
10247
10554
|
}
|
|
10248
10555
|
|
|
10249
10556
|
// No enabled date in the visible month — fall back to first in-range
|
|
10250
10557
|
// date in the month so focus still lands on a focusable cell.
|
|
10251
|
-
for (let idx = 0; idx < daysInMonth; idx
|
|
10558
|
+
for (let idx = 0; idx < daysInMonth; idx += 1) {
|
|
10252
10559
|
const ts = addDays(startTs, idx);
|
|
10253
|
-
if (ts
|
|
10254
|
-
|
|
10560
|
+
if (isInRange(ts)) {
|
|
10561
|
+
return ts;
|
|
10562
|
+
}
|
|
10255
10563
|
}
|
|
10256
10564
|
}
|
|
10257
10565
|
}
|
|
10258
10566
|
|
|
10259
|
-
if (isEnabled(now))
|
|
10567
|
+
if (isEnabled(now)) {
|
|
10568
|
+
return now;
|
|
10569
|
+
}
|
|
10260
10570
|
|
|
10261
10571
|
// When a centralDate is configured (or inferred), constrain the scan to the
|
|
10262
10572
|
// rendered month(s) first so a single-month calendar does not pick a date
|
|
10263
10573
|
// that has no DOM cell. Determine the visible range based on centralDate and
|
|
10264
10574
|
// the number of rendered months.
|
|
10265
|
-
const renderedMonths = this.numCalendars
|
|
10575
|
+
const renderedMonths = Math.max(this.numCalendars, 1);
|
|
10266
10576
|
const visibleAnchor = centralDateValue && !isNaN(centralDateValue.getTime())
|
|
10267
10577
|
? centralDateValue
|
|
10268
10578
|
: new Date(now * 1000);
|
|
@@ -10275,40 +10585,52 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10275
10585
|
const visDays = Math.round((visEndTs - visStartTs) / 86400) + 1;
|
|
10276
10586
|
|
|
10277
10587
|
// Scan visible months for an enabled date.
|
|
10278
|
-
for (let idx = 0; idx < visDays; idx
|
|
10588
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
10279
10589
|
const ts = addDays(visStartTs, idx);
|
|
10280
|
-
if (ts
|
|
10281
|
-
|
|
10590
|
+
if (isEnabled(ts)) {
|
|
10591
|
+
return ts;
|
|
10592
|
+
}
|
|
10282
10593
|
}
|
|
10283
10594
|
|
|
10284
10595
|
// No enabled date in visible months — try an in-range (focusable) date so
|
|
10285
10596
|
// keyboard focus still has a tabindex="0" target.
|
|
10286
|
-
for (let idx = 0; idx < visDays; idx
|
|
10597
|
+
for (let idx = 0; idx < visDays; idx += 1) {
|
|
10287
10598
|
const ts = addDays(visStartTs, idx);
|
|
10288
|
-
if (ts
|
|
10289
|
-
|
|
10599
|
+
if (isInRange(ts)) {
|
|
10600
|
+
return ts;
|
|
10601
|
+
}
|
|
10290
10602
|
}
|
|
10291
10603
|
|
|
10292
10604
|
// 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
|
|
10605
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10294
10606
|
const ts = addDays(now, idx);
|
|
10295
|
-
if (Number.isFinite(maxTs) && ts > maxTs)
|
|
10296
|
-
|
|
10607
|
+
if (Number.isFinite(maxTs) && ts > maxTs) {
|
|
10608
|
+
break;
|
|
10609
|
+
}
|
|
10610
|
+
if (isEnabled(ts)) {
|
|
10611
|
+
return ts;
|
|
10612
|
+
}
|
|
10297
10613
|
}
|
|
10298
10614
|
|
|
10299
10615
|
// 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
|
|
10616
|
+
for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10301
10617
|
const ts = addDays(now, -idx);
|
|
10302
|
-
if (Number.isFinite(minTs) && ts < minTs)
|
|
10303
|
-
|
|
10618
|
+
if (Number.isFinite(minTs) && ts < minTs) {
|
|
10619
|
+
break;
|
|
10620
|
+
}
|
|
10621
|
+
if (isEnabled(ts)) {
|
|
10622
|
+
return ts;
|
|
10623
|
+
}
|
|
10304
10624
|
}
|
|
10305
10625
|
|
|
10306
10626
|
// 5. If scans missed (e.g. min/max range is far from today), fall back to
|
|
10307
10627
|
// the first enabled date in the [min, max] range.
|
|
10308
10628
|
if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
10309
10629
|
let ts = minTs;
|
|
10310
|
-
for (let idx = 0; ts <= maxTs; idx
|
|
10311
|
-
if (isEnabled(ts))
|
|
10630
|
+
for (let idx = 0; ts <= maxTs; idx += 1) {
|
|
10631
|
+
if (isEnabled(ts)) {
|
|
10632
|
+
return ts;
|
|
10633
|
+
}
|
|
10312
10634
|
ts = addDays(minTs, idx + 1);
|
|
10313
10635
|
}
|
|
10314
10636
|
}
|
|
@@ -10316,29 +10638,191 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10316
10638
|
// 5b. Finite min with unbounded max (e.g. minDate far in the future):
|
|
10317
10639
|
// scan forward from min for up to MAX_SCAN_DAYS.
|
|
10318
10640
|
if (Number.isFinite(minTs) && !Number.isFinite(maxTs)) {
|
|
10319
|
-
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx
|
|
10641
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10320
10642
|
const ts = addDays(minTs, idx);
|
|
10321
|
-
if (isEnabled(ts))
|
|
10643
|
+
if (isEnabled(ts)) {
|
|
10644
|
+
return ts;
|
|
10645
|
+
}
|
|
10322
10646
|
}
|
|
10323
10647
|
}
|
|
10324
10648
|
|
|
10325
10649
|
// 5c. Unbounded min with a finite max far in the past (e.g. birth-date picker):
|
|
10326
10650
|
// scan backward from max for up to MAX_SCAN_DAYS.
|
|
10327
10651
|
if (!Number.isFinite(minTs) && Number.isFinite(maxTs)) {
|
|
10328
|
-
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx
|
|
10652
|
+
for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
|
|
10329
10653
|
const ts = addDays(maxTs, -idx);
|
|
10330
|
-
if (isEnabled(ts))
|
|
10654
|
+
if (isEnabled(ts)) {
|
|
10655
|
+
return ts;
|
|
10656
|
+
}
|
|
10331
10657
|
}
|
|
10332
10658
|
}
|
|
10333
10659
|
|
|
10334
10660
|
// 6. All dates are blackout — fall back to the first in-range date so focus
|
|
10335
10661
|
// still lands on a focusable (but not selectable) cell.
|
|
10336
|
-
if (Number.isFinite(minTs) && isInRange(minTs))
|
|
10337
|
-
|
|
10662
|
+
if (Number.isFinite(minTs) && isInRange(minTs)) {
|
|
10663
|
+
return minTs;
|
|
10664
|
+
}
|
|
10665
|
+
if (isInRange(now)) {
|
|
10666
|
+
return now;
|
|
10667
|
+
}
|
|
10338
10668
|
|
|
10339
10669
|
return undefined;
|
|
10340
10670
|
}
|
|
10341
10671
|
|
|
10672
|
+
/**
|
|
10673
|
+
* Checks if a target date (unix seconds) is within the configured [min, max] range.
|
|
10674
|
+
* Returns false if the date falls outside the range, preventing navigation
|
|
10675
|
+
* to months where all dates are disabled.
|
|
10676
|
+
* @private
|
|
10677
|
+
* @param {Number} targetTs - Unix timestamp in seconds.
|
|
10678
|
+
* @returns {Boolean} True if the date is within range.
|
|
10679
|
+
*/
|
|
10680
|
+
isDateInRange(targetTs) {
|
|
10681
|
+
const rawMin = Number(this.min);
|
|
10682
|
+
const rawMax = Number(this.max);
|
|
10683
|
+
if (Number.isFinite(rawMin) && targetTs < rawMin) {
|
|
10684
|
+
return false;
|
|
10685
|
+
}
|
|
10686
|
+
if (Number.isFinite(rawMax) && targetTs > rawMax) {
|
|
10687
|
+
return false;
|
|
10688
|
+
}
|
|
10689
|
+
return true;
|
|
10690
|
+
}
|
|
10691
|
+
|
|
10692
|
+
/**
|
|
10693
|
+
* Handles arrow key navigation on the calendar grid wrapper.
|
|
10694
|
+
* Focus stays on the grid wrapper; only ariaActiveDescendantElement
|
|
10695
|
+
* and the visual active-cell indicator change.
|
|
10696
|
+
* @private
|
|
10697
|
+
* @param {KeyboardEvent} event - The keyboard event.
|
|
10698
|
+
* @returns {void}
|
|
10699
|
+
*/
|
|
10700
|
+
handleGridKeyDown(event) {
|
|
10701
|
+
const { key } = event;
|
|
10702
|
+
const actionKeys = [
|
|
10703
|
+
'ArrowRight',
|
|
10704
|
+
'ArrowLeft',
|
|
10705
|
+
'ArrowDown',
|
|
10706
|
+
'ArrowUp',
|
|
10707
|
+
'Enter',
|
|
10708
|
+
' '
|
|
10709
|
+
];
|
|
10710
|
+
|
|
10711
|
+
if (!actionKeys.includes(key)) {
|
|
10712
|
+
return;
|
|
10713
|
+
}
|
|
10714
|
+
|
|
10715
|
+
event.preventDefault();
|
|
10716
|
+
|
|
10717
|
+
const allCells = this.getAllFocusableCells();
|
|
10718
|
+
if (allCells.length === 0) {
|
|
10719
|
+
return;
|
|
10720
|
+
}
|
|
10721
|
+
|
|
10722
|
+
const activeCell = allCells.find((cell) => cell.active);
|
|
10723
|
+
if (!activeCell) {
|
|
10724
|
+
return;
|
|
10725
|
+
}
|
|
10726
|
+
|
|
10727
|
+
// Handle Enter/Space to select the active cell
|
|
10728
|
+
if (key === 'Enter' || key === ' ') {
|
|
10729
|
+
activeCell.handleTap();
|
|
10730
|
+
return;
|
|
10731
|
+
}
|
|
10732
|
+
|
|
10733
|
+
const activeIndex = allCells.indexOf(activeCell);
|
|
10734
|
+
|
|
10735
|
+
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
10736
|
+
const direction = key === 'ArrowRight' ? 1 : -1;
|
|
10737
|
+
const targetIndex = activeIndex + direction;
|
|
10738
|
+
|
|
10739
|
+
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
10740
|
+
// Target cell exists in rendered months
|
|
10741
|
+
this.setActiveCell(allCells[targetIndex].day.date);
|
|
10742
|
+
this.scrollToActiveCell();
|
|
10743
|
+
// Dispatch focus event for the cell so live region + range preview update
|
|
10744
|
+
this.handleCellFocused({ detail: { date: allCells[targetIndex].day.date } });
|
|
10745
|
+
} else {
|
|
10746
|
+
// At boundary — need to navigate to next/prev month
|
|
10747
|
+
const navDir = direction === 1 ? 'next' : 'prev';
|
|
10748
|
+
const targetDate = new Date(activeCell.day.date * 1000);
|
|
10749
|
+
targetDate.setDate(targetDate.getDate() + direction);
|
|
10750
|
+
targetDate.setHours(0, 0, 0, 0);
|
|
10751
|
+
const targetTs = Math.floor(targetDate.getTime() / 1000);
|
|
10752
|
+
|
|
10753
|
+
if (this.isDateInRange(targetTs) && ((navDir === 'next' && this.showNextMonthBtn) || (navDir === 'prev' && this.showPrevMonthBtn))) { // eslint-disable-line no-extra-parens
|
|
10754
|
+
|
|
10755
|
+
if (navDir === 'next') {
|
|
10756
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10757
|
+
} else {
|
|
10758
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10759
|
+
}
|
|
10760
|
+
requestAnimationFrame(() => {
|
|
10761
|
+
requestAnimationFrame(() => {
|
|
10762
|
+
const cells = this.getAllFocusableCells();
|
|
10763
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
|
|
10764
|
+
if (target) {
|
|
10765
|
+
this.setActiveCell(target.day.date);
|
|
10766
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
10767
|
+
} else if (cells.length > 0) {
|
|
10768
|
+
const fallback = navDir === 'next' ? cells[cells.length - 1] : cells[0];
|
|
10769
|
+
this.setActiveCell(fallback.day.date);
|
|
10770
|
+
this.handleCellFocused({ detail: { date: fallback.day.date } });
|
|
10771
|
+
}
|
|
10772
|
+
// Re-focus grid wrapper after month change re-render
|
|
10773
|
+
this.focusActiveCell();
|
|
10774
|
+
});
|
|
10775
|
+
});
|
|
10776
|
+
}
|
|
10777
|
+
}
|
|
10778
|
+
} else if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
10779
|
+
const increment = key === 'ArrowDown' ? 7 : -7;
|
|
10780
|
+
const currentDate = new Date(activeCell.day.date * 1000);
|
|
10781
|
+
currentDate.setDate(currentDate.getDate() + increment);
|
|
10782
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
10783
|
+
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
10784
|
+
|
|
10785
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
10786
|
+
|
|
10787
|
+
if (targetCell) {
|
|
10788
|
+
this.setActiveCell(targetCell.day.date);
|
|
10789
|
+
this.scrollToActiveCell();
|
|
10790
|
+
this.handleCellFocused({ detail: { date: targetCell.day.date } });
|
|
10791
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
10792
|
+
// Target might be in an unrendered month
|
|
10793
|
+
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
10794
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
10795
|
+
if (navDirection === 'next') {
|
|
10796
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10797
|
+
} else {
|
|
10798
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10799
|
+
}
|
|
10800
|
+
requestAnimationFrame(() => {
|
|
10801
|
+
requestAnimationFrame(() => {
|
|
10802
|
+
const cells = this.getAllFocusableCells();
|
|
10803
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
10804
|
+
if (target) {
|
|
10805
|
+
this.setActiveCell(target.day.date);
|
|
10806
|
+
this.handleCellFocused({ detail: { date: target.day.date } });
|
|
10807
|
+
} else if (cells.length > 0) {
|
|
10808
|
+
let nearest = null;
|
|
10809
|
+
|
|
10810
|
+
if (navDirection === 'next') {
|
|
10811
|
+
[nearest] = cells;
|
|
10812
|
+
} else {
|
|
10813
|
+
nearest = cells[cells.length - 1];
|
|
10814
|
+
}
|
|
10815
|
+
this.setActiveCell(nearest.day.date);
|
|
10816
|
+
this.handleCellFocused({ detail: { date: nearest.day.date } });
|
|
10817
|
+
}
|
|
10818
|
+
this.focusActiveCell();
|
|
10819
|
+
});
|
|
10820
|
+
});
|
|
10821
|
+
}
|
|
10822
|
+
}
|
|
10823
|
+
}
|
|
10824
|
+
}
|
|
10825
|
+
|
|
10342
10826
|
/**
|
|
10343
10827
|
* Handles cross-month boundary navigation events from month components.
|
|
10344
10828
|
* @private
|
|
@@ -10351,15 +10835,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10351
10835
|
if (key === 'ArrowRight' || key === 'ArrowLeft') {
|
|
10352
10836
|
// Linear navigation: find adjacent focusable cell across months
|
|
10353
10837
|
const allCells = this.getAllFocusableCells();
|
|
10354
|
-
const currentIndex = allCells.findIndex(cell => cell.day && cell.day.date === fromDate);
|
|
10838
|
+
const currentIndex = allCells.findIndex((cell) => cell.day && cell.day.date === fromDate);
|
|
10355
10839
|
|
|
10356
|
-
if (currentIndex === -1)
|
|
10840
|
+
if (currentIndex === -1) {
|
|
10841
|
+
return;
|
|
10842
|
+
}
|
|
10357
10843
|
|
|
10358
|
-
let targetIndex;
|
|
10844
|
+
let targetIndex = -1;
|
|
10359
10845
|
if (direction === 'next') {
|
|
10360
10846
|
targetIndex = currentIndex + 1;
|
|
10361
|
-
} else {
|
|
10362
|
-
targetIndex = currentIndex - 1;
|
|
10363
10847
|
}
|
|
10364
10848
|
|
|
10365
10849
|
if (targetIndex >= 0 && targetIndex < allCells.length) {
|
|
@@ -10377,11 +10861,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10377
10861
|
nextDate.setHours(0, 0, 0, 0);
|
|
10378
10862
|
const nextTs = Math.floor(nextDate.getTime() / 1000);
|
|
10379
10863
|
|
|
10380
|
-
this.
|
|
10864
|
+
if (!this.isDateInRange(nextTs)) {
|
|
10865
|
+
return;
|
|
10866
|
+
}
|
|
10867
|
+
|
|
10868
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10381
10869
|
requestAnimationFrame(() => {
|
|
10382
10870
|
requestAnimationFrame(() => {
|
|
10383
10871
|
const cells = this.getAllFocusableCells();
|
|
10384
|
-
const target = cells.find(cell => cell.day && cell.day.date === nextTs);
|
|
10872
|
+
const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
|
|
10385
10873
|
if (target) {
|
|
10386
10874
|
this.setActiveCell(target.day.date);
|
|
10387
10875
|
this.focusActiveCell();
|
|
@@ -10399,11 +10887,15 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10399
10887
|
prevDate.setHours(0, 0, 0, 0);
|
|
10400
10888
|
const prevTs = Math.floor(prevDate.getTime() / 1000);
|
|
10401
10889
|
|
|
10402
|
-
this.
|
|
10890
|
+
if (!this.isDateInRange(prevTs)) {
|
|
10891
|
+
return;
|
|
10892
|
+
}
|
|
10893
|
+
|
|
10894
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10403
10895
|
requestAnimationFrame(() => {
|
|
10404
10896
|
requestAnimationFrame(() => {
|
|
10405
10897
|
const cells = this.getAllFocusableCells();
|
|
10406
|
-
const target = cells.find(cell => cell.day && cell.day.date === prevTs);
|
|
10898
|
+
const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
|
|
10407
10899
|
if (target) {
|
|
10408
10900
|
this.setActiveCell(target.day.date);
|
|
10409
10901
|
this.focusActiveCell();
|
|
@@ -10425,25 +10917,25 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10425
10917
|
const targetDate = Math.floor(currentDate.getTime() / 1000);
|
|
10426
10918
|
|
|
10427
10919
|
const allCells = this.getAllFocusableCells();
|
|
10428
|
-
|
|
10920
|
+
const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
10429
10921
|
|
|
10430
10922
|
if (targetCell) {
|
|
10431
10923
|
this.setActiveCell(targetCell.day.date);
|
|
10432
10924
|
this.scrollToActiveCell();
|
|
10433
10925
|
this.focusActiveCell();
|
|
10434
|
-
} else {
|
|
10926
|
+
} else if (this.isDateInRange(targetDate)) {
|
|
10435
10927
|
// Target might be in an unrendered month, navigate there
|
|
10436
10928
|
const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
|
|
10437
|
-
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) {
|
|
10929
|
+
if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
|
|
10438
10930
|
if (navDirection === 'next') {
|
|
10439
|
-
this.handleNextMonth();
|
|
10931
|
+
this.handleNextMonth({ skipActiveUpdate: true });
|
|
10440
10932
|
} else {
|
|
10441
|
-
this.handlePrevMonth();
|
|
10933
|
+
this.handlePrevMonth({ skipActiveUpdate: true });
|
|
10442
10934
|
}
|
|
10443
10935
|
requestAnimationFrame(() => {
|
|
10444
10936
|
requestAnimationFrame(() => {
|
|
10445
10937
|
const cells = this.getAllFocusableCells();
|
|
10446
|
-
const target = cells.find(cell => cell.day && cell.day.date === targetDate);
|
|
10938
|
+
const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
|
|
10447
10939
|
if (target) {
|
|
10448
10940
|
this.setActiveCell(target.day.date);
|
|
10449
10941
|
this.focusActiveCell();
|
|
@@ -10469,7 +10961,195 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10469
10961
|
handleCellActivate(event) {
|
|
10470
10962
|
const { date } = event.detail;
|
|
10471
10963
|
this.setActiveCell(date);
|
|
10472
|
-
|
|
10964
|
+
|
|
10965
|
+
// Don't call focusActiveCell() here. The tap/click already placed
|
|
10966
|
+
// focus on the cell button, and moving it to #calendarGrid would
|
|
10967
|
+
// trigger focusout on the button, closing any open popover on the
|
|
10968
|
+
// cell. Keyboard events are composed and still bubble through
|
|
10969
|
+
// shadow DOM boundaries to the grid's @keydown handler, so
|
|
10970
|
+
// subsequent keyboard navigation continues to work.
|
|
10971
|
+
}
|
|
10972
|
+
|
|
10973
|
+
/**
|
|
10974
|
+
* Handles focus events from calendar cells.
|
|
10975
|
+
* Updates the live region with an SR announcement and triggers
|
|
10976
|
+
* the imperative range preview if applicable.
|
|
10977
|
+
* @private
|
|
10978
|
+
* @param {CustomEvent} event - The calendar-cell-focused event.
|
|
10979
|
+
* @returns {void}
|
|
10980
|
+
*/
|
|
10981
|
+
handleCellFocused(event) {
|
|
10982
|
+
const { date } = event.detail;
|
|
10983
|
+
if (date === null) {
|
|
10984
|
+
return;
|
|
10985
|
+
}
|
|
10986
|
+
|
|
10987
|
+
// With aria-activedescendant, the button no longer receives native focus,
|
|
10988
|
+
// so we use the debounced live region for the full context announcement.
|
|
10989
|
+
const announcement = this.buildFocusAnnouncement(date);
|
|
10990
|
+
this.announceFocusDebounced(announcement);
|
|
10991
|
+
|
|
10992
|
+
// Update the range preview imperatively if in range-preview mode.
|
|
10993
|
+
this.updateRangePreview(date);
|
|
10994
|
+
}
|
|
10995
|
+
|
|
10996
|
+
/**
|
|
10997
|
+
* Builds a full SR announcement string for a focused cell date.
|
|
10998
|
+
* Includes the localized date, range position, popover content,
|
|
10999
|
+
* and blackout status.
|
|
11000
|
+
* @private
|
|
11001
|
+
* @param {Number} date - Unix timestamp (seconds) of the focused cell.
|
|
11002
|
+
* @returns {String} The announcement string.
|
|
11003
|
+
*/
|
|
11004
|
+
buildFocusAnnouncement(date) {
|
|
11005
|
+
let label = this.formatAnnouncementDate(date);
|
|
11006
|
+
|
|
11007
|
+
// Append date slot content (e.g. prices) if present.
|
|
11008
|
+
const dateObj = new Date(date * 1000);
|
|
11009
|
+
const mm = String(dateObj.getMonth() + 1).padStart(2, '0');
|
|
11010
|
+
const dd = String(dateObj.getDate()).padStart(2, '0');
|
|
11011
|
+
const yyyy = dateObj.getFullYear();
|
|
11012
|
+
const dateStr = `${mm}_${dd}_${yyyy}`;
|
|
11013
|
+
const dateSlotEl = this.datepicker?.querySelector(`[slot="date_${dateStr}"]`);
|
|
11014
|
+
if (dateSlotEl) {
|
|
11015
|
+
const text = dateSlotEl.innerText?.trim();
|
|
11016
|
+
if (text) {
|
|
11017
|
+
label += `, ${text}`;
|
|
11018
|
+
}
|
|
11019
|
+
}
|
|
11020
|
+
|
|
11021
|
+
// Append popover content if present.
|
|
11022
|
+
const popoverEl = this.datepicker?.querySelector(`[slot="popover_${dateStr}"]`);
|
|
11023
|
+
if (popoverEl) {
|
|
11024
|
+
const text = popoverEl.innerText?.trim();
|
|
11025
|
+
if (text) {
|
|
11026
|
+
label += `, ${text}`;
|
|
11027
|
+
}
|
|
11028
|
+
}
|
|
11029
|
+
|
|
11030
|
+
// Append range position context.
|
|
11031
|
+
if (this.datepicker?.hasAttribute('range')) {
|
|
11032
|
+
const rangeLabel = this.getRangePositionLabel(date);
|
|
11033
|
+
if (rangeLabel) {
|
|
11034
|
+
label += `, ${rangeLabel}`;
|
|
11035
|
+
}
|
|
11036
|
+
}
|
|
11037
|
+
|
|
11038
|
+
// Append blackout label.
|
|
11039
|
+
if (this.isDateBlackout(date)) {
|
|
11040
|
+
label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
|
|
11041
|
+
}
|
|
11042
|
+
|
|
11043
|
+
return label;
|
|
11044
|
+
}
|
|
11045
|
+
|
|
11046
|
+
/**
|
|
11047
|
+
* Determines the range position label for a given date.
|
|
11048
|
+
* @private
|
|
11049
|
+
* @param {Number} date - Unix timestamp (seconds).
|
|
11050
|
+
* @returns {String|null} The range position label, or null.
|
|
11051
|
+
*/
|
|
11052
|
+
getRangePositionLabel(date) {
|
|
11053
|
+
const parsedFrom = Number.parseInt(this.dateFrom, 10);
|
|
11054
|
+
if (!Number.isFinite(parsedFrom)) {
|
|
11055
|
+
return null;
|
|
11056
|
+
}
|
|
11057
|
+
|
|
11058
|
+
const departTs = startOfDay(parsedFrom * 1000) / 1000;
|
|
11059
|
+
const parsedTo = Number.parseInt(this.dateTo, 10);
|
|
11060
|
+
const hasTo = Number.isFinite(parsedTo);
|
|
11061
|
+
const returnTs = hasTo ? startOfDay(parsedTo * 1000) / 1000 : null;
|
|
11062
|
+
|
|
11063
|
+
if (date === departTs) {
|
|
11064
|
+
return this.datepicker.rangeLabelStart || 'range start';
|
|
11065
|
+
}
|
|
11066
|
+
if (hasTo && date === returnTs) {
|
|
11067
|
+
return this.datepicker.rangeLabelEnd || 'range end';
|
|
11068
|
+
}
|
|
11069
|
+
if (date < departTs) {
|
|
11070
|
+
return this.datepicker.rangeLabelBeforeRange || 'before range';
|
|
11071
|
+
}
|
|
11072
|
+
if (hasTo && date > departTs && date < returnTs) {
|
|
11073
|
+
return this.datepicker.rangeLabelInRange || 'in range';
|
|
11074
|
+
}
|
|
11075
|
+
return this.datepicker.rangeLabelAfterRange || 'after range';
|
|
11076
|
+
}
|
|
11077
|
+
|
|
11078
|
+
/**
|
|
11079
|
+
* Checks whether a given date is a blackout date.
|
|
11080
|
+
* @private
|
|
11081
|
+
* @param {Number} dateTs - Unix timestamp (seconds).
|
|
11082
|
+
* @returns {Boolean} True if the date is blacked out.
|
|
11083
|
+
*/
|
|
11084
|
+
isDateBlackout(dateTs) {
|
|
11085
|
+
// Check legacy disabledDays.
|
|
11086
|
+
if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
|
|
11087
|
+
if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
|
|
11088
|
+
return true;
|
|
11089
|
+
}
|
|
11090
|
+
}
|
|
11091
|
+
|
|
11092
|
+
// Check ISO blackoutDates.
|
|
11093
|
+
const blackoutDates = this.datepicker?.blackoutDates;
|
|
11094
|
+
if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
|
|
11095
|
+
const date = new Date(dateTs * 1000);
|
|
11096
|
+
const yyyy = date.getFullYear();
|
|
11097
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
11098
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
11099
|
+
if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
|
|
11100
|
+
return true;
|
|
11101
|
+
}
|
|
11102
|
+
}
|
|
11103
|
+
|
|
11104
|
+
return false;
|
|
11105
|
+
}
|
|
11106
|
+
|
|
11107
|
+
/**
|
|
11108
|
+
* Updates the range preview classes imperatively across all cells.
|
|
11109
|
+
* Only active when in range mode with dateFrom set and dateTo not yet set.
|
|
11110
|
+
* @private
|
|
11111
|
+
* @param {Number} hoveredDate - Unix timestamp of the hovered/focused date.
|
|
11112
|
+
* @returns {void}
|
|
11113
|
+
*/
|
|
11114
|
+
updateRangePreview(hoveredDate) {
|
|
11115
|
+
if (this.noRange || !this.dateFrom || this.dateTo) {
|
|
11116
|
+
return;
|
|
11117
|
+
}
|
|
11118
|
+
|
|
11119
|
+
const parsedDateFrom = parseInt(this.dateFrom, 10);
|
|
11120
|
+
const allCells = this.getAllFocusableCells();
|
|
11121
|
+
|
|
11122
|
+
allCells.forEach((cell) => {
|
|
11123
|
+
cell.updateRangePreviewClasses(hoveredDate, parsedDateFrom);
|
|
11124
|
+
});
|
|
11125
|
+
}
|
|
11126
|
+
|
|
11127
|
+
/**
|
|
11128
|
+
* Clears range preview classes from all cells.
|
|
11129
|
+
* @private
|
|
11130
|
+
* @returns {void}
|
|
11131
|
+
*/
|
|
11132
|
+
clearRangePreview() {
|
|
11133
|
+
if (this.dateFrom && this.dateTo) {
|
|
11134
|
+
return;
|
|
11135
|
+
}
|
|
11136
|
+
|
|
11137
|
+
const allCells = this.getAllFocusableCells();
|
|
11138
|
+
allCells.forEach((cell) => {
|
|
11139
|
+
cell.clearRangePreviewClasses();
|
|
11140
|
+
});
|
|
11141
|
+
}
|
|
11142
|
+
|
|
11143
|
+
/**
|
|
11144
|
+
* Overrides the base class handler to prevent setting `this.hoveredDate`
|
|
11145
|
+
* as a reactive property. Instead, handles the range preview imperatively.
|
|
11146
|
+
* @private
|
|
11147
|
+
* @param {CustomEvent} event - The hovered-date-changed event from a month.
|
|
11148
|
+
* @returns {void}
|
|
11149
|
+
*/
|
|
11150
|
+
hoveredDateChanged(event) {
|
|
11151
|
+
const hoveredDate = event.detail.value;
|
|
11152
|
+
this.updateRangePreview(hoveredDate);
|
|
10473
11153
|
}
|
|
10474
11154
|
|
|
10475
11155
|
/**
|
|
@@ -10478,7 +11158,9 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10478
11158
|
* @returns {void}
|
|
10479
11159
|
*/
|
|
10480
11160
|
scrollToActiveCell() {
|
|
10481
|
-
if (this.activeCellDate
|
|
11161
|
+
if (this.activeCellDate === null || this.activeCellDate === undefined) {
|
|
11162
|
+
return;
|
|
11163
|
+
}
|
|
10482
11164
|
|
|
10483
11165
|
const date = new Date(this.activeCellDate * 1000);
|
|
10484
11166
|
const month = date.getMonth() + 1;
|
|
@@ -10488,25 +11170,138 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10488
11170
|
|
|
10489
11171
|
if (monthElem) {
|
|
10490
11172
|
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
10491
|
-
monthElem.scrollIntoView({ block: 'nearest',
|
|
11173
|
+
monthElem.scrollIntoView({ block: 'nearest',
|
|
11174
|
+
behavior: prefersReducedMotion ? 'instant' : 'smooth' });
|
|
10492
11175
|
}
|
|
10493
11176
|
}
|
|
10494
11177
|
|
|
10495
11178
|
/**
|
|
10496
|
-
*
|
|
11179
|
+
* Returns (and lazily creates) an aria-live region inside the dropdown's
|
|
11180
|
+
* <dialog> element. This placement is critical for two reasons:
|
|
11181
|
+
*
|
|
11182
|
+
* 1. Inside the dialog's accessible scope — dialog.showModal() makes
|
|
11183
|
+
* everything outside the top-layer dialog inert, and desktop modal
|
|
11184
|
+
* mode uses _setPageInert() on document.body siblings. A live region
|
|
11185
|
+
* on document.body would be invisible to screen readers in both cases.
|
|
11186
|
+
*
|
|
11187
|
+
* 2. Not nested in shadow DOM — Chrome inconsistently observes aria-live
|
|
11188
|
+
* mutations inside shadow DOM across machines and versions. The dialog
|
|
11189
|
+
* element is only one shadow root deep (the dropdown bib's shadow DOM),
|
|
11190
|
+
* which Chrome handles reliably. The calendar's own shadow DOM (nested
|
|
11191
|
+
* inside the bib via slotting) is two+ levels deep and unreliable.
|
|
11192
|
+
*
|
|
11193
|
+
* @private
|
|
11194
|
+
* @returns {HTMLElement} The live region element.
|
|
11195
|
+
*/
|
|
11196
|
+
getOrCreateLiveRegion() {
|
|
11197
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
11198
|
+
return this._liveRegion;
|
|
11199
|
+
}
|
|
11200
|
+
|
|
11201
|
+
// Access the dialog element inside the dropdown bib's shadow DOM.
|
|
11202
|
+
const dialog = this.dropdown?.bibContent?.shadowRoot?.querySelector('dialog');
|
|
11203
|
+
if (!dialog) {
|
|
11204
|
+
return null;
|
|
11205
|
+
}
|
|
11206
|
+
|
|
11207
|
+
// Check if we already created one for this calendar instance.
|
|
11208
|
+
const regionId = `auro-calendar-live-${this._calendarInstanceId}`;
|
|
11209
|
+
const existing = dialog.querySelector(`#${regionId}`);
|
|
11210
|
+
if (existing) {
|
|
11211
|
+
this._liveRegion = existing;
|
|
11212
|
+
return existing;
|
|
11213
|
+
}
|
|
11214
|
+
|
|
11215
|
+
const el = document.createElement('div');
|
|
11216
|
+
el.id = regionId;
|
|
11217
|
+
el.setAttribute('aria-live', 'assertive');
|
|
11218
|
+
el.setAttribute('aria-atomic', 'true');
|
|
11219
|
+
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;';
|
|
11220
|
+
dialog.appendChild(el);
|
|
11221
|
+
|
|
11222
|
+
this._liveRegion = el;
|
|
11223
|
+
return el;
|
|
11224
|
+
}
|
|
11225
|
+
|
|
11226
|
+
/**
|
|
11227
|
+
* Removes the live region when this calendar is disconnected.
|
|
11228
|
+
* @private
|
|
11229
|
+
* @returns {void}
|
|
11230
|
+
*/
|
|
11231
|
+
disconnectedCallback() {
|
|
11232
|
+
super.disconnectedCallback();
|
|
11233
|
+
|
|
11234
|
+
// Cancel any pending announcements so they don't fire after teardown.
|
|
11235
|
+
if (this._announceRafId) {
|
|
11236
|
+
cancelAnimationFrame(this._announceRafId);
|
|
11237
|
+
this._announceRafId = null;
|
|
11238
|
+
}
|
|
11239
|
+
if (this._focusAnnounceTimer) {
|
|
11240
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
11241
|
+
this._focusAnnounceTimer = null;
|
|
11242
|
+
}
|
|
11243
|
+
|
|
11244
|
+
if (this._liveRegion && this._liveRegion.isConnected) {
|
|
11245
|
+
this._liveRegion.remove();
|
|
11246
|
+
}
|
|
11247
|
+
this._liveRegion = null;
|
|
11248
|
+
}
|
|
11249
|
+
|
|
11250
|
+
/**
|
|
11251
|
+
* Announces a date selection or focus change via the live region.
|
|
11252
|
+
* Uses requestAnimationFrame to ensure the clear and set happen in
|
|
11253
|
+
* separate rendering frames — Chrome may coalesce synchronous or
|
|
11254
|
+
* microtask-deferred mutations into a single accessibility tree update.
|
|
10497
11255
|
* @private
|
|
10498
11256
|
* @param {String} dateStr - The localized date string to announce.
|
|
10499
11257
|
* @returns {void}
|
|
10500
11258
|
*/
|
|
10501
11259
|
announceSelection(dateStr) {
|
|
10502
|
-
|
|
10503
|
-
|
|
10504
|
-
|
|
10505
|
-
|
|
10506
|
-
|
|
11260
|
+
// Cancel any previously queued rAF announcement so a rapid
|
|
11261
|
+
// sequence of calls (e.g. bib open → month nav) only announces
|
|
11262
|
+
// the last one.
|
|
11263
|
+
if (this._announceRafId) {
|
|
11264
|
+
cancelAnimationFrame(this._announceRafId);
|
|
11265
|
+
}
|
|
11266
|
+
const liveRegion = this.getOrCreateLiveRegion();
|
|
11267
|
+
if (!liveRegion) {
|
|
11268
|
+
return;
|
|
11269
|
+
}
|
|
11270
|
+
|
|
11271
|
+
// Double-rAF: clear in frame N, set in frame N+1. Chrome batches
|
|
11272
|
+
// accessibility tree mutations within a single animation frame, so
|
|
11273
|
+
// a same-frame clear+set can be coalesced into a no-op if the new
|
|
11274
|
+
// value matches a recently announced string. Splitting across two
|
|
11275
|
+
// frames guarantees Chrome sees two distinct tree states and fires
|
|
11276
|
+
// a new accessibility event for the content change.
|
|
11277
|
+
liveRegion.textContent = '';
|
|
11278
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
11279
|
+
this._announceRafId = requestAnimationFrame(() => {
|
|
10507
11280
|
liveRegion.textContent = dateStr;
|
|
11281
|
+
this._announceRafId = null;
|
|
10508
11282
|
});
|
|
11283
|
+
});
|
|
11284
|
+
}
|
|
11285
|
+
|
|
11286
|
+
/**
|
|
11287
|
+
* Debounced version of announceSelection for focus navigation.
|
|
11288
|
+
* Uses the assertive live region with a 150ms debounce so only the
|
|
11289
|
+
* final cell after rapid arrow-key traversal is announced. We
|
|
11290
|
+
* originally tried aria-live="polite" here, but VoiceOver treats
|
|
11291
|
+
* polite as "wait until idle" — which never happens during active
|
|
11292
|
+
* keyboard navigation — so the announcements were silently dropped.
|
|
11293
|
+
* @private
|
|
11294
|
+
* @param {String} dateStr - The localized date string to announce.
|
|
11295
|
+
* @returns {void}
|
|
11296
|
+
*/
|
|
11297
|
+
announceFocusDebounced(dateStr) {
|
|
11298
|
+
if (this._focusAnnounceTimer) {
|
|
11299
|
+
clearTimeout(this._focusAnnounceTimer);
|
|
10509
11300
|
}
|
|
11301
|
+
this._focusAnnounceTimer = setTimeout(() => {
|
|
11302
|
+
this.announceSelection(dateStr);
|
|
11303
|
+
this._focusAnnounceTimer = null;
|
|
11304
|
+
}, 150);
|
|
10510
11305
|
}
|
|
10511
11306
|
|
|
10512
11307
|
/**
|
|
@@ -10519,12 +11314,16 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10519
11314
|
const date = new Date(parseInt(timestamp, 10) * 1000);
|
|
10520
11315
|
const localeCode = this.locale?.code || undefined;
|
|
10521
11316
|
const formatter = new Intl.DateTimeFormat(localeCode, {
|
|
10522
|
-
weekday: 'long',
|
|
11317
|
+
weekday: 'long',
|
|
11318
|
+
year: 'numeric',
|
|
11319
|
+
month: 'long',
|
|
11320
|
+
day: 'numeric'
|
|
10523
11321
|
});
|
|
10524
11322
|
return formatter.format(date);
|
|
10525
11323
|
}
|
|
10526
11324
|
|
|
10527
11325
|
firstUpdated() {
|
|
11326
|
+
|
|
10528
11327
|
this.addEventListener('date-from-changed', () => {
|
|
10529
11328
|
this.dispatchEvent(new CustomEvent('auroCalendar-dateSelected', {
|
|
10530
11329
|
bubbles: true,
|
|
@@ -10553,6 +11352,11 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10553
11352
|
this.addEventListener('calendar-cell-activate', (event) => {
|
|
10554
11353
|
this.handleCellActivate(event);
|
|
10555
11354
|
});
|
|
11355
|
+
|
|
11356
|
+
// Listen for cell focus events (SR announcements + range preview)
|
|
11357
|
+
this.addEventListener('calendar-cell-focused', (event) => {
|
|
11358
|
+
this.handleCellFocused(event);
|
|
11359
|
+
});
|
|
10556
11360
|
}
|
|
10557
11361
|
|
|
10558
11362
|
injectSlot(slotName, nodes) {
|
|
@@ -10579,7 +11383,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10579
11383
|
if (changedProperties.has('visible')) {
|
|
10580
11384
|
if (this.visible) {
|
|
10581
11385
|
// Compute the active date eagerly from data — no DOM needed.
|
|
10582
|
-
if (this.activeCellDate == null) {
|
|
11386
|
+
if (this.activeCellDate == null) { // eslint-disable-line no-eq-null, eqeqeq
|
|
10583
11387
|
this.activeCellDate = this.computeActiveDate();
|
|
10584
11388
|
}
|
|
10585
11389
|
|
|
@@ -10647,7 +11451,7 @@ class AuroCalendar extends RangeDatepicker {
|
|
|
10647
11451
|
</button>
|
|
10648
11452
|
` : undefined}
|
|
10649
11453
|
</div>
|
|
10650
|
-
<div class="calendars">
|
|
11454
|
+
<div id="calendarGrid" class="calendars" role="group" tabindex="0" @keydown="${this.handleGridKeyDown}" @focusin="${this.handleGridFocusIn}" @focusout="${this.handleGridFocusOut}" @calendar-month-mouseleave="${this.clearRangePreview}">
|
|
10651
11455
|
${this.renderAllCalendars()}
|
|
10652
11456
|
</div>
|
|
10653
11457
|
</div>
|
|
@@ -14556,7 +15360,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
|
|
|
14556
15360
|
}
|
|
14557
15361
|
};
|
|
14558
15362
|
|
|
14559
|
-
var formkitVersion$1 = '
|
|
15363
|
+
var formkitVersion$1 = '202606022350';
|
|
14560
15364
|
|
|
14561
15365
|
let AuroElement$2 = class AuroElement extends i$1 {
|
|
14562
15366
|
static get properties() {
|
|
@@ -15549,16 +16353,20 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
15549
16353
|
|
|
15550
16354
|
// Walk up the ancestor chain, inerting siblings at each level
|
|
15551
16355
|
// to ensure the entire page outside the host subtree is inert.
|
|
16356
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
16357
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
15552
16358
|
let current = host;
|
|
15553
16359
|
while (current.parentElement) {
|
|
15554
16360
|
const parent = current.parentElement;
|
|
15555
16361
|
for (const sibling of parent.children) {
|
|
15556
16362
|
if (sibling !== current) {
|
|
15557
|
-
|
|
15558
|
-
|
|
15559
|
-
|
|
15560
|
-
}
|
|
16363
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
16364
|
+
if (count === 0) {
|
|
16365
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
16366
|
+
}
|
|
16367
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
15561
16368
|
sibling.inert = true;
|
|
16369
|
+
this._inertSiblings.push(sibling);
|
|
15562
16370
|
}
|
|
15563
16371
|
}
|
|
15564
16372
|
current = parent;
|
|
@@ -15567,14 +16375,23 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
15567
16375
|
|
|
15568
16376
|
/**
|
|
15569
16377
|
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
15570
|
-
*
|
|
15571
|
-
*
|
|
16378
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
16379
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
16380
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
15572
16381
|
* @private
|
|
15573
16382
|
*/
|
|
15574
16383
|
_clearPageInert() {
|
|
15575
16384
|
if (this._inertSiblings) {
|
|
15576
|
-
for (const
|
|
15577
|
-
|
|
16385
|
+
for (const sibling of this._inertSiblings) {
|
|
16386
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
16387
|
+
if (count <= 0) {
|
|
16388
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
16389
|
+
delete sibling.dataset.auroInertCount;
|
|
16390
|
+
delete sibling.dataset.auroInertWas;
|
|
16391
|
+
sibling.inert = wasInert;
|
|
16392
|
+
} else {
|
|
16393
|
+
sibling.dataset.auroInertCount = String(count);
|
|
16394
|
+
}
|
|
15578
16395
|
}
|
|
15579
16396
|
this._inertSiblings = undefined;
|
|
15580
16397
|
}
|
|
@@ -19899,109 +20716,236 @@ class AuroInputUtilities {
|
|
|
19899
20716
|
}
|
|
19900
20717
|
}
|
|
19901
20718
|
|
|
19902
|
-
|
|
20719
|
+
/**
|
|
20720
|
+
* @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.
|
|
20721
|
+
* @param {string} dateStr - Date string to parse.
|
|
20722
|
+
* @param {string} format - Date format to parse.
|
|
20723
|
+
* @returns {{ month?: string, day?: string, year?: string }|undefined}
|
|
20724
|
+
*/
|
|
20725
|
+
function getDateParts(dateStr, format) {
|
|
20726
|
+
if (!dateStr) {
|
|
20727
|
+
return undefined;
|
|
20728
|
+
}
|
|
19903
20729
|
|
|
19904
|
-
|
|
20730
|
+
const formatSeparatorMatch = format.match(/[/.-]/);
|
|
20731
|
+
let valueParts;
|
|
20732
|
+
let formatParts;
|
|
19905
20733
|
|
|
19906
|
-
|
|
19907
|
-
|
|
19908
|
-
|
|
19909
|
-
|
|
19910
|
-
|
|
19911
|
-
|
|
19912
|
-
|
|
20734
|
+
if (formatSeparatorMatch) {
|
|
20735
|
+
const separator = formatSeparatorMatch[0];
|
|
20736
|
+
valueParts = dateStr.split(separator);
|
|
20737
|
+
formatParts = format.split(separator);
|
|
20738
|
+
} else {
|
|
20739
|
+
if (dateStr.match(/[/.-]/)) {
|
|
20740
|
+
throw new Error(
|
|
20741
|
+
"AuroDatepickerUtilities | parseDate: Date string has no separators",
|
|
20742
|
+
);
|
|
20743
|
+
}
|
|
19913
20744
|
|
|
19914
|
-
|
|
19915
|
-
|
|
19916
|
-
|
|
19917
|
-
|
|
20745
|
+
if (dateStr.length !== format.length) {
|
|
20746
|
+
throw new Error(
|
|
20747
|
+
"AuroDatepickerUtilities | parseDate: Date string and format length do not match",
|
|
20748
|
+
);
|
|
20749
|
+
}
|
|
19918
20750
|
|
|
19919
|
-
|
|
19920
|
-
|
|
20751
|
+
valueParts = [dateStr];
|
|
20752
|
+
formatParts = [format];
|
|
20753
|
+
}
|
|
19921
20754
|
|
|
19922
|
-
|
|
19923
|
-
|
|
19924
|
-
|
|
20755
|
+
if (valueParts.length !== formatParts.length) {
|
|
20756
|
+
throw new Error(
|
|
20757
|
+
`AuroDatepickerUtilities | parseDate: Date string and format do not match : ${dateStr} vs ${format}`,
|
|
20758
|
+
);
|
|
20759
|
+
}
|
|
19925
20760
|
|
|
19926
|
-
|
|
19927
|
-
|
|
19928
|
-
throw new Error('AuroDatepickerUtilities | parseDate: Date string and format length do not match');
|
|
19929
|
-
}
|
|
20761
|
+
const result = formatParts.reduce((acc, part, index) => {
|
|
20762
|
+
const value = valueParts[index];
|
|
19930
20763
|
|
|
19931
|
-
|
|
19932
|
-
|
|
19933
|
-
|
|
20764
|
+
if (/m/iu.test(part) && part.length === value.length) {
|
|
20765
|
+
acc.month = value;
|
|
20766
|
+
} else if (/d/iu.test(part) && part.length === value.length) {
|
|
20767
|
+
acc.day = value;
|
|
20768
|
+
} else if (/y/iu.test(part) && part.length === value.length) {
|
|
20769
|
+
acc.year = value;
|
|
20770
|
+
}
|
|
19934
20771
|
|
|
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
|
-
}
|
|
20772
|
+
return acc;
|
|
20773
|
+
}, {});
|
|
19942
20774
|
|
|
19943
|
-
|
|
19944
|
-
|
|
20775
|
+
if (!result.month && !result.day && !result.year) {
|
|
20776
|
+
throw new Error(
|
|
20777
|
+
"AuroDatepickerUtilities | parseDate: Unable to parse date string",
|
|
20778
|
+
);
|
|
20779
|
+
}
|
|
19945
20780
|
|
|
19946
|
-
|
|
19947
|
-
|
|
19948
|
-
return result;
|
|
19949
|
-
}
|
|
20781
|
+
return result;
|
|
20782
|
+
}
|
|
19950
20783
|
|
|
19951
|
-
|
|
19952
|
-
|
|
19953
|
-
|
|
20784
|
+
function isCalendarDate(year, month, day) {
|
|
20785
|
+
let yearNumber = Number(year);
|
|
20786
|
+
const monthNumber = Number(month);
|
|
20787
|
+
const dayNumber = Number(day);
|
|
19954
20788
|
|
|
19955
|
-
|
|
19956
|
-
|
|
19957
|
-
|
|
19958
|
-
|
|
19959
|
-
|
|
19960
|
-
|
|
19961
|
-
|
|
19962
|
-
year: "numeric",
|
|
19963
|
-
month: "2-digit",
|
|
19964
|
-
day: "2-digit",
|
|
19965
|
-
});
|
|
20789
|
+
if (
|
|
20790
|
+
!Number.isInteger(yearNumber) ||
|
|
20791
|
+
!Number.isInteger(monthNumber) ||
|
|
20792
|
+
!Number.isInteger(dayNumber)
|
|
20793
|
+
) {
|
|
20794
|
+
return false;
|
|
20795
|
+
}
|
|
19966
20796
|
|
|
19967
|
-
|
|
19968
|
-
|
|
19969
|
-
|
|
19970
|
-
|
|
19971
|
-
|
|
19972
|
-
|
|
19973
|
-
|
|
20797
|
+
// 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.
|
|
20798
|
+
if (yearNumber < 100 && yearNumber >= 50) {
|
|
20799
|
+
yearNumber += 1900;
|
|
20800
|
+
} else if (yearNumber < 50) {
|
|
20801
|
+
yearNumber += 2000;
|
|
20802
|
+
}
|
|
20803
|
+
|
|
20804
|
+
const stringified = `${String(yearNumber).padStart(4, "0")}-${String(monthNumber).padStart(2, "0")}-${String(dayNumber).padStart(2, "0")}`;
|
|
20805
|
+
const date = new Date(stringified.replace(/[.-]/g, "/"));
|
|
20806
|
+
|
|
20807
|
+
return (
|
|
20808
|
+
!Number.isNaN(date.getTime()) && toISOFormatString(date) === stringified
|
|
20809
|
+
);
|
|
20810
|
+
}
|
|
20811
|
+
|
|
20812
|
+
/**
|
|
20813
|
+
* @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).
|
|
20814
|
+
*
|
|
20815
|
+
* Partial formats are supported: components absent from `format` default to `year → "0"`,
|
|
20816
|
+
* `month → "01"`, `day → "01"` for calendar validation only. The returned object contains
|
|
20817
|
+
* only the fields actually present in the format string — missing fields are never injected.
|
|
20818
|
+
* @param {string} dateStr - Date string to parse.
|
|
20819
|
+
* @param {string} format - Date format to parse.
|
|
20820
|
+
* @returns {{ month?: string, day?: string, year?: string }|undefined}
|
|
20821
|
+
* @throws {Error} Throws when the parsed result does not represent a valid calendar date.
|
|
20822
|
+
*/
|
|
20823
|
+
function parseDate(dateStr, format = "mm/dd/yyyy") {
|
|
20824
|
+
if (!dateStr || !format) {
|
|
20825
|
+
return undefined;
|
|
20826
|
+
}
|
|
20827
|
+
const result = getDateParts(dateStr.trim(), format);
|
|
20828
|
+
|
|
20829
|
+
if (!result) {
|
|
20830
|
+
return undefined;
|
|
20831
|
+
}
|
|
20832
|
+
|
|
20833
|
+
const lowerFormat = format.toLowerCase();
|
|
20834
|
+
const year = lowerFormat.includes("yy") ? result.year : "0";
|
|
20835
|
+
const month = lowerFormat.includes("mm") ? result.month : "01";
|
|
20836
|
+
const day = lowerFormat.includes("dd") ? result.day : "01";
|
|
20837
|
+
|
|
20838
|
+
if (isCalendarDate(year, month, day)) {
|
|
20839
|
+
return result;
|
|
20840
|
+
}
|
|
20841
|
+
|
|
20842
|
+
throw new Error(
|
|
20843
|
+
`AuroDatepickerUtilities | parseDate: Date string is not a valid date ${JSON.stringify(result)} with format ${format}`,
|
|
20844
|
+
);
|
|
20845
|
+
}
|
|
20846
|
+
|
|
20847
|
+
/**
|
|
20848
|
+
* Convert a date object to string format.
|
|
20849
|
+
* @param {Object} date - Date to convert to string.
|
|
20850
|
+
* @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
|
|
20851
|
+
* @returns {String} Returns the date as a string.
|
|
20852
|
+
*/
|
|
20853
|
+
function getDateAsString(date, locale = undefined) {
|
|
20854
|
+
return date.toLocaleDateString(locale, {
|
|
20855
|
+
year: "numeric",
|
|
20856
|
+
month: "2-digit",
|
|
20857
|
+
day: "2-digit",
|
|
20858
|
+
});
|
|
20859
|
+
}
|
|
20860
|
+
|
|
20861
|
+
/**
|
|
20862
|
+
* Converts a date string to a North American date format.
|
|
20863
|
+
* @param {String} dateStr - Date to validate.
|
|
20864
|
+
* @param {String} format - Date format to validate against.
|
|
20865
|
+
* @returns {String}
|
|
20866
|
+
*/
|
|
20867
|
+
function toNorthAmericanFormat$1(dateStr, format) {
|
|
20868
|
+
if (format === "mm/dd/yyyy") {
|
|
20869
|
+
return dateStr;
|
|
20870
|
+
}
|
|
19974
20871
|
|
|
19975
|
-
|
|
19976
|
-
return dateStr;
|
|
19977
|
-
}
|
|
20872
|
+
const parsedDate = parseDate(dateStr, format);
|
|
19978
20873
|
|
|
19979
|
-
|
|
20874
|
+
if (!parsedDate) {
|
|
20875
|
+
throw new Error(
|
|
20876
|
+
"AuroDatepickerUtilities | toNorthAmericanFormat: Unable to parse date string",
|
|
20877
|
+
);
|
|
20878
|
+
}
|
|
19980
20879
|
|
|
19981
|
-
|
|
19982
|
-
throw new Error('AuroDatepickerUtilities | toNorthAmericanFormat: Unable to parse date string');
|
|
19983
|
-
}
|
|
20880
|
+
const { month, day, year } = parsedDate;
|
|
19984
20881
|
|
|
19985
|
-
|
|
20882
|
+
return [month, day, year].filter(Boolean).join("/");
|
|
20883
|
+
}
|
|
19986
20884
|
|
|
19987
|
-
|
|
19988
|
-
|
|
19989
|
-
|
|
19990
|
-
|
|
20885
|
+
/**
|
|
20886
|
+
* Validates that a date string matches the provided format and represents a real calendar date.
|
|
20887
|
+
*
|
|
20888
|
+
* @param {string} dateStr - Date string to validate.
|
|
20889
|
+
* @param {string} [format="yyyy-mm-dd"] - Format of the date string.
|
|
20890
|
+
* @returns {boolean} True when the date string is valid for the provided format, otherwise false.
|
|
20891
|
+
*/
|
|
20892
|
+
function isValidDate(dateStr, format = "yyyy-mm-dd") {
|
|
20893
|
+
try {
|
|
20894
|
+
if (typeof dateStr !== "string" || !dateStr || format?.length < 8) {
|
|
20895
|
+
return false;
|
|
20896
|
+
}
|
|
19991
20897
|
|
|
19992
|
-
|
|
19993
|
-
|
|
19994
|
-
|
|
20898
|
+
if (parseDate(dateStr, format)) {
|
|
20899
|
+
return true;
|
|
20900
|
+
}
|
|
20901
|
+
} catch (error) {
|
|
20902
|
+
return false;
|
|
20903
|
+
}
|
|
20904
|
+
return false;
|
|
20905
|
+
}
|
|
19995
20906
|
|
|
19996
|
-
|
|
19997
|
-
|
|
19998
|
-
|
|
20907
|
+
/**
|
|
20908
|
+
* 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.
|
|
20909
|
+
*
|
|
20910
|
+
* @param {Date} date - Date instance to convert to an ISO-like string.
|
|
20911
|
+
* @returns {string} A string in the format "yyyy-mm-dd" representing the provided date.
|
|
20912
|
+
* @throws {Error} Throws an error when the input is not a valid Date instance.
|
|
20913
|
+
*/
|
|
20914
|
+
function toISOFormatString(date) {
|
|
20915
|
+
if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
|
|
20916
|
+
throw new Error(
|
|
20917
|
+
"AuroDatepickerUtilities | toISOFormatString: Input must be a valid Date instance",
|
|
20918
|
+
);
|
|
20919
|
+
}
|
|
20920
|
+
return `${String(date.getFullYear()).padStart(4, "0")}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
|
|
20921
|
+
}
|
|
19999
20922
|
|
|
20000
|
-
|
|
20001
|
-
|
|
20923
|
+
/**
|
|
20924
|
+
* 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.
|
|
20925
|
+
*
|
|
20926
|
+
* @param {String} dateStr - Date string to convert into a Date object.
|
|
20927
|
+
* @param {String} format - Date format used to parse the string when it is not in ISO format.
|
|
20928
|
+
* @returns {Date|null} Returns a Date instance for valid input or null for non-string input.
|
|
20929
|
+
* @throws {Error} Throws when parsing fails for non-ISO string input.
|
|
20930
|
+
*/
|
|
20931
|
+
function stringToDateInstance(dateStr, format = "yyyy-mm-dd") {
|
|
20932
|
+
if (typeof dateStr !== "string") {
|
|
20933
|
+
return null;
|
|
20002
20934
|
}
|
|
20935
|
+
|
|
20936
|
+
const { month, day, year } = parseDate(dateStr, format);
|
|
20937
|
+
return new Date(`${year}/${month}/${day}`);
|
|
20003
20938
|
}
|
|
20004
|
-
|
|
20939
|
+
|
|
20940
|
+
const dateFormatter = {
|
|
20941
|
+
parseDate,
|
|
20942
|
+
getDateParts,
|
|
20943
|
+
getDateAsString,
|
|
20944
|
+
toNorthAmericanFormat: toNorthAmericanFormat$1,
|
|
20945
|
+
isValidDate,
|
|
20946
|
+
toISOFormatString,
|
|
20947
|
+
stringToDateInstance,
|
|
20948
|
+
};
|
|
20005
20949
|
|
|
20006
20950
|
// filepath: dateConstraints.mjs
|
|
20007
20951
|
const DATE_UTIL_CONSTRAINTS = {
|
|
@@ -20073,12 +21017,11 @@ class AuroDateUtilitiesBase {
|
|
|
20073
21017
|
/* eslint-disable no-magic-numbers */
|
|
20074
21018
|
|
|
20075
21019
|
class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
20076
|
-
|
|
20077
21020
|
/**
|
|
20078
21021
|
* Returns the current century.
|
|
20079
21022
|
* @returns {String} The current century.
|
|
20080
21023
|
*/
|
|
20081
|
-
getCentury
|
|
21024
|
+
getCentury() {
|
|
20082
21025
|
return String(new Date().getFullYear()).slice(0, 2);
|
|
20083
21026
|
}
|
|
20084
21027
|
|
|
@@ -20087,14 +21030,12 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20087
21030
|
* @param {String} year - The year to convert to four digits.
|
|
20088
21031
|
* @returns {String} The four digit year.
|
|
20089
21032
|
*/
|
|
20090
|
-
getFourDigitYear
|
|
20091
|
-
|
|
21033
|
+
getFourDigitYear(year) {
|
|
20092
21034
|
const strYear = String(year).trim();
|
|
20093
21035
|
return strYear.length <= 2 ? this.getCentury() + strYear : strYear;
|
|
20094
21036
|
}
|
|
20095
21037
|
|
|
20096
21038
|
constructor() {
|
|
20097
|
-
|
|
20098
21039
|
super();
|
|
20099
21040
|
|
|
20100
21041
|
/**
|
|
@@ -20103,7 +21044,8 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20103
21044
|
* @param {Object} date2 - Second date to compare.
|
|
20104
21045
|
* @returns {Boolean} Returns true if the dates match.
|
|
20105
21046
|
*/
|
|
20106
|
-
this.datesMatch = (date1, date2) =>
|
|
21047
|
+
this.datesMatch = (date1, date2) =>
|
|
21048
|
+
new Date(date1).getTime() === new Date(date2).getTime();
|
|
20107
21049
|
|
|
20108
21050
|
/**
|
|
20109
21051
|
* Returns true if value passed in is a valid date.
|
|
@@ -20112,53 +21054,41 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20112
21054
|
* @returns {Boolean}
|
|
20113
21055
|
*/
|
|
20114
21056
|
this.validDateStr = (date, format) => {
|
|
20115
|
-
|
|
20116
21057
|
// The length we expect the date string to be
|
|
20117
|
-
const dateStrLength = format
|
|
21058
|
+
const dateStrLength = format?.length || 0;
|
|
20118
21059
|
|
|
20119
21060
|
// Guard Clause: Date and format are defined
|
|
20120
21061
|
if (typeof date === "undefined" || typeof format === "undefined") {
|
|
20121
|
-
throw new Error(
|
|
21062
|
+
throw new Error(
|
|
21063
|
+
"AuroDatepickerUtilities | validateDateStr: Date and format are required",
|
|
21064
|
+
);
|
|
20122
21065
|
}
|
|
20123
21066
|
|
|
20124
21067
|
// Guard Clause: Date should be of type string
|
|
20125
21068
|
if (typeof date !== "string") {
|
|
20126
|
-
throw new Error(
|
|
21069
|
+
throw new Error(
|
|
21070
|
+
"AuroDatepickerUtilities | validateDateStr: Date must be a string",
|
|
21071
|
+
);
|
|
20127
21072
|
}
|
|
20128
21073
|
|
|
20129
21074
|
// Guard Clause: Format should be of type string
|
|
20130
21075
|
if (typeof format !== "string") {
|
|
20131
|
-
throw new Error(
|
|
21076
|
+
throw new Error(
|
|
21077
|
+
"AuroDatepickerUtilities | validateDateStr: Format must be a string",
|
|
21078
|
+
);
|
|
20132
21079
|
}
|
|
20133
21080
|
|
|
20134
21081
|
// Guard Clause: Length is what we expect it to be
|
|
20135
21082
|
if (date.length !== dateStrLength) {
|
|
20136
21083
|
return false;
|
|
20137
21084
|
}
|
|
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
21085
|
|
|
20152
|
-
// Get
|
|
20153
|
-
|
|
20154
|
-
|
|
20155
|
-
|
|
20156
|
-
if (expectedDateStr !== actualDateStr) {
|
|
21086
|
+
// Get a formatted date string and parse and validate it
|
|
21087
|
+
try {
|
|
21088
|
+
return Boolean(dateFormatter.parseDate(date, format));
|
|
21089
|
+
} catch (error) {
|
|
20157
21090
|
return false;
|
|
20158
21091
|
}
|
|
20159
|
-
|
|
20160
|
-
// If we passed all other checks, we can assume the date is valid
|
|
20161
|
-
return true;
|
|
20162
21092
|
};
|
|
20163
21093
|
|
|
20164
21094
|
/**
|
|
@@ -20168,10 +21098,11 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20168
21098
|
* @returns {boolean}
|
|
20169
21099
|
*/
|
|
20170
21100
|
this.dateAndFormatMatch = (value, format) => {
|
|
20171
|
-
|
|
20172
21101
|
// Ensure we have both values we need to do the comparison
|
|
20173
21102
|
if (!value || !format) {
|
|
20174
|
-
throw new Error(
|
|
21103
|
+
throw new Error(
|
|
21104
|
+
"AuroFormValidation | dateFormatMatch: value and format are required",
|
|
21105
|
+
);
|
|
20175
21106
|
}
|
|
20176
21107
|
|
|
20177
21108
|
// If the lengths are different, they cannot match
|
|
@@ -20180,11 +21111,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20180
21111
|
}
|
|
20181
21112
|
|
|
20182
21113
|
// Get the parts of the date
|
|
20183
|
-
const dateParts = dateFormatter.
|
|
21114
|
+
const dateParts = dateFormatter.getDateParts(value, format);
|
|
20184
21115
|
|
|
20185
21116
|
// Validator for day
|
|
20186
21117
|
const dayValueIsValid = (day) => {
|
|
20187
|
-
|
|
20188
21118
|
// Guard clause: if there is no day in the dateParts, we can ignore this check.
|
|
20189
21119
|
if (!dateParts.day) {
|
|
20190
21120
|
return true;
|
|
@@ -20200,7 +21130,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20200
21130
|
|
|
20201
21131
|
// Guard clause: ensure day is a valid integer
|
|
20202
21132
|
if (Number.isNaN(numDay)) {
|
|
20203
|
-
throw new Error(
|
|
21133
|
+
throw new Error(
|
|
21134
|
+
"AuroDatepickerUtilities | dayValueIsValid: Unable to parse day value integer",
|
|
21135
|
+
);
|
|
20204
21136
|
}
|
|
20205
21137
|
|
|
20206
21138
|
// Guard clause: ensure day is within the valid range
|
|
@@ -20214,6 +21146,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20214
21146
|
|
|
20215
21147
|
// Validator for month
|
|
20216
21148
|
const monthValueIsValid = (month) => {
|
|
21149
|
+
// Guard clause: if there is no month in the dateParts, we can ignore this check.
|
|
21150
|
+
if (!dateParts.month) {
|
|
21151
|
+
return true;
|
|
21152
|
+
}
|
|
20217
21153
|
|
|
20218
21154
|
// Guard clause: ensure month exists.
|
|
20219
21155
|
if (!month) {
|
|
@@ -20225,7 +21161,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20225
21161
|
|
|
20226
21162
|
// Guard clause: ensure month is a valid integer
|
|
20227
21163
|
if (Number.isNaN(numMonth)) {
|
|
20228
|
-
throw new Error(
|
|
21164
|
+
throw new Error(
|
|
21165
|
+
"AuroDatepickerUtilities | monthValueIsValid: Unable to parse month value integer",
|
|
21166
|
+
);
|
|
20229
21167
|
}
|
|
20230
21168
|
|
|
20231
21169
|
// Guard clause: ensure month is within the valid range
|
|
@@ -20239,6 +21177,10 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20239
21177
|
|
|
20240
21178
|
// Validator for year
|
|
20241
21179
|
const yearIsValid = (_year) => {
|
|
21180
|
+
// Guard clause: if there is no year in the dateParts, we can ignore this check.
|
|
21181
|
+
if (!dateParts.year) {
|
|
21182
|
+
return true;
|
|
21183
|
+
}
|
|
20242
21184
|
|
|
20243
21185
|
// Guard clause: ensure year exists.
|
|
20244
21186
|
if (!_year) {
|
|
@@ -20253,7 +21195,9 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20253
21195
|
|
|
20254
21196
|
// Guard clause: ensure year is a valid integer
|
|
20255
21197
|
if (Number.isNaN(numYear)) {
|
|
20256
|
-
throw new Error(
|
|
21198
|
+
throw new Error(
|
|
21199
|
+
"AuroDatepickerUtilities | yearValueIsValid: Unable to parse year value integer",
|
|
21200
|
+
);
|
|
20257
21201
|
}
|
|
20258
21202
|
|
|
20259
21203
|
// Guard clause: ensure year is within the valid range
|
|
@@ -20269,7 +21213,7 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
20269
21213
|
const checks = [
|
|
20270
21214
|
monthValueIsValid(dateParts.month),
|
|
20271
21215
|
dayValueIsValid(dateParts.day),
|
|
20272
|
-
yearIsValid(dateParts.year)
|
|
21216
|
+
yearIsValid(dateParts.year),
|
|
20273
21217
|
];
|
|
20274
21218
|
|
|
20275
21219
|
// If any of the checks failed, the date format does not match and the result is invalid
|
|
@@ -20303,10 +21247,7 @@ const {
|
|
|
20303
21247
|
} = dateUtilities;
|
|
20304
21248
|
|
|
20305
21249
|
const {
|
|
20306
|
-
toNorthAmericanFormat
|
|
20307
|
-
parseDate,
|
|
20308
|
-
getDateAsString
|
|
20309
|
-
} = dateFormatter;
|
|
21250
|
+
toNorthAmericanFormat} = dateFormatter;
|
|
20310
21251
|
|
|
20311
21252
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
20312
21253
|
// See LICENSE in the project root for license information.
|
|
@@ -22521,7 +23462,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
|
|
|
22521
23462
|
}
|
|
22522
23463
|
};
|
|
22523
23464
|
|
|
22524
|
-
var formkitVersion = '
|
|
23465
|
+
var formkitVersion = '202606022350';
|
|
22525
23466
|
|
|
22526
23467
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
22527
23468
|
// See LICENSE in the project root for license information.
|
|
@@ -23877,6 +24818,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
23877
24818
|
delegatesFocus: true,
|
|
23878
24819
|
};
|
|
23879
24820
|
}
|
|
24821
|
+
|
|
23880
24822
|
constructor() {
|
|
23881
24823
|
super();
|
|
23882
24824
|
|
|
@@ -24044,7 +24986,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
24044
24986
|
|
|
24045
24987
|
/**
|
|
24046
24988
|
* Defines whether the component will be on lighter or darker backgrounds.
|
|
24047
|
-
* @
|
|
24989
|
+
* @type {'default' | 'inverse'}
|
|
24048
24990
|
* @default 'default'
|
|
24049
24991
|
*/
|
|
24050
24992
|
appearance: {
|
|
@@ -24061,6 +25003,22 @@ class AuroDatePicker extends AuroElement {
|
|
|
24061
25003
|
reflect: true
|
|
24062
25004
|
},
|
|
24063
25005
|
|
|
25006
|
+
/**
|
|
25007
|
+
* Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
|
|
25008
|
+
*/
|
|
25009
|
+
blackoutDates: {
|
|
25010
|
+
type: Array,
|
|
25011
|
+
reflect: true
|
|
25012
|
+
},
|
|
25013
|
+
|
|
25014
|
+
/**
|
|
25015
|
+
* Label announced for blackout (disabled but in-range) date cells.
|
|
25016
|
+
*/
|
|
25017
|
+
blackoutLabel: {
|
|
25018
|
+
type: String,
|
|
25019
|
+
reflect: true
|
|
25020
|
+
},
|
|
25021
|
+
|
|
24064
25022
|
/**
|
|
24065
25023
|
* The last date that may be displayed in the calendar.
|
|
24066
25024
|
*/
|
|
@@ -24116,27 +25074,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
24116
25074
|
reflect: true
|
|
24117
25075
|
},
|
|
24118
25076
|
|
|
24119
|
-
hasFocus: {
|
|
24120
|
-
type: Boolean,
|
|
24121
|
-
reflect: false,
|
|
24122
|
-
},
|
|
24123
|
-
|
|
24124
|
-
/**
|
|
24125
|
-
* @private
|
|
24126
|
-
*/
|
|
24127
|
-
hasValue: {
|
|
24128
|
-
type: Boolean,
|
|
24129
|
-
reflect: false,
|
|
24130
|
-
},
|
|
24131
|
-
|
|
24132
|
-
/**
|
|
24133
|
-
* @private
|
|
24134
|
-
*/
|
|
24135
|
-
hasAllValues: {
|
|
24136
|
-
type: Boolean,
|
|
24137
|
-
reflect: false
|
|
24138
|
-
},
|
|
24139
|
-
|
|
24140
25077
|
/**
|
|
24141
25078
|
* Specifies the date format. The default is `mm/dd/yyyy`.
|
|
24142
25079
|
*/
|
|
@@ -24158,6 +25095,27 @@ class AuroDatePicker extends AuroElement {
|
|
|
24158
25095
|
reflect: true
|
|
24159
25096
|
},
|
|
24160
25097
|
|
|
25098
|
+
/**
|
|
25099
|
+
* @private
|
|
25100
|
+
*/
|
|
25101
|
+
hasAllValues: {
|
|
25102
|
+
type: Boolean,
|
|
25103
|
+
reflect: false
|
|
25104
|
+
},
|
|
25105
|
+
|
|
25106
|
+
hasFocus: {
|
|
25107
|
+
type: Boolean,
|
|
25108
|
+
reflect: false,
|
|
25109
|
+
},
|
|
25110
|
+
|
|
25111
|
+
/**
|
|
25112
|
+
* @private
|
|
25113
|
+
*/
|
|
25114
|
+
hasValue: {
|
|
25115
|
+
type: Boolean,
|
|
25116
|
+
reflect: false,
|
|
25117
|
+
},
|
|
25118
|
+
|
|
24161
25119
|
/** Exposes inputmode attribute for input. */
|
|
24162
25120
|
inputmode: {
|
|
24163
25121
|
type: String,
|
|
@@ -24200,6 +25158,13 @@ class AuroDatePicker extends AuroElement {
|
|
|
24200
25158
|
reflect: true
|
|
24201
25159
|
},
|
|
24202
25160
|
|
|
25161
|
+
/**
|
|
25162
|
+
* @private
|
|
25163
|
+
*/
|
|
25164
|
+
monthFirst: {
|
|
25165
|
+
type: Boolean
|
|
25166
|
+
},
|
|
25167
|
+
|
|
24203
25168
|
/**
|
|
24204
25169
|
* Names of all 12 months to render in the calendar, used for localization of date string in mobile layout.
|
|
24205
25170
|
*/
|
|
@@ -24208,25 +25173,26 @@ class AuroDatePicker extends AuroElement {
|
|
|
24208
25173
|
},
|
|
24209
25174
|
|
|
24210
25175
|
/**
|
|
24211
|
-
*
|
|
25176
|
+
* Accessible label for the next month navigation button.
|
|
24212
25177
|
*/
|
|
24213
|
-
|
|
24214
|
-
type:
|
|
25178
|
+
navLabelNextMonth: {
|
|
25179
|
+
type: String,
|
|
25180
|
+
reflect: true
|
|
24215
25181
|
},
|
|
24216
25182
|
|
|
24217
25183
|
/**
|
|
24218
|
-
*
|
|
24219
|
-
* when there isn't enough space in the specified `placement`.
|
|
25184
|
+
* Accessible label for the previous month navigation button.
|
|
24220
25185
|
*/
|
|
24221
|
-
|
|
24222
|
-
type:
|
|
25186
|
+
navLabelPrevMonth: {
|
|
25187
|
+
type: String,
|
|
24223
25188
|
reflect: true
|
|
24224
25189
|
},
|
|
24225
25190
|
|
|
24226
25191
|
/**
|
|
24227
|
-
* If declared, the
|
|
25192
|
+
* If declared, the bib will NOT flip to an alternate position
|
|
25193
|
+
* when there isn't enough space in the specified `placement`.
|
|
24228
25194
|
*/
|
|
24229
|
-
|
|
25195
|
+
noFlip: {
|
|
24230
25196
|
type: Boolean,
|
|
24231
25197
|
reflect: true
|
|
24232
25198
|
},
|
|
@@ -24293,17 +25259,9 @@ class AuroDatePicker extends AuroElement {
|
|
|
24293
25259
|
},
|
|
24294
25260
|
|
|
24295
25261
|
/**
|
|
24296
|
-
* Label announced for the range start
|
|
24297
|
-
*/
|
|
24298
|
-
rangeLabelStart: {
|
|
24299
|
-
type: String,
|
|
24300
|
-
reflect: true
|
|
24301
|
-
},
|
|
24302
|
-
|
|
24303
|
-
/**
|
|
24304
|
-
* Label announced for the range end date cell.
|
|
25262
|
+
* Label announced for cells after the range (or after start when no end is selected).
|
|
24305
25263
|
*/
|
|
24306
|
-
|
|
25264
|
+
rangeLabelAfterRange: {
|
|
24307
25265
|
type: String,
|
|
24308
25266
|
reflect: true
|
|
24309
25267
|
},
|
|
@@ -24317,49 +25275,25 @@ class AuroDatePicker extends AuroElement {
|
|
|
24317
25275
|
},
|
|
24318
25276
|
|
|
24319
25277
|
/**
|
|
24320
|
-
* Label announced for
|
|
24321
|
-
*/
|
|
24322
|
-
rangeLabelInRange: {
|
|
24323
|
-
type: String,
|
|
24324
|
-
reflect: true
|
|
24325
|
-
},
|
|
24326
|
-
|
|
24327
|
-
/**
|
|
24328
|
-
* Label announced for cells after the range (or after start when no end is selected).
|
|
24329
|
-
*/
|
|
24330
|
-
rangeLabelAfterRange: {
|
|
24331
|
-
type: String,
|
|
24332
|
-
reflect: true
|
|
24333
|
-
},
|
|
24334
|
-
|
|
24335
|
-
/**
|
|
24336
|
-
* Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
|
|
24337
|
-
*/
|
|
24338
|
-
blackoutDates: {
|
|
24339
|
-
type: Array,
|
|
24340
|
-
reflect: true
|
|
24341
|
-
},
|
|
24342
|
-
|
|
24343
|
-
/**
|
|
24344
|
-
* Label announced for blackout (disabled but in-range) date cells.
|
|
25278
|
+
* Label announced for the range end date cell.
|
|
24345
25279
|
*/
|
|
24346
|
-
|
|
25280
|
+
rangeLabelEnd: {
|
|
24347
25281
|
type: String,
|
|
24348
25282
|
reflect: true
|
|
24349
25283
|
},
|
|
24350
25284
|
|
|
24351
25285
|
/**
|
|
24352
|
-
*
|
|
25286
|
+
* Label announced for cells within the selected range.
|
|
24353
25287
|
*/
|
|
24354
|
-
|
|
25288
|
+
rangeLabelInRange: {
|
|
24355
25289
|
type: String,
|
|
24356
25290
|
reflect: true
|
|
24357
25291
|
},
|
|
24358
25292
|
|
|
24359
25293
|
/**
|
|
24360
|
-
*
|
|
25294
|
+
* Label announced for the range start date cell.
|
|
24361
25295
|
*/
|
|
24362
|
-
|
|
25296
|
+
rangeLabelStart: {
|
|
24363
25297
|
type: String,
|
|
24364
25298
|
reflect: true
|
|
24365
25299
|
},
|
|
@@ -24417,6 +25351,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
24417
25351
|
type: String
|
|
24418
25352
|
},
|
|
24419
25353
|
|
|
25354
|
+
/**
|
|
25355
|
+
* If declared, the dropdown will shift its position to avoid being cut off by the viewport.
|
|
25356
|
+
*/
|
|
25357
|
+
shift: {
|
|
25358
|
+
type: Boolean,
|
|
25359
|
+
reflect: true
|
|
25360
|
+
},
|
|
25361
|
+
|
|
24420
25362
|
/**
|
|
24421
25363
|
* Set true to make datepicker stacked style.
|
|
24422
25364
|
*/
|
|
@@ -24425,6 +25367,16 @@ class AuroDatePicker extends AuroElement {
|
|
|
24425
25367
|
reflect: true
|
|
24426
25368
|
},
|
|
24427
25369
|
|
|
25370
|
+
/**
|
|
25371
|
+
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
25372
|
+
* @private
|
|
25373
|
+
*/
|
|
25374
|
+
touched: {
|
|
25375
|
+
type: Boolean,
|
|
25376
|
+
reflect: true,
|
|
25377
|
+
attribute: false
|
|
25378
|
+
},
|
|
25379
|
+
|
|
24428
25380
|
/**
|
|
24429
25381
|
* Specifies the `validityState` this element is in.
|
|
24430
25382
|
*/
|
|
@@ -24445,16 +25397,6 @@ class AuroDatePicker extends AuroElement {
|
|
|
24445
25397
|
*/
|
|
24446
25398
|
valueEnd: {
|
|
24447
25399
|
type: String
|
|
24448
|
-
},
|
|
24449
|
-
|
|
24450
|
-
/**
|
|
24451
|
-
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
24452
|
-
* @private
|
|
24453
|
-
*/
|
|
24454
|
-
touched: {
|
|
24455
|
-
type: Boolean,
|
|
24456
|
-
reflect: true,
|
|
24457
|
-
attribute: false
|
|
24458
25400
|
}
|
|
24459
25401
|
};
|
|
24460
25402
|
}
|
|
@@ -24563,8 +25505,9 @@ class AuroDatePicker extends AuroElement {
|
|
|
24563
25505
|
}
|
|
24564
25506
|
|
|
24565
25507
|
/**
|
|
24566
|
-
* @private
|
|
24567
25508
|
* Common display value wrapper classes.
|
|
25509
|
+
* @private
|
|
25510
|
+
* @returns {Object} Class map for Lit's classMap directive.
|
|
24568
25511
|
*/
|
|
24569
25512
|
get commonDisplayValueWrapperClasses() {
|
|
24570
25513
|
return {
|
|
@@ -24732,7 +25675,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
24732
25675
|
}
|
|
24733
25676
|
|
|
24734
25677
|
// Compute and mark the active cell
|
|
24735
|
-
if (this.calendar.activeCellDate
|
|
25678
|
+
if (this.calendar.activeCellDate === null || this.calendar.activeCellDate === undefined) {
|
|
24736
25679
|
this.calendar.activeCellDate = this.calendar.computeActiveDate();
|
|
24737
25680
|
}
|
|
24738
25681
|
if (this.calendar.activeCellDate !== undefined) {
|
|
@@ -24741,29 +25684,37 @@ class AuroDatePicker extends AuroElement {
|
|
|
24741
25684
|
|
|
24742
25685
|
// If no cell matched (e.g. centralDate month differs from the rendered
|
|
24743
25686
|
// range on mobile), fall back to the first rendered enabled cell.
|
|
24744
|
-
let activeCell = allCells.find(cell => cell.active);
|
|
25687
|
+
let activeCell = allCells.find((cell) => cell.active);
|
|
24745
25688
|
if (!activeCell && allCells.length) {
|
|
24746
|
-
const fallback = allCells
|
|
25689
|
+
const [fallback] = allCells;
|
|
24747
25690
|
if (fallback.day) {
|
|
24748
25691
|
this.calendar.activeCellDate = fallback.day.date;
|
|
24749
25692
|
this.calendar.setActiveCell(this.calendar.activeCellDate);
|
|
24750
|
-
activeCell = allCells.find(cell => cell.active);
|
|
25693
|
+
activeCell = allCells.find((cell) => cell.active);
|
|
24751
25694
|
}
|
|
24752
25695
|
}
|
|
24753
25696
|
|
|
24754
|
-
//
|
|
24755
|
-
//
|
|
25697
|
+
// Focus the calendar grid wrapper (aria-activedescendant handles
|
|
25698
|
+
// the SR announcement for the active cell).
|
|
24756
25699
|
if (activeCell) {
|
|
24757
|
-
|
|
24758
|
-
|
|
24759
|
-
|
|
24760
|
-
|
|
24761
|
-
|
|
24762
|
-
|
|
24763
|
-
|
|
24764
|
-
|
|
24765
|
-
|
|
24766
|
-
|
|
25700
|
+
this.calendar.focusActiveCell();
|
|
25701
|
+
|
|
25702
|
+
// Announce the initial active cell via the live region.
|
|
25703
|
+
// Delay the announcement so it arrives after VoiceOver finishes
|
|
25704
|
+
// speaking the focus-change announcement for the grid wrapper.
|
|
25705
|
+
// Without this delay, VoiceOver drops the live region update
|
|
25706
|
+
// because it's already mid-announcement from the focus move.
|
|
25707
|
+
const announcement = this.calendar.buildFocusAnnouncement(activeCell.day.date);
|
|
25708
|
+
setTimeout(() => {
|
|
25709
|
+
this.calendar.announceSelection(announcement);
|
|
25710
|
+
}, 500);
|
|
25711
|
+
|
|
25712
|
+
// On mobile fullscreen, scroll the month list so the active cell's
|
|
25713
|
+
// month is visible. Without this, the list stays scrolled to the
|
|
25714
|
+
// calendarStartDate month which may be far from the active cell.
|
|
25715
|
+
if (this.dropdown.isBibFullscreen) {
|
|
25716
|
+
this.calendar.scrollToActiveCell();
|
|
25717
|
+
}
|
|
24767
25718
|
} else if (attempts < MAX_ATTEMPTS) {
|
|
24768
25719
|
requestAnimationFrame(tryFocus);
|
|
24769
25720
|
}
|
|
@@ -24913,14 +25864,35 @@ class AuroDatePicker extends AuroElement {
|
|
|
24913
25864
|
if (bibEl && this.dropdown.isPopoverVisible) {
|
|
24914
25865
|
bibEl.close();
|
|
24915
25866
|
bibEl.open(true);
|
|
25867
|
+
}
|
|
25868
|
+
|
|
25869
|
+
// Re-render the calendar with the new fullscreen layout,
|
|
25870
|
+
// then restore focus after the re-render completes.
|
|
25871
|
+
this.calendar.isFullscreen = true;
|
|
25872
|
+
this.calendar.updateComplete.then(() => {
|
|
24916
25873
|
doubleRaf(() => {
|
|
24917
25874
|
this.focusActiveCellWhenReady();
|
|
24918
25875
|
});
|
|
24919
|
-
}
|
|
25876
|
+
});
|
|
24920
25877
|
});
|
|
24921
25878
|
} else if (!this.dropdown.isBibFullscreen) {
|
|
24922
|
-
// Switching from fullscreen to floating — restore trigger accessibility
|
|
24923
|
-
|
|
25879
|
+
// Switching from fullscreen to floating — only restore trigger accessibility
|
|
25880
|
+
// when the bib is closed or the desktop layout is not a modal. A desktopModal
|
|
25881
|
+
// dropdown keeps the trigger inert while open, matching the desktop-open path.
|
|
25882
|
+
if (!this.dropdown.isPopoverVisible || !this.dropdown.desktopModal) {
|
|
25883
|
+
this.dropdown.trigger.inert = false;
|
|
25884
|
+
}
|
|
25885
|
+
|
|
25886
|
+
// Re-render the calendar with the desktop layout,
|
|
25887
|
+
// then restore focus after the re-render completes.
|
|
25888
|
+
this.dropdown.updateComplete.then(() => {
|
|
25889
|
+
this.calendar.isFullscreen = false;
|
|
25890
|
+
this.calendar.updateComplete.then(() => {
|
|
25891
|
+
doubleRaf(() => {
|
|
25892
|
+
this.focusActiveCellWhenReady();
|
|
25893
|
+
});
|
|
25894
|
+
});
|
|
25895
|
+
});
|
|
24924
25896
|
}
|
|
24925
25897
|
});
|
|
24926
25898
|
}
|
|
@@ -25162,12 +26134,14 @@ class AuroDatePicker extends AuroElement {
|
|
|
25162
26134
|
}
|
|
25163
26135
|
|
|
25164
26136
|
const formatted = this.util.toNorthAmericanFormat(dateStr, this.format);
|
|
25165
|
-
if (!this.util.validDateStr(dateStr, this.format))
|
|
26137
|
+
if (!this.util.validDateStr(dateStr, this.format)) {
|
|
26138
|
+
return false;
|
|
26139
|
+
}
|
|
25166
26140
|
|
|
25167
|
-
const
|
|
25168
|
-
const yyyy =
|
|
25169
|
-
const mm = String(
|
|
25170
|
-
const dd = String(
|
|
26141
|
+
const dt = new Date(formatted);
|
|
26142
|
+
const yyyy = dt.getFullYear();
|
|
26143
|
+
const mm = String(dt.getMonth() + 1).padStart(2, '0');
|
|
26144
|
+
const dd = String(dt.getDate()).padStart(2, '0');
|
|
25171
26145
|
return this.blackoutDates.includes(`${yyyy}-${mm}-${dd}`);
|
|
25172
26146
|
}
|
|
25173
26147
|
|
|
@@ -25185,7 +26159,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
25185
26159
|
|
|
25186
26160
|
// After standard validation, check blackout dates for typed input
|
|
25187
26161
|
if (this.validity !== 'customError') {
|
|
25188
|
-
if (this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd))) {
|
|
26162
|
+
if (this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd))) { // eslint-disable-line no-extra-parens
|
|
25189
26163
|
const msg = this.setCustomValidityCustomError || 'Selected date is unavailable';
|
|
25190
26164
|
this.validity = 'customError';
|
|
25191
26165
|
this.errorMessage = msg;
|
|
@@ -25231,7 +26205,13 @@ class AuroDatePicker extends AuroElement {
|
|
|
25231
26205
|
// 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
26206
|
const stringfiedDates = JSON.stringify(this.referenceDates);
|
|
25233
26207
|
if (stringfiedDates.includes('-')) {
|
|
25234
|
-
this.referenceDates = this.referenceDates.map(date => date.replace(/-/gu, '/'
|
|
26208
|
+
this.referenceDates = this.referenceDates.map((date) => date.replace(/-/gu, '/'));
|
|
26209
|
+
}
|
|
26210
|
+
|
|
26211
|
+
// Force calendar cells to re-render with updated reference date state.
|
|
26212
|
+
if (this.calendar) {
|
|
26213
|
+
this.calendar.requestUpdate();
|
|
26214
|
+
this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
|
|
25235
26215
|
}
|
|
25236
26216
|
}
|
|
25237
26217
|
|
|
@@ -25820,7 +26800,7 @@ class AuroDatePicker extends AuroElement {
|
|
|
25820
26800
|
/**
|
|
25821
26801
|
* Handles click on the clear button.
|
|
25822
26802
|
* @private
|
|
25823
|
-
* @param {MouseEvent} event
|
|
26803
|
+
* @param {MouseEvent} event - The mouse event from the clear button click.
|
|
25824
26804
|
* @returns {void}
|
|
25825
26805
|
*/
|
|
25826
26806
|
handleClearClick(event) {
|
|
@@ -26019,13 +26999,24 @@ function blackoutLabelExample() {
|
|
|
26019
26999
|
const today = new Date();
|
|
26020
27000
|
today.setHours(0, 0, 0, 0);
|
|
26021
27001
|
|
|
26022
|
-
//
|
|
26023
|
-
const
|
|
26024
|
-
|
|
27002
|
+
// Calendar starts 6 months in the future
|
|
27003
|
+
const startDate = new Date(today);
|
|
27004
|
+
startDate.setMonth(today.getMonth() + 6);
|
|
27005
|
+
|
|
27006
|
+
// Calendar ends 12 months in the future
|
|
27007
|
+
const endDate = new Date(today);
|
|
27008
|
+
endDate.setMonth(today.getMonth() + 12);
|
|
27009
|
+
|
|
27010
|
+
// Min date is 2 months after the start date
|
|
27011
|
+
const minDate = new Date(startDate);
|
|
27012
|
+
minDate.setMonth(startDate.getMonth() + 2);
|
|
26025
27013
|
|
|
26026
|
-
|
|
26027
|
-
maxDate
|
|
27014
|
+
// Max date is 75 days after min date
|
|
27015
|
+
const maxDate = new Date(minDate);
|
|
27016
|
+
maxDate.setDate(minDate.getDate() + 75);
|
|
26028
27017
|
|
|
27018
|
+
blackoutDP.setAttribute('calendarStartDate', formatMMDDYYYY(startDate));
|
|
27019
|
+
blackoutDP.setAttribute('calendarEndDate', formatMMDDYYYY(endDate));
|
|
26029
27020
|
blackoutDP.setAttribute('minDate', formatMMDDYYYY(minDate));
|
|
26030
27021
|
blackoutDP.setAttribute('maxDate', formatMMDDYYYY(maxDate));
|
|
26031
27022
|
|