@swisspost/internet-header 1.5.0-beta.2 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (446) hide show
  1. package/LICENSE +202 -202
  2. package/dist/cjs/{if.component-313f59b8.js → if.component-51d000af.js} +6 -6
  3. package/dist/cjs/if.component-51d000af.js.map +1 -0
  4. package/dist/cjs/{klp-widget.controller-84642428.js → klp-widget.controller-d8941c4e.js} +4811 -4811
  5. package/dist/cjs/{klp-widget.controller-84642428.js.map → klp-widget.controller-d8941c4e.js.map} +1 -1
  6. package/dist/cjs/{language.service-a80ae01d.js → language.service-7dbf739d.js} +141 -141
  7. package/dist/cjs/language.service-7dbf739d.js.map +1 -0
  8. package/dist/cjs/post-klp-login-widget.cjs.entry.js +33 -33
  9. package/dist/cjs/post-klp-login-widget.cjs.entry.js.map +1 -1
  10. package/dist/cjs/post-language-switch.cjs.entry.js +88 -88
  11. package/dist/cjs/post-language-switch.cjs.entry.js.map +1 -1
  12. package/dist/cjs/post-logo.cjs.entry.js +51 -51
  13. package/dist/cjs/post-logo.cjs.entry.js.map +1 -1
  14. package/dist/cjs/post-main-navigation.cjs.entry.js +226 -226
  15. package/dist/cjs/post-main-navigation.cjs.entry.js.map +1 -1
  16. package/dist/cjs/post-meta-navigation.cjs.entry.js +15 -15
  17. package/dist/cjs/post-meta-navigation.cjs.entry.js.map +1 -1
  18. package/dist/cjs/post-search.cjs.entry.js +556 -534
  19. package/dist/cjs/post-search.cjs.entry.js.map +1 -1
  20. package/dist/cjs/post-skiplinks.cjs.entry.js +41 -41
  21. package/dist/cjs/post-skiplinks.cjs.entry.js.map +1 -1
  22. package/dist/cjs/{store-47e14589.js → store-d0d514fc.js} +20 -13
  23. package/dist/cjs/store-d0d514fc.js.map +1 -0
  24. package/dist/cjs/{svg-icon.component-10fbda11.js → svg-icon.component-be93f876.js} +2 -2
  25. package/dist/cjs/svg-icon.component-be93f876.js.map +1 -0
  26. package/dist/cjs/{svg-sprite.component-c3b454b3.js → svg-sprite.component-1bd7a058.js} +40 -40
  27. package/dist/cjs/svg-sprite.component-1bd7a058.js.map +1 -0
  28. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +370 -392
  29. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js.map +1 -1
  30. package/dist/cjs/swisspost-internet-footer.cjs.entry.js +125 -125
  31. package/dist/cjs/swisspost-internet-footer.cjs.entry.js.map +1 -1
  32. package/dist/cjs/swisspost-internet-header.cjs.entry.js +608 -608
  33. package/dist/cjs/swisspost-internet-header.cjs.entry.js.map +1 -1
  34. package/dist/cjs/{ui.service-db4a8252.js → ui.service-e1ebb6d4.js} +28 -28
  35. package/dist/cjs/ui.service-e1ebb6d4.js.map +1 -0
  36. package/dist/cjs/{utils-b6014257.js → utils-60853c5d.js} +15 -15
  37. package/dist/cjs/utils-60853c5d.js.map +1 -0
  38. package/dist/collection/assets/config/test-configuration.json +4067 -4067
  39. package/dist/collection/assets/i18n/translations.js +38 -38
  40. package/dist/collection/assets/i18n/translations.js.map +1 -1
  41. package/dist/collection/assets/js/sockjs-client.js +5134 -5134
  42. package/dist/collection/components/post-internet-breadcrumbs/components/breadcrumb-list.component.js +11 -11
  43. package/dist/collection/components/post-internet-breadcrumbs/components/breadcrumb-list.component.js.map +1 -1
  44. package/dist/collection/components/post-internet-breadcrumbs/components/focus-trap.component.js +42 -42
  45. package/dist/collection/components/post-internet-breadcrumbs/components/focus-trap.component.js.map +1 -1
  46. package/dist/collection/components/post-internet-breadcrumbs/components/middle-dropdown.component.js +8 -8
  47. package/dist/collection/components/post-internet-breadcrumbs/components/middle-dropdown.component.js.map +1 -1
  48. package/dist/collection/components/post-internet-breadcrumbs/components/middle-links.component.js +6 -6
  49. package/dist/collection/components/post-internet-breadcrumbs/components/middle-links.component.js.map +1 -1
  50. package/dist/collection/components/post-internet-breadcrumbs/components/overlay.component.js +12 -12
  51. package/dist/collection/components/post-internet-breadcrumbs/components/overlay.component.js.map +1 -1
  52. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js +253 -253
  53. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js.map +1 -1
  54. package/dist/collection/components/post-internet-footer/components/post-footer-block-address.component.js +12 -12
  55. package/dist/collection/components/post-internet-footer/components/post-footer-block-address.component.js.map +1 -1
  56. package/dist/collection/components/post-internet-footer/components/post-footer-block-contact.component.js +24 -24
  57. package/dist/collection/components/post-internet-footer/components/post-footer-block-contact.component.js.map +1 -1
  58. package/dist/collection/components/post-internet-footer/components/post-footer-block-custom.component.js +6 -6
  59. package/dist/collection/components/post-internet-footer/components/post-footer-block-custom.component.js.map +1 -1
  60. package/dist/collection/components/post-internet-footer/components/post-footer-block-list.component.js +6 -6
  61. package/dist/collection/components/post-internet-footer/components/post-footer-block-list.component.js.map +1 -1
  62. package/dist/collection/components/post-internet-footer/components/post-footer-block-socials.component.js +5 -5
  63. package/dist/collection/components/post-internet-footer/components/post-footer-block-socials.component.js.map +1 -1
  64. package/dist/collection/components/post-internet-footer/post-internet-footer.js +86 -86
  65. package/dist/collection/components/post-internet-footer/post-internet-footer.js.map +1 -1
  66. package/dist/collection/components/post-internet-header/post-internet-header.js +676 -676
  67. package/dist/collection/components/post-internet-header/post-internet-header.js.map +1 -1
  68. package/dist/collection/components/post-klp-login-widget/klp-widget.controller.js +14 -14
  69. package/dist/collection/components/post-klp-login-widget/klp-widget.controller.js.map +1 -1
  70. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.js +67 -67
  71. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.js.map +1 -1
  72. package/dist/collection/components/post-language-switch/components/post-language-switch-list.js +9 -9
  73. package/dist/collection/components/post-language-switch/components/post-language-switch-list.js.map +1 -1
  74. package/dist/collection/components/post-language-switch/post-language-switch.js +186 -186
  75. package/dist/collection/components/post-language-switch/post-language-switch.js.map +1 -1
  76. package/dist/collection/components/post-logo/logo-sprite.component.js +4 -4
  77. package/dist/collection/components/post-logo/logo-sprite.component.js.map +1 -1
  78. package/dist/collection/components/post-logo/post-logo.js +60 -60
  79. package/dist/collection/components/post-logo/post-logo.js.map +1 -1
  80. package/dist/collection/components/post-main-navigation/components/level-one-action.component.js +13 -13
  81. package/dist/collection/components/post-main-navigation/components/level-one-action.component.js.map +1 -1
  82. package/dist/collection/components/post-main-navigation/post-main-navigation.js +347 -347
  83. package/dist/collection/components/post-main-navigation/post-main-navigation.js.map +1 -1
  84. package/dist/collection/components/post-meta-navigation/post-meta-navigation.js +67 -67
  85. package/dist/collection/components/post-meta-navigation/post-meta-navigation.js.map +1 -1
  86. package/dist/collection/components/post-search/post-search.js +362 -362
  87. package/dist/collection/components/post-search/post-search.js.map +1 -1
  88. package/dist/collection/components/post-skiplinks/post-skiplinks.js +51 -51
  89. package/dist/collection/components/post-skiplinks/post-skiplinks.js.map +1 -1
  90. package/dist/collection/data/store.js +11 -11
  91. package/dist/collection/data/store.js.map +1 -1
  92. package/dist/collection/index.js +2 -2
  93. package/dist/collection/index.js.map +1 -1
  94. package/dist/collection/models/breadcrumbs.model.js +2 -2
  95. package/dist/collection/models/breadcrumbs.model.js.map +1 -1
  96. package/dist/collection/models/coveo.model.js +2 -2
  97. package/dist/collection/models/coveo.model.js.map +1 -1
  98. package/dist/collection/models/footer.model.js +2 -2
  99. package/dist/collection/models/footer.model.js.map +1 -1
  100. package/dist/collection/models/general.model.js +2 -2
  101. package/dist/collection/models/general.model.js.map +1 -1
  102. package/dist/collection/models/geocode.model.js +10 -10
  103. package/dist/collection/models/geocode.model.js.map +1 -1
  104. package/dist/collection/models/header.model.js +2 -2
  105. package/dist/collection/models/header.model.js.map +1 -1
  106. package/dist/collection/models/implementor.model.js +2 -2
  107. package/dist/collection/models/implementor.model.js.map +1 -1
  108. package/dist/collection/models/language.model.js +2 -2
  109. package/dist/collection/models/language.model.js.map +1 -1
  110. package/dist/collection/models/track-and-trace.model.js +2 -2
  111. package/dist/collection/models/track-and-trace.model.js.map +1 -1
  112. package/dist/collection/services/config.service.js +170 -170
  113. package/dist/collection/services/config.service.js.map +1 -1
  114. package/dist/collection/services/language.service.js +107 -107
  115. package/dist/collection/services/language.service.js.map +1 -1
  116. package/dist/collection/services/route.service.js +163 -163
  117. package/dist/collection/services/route.service.js.map +1 -1
  118. package/dist/collection/services/search/coveo.service.js +34 -34
  119. package/dist/collection/services/search/coveo.service.js.map +1 -1
  120. package/dist/collection/services/search/coveo.settings.js +19 -19
  121. package/dist/collection/services/search/coveo.settings.js.map +1 -1
  122. package/dist/collection/services/search/parcel.service.js +54 -54
  123. package/dist/collection/services/search/parcel.service.js.map +1 -1
  124. package/dist/collection/services/search/places.service.js +95 -95
  125. package/dist/collection/services/search/places.service.js.map +1 -1
  126. package/dist/collection/services/search/places.settings.js +16 -16
  127. package/dist/collection/services/search/places.settings.js.map +1 -1
  128. package/dist/collection/services/search/search-utilities.js +26 -26
  129. package/dist/collection/services/search/search-utilities.js.map +1 -1
  130. package/dist/collection/services/search/search.service.js +42 -42
  131. package/dist/collection/services/search/search.service.js.map +1 -1
  132. package/dist/collection/services/ui.service.js +30 -30
  133. package/dist/collection/services/ui.service.js.map +1 -1
  134. package/dist/collection/tests/setup-tests.js +14 -14
  135. package/dist/collection/tests/setup-tests.js.map +1 -1
  136. package/dist/collection/utils/highlighted.component.js +11 -11
  137. package/dist/collection/utils/highlighted.component.js.map +1 -1
  138. package/dist/collection/utils/if.component.js +7 -7
  139. package/dist/collection/utils/if.component.js.map +1 -1
  140. package/dist/collection/utils/svg-icon.component.js +3 -3
  141. package/dist/collection/utils/svg-icon.component.js.map +1 -1
  142. package/dist/collection/utils/svg-sprite.component.js +3 -3
  143. package/dist/collection/utils/svg-sprite.component.js.map +1 -1
  144. package/dist/collection/utils/utils.js +16 -16
  145. package/dist/collection/utils/utils.js.map +1 -1
  146. package/dist/components/klp-widget.controller.js +4810 -4810
  147. package/dist/components/klp-widget.controller.js.map +1 -1
  148. package/dist/components/language.service.js +139 -139
  149. package/dist/components/language.service.js.map +1 -1
  150. package/dist/components/post-klp-login-widget2.js +48 -48
  151. package/dist/components/post-klp-login-widget2.js.map +1 -1
  152. package/dist/components/post-language-switch2.js +102 -102
  153. package/dist/components/post-language-switch2.js.map +1 -1
  154. package/dist/components/post-logo2.js +67 -67
  155. package/dist/components/post-logo2.js.map +1 -1
  156. package/dist/components/post-main-navigation2.js +243 -243
  157. package/dist/components/post-main-navigation2.js.map +1 -1
  158. package/dist/components/post-meta-navigation2.js +32 -32
  159. package/dist/components/post-meta-navigation2.js.map +1 -1
  160. package/dist/components/post-search2.js +577 -555
  161. package/dist/components/post-search2.js.map +1 -1
  162. package/dist/components/post-skiplinks2.js +52 -52
  163. package/dist/components/post-skiplinks2.js.map +1 -1
  164. package/dist/components/store.js +19 -12
  165. package/dist/components/store.js.map +1 -1
  166. package/dist/components/svg-icon.component.js +1 -1
  167. package/dist/components/svg-icon.component.js.map +1 -1
  168. package/dist/components/svg-sprite.component.js +39 -39
  169. package/dist/components/svg-sprite.component.js.map +1 -1
  170. package/dist/components/swisspost-internet-breadcrumbs.js +387 -409
  171. package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -1
  172. package/dist/components/swisspost-internet-footer.js +140 -140
  173. package/dist/components/swisspost-internet-footer.js.map +1 -1
  174. package/dist/components/swisspost-internet-header.js +672 -672
  175. package/dist/components/swisspost-internet-header.js.map +1 -1
  176. package/dist/components/ui.service.js +27 -27
  177. package/dist/components/ui.service.js.map +1 -1
  178. package/dist/components/utils.js +14 -14
  179. package/dist/components/utils.js.map +1 -1
  180. package/dist/esm/{if.component-542fb8c3.js → if.component-0fe54385.js} +6 -6
  181. package/dist/esm/if.component-0fe54385.js.map +1 -0
  182. package/dist/esm/{klp-widget.controller-903e0422.js → klp-widget.controller-55366e6a.js} +4811 -4811
  183. package/dist/esm/{klp-widget.controller-903e0422.js.map → klp-widget.controller-55366e6a.js.map} +1 -1
  184. package/dist/esm/{language.service-e49858e0.js → language.service-023d2711.js} +141 -141
  185. package/dist/esm/language.service-023d2711.js.map +1 -0
  186. package/dist/esm/post-klp-login-widget.entry.js +33 -33
  187. package/dist/esm/post-klp-login-widget.entry.js.map +1 -1
  188. package/dist/esm/post-language-switch.entry.js +88 -88
  189. package/dist/esm/post-language-switch.entry.js.map +1 -1
  190. package/dist/esm/post-logo.entry.js +51 -51
  191. package/dist/esm/post-logo.entry.js.map +1 -1
  192. package/dist/esm/post-main-navigation.entry.js +226 -226
  193. package/dist/esm/post-main-navigation.entry.js.map +1 -1
  194. package/dist/esm/post-meta-navigation.entry.js +15 -15
  195. package/dist/esm/post-meta-navigation.entry.js.map +1 -1
  196. package/dist/esm/post-search.entry.js +556 -534
  197. package/dist/esm/post-search.entry.js.map +1 -1
  198. package/dist/esm/post-skiplinks.entry.js +41 -41
  199. package/dist/esm/post-skiplinks.entry.js.map +1 -1
  200. package/dist/esm/{store-d495dc07.js → store-837c3490.js} +20 -13
  201. package/dist/esm/store-837c3490.js.map +1 -0
  202. package/dist/esm/{svg-icon.component-1b1b27a2.js → svg-icon.component-e09b4bf9.js} +2 -2
  203. package/dist/esm/svg-icon.component-e09b4bf9.js.map +1 -0
  204. package/dist/esm/{svg-sprite.component-ec0ac38c.js → svg-sprite.component-cf60303f.js} +40 -40
  205. package/dist/esm/svg-sprite.component-cf60303f.js.map +1 -0
  206. package/dist/esm/swisspost-internet-breadcrumbs.entry.js +370 -392
  207. package/dist/esm/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  208. package/dist/esm/swisspost-internet-footer.entry.js +125 -125
  209. package/dist/esm/swisspost-internet-footer.entry.js.map +1 -1
  210. package/dist/esm/swisspost-internet-header.entry.js +608 -608
  211. package/dist/esm/swisspost-internet-header.entry.js.map +1 -1
  212. package/dist/esm/{ui.service-1d9b0f51.js → ui.service-2fbc9c45.js} +28 -28
  213. package/dist/esm/ui.service-2fbc9c45.js.map +1 -0
  214. package/dist/esm/{utils-5bf107ff.js → utils-ee79122f.js} +15 -15
  215. package/dist/esm/utils-ee79122f.js.map +1 -0
  216. package/dist/esm-es5/{if.component-542fb8c3.js → if.component-0fe54385.js} +1 -1
  217. package/dist/esm-es5/if.component-0fe54385.js.map +1 -0
  218. package/dist/esm-es5/{klp-widget.controller-903e0422.js → klp-widget.controller-55366e6a.js} +1 -1
  219. package/dist/{swisspost-internet-header/p-83f6cd1e.js.map → esm-es5/klp-widget.controller-55366e6a.js.map} +1 -1
  220. package/dist/esm-es5/{language.service-e49858e0.js → language.service-023d2711.js} +2 -2
  221. package/dist/esm-es5/language.service-023d2711.js.map +1 -0
  222. package/dist/esm-es5/post-klp-login-widget.entry.js +1 -1
  223. package/dist/esm-es5/post-klp-login-widget.entry.js.map +1 -1
  224. package/dist/esm-es5/post-language-switch.entry.js +1 -1
  225. package/dist/esm-es5/post-language-switch.entry.js.map +1 -1
  226. package/dist/esm-es5/post-logo.entry.js +1 -1
  227. package/dist/esm-es5/post-logo.entry.js.map +1 -1
  228. package/dist/esm-es5/post-main-navigation.entry.js +1 -1
  229. package/dist/esm-es5/post-main-navigation.entry.js.map +1 -1
  230. package/dist/esm-es5/post-meta-navigation.entry.js +1 -1
  231. package/dist/esm-es5/post-meta-navigation.entry.js.map +1 -1
  232. package/dist/esm-es5/post-search.entry.js +1 -1
  233. package/dist/esm-es5/post-search.entry.js.map +1 -1
  234. package/dist/esm-es5/post-skiplinks.entry.js +1 -1
  235. package/dist/esm-es5/post-skiplinks.entry.js.map +1 -1
  236. package/dist/esm-es5/store-837c3490.js +2 -0
  237. package/dist/esm-es5/store-837c3490.js.map +1 -0
  238. package/dist/esm-es5/{svg-icon.component-1b1b27a2.js → svg-icon.component-e09b4bf9.js} +1 -1
  239. package/dist/esm-es5/svg-icon.component-e09b4bf9.js.map +1 -0
  240. package/dist/esm-es5/{svg-sprite.component-ec0ac38c.js → svg-sprite.component-cf60303f.js} +1 -1
  241. package/dist/esm-es5/svg-sprite.component-cf60303f.js.map +1 -0
  242. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +3 -3
  243. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  244. package/dist/esm-es5/swisspost-internet-footer.entry.js +1 -1
  245. package/dist/esm-es5/swisspost-internet-footer.entry.js.map +1 -1
  246. package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
  247. package/dist/esm-es5/swisspost-internet-header.entry.js.map +1 -1
  248. package/dist/esm-es5/{ui.service-1d9b0f51.js → ui.service-2fbc9c45.js} +1 -1
  249. package/dist/esm-es5/ui.service-2fbc9c45.js.map +1 -0
  250. package/dist/esm-es5/{utils-5bf107ff.js → utils-ee79122f.js} +1 -1
  251. package/dist/esm-es5/utils-ee79122f.js.map +1 -0
  252. package/dist/swisspost-internet-header/assets/config/test-configuration.json +4067 -4067
  253. package/dist/swisspost-internet-header/p-06649b46.js +2 -0
  254. package/dist/swisspost-internet-header/p-06649b46.js.map +1 -0
  255. package/dist/swisspost-internet-header/{p-ec80c8fc.js → p-0942595f.js} +2 -2
  256. package/dist/swisspost-internet-header/p-0942595f.js.map +1 -0
  257. package/dist/swisspost-internet-header/{p-c29ec122.system.js → p-0c5624c0.system.js} +1 -1
  258. package/dist/swisspost-internet-header/p-0c5624c0.system.js.map +1 -0
  259. package/dist/swisspost-internet-header/{p-2eb04045.entry.js → p-0cba8ab4.entry.js} +2 -2
  260. package/dist/swisspost-internet-header/p-0cba8ab4.entry.js.map +1 -0
  261. package/dist/swisspost-internet-header/p-17a47667.system.js +1 -1
  262. package/dist/swisspost-internet-header/{p-ddcb8258.entry.js → p-26879023.entry.js} +2 -2
  263. package/dist/swisspost-internet-header/p-26879023.entry.js.map +1 -0
  264. package/dist/swisspost-internet-header/{p-cb3de015.system.entry.js → p-28e6362f.system.entry.js} +2 -2
  265. package/dist/swisspost-internet-header/p-28e6362f.system.entry.js.map +1 -0
  266. package/dist/swisspost-internet-header/{p-00fd320e.entry.js → p-322526ef.entry.js} +2 -2
  267. package/dist/swisspost-internet-header/p-322526ef.entry.js.map +1 -0
  268. package/dist/swisspost-internet-header/{p-f4ff1e9e.system.js → p-3753a678.system.js} +2 -2
  269. package/dist/swisspost-internet-header/p-3753a678.system.js.map +1 -0
  270. package/dist/swisspost-internet-header/{p-a9c4b2d0.system.entry.js → p-38d645ba.system.entry.js} +2 -2
  271. package/dist/swisspost-internet-header/p-38d645ba.system.entry.js.map +1 -0
  272. package/dist/swisspost-internet-header/{p-872a76a4.system.js → p-42695801.system.js} +1 -1
  273. package/dist/swisspost-internet-header/p-42695801.system.js.map +1 -0
  274. package/dist/swisspost-internet-header/{p-bdabd6ac.js → p-45db66a6.js} +1 -1
  275. package/dist/swisspost-internet-header/p-45db66a6.js.map +1 -0
  276. package/dist/swisspost-internet-header/p-493337e1.system.entry.js +2 -0
  277. package/dist/swisspost-internet-header/p-493337e1.system.entry.js.map +1 -0
  278. package/dist/swisspost-internet-header/{p-78f653be.system.entry.js → p-5d2fac3b.system.entry.js} +2 -2
  279. package/dist/swisspost-internet-header/p-5d2fac3b.system.entry.js.map +1 -0
  280. package/dist/swisspost-internet-header/p-62c5cf26.entry.js +2 -0
  281. package/dist/swisspost-internet-header/p-62c5cf26.entry.js.map +1 -0
  282. package/dist/swisspost-internet-header/{p-9d0a7039.entry.js → p-64cb215a.entry.js} +2 -2
  283. package/dist/swisspost-internet-header/p-64cb215a.entry.js.map +1 -0
  284. package/dist/swisspost-internet-header/{p-a51ad207.system.entry.js → p-66144e99.system.entry.js} +2 -2
  285. package/dist/swisspost-internet-header/p-66144e99.system.entry.js.map +1 -0
  286. package/dist/swisspost-internet-header/p-715ebef7.system.entry.js +7 -0
  287. package/dist/swisspost-internet-header/p-715ebef7.system.entry.js.map +1 -0
  288. package/dist/swisspost-internet-header/{p-12baacf0.entry.js → p-77d5e07f.entry.js} +2 -2
  289. package/dist/swisspost-internet-header/p-77d5e07f.entry.js.map +1 -0
  290. package/dist/swisspost-internet-header/p-7ea26ee9.entry.js +2 -0
  291. package/dist/swisspost-internet-header/p-7ea26ee9.entry.js.map +1 -0
  292. package/dist/swisspost-internet-header/p-7fcba2e7.system.js +2 -0
  293. package/dist/swisspost-internet-header/p-7fcba2e7.system.js.map +1 -0
  294. package/dist/swisspost-internet-header/{p-549b62ba.system.js → p-88aac12c.system.js} +1 -1
  295. package/dist/swisspost-internet-header/p-88aac12c.system.js.map +1 -0
  296. package/dist/swisspost-internet-header/{p-0e2ec555.js → p-8bf099a8.js} +1 -1
  297. package/dist/swisspost-internet-header/p-8bf099a8.js.map +1 -0
  298. package/dist/swisspost-internet-header/{p-8717445f.entry.js → p-95b81c4d.entry.js} +2 -2
  299. package/dist/swisspost-internet-header/p-95b81c4d.entry.js.map +1 -0
  300. package/dist/swisspost-internet-header/{p-3eb881c3.js → p-a2f9d462.js} +1 -1
  301. package/dist/swisspost-internet-header/p-a2f9d462.js.map +1 -0
  302. package/dist/swisspost-internet-header/{p-eeff8b03.js → p-ab1dd269.js} +1 -1
  303. package/dist/swisspost-internet-header/p-ab1dd269.js.map +1 -0
  304. package/dist/swisspost-internet-header/p-b228fe49.system.entry.js +2 -0
  305. package/dist/swisspost-internet-header/p-b228fe49.system.entry.js.map +1 -0
  306. package/dist/swisspost-internet-header/{p-a4160d23.entry.js → p-ccb522ba.entry.js} +2 -2
  307. package/dist/swisspost-internet-header/p-ccb522ba.entry.js.map +1 -0
  308. package/dist/swisspost-internet-header/p-cfa787d7.entry.js +6 -0
  309. package/dist/swisspost-internet-header/p-cfa787d7.entry.js.map +1 -0
  310. package/dist/swisspost-internet-header/{p-c946c5b8.system.entry.js → p-d6539597.system.entry.js} +2 -2
  311. package/dist/swisspost-internet-header/p-d6539597.system.entry.js.map +1 -0
  312. package/dist/swisspost-internet-header/{p-b406315a.system.entry.js → p-e2990968.system.entry.js} +2 -2
  313. package/dist/swisspost-internet-header/p-e2990968.system.entry.js.map +1 -0
  314. package/dist/swisspost-internet-header/{p-83f6cd1e.js → p-ed24b372.js} +1 -1
  315. package/dist/swisspost-internet-header/p-ed24b372.js.map +1 -0
  316. package/dist/swisspost-internet-header/{p-9509f6c7.system.js → p-edb2802d.system.js} +1 -1
  317. package/dist/swisspost-internet-header/p-edb2802d.system.js.map +1 -0
  318. package/dist/swisspost-internet-header/{p-ee915bbe.system.js → p-ee119d2e.system.js} +1 -1
  319. package/dist/swisspost-internet-header/p-ee119d2e.system.js.map +1 -0
  320. package/dist/swisspost-internet-header/{p-883f9547.system.entry.js → p-f38f38f4.system.entry.js} +2 -2
  321. package/dist/swisspost-internet-header/p-f38f38f4.system.entry.js.map +1 -0
  322. package/dist/swisspost-internet-header/{p-3ba40afe.js → p-f7c0cf7b.js} +1 -1
  323. package/dist/swisspost-internet-header/p-f7c0cf7b.js.map +1 -0
  324. package/dist/swisspost-internet-header/{p-4654b2af.system.js → p-ffc59851.system.js} +1 -1
  325. package/dist/swisspost-internet-header/p-ffc59851.system.js.map +1 -0
  326. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
  327. package/dist/types/assets/i18n/translations.d.ts +37 -37
  328. package/dist/types/components/post-internet-breadcrumbs/components/breadcrumb-list.component.d.ts +9 -9
  329. package/dist/types/components/post-internet-breadcrumbs/components/focus-trap.component.d.ts +12 -12
  330. package/dist/types/components/post-internet-breadcrumbs/components/middle-dropdown.component.d.ts +7 -7
  331. package/dist/types/components/post-internet-breadcrumbs/components/middle-links.component.d.ts +6 -6
  332. package/dist/types/components/post-internet-breadcrumbs/components/overlay.component.d.ts +16 -16
  333. package/dist/types/components/post-internet-breadcrumbs/post-internet-breadcrumbs.d.ts +45 -45
  334. package/dist/types/components/post-internet-footer/components/post-footer-block-address.component.d.ts +5 -5
  335. package/dist/types/components/post-internet-footer/components/post-footer-block-contact.component.d.ts +6 -6
  336. package/dist/types/components/post-internet-footer/components/post-footer-block-custom.component.d.ts +4 -4
  337. package/dist/types/components/post-internet-footer/components/post-footer-block-list.component.d.ts +5 -5
  338. package/dist/types/components/post-internet-footer/components/post-footer-block-socials.component.d.ts +5 -5
  339. package/dist/types/components/post-internet-footer/post-internet-footer.d.ts +10 -10
  340. package/dist/types/components/post-internet-header/post-internet-header.d.ts +124 -124
  341. package/dist/types/components/post-klp-login-widget/klp-widget.controller.d.ts +3 -3
  342. package/dist/types/components/post-klp-login-widget/post-klp-login-widget.d.ts +10 -10
  343. package/dist/types/components/post-language-switch/components/post-language-switch-list.d.ts +6 -6
  344. package/dist/types/components/post-language-switch/post-language-switch.d.ts +27 -27
  345. package/dist/types/components/post-logo/logo-sprite.component.d.ts +4 -4
  346. package/dist/types/components/post-logo/post-logo.d.ts +11 -11
  347. package/dist/types/components/post-main-navigation/components/level-one-action.component.d.ts +8 -8
  348. package/dist/types/components/post-main-navigation/post-main-navigation.d.ts +48 -48
  349. package/dist/types/components/post-meta-navigation/post-meta-navigation.d.ts +5 -5
  350. package/dist/types/components/post-search/post-search.d.ts +61 -61
  351. package/dist/types/components/post-skiplinks/post-skiplinks.d.ts +9 -9
  352. package/dist/types/data/store.d.ts +16 -16
  353. package/dist/types/index.d.ts +1 -1
  354. package/dist/types/models/breadcrumbs.model.d.ts +36 -36
  355. package/dist/types/models/coveo.model.d.ts +22 -22
  356. package/dist/types/models/footer.model.d.ts +48 -48
  357. package/dist/types/models/general.model.d.ts +46 -46
  358. package/dist/types/models/geocode.model.d.ts +52 -52
  359. package/dist/types/models/header.model.d.ts +163 -163
  360. package/dist/types/models/implementor.model.d.ts +22 -22
  361. package/dist/types/models/language.model.d.ts +6 -6
  362. package/dist/types/models/track-and-trace.model.d.ts +25 -25
  363. package/dist/types/services/config.service.d.ts +56 -56
  364. package/dist/types/services/language.service.d.ts +65 -65
  365. package/dist/types/services/route.service.d.ts +39 -39
  366. package/dist/types/services/search/coveo.service.d.ts +9 -9
  367. package/dist/types/services/search/coveo.settings.d.ts +2 -2
  368. package/dist/types/services/search/parcel.service.d.ts +28 -28
  369. package/dist/types/services/search/places.service.d.ts +24 -24
  370. package/dist/types/services/search/places.settings.d.ts +3 -3
  371. package/dist/types/services/search/search-utilities.d.ts +15 -15
  372. package/dist/types/services/search/search.service.d.ts +24 -24
  373. package/dist/types/services/ui.service.d.ts +23 -23
  374. package/dist/types/utils/highlighted.component.d.ts +4 -4
  375. package/dist/types/utils/if.component.d.ts +4 -4
  376. package/dist/types/utils/svg-icon.component.d.ts +4 -4
  377. package/dist/types/utils/svg-sprite.component.d.ts +1 -1
  378. package/dist/types/utils/utils.d.ts +8 -8
  379. package/package.json +7 -7
  380. package/readme.md +57 -15
  381. package/dist/cjs/if.component-313f59b8.js.map +0 -1
  382. package/dist/cjs/language.service-a80ae01d.js.map +0 -1
  383. package/dist/cjs/store-47e14589.js.map +0 -1
  384. package/dist/cjs/svg-icon.component-10fbda11.js.map +0 -1
  385. package/dist/cjs/svg-sprite.component-c3b454b3.js.map +0 -1
  386. package/dist/cjs/ui.service-db4a8252.js.map +0 -1
  387. package/dist/cjs/utils-b6014257.js.map +0 -1
  388. package/dist/esm/if.component-542fb8c3.js.map +0 -1
  389. package/dist/esm/language.service-e49858e0.js.map +0 -1
  390. package/dist/esm/store-d495dc07.js.map +0 -1
  391. package/dist/esm/svg-icon.component-1b1b27a2.js.map +0 -1
  392. package/dist/esm/svg-sprite.component-ec0ac38c.js.map +0 -1
  393. package/dist/esm/ui.service-1d9b0f51.js.map +0 -1
  394. package/dist/esm/utils-5bf107ff.js.map +0 -1
  395. package/dist/esm-es5/if.component-542fb8c3.js.map +0 -1
  396. package/dist/esm-es5/klp-widget.controller-903e0422.js.map +0 -1
  397. package/dist/esm-es5/language.service-e49858e0.js.map +0 -1
  398. package/dist/esm-es5/store-d495dc07.js +0 -2
  399. package/dist/esm-es5/store-d495dc07.js.map +0 -1
  400. package/dist/esm-es5/svg-icon.component-1b1b27a2.js.map +0 -1
  401. package/dist/esm-es5/svg-sprite.component-ec0ac38c.js.map +0 -1
  402. package/dist/esm-es5/ui.service-1d9b0f51.js.map +0 -1
  403. package/dist/esm-es5/utils-5bf107ff.js.map +0 -1
  404. package/dist/swisspost-internet-header/p-00fd320e.entry.js.map +0 -1
  405. package/dist/swisspost-internet-header/p-0e2ec555.js.map +0 -1
  406. package/dist/swisspost-internet-header/p-12baacf0.entry.js.map +0 -1
  407. package/dist/swisspost-internet-header/p-2eb04045.entry.js.map +0 -1
  408. package/dist/swisspost-internet-header/p-3ba40afe.js.map +0 -1
  409. package/dist/swisspost-internet-header/p-3eb881c3.js.map +0 -1
  410. package/dist/swisspost-internet-header/p-458c9862.system.entry.js +0 -2
  411. package/dist/swisspost-internet-header/p-458c9862.system.entry.js.map +0 -1
  412. package/dist/swisspost-internet-header/p-4654b2af.system.js.map +0 -1
  413. package/dist/swisspost-internet-header/p-549b62ba.system.js.map +0 -1
  414. package/dist/swisspost-internet-header/p-5e43c5e0.js +0 -2
  415. package/dist/swisspost-internet-header/p-5e43c5e0.js.map +0 -1
  416. package/dist/swisspost-internet-header/p-74932c29.entry.js +0 -6
  417. package/dist/swisspost-internet-header/p-74932c29.entry.js.map +0 -1
  418. package/dist/swisspost-internet-header/p-76ce4acc.system.entry.js +0 -2
  419. package/dist/swisspost-internet-header/p-76ce4acc.system.entry.js.map +0 -1
  420. package/dist/swisspost-internet-header/p-78f653be.system.entry.js.map +0 -1
  421. package/dist/swisspost-internet-header/p-7f16a46b.entry.js +0 -2
  422. package/dist/swisspost-internet-header/p-7f16a46b.entry.js.map +0 -1
  423. package/dist/swisspost-internet-header/p-8717445f.entry.js.map +0 -1
  424. package/dist/swisspost-internet-header/p-872a76a4.system.js.map +0 -1
  425. package/dist/swisspost-internet-header/p-883f9547.system.entry.js.map +0 -1
  426. package/dist/swisspost-internet-header/p-9509f6c7.system.js.map +0 -1
  427. package/dist/swisspost-internet-header/p-9d0a7039.entry.js.map +0 -1
  428. package/dist/swisspost-internet-header/p-a4160d23.entry.js.map +0 -1
  429. package/dist/swisspost-internet-header/p-a51ad207.system.entry.js.map +0 -1
  430. package/dist/swisspost-internet-header/p-a9c4b2d0.system.entry.js.map +0 -1
  431. package/dist/swisspost-internet-header/p-b406315a.system.entry.js.map +0 -1
  432. package/dist/swisspost-internet-header/p-bdabd6ac.js.map +0 -1
  433. package/dist/swisspost-internet-header/p-c29ec122.system.js.map +0 -1
  434. package/dist/swisspost-internet-header/p-c69923cd.system.js +0 -2
  435. package/dist/swisspost-internet-header/p-c69923cd.system.js.map +0 -1
  436. package/dist/swisspost-internet-header/p-c946c5b8.system.entry.js.map +0 -1
  437. package/dist/swisspost-internet-header/p-cb3de015.system.entry.js.map +0 -1
  438. package/dist/swisspost-internet-header/p-d713a3b3.system.entry.js +0 -7
  439. package/dist/swisspost-internet-header/p-d713a3b3.system.entry.js.map +0 -1
  440. package/dist/swisspost-internet-header/p-ddcb8258.entry.js.map +0 -1
  441. package/dist/swisspost-internet-header/p-ec80c8fc.js.map +0 -1
  442. package/dist/swisspost-internet-header/p-ee915bbe.system.js.map +0 -1
  443. package/dist/swisspost-internet-header/p-eeff8b03.js.map +0 -1
  444. package/dist/swisspost-internet-header/p-f4ff1e9e.system.js.map +0 -1
  445. package/dist/swisspost-internet-header/p-fa0c66c7.entry.js +0 -2
  446. package/dist/swisspost-internet-header/p-fa0c66c7.entry.js.map +0 -1
@@ -5,169 +5,169 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-5751975e.js');
6
6
  const index$1 = require('./index-e7245d60.js');
7
7
  const bodyScrollLock_esm = require('./bodyScrollLock.esm-59f17217.js');
8
- const store = require('./store-47e14589.js');
9
- const ui_service = require('./ui.service-db4a8252.js');
10
- const svgSprite_component = require('./svg-sprite.component-c3b454b3.js');
11
- const svgIcon_component = require('./svg-icon.component-10fbda11.js');
12
- const if_component = require('./if.component-313f59b8.js');
13
-
14
- // https://www.post.ch/api/trackandtrace?id=99.00.306600.01004883
15
- // Track and trace URL
16
- const getTrackAndTraceApiUrl = (id) => {
17
- const lang = store.state.currentLanguage;
18
- return `https://www.post.ch/${lang}/api/trackandtrace?id=${encodeURIComponent(id)}`;
19
- };
20
- // Get the redire
21
- const getTrackAndTraceRedirectUrl = (query, { packageTrackingRedirectUrl }) => {
22
- return packageTrackingRedirectUrl.replace('{trackingNumber}', encodeURIComponent(query));
23
- };
24
- /**
25
- * Check whether a query is a tracking id
26
- *
27
- * @param query User query
28
- * @returns Boolean
29
- */
30
- const isParcel = async (query, searchConfig) => {
31
- const parcelInfo = await getParcelInfo(query, searchConfig);
32
- return parcelInfo.ok;
33
- };
34
- /**
35
- * Try to get parcel info from a query that is possibly a tracking id.
36
- * This is mainly used to check if a search should redirect to track&trace instead of the regular search.
37
- *
38
- * @param query User query that is possibly a tracking number
39
- * @returns Track and trace info
40
- */
41
- const getParcelInfo = async (query, { redirectPattern }) => {
42
- const trackingNrPattern = new RegExp(redirectPattern);
43
- if (trackingNrPattern.test(query)) {
44
- try {
45
- const trackAndTraceReqest = await fetch(getTrackAndTraceApiUrl(query));
46
- const trackAndTraceResult = await trackAndTraceReqest.json();
47
- return Object.assign(Object.assign({}, trackAndTraceResult), { ok: trackAndTraceResult.ok === 'true' });
48
- }
49
- catch (error) {
50
- console.warn(`Could not check track and trace API due to error: ${error.message}`);
51
- }
52
- }
53
- return { ok: false, timestamp: new Date().toDateString() };
54
- };
55
- /**
56
- * Get parcel info if query is a parcel or null
57
- *
58
- * @param query Parcel id
59
- * @returns Parcel info and a redirect url or null if not a parcel
60
- */
61
- const getParcelSuggestion = async (query, searchConfig) => {
62
- const parcelInfo = await getParcelInfo(query, searchConfig);
63
- return parcelInfo.ok
64
- ? Object.assign(Object.assign({}, parcelInfo), { url: getTrackAndTraceRedirectUrl(query, searchConfig) }) : null;
8
+ const store = require('./store-d0d514fc.js');
9
+ const ui_service = require('./ui.service-e1ebb6d4.js');
10
+ const svgSprite_component = require('./svg-sprite.component-1bd7a058.js');
11
+ const svgIcon_component = require('./svg-icon.component-be93f876.js');
12
+ const if_component = require('./if.component-51d000af.js');
13
+
14
+ // https://www.post.ch/api/trackandtrace?id=99.00.306600.01004883
15
+ // Track and trace URL
16
+ const getTrackAndTraceApiUrl = (id) => {
17
+ const lang = store.state.currentLanguage;
18
+ return `https://www.post.ch/${lang}/api/trackandtrace?id=${encodeURIComponent(id)}`;
19
+ };
20
+ // Get the redire
21
+ const getTrackAndTraceRedirectUrl = (query, { packageTrackingRedirectUrl }) => {
22
+ return packageTrackingRedirectUrl.replace('{trackingNumber}', encodeURIComponent(query));
23
+ };
24
+ /**
25
+ * Check whether a query is a tracking id
26
+ *
27
+ * @param query User query
28
+ * @returns Boolean
29
+ */
30
+ const isParcel = async (query, searchConfig) => {
31
+ const parcelInfo = await getParcelInfo(query, searchConfig);
32
+ return parcelInfo.ok;
33
+ };
34
+ /**
35
+ * Try to get parcel info from a query that is possibly a tracking id.
36
+ * This is mainly used to check if a search should redirect to track&trace instead of the regular search.
37
+ *
38
+ * @param query User query that is possibly a tracking number
39
+ * @returns Track and trace info
40
+ */
41
+ const getParcelInfo = async (query, { redirectPattern }) => {
42
+ const trackingNrPattern = new RegExp(redirectPattern);
43
+ if (trackingNrPattern.test(query)) {
44
+ try {
45
+ const trackAndTraceReqest = await fetch(getTrackAndTraceApiUrl(query));
46
+ const trackAndTraceResult = await trackAndTraceReqest.json();
47
+ return Object.assign(Object.assign({}, trackAndTraceResult), { ok: trackAndTraceResult.ok === 'true' });
48
+ }
49
+ catch (error) {
50
+ console.warn(`Could not check track and trace API due to error: ${error.message}`);
51
+ }
52
+ }
53
+ return { ok: false, timestamp: new Date().toDateString() };
54
+ };
55
+ /**
56
+ * Get parcel info if query is a parcel or null
57
+ *
58
+ * @param query Parcel id
59
+ * @returns Parcel info and a redirect url or null if not a parcel
60
+ */
61
+ const getParcelSuggestion = async (query, searchConfig) => {
62
+ const parcelInfo = await getParcelInfo(query, searchConfig);
63
+ return parcelInfo.ok
64
+ ? Object.assign(Object.assign({}, parcelInfo), { url: getTrackAndTraceRedirectUrl(query, searchConfig) }) : null;
65
65
  };
66
66
 
67
- /**
68
- * Construct a search page url from a query
69
- *
70
- * @param query Search term
71
- * @returns
72
- */
73
- const getSearchRedirectUrl = async (query, searchConfig) => {
74
- const isTrackTraceId = await isParcel(query, searchConfig);
75
- return isTrackTraceId
76
- ? getTrackAndTraceRedirectUrl(query, searchConfig)
77
- : getSearchPageUrl(query);
78
- };
79
- /**
80
- * Stitch toghether the search page URL
81
- *
82
- * @param query Search term
83
- * @returns Search page URL
84
- */
85
- const getSearchPageUrl = (query) => {
86
- var _a;
87
- if (((_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search) === undefined) {
88
- return;
89
- }
90
- const { searchPageUrl } = store.state.localizedConfig.header.search;
91
- const searchParam = `#q=${encodeURIComponent(query)}`;
92
- return `${searchPageUrl}${searchParam}&t=AllTab`;
93
- };
94
- /**
95
- * Equalize the length of two arrays while filling up empty slots up to max. length
96
- *
97
- * @param arrayA First array
98
- * @param arrayB Second array
99
- * @param maxLength Max. length of result array
100
- * @returns Array with two resulting arrays
101
- */
102
- const equalizeArrays = (arrayA, arrayB, maxLength = 8) => {
103
- const coveoSliced = arrayA.slice(0, Math.max(maxLength / 2, maxLength - arrayB.length));
104
- return [coveoSliced, arrayB.slice(0, maxLength - coveoSliced.length)];
67
+ /**
68
+ * Construct a search page url from a query
69
+ *
70
+ * @param query Search term
71
+ * @returns
72
+ */
73
+ const getSearchRedirectUrl = async (query, searchConfig) => {
74
+ const isTrackTraceId = await isParcel(query, searchConfig);
75
+ return isTrackTraceId
76
+ ? getTrackAndTraceRedirectUrl(query, searchConfig)
77
+ : getSearchPageUrl(query);
78
+ };
79
+ /**
80
+ * Stitch toghether the search page URL
81
+ *
82
+ * @param query Search term
83
+ * @returns Search page URL
84
+ */
85
+ const getSearchPageUrl = (query) => {
86
+ var _a;
87
+ if (((_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search) === undefined) {
88
+ return;
89
+ }
90
+ const { searchPageUrl } = store.state.localizedConfig.header.search;
91
+ const searchParam = `#q=${encodeURIComponent(query)}`;
92
+ return `${searchPageUrl}${searchParam}&t=AllTab`;
93
+ };
94
+ /**
95
+ * Equalize the length of two arrays while filling up empty slots up to max. length
96
+ *
97
+ * @param arrayA First array
98
+ * @param arrayB Second array
99
+ * @param maxLength Max. length of result array
100
+ * @returns Array with two resulting arrays
101
+ */
102
+ const equalizeArrays = (arrayA, arrayB, maxLength = 8) => {
103
+ const coveoSliced = arrayA.slice(0, Math.max(maxLength / 2, maxLength - arrayB.length));
104
+ return [coveoSliced, arrayB.slice(0, maxLength - coveoSliced.length)];
105
105
  };
106
106
 
107
- // Coveo constants
108
- const coveo = {
109
- url: 'https://platform-eu.cloud.coveo.com/rest/search/v2/querySuggest',
110
- environment: {
111
- prod: {
112
- organisation: 'postchagprod6ef4sbet',
113
- token: 'xx5b629890-23b9-4fbe-b601-0e8719186969',
114
- },
115
- int01: {
116
- organisation: 'postchagnonprods5sq57qt',
117
- token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',
118
- },
119
- int02: {
120
- organisation: 'postchagnonprods5sq57qt',
121
- token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',
122
- },
123
- },
107
+ // Coveo constants
108
+ const coveo = {
109
+ url: 'https://platform-eu.cloud.coveo.com/rest/search/v2/querySuggest',
110
+ environment: {
111
+ prod: {
112
+ organisation: 'postchagprod6ef4sbet',
113
+ token: 'xx5b629890-23b9-4fbe-b601-0e8719186969',
114
+ },
115
+ int01: {
116
+ organisation: 'postchagnonprods5sq57qt',
117
+ token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',
118
+ },
119
+ int02: {
120
+ organisation: 'postchagnonprods5sq57qt',
121
+ token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',
122
+ },
123
+ },
124
124
  };
125
125
 
126
- /**
127
- * Get suggestions from coveo
128
- * https://docs.coveo.com/en/1459/build-a-search-ui/get-query-suggestions#context-object
129
- *
130
- * @param query Search term
131
- * @returns
132
- */
133
- const getCoveoSuggestions = async (query) => {
134
- var _a, _b;
135
- if (((_b = (_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header) === null || _b === void 0 ? void 0 : _b.search) === undefined)
136
- return [];
137
- const config = store.state.localizedConfig.header.search;
138
- const { token, organisation } = coveo.environment[store.state.environment];
139
- const url = `${coveo.url}?q=${query}&locale=${store.state.currentLanguage}&searchHub=${config.searchHubName}&pipeline=${config.searchPipelineName}&organizationId=${organisation}`;
140
- let coveoCompletions;
141
- try {
142
- const coveoResponse = await fetch(url, {
143
- method: 'GET',
144
- headers: {
145
- Authorization: `Bearer ${token}`,
146
- },
147
- });
148
- const coveoJSON = (await coveoResponse.json());
149
- coveoCompletions = coveoJSON.completions.map(completion => (Object.assign(Object.assign({}, completion), { redirectUrl: getSearchPageUrl(completion.expression) })));
150
- }
151
- catch (error) {
152
- console.error('Connection to coveo failed. Did you add "*.coveo.com" to your connect-src content security policy and tried turning off your adblocker?');
153
- }
154
- return coveoCompletions === undefined ? [] : coveoCompletions;
126
+ /**
127
+ * Get suggestions from coveo
128
+ * https://docs.coveo.com/en/1459/build-a-search-ui/get-query-suggestions#context-object
129
+ *
130
+ * @param query Search term
131
+ * @returns
132
+ */
133
+ const getCoveoSuggestions = async (query) => {
134
+ var _a, _b;
135
+ if (((_b = (_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header) === null || _b === void 0 ? void 0 : _b.search) === undefined)
136
+ return [];
137
+ const config = store.state.localizedConfig.header.search;
138
+ const { token, organisation } = coveo.environment[store.state.environment];
139
+ const url = `${coveo.url}?q=${query}&locale=${store.state.currentLanguage}&searchHub=${config.searchHubName}&pipeline=${config.searchPipelineName}&organizationId=${organisation}`;
140
+ let coveoCompletions;
141
+ try {
142
+ const coveoResponse = await fetch(url, {
143
+ method: 'GET',
144
+ headers: {
145
+ Authorization: `Bearer ${token}`,
146
+ },
147
+ });
148
+ const coveoJSON = (await coveoResponse.json());
149
+ coveoCompletions = coveoJSON.completions.map(completion => (Object.assign(Object.assign({}, completion), { redirectUrl: getSearchPageUrl(completion.expression) })));
150
+ }
151
+ catch (error) {
152
+ console.error('Connection to coveo failed. Did you add "*.coveo.com" to your connect-src content security policy and tried turning off your adblocker?');
153
+ }
154
+ return coveoCompletions === undefined ? [] : coveoCompletions;
155
155
  };
156
156
 
157
- // Implement some TOPOS logic into the header search
158
- const gisAPIUrl = 'https://places.post.ch/StandortSuche/StaoCacheService';
159
- const placesUrl = 'https://places.post.ch';
160
- const pois = [
161
- '001PST',
162
- '001MP24',
163
- '001AG-PICK',
164
- '001PFFIL',
165
- '001PFST',
166
- '001BZ',
167
- '001LZB',
168
- '001PZ',
169
- '001LZP',
170
- '001AL',
157
+ // Implement some TOPOS logic into the header search
158
+ const gisAPIUrl = 'https://places.post.ch/StandortSuche/StaoCacheService';
159
+ const placesUrl = 'https://places.post.ch';
160
+ const pois = [
161
+ '001PST',
162
+ '001MP24',
163
+ '001AG-PICK',
164
+ '001PFFIL',
165
+ '001PFST',
166
+ '001BZ',
167
+ '001LZB',
168
+ '001PZ',
169
+ '001LZP',
170
+ '001AL',
171
171
  ];
172
172
 
173
173
  function escapeStringRegexp(string) {
@@ -2294,6 +2294,23 @@ const removeMootSeparators = (string, separator) => {
2294
2294
  .replace(new RegExp(`^${escapedSeparator}|${escapedSeparator}$`, 'g'), '');
2295
2295
  };
2296
2296
 
2297
+ const buildPatternSlug = options => {
2298
+ let negationSetPattern = 'a-z\\d';
2299
+ negationSetPattern += options.lowercase ? '' : 'A-Z';
2300
+
2301
+ if (options.preserveCharacters.length > 0) {
2302
+ for (const character of options.preserveCharacters) {
2303
+ if (character === options.separator) {
2304
+ throw new Error(`The separator character \`${options.separator}\` cannot be included in preserved characters: ${options.preserveCharacters}`);
2305
+ }
2306
+
2307
+ negationSetPattern += escapeStringRegexp(character);
2308
+ }
2309
+ }
2310
+
2311
+ return new RegExp(`[^${negationSetPattern}]+`, 'g');
2312
+ };
2313
+
2297
2314
  function slugify(string, options) {
2298
2315
  if (typeof string !== 'string') {
2299
2316
  throw new TypeError(`Expected a string, got \`${typeof string}\``);
@@ -2306,6 +2323,7 @@ function slugify(string, options) {
2306
2323
  customReplacements: [],
2307
2324
  preserveLeadingUnderscore: false,
2308
2325
  preserveTrailingDash: false,
2326
+ preserveCharacters: [],
2309
2327
  ...options
2310
2328
  };
2311
2329
 
@@ -2323,15 +2341,19 @@ function slugify(string, options) {
2323
2341
  string = decamelize(string);
2324
2342
  }
2325
2343
 
2326
- let patternSlug = /[^a-zA-Z\d]+/g;
2344
+ const patternSlug = buildPatternSlug(options);
2327
2345
 
2328
2346
  if (options.lowercase) {
2329
2347
  string = string.toLowerCase();
2330
- patternSlug = /[^a-z\d]+/g;
2331
2348
  }
2332
2349
 
2333
2350
  string = string.replace(patternSlug, options.separator);
2334
2351
  string = string.replace(/\\/g, '');
2352
+
2353
+ // Detect contractions/possessives by looking for any word followed by a `-t`
2354
+ // or `-s` in isolation and then remove it.
2355
+ string = string.replace(/([a-zA-Z\d]+)-([ts])(-|$)/g, '$1$2$3');
2356
+
2335
2357
  if (options.separator) {
2336
2358
  string = removeMootSeparators(string, options.separator);
2337
2359
  }
@@ -2347,391 +2369,391 @@ function slugify(string, options) {
2347
2369
  return string;
2348
2370
  }
2349
2371
 
2350
- /**
2351
- * Transform to lowercase, extract accents to separate unicode chars,
2352
- * replace all accent unicode chars so only standard latin chars remain
2353
- * https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript/37511463#37511463
2354
- *
2355
- * @param str Input string
2356
- * @returns
2357
- */
2358
- const hardNormalize = (str) => str
2359
- .toLowerCase()
2360
- .normalize('NFD')
2361
- .replace(/[\u0300-\u036f]/g, '');
2362
- /**
2363
- * Convert a poi name to a URL compatible slug, logic copied from TOPOS
2364
- * @param fragment A poi name
2365
- * @returns
2366
- */
2367
- const createSlug = (fragment) => slugify(fragment
2368
- .replace(/ \/ /g, '-')
2369
- .replace(/ /g, '-')
2370
- .replace(/\//g, '')
2371
- .replace(/\./g, '')
2372
- .replace(/\,/g, '')
2372
+ /**
2373
+ * Transform to lowercase, extract accents to separate unicode chars,
2374
+ * replace all accent unicode chars so only standard latin chars remain
2375
+ * https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript/37511463#37511463
2376
+ *
2377
+ * @param str Input string
2378
+ * @returns
2379
+ */
2380
+ const hardNormalize = (str) => str
2381
+ .toLowerCase()
2382
+ .normalize('NFD')
2383
+ .replace(/[\u0300-\u036f]/g, '');
2384
+ /**
2385
+ * Convert a poi name to a URL compatible slug, logic copied from TOPOS
2386
+ * @param fragment A poi name
2387
+ * @returns
2388
+ */
2389
+ const createSlug = (fragment) => slugify(fragment
2390
+ .replace(/ \/ /g, '-')
2391
+ .replace(/ /g, '-')
2392
+ .replace(/\//g, '')
2393
+ .replace(/\./g, '')
2394
+ .replace(/\,/g, '')
2373
2395
  .replace(/\'/g, ''));
2374
2396
 
2375
- // Never load types twice
2376
- let typesCache = null;
2377
- /**
2378
- * Convert Post POI ids to stao cache ids
2379
- * @returns
2380
- */
2381
- const convertTypes = async () => {
2382
- if (typesCache === null) {
2383
- try {
2384
- const typesResponse = await fetch(`${gisAPIUrl}/Types?lang=${store.state.currentLanguage}`);
2385
- const typesJSON = (await typesResponse.json());
2386
- typesCache = encodeURIComponent(pois
2387
- .map(poi => {
2388
- const foundType = typesJSON.types.find(type => type.id === poi);
2389
- return foundType === null || foundType === void 0 ? void 0 : foundType.tag;
2390
- })
2391
- .filter(poi => poi !== undefined)
2392
- .join(','));
2393
- }
2394
- catch (error) {
2395
- console.error('Fetching places failed. Did you add "places.post.ch" to your connect-src content security policy?');
2396
- throw error;
2397
- }
2398
- }
2399
- return typesCache;
2400
- };
2401
- /**
2402
- * Query the Gis API for locations and localities (pois)
2403
- *
2404
- * @param query User input string
2405
- * @returns
2406
- */
2407
- const queryPlaces = async (query) => {
2408
- if (query.length === 0) {
2409
- return [];
2410
- }
2411
- const limit = 8;
2412
- const excludeTypes = ['address', 'locality', 'region'];
2413
- const types = await convertTypes();
2414
- const geocoderUrl = `${gisAPIUrl}/Geocode?query=${encodeURIComponent(query)}&lang=${store.state.currentLanguage}&pois=${types}&limit=100`;
2415
- try {
2416
- const geocodeResponse = await fetch(geocoderUrl);
2417
- const geocodeJSON = (await geocodeResponse.json());
2418
- if (!geocodeJSON.ok) {
2419
- throw new Error(geocodeJSON.info);
2420
- }
2421
- return geocodeJSON.locations
2422
- .filter(location => !excludeTypes.includes(location.type))
2423
- .slice(0, limit);
2424
- }
2425
- catch (error) {
2426
- console.error('Fetching places failed. Did you add "places.post.ch" to your connect-src content security policy?');
2427
- throw error;
2428
- }
2429
- };
2430
- /**
2431
- * Try to highlight place suggestions
2432
- * Limitation: accented chars are not handled by this basic function
2433
- *
2434
- * @param query Search term
2435
- * @param place Name of the suggested place
2436
- * @returns
2437
- */
2438
- const highlightPlacesString = (query, place) => {
2439
- if (query === undefined)
2440
- return place;
2441
- // Strip accents from the string
2442
- const reference = hardNormalize(place);
2443
- const q = hardNormalize(query);
2444
- const indexOfQuery = reference.indexOf(q);
2445
- if (indexOfQuery < 0) {
2446
- return place;
2447
- }
2448
- return `${place.substring(0, indexOfQuery)}{${place.substring(indexOfQuery, indexOfQuery + query.length)}}${place.substring(indexOfQuery + query.length, place.length)}`;
2449
- };
2450
- /**
2451
- * Get the deeplink to any location found via geocoder
2452
- *
2453
- * @param location A location from the Gis API Geocode endpoint
2454
- * @returns
2455
- */
2456
- const getPlacesUrl = (location) => {
2457
- let url;
2458
- if (location.id !== '') {
2459
- url = `${placesUrl}/${store.state.currentLanguage}/${location.id}/${createSlug(location.name)}`;
2460
- }
2461
- else {
2462
- url = `${placesUrl}?preselecttext=${encodeURIComponent(location.name)}`;
2463
- }
2464
- return url;
2397
+ // Never load types twice
2398
+ let typesCache = null;
2399
+ /**
2400
+ * Convert Post POI ids to stao cache ids
2401
+ * @returns
2402
+ */
2403
+ const convertTypes = async () => {
2404
+ if (typesCache === null) {
2405
+ try {
2406
+ const typesResponse = await fetch(`${gisAPIUrl}/Types?lang=${store.state.currentLanguage}`);
2407
+ const typesJSON = (await typesResponse.json());
2408
+ typesCache = encodeURIComponent(pois
2409
+ .map(poi => {
2410
+ const foundType = typesJSON.types.find(type => type.id === poi);
2411
+ return foundType === null || foundType === void 0 ? void 0 : foundType.tag;
2412
+ })
2413
+ .filter(poi => poi !== undefined)
2414
+ .join(','));
2415
+ }
2416
+ catch (error) {
2417
+ console.error('Fetching places failed. Did you add "places.post.ch" to your connect-src content security policy?');
2418
+ throw error;
2419
+ }
2420
+ }
2421
+ return typesCache;
2422
+ };
2423
+ /**
2424
+ * Query the Gis API for locations and localities (pois)
2425
+ *
2426
+ * @param query User input string
2427
+ * @returns
2428
+ */
2429
+ const queryPlaces = async (query) => {
2430
+ if (query.length === 0) {
2431
+ return [];
2432
+ }
2433
+ const limit = 8;
2434
+ const excludeTypes = ['address', 'locality', 'region'];
2435
+ const types = await convertTypes();
2436
+ const geocoderUrl = `${gisAPIUrl}/Geocode?query=${encodeURIComponent(query)}&lang=${store.state.currentLanguage}&pois=${types}&limit=100`;
2437
+ try {
2438
+ const geocodeResponse = await fetch(geocoderUrl);
2439
+ const geocodeJSON = (await geocodeResponse.json());
2440
+ if (!geocodeJSON.ok) {
2441
+ throw new Error(geocodeJSON.info);
2442
+ }
2443
+ return geocodeJSON.locations
2444
+ .filter(location => !excludeTypes.includes(location.type))
2445
+ .slice(0, limit);
2446
+ }
2447
+ catch (error) {
2448
+ console.error('Fetching places failed. Did you add "places.post.ch" to your connect-src content security policy?');
2449
+ throw error;
2450
+ }
2451
+ };
2452
+ /**
2453
+ * Try to highlight place suggestions
2454
+ * Limitation: accented chars are not handled by this basic function
2455
+ *
2456
+ * @param query Search term
2457
+ * @param place Name of the suggested place
2458
+ * @returns
2459
+ */
2460
+ const highlightPlacesString = (query, place) => {
2461
+ if (query === undefined)
2462
+ return place;
2463
+ // Strip accents from the string
2464
+ const reference = hardNormalize(place);
2465
+ const q = hardNormalize(query);
2466
+ const indexOfQuery = reference.indexOf(q);
2467
+ if (indexOfQuery < 0) {
2468
+ return place;
2469
+ }
2470
+ return `${place.substring(0, indexOfQuery)}{${place.substring(indexOfQuery, indexOfQuery + query.length)}}${place.substring(indexOfQuery + query.length, place.length)}`;
2471
+ };
2472
+ /**
2473
+ * Get the deeplink to any location found via geocoder
2474
+ *
2475
+ * @param location A location from the Gis API Geocode endpoint
2476
+ * @returns
2477
+ */
2478
+ const getPlacesUrl = (location) => {
2479
+ let url;
2480
+ if (location.id !== '') {
2481
+ url = `${placesUrl}/${store.state.currentLanguage}/${location.id}/${createSlug(location.name)}`;
2482
+ }
2483
+ else {
2484
+ url = `${placesUrl}?preselecttext=${encodeURIComponent(location.name)}`;
2485
+ }
2486
+ return url;
2465
2487
  };
2466
2488
 
2467
- const HighlightedText = (props) => {
2468
- var _a;
2469
- const highlightClass = (_a = props.highlightClass) !== null && _a !== void 0 ? _a : 'bold';
2470
- const highlightedString = props.text
2471
- .replace(/{/g, `<span class=${highlightClass}>`)
2472
- .replace(/}/g, '</span>')
2473
- .replace(/[\[\]]/g, '');
2474
- return index.h("span", { innerHTML: highlightedString });
2489
+ const HighlightedText = (props) => {
2490
+ var _a;
2491
+ const highlightClass = (_a = props.highlightClass) !== null && _a !== void 0 ? _a : 'bold';
2492
+ const highlightedString = props.text
2493
+ .replace(/{/g, `<span class=${highlightClass}>`)
2494
+ .replace(/}/g, '</span>')
2495
+ .replace(/[\[\]]/g, '');
2496
+ return index.h("span", { innerHTML: highlightedString });
2475
2497
  };
2476
2498
 
2477
2499
  const postSearchCss = "@charset \"UTF-8\";/*!\n * Bootstrap Utilities v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n\n * The MIT License (MIT)\n\n * Copyright (c) 2011-2020 Twitter, Inc.\n * Copyright (c) 2011-2020 The Bootstrap Authors\n\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */.form-label{margin-bottom:0.5rem;color:rgba(var(--post-contrast-color-rgb), 0.8)}.col-form-label{padding-top:calc(0.875rem + 2px);padding-bottom:calc(0.875rem + 2px);margin-bottom:0;font-size:inherit;line-height:1.4;color:rgba(var(--post-contrast-color-rgb), 0.8)}.col-form-label-lg{padding-top:calc(1.25rem + 2px);padding-bottom:calc(1.25rem + 2px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.375rem + 2px);padding-bottom:calc(0.375rem + 2px);font-size:0.875rem}.form-text{margin-top:0.25rem;font-size:0.8125rem;color:var(--post-contrast-color)}.form-control{display:block;width:100%;padding:0.875rem 1.125rem;font-size:1rem;font-weight:400;line-height:1.4;color:#000;background-color:#fff;background-clip:padding-box;border:2px solid #666666;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;-webkit-transition:border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{-webkit-transition:none;transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#000;background-color:#fff;border-color:#000;outline:0;-webkit-box-shadow:0 0 0 0.125rem rgba(51, 51, 51, 0.25);box-shadow:0 0 0 0.125rem rgba(51, 51, 51, 0.25)}.form-control::-webkit-date-and-time-value{height:1.4em}.form-control::-webkit-input-placeholder{color:#666666;opacity:1}.form-control::-moz-placeholder{color:#666666;opacity:1}.form-control:-ms-input-placeholder{color:#666666;opacity:1}.form-control::-ms-input-placeholder{color:#666666;opacity:1}.form-control::placeholder{color:#666666;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);border-color:#cccccc;opacity:1}.form-control::-webkit-file-upload-button{padding:0.875rem 1.125rem;margin:-0.875rem -1.125rem;-webkit-margin-end:1.125rem;margin-inline-end:1.125rem;color:#000;background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:2px;border-radius:0;-webkit-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-control::file-selector-button{padding:0.875rem 1.125rem;margin:-0.875rem -1.125rem;-webkit-margin-end:1.125rem;margin-inline-end:1.125rem;color:#000;background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:2px;border-radius: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-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::-webkit-file-upload-button{padding:0.875rem 1.125rem;margin:-0.875rem -1.125rem;-webkit-margin-end:1.125rem;margin-inline-end:1.125rem;color:#000;background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:2px;border-radius: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-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#fff}.form-control-plaintext{display:block;width:100%;padding:0.875rem 0;margin-bottom:0;line-height:1.4;color:var(--post-contrast-color);background-color:transparent;border:solid transparent;border-width:2px 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:calc(1.8875rem + 4px);padding:0.375rem 0.875rem;font-size:0.875rem;border-radius:0}.form-control-sm::-webkit-file-upload-button{padding:0.375rem 0.875rem;margin:-0.375rem -0.875rem;-webkit-margin-end:0.875rem;margin-inline-end:0.875rem}.form-control-sm::file-selector-button{padding:0.375rem 0.875rem;margin:-0.375rem -0.875rem;-webkit-margin-end:0.875rem;margin-inline-end:0.875rem}.form-control-sm::-webkit-file-upload-button{padding:0.375rem 0.875rem;margin:-0.375rem -0.875rem;-webkit-margin-end:0.875rem;margin-inline-end:0.875rem}.form-control-lg,.form-floating>.form-control,.form-floating>.form-select{min-height:calc(4.25rem + 4px);padding:1.25rem 1.375rem;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:1.25rem 1.375rem;margin:-1.25rem -1.375rem;-webkit-margin-end:1.375rem;margin-inline-end:1.375rem}.form-control-lg::file-selector-button,.form-floating>.form-control::file-selector-button,.form-floating>.form-select::file-selector-button{padding:1.25rem 1.375rem;margin:-1.25rem -1.375rem;-webkit-margin-end:1.375rem;margin-inline-end:1.375rem}.form-control-lg::-webkit-file-upload-button,.form-floating>.form-control::-webkit-file-upload-button,.form-floating>.form-select::-webkit-file-upload-button{padding:1.25rem 1.375rem;margin:-1.25rem -1.375rem;-webkit-margin-end:1.375rem;margin-inline-end:1.375rem}textarea.form-control{min-height:calc(3.15rem + 4px)}textarea.form-control-sm{min-height:calc(1.8875rem + 4px)}textarea.form-control-lg,.form-floating>textarea.form-control,.form-floating>textarea.form-select{min-height:calc(4.25rem + 4px)}.form-control-color{width:3rem;height:auto;padding:0.875rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.4em;border-radius:0}.form-control-color::-webkit-color-swatch{height:1.4em;border-radius:0}.form-select{display:block;width:100%;padding:0.875rem 3.375rem 0.875rem 1.125rem;-moz-padding-start:calc(1.125rem - 3px);font-size:1rem;font-weight:400;line-height:1.4;color:#000;background-color:#fff;background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath opacity='1' fill='%23000000' d='M27.6 10.667l-11.6 11.6-11.467-11.6-1.067 1.067 12.533 12.4 12.533-12.4z'%3E%3C/path%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 1.125rem center;background-size:14px 14px;border:2px solid #666666;border-radius:0;-webkit-transition:border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-select{-webkit-transition:none;transition:none}}.form-select:focus{border-color:#000;outline:0;-webkit-box-shadow:0 0 0 0.125rem rgba(51, 51, 51, 0.25);box-shadow:0 0 0 0.125rem rgba(51, 51, 51, 0.25)}.form-select[multiple],.form-select[size]:not([size=\"1\"]){padding-right:1.125rem;background-image:none}.form-select:disabled{color:#666666;background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);border-color:#cccccc}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.form-select-sm{padding-top:0.375rem;padding-bottom:0.375rem;padding-left:0.875rem;font-size:0.875rem;border-radius:0}.form-select-lg{padding-top:1.25rem;padding-bottom:1.25rem;padding-left:1.375rem;font-size:1.25rem;border-radius:0}.form-check{display:block;min-height:1.5rem;padding-left:0;margin-bottom:1rem}.form-check .form-check-input{float:left;margin-left:0}.form-check-input{width:1.5rem;height:1.5rem;margin-top:-0.05rem;vertical-align:top;background-color:transparent;background-repeat:no-repeat;background-position:center;background-size:contain;border:2px solid #666666;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:0}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{-webkit-filter:none;filter:none}.form-check-input:focus{border-color:#000;outline:0;-webkit-box-shadow:0 0 0 0.125rem rgba(0, 0, 0, 0.25);box-shadow:0 0 0 0.125rem rgba(0, 0, 0, 0.25)}.form-check-input:checked{background-color:transparent;border-color:#000}.form-check-input:checked[type=checkbox]{background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath opacity='1' fill='%23000000' d='M12.667 23.6l-7.2-7.067 1.067-1.067 6.133 6.267 12.8-12.933 1.067 1.067z'%3E%3C/path%3E%3C/svg%3E\")}.form-check-input:checked[type=radio]{background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' viewBox='-3 -3 6 6'%3E%3Ccircle opacity='1' fill='%23000000' r='2'%3E%3C/circle%3E%3C/svg%3E\")}.form-check-input[type=checkbox]:indeterminate{background-color:transparent;border-color:#000;background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath opacity='1' fill='%23000000' d='M5.333 16.010l20-0.021 0.001 1.333-20 0.021-0.001-1.333z'%3E%3C/path%3E%3C/svg%3E\")}.form-check-input:disabled{pointer-events:none;-webkit-filter:none;filter:none;opacity:0.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{opacity:0.5}.form-check-label{color:rgba(var(--post-contrast-color-rgb), 0.8);cursor:pointer}.form-switch{padding-left:0}.form-switch .form-check-input{width:4rem;margin-left:0;background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-16 -16 32 32'%3e%3ccircle r='15' stroke='%23666666' stroke-width='2' fill='%23fff'/%3e%3c/svg%3e\");background-position:left center;border-radius:4rem;-webkit-transition:background-position 250ms cubic-bezier(0.4, 0, 0.2, 1), background-color 250ms;transition:background-position 250ms cubic-bezier(0.4, 0, 0.2, 1), background-color 250ms}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{-webkit-transition:none;transition:none}}.form-switch .form-check-input:focus{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-16 -16 32 32'%3e%3ccircle r='15' stroke='%23000' stroke-width='2' fill='%23fff'/%3e%3c/svg%3e\")}.form-switch .form-check-input:checked{background-position:right center;background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-16 -16 32 32'%3e%3ccircle r='15' stroke='%23000' stroke-width='2' fill='%23fff'/%3e%3c/svg%3e\")}.form-check-inline{display:inline-block;margin-right:1.5rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;-webkit-filter:none;filter:none;opacity:0.4}.form-range{width:100%;height:2.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 1px #000, 0 0 0 0.2rem rgba(51, 51, 51, 0.25);box-shadow:0 0 0 1px #000, 0 0 0 0.2rem rgba(51, 51, 51, 0.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #000, 0 0 0 0.2rem rgba(51, 51, 51, 0.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:2rem;height:2rem;margin-top:-0.9rem;background-color:#fff;border:2px solid #000;border-radius:1rem;-webkit-transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#fff}.form-range::-webkit-slider-runnable-track{width:100%;height:0.2rem;color:transparent;cursor:pointer;background-color:#cccccc;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:2rem;height:2rem;background-color:#fff;border:2px solid #000;border-radius:1rem;-moz-transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#fff}.form-range::-moz-range-track{width:100%;height:0.2rem;color:transparent;cursor:pointer;background-color:#cccccc;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#fff}.form-range:disabled::-moz-range-thumb{background-color:#fff}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(4.25rem + 4px);line-height:1.4}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1.25rem 1.375rem;pointer-events:none;border:2px solid transparent;-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{padding:1.25rem 1.375rem}.form-floating>.form-control::-webkit-input-placeholder{color:transparent}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control:-ms-input-placeholder{color:transparent}.form-floating>.form-control::-ms-input-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.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:-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{opacity:1;transform:scale(0.7647058824)}.form-floating>.form-control:not(:-ms-input-placeholder)~label{opacity:1;transform:scale(0.7647058824)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:1;-webkit-transform:scale(0.7647058824);transform:scale(0.7647058824)}.form-floating>.form-control:-webkit-autofill~label{opacity:1;-webkit-transform:scale(0.7647058824);transform:scale(0.7647058824)}.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{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{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0.875rem 1.125rem;font-size:1rem;font-weight:400;line-height:1.4;color:#000;text-align:center;white-space:nowrap;background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);border:2px solid #666666;border-radius:0}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:1.25rem 1.375rem;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:0.375rem 0.875rem;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),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3){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),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4){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:-2px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:0;font-size:1rem;color:#666666}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:0.25rem 0.5rem;margin-top:0.1rem;font-size:1rem;color:#fff;background-color:#666666;border-radius:0}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#666666;padding-right:3.15rem;background-image:url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24pt' height='24pt' viewBox='0 0 24 24' version='1.1'%3E%3Cg id='surface1'%3E%3Cpath style=' stroke:none;fill-rule:nonzero;fill:rgb%280%25,50.588235%25,22.745098%25%29;fill-opacity:1;' d='M 9.5 18.398438 L 3.800781 12.699219 L 5.199219 11.300781 L 9.5 15.597656 L 18.800781 6.300781 L 20.199219 7.699219 Z M 9.5 18.398438 '/%3E%3C/g%3E%3C/svg%3E%0A\");background-repeat:no-repeat;background-position:right calc(0.35em + 0.4375rem) center;background-size:calc(0.7em + 0.875rem) calc(0.7em + 0.875rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#666666;-webkit-box-shadow:0 0 0 0.125rem rgba(102, 102, 102, 0.25);box-shadow:0 0 0 0.125rem rgba(102, 102, 102, 0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:3.15rem;background-position:top calc(0.35em + 0.4375rem) right calc(0.35em + 0.4375rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#666666}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size=\"1\"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size=\"1\"]{padding-right:6.1875rem;background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath opacity='1' fill='%23000000' d='M27.6 10.667l-11.6 11.6-11.467-11.6-1.067 1.067 12.533 12.4 12.533-12.4z'%3E%3C/path%3E%3C/svg%3E\"), url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24pt' height='24pt' viewBox='0 0 24 24' version='1.1'%3E%3Cg id='surface1'%3E%3Cpath style=' stroke:none;fill-rule:nonzero;fill:rgb%280%25,50.588235%25,22.745098%25%29;fill-opacity:1;' d='M 9.5 18.398438 L 3.800781 12.699219 L 5.199219 11.300781 L 9.5 15.597656 L 18.800781 6.300781 L 20.199219 7.699219 Z M 9.5 18.398438 '/%3E%3C/g%3E%3C/svg%3E%0A\");background-position:right 1.125rem center, center right 3.375rem;background-size:14px 14px, calc(0.7em + 0.875rem) calc(0.7em + 0.875rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#666666;-webkit-box-shadow:0 0 0 0.125rem rgba(102, 102, 102, 0.25);box-shadow:0 0 0 0.125rem rgba(102, 102, 102, 0.25)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#666666}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#666666}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{-webkit-box-shadow:0 0 0 0.125rem rgba(102, 102, 102, 0.25);box-shadow:0 0 0 0.125rem rgba(102, 102, 102, 0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#666666}.form-check-inline .form-check-input~.valid-feedback{margin-left:0.5em}.was-validated .input-group .form-control:valid,.input-group .form-control.is-valid,.was-validated .input-group .form-select:valid,.input-group .form-select.is-valid{z-index:1}.was-validated .input-group .form-control:valid:focus,.input-group .form-control.is-valid:focus,.was-validated .input-group .form-select:valid:focus,.input-group .form-select.is-valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:0;font-size:1rem;color:#a51728}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:0.25rem 0.5rem;margin-top:0.1rem;font-size:1rem;color:#fff;background-color:#a51728;border-radius:0}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#a51728;padding-right:3.15rem;background-image:url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24pt' height='24pt' viewBox='0 0 24 24' version='1.1'%3E%3Cg id='surface1'%3E%3Cpath style=' stroke:none;fill-rule:nonzero;fill:rgb%2864.705882%25,9.019608%25,15.686275%25%29;fill-opacity:1;' d='M 11 3 L 13 3 L 13 17 L 11 17 Z M 11 3 '/%3E%3Cpath style=' stroke:none;fill-rule:nonzero;fill:rgb%2864.705882%25,9.019608%25,15.686275%25%29;fill-opacity:1;' d='M 11 19 L 13 19 L 13 21 L 11 21 Z M 11 19 '/%3E%3C/g%3E%3C/svg%3E%0A\");background-repeat:no-repeat;background-position:right calc(0.35em + 0.4375rem) center;background-size:calc(0.7em + 0.875rem) calc(0.7em + 0.875rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#a51728;-webkit-box-shadow:0 0 0 0.125rem rgba(165, 23, 40, 0.25);box-shadow:0 0 0 0.125rem rgba(165, 23, 40, 0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:3.15rem;background-position:top calc(0.35em + 0.4375rem) right calc(0.35em + 0.4375rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#a51728}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size=\"1\"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size=\"1\"]{padding-right:6.1875rem;background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath opacity='1' fill='%23000000' d='M27.6 10.667l-11.6 11.6-11.467-11.6-1.067 1.067 12.533 12.4 12.533-12.4z'%3E%3C/path%3E%3C/svg%3E\"), url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24pt' height='24pt' viewBox='0 0 24 24' version='1.1'%3E%3Cg id='surface1'%3E%3Cpath style=' stroke:none;fill-rule:nonzero;fill:rgb%2864.705882%25,9.019608%25,15.686275%25%29;fill-opacity:1;' d='M 11 3 L 13 3 L 13 17 L 11 17 Z M 11 3 '/%3E%3Cpath style=' stroke:none;fill-rule:nonzero;fill:rgb%2864.705882%25,9.019608%25,15.686275%25%29;fill-opacity:1;' d='M 11 19 L 13 19 L 13 21 L 11 21 Z M 11 19 '/%3E%3C/g%3E%3C/svg%3E%0A\");background-position:right 1.125rem center, center right 3.375rem;background-size:14px 14px, calc(0.7em + 0.875rem) calc(0.7em + 0.875rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#a51728;-webkit-box-shadow:0 0 0 0.125rem rgba(165, 23, 40, 0.25);box-shadow:0 0 0 0.125rem rgba(165, 23, 40, 0.25)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#a51728}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#a51728}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{-webkit-box-shadow:0 0 0 0.125rem rgba(165, 23, 40, 0.25);box-shadow:0 0 0 0.125rem rgba(165, 23, 40, 0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#a51728}.form-check-inline .form-check-input~.invalid-feedback{margin-left:0.5em}.was-validated .input-group .form-control:invalid,.input-group .form-control.is-invalid,.was-validated .input-group .form-select:invalid,.input-group .form-select.is-invalid{z-index:2}.was-validated .input-group .form-control:invalid:focus,.input-group .form-control.is-invalid:focus,.was-validated .input-group .form-select:invalid:focus,.input-group .form-select.is-invalid:focus{z-index:3}.form-control-rg{height:calc(2.65rem + 4px);padding:0.625rem 0.875rem;font-size:1rem;line-height:1.4}select.form-control-rg:not([size]):not([multiple]){height:calc(2.65rem + 4px)}.form-control{position:relative}.form-control:disabled{color:#666666}.form-control[readonly]:not(:disabled){border-color:#666666;background-color:#fff}.form-control[type=file]{min-height:calc(3.15rem + 4px)}.form-control[type=file]::-webkit-file-upload-button{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:0;margin-inline-end:0;padding-left:0;padding-right:0;width:0;border:0 none}.form-control[type=file]::file-selector-button{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:0;margin-inline-end:0;padding-left:0;padding-right: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-left:inherit;padding-right:inherit;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].form-control-sm{min-height:calc(2.15rem + 4px)}.form-control[type=file].form-control-rg{min-height:calc(2.65rem + 4px)}.form-control[type=file].form-control-lg{min-height:calc(3.9rem + 4px)}@media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black){.form-control:hover,.form-control:focus{border-color:Highlight}.form-control:hover[type=file]::after,.form-control:focus[type=file]::after{border-color:Highlight}}.form-floating>label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;top:2px;left:2px;margin:0;padding:1.25rem 1.375rem;height:4.25rem;border:0;color:#666666;font-size:1.0625rem;max-width:calc(100% - 4px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transform-origin:1.375rem 0;transform-origin:1.375rem 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{}.form-floating>.form-control[type=file]::-webkit-file-upload-button{padding-top:1.7rem}.form-floating>.form-control[type=file]::file-selector-button{padding-top:1.7rem}.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)[type=file]::file-selector-button{padding-top:1.7rem}.form-floating>.form-control:not(:-ms-input-placeholder)[type=file]::file-selector-button{padding-top:1.7rem}.form-floating>.form-control:focus[type=file]::-webkit-file-upload-button,.form-floating>.form-control:not(:placeholder-shown)[type=file]::-webkit-file-upload-button{padding-top:1.7rem}.form-floating>.form-control:focus[type=file]::file-selector-button,.form-floating>.form-control:not(:placeholder-shown)[type=file]::file-selector-button{padding-top:1.7rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{padding-top:0;max-width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px);-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{padding-top:0;max-width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px);-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{padding-top:0;max-width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px);-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{padding-top:1.5rem;padding-bottom:0}.form-floating>.form-select~label{padding-top:0;max-width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px);-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:empty{padding-top:1.5rem;padding-bottom:0}.form-floating>.form-select:empty~label{padding-top:1.25rem;max-width:calc(100% - 4px);-webkit-transform:none;transform:none}.form-floating>.form-select[multiple]{padding-top:2.25rem;padding-bottom:0;height:auto}.form-floating>.form-select[multiple] option{height:1.4em}.form-floating>.form-select[multiple]~label{padding-top:0.9558823529rem;padding-bottom:0;width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px - 1.7980769231rem);height:auto;background:#fff}.form-floating>.form-select[multiple]:empty~label{padding-top:1.25rem;padding-bottom:1.25rem;width:calc(100% - 4px - 1.375rem);height:4.25rem}.form-floating>textarea.form-control{padding-top:1.875rem;padding-bottom:1.25rem;height:auto}.form-floating>textarea.form-control~label{padding-bottom:0;width:calc(100% - 4px);max-width:none;height:unset}.form-floating>textarea.form-control:not(:-moz-placeholder-shown){padding-top:1.875rem;padding-bottom:1.25rem}.form-floating>textarea.form-control:not(:-ms-input-placeholder){padding-top:1.875rem;padding-bottom:1.25rem}.form-floating>textarea.form-control:focus,.form-floating>textarea.form-control:not(:placeholder-shown){padding-top:1.875rem;padding-bottom:1.25rem}.form-floating>textarea.form-control:not(:-moz-placeholder-shown)~label{padding-top:0.9558823529rem;width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px - 1.7980769231rem);max-width:none;background:#fff}.form-floating>textarea.form-control:not(:-ms-input-placeholder)~label{padding-top:0.9558823529rem;width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px - 1.7980769231rem);max-width:none;background:#fff}.form-floating>textarea.form-control:focus~label,.form-floating>textarea.form-control:not(:placeholder-shown)~label{padding-top:0.9558823529rem;width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px - 1.7980769231rem);max-width:none;background:#fff}.form-floating>textarea.form-control:is(.is-valid,.is-invalid)~label{width:calc(100% - 4px - 1.375rem - 0.5rem - 2rem)}.form-floating>textarea.form-control:is(.is-valid,.is-invalid):not(:-moz-placeholder-shown)~label{width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px - 1.7980769231rem - 0.6538461538rem - 2.6153846154rem)}.form-floating>textarea.form-control:is(.is-valid,.is-invalid):not(:-ms-input-placeholder)~label{width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px - 1.7980769231rem - 0.6538461538rem - 2.6153846154rem)}.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(130.7692307692% - 0.8461538462rem - 5.2307692308px - 1.7980769231rem - 0.6538461538rem - 2.6153846154rem)}@media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black){.form-floating>input,.form-floating>textarea{}.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}}.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) * 0.5);padding-left:calc(var(--bs-gutter-x) * 0.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.3333333333%}.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.6666666667%}.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.3333333333%}.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.6666666667%}.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.3333333333%}.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.6666666667%}.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.3333333333%}.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.6666666667%}.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.3333333333%}.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.6666666667%}.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.3333333333%}.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.6666666667%}.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: 1441px){.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.3333333333%}.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.6666666667%}.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-xs{width:100%;padding-right:var(--bs-gutter-x, 15px);padding-left:var(--bs-gutter-x, 15px);margin-right:auto;margin-left:auto}.container{max-width:1440px}.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{padding-right:12px;padding-left:12px}.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{padding-right:16px;padding-left:16px}}@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){.container{padding-right:32px;padding-left:32px}}@media (min-width: 600px){.container-reset{margin-right:-32px;margin-left:-32px}}@media (min-width: 600px){.container-reset-left{margin-left:-32px}}@media (min-width: 600px){.container-reset-right{margin-right:-32px}}@media (min-width: 600px) and (max-width: 779.98px){.container-fluid-rg{padding-right:1rem;padding-left:1rem}}@media (min-width: 780px) and (max-width: 1023.98px){.container-fluid-md{padding-right:1rem;padding-left:1rem}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}@media (min-width: 1024px){.container-reset{margin-right:-40px;margin-left:-40px}}@media (min-width: 1024px){.container-reset-left{margin-left:-40px}}@media (min-width: 1024px){.container-reset-right{margin-right:-40px}}@media (min-width: 1024px) and (max-width: 1279.98px){.container-fluid-lg{padding-right:1rem;padding-left:1rem}}@media (min-width: 1280px){.container{padding-right:128px;padding-left:128px}}@media (min-width: 1280px){.container-reset{margin-right:-128px;margin-left:-128px}}@media (min-width: 1280px){.container-reset-left{margin-left:-128px}}@media (min-width: 1280px){.container-reset-right{margin-right:-128px}}@media (min-width: 1280px) and (max-width: 1440.98px){.container-fluid-xl{padding-right:1rem;padding-left:1rem}}@media (min-width: 1441px){.container-fluid-xxl{padding-right:1rem;padding-left:1rem}}@font-face{font-display:swap;font-family:\"Frutiger Neue For Post\";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:\"Frutiger Neue For Post\";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:\"Frutiger Neue For Post\";font-weight:300;src:url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff2\") format(\"woff2\"), url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff\") format(\"woff\")}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:\"Frutiger Neue For Post\", system-ui, sans-serif}button{font:inherit;padding:0}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:white}}.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}.btn-blank{background-color:transparent;border:none;border-radius:0;padding:0}.search-button,.nav-link{text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.search-button:hover,.nav-link:hover,.search-button:focus,.nav-link:focus{color:black}.search-button>svg,.nav-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.search-button>span,.nav-link>span{-ms-flex-negative:1;flex-shrink:1}.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-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}}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}@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: 1440.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:0.5rem;cursor:pointer}}.flyout{position:absolute;top:100%;left:0;width:100%;background:white;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 0.35s, -webkit-box-shadow 0.35s;transition:-webkit-transform 0.35s, -webkit-box-shadow 0.35s;transition:transform 0.35s, box-shadow 0.35s;transition:transform 0.35s, box-shadow 0.35s, -webkit-transform 0.35s, -webkit-box-shadow 0.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, 0.4);box-shadow:0 0 1px 0 rgba(0, 0, 0, 0.4)}.flyout.open{-webkit-box-shadow:0 0 8px 0 rgba(0, 0, 0, 0.4);box-shadow:0 0 8px 0 rgba(0, 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)}.start-search-button{position:absolute;top:0;right:0;height:100%;padding-right:1rem;padding-left:1rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;cursor:pointer}.start-search-button svg{width:1.5rem;height:1.5rem}.suggestions{margin:1.5rem 0}.suggestions a{padding:0.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}";
2478
2500
 
2479
- const PostSearch = class {
2480
- constructor(hostRef) {
2481
- index.registerInstance(this, hostRef);
2482
- this.dropdownToggled = index.createEvent(this, "dropdownToggled", 7);
2483
- this.searchDropdownOpen = false;
2484
- this.coveoSuggestions = [];
2485
- this.placeSuggestions = [];
2486
- this.parcelSuggestion = null;
2487
- }
2488
- connectedCallback() {
2489
- this.throttledResize = index$1.throttle(300, () => this.handleResize());
2490
- window.addEventListener('resize', this.throttledResize, { passive: true });
2491
- }
2492
- disconnectedCallback() {
2493
- window.removeEventListener('resize', this.throttledResize);
2494
- bodyScrollLock_esm.clearAllBodyScrollLocks();
2495
- }
2496
- componentWillUpdate() {
2497
- // Check if search flyout got set to close
2498
- if (this.searchFlyout && !this.searchDropdownOpen) {
2499
- this.searchFlyout.classList.remove('open');
2500
- // Check if element has transition applied and whether user prefers to see animations or not
2501
- if (ui_service.elementHasTransition(this.searchFlyout, 'transform') && !ui_service.userPrefersReducedMotion()) {
2502
- // Wait for CSS transition 'transform' to end before continuing
2503
- return new Promise(resolve => {
2504
- if (this.searchFlyout === undefined) {
2505
- return resolve(true);
2506
- }
2507
- this.searchFlyout.addEventListener('transitionend', event => {
2508
- if (event.propertyName === 'transform') {
2509
- resolve(true);
2510
- }
2511
- });
2512
- });
2513
- }
2514
- }
2515
- }
2516
- componentDidUpdate() {
2517
- // Search flyout got set to open
2518
- if (this.searchFlyout && this.searchDropdownOpen) {
2519
- // Force browser to redraw/refresh DOM before adding 'open' class
2520
- this.searchFlyout.getBoundingClientRect();
2521
- this.searchFlyout.classList.add('open');
2522
- }
2523
- // Focus on the searchBox whenever the dropdown is opened
2524
- if (this.searchDropdownOpen && this.searchBox) {
2525
- this.searchBox.focus({ preventScroll: true });
2526
- }
2527
- }
2528
- /**
2529
- * Toggle the dropdown and optionally force an open/closed state
2530
- * @param force Boolean to force open/closed state
2531
- * @returns Boolean indicating open state of the component
2532
- */
2533
- async toggleDropdown(force) {
2534
- this.searchDropdownOpen =
2535
- force === undefined || typeof force !== 'boolean' ? !this.searchDropdownOpen : force;
2536
- this.dropdownToggled.emit({ open: this.searchDropdownOpen, element: this.host });
2537
- if (!this.searchDropdownOpen) {
2538
- // Reset suggestions when dropdown closes
2539
- this.coveoSuggestions = [];
2540
- this.placeSuggestions = [];
2541
- if (this.searchBox)
2542
- this.searchBox.value = '';
2543
- this.setFocus();
2544
- }
2545
- else {
2546
- // Get basic suggestions when dropdown opens
2547
- try {
2548
- this.coveoSuggestions = await getCoveoSuggestions('');
2549
- }
2550
- catch (_a) { }
2551
- }
2552
- this.setBodyScroll();
2553
- return this.searchDropdownOpen;
2554
- }
2555
- /**
2556
- * Sets the focus on the search button
2557
- */
2558
- async setFocus() {
2559
- const shadowRoot = this.host.shadowRoot;
2560
- if (shadowRoot === null) {
2561
- return;
2562
- }
2563
- const toggleButton = shadowRoot.querySelector('.search-button');
2564
- if (toggleButton) {
2565
- toggleButton.focus();
2566
- }
2567
- }
2568
- handleResize() {
2569
- // Only enable/disable body scroll on resize if the search dropdown is open, otherwise this could lead to side effects in other controls
2570
- if (this.searchDropdownOpen) {
2571
- this.setBodyScroll();
2572
- }
2573
- }
2574
- /**
2575
- * Disable or re-enable body scrolling, depending on whether search dropdown is open or closed in mobile view (width < 1024px)
2576
- */
2577
- setBodyScroll() {
2578
- if (this.searchDropdownOpen && window.innerWidth < 1024) {
2579
- bodyScrollLock_esm.disableBodyScroll(this.searchFlyout);
2580
- }
2581
- else {
2582
- bodyScrollLock_esm.enableBodyScroll(this.searchFlyout);
2583
- }
2584
- }
2585
- /**
2586
- * Fetch suggestions from all available sources
2587
- */
2588
- async handleSearchInput() {
2589
- var _a;
2590
- if (this.searchBox === undefined || ((_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search) === undefined) {
2591
- return;
2592
- }
2593
- const query = this.searchBox.value.trim();
2594
- const [placeSuggestions, coveoSuggestions, trackAndTraceInfo] = await Promise.all([
2595
- queryPlaces(query),
2596
- getCoveoSuggestions(query),
2597
- getParcelSuggestion(query, store.state.localizedConfig.header.search),
2598
- ]);
2599
- // Parcel suggestion is more important than any other
2600
- if (trackAndTraceInfo) {
2601
- this.parcelSuggestion = trackAndTraceInfo;
2602
- this.placeSuggestions = [];
2603
- this.coveoSuggestions = [];
2604
- }
2605
- else {
2606
- [this.coveoSuggestions, this.placeSuggestions] = equalizeArrays(coveoSuggestions, placeSuggestions, 8);
2607
- }
2608
- this.deselectSuggestion();
2609
- }
2610
- /**
2611
- * Start search on enter
2612
- * @param event
2613
- */
2614
- handleKeyDown(event) {
2615
- var _a, _b, _c, _d;
2616
- if (this.searchFlyout === undefined) {
2617
- return;
2618
- }
2619
- let selectedSuggestion = this.searchFlyout.querySelector('.suggestions > li > a.selected');
2620
- switch (event.key.toLowerCase()) {
2621
- case 'enter':
2622
- if (selectedSuggestion) {
2623
- const selectedHref = selectedSuggestion.getAttribute('href');
2624
- if (selectedHref !== null) {
2625
- window.location.href = selectedHref;
2626
- }
2627
- }
2628
- else {
2629
- this.startSearch();
2630
- }
2631
- break;
2632
- case 'arrowdown':
2633
- case 'arrowup':
2634
- const suggestions = this.searchFlyout.querySelectorAll('.suggestions > li > a');
2635
- this.deselectSuggestion();
2636
- if (event.key.toLowerCase() === 'arrowdown') {
2637
- if ((_b = (_a = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.parentElement) === null || _a === void 0 ? void 0 : _a.nextElementSibling) === null || _b === void 0 ? void 0 : _b.firstElementChild) {
2638
- // Select next suggestion if there's any, otherwise none will be selected
2639
- selectedSuggestion.parentElement.nextElementSibling.firstElementChild.classList.add('selected');
2640
- }
2641
- else {
2642
- // If there are any suggestions, select first suggestion in list
2643
- if (suggestions.length > 0) {
2644
- suggestions[0].classList.add('selected');
2645
- }
2646
- }
2647
- }
2648
- else if (event.key.toLowerCase() === 'arrowup') {
2649
- if ((_d = (_c = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.parentElement) === null || _c === void 0 ? void 0 : _c.previousElementSibling) === null || _d === void 0 ? void 0 : _d.firstElementChild) {
2650
- // Select previous suggestion if there's any, otherwise none will be selected
2651
- selectedSuggestion.parentElement.previousElementSibling.firstElementChild.classList.add('selected');
2652
- }
2653
- else {
2654
- // If there are any suggestions, select last suggestion in list
2655
- if (suggestions.length > 0) {
2656
- suggestions[suggestions.length - 1].classList.add('selected');
2657
- }
2658
- }
2659
- }
2660
- // Get the newly selected suggestion
2661
- selectedSuggestion = this.searchFlyout.querySelector('.suggestions > li > a.selected');
2662
- const suggestedText = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.dataset.suggestionText;
2663
- // Update search box value with selected suggestion text
2664
- if (suggestedText !== undefined && this.searchBox) {
2665
- this.searchBox.value = suggestedText;
2666
- }
2667
- break;
2668
- }
2669
- }
2670
- /**
2671
- * Set selected suggestion on mouse enter
2672
- * @param event
2673
- */
2674
- handleMouseEnterSuggestion(event) {
2675
- this.deselectSuggestion();
2676
- // Set hovered suggestion element as selected
2677
- event.target.classList.add('selected');
2678
- }
2679
- /**
2680
- * Set selected suggestion on mouse enter
2681
- * @param event
2682
- */
2683
- handleMouseLeaveSuggestions() {
2684
- this.deselectSuggestion();
2685
- }
2686
- /**
2687
- * Deselect any previously selected suggestion
2688
- */
2689
- deselectSuggestion() {
2690
- if (this.searchFlyout === undefined)
2691
- return;
2692
- const selectedSuggestion = this.searchFlyout.querySelector('.suggestions .selected');
2693
- if (selectedSuggestion) {
2694
- selectedSuggestion.classList.remove('selected');
2695
- }
2696
- }
2697
- /**
2698
- * Redirect to the post search page
2699
- */
2700
- async startSearch() {
2701
- var _a;
2702
- if (this.searchBox && ((_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search)) {
2703
- const redirectUrl = await getSearchRedirectUrl(this.searchBox.value.trim(), store.state.localizedConfig.header.search);
2704
- if (!redirectUrl)
2705
- return;
2706
- window.location.href = redirectUrl;
2707
- }
2708
- }
2709
- render() {
2710
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
2711
- if (((_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header) === undefined) {
2712
- return;
2713
- }
2714
- const { translations, search } = store.state.localizedConfig.header;
2715
- const showPortalRecommendations = ((_b = this.searchBox) === null || _b === void 0 ? void 0 : _b.value) === '' && ((_c = search.searchRecommendations) === null || _c === void 0 ? void 0 : _c.links.length) > 0;
2716
- return (index.h(index.Host, null, index.h(svgSprite_component.SvgSprite, null), index.h("div", { class: "search" }, index.h("button", { id: "post-internet-header-search-button", class: "search-button", type: "button", "aria-expanded": `${this.searchDropdownOpen}`, onClick: e => this.toggleDropdown(e) }, index.h("span", { class: "visually-hidden" }, this.searchDropdownOpen
2717
- ? translations.searchToggleExpanded
2718
- : translations.searchToggle), index.h(svgIcon_component.SvgIcon, { name: this.searchDropdownOpen ? 'pi-close' : 'pi-search' })), index.h(if_component.If, { condition: this.searchDropdownOpen }, index.h("div", { class: "flyout", ref: e => (this.searchFlyout = e) }, index.h("div", { class: "container box" }, index.h("div", { class: "row" }, index.h("div", { class: "col-xs-12 col-md-10 col-lg-8" }, index.h("div", { class: "form-group form-floating" }, index.h("input", { type: "text", id: "searchBox", class: "form-control form-control-lg", placeholder: translations.flyoutSearchBoxFloatingLabel, autocomplete: "off", ref: el => (this.searchBox = el), onInput: () => this.handleSearchInput(), onKeyDown: e => this.handleKeyDown(e) }), index.h("label", { htmlFor: "searchBox" }, translations.flyoutSearchBoxFloatingLabel), index.h("button", { onClick: () => this.startSearch(), class: "nav-link start-search-button" }, index.h("span", { class: "visually-hidden" }, translations.searchSubmit), index.h(svgIcon_component.SvgIcon, { name: "pi-search" }))), showPortalRecommendations && (index.h("h2", { class: "bold" }, search.searchRecommendations.title)), index.h("ul", { class: "suggestions no-list", onMouseLeave: () => this.handleMouseLeaveSuggestions() }, showPortalRecommendations &&
2719
- search.searchRecommendations.links.map(recommendation => (index.h("li", { key: recommendation.href }, index.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) }, index.h("span", { class: "search-recommendation__icon", innerHTML: recommendation.inlineSvg }), index.h("span", null, recommendation.label))))), this.parcelSuggestion && this.parcelSuggestion.ok && (index.h("li", null, index.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) }, index.h(svgIcon_component.SvgIcon, { name: "pi-letter-parcel" }), index.h("span", { class: "bold" }, (_f = (_e = this.parcelSuggestion) === null || _e === void 0 ? void 0 : _e.sending) === null || _f === void 0 ? void 0 :
2720
- _f.id, ":\u00A0"), index.h("span", null, (_h = (_g = this.parcelSuggestion) === null || _g === void 0 ? void 0 : _g.sending) === null || _h === void 0 ? void 0 :
2721
- _h.product, ",", ' ', (_k = (_j = this.parcelSuggestion) === null || _j === void 0 ? void 0 : _j.sending) === null || _k === void 0 ? void 0 :
2722
- _k.recipient.zipcode, ' ', (_m = (_l = this.parcelSuggestion) === null || _l === void 0 ? void 0 : _l.sending) === null || _m === void 0 ? void 0 :
2723
- _m.recipient.city, ",", ' ', (_p = (_o = this.parcelSuggestion) === null || _o === void 0 ? void 0 : _o.sending) === null || _p === void 0 ? void 0 :
2724
- _p.state)))), !showPortalRecommendations &&
2725
- this.coveoSuggestions &&
2726
- this.coveoSuggestions.map(suggestion => (index.h("li", { key: suggestion.objectId }, index.h("a", { class: "nav-link", href: suggestion.redirectUrl, "data-suggestion-text": suggestion.expression, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, index.h(svgIcon_component.SvgIcon, { name: "pi-search" }), index.h(HighlightedText, { text: suggestion.highlighted }))))), !showPortalRecommendations &&
2727
- this.placeSuggestions &&
2728
- this.placeSuggestions.map(suggestion => {
2729
- var _a, _b;
2730
- return (index.h("li", { key: suggestion.id }, index.h("a", { class: "nav-link", href: getPlacesUrl(suggestion), "data-suggestion-text": suggestion.name, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, index.h(svgIcon_component.SvgIcon, { name: "pi-place" }), index.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) }))));
2731
- }))))))))));
2732
- }
2733
- get host() { return index.getElement(this); }
2734
- };
2501
+ const PostSearch = class {
2502
+ constructor(hostRef) {
2503
+ index.registerInstance(this, hostRef);
2504
+ this.dropdownToggled = index.createEvent(this, "dropdownToggled", 7);
2505
+ this.searchDropdownOpen = false;
2506
+ this.coveoSuggestions = [];
2507
+ this.placeSuggestions = [];
2508
+ this.parcelSuggestion = null;
2509
+ }
2510
+ connectedCallback() {
2511
+ this.throttledResize = index$1.throttle(300, () => this.handleResize());
2512
+ window.addEventListener('resize', this.throttledResize, { passive: true });
2513
+ }
2514
+ disconnectedCallback() {
2515
+ window.removeEventListener('resize', this.throttledResize);
2516
+ bodyScrollLock_esm.clearAllBodyScrollLocks();
2517
+ }
2518
+ componentWillUpdate() {
2519
+ // Check if search flyout got set to close
2520
+ if (this.searchFlyout && !this.searchDropdownOpen) {
2521
+ this.searchFlyout.classList.remove('open');
2522
+ // Check if element has transition applied and whether user prefers to see animations or not
2523
+ if (ui_service.elementHasTransition(this.searchFlyout, 'transform') && !ui_service.userPrefersReducedMotion()) {
2524
+ // Wait for CSS transition 'transform' to end before continuing
2525
+ return new Promise(resolve => {
2526
+ if (this.searchFlyout === undefined) {
2527
+ return resolve(true);
2528
+ }
2529
+ this.searchFlyout.addEventListener('transitionend', event => {
2530
+ if (event.propertyName === 'transform') {
2531
+ resolve(true);
2532
+ }
2533
+ });
2534
+ });
2535
+ }
2536
+ }
2537
+ }
2538
+ componentDidUpdate() {
2539
+ // Search flyout got set to open
2540
+ if (this.searchFlyout && this.searchDropdownOpen) {
2541
+ // Force browser to redraw/refresh DOM before adding 'open' class
2542
+ this.searchFlyout.getBoundingClientRect();
2543
+ this.searchFlyout.classList.add('open');
2544
+ }
2545
+ // Focus on the searchBox whenever the dropdown is opened
2546
+ if (this.searchDropdownOpen && this.searchBox) {
2547
+ this.searchBox.focus({ preventScroll: true });
2548
+ }
2549
+ }
2550
+ /**
2551
+ * Toggle the dropdown and optionally force an open/closed state
2552
+ * @param force Boolean to force open/closed state
2553
+ * @returns Boolean indicating open state of the component
2554
+ */
2555
+ async toggleDropdown(force) {
2556
+ this.searchDropdownOpen =
2557
+ force === undefined || typeof force !== 'boolean' ? !this.searchDropdownOpen : force;
2558
+ this.dropdownToggled.emit({ open: this.searchDropdownOpen, element: this.host });
2559
+ if (!this.searchDropdownOpen) {
2560
+ // Reset suggestions when dropdown closes
2561
+ this.coveoSuggestions = [];
2562
+ this.placeSuggestions = [];
2563
+ if (this.searchBox)
2564
+ this.searchBox.value = '';
2565
+ this.setFocus();
2566
+ }
2567
+ else {
2568
+ // Get basic suggestions when dropdown opens
2569
+ try {
2570
+ this.coveoSuggestions = await getCoveoSuggestions('');
2571
+ }
2572
+ catch (_a) { }
2573
+ }
2574
+ this.setBodyScroll();
2575
+ return this.searchDropdownOpen;
2576
+ }
2577
+ /**
2578
+ * Sets the focus on the search button
2579
+ */
2580
+ async setFocus() {
2581
+ const shadowRoot = this.host.shadowRoot;
2582
+ if (shadowRoot === null) {
2583
+ return;
2584
+ }
2585
+ const toggleButton = shadowRoot.querySelector('.search-button');
2586
+ if (toggleButton) {
2587
+ toggleButton.focus();
2588
+ }
2589
+ }
2590
+ handleResize() {
2591
+ // Only enable/disable body scroll on resize if the search dropdown is open, otherwise this could lead to side effects in other controls
2592
+ if (this.searchDropdownOpen) {
2593
+ this.setBodyScroll();
2594
+ }
2595
+ }
2596
+ /**
2597
+ * Disable or re-enable body scrolling, depending on whether search dropdown is open or closed in mobile view (width < 1024px)
2598
+ */
2599
+ setBodyScroll() {
2600
+ if (this.searchDropdownOpen && window.innerWidth < 1024) {
2601
+ bodyScrollLock_esm.disableBodyScroll(this.searchFlyout);
2602
+ }
2603
+ else {
2604
+ bodyScrollLock_esm.enableBodyScroll(this.searchFlyout);
2605
+ }
2606
+ }
2607
+ /**
2608
+ * Fetch suggestions from all available sources
2609
+ */
2610
+ async handleSearchInput() {
2611
+ var _a;
2612
+ if (this.searchBox === undefined || ((_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search) === undefined) {
2613
+ return;
2614
+ }
2615
+ const query = this.searchBox.value.trim();
2616
+ const [placeSuggestions, coveoSuggestions, trackAndTraceInfo] = await Promise.all([
2617
+ queryPlaces(query),
2618
+ getCoveoSuggestions(query),
2619
+ getParcelSuggestion(query, store.state.localizedConfig.header.search),
2620
+ ]);
2621
+ // Parcel suggestion is more important than any other
2622
+ if (trackAndTraceInfo) {
2623
+ this.parcelSuggestion = trackAndTraceInfo;
2624
+ this.placeSuggestions = [];
2625
+ this.coveoSuggestions = [];
2626
+ }
2627
+ else {
2628
+ [this.coveoSuggestions, this.placeSuggestions] = equalizeArrays(coveoSuggestions, placeSuggestions, 8);
2629
+ }
2630
+ this.deselectSuggestion();
2631
+ }
2632
+ /**
2633
+ * Start search on enter
2634
+ * @param event
2635
+ */
2636
+ handleKeyDown(event) {
2637
+ var _a, _b, _c, _d;
2638
+ if (this.searchFlyout === undefined) {
2639
+ return;
2640
+ }
2641
+ let selectedSuggestion = this.searchFlyout.querySelector('.suggestions > li > a.selected');
2642
+ switch (event.key.toLowerCase()) {
2643
+ case 'enter':
2644
+ if (selectedSuggestion) {
2645
+ const selectedHref = selectedSuggestion.getAttribute('href');
2646
+ if (selectedHref !== null) {
2647
+ window.location.href = selectedHref;
2648
+ }
2649
+ }
2650
+ else {
2651
+ this.startSearch();
2652
+ }
2653
+ break;
2654
+ case 'arrowdown':
2655
+ case 'arrowup':
2656
+ const suggestions = this.searchFlyout.querySelectorAll('.suggestions > li > a');
2657
+ this.deselectSuggestion();
2658
+ if (event.key.toLowerCase() === 'arrowdown') {
2659
+ if ((_b = (_a = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.parentElement) === null || _a === void 0 ? void 0 : _a.nextElementSibling) === null || _b === void 0 ? void 0 : _b.firstElementChild) {
2660
+ // Select next suggestion if there's any, otherwise none will be selected
2661
+ selectedSuggestion.parentElement.nextElementSibling.firstElementChild.classList.add('selected');
2662
+ }
2663
+ else {
2664
+ // If there are any suggestions, select first suggestion in list
2665
+ if (suggestions.length > 0) {
2666
+ suggestions[0].classList.add('selected');
2667
+ }
2668
+ }
2669
+ }
2670
+ else if (event.key.toLowerCase() === 'arrowup') {
2671
+ if ((_d = (_c = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.parentElement) === null || _c === void 0 ? void 0 : _c.previousElementSibling) === null || _d === void 0 ? void 0 : _d.firstElementChild) {
2672
+ // Select previous suggestion if there's any, otherwise none will be selected
2673
+ selectedSuggestion.parentElement.previousElementSibling.firstElementChild.classList.add('selected');
2674
+ }
2675
+ else {
2676
+ // If there are any suggestions, select last suggestion in list
2677
+ if (suggestions.length > 0) {
2678
+ suggestions[suggestions.length - 1].classList.add('selected');
2679
+ }
2680
+ }
2681
+ }
2682
+ // Get the newly selected suggestion
2683
+ selectedSuggestion = this.searchFlyout.querySelector('.suggestions > li > a.selected');
2684
+ const suggestedText = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.dataset.suggestionText;
2685
+ // Update search box value with selected suggestion text
2686
+ if (suggestedText !== undefined && this.searchBox) {
2687
+ this.searchBox.value = suggestedText;
2688
+ }
2689
+ break;
2690
+ }
2691
+ }
2692
+ /**
2693
+ * Set selected suggestion on mouse enter
2694
+ * @param event
2695
+ */
2696
+ handleMouseEnterSuggestion(event) {
2697
+ this.deselectSuggestion();
2698
+ // Set hovered suggestion element as selected
2699
+ event.target.classList.add('selected');
2700
+ }
2701
+ /**
2702
+ * Set selected suggestion on mouse enter
2703
+ * @param event
2704
+ */
2705
+ handleMouseLeaveSuggestions() {
2706
+ this.deselectSuggestion();
2707
+ }
2708
+ /**
2709
+ * Deselect any previously selected suggestion
2710
+ */
2711
+ deselectSuggestion() {
2712
+ if (this.searchFlyout === undefined)
2713
+ return;
2714
+ const selectedSuggestion = this.searchFlyout.querySelector('.suggestions .selected');
2715
+ if (selectedSuggestion) {
2716
+ selectedSuggestion.classList.remove('selected');
2717
+ }
2718
+ }
2719
+ /**
2720
+ * Redirect to the post search page
2721
+ */
2722
+ async startSearch() {
2723
+ var _a;
2724
+ if (this.searchBox && ((_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search)) {
2725
+ const redirectUrl = await getSearchRedirectUrl(this.searchBox.value.trim(), store.state.localizedConfig.header.search);
2726
+ if (!redirectUrl)
2727
+ return;
2728
+ window.location.href = redirectUrl;
2729
+ }
2730
+ }
2731
+ render() {
2732
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
2733
+ if (((_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header) === undefined) {
2734
+ return;
2735
+ }
2736
+ const { translations, search } = store.state.localizedConfig.header;
2737
+ const showPortalRecommendations = ((_b = this.searchBox) === null || _b === void 0 ? void 0 : _b.value) === '' && ((_c = search.searchRecommendations) === null || _c === void 0 ? void 0 : _c.links.length) > 0;
2738
+ return (index.h(index.Host, null, index.h(svgSprite_component.SvgSprite, null), index.h("div", { class: "search" }, index.h("button", { id: "post-internet-header-search-button", class: "search-button", type: "button", "aria-expanded": `${this.searchDropdownOpen}`, onClick: e => this.toggleDropdown(e) }, index.h("span", { class: "visually-hidden" }, this.searchDropdownOpen
2739
+ ? translations.searchToggleExpanded
2740
+ : translations.searchToggle), index.h(svgIcon_component.SvgIcon, { name: this.searchDropdownOpen ? 'pi-close' : 'pi-search' })), index.h(if_component.If, { condition: this.searchDropdownOpen }, index.h("div", { class: "flyout", ref: e => (this.searchFlyout = e) }, index.h("div", { class: "container box" }, index.h("div", { class: "row" }, index.h("div", { class: "col-xs-12 col-md-10 col-lg-8" }, index.h("div", { class: "form-group form-floating" }, index.h("input", { type: "text", id: "searchBox", class: "form-control form-control-lg", placeholder: translations.flyoutSearchBoxFloatingLabel, autocomplete: "off", ref: el => (this.searchBox = el), onInput: () => this.handleSearchInput(), onKeyDown: e => this.handleKeyDown(e) }), index.h("label", { htmlFor: "searchBox" }, translations.flyoutSearchBoxFloatingLabel), index.h("button", { onClick: () => this.startSearch(), class: "nav-link start-search-button" }, index.h("span", { class: "visually-hidden" }, translations.searchSubmit), index.h(svgIcon_component.SvgIcon, { name: "pi-search" }))), showPortalRecommendations && (index.h("h2", { class: "bold" }, search.searchRecommendations.title)), index.h("ul", { class: "suggestions no-list", onMouseLeave: () => this.handleMouseLeaveSuggestions() }, showPortalRecommendations &&
2741
+ search.searchRecommendations.links.map(recommendation => (index.h("li", { key: recommendation.href }, index.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) }, index.h("span", { class: "search-recommendation__icon", innerHTML: recommendation.inlineSvg }), index.h("span", null, recommendation.label))))), this.parcelSuggestion && this.parcelSuggestion.ok && (index.h("li", null, index.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) }, index.h(svgIcon_component.SvgIcon, { name: "pi-letter-parcel" }), index.h("span", { class: "bold" }, (_f = (_e = this.parcelSuggestion) === null || _e === void 0 ? void 0 : _e.sending) === null || _f === void 0 ? void 0 :
2742
+ _f.id, ":\u00A0"), index.h("span", null, (_h = (_g = this.parcelSuggestion) === null || _g === void 0 ? void 0 : _g.sending) === null || _h === void 0 ? void 0 :
2743
+ _h.product, ",", ' ', (_k = (_j = this.parcelSuggestion) === null || _j === void 0 ? void 0 : _j.sending) === null || _k === void 0 ? void 0 :
2744
+ _k.recipient.zipcode, ' ', (_m = (_l = this.parcelSuggestion) === null || _l === void 0 ? void 0 : _l.sending) === null || _m === void 0 ? void 0 :
2745
+ _m.recipient.city, ",", ' ', (_p = (_o = this.parcelSuggestion) === null || _o === void 0 ? void 0 : _o.sending) === null || _p === void 0 ? void 0 :
2746
+ _p.state)))), !showPortalRecommendations &&
2747
+ this.coveoSuggestions &&
2748
+ this.coveoSuggestions.map(suggestion => (index.h("li", { key: suggestion.objectId }, index.h("a", { class: "nav-link", href: suggestion.redirectUrl, "data-suggestion-text": suggestion.expression, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, index.h(svgIcon_component.SvgIcon, { name: "pi-search" }), index.h(HighlightedText, { text: suggestion.highlighted }))))), !showPortalRecommendations &&
2749
+ this.placeSuggestions &&
2750
+ this.placeSuggestions.map(suggestion => {
2751
+ var _a, _b;
2752
+ return (index.h("li", { key: suggestion.id }, index.h("a", { class: "nav-link", href: getPlacesUrl(suggestion), "data-suggestion-text": suggestion.name, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, index.h(svgIcon_component.SvgIcon, { name: "pi-place" }), index.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) }))));
2753
+ }))))))))));
2754
+ }
2755
+ get host() { return index.getElement(this); }
2756
+ };
2735
2757
  PostSearch.style = postSearchCss;
2736
2758
 
2737
2759
  exports.post_search = PostSearch;