@swisspost/internet-header 1.14.5 → 1.14.6-next.1
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/dist/cjs/index.cjs.js +9 -9
- package/dist/cjs/post-header-logo.cjs.entry.js +1 -1
- package/dist/cjs/{post-internet-breadcrumbs-1a8bd582.js → post-internet-breadcrumbs-dd5ec237.js} +1 -1
- package/dist/cjs/post-internet-footer-eff68b29.js +163 -0
- package/dist/cjs/{post-internet-header-6aa7c957.js → post-internet-header-4340a7b0.js} +4 -4
- package/dist/cjs/{post-klp-login-widget-8946e37f.js → post-klp-login-widget-d67b9974.js} +1 -1
- package/dist/cjs/post-klp-login-widget.cjs.entry.js +1 -1
- package/dist/cjs/post-language-switch-a5f33f39.js +105 -0
- package/dist/cjs/post-language-switch.cjs.entry.js +1 -1
- package/dist/cjs/post-logo-ccde154b.js +24 -0
- package/dist/cjs/{post-main-navigation-8e804e67.js → post-main-navigation-f2c9dd13.js} +1 -1
- package/dist/cjs/post-main-navigation.cjs.entry.js +1 -1
- package/dist/cjs/post-meta-navigation-a9ed0788.js +25 -0
- package/dist/cjs/post-meta-navigation.cjs.entry.js +1 -1
- package/dist/cjs/post-search-27ac7d0f.js +603 -0
- package/dist/cjs/post-search.cjs.entry.js +1 -1
- package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +1 -1
- package/dist/cjs/swisspost-internet-footer.cjs.entry.js +1 -1
- package/dist/cjs/swisspost-internet-header.cjs.entry.js +1 -1
- package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.css +1 -29
- package/dist/collection/components/post-internet-footer/post-internet-footer.css +1 -29
- package/dist/collection/components/post-internet-header/post-internet-header.css +1 -1
- package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.css +1 -1
- package/dist/collection/components/post-language-switch/post-language-switch.css +1 -1
- package/dist/collection/components/post-logo/post-logo.css +1 -1
- package/dist/collection/components/post-main-navigation/post-main-navigation.css +1 -1
- package/dist/collection/components/post-meta-navigation/post-meta-navigation.css +1 -1
- package/dist/collection/components/post-search/post-search.css +2 -30
- package/dist/components/post-klp-login-widget2.js +1 -1
- package/dist/components/post-language-switch2.js +1 -1
- package/dist/components/post-logo.js +1 -1
- package/dist/components/post-main-navigation2.js +1 -1
- package/dist/components/post-meta-navigation2.js +1 -1
- package/dist/components/post-search2.js +1 -1
- package/dist/components/swisspost-internet-breadcrumbs.js +1 -1
- package/dist/components/swisspost-internet-footer.js +1 -1
- package/dist/components/swisspost-internet-header.js +4 -4
- package/dist/docs.json +1 -1
- package/dist/esm/index.js +9 -9
- package/dist/esm/post-header-logo.entry.js +1 -1
- package/dist/esm/{post-internet-breadcrumbs-2370e12d.js → post-internet-breadcrumbs-5cd7c750.js} +1 -1
- package/dist/esm/post-internet-footer-3ee936db.js +161 -0
- package/dist/esm/{post-internet-header-4c890716.js → post-internet-header-87b132dd.js} +4 -4
- package/dist/esm/{post-klp-login-widget-d0cb76d7.js → post-klp-login-widget-9ff3ae38.js} +1 -1
- package/dist/esm/post-klp-login-widget.entry.js +1 -1
- package/dist/esm/post-language-switch-72c524d2.js +103 -0
- package/dist/esm/post-language-switch.entry.js +1 -1
- package/dist/esm/post-logo-21c460cb.js +22 -0
- package/dist/esm/{post-main-navigation-3f8bd754.js → post-main-navigation-cf50eff6.js} +1 -1
- package/dist/esm/post-main-navigation.entry.js +1 -1
- package/dist/esm/post-meta-navigation-4c830861.js +23 -0
- package/dist/esm/post-meta-navigation.entry.js +1 -1
- package/dist/esm/post-search-b0a6ccaf.js +601 -0
- package/dist/esm/post-search.entry.js +1 -1
- package/dist/esm/swisspost-internet-breadcrumbs.entry.js +1 -1
- package/dist/esm/swisspost-internet-footer.entry.js +1 -1
- package/dist/esm/swisspost-internet-header.entry.js +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/post-header-logo.entry.js +1 -1
- package/dist/esm-es5/post-internet-breadcrumbs-5cd7c750.js +1 -0
- package/dist/esm-es5/post-internet-footer-3ee936db.js +1 -0
- package/dist/esm-es5/post-internet-header-87b132dd.js +1 -0
- package/dist/esm-es5/post-klp-login-widget-9ff3ae38.js +1 -0
- package/dist/esm-es5/post-klp-login-widget.entry.js +1 -1
- package/dist/esm-es5/post-language-switch-72c524d2.js +1 -0
- package/dist/esm-es5/post-language-switch.entry.js +1 -1
- package/dist/esm-es5/post-logo-21c460cb.js +1 -0
- package/dist/esm-es5/post-main-navigation-cf50eff6.js +1 -0
- package/dist/esm-es5/post-main-navigation.entry.js +1 -1
- package/dist/esm-es5/post-meta-navigation-4c830861.js +1 -0
- package/dist/esm-es5/post-meta-navigation.entry.js +1 -1
- package/dist/esm-es5/post-search-b0a6ccaf.js +1 -0
- package/dist/esm-es5/post-search.entry.js +1 -1
- package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +1 -1
- package/dist/esm-es5/swisspost-internet-footer.entry.js +1 -1
- package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
- package/dist/swisspost-internet-header/index.esm.js +1 -1
- package/dist/swisspost-internet-header/p-023be604.entry.js +1 -0
- package/dist/swisspost-internet-header/p-03db6390.system.js +1 -0
- package/dist/swisspost-internet-header/{p-74737624.entry.js → p-0805f756.entry.js} +1 -1
- package/dist/swisspost-internet-header/p-153c46b4.js +1 -0
- package/dist/swisspost-internet-header/{p-6167a58f.system.entry.js → p-1c0b5efb.system.entry.js} +1 -1
- package/dist/swisspost-internet-header/{p-b2159d69.entry.js → p-1c74d56c.entry.js} +1 -1
- package/dist/swisspost-internet-header/{p-b909b77e.system.entry.js → p-308131e5.system.entry.js} +1 -1
- package/dist/swisspost-internet-header/{p-5e6812b4.system.entry.js → p-3411a05b.system.entry.js} +1 -1
- package/dist/swisspost-internet-header/{p-89d3591d.js → p-375d851a.js} +1 -1
- package/dist/swisspost-internet-header/p-466129d5.js +1 -0
- package/dist/swisspost-internet-header/p-50c412e1.system.js +1 -0
- package/dist/swisspost-internet-header/p-621e70af.system.js +1 -0
- package/dist/swisspost-internet-header/{p-934cf432.system.js → p-6579233b.system.js} +1 -1
- package/dist/swisspost-internet-header/p-695fe962.system.js +1 -1
- package/dist/swisspost-internet-header/p-6fc46c38.entry.js +1 -0
- package/dist/swisspost-internet-header/p-73b37958.js +1 -0
- package/dist/swisspost-internet-header/p-7793cdb6.js +1 -0
- package/dist/swisspost-internet-header/{p-3834b7b4.system.entry.js → p-83373978.system.entry.js} +1 -1
- package/dist/swisspost-internet-header/p-86721bc0.system.js +1 -0
- package/dist/swisspost-internet-header/{p-22a39458.system.entry.js → p-8e6ffd0b.system.entry.js} +1 -1
- package/dist/swisspost-internet-header/p-930200b0.system.js +1 -0
- package/dist/swisspost-internet-header/p-99dd001c.system.js +1 -0
- package/dist/swisspost-internet-header/p-9e293e52.entry.js +1 -0
- package/dist/swisspost-internet-header/p-a7767592.system.js +1 -0
- package/dist/swisspost-internet-header/p-aa1ce54b.entry.js +1 -0
- package/dist/swisspost-internet-header/p-b5d319a7.js +1 -0
- package/dist/swisspost-internet-header/{p-d0cf8862.system.entry.js → p-bf31df27.system.entry.js} +1 -1
- package/dist/swisspost-internet-header/p-c13f7a66.js +1 -0
- package/dist/swisspost-internet-header/{p-fa5453ce.entry.js → p-c377f7ef.entry.js} +1 -1
- package/dist/swisspost-internet-header/{p-299d7534.entry.js → p-c45109c0.entry.js} +1 -1
- package/dist/swisspost-internet-header/{p-132b1973.system.entry.js → p-cc958afe.system.entry.js} +1 -1
- package/dist/swisspost-internet-header/p-d613063e.js +1 -0
- package/dist/swisspost-internet-header/p-e36b86f8.system.entry.js +1 -0
- package/dist/swisspost-internet-header/p-e3ff70a7.system.js +1 -0
- package/dist/swisspost-internet-header/{p-43fc36bc.entry.js → p-e6f21460.entry.js} +1 -1
- package/dist/swisspost-internet-header/p-eafd26eb.system.js +1 -0
- package/dist/swisspost-internet-header/{p-ef0ad4df.js → p-ed559348.js} +1 -1
- package/dist/swisspost-internet-header/p-f068ba7e.system.entry.js +1 -0
- package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
- package/package.json +3 -3
- package/dist/cjs/post-internet-footer-ca621ca9.js +0 -163
- package/dist/cjs/post-language-switch-768195ef.js +0 -105
- package/dist/cjs/post-logo-c7b8f044.js +0 -24
- package/dist/cjs/post-meta-navigation-f66b734d.js +0 -25
- package/dist/cjs/post-search-6c43f01f.js +0 -603
- package/dist/esm/post-internet-footer-e6980e19.js +0 -161
- package/dist/esm/post-language-switch-05672675.js +0 -103
- package/dist/esm/post-logo-a10a7614.js +0 -22
- package/dist/esm/post-meta-navigation-c90e0eab.js +0 -23
- package/dist/esm/post-search-c629b46f.js +0 -601
- package/dist/esm-es5/post-internet-breadcrumbs-2370e12d.js +0 -1
- package/dist/esm-es5/post-internet-footer-e6980e19.js +0 -1
- package/dist/esm-es5/post-internet-header-4c890716.js +0 -1
- package/dist/esm-es5/post-klp-login-widget-d0cb76d7.js +0 -1
- package/dist/esm-es5/post-language-switch-05672675.js +0 -1
- package/dist/esm-es5/post-logo-a10a7614.js +0 -1
- package/dist/esm-es5/post-main-navigation-3f8bd754.js +0 -1
- package/dist/esm-es5/post-meta-navigation-c90e0eab.js +0 -1
- package/dist/esm-es5/post-search-c629b46f.js +0 -1
- package/dist/swisspost-internet-header/p-1555a1e1.js +0 -1
- package/dist/swisspost-internet-header/p-24933caa.js +0 -1
- package/dist/swisspost-internet-header/p-33ca3140.system.js +0 -1
- package/dist/swisspost-internet-header/p-442dda65.js +0 -1
- package/dist/swisspost-internet-header/p-52ad8934.system.js +0 -1
- package/dist/swisspost-internet-header/p-577a6423.system.js +0 -1
- package/dist/swisspost-internet-header/p-6ee4b188.entry.js +0 -1
- package/dist/swisspost-internet-header/p-6f9b276e.entry.js +0 -1
- package/dist/swisspost-internet-header/p-72be908b.js +0 -1
- package/dist/swisspost-internet-header/p-8882d096.system.js +0 -1
- package/dist/swisspost-internet-header/p-8f8d8912.js +0 -1
- package/dist/swisspost-internet-header/p-9730e79d.system.js +0 -1
- package/dist/swisspost-internet-header/p-98e6a60a.system.js +0 -1
- package/dist/swisspost-internet-header/p-9d82919a.system.js +0 -1
- package/dist/swisspost-internet-header/p-9f9b1221.entry.js +0 -1
- package/dist/swisspost-internet-header/p-c4957ff7.system.js +0 -1
- package/dist/swisspost-internet-header/p-c76ce6e7.system.entry.js +0 -1
- package/dist/swisspost-internet-header/p-cf968189.js +0 -1
- package/dist/swisspost-internet-header/p-d83083ac.entry.js +0 -1
- package/dist/swisspost-internet-header/p-dd441f54.system.js +0 -1
- package/dist/swisspost-internet-header/p-f3643368.system.entry.js +0 -1
- package/dist/swisspost-internet-header/p-fb47b78f.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 = "/*!\n * Copyright 2021 by Swiss Post, Information Technology\n */.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:inherit;background-color:inherit;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;text-decoration:line-through}.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 v005\";font-weight:900;src:url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-XBlk.woff2\") format(\"woff2\"),url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-XBlk.woff\") format(\"woff\")}@font-face{font-display:swap;font-family:\"Swiss Post Sans v005\";font-weight:900;font-style:italic;src:url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-XBlkIt.woff2\") format(\"woff2\"),url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-XBlkIt.woff\") format(\"woff\")}@font-face{font-display:swap;font-family:\"Swiss Post Sans v005\";font-weight:700;src:url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff2\") format(\"woff2\"),url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff\") format(\"woff\")}@font-face{font-display:swap;font-family:\"Swiss Post Sans v005\";font-weight:700;font-style:italic;src:url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-BdIt.woff2\") format(\"woff2\"),url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-BdIt.woff\") format(\"woff\")}@font-face{font-display:swap;font-family:\"Swiss Post Sans v005\";font-weight:400;src:url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff2\") format(\"woff2\"),url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff\") format(\"woff\")}@font-face{font-display:swap;font-family:\"Swiss Post Sans v005\";font-weight:400;font-style:italic;src:url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-It.woff2\") format(\"woff2\"),url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-It.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:\"Frutiger Neue For Post\",-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 };
|