@swisspost/internet-header 1.15.12 → 1.15.14

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.
Files changed (42) hide show
  1. package/dist/cjs/index.cjs.js +2 -2
  2. package/dist/cjs/{post-internet-header-73538cc1.js → post-internet-header-47db5e7d.js} +43 -38
  3. package/dist/cjs/post-search-5990da07.js +603 -0
  4. package/dist/cjs/post-search.cjs.entry.js +1 -1
  5. package/dist/cjs/swisspost-internet-header.cjs.entry.js +1 -1
  6. package/dist/collection/components/post-search/post-search.css +1 -1
  7. package/dist/collection/services/route.service.js +41 -36
  8. package/dist/components/post-search2.js +1 -1
  9. package/dist/components/swisspost-internet-header.js +43 -38
  10. package/dist/docs.json +1 -1
  11. package/dist/esm/index.js +2 -2
  12. package/dist/esm/{post-internet-header-96053f9b.js → post-internet-header-9d752aa2.js} +43 -38
  13. package/dist/esm/post-search-814427e8.js +601 -0
  14. package/dist/esm/post-search.entry.js +1 -1
  15. package/dist/esm/swisspost-internet-header.entry.js +1 -1
  16. package/dist/esm-es5/index.js +1 -1
  17. package/dist/esm-es5/post-internet-header-9d752aa2.js +1 -0
  18. package/dist/esm-es5/post-search-814427e8.js +1 -0
  19. package/dist/esm-es5/post-search.entry.js +1 -1
  20. package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
  21. package/dist/swisspost-internet-header/index.esm.js +1 -1
  22. package/dist/swisspost-internet-header/{p-fcdc1363.entry.js → p-0518eae1.entry.js} +1 -1
  23. package/dist/swisspost-internet-header/{p-e5cbad90.system.js → p-3a52d871.system.js} +1 -1
  24. package/dist/swisspost-internet-header/p-46fb08ff.system.js +1 -0
  25. package/dist/swisspost-internet-header/p-4dbf53e6.system.js +1 -0
  26. package/dist/swisspost-internet-header/p-695fe962.system.js +1 -1
  27. package/dist/swisspost-internet-header/p-75fb959c.js +1 -0
  28. package/dist/swisspost-internet-header/{p-41799f6b.system.entry.js → p-899a3c69.system.entry.js} +1 -1
  29. package/dist/swisspost-internet-header/{p-eb84e447.entry.js → p-9a8c8349.entry.js} +1 -1
  30. package/dist/swisspost-internet-header/{p-54a5d06a.system.entry.js → p-caf85cd6.system.entry.js} +1 -1
  31. package/dist/swisspost-internet-header/p-ed62821f.js +1 -0
  32. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
  33. package/dist/types/services/route.service.d.ts +11 -11
  34. package/package.json +2 -2
  35. package/dist/cjs/post-search-b188f1a0.js +0 -603
  36. package/dist/esm/post-search-5ebe2715.js +0 -601
  37. package/dist/esm-es5/post-internet-header-96053f9b.js +0 -1
  38. package/dist/esm-es5/post-search-5ebe2715.js +0 -1
  39. package/dist/swisspost-internet-header/p-2e092180.js +0 -1
  40. package/dist/swisspost-internet-header/p-c073b381.system.js +0 -1
  41. package/dist/swisspost-internet-header/p-c164ea99.system.js +0 -1
  42. package/dist/swisspost-internet-header/p-c2ec169e.js +0 -1
@@ -0,0 +1,601 @@
1
+ import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-bb0e68fd.js';
2
+ import { t as throttle } from './index-d3f1363d.js';
3
+ import { c as clearAllBodyScrollLocks, d as disableBodyScroll, e as enableBodyScroll } from './bodyScrollLock.esm-afcc00e3.js';
4
+ import { s as state } from './store-b1332c1e.js';
5
+ import { e as elementHasTransition, u as userPrefersReducedMotion } from './ui.service-22f2c593.js';
6
+ import { S as SvgSprite } from './svg-sprite.component-d3726867.js';
7
+ import { S as SvgIcon } from './svg-icon.component-70692acc.js';
8
+ import { I as If } from './if.component-d88d9e48.js';
9
+ import { t as translate } from './language.service-490983de.js';
10
+
11
+ let parcelController;
12
+ // https://www.post.ch/api/trackandtrace?id=99.00.306600.01004883
13
+ // Track and trace URL
14
+ const getTrackAndTraceApiUrl = (id) => {
15
+ const lang = state.currentLanguage;
16
+ return `https://www.post.ch/${lang}/api/trackandtrace?id=${encodeURIComponent(id)}`;
17
+ };
18
+ // Get the redire
19
+ const getTrackAndTraceRedirectUrl = (query, { packageTrackingRedirectUrl }) => {
20
+ return packageTrackingRedirectUrl.replace('{trackingNumber}', encodeURIComponent(query));
21
+ };
22
+ /**
23
+ * Check whether a query is a tracking id
24
+ *
25
+ * @param query User query
26
+ * @returns Boolean
27
+ */
28
+ const isParcel = async (query, searchConfig) => {
29
+ const parcelInfo = await getParcelInfo(query, searchConfig);
30
+ return 'sending' in parcelInfo;
31
+ };
32
+ /**
33
+ * Try to get parcel info from a query that is possibly a tracking id.
34
+ * This is mainly used to check if a search should redirect to track&trace instead of the regular search.
35
+ *
36
+ * @param query User query that is possibly a tracking number
37
+ * @returns Track and trace info
38
+ */
39
+ const getParcelInfo = async (query, { redirectPattern }) => {
40
+ const trackingNrPattern = new RegExp(redirectPattern);
41
+ if (trackingNrPattern.test(query)) {
42
+ const url = getTrackAndTraceApiUrl(query);
43
+ if (parcelController !== undefined)
44
+ parcelController.abort();
45
+ parcelController = new AbortController();
46
+ return new Promise((resolve, reject) => {
47
+ fetch(url, { signal: parcelController.signal })
48
+ .then(response => response.json())
49
+ .then((trackAndTraceResult) => {
50
+ resolve(Object.assign(Object.assign({}, trackAndTraceResult), { ok: trackAndTraceResult.ok }));
51
+ })
52
+ .catch(error => {
53
+ if (error.name !== 'AbortError') {
54
+ console.error(`Could not check track and trace API due to error: ${error.message}`);
55
+ reject(error);
56
+ }
57
+ });
58
+ });
59
+ }
60
+ return { ok: false, timestamp: new Date().toDateString() };
61
+ };
62
+ /**
63
+ * Get parcel info if query is a parcel or null
64
+ *
65
+ * @param query Parcel id
66
+ * @returns Parcel info and a redirect url or null if not a parcel
67
+ */
68
+ const getParcelSuggestion = async (query, searchConfig) => {
69
+ const parcelInfo = await getParcelInfo(query, searchConfig);
70
+ return Boolean(parcelInfo.ok)
71
+ ? Object.assign(Object.assign({}, parcelInfo), { url: getTrackAndTraceRedirectUrl(query, searchConfig) }) : null;
72
+ };
73
+
74
+ /**
75
+ * Construct a search page url from a query
76
+ *
77
+ * @param query Search term
78
+ * @returns
79
+ */
80
+ const getSearchRedirectUrl = async (query, searchConfig) => {
81
+ const isTrackTraceId = await isParcel(query, searchConfig);
82
+ return isTrackTraceId
83
+ ? getTrackAndTraceRedirectUrl(query, searchConfig)
84
+ : getSearchPageUrl(query);
85
+ };
86
+ /**
87
+ * Stitch toghether the search page URL
88
+ *
89
+ * @param query Search term
90
+ * @returns Search page URL
91
+ */
92
+ const getSearchPageUrl = (query) => {
93
+ var _a;
94
+ if (((_a = state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search) === undefined) {
95
+ return;
96
+ }
97
+ const { searchPageUrl } = state.localizedConfig.header.search;
98
+ const searchParam = `#q=${encodeURIComponent(query)}`;
99
+ return `${searchPageUrl}${searchParam}&t=AllTab`;
100
+ };
101
+ /**
102
+ * Equalize the length of two arrays while filling up empty slots up to max. length
103
+ *
104
+ * @param arrayA First array
105
+ * @param arrayB Second array
106
+ * @param maxLength Max. length of result array
107
+ * @returns Array with two resulting arrays
108
+ */
109
+ const equalizeArrays = (arrayA, arrayB, maxLength = 7) => {
110
+ const coveoSliced = arrayA.slice(0, Math.max(maxLength / 2, maxLength - arrayB.length));
111
+ return [coveoSliced, arrayB.slice(0, maxLength - coveoSliced.length)];
112
+ };
113
+
114
+ // Coveo constants
115
+ const coveo = {
116
+ url: 'https://platform-eu.cloud.coveo.com/rest/search/v2/querySuggest',
117
+ environment: {
118
+ prod: {
119
+ organisation: 'postchagprod6ef4sbet',
120
+ token: 'xx5b629890-23b9-4fbe-b601-0e8719186969',
121
+ },
122
+ int01: {
123
+ organisation: 'postchagnonprods5sq57qt',
124
+ token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',
125
+ },
126
+ int02: {
127
+ organisation: 'postchagnonprods5sq57qt',
128
+ token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',
129
+ },
130
+ dev01: {
131
+ organisation: 'postchagnonprods5sq57qt',
132
+ token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',
133
+ },
134
+ dev02: {
135
+ organisation: 'postchagnonprods5sq57qt',
136
+ token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',
137
+ },
138
+ devs1: {
139
+ organisation: 'postchagnonprods5sq57qt',
140
+ token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',
141
+ },
142
+ test: {
143
+ organisation: 'postchagnonprods5sq57qt',
144
+ token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',
145
+ },
146
+ },
147
+ };
148
+
149
+ let suggestionsController;
150
+ /**
151
+ * Get suggestions from coveo
152
+ * https://docs.coveo.com/en/1459/build-a-search-ui/get-query-suggestions#context-object
153
+ *
154
+ * @param query Search term
155
+ * @returns
156
+ */
157
+ const getCoveoSuggestions = async (query) => {
158
+ var _a, _b, _c, _d;
159
+ if (((_b = (_a = state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header) === null || _b === void 0 ? void 0 : _b.search) === undefined ||
160
+ ((_d = (_c = state.localizedConfig) === null || _c === void 0 ? void 0 : _c.header) === null || _d === void 0 ? void 0 : _d.search.isCustomSuggestionHidden) === true)
161
+ return [];
162
+ const config = state.localizedConfig.header.search;
163
+ const { token, organisation } = coveo.environment[state.environment];
164
+ const url = `${coveo.url}?q=${query}&locale=${state.currentLanguage}&searchHub=${config.searchHubName}&pipeline=${config.searchPipelineName}&organizationId=${organisation}`;
165
+ if (suggestionsController !== undefined)
166
+ suggestionsController.abort();
167
+ suggestionsController = new AbortController();
168
+ return new Promise((resolve, reject) => {
169
+ fetch(url, {
170
+ signal: suggestionsController.signal,
171
+ method: 'GET',
172
+ headers: {
173
+ Authorization: `Bearer ${token}`,
174
+ },
175
+ })
176
+ .then(response => response.json())
177
+ .then((coveoJSON) => {
178
+ resolve(coveoJSON.completions.map(completion => (Object.assign(Object.assign({}, completion), { redirectUrl: getSearchPageUrl(completion.expression) }))));
179
+ })
180
+ .catch(error => {
181
+ if (error.name !== 'AbortError') {
182
+ console.error(`Fetching coveo suggestions failed, ${error}\nDid you add "*.coveo.com" to your connect-src content security policy and tried turning off your adblocker?`);
183
+ reject(error);
184
+ }
185
+ });
186
+ });
187
+ };
188
+
189
+ // Implement some TOPOS logic into the header search
190
+ const gisAPIUrl = 'https://places.post.ch/StandortSuche/StaoCacheService';
191
+ const placesUrl = 'https://places.post.ch';
192
+
193
+ /**
194
+ * Transform to lowercase, extract accents to separate unicode chars,
195
+ * replace all accent unicode chars so only standard latin chars remain
196
+ * https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript/37511463#37511463
197
+ *
198
+ * @param str Input string
199
+ * @returns
200
+ */
201
+ const hardNormalize = (str) => str
202
+ .toLowerCase()
203
+ .normalize('NFD')
204
+ .replace(/[\u0300-\u036f]/g, '');
205
+
206
+ let placesController;
207
+ /**
208
+ * Query the Gis API for locations and localities (pois)
209
+ *
210
+ * @param query User input string
211
+ * @returns
212
+ */
213
+ const queryPlaces = async (query) => {
214
+ if (query.length === 0) {
215
+ return [];
216
+ }
217
+ const searchParameters = Object.entries({
218
+ query: encodeURIComponent(query),
219
+ lang: state.currentLanguage,
220
+ limit: 7,
221
+ }).reduce((s, [k, v], i) => `${s}${i === 0 ? '?' : '&'}${k}=${v}`, '');
222
+ const url = `${gisAPIUrl}/Geocode${searchParameters}`;
223
+ if (placesController !== undefined)
224
+ placesController.abort();
225
+ placesController = new AbortController();
226
+ return new Promise((resolve, reject) => {
227
+ fetch(url, { signal: placesController.signal })
228
+ .then(response => response.json())
229
+ .then((geocodeJSON) => {
230
+ if (!geocodeJSON.ok)
231
+ throw new Error(geocodeJSON.info);
232
+ resolve(geocodeJSON.locations);
233
+ })
234
+ .catch(error => {
235
+ if (error.name !== 'AbortError') {
236
+ console.error(`Fetching places failed, ${error}\nDid you add "places.post.ch" to your connect-src content security policy?`);
237
+ reject(error);
238
+ }
239
+ });
240
+ });
241
+ };
242
+ /**
243
+ * Try to highlight place suggestions
244
+ * Limitation: accented chars are not handled by this basic function
245
+ *
246
+ * @param query Search term
247
+ * @param place Name of the suggested place
248
+ * @returns
249
+ */
250
+ const highlightPlacesString = (query, place) => {
251
+ if (query === undefined)
252
+ return place;
253
+ // Strip accents from the string
254
+ const reference = hardNormalize(place);
255
+ const q = hardNormalize(query);
256
+ const indexOfQuery = reference.indexOf(q);
257
+ if (indexOfQuery < 0) {
258
+ return place;
259
+ }
260
+ return `${place.substring(0, indexOfQuery)}{${place.substring(indexOfQuery, indexOfQuery + query.length)}}${place.substring(indexOfQuery + query.length, place.length)}`;
261
+ };
262
+ /**
263
+ * Get the deeplink to any location found via geocoder
264
+ *
265
+ * @param location A location from the Gis API Geocode endpoint
266
+ * @returns
267
+ */
268
+ const getPlacesUrl = (location) => {
269
+ let url;
270
+ if (location.id !== undefined) {
271
+ url = `${placesUrl}/${state.currentLanguage}/${location.id}/detail`;
272
+ }
273
+ else {
274
+ url = `${placesUrl}?preselecttext=${encodeURIComponent(location.name)}`;
275
+ }
276
+ return url;
277
+ };
278
+
279
+ const HighlightedText = (props) => {
280
+ var _a;
281
+ const highlightClass = (_a = props.highlightClass) !== null && _a !== void 0 ? _a : 'bold';
282
+ const highlightedString = props.text
283
+ .replace(/[{(]/g, `<span class="${highlightClass}">`)
284
+ .replace(/[})]/g, '</span>')
285
+ .replace(/[\[\]]/g, '');
286
+ return h("span", { innerHTML: highlightedString });
287
+ };
288
+
289
+ const postSearchCss = "@-webkit-keyframes popIn{from{-webkit-transform:scale(0.9);transform:scale(0.9);opacity:0;-webkit-transition-property:opacity,overlay,display,-webkit-transform;transition-property:opacity,overlay,display,-webkit-transform;transition-property:transform,opacity,overlay,display;transition-property:transform,opacity,overlay,display,-webkit-transform;transition-behavior:allow-discrete;-webkit-transition-duration:var(--post-transition-duration, 0.35s);transition-duration:var(--post-transition-duration, 0.35s);-webkit-transition-timing-function:linear(0, 0.007, 0.029 2.2%, 0.118 4.7%, 0.625 14.4%, 0.826 19%, 0.902, 0.962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, 0.999 61.6%, 0.995 71.2%, 1);transition-timing-function:linear(0, 0.007, 0.029 2.2%, 0.118 4.7%, 0.625 14.4%, 0.826 19%, 0.902, 0.962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, 0.999 61.6%, 0.995 71.2%, 1)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes popIn{from{-webkit-transform:scale(0.9);transform:scale(0.9);opacity:0;-webkit-transition-property:opacity,overlay,display,-webkit-transform;transition-property:opacity,overlay,display,-webkit-transform;transition-property:transform,opacity,overlay,display;transition-property:transform,opacity,overlay,display,-webkit-transform;transition-behavior:allow-discrete;-webkit-transition-duration:var(--post-transition-duration, 0.35s);transition-duration:var(--post-transition-duration, 0.35s);-webkit-transition-timing-function:linear(0, 0.007, 0.029 2.2%, 0.118 4.7%, 0.625 14.4%, 0.826 19%, 0.902, 0.962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, 0.999 61.6%, 0.995 71.2%, 1);transition-timing-function:linear(0, 0.007, 0.029 2.2%, 0.118 4.7%, 0.625 14.4%, 0.826 19%, 0.902, 0.962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, 0.999 61.6%, 0.995 71.2%, 1)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}/*!\n * Bootstrap Utilities v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n\n * The MIT License (MIT)\n\n * Copyright (c) 2011-2020 Twitter, Inc.\n * Copyright (c) 2011-2020 The Bootstrap Authors\n\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *//*!\n * Copyright 2021 by Swiss Post, Information Technology\n */.form-label{margin-bottom:.5rem;color:var(--post-contrast-color)}.col-form-label{padding-top:calc(0.875rem + 2px);padding-bottom:calc(0.875rem + 2px);margin-bottom:0;font-size:inherit;line-height:1.5;color:var(--post-contrast-color)}.col-form-label-lg{padding-top:calc(0.75rem + 2px);padding-bottom:calc(0.75rem + 2px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + 2px);padding-bottom:calc(0.25rem + 2px);font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.8125rem;color:var(--post-contrast-color)}.form-control{display:block;width:100%;padding:.875rem 1.125rem;font-size:1rem;font-weight:400;line-height:1.5;color:#000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-clip:padding-box;border:2px solid #333;border-radius:0;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{-webkit-transition:none;transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#000;background-color:#fff;border-color:inherit;outline:0;-webkit-box-shadow:none;box-shadow:none}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-webkit-input-placeholder{color:#666;opacity:1}.form-control::-moz-placeholder{color:#666;opacity:1}.form-control:-ms-input-placeholder{color:#666;opacity:1}.form-control::-ms-input-placeholder{color:#666;opacity:1}.form-control::placeholder{color:#666;opacity:1}.form-control:disabled{color:var(--post-gray-60);background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.4);border-color:var(--post-gray-40);opacity:1}.form-control::-webkit-file-upload-button{padding:.875rem 1.125rem;margin:-0.875rem -1.125rem;-webkit-margin-end:1.125rem;margin-inline-end:1.125rem;color:#000;background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:2px;border-radius:0;-webkit-transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms}.form-control::file-selector-button{padding:.875rem 1.125rem;margin:-0.875rem -1.125rem;-webkit-margin-end:1.125rem;margin-inline-end:1.125rem;color:#000;background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:2px;border-radius:0;-webkit-transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms}@media (prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#fff}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#fff}.form-control-plaintext{display:block;width:100%;padding:.875rem 0;margin-bottom:0;line-height:1.5;color:var(--post-contrast-color);background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:2px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg,.form-floating>.form-control-plaintext.form-control,.form-floating>.form-control-plaintext.form-select{padding-right:0;padding-left:0}.form-control-sm{min-height:1.75rem;padding:.25rem 1rem;font-size:0.875rem;border-radius:0}.form-control-sm::-webkit-file-upload-button{padding:.25rem 1rem;margin:-0.25rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-sm::file-selector-button{padding:.25rem 1rem;margin:-0.25rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg,.form-floating>.form-control,.form-floating>.form-select{min-height:3.125rem;padding:.75rem 1rem;font-size:1.25rem;border-radius:0}.form-control-lg::-webkit-file-upload-button,.form-floating>.form-control::-webkit-file-upload-button,.form-floating>.form-select::-webkit-file-upload-button{padding:.75rem 1rem;margin:-0.75rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button,.form-floating>.form-control::file-selector-button,.form-floating>.form-select::file-selector-button{padding:.75rem 1rem;margin:-0.75rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:3.5rem}textarea.form-control-sm{min-height:1.75rem}textarea.form-control-lg,.form-floating>textarea.form-control,.form-floating>textarea.form-select{min-height:3.125rem}.form-control-color{width:3rem;height:3.5rem;padding:.875rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:0}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:0}.form-control-color.form-control-sm{height:1.75rem}.form-control-color.form-control-lg,.form-floating>.form-control-color.form-control,.form-floating>.form-control-color.form-select{height:3.125rem}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.875rem 1.125rem;font-size:1rem;font-weight:400;line-height:1.5;color:#000;text-align:center;white-space:nowrap;background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);border:2px solid #333;border-radius:0}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.75rem 1rem;font-size:1.25rem;border-radius:0}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem 1rem;font-size:0.875rem;border-radius:0}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:4.5rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(2px * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.form-control-rg{padding:.625rem .875rem;font-size:1rem;line-height:1.5}.form-control-sm{font-size:.875rem;line-height:1.5;min-height:1.75rem;padding-block:.25rem;padding-inline:1rem}.form-control-lg{font-size:1rem !important;line-height:1.5;min-height:3.125rem}textarea.form-control-lg{padding-top:1rem;padding-bottom:.5rem;padding-right:1.5rem;min-height:3.25rem}textarea.form-control-sm{padding-top:.5rem;padding-right:1.5rem;padding-bottom:0;min-height:2.5625rem}select.form-control-rg:not([size]):not([multiple]){height:calc(2.75rem + 4px)}.form-control-wrapper{outline-style:none !important;outline-offset:2px !important;outline-width:2px !important;outline-color:var(--post-focus-color) !important}.form-control-wrapper:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:solid !important;border-radius:4px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.form-control-wrapper:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.form-control-wrapper:is(:focus-visible,:focus-within,.pretend-focus){outline-style:solid !important;border-radius:4px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.form-control-wrapper:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}:not(.form-control-wrapper)>.form-control{outline-style:none !important;outline-offset:2px !important;outline-width:2px !important;outline-color:var(--post-focus-color) !important}:not(.form-control-wrapper)>.form-control:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:solid !important;border-radius:4px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:not(.form-control-wrapper)>.form-control:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){:not(.form-control-wrapper)>.form-control:is(:focus-visible,:focus-within,.pretend-focus){outline-style:solid !important;border-radius:4px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:not(.form-control-wrapper)>.form-control:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}.form-control{position:relative}.form-control:focus{-webkit-box-shadow:none;box-shadow:none}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.form-control:focus{border-color:FieldText !important}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.form-control:not(:disabled):hover,.form-control:not(:disabled):focus{border-color:FieldText}}.form-control:not(:disabled):hover{border-color:#000}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.form-control:not(:disabled):hover{border-color:Highlight}}.form-control:disabled{pointer-events:none;color:var(--post-gray-60);border-color:var(--post-gray-40);border-style:dashed;background-clip:padding-box}.form-control:disabled~.form-text{color:var(--post-gray-60)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.form-control:disabled{color:GrayText;border-color:GrayText}}.form-control[readonly]:not(:disabled){border-color:#000;background-color:#fff}.form-control[type=file]{position:relative}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.form-control[type=file]:disabled{color:GrayText;border-color:GrayText}}.form-control[type=file]::-webkit-file-upload-button{display:block;position:absolute;top:0;bottom:0;right:0;margin-inline:0;height:auto;background-color:inherit;border-right:0 none;border-left:inherit}.form-control[type=file]::file-selector-button{display:block;position:absolute;top:0;bottom:0;right:0;margin-inline:0;height:auto;background-color:inherit;border-right:0 none;border-left:inherit}@supports (background: -webkit-named-image(i)){.form-control[type=file]::-webkit-file-upload-button{display:initial;position:initial;margin-inline:0;padding-inline:0;width:0;border:0 none}.form-control[type=file]::file-selector-button{display:initial;position:initial;margin-inline:0;padding-inline:0;width:0;border:0 none}.form-control[type=file]::after{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;content:\"Choose File\";position:absolute;top:0;bottom:0;right:0;z-index:2;padding-inline:.875rem;background-color:inherit;border-left:inherit;text-align:center}[lang=de] .form-control[type=file]::after{content:\"Datei auswählen\"}[lang=fr] .form-control[type=file]::after{content:\"Choisir un fichier\"}[lang=it] .form-control[type=file]::after{content:\"Scegli file\"}.form-control[type=file][multiple]::after{content:\"Choose Files\"}[lang=de] .form-control[type=file][multiple]::after{content:\"Dateien auswählen\"}[lang=fr] .form-control[type=file][multiple]::after{content:\"Choisir des fichiers\"}}.form-control[type=file].form-control-sm::after{padding-inline:.25rem}.form-control[type=file].form-control-rg{min-height:calc(2.75rem + 4px)}.form-control[type=file].form-control-rg::after{padding-inline:.625rem}.form-control[type=file].form-control-lg::after{padding-inline:.75rem}.form-label:has(+.form-control-sm,+.form-select-sm){font-size:.875rem;margin-bottom:.25rem}.form-label:has(+.form-control[disabled],+.form-select[disabled]){color:var(--post-gray-60)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:4.6875rem;min-height:4.6875rem;line-height:1.5}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:.75rem 1rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:2px solid rgba(0,0,0,0);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1)}@media (prefers-reduced-motion: reduce){.form-floating>label{-webkit-transition:none;transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:.75rem 1rem}.form-floating>.form-control::-webkit-input-placeholder,.form-floating>.form-control-plaintext::-webkit-input-placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control::-moz-placeholder,.form-floating>.form-control-plaintext::-moz-placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:-ms-input-placeholder,.form-floating>.form-control-plaintext:-ms-input-placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control::-ms-input-placeholder,.form-floating>.form-control-plaintext::-ms-input-placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:not(:-moz-placeholder-shown),.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:not(:-ms-input-placeholder),.form-floating>.form-control-plaintext:not(:-ms-input-placeholder){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.5rem;padding-bottom:0}.form-floating>.form-select{padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:rgba(var(--bs-body-color-rgb), 1);transform:scale(0.75)}.form-floating>.form-control:not(:-ms-input-placeholder)~label{color:rgba(var(--bs-body-color-rgb), 1);transform:scale(0.75)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), 1);-webkit-transform:scale(0.75);transform:scale(0.75)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label::after{position:absolute;inset:.75rem .5rem;z-index:-1;height:4.6875rem;content:\"\";background-color:#fff;border-radius:0}.form-floating>.form-control:not(:-ms-input-placeholder)~label::after{position:absolute;inset:.75rem .5rem;z-index:-1;height:4.6875rem;content:\"\";background-color:#fff;border-radius:0}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:.75rem .5rem;z-index:-1;height:4.6875rem;content:\"\";background-color:#fff;border-radius:0}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 1);-webkit-transform:scale(0.75);transform:scale(0.75)}.form-floating>.form-control-plaintext~label{border-width:2px 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.4)}.form-floating>label{display:block;top:2px;left:2px;margin:0;padding-inline:1rem;padding-top:1.59375rem;padding-bottom:0;border:0;color:#333;font-size:1rem;width:auto;height:auto;max-width:calc(100% - (4px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transform-origin:1rem 0;transform-origin:1rem 0;-webkit-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1),width 0ms linear;transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1),width 0ms linear}.form-floating>.form-control::-webkit-input-placeholder{opacity:0}.form-floating>.form-control::-moz-placeholder{opacity:0}.form-floating>.form-control:-ms-input-placeholder{opacity:0}.form-floating>.form-control::-ms-input-placeholder{opacity:0}.form-floating>.form-control::placeholder{opacity:0}.form-floating>.form-control::input-placeholder{opacity:0}.form-floating>.form-control:focus::-webkit-input-placeholder{color:rgba(var(--post-contrast-color-rgb), 0.6);opacity:1;-webkit-transition:opacity 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-floating>.form-control:focus::-moz-placeholder{color:rgba(var(--post-contrast-color-rgb), 0.6);opacity:1;-moz-transition:opacity 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-floating>.form-control:focus:-ms-input-placeholder{color:rgba(var(--post-contrast-color-rgb), 0.6);opacity:1;-ms-transition:opacity 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-floating>.form-control:focus::-ms-input-placeholder{color:rgba(var(--post-contrast-color-rgb), 0.6);opacity:1;-ms-transition:opacity 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-floating>.form-control:focus::placeholder{color:rgba(var(--post-contrast-color-rgb), 0.6);opacity:1;-webkit-transition:opacity 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-floating>.form-control:focus::input-placeholder{color:rgba(var(--post-contrast-color-rgb), 0.6);opacity:1;-webkit-transition:opacity 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:not(:-ms-input-placeholder){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:#333;padding-top:.7rem;max-width:calc(\n (100% * 1.3333333333) - 0.6666666667rem - 5.3333333333px\n );-moz-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1),width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1),width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-floating>.form-control:not(:-ms-input-placeholder)~label{color:#333;padding-top:.7rem;max-width:calc(\n (100% * 1.3333333333) - 0.6666666667rem - 5.3333333333px\n );-ms-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1),width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1),width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label{color:#333;padding-top:.7rem;max-width:calc(\n (100% * 1.3333333333) - 0.6666666667rem - 5.3333333333px\n );-webkit-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1),width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1),width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-floating>.form-control:disabled~label{color:var(--post-gray-60)}.form-floating>.form-control:hover~label{color:#000}.form-floating>.form-control[type=file]:not(:-moz-placeholder-shown){padding-top:1.995rem}.form-floating>.form-control[type=file]:not(:-ms-input-placeholder){padding-top:1.995rem}.form-floating>.form-control[type=file]:focus,.form-floating>.form-control[type=file]:not(:placeholder-shown){padding-top:1.995rem}.form-floating>.form-control[type=week],.form-floating>.form-control[type=month],.form-floating>.form-control[type=date],.form-floating>.form-control[type=time]{background-position:right calc(0.375em + 0.4375rem) bottom .5rem}.form-floating>.form-control.form-control-sm{font-size:.875rem;height:3rem;min-height:3rem;padding-inline:1rem}.form-floating>.form-control.form-control-sm[type=date]::-webkit-calendar-picker-indicator{margin-top:-0.75rem}.form-floating>.form-control.form-control-sm~label{font-size:.875rem;padding-top:.75rem;padding-inline:1rem}.form-floating>.form-control.form-control-sm:not(:-moz-placeholder-shown){padding-top:.5rem}.form-floating>.form-control.form-control-sm:not(:-ms-input-placeholder){padding-top:.5rem}.form-floating>.form-control.form-control-sm:focus,.form-floating>.form-control.form-control-sm:not(:placeholder-shown){padding-top:.5rem}.form-floating>.form-control.form-control-sm:not(:-moz-placeholder-shown)~label{padding-top:.25rem;font-size:.75rem}.form-floating>.form-control.form-control-sm:not(:-ms-input-placeholder)~label{padding-top:.25rem;font-size:.75rem}.form-floating>.form-control.form-control-sm:focus~label,.form-floating>.form-control.form-control-sm:not(:placeholder-shown)~label{padding-top:.25rem;font-size:.75rem}.form-floating>.form-select{padding-top:1.5rem;padding-bottom:0}.form-floating>.form-select~label{color:#333;padding-top:.7rem;max-width:calc(\n (100% * 1.3333333333) - 0.6666666667rem - 5.3333333333px\n );-webkit-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1),width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1),width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-floating>.form-select:disabled~label{color:var(--post-gray-60)}.form-floating>.form-select:empty,.form-floating>.form-select.form-select-empty{padding-top:1.5rem;padding-bottom:0}.form-floating>.form-select:empty~label,.form-floating>.form-select.form-select-empty~label{padding-top:1.59375rem;max-width:calc(100% - (4px));-webkit-transform:none;transform:none}.form-floating>.form-select.form-select-sm{padding-inline:1rem;padding-top:.5rem;font-size:.875rem;height:3rem;min-height:3rem}.form-floating>.form-select.form-select-sm~label{padding-top:.25rem;font-size:.75rem;padding-inline:1rem}.form-floating>.form-select.form-select-sm:empty~label,.form-floating>.form-select.form-select-sm.form-select-empty~label{padding-top:.75rem;font-size:.875rem}.form-floating>.form-select[multiple]{padding-top:2rem;padding-bottom:0;height:auto}.form-floating>.form-select[multiple]~label{padding-top:.5625rem;padding-bottom:0;width:calc(\n (100% * 1.3333333333) - 0.6666666667rem - 5.3333333333px - 1.3333333333rem\n );height:auto;left:6px}.form-floating>.form-select[multiple].form-select-sm{padding-top:1.5rem}.form-floating>.form-select[multiple].form-select-sm~label{left:4px}.form-floating>.form-select[multiple]:not(:disabled)~label{background:#fff}.form-floating>.form-select[multiple]:empty~label{padding-top:.75rem;padding-bottom:.75rem;width:calc(\n 100% - (4px) - 1rem\n )}.form-floating>textarea.form-control{padding-top:1.625rem !important;padding-bottom:.5rem;padding-right:1.5rem;min-height:3.875rem;height:auto}.form-floating>textarea.form-control~label{padding-bottom:0;width:calc(100% - (4px));max-width:none;height:unset;padding-top:1rem}.form-floating>textarea.form-control:not(:-moz-placeholder-shown){padding-bottom:.5rem}.form-floating>textarea.form-control:not(:-ms-input-placeholder){padding-bottom:.5rem}.form-floating>textarea.form-control:focus,.form-floating>textarea.form-control:not(:placeholder-shown){padding-bottom:.5rem}.form-floating>textarea.form-control:not(:-moz-placeholder-shown)~label{padding-top:.5rem;width:calc(\n (100% * 1.3333333333) - 0.6666666667rem - 5.3333333333px - 1.3333333333rem\n );max-width:none;background:#fff}.form-floating>textarea.form-control:not(:-ms-input-placeholder)~label{padding-top:.5rem;width:calc(\n (100% * 1.3333333333) - 0.6666666667rem - 5.3333333333px - 1.3333333333rem\n );max-width:none;background:#fff}.form-floating>textarea.form-control:focus~label,.form-floating>textarea.form-control:not(:placeholder-shown)~label{padding-top:.5rem;width:calc(\n (100% * 1.3333333333) - 0.6666666667rem - 5.3333333333px - 1.3333333333rem\n );max-width:none;background:#fff}.form-floating>textarea.form-control.form-control-sm{padding-top:1.625rem !important;padding-right:1.5rem;font-size:.875rem;min-height:3.6875rem;height:auto}.form-floating>textarea.form-control.form-control-sm~label{font-size:.875rem;padding-left:1rem;padding-top:1rem;padding-right:1.5rem}.form-floating>textarea.form-control.form-control-sm:not(:-moz-placeholder-shown){padding-bottom:.5rem}.form-floating>textarea.form-control.form-control-sm:not(:-ms-input-placeholder){padding-bottom:.5rem}.form-floating>textarea.form-control.form-control-sm:focus,.form-floating>textarea.form-control.form-control-sm:not(:placeholder-shown){padding-bottom:.5rem}.form-floating>textarea.form-control.form-control-sm:not(:-moz-placeholder-shown)~label{transform:scale(0.8571428571);padding-top:.5rem;width:calc(\n (100% * 1.1666666667) - 0.3333333333rem - 4.6666666667px - 1.1666666667rem\n );max-width:none;background:#fff}.form-floating>textarea.form-control.form-control-sm:not(:-ms-input-placeholder)~label{transform:scale(0.8571428571);padding-top:.5rem;width:calc(\n (100% * 1.1666666667) - 0.3333333333rem - 4.6666666667px - 1.1666666667rem\n );max-width:none;background:#fff}.form-floating>textarea.form-control.form-control-sm:focus~label,.form-floating>textarea.form-control.form-control-sm:not(:placeholder-shown)~label{-webkit-transform:scale(0.8571428571);transform:scale(0.8571428571);padding-top:.5rem;width:calc(\n (100% * 1.1666666667) - 0.3333333333rem - 4.6666666667px - 1.1666666667rem\n );max-width:none;background:#fff}.form-floating>textarea.form-control:is(.is-valid,.is-invalid)~label{width:calc(\n 100% - (4px) - 0.5rem -\n 32px\n )}.form-floating>textarea.form-control:is(.is-valid,.is-invalid):not(:-moz-placeholder-shown)~label{width:calc(\n (100% * 1.3333333333) - 0.6666666667rem - 5.3333333333px - 0.6666666667rem -\n 2.6666666667rem\n )}.form-floating>textarea.form-control:is(.is-valid,.is-invalid):not(:-ms-input-placeholder)~label{width:calc(\n (100% * 1.3333333333) - 0.6666666667rem - 5.3333333333px - 0.6666666667rem -\n 2.6666666667rem\n )}.form-floating>textarea.form-control:is(.is-valid,.is-invalid):focus~label,.form-floating>textarea.form-control:is(.is-valid,.is-invalid):not(:placeholder-shown)~label{width:calc(\n (100% * 1.3333333333) - 0.6666666667rem - 5.3333333333px - 0.6666666667rem -\n 2.6666666667rem\n )}.form-floating>textarea.form-control:is(.is-valid,.is-invalid).form-control-sm~label{width:calc(\n 100% - (4px) - 0.5rem -\n 24px\n )}.form-floating>textarea.form-control:is(.is-valid,.is-invalid).form-control-sm:not(:-moz-placeholder-shown){padding-right:2.5rem}.form-floating>textarea.form-control:is(.is-valid,.is-invalid).form-control-sm:not(:-ms-input-placeholder){padding-right:2.5rem}.form-floating>textarea.form-control:is(.is-valid,.is-invalid).form-control-sm:focus,.form-floating>textarea.form-control:is(.is-valid,.is-invalid).form-control-sm:not(:placeholder-shown){padding-right:2.5rem}.form-floating>textarea.form-control:is(.is-valid,.is-invalid).form-control-sm:not(:-moz-placeholder-shown)~label{width:calc(\n (100% * 1.1666666667) - 0.5833333333rem - 4.6666666667px - 0.5833333333rem - 28px\n )}.form-floating>textarea.form-control:is(.is-valid,.is-invalid).form-control-sm:not(:-ms-input-placeholder)~label{width:calc(\n (100% * 1.1666666667) - 0.5833333333rem - 4.6666666667px - 0.5833333333rem - 28px\n )}.form-floating>textarea.form-control:is(.is-valid,.is-invalid).form-control-sm:focus~label,.form-floating>textarea.form-control:is(.is-valid,.is-invalid).form-control-sm:not(:placeholder-shown)~label{width:calc(\n (100% * 1.1666666667) - 0.5833333333rem - 4.6666666667px - 0.5833333333rem - 28px\n )}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.form-floating>input::-webkit-input-placeholder,.form-floating>textarea::-webkit-input-placeholder{opacity:0}.form-floating>input::-moz-placeholder,.form-floating>textarea::-moz-placeholder{opacity:0}.form-floating>input:-ms-input-placeholder,.form-floating>textarea:-ms-input-placeholder{opacity:0}.form-floating>input::-ms-input-placeholder,.form-floating>textarea::-ms-input-placeholder{opacity:0}.form-floating>input::placeholder,.form-floating>textarea::placeholder{opacity:0}.form-floating>input::input-placeholder,.form-floating>textarea::input-placeholder{opacity:0}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:400px;--bs-breakpoint-rg:600px;--bs-breakpoint-md:780px;--bs-breakpoint-lg:1024px;--bs-breakpoint-xl:1280px;--bs-breakpoint-xxl:1440px}.row{--bs-gutter-x:30px;--bs-gutter-y:0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(-1*var(--bs-gutter-y));margin-right:calc(-0.5*var(--bs-gutter-x));margin-left:calc(-0.5*var(--bs-gutter-x))}.row>*{-ms-flex-negative:0;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-top:var(--bs-gutter-y)}.col{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.row-cols-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width: 400px){.col-sm{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-sm-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-sm-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-sm-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-sm-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-sm-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-sm-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width: 600px){.col-rg{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-rg-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-rg-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-rg-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-rg-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.row-cols-rg-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-rg-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-rg-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-rg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-rg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-rg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-rg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-rg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-rg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-rg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-rg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-rg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-rg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-rg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-rg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-rg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-rg-0{margin-left:0}.offset-rg-1{margin-left:8.33333333%}.offset-rg-2{margin-left:16.66666667%}.offset-rg-3{margin-left:25%}.offset-rg-4{margin-left:33.33333333%}.offset-rg-5{margin-left:41.66666667%}.offset-rg-6{margin-left:50%}.offset-rg-7{margin-left:58.33333333%}.offset-rg-8{margin-left:66.66666667%}.offset-rg-9{margin-left:75%}.offset-rg-10{margin-left:83.33333333%}.offset-rg-11{margin-left:91.66666667%}.g-rg-0,.gx-rg-0{--bs-gutter-x:0}.g-rg-0,.gy-rg-0{--bs-gutter-y:0}.g-rg-1,.gx-rg-1{--bs-gutter-x:0.25rem}.g-rg-1,.gy-rg-1{--bs-gutter-y:0.25rem}.g-rg-2,.gx-rg-2{--bs-gutter-x:0.5rem}.g-rg-2,.gy-rg-2{--bs-gutter-y:0.5rem}.g-rg-3,.gx-rg-3{--bs-gutter-x:1rem}.g-rg-3,.gy-rg-3{--bs-gutter-y:1rem}.g-rg-4,.gx-rg-4{--bs-gutter-x:1.5rem}.g-rg-4,.gy-rg-4{--bs-gutter-y:1.5rem}.g-rg-5,.gx-rg-5{--bs-gutter-x:3rem}.g-rg-5,.gy-rg-5{--bs-gutter-y:3rem}}@media (min-width: 780px){.col-md{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-md-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-md-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-md-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-md-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-md-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-md-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width: 1024px){.col-lg{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-lg-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-lg-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-lg-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-lg-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-lg-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-lg-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width: 1280px){.col-xl{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xl-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-xl-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-xl-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-xl-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-xl-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-xl-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width: 1440px){.col-xxl{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xxl-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-xxl-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-xxl-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-xxl-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-xxl-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-xxl-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-xxl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xxl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-xxl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-xxl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-xxl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-xxl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-xxl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-xxl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-xxl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-xxl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-xxl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-xxl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-xxl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.container,.container-fluid,.container-xxl,.container-xl{--bs-gutter-x:30px;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media (min-width: 1280px){.container-xl,.container-lg,.container-md,.container-rg,.container-sm,.container{max-width:1280px}}@media (min-width: 1440px){.container-xxl,.container-xl,.container-lg,.container-md,.container-rg,.container-sm,.container{max-width:1440px}}.container{padding-inline:var(--post-container-padding-x)}.container-fluid{padding-inline:var(--post-container-fluid-padding-x)}.container{--post-container-padding-x:12px}.container-fluid{--post-container-fluid-padding-x:12px}.row{--bs-gutter-x:12px}@media (min-width: 400px){.container{--post-container-padding-x:16px}}@media (min-width: 400px){.container-fluid{--post-container-fluid-padding-x:16px}}@media (min-width: 400px){.row{--bs-gutter-x:16px}}@media (min-width: 780px){.container{--post-container-padding-x:32px}}@media (min-width: 780px){.container-fluid{--post-container-fluid-padding-x:32px}}@media (min-width: 1280px){.container{--post-container-padding-x:40px}}@media (min-width: 1440px){.container{--post-container-padding-x:120px}}.g-0,.gx-0{--bs-gutter-x:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}@media (min-width: 400px){.g-sm-0,.gx-sm-0{--bs-gutter-x:0}}@media (min-width: 400px){.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}}@media (min-width: 400px){.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}}@media (min-width: 400px){.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}}@media (min-width: 400px){.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}}@media (min-width: 400px){.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}}@media (min-width: 600px){.g-rg-0,.gx-rg-0{--bs-gutter-x:0}}@media (min-width: 600px){.g-rg-1,.gx-rg-1{--bs-gutter-x:0.25rem}}@media (min-width: 600px){.g-rg-2,.gx-rg-2{--bs-gutter-x:0.5rem}}@media (min-width: 600px){.g-rg-3,.gx-rg-3{--bs-gutter-x:1rem}}@media (min-width: 600px){.g-rg-4,.gx-rg-4{--bs-gutter-x:1.5rem}}@media (min-width: 600px){.g-rg-5,.gx-rg-5{--bs-gutter-x:3rem}}@media (min-width: 780px){.g-md-0,.gx-md-0{--bs-gutter-x:0}}@media (min-width: 780px){.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}}@media (min-width: 780px){.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}}@media (min-width: 780px){.g-md-3,.gx-md-3{--bs-gutter-x:1rem}}@media (min-width: 780px){.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}}@media (min-width: 780px){.g-md-5,.gx-md-5{--bs-gutter-x:3rem}}@media (min-width: 1024px){.g-lg-0,.gx-lg-0{--bs-gutter-x:0}}@media (min-width: 1024px){.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}}@media (min-width: 1024px){.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}}@media (min-width: 1024px){.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}}@media (min-width: 1024px){.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}}@media (min-width: 1024px){.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}}@media (min-width: 1280px){.g-xl-0,.gx-xl-0{--bs-gutter-x:0}}@media (min-width: 1280px){.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}}@media (min-width: 1280px){.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}}@media (min-width: 1280px){.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}}@media (min-width: 1280px){.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}}@media (min-width: 1280px){.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}}@media (min-width: 1440px){.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}}@media (min-width: 1440px){.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}}@media (min-width: 1440px){.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}}@media (min-width: 1440px){.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}}@media (min-width: 1440px){.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}}@media (min-width: 1440px){.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}}.vertical-gutters{margin-bottom:-30px}.vertical-gutters>.col,.vertical-gutters>[class*=col-]{padding-bottom:30px}.row.border-gutters{margin-right:-1px;margin-bottom:-1px;margin-left:0}.row.border-gutters>.col,.row.border-gutters>[class*=col-]{padding-right:1px;padding-bottom:1px;padding-left:0}.container-reset{margin-right:-12px;margin-left:-12px}.container-reset-left{margin-left:-12px}.container-reset-right{margin-right:-12px}@media (max-width: 399.98px){.container-fluid-xs{padding-right:1rem;padding-left:1rem}}@media (min-width: 400px){.container-reset{margin-right:-16px;margin-left:-16px}}@media (min-width: 400px){.container-reset-left{margin-left:-16px}}@media (min-width: 400px){.container-reset-right{margin-right:-16px}}@media (min-width: 400px)and (max-width: 599.98px){.container-fluid-sm{padding-right:1rem;padding-left:1rem}}@media (min-width: 600px)and (max-width: 779.98px){.container-fluid-rg{padding-right:1rem;padding-left:1rem}}@media (min-width: 780px){.container-reset{margin-right:-32px;margin-left:-32px}}@media (min-width: 780px){.container-reset-left{margin-left:-32px}}@media (min-width: 780px){.container-reset-right{margin-right:-32px}}@media (min-width: 780px)and (max-width: 1023.98px){.container-fluid-md{padding-right:1rem;padding-left:1rem}}@media (min-width: 1024px)and (max-width: 1279.98px){.container-fluid-lg{padding-right:1rem;padding-left:1rem}}@media (min-width: 1280px){.container-reset{margin-right:-40px;margin-left:-40px}}@media (min-width: 1280px){.container-reset-left{margin-left:-40px}}@media (min-width: 1280px){.container-reset-right{margin-right:-40px}}@media (min-width: 1280px)and (max-width: 1439.98px){.container-fluid-xl{padding-right:1rem;padding-left:1rem}}@media (min-width: 1440px){.container-reset{margin-right:-120px;margin-left:-120px}}@media (min-width: 1440px){.container-reset-left{margin-left:-120px}}@media (min-width: 1440px){.container-reset-right{margin-right:-120px}}@media (min-width: 1440px){.container-fluid-xxl{padding-right:1rem;padding-left:1rem}}@font-face{font-display:swap;font-family:\"Swiss Post Sans\";font-weight:700;src:url(\"https://fonts.post.ch/swiss-post-sans/v1/SwissPostSans-Bold.woff2\") format(\"woff2\"),url(\"https://fonts.post.ch/swiss-post-sans/v1/SwissPostSans-Bold.woff\") format(\"woff\")}@font-face{font-display:swap;font-family:\"Swiss Post Sans\";font-weight:400;src:url(\"https://fonts.post.ch/swiss-post-sans/v1/SwissPostSans-Regular.woff2\") format(\"woff2\"),url(\"https://fonts.post.ch/swiss-post-sans/v1/SwissPostSans-Regular.woff\") format(\"woff\")}@font-face{font-display:swap;font-family:\"Swiss Post Sans\";font-weight:300;src:url(\"https://fonts.post.ch/swiss-post-sans/v1/SwissPostSans-Light.woff2\") format(\"woff2\"),url(\"https://fonts.post.ch/swiss-post-sans/v1/SwissPostSans-Light.woff\") format(\"woff\")}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}.btn-blank{background-color:rgba(0,0,0,0);border:none;border-radius:0;padding:0}.nav-link,.search-button{outline:none;outline-offset:2px;text-decoration:none;color:rgba(0,0,0,.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:rgba(0,0,0,0);-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:.5rem}.nav-link:is(:focus-visible,:focus-within,.pretend-focus),.search-button:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.nav-link:hover,.search-button:hover,.nav-link:focus,.search-button:focus{color:#000}.nav-link:is(:focus-visible,:focus-within,.pretend-focus),.search-button:is(:focus-visible,:focus-within,.pretend-focus){z-index:1;position:relative}.nav-link>svg,.search-button>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.nav-link>span,.search-button>span{-ms-flex-negative:1;flex-shrink:1}.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:\"Swiss Post Sans\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif}button{font:inherit;padding:0}a,button{border-radius:4px;outline:none;outline-offset:2px}a:is(:focus-visible,:focus-within,.pretend-focus),button:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color);border-radius:4px}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){svg{color:currentColor;forced-color-adjust:preserve-parent-color}}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-none{display:none !important}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px)and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}@media (max-width: -0.02px){.hidden-xs{display:none}}@media (max-width: 399.98px){.hidden-sm{display:none}}@media (max-width: 599.98px){.hidden-rg{display:none}}@media (max-width: 779.98px){.hidden-md{display:none}}@media (max-width: 1023.98px){.hidden-lg{display:none}}@media (max-width: 1279.98px){.hidden-xl{display:none}}@media (max-width: 1439.98px){.hidden-xxl{display:none}}:host{display:block}.search,:host{height:100%}.search-button{height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;cursor:pointer;padding-right:calc(1rem - 1px);padding-left:calc(1rem - 1px)}@media (min-width: 1024px){.search-button{padding:0 calc(1.125rem - 1px)}}@media (min-width: 1280px){.search-button{padding:0 calc(1.5rem - 1px)}}.search-button svg{width:1.5rem;height:1.5rem}@media (min-width: 600px)and (max-width: 1023.98px){.search-button .visually-hidden{position:static;width:auto;height:auto;margin:auto;overflow:visible;clip:auto;visibility:visible;font-weight:300;margin-right:.5rem;cursor:pointer}}.flyout{position:absolute;top:100%;left:0;width:100%;background:#fff;overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain;padding-top:3.25rem;padding-bottom:3.25rem;z-index:-1;-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:-webkit-transform .35s,-webkit-box-shadow .35s;transition:-webkit-transform .35s,-webkit-box-shadow .35s;transition:transform .35s,box-shadow .35s;transition:transform .35s,box-shadow .35s,-webkit-transform .35s,-webkit-box-shadow .35s}@media (prefers-reduced-motion: reduce){.flyout{-webkit-transition:none;transition:none}}@media (min-width: 1024px){.flyout{max-height:calc(100vh - var(--header-height) - var(--meta-header-height) - 1px);-webkit-box-shadow:0 0 1px 0 rgba(0,0,0,.4);box-shadow:0 0 1px 0 rgba(0,0,0,.4)}.flyout.open{-webkit-box-shadow:0 0 8px 0 rgba(0,0,0,.4);box-shadow:0 0 8px 0 rgba(0,0,0,.4)}}@media (max-width: 1023.98px){.flyout{height:calc(100vh - var(--header-height) - 1px)}}.flyout.open{-webkit-transform:translateY(0);transform:translateY(0)}.form-floating .form-control,.form-floating .form-control+label{padding-right:5.625rem}.start-search-button,.clear-search-button{position:absolute;top:0;right:0;height:100%;padding-right:1rem;padding-left:.5rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;cursor:pointer;background:none;border:0;-webkit-box-shadow:none;box-shadow:none}.start-search-button svg,.clear-search-button svg{width:1.5rem;height:1.5rem}.clear-search-button{right:3rem;padding-right:.5rem;visibility:hidden}.suggestions{margin:1.5rem 0}.suggestions a{padding:.75rem 1rem}.suggestions a:hover,.suggestions a:focus,.suggestions a.selected{background:#f4f3f1}.suggestions a.parcel-suggestion{-ms-flex-wrap:wrap;flex-wrap:wrap}.search-recommendation__icon{height:1.5em;width:1.5em}";
290
+ const PostSearchStyle0 = postSearchCss;
291
+
292
+ const PostSearch = class {
293
+ constructor(hostRef) {
294
+ registerInstance(this, hostRef);
295
+ this.dropdownToggled = createEvent(this, "dropdownToggled", 7);
296
+ this.searchDropdownOpen = false;
297
+ this.coveoSuggestions = [];
298
+ this.placeSuggestions = [];
299
+ this.parcelSuggestion = null;
300
+ }
301
+ connectedCallback() {
302
+ this.throttledResize = throttle(300, () => this.handleResize());
303
+ window.addEventListener('resize', this.throttledResize, { passive: true });
304
+ }
305
+ disconnectedCallback() {
306
+ window.removeEventListener('resize', this.throttledResize);
307
+ clearAllBodyScrollLocks();
308
+ }
309
+ componentWillUpdate() {
310
+ // Check if search flyout got set to close
311
+ if (this.searchFlyout && !this.searchDropdownOpen) {
312
+ this.searchFlyout.classList.remove('open');
313
+ // Check if element has transition applied and whether user prefers to see animations or not
314
+ if (elementHasTransition(this.searchFlyout, 'transform') && !userPrefersReducedMotion()) {
315
+ // Wait for CSS transition 'transform' to end before continuing
316
+ return new Promise(resolve => {
317
+ if (this.searchFlyout === undefined) {
318
+ return resolve(true);
319
+ }
320
+ this.searchFlyout.addEventListener('transitionend', event => {
321
+ if (event.propertyName === 'transform') {
322
+ resolve(true);
323
+ }
324
+ });
325
+ });
326
+ }
327
+ }
328
+ }
329
+ componentDidUpdate() {
330
+ // Search flyout got set to open
331
+ if (this.searchFlyout && this.searchDropdownOpen) {
332
+ // Force browser to redraw/refresh DOM before adding 'open' class
333
+ this.searchFlyout.getBoundingClientRect();
334
+ this.searchFlyout.classList.add('open');
335
+ }
336
+ // Focus on the searchBox whenever the dropdown is opened
337
+ if (this.searchDropdownOpen && this.searchBox) {
338
+ this.searchBox.focus({ preventScroll: true });
339
+ }
340
+ }
341
+ /**
342
+ * Toggle the dropdown and optionally force an open/closed state
343
+ * @param force Boolean to force open/closed state
344
+ * @returns Boolean indicating open state of the component
345
+ */
346
+ async toggleDropdown(force) {
347
+ this.searchDropdownOpen =
348
+ force === undefined || typeof force !== 'boolean' ? !this.searchDropdownOpen : force;
349
+ this.dropdownToggled.emit({ open: this.searchDropdownOpen, element: this.host });
350
+ if (!this.searchDropdownOpen) {
351
+ // Reset suggestions when dropdown closes
352
+ this.coveoSuggestions = [];
353
+ this.placeSuggestions = [];
354
+ if (this.searchBox)
355
+ this.searchBox.value = '';
356
+ void this.setFocus();
357
+ }
358
+ else {
359
+ // Get basic suggestions when dropdown opens
360
+ try {
361
+ this.coveoSuggestions = await getCoveoSuggestions('');
362
+ }
363
+ catch (_a) { }
364
+ }
365
+ this.setBodyScroll();
366
+ return this.searchDropdownOpen;
367
+ }
368
+ /**
369
+ * Sets the focus on the search button
370
+ */
371
+ async setFocus() {
372
+ const shadowRoot = this.host.shadowRoot;
373
+ if (shadowRoot === null) {
374
+ return;
375
+ }
376
+ const toggleButton = shadowRoot.querySelector('.search-button');
377
+ if (toggleButton) {
378
+ toggleButton.focus();
379
+ }
380
+ }
381
+ handleResize() {
382
+ // Only enable/disable body scroll on resize if the search dropdown is open, otherwise this could lead to side effects in other controls
383
+ if (this.searchDropdownOpen) {
384
+ this.setBodyScroll();
385
+ }
386
+ }
387
+ /**
388
+ * Disable or re-enable body scrolling, depending on whether search dropdown is open or closed in mobile view (width < 1024px)
389
+ */
390
+ setBodyScroll() {
391
+ if (!this.searchFlyout) {
392
+ return;
393
+ }
394
+ if (this.searchDropdownOpen && window.innerWidth < 1024) {
395
+ disableBodyScroll(this.searchFlyout);
396
+ }
397
+ else {
398
+ enableBodyScroll(this.searchFlyout);
399
+ }
400
+ }
401
+ /**
402
+ * Fetch suggestions from all available sources
403
+ */
404
+ async handleSearchInput() {
405
+ var _a;
406
+ if (this.searchBox === undefined || ((_a = state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search) === undefined) {
407
+ return;
408
+ }
409
+ const query = this.searchBox.value.trim();
410
+ // shows or hides clearButton depending on the content of the searchbar
411
+ if (this.clearButton) {
412
+ if (query !== '') {
413
+ this.clearButton.style.visibility = 'visible';
414
+ }
415
+ else {
416
+ this.clearButton.style.visibility = 'hidden';
417
+ }
418
+ }
419
+ const [placeSuggestions, coveoSuggestions, trackAndTraceInfo] = await Promise.all([
420
+ queryPlaces(query),
421
+ getCoveoSuggestions(query),
422
+ getParcelSuggestion(query, state.localizedConfig.header.search),
423
+ ]);
424
+ this.parcelSuggestion = trackAndTraceInfo;
425
+ // Parcel suggestion is more important than any other
426
+ if (trackAndTraceInfo) {
427
+ this.placeSuggestions = [];
428
+ this.coveoSuggestions = [];
429
+ }
430
+ else {
431
+ [this.coveoSuggestions, this.placeSuggestions] = equalizeArrays(coveoSuggestions, placeSuggestions, 7);
432
+ }
433
+ this.deselectSuggestion();
434
+ }
435
+ /**
436
+ * clear Search box
437
+ * calls handleSearchInput to update/remove suggestions
438
+ */
439
+ handleClearSearchBox() {
440
+ if (this.searchBox !== undefined) {
441
+ this.searchBox.value = '';
442
+ this.handleSearchInput();
443
+ }
444
+ }
445
+ /**
446
+ * Start search on enter
447
+ * @param event
448
+ */
449
+ handleKeyDown(event) {
450
+ var _a, _b, _c, _d, _e;
451
+ if (this.searchFlyout === undefined) {
452
+ return;
453
+ }
454
+ const selectedSuggestion = this.searchFlyout.querySelector('.suggestions > li > a.selected');
455
+ const selectedHref = (_a = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.getAttribute('href')) !== null && _a !== void 0 ? _a : null;
456
+ const suggestions = this.searchFlyout.querySelectorAll('.suggestions > li > a');
457
+ switch (event.key.toLowerCase()) {
458
+ case 'enter':
459
+ if (selectedHref !== null) {
460
+ window.location.href = selectedHref;
461
+ }
462
+ else {
463
+ void this.startSearch();
464
+ }
465
+ break;
466
+ case 'arrowdown':
467
+ this.deselectSuggestion();
468
+ if ((_c = (_b = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.parentElement) === null || _b === void 0 ? void 0 : _b.nextElementSibling) === null || _c === void 0 ? void 0 : _c.firstElementChild) {
469
+ // Select next suggestion if there's any, otherwise none will be selected
470
+ selectedSuggestion.parentElement.nextElementSibling.firstElementChild.classList.add('selected');
471
+ // If there are any suggestions, select first suggestion in list
472
+ }
473
+ else if (suggestions.length > 0) {
474
+ suggestions[0].classList.add('selected');
475
+ }
476
+ this.updateSearchBoxWithSuggestion();
477
+ break;
478
+ case 'arrowup':
479
+ this.deselectSuggestion();
480
+ if ((_e = (_d = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.parentElement) === null || _d === void 0 ? void 0 : _d.previousElementSibling) === null || _e === void 0 ? void 0 : _e.firstElementChild) {
481
+ // Select previous suggestion if there's any, otherwise none will be selected
482
+ selectedSuggestion.parentElement.previousElementSibling.firstElementChild.classList.add('selected');
483
+ // If there are any suggestions, select last suggestion in list
484
+ }
485
+ else if (suggestions.length > 0) {
486
+ suggestions[suggestions.length - 1].classList.add('selected');
487
+ }
488
+ this.updateSearchBoxWithSuggestion();
489
+ break;
490
+ }
491
+ }
492
+ /**
493
+ * Set selected suggestion on mouse enter
494
+ * @param event
495
+ */
496
+ handleMouseEnterSuggestion(event) {
497
+ this.deselectSuggestion();
498
+ // Set hovered suggestion element as selected
499
+ event.target.classList.add('selected');
500
+ }
501
+ /**
502
+ * Set selected suggestion on mouse enter
503
+ * @param event
504
+ */
505
+ handleMouseLeaveSuggestions() {
506
+ this.deselectSuggestion();
507
+ }
508
+ /**
509
+ * Deselect any previously selected suggestion
510
+ */
511
+ deselectSuggestion() {
512
+ if (this.searchFlyout === undefined)
513
+ return;
514
+ const selectedSuggestion = this.searchFlyout.querySelector('.suggestions .selected');
515
+ if (selectedSuggestion) {
516
+ selectedSuggestion.classList.remove('selected');
517
+ }
518
+ }
519
+ /**
520
+ * Update search box with selected suggestion
521
+ */
522
+ updateSearchBoxWithSuggestion() {
523
+ if (this.searchFlyout === undefined)
524
+ return;
525
+ // Get the newly selected suggestion
526
+ const selectedSuggestion = this.searchFlyout.querySelector('.suggestions > li > a.selected');
527
+ const suggestedText = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.dataset.suggestionText;
528
+ // Update search box value with selected suggestion text
529
+ if (suggestedText !== undefined && this.searchBox) {
530
+ this.searchBox.value = suggestedText;
531
+ }
532
+ }
533
+ /**
534
+ * Redirect to the post search page
535
+ */
536
+ async startSearch() {
537
+ var _a;
538
+ if (this.searchBox && ((_a = state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search)) {
539
+ const redirectUrl = await getSearchRedirectUrl(this.searchBox.value.trim(), state.localizedConfig.header.search);
540
+ if (redirectUrl === undefined)
541
+ return;
542
+ window.location.href = redirectUrl;
543
+ }
544
+ }
545
+ trackRecommendationClick(recommendation) {
546
+ if (!('dataLayer' in window))
547
+ return;
548
+ const trackingAttributes = recommendation.additionalAttributes.reduce((acc, curr) => {
549
+ acc[curr.name] = curr.value;
550
+ return acc;
551
+ }, {});
552
+ window.dataLayer.push({
553
+ event: trackingAttributes['data-event'],
554
+ text: trackingAttributes['data-text'],
555
+ link_url: trackingAttributes['data-linkurl'],
556
+ label: trackingAttributes['data-label'],
557
+ type: trackingAttributes['data-type'],
558
+ });
559
+ }
560
+ render() {
561
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
562
+ if (((_a = state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header) === undefined) {
563
+ return;
564
+ }
565
+ const { translations, search } = state.localizedConfig.header;
566
+ const isParcelTrackingNr = this.parcelSuggestion && 'sending' in this.parcelSuggestion;
567
+ const isSearchEmpty = ((_b = this.searchBox) === null || _b === void 0 ? void 0 : _b.value) === '';
568
+ const portalRecommendationCount = (_c = search.searchRecommendations) === null || _c === void 0 ? void 0 : _c.links.length;
569
+ const showPortalRecommendations = isSearchEmpty && portalRecommendationCount > 0;
570
+ const suggestionCount = showPortalRecommendations
571
+ ? portalRecommendationCount
572
+ : this.coveoSuggestions.length + this.placeSuggestions.length;
573
+ const suggestionHint = ` ${suggestionCount} ${translate('most searched topics available, press the tab key to continue.')}`;
574
+ return (h(Host, { role: "search" }, h(SvgSprite, null), h("focus-trap", { active: this.searchDropdownOpen }, h("div", { class: "search", key: "search" }, h("button", { id: "post-internet-header-search-button", class: "search-button", key: "search-button", type: "button", "aria-expanded": `${this.searchDropdownOpen}`, onClick: e => void this.toggleDropdown(e) }, h("span", { class: "visually-hidden" }, this.searchDropdownOpen
575
+ ? translations.searchToggleExpanded
576
+ : translations.searchToggle), h(SvgIcon, { name: this.searchDropdownOpen ? 'pi-close' : 'pi-search' })), h(If, { condition: this.searchDropdownOpen }, h("div", { class: "flyout", key: "flyout", ref: e => (this.searchFlyout = e) }, h("div", { class: "container box" }, h("div", { class: "row" }, h("div", { class: "col-xs-12 col-md-10 col-lg-8" }, h("div", { class: "form-group form-floating" }, h("input", { type: "text", role: "searchbox", id: "searchBox", class: "form-control form-control-lg", placeholder: translations.flyoutSearchBoxFloatingLabel, autocomplete: "off", ref: el => (this.searchBox = el), onInput: () => void this.handleSearchInput(), onKeyDown: e => this.handleKeyDown(e), title: translate('Enter search term. Press "Enter" to search.') +
577
+ (isSearchEmpty && suggestionCount > 0 ? ` ${suggestionHint}` : '') }), h("label", { htmlFor: "searchBox" }, translations.flyoutSearchBoxFloatingLabel), h("button", { onClick: () => this.handleClearSearchBox(), class: "clear-search-button", type: "reset", id: "clearButton", ref: el => (this.clearButton = el) }, h("span", { class: "visually-hidden" }, translate('Delete search term')), h(SvgIcon, { name: "pi-close" })), h("button", { onClick: () => void this.startSearch(), class: "start-search-button" }, h("span", { class: "visually-hidden" }, translations.searchSubmit), h(SvgIcon, { name: "pi-search" }))), h("p", { class: "visually-hidden", role: "region", "aria-live": "polite" }, isParcelTrackingNr ? 1 : suggestionCount, " ", translate('search result(s)')), showPortalRecommendations && (h("h2", { id: "post-internet-header-search-recommendations-title", class: "bold" }, search.searchRecommendations.title)), h("ul", { class: "suggestions no-list", onMouseLeave: () => this.handleMouseLeaveSuggestions(), "aria-labelledby": showPortalRecommendations
578
+ ? 'post-internet-header-search-recommendations-title'
579
+ : undefined }, showPortalRecommendations &&
580
+ search.searchRecommendations.links.map(recommendation => (h("li", { key: recommendation.href }, h("a", { class: "nav-link search-recommendation", href: new URL(recommendation.href, 'https://post.ch').href, "data-suggestion-text": recommendation.label, onMouseEnter: e => this.handleMouseEnterSuggestion(e), onClick: () => this.trackRecommendationClick(recommendation) }, h("span", { class: "search-recommendation__icon", innerHTML: recommendation.inlineSvg }), h("span", null, recommendation.label))))), isParcelTrackingNr && (h("li", null, h("a", { class: "nav-link parcel-suggestion", href: this.parcelSuggestion.url, "data-suggestion-text": (_d = this.searchBox) === null || _d === void 0 ? void 0 : _d.value, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, h(SvgIcon, { name: "pi-letter-parcel" }), h("span", { class: "bold" }, (_f = (_e = this.parcelSuggestion) === null || _e === void 0 ? void 0 : _e.sending) === null || _f === void 0 ? void 0 :
581
+ _f.id, ":\u00A0"), h("span", null, [
582
+ (_h = (_g = this.parcelSuggestion) === null || _g === void 0 ? void 0 : _g.sending) === null || _h === void 0 ? void 0 : _h.product,
583
+ ' ' + ((_k = (_j = this.parcelSuggestion) === null || _j === void 0 ? void 0 : _j.sending) === null || _k === void 0 ? void 0 : _k.recipient.zipcode),
584
+ ' ' + ((_m = (_l = this.parcelSuggestion) === null || _l === void 0 ? void 0 : _l.sending) === null || _m === void 0 ? void 0 : _m.recipient.city),
585
+ ', ' + ((_p = (_o = this.parcelSuggestion) === null || _o === void 0 ? void 0 : _o.sending) === null || _p === void 0 ? void 0 : _p.state),
586
+ ]
587
+ .filter(s => s !== '' && s !== ' ')
588
+ .join(''))))), !showPortalRecommendations &&
589
+ this.coveoSuggestions &&
590
+ this.coveoSuggestions.map(suggestion => (h("li", { key: suggestion.objectId }, h("a", { class: "nav-link", href: suggestion.redirectUrl, "data-suggestion-text": suggestion.expression, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, h(SvgIcon, { name: "pi-search" }), h(HighlightedText, { text: suggestion.highlighted }))))), !showPortalRecommendations &&
591
+ this.placeSuggestions &&
592
+ this.placeSuggestions.map(suggestion => {
593
+ var _a, _b;
594
+ return (h("li", { key: suggestion.id }, h("a", { class: "nav-link", href: getPlacesUrl(suggestion), "data-suggestion-text": suggestion.name, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, h(SvgIcon, { name: "pi-place" }), h(HighlightedText, { text: highlightPlacesString((_b = (_a = this.searchBox) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.trim(), suggestion.name) }))));
595
+ })))))))))));
596
+ }
597
+ get host() { return getElement(this); }
598
+ };
599
+ PostSearch.style = PostSearchStyle0;
600
+
601
+ export { PostSearch as P };