@swisspost/internet-header 1.11.0 → 1.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/dist/cjs/{if.component-51d000af.js → if.component-2cd3c1ff.js} +1 -1
  2. package/dist/cjs/if.component-2cd3c1ff.js.map +1 -0
  3. package/dist/cjs/{index-87874f19.js → index-4bd0adf1.js} +197 -43
  4. package/dist/cjs/index-4bd0adf1.js.map +1 -0
  5. package/dist/cjs/{klp-widget.controller-7908f551.js → klp-widget.controller-59fd5d5e.js} +1 -1
  6. package/dist/cjs/{klp-widget.controller-7908f551.js.map → klp-widget.controller-59fd5d5e.js.map} +1 -1
  7. package/dist/cjs/{language.service-0864d021.js → language.service-dbe2a435.js} +6 -6
  8. package/dist/cjs/language.service-dbe2a435.js.map +1 -0
  9. package/dist/cjs/loader.cjs.js +3 -12
  10. package/dist/cjs/loader.cjs.js.map +1 -1
  11. package/dist/cjs/post-klp-login-widget.cjs.entry.js +22 -6
  12. package/dist/cjs/post-klp-login-widget.cjs.entry.js.map +1 -1
  13. package/dist/cjs/post-language-switch.cjs.entry.js +6 -6
  14. package/dist/cjs/post-language-switch.cjs.entry.js.map +1 -1
  15. package/dist/cjs/post-logo.cjs.entry.js +2 -2
  16. package/dist/cjs/post-logo.cjs.entry.js.map +1 -1
  17. package/dist/cjs/post-main-navigation.cjs.entry.js +6 -6
  18. package/dist/cjs/post-main-navigation.cjs.entry.js.map +1 -1
  19. package/dist/cjs/post-meta-navigation.cjs.entry.js +2 -2
  20. package/dist/cjs/post-meta-navigation.cjs.entry.js.map +1 -1
  21. package/dist/cjs/post-search.cjs.entry.js +8 -8
  22. package/dist/cjs/post-search.cjs.entry.js.map +1 -1
  23. package/dist/cjs/post-skiplinks.cjs.entry.js +4 -4
  24. package/dist/cjs/post-skiplinks.cjs.entry.js.map +1 -1
  25. package/dist/cjs/{store-b99affc1.js → store-77668e50.js} +2 -2
  26. package/dist/cjs/store-77668e50.js.map +1 -0
  27. package/dist/cjs/{svg-icon.component-8e05af84.js → svg-icon.component-5965f301.js} +2 -2
  28. package/dist/cjs/svg-icon.component-5965f301.js.map +1 -0
  29. package/dist/cjs/{svg-sprite.component-f1866070.js → svg-sprite.component-4b5677ef.js} +2 -2
  30. package/dist/cjs/svg-sprite.component-4b5677ef.js.map +1 -0
  31. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +6 -6
  32. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js.map +1 -1
  33. package/dist/cjs/swisspost-internet-footer.cjs.entry.js +4 -4
  34. package/dist/cjs/swisspost-internet-footer.cjs.entry.js.map +1 -1
  35. package/dist/cjs/swisspost-internet-header.cjs.entry.js +26 -25
  36. package/dist/cjs/swisspost-internet-header.cjs.entry.js.map +1 -1
  37. package/dist/cjs/swisspost-internet-header.cjs.js +3 -6
  38. package/dist/cjs/swisspost-internet-header.cjs.js.map +1 -1
  39. package/dist/cjs/{ui.service-e1ebb6d4.js → ui.service-488151be.js} +1 -1
  40. package/dist/cjs/ui.service-488151be.js.map +1 -0
  41. package/dist/cjs/{utils-60853c5d.js → utils-717975e0.js} +1 -1
  42. package/dist/cjs/utils-717975e0.js.map +1 -0
  43. package/dist/collection/collection-manifest.json +12 -12
  44. package/dist/collection/components/post-internet-breadcrumbs/components/breadcrumb-list.component.js +4 -4
  45. package/dist/collection/components/post-internet-breadcrumbs/components/focus-trap.component.js +2 -2
  46. package/dist/collection/components/post-internet-breadcrumbs/components/middle-dropdown.component.js +4 -4
  47. package/dist/collection/components/post-internet-breadcrumbs/components/middle-links.component.js +2 -2
  48. package/dist/collection/components/post-internet-breadcrumbs/components/overlay.component.js +3 -3
  49. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js +16 -13
  50. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js.map +1 -1
  51. package/dist/collection/components/post-internet-footer/components/post-footer-block-address.component.js +2 -2
  52. package/dist/collection/components/post-internet-footer/components/post-footer-block-contact.component.js +1 -1
  53. package/dist/collection/components/post-internet-footer/components/post-footer-block-custom.component.js +1 -1
  54. package/dist/collection/components/post-internet-footer/components/post-footer-block-list.component.js +1 -1
  55. package/dist/collection/components/post-internet-footer/components/post-footer-block-socials.component.js +1 -1
  56. package/dist/collection/components/post-internet-footer/post-internet-footer.js +8 -8
  57. package/dist/collection/components/post-internet-header/logo-animation/logo-animation.js +3 -3
  58. package/dist/collection/components/post-internet-header/post-internet-header.js +42 -18
  59. package/dist/collection/components/post-internet-header/post-internet-header.js.map +1 -1
  60. package/dist/collection/components/post-klp-login-widget/klp-widget.controller.js +1 -1
  61. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.js +48 -7
  62. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.js.map +1 -1
  63. package/dist/collection/components/post-language-switch/components/post-language-switch-list.js +3 -3
  64. package/dist/collection/components/post-language-switch/post-language-switch.js +11 -9
  65. package/dist/collection/components/post-language-switch/post-language-switch.js.map +1 -1
  66. package/dist/collection/components/post-logo/post-logo.js +2 -2
  67. package/dist/collection/components/post-main-navigation/components/level-one-action.component.js +2 -2
  68. package/dist/collection/components/post-main-navigation/post-main-navigation.js +18 -13
  69. package/dist/collection/components/post-main-navigation/post-main-navigation.js.map +1 -1
  70. package/dist/collection/components/post-meta-navigation/post-meta-navigation.js +2 -2
  71. package/dist/collection/components/post-search/post-search.css +16 -1
  72. package/dist/collection/components/post-search/post-search.js +22 -18
  73. package/dist/collection/components/post-search/post-search.js.map +1 -1
  74. package/dist/collection/components/post-skiplinks/post-skiplinks.js +4 -4
  75. package/dist/collection/data/store.js +1 -1
  76. package/dist/collection/services/config.service.js +10 -10
  77. package/dist/collection/services/config.service.js.map +1 -1
  78. package/dist/collection/services/language.service.js +6 -6
  79. package/dist/collection/services/language.service.js.map +1 -1
  80. package/dist/collection/services/route.service.js +4 -4
  81. package/dist/collection/services/route.service.js.map +1 -1
  82. package/dist/collection/services/search/coveo.service.js +3 -3
  83. package/dist/collection/services/search/parcel.service.js +1 -1
  84. package/dist/collection/services/search/places.service.js +3 -3
  85. package/dist/collection/services/search/search.service.js +2 -2
  86. package/dist/collection/utils/highlighted.component.js +1 -1
  87. package/dist/collection/utils/svg-icon.component.js +1 -1
  88. package/dist/collection/utils/svg-sprite.component.js +1 -1
  89. package/dist/components/index.d.ts +6 -0
  90. package/dist/components/index.js +1 -1
  91. package/dist/components/klp-widget.controller.js.map +1 -1
  92. package/dist/components/language.service.js +4 -4
  93. package/dist/components/language.service.js.map +1 -1
  94. package/dist/components/post-klp-login-widget2.js +18 -1
  95. package/dist/components/post-klp-login-widget2.js.map +1 -1
  96. package/dist/components/post-language-switch2.js.map +1 -1
  97. package/dist/components/post-logo2.js.map +1 -1
  98. package/dist/components/post-main-navigation2.js.map +1 -1
  99. package/dist/components/post-meta-navigation2.js.map +1 -1
  100. package/dist/components/post-search2.js +1 -1
  101. package/dist/components/post-search2.js.map +1 -1
  102. package/dist/components/post-skiplinks2.js.map +1 -1
  103. package/dist/components/store.js.map +1 -1
  104. package/dist/components/svg-icon.component.js.map +1 -1
  105. package/dist/components/svg-sprite.component.js.map +1 -1
  106. package/dist/components/swisspost-internet-breadcrumbs.js +2 -0
  107. package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -1
  108. package/dist/components/swisspost-internet-footer.js.map +1 -1
  109. package/dist/components/swisspost-internet-header.js +31 -19
  110. package/dist/components/swisspost-internet-header.js.map +1 -1
  111. package/dist/components/ui.service.js.map +1 -1
  112. package/dist/components/utils.js.map +1 -1
  113. package/dist/docs.d.ts +334 -235
  114. package/dist/docs.json +461 -15
  115. package/dist/esm/{if.component-0fe54385.js → if.component-3a779aca.js} +1 -1
  116. package/dist/esm/if.component-3a779aca.js.map +1 -0
  117. package/dist/esm/{index-82f4f02c.js → index-2b83f5e9.js} +197 -43
  118. package/dist/esm/index-2b83f5e9.js.map +1 -0
  119. package/dist/esm/{klp-widget.controller-30d47ff4.js → klp-widget.controller-2a0a5183.js} +1 -1
  120. package/dist/esm/{klp-widget.controller-30d47ff4.js.map → klp-widget.controller-2a0a5183.js.map} +1 -1
  121. package/dist/esm/{language.service-109c485e.js → language.service-501b09a8.js} +6 -6
  122. package/dist/esm/language.service-501b09a8.js.map +1 -0
  123. package/dist/esm/loader.js +4 -13
  124. package/dist/esm/loader.js.map +1 -1
  125. package/dist/esm/post-klp-login-widget.entry.js +22 -6
  126. package/dist/esm/post-klp-login-widget.entry.js.map +1 -1
  127. package/dist/esm/post-language-switch.entry.js +6 -6
  128. package/dist/esm/post-language-switch.entry.js.map +1 -1
  129. package/dist/esm/post-logo.entry.js +2 -2
  130. package/dist/esm/post-logo.entry.js.map +1 -1
  131. package/dist/esm/post-main-navigation.entry.js +6 -6
  132. package/dist/esm/post-main-navigation.entry.js.map +1 -1
  133. package/dist/esm/post-meta-navigation.entry.js +2 -2
  134. package/dist/esm/post-meta-navigation.entry.js.map +1 -1
  135. package/dist/esm/post-search.entry.js +8 -8
  136. package/dist/esm/post-search.entry.js.map +1 -1
  137. package/dist/esm/post-skiplinks.entry.js +4 -4
  138. package/dist/esm/post-skiplinks.entry.js.map +1 -1
  139. package/dist/esm/{store-44830922.js → store-80b19c12.js} +2 -2
  140. package/dist/esm/store-80b19c12.js.map +1 -0
  141. package/dist/esm/{svg-icon.component-f2fda279.js → svg-icon.component-7295f7cc.js} +2 -2
  142. package/dist/esm/svg-icon.component-7295f7cc.js.map +1 -0
  143. package/dist/esm/{svg-sprite.component-c140294e.js → svg-sprite.component-29439a18.js} +2 -2
  144. package/dist/esm/svg-sprite.component-29439a18.js.map +1 -0
  145. package/dist/esm/swisspost-internet-breadcrumbs.entry.js +6 -6
  146. package/dist/esm/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  147. package/dist/esm/swisspost-internet-footer.entry.js +4 -4
  148. package/dist/esm/swisspost-internet-footer.entry.js.map +1 -1
  149. package/dist/esm/swisspost-internet-header.entry.js +26 -25
  150. package/dist/esm/swisspost-internet-header.entry.js.map +1 -1
  151. package/dist/esm/swisspost-internet-header.js +4 -7
  152. package/dist/esm/swisspost-internet-header.js.map +1 -1
  153. package/dist/esm/{ui.service-2fbc9c45.js → ui.service-a71cf490.js} +1 -1
  154. package/dist/esm/ui.service-a71cf490.js.map +1 -0
  155. package/dist/esm/{utils-ee79122f.js → utils-3a8ff48f.js} +1 -1
  156. package/dist/esm/utils-3a8ff48f.js.map +1 -0
  157. package/dist/esm-es5/bodyScrollLock.esm-afcc00e3.js +1 -1
  158. package/dist/esm-es5/bodyScrollLock.esm-afcc00e3.js.map +1 -1
  159. package/dist/esm-es5/if.component-3a779aca.js +2 -0
  160. package/dist/esm-es5/index-2b83f5e9.js +2 -0
  161. package/dist/esm-es5/index-2b83f5e9.js.map +1 -0
  162. package/dist/esm-es5/index-d2256e06.js +1 -1
  163. package/dist/esm-es5/klp-widget.controller-2a0a5183.js +13 -0
  164. package/dist/esm-es5/{klp-widget.controller-30d47ff4.js.map → klp-widget.controller-2a0a5183.js.map} +1 -1
  165. package/dist/esm-es5/language.service-501b09a8.js +2 -0
  166. package/dist/esm-es5/language.service-501b09a8.js.map +1 -0
  167. package/dist/esm-es5/loader.js +1 -1
  168. package/dist/esm-es5/loader.js.map +1 -1
  169. package/dist/esm-es5/post-klp-login-widget.entry.js +1 -1
  170. package/dist/esm-es5/post-klp-login-widget.entry.js.map +1 -1
  171. package/dist/esm-es5/post-language-switch.entry.js +1 -1
  172. package/dist/esm-es5/post-logo.entry.js +1 -1
  173. package/dist/esm-es5/post-main-navigation.entry.js +1 -1
  174. package/dist/esm-es5/post-meta-navigation.entry.js +1 -1
  175. package/dist/esm-es5/post-search.entry.js +1 -1
  176. package/dist/esm-es5/post-search.entry.js.map +1 -1
  177. package/dist/esm-es5/post-skiplinks.entry.js +1 -1
  178. package/dist/esm-es5/store-80b19c12.js +2 -0
  179. package/dist/esm-es5/store-80b19c12.js.map +1 -0
  180. package/dist/esm-es5/{svg-icon.component-f2fda279.js → svg-icon.component-7295f7cc.js} +2 -2
  181. package/dist/esm-es5/{svg-sprite.component-c140294e.js → svg-sprite.component-29439a18.js} +2 -2
  182. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +2 -2
  183. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  184. package/dist/esm-es5/swisspost-internet-footer.entry.js +1 -1
  185. package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
  186. package/dist/esm-es5/swisspost-internet-header.entry.js.map +1 -1
  187. package/dist/esm-es5/swisspost-internet-header.js +1 -1
  188. package/dist/esm-es5/swisspost-internet-header.js.map +1 -1
  189. package/dist/esm-es5/{ui.service-2fbc9c45.js → ui.service-a71cf490.js} +2 -2
  190. package/dist/esm-es5/{utils-ee79122f.js → utils-3a8ff48f.js} +1 -1
  191. package/dist/swisspost-internet-header/{p-334412b2.entry.js → p-04b1cab7.entry.js} +2 -2
  192. package/dist/swisspost-internet-header/p-04b1cab7.entry.js.map +1 -0
  193. package/dist/swisspost-internet-header/p-069dbe32.entry.js +2 -0
  194. package/dist/swisspost-internet-header/p-069dbe32.entry.js.map +1 -0
  195. package/dist/swisspost-internet-header/{p-0c5624c0.system.js → p-0e776d6e.system.js} +2 -2
  196. package/dist/swisspost-internet-header/{p-142627fa.entry.js → p-21d8e5bc.entry.js} +2 -2
  197. package/dist/swisspost-internet-header/p-21d8e5bc.entry.js.map +1 -0
  198. package/dist/swisspost-internet-header/p-2470951e.js +2 -0
  199. package/dist/swisspost-internet-header/p-2470951e.js.map +1 -0
  200. package/dist/swisspost-internet-header/{p-77426673.entry.js → p-2e334cfc.entry.js} +2 -2
  201. package/dist/swisspost-internet-header/p-2e334cfc.entry.js.map +1 -0
  202. package/dist/swisspost-internet-header/{p-8bf099a8.js → p-3339310e.js} +1 -1
  203. package/dist/swisspost-internet-header/p-3339310e.js.map +1 -0
  204. package/dist/swisspost-internet-header/p-50da051d.system.entry.js +7 -0
  205. package/dist/swisspost-internet-header/{p-0352b702.system.entry.js.map → p-50da051d.system.entry.js.map} +1 -1
  206. package/dist/swisspost-internet-header/{p-66d1bf9a.js → p-5a897619.js} +2 -2
  207. package/dist/swisspost-internet-header/p-5a897619.js.map +1 -0
  208. package/dist/swisspost-internet-header/p-5adcdd91.system.js +2 -0
  209. package/dist/swisspost-internet-header/p-5adcdd91.system.js.map +1 -0
  210. package/dist/swisspost-internet-header/{p-8120031d.system.entry.js → p-5ec6e2de.system.entry.js} +2 -2
  211. package/dist/swisspost-internet-header/{p-b762fba9.js → p-60ea6000.js} +2 -2
  212. package/dist/swisspost-internet-header/p-60ea6000.js.map +1 -0
  213. package/dist/swisspost-internet-header/{p-b5937320.entry.js → p-61074cb4.entry.js} +2 -2
  214. package/dist/swisspost-internet-header/p-61074cb4.entry.js.map +1 -0
  215. package/dist/swisspost-internet-header/{p-459c3983.js → p-624d732c.js} +2 -2
  216. package/dist/swisspost-internet-header/p-624d732c.js.map +1 -0
  217. package/dist/swisspost-internet-header/{p-d4106bf6.system.entry.js → p-62ae68ad.system.entry.js} +2 -2
  218. package/dist/swisspost-internet-header/{p-334616bc.system.entry.js → p-64b3fabe.system.entry.js} +2 -2
  219. package/dist/swisspost-internet-header/p-64b3fabe.system.entry.js.map +1 -0
  220. package/dist/swisspost-internet-header/p-65cd41a6.system.entry.js +2 -0
  221. package/dist/swisspost-internet-header/p-65cd41a6.system.entry.js.map +1 -0
  222. package/dist/swisspost-internet-header/p-6b18b251.system.entry.js +2 -0
  223. package/dist/swisspost-internet-header/{p-10bfe973.system.entry.js.map → p-6b18b251.system.entry.js.map} +1 -1
  224. package/dist/swisspost-internet-header/{p-fb82b748.system.js → p-74fea9b8.system.js} +2 -2
  225. package/dist/swisspost-internet-header/{p-37872478.entry.js → p-76e3cd9c.entry.js} +2 -2
  226. package/dist/swisspost-internet-header/p-76e3cd9c.entry.js.map +1 -0
  227. package/dist/swisspost-internet-header/p-986a52bc.system.js +2 -0
  228. package/dist/swisspost-internet-header/{p-312fcf55.system.entry.js → p-9acc06ba.system.entry.js} +2 -2
  229. package/dist/swisspost-internet-header/p-9af33755.system.js +2 -0
  230. package/dist/swisspost-internet-header/p-9af33755.system.js.map +1 -0
  231. package/dist/swisspost-internet-header/p-9b4d5e90.system.js +1 -1
  232. package/dist/swisspost-internet-header/p-9c385f74.system.js +3 -0
  233. package/dist/swisspost-internet-header/p-9c385f74.system.js.map +1 -0
  234. package/dist/swisspost-internet-header/{p-0216631b.system.entry.js → p-9d827167.system.entry.js} +2 -2
  235. package/dist/swisspost-internet-header/{p-c291d766.system.entry.js → p-a097e677.system.entry.js} +2 -2
  236. package/dist/swisspost-internet-header/p-a119b38d.js.map +1 -1
  237. package/dist/swisspost-internet-header/p-a7de7323.system.js +2 -0
  238. package/dist/swisspost-internet-header/{p-194475b8.system.js → p-ad9a417b.system.js} +2 -2
  239. package/dist/swisspost-internet-header/p-ad9a417b.system.js.map +1 -0
  240. package/dist/swisspost-internet-header/p-b3014611.system.js +1 -1
  241. package/dist/swisspost-internet-header/p-b3014611.system.js.map +1 -1
  242. package/dist/swisspost-internet-header/p-b3ad4f8a.entry.js +2 -0
  243. package/dist/swisspost-internet-header/p-b3ad4f8a.entry.js.map +1 -0
  244. package/dist/swisspost-internet-header/{p-0e4299a3.entry.js → p-b8368eca.entry.js} +2 -2
  245. package/dist/swisspost-internet-header/p-b8368eca.entry.js.map +1 -0
  246. package/dist/swisspost-internet-header/{p-45db66a6.js → p-bbfd407b.js} +1 -1
  247. package/dist/swisspost-internet-header/p-bbfd407b.js.map +1 -0
  248. package/dist/swisspost-internet-header/p-bcd01683.system.js +13 -0
  249. package/dist/swisspost-internet-header/{p-b4c0cb5a.system.js.map → p-bcd01683.system.js.map} +1 -1
  250. package/dist/swisspost-internet-header/p-c201f1b3.system.entry.js +2 -0
  251. package/dist/swisspost-internet-header/{p-a2f9d462.js → p-cf06f703.js} +1 -1
  252. package/dist/swisspost-internet-header/p-cf06f703.js.map +1 -0
  253. package/dist/swisspost-internet-header/{p-4da084d9.entry.js → p-d2fd2ff6.entry.js} +2 -2
  254. package/dist/swisspost-internet-header/p-d2fd2ff6.entry.js.map +1 -0
  255. package/dist/swisspost-internet-header/{p-935c70e1.js → p-dc8296bd.js} +2 -2
  256. package/dist/swisspost-internet-header/p-dc8296bd.js.map +1 -0
  257. package/dist/swisspost-internet-header/p-e2e1c5d4.js +3 -0
  258. package/dist/swisspost-internet-header/p-e2e1c5d4.js.map +1 -0
  259. package/dist/swisspost-internet-header/{p-edb2802d.system.js → p-f2a43ce2.system.js} +1 -1
  260. package/dist/swisspost-internet-header/{p-cfc4dbfd.entry.js → p-f5a1e4a6.entry.js} +2 -2
  261. package/dist/swisspost-internet-header/p-f5a1e4a6.entry.js.map +1 -0
  262. package/dist/swisspost-internet-header/p-f887c8bb.system.js +1 -1
  263. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
  264. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js.map +1 -1
  265. package/dist/swisspost-internet-header/swisspost-internet-header.js +2 -6
  266. package/dist/types/components/post-internet-header/post-internet-header.d.ts +4 -0
  267. package/dist/types/components/post-klp-login-widget/post-klp-login-widget.d.ts +4 -0
  268. package/dist/types/components.d.ts +62 -0
  269. package/dist/types/stencil-public-runtime.d.ts +38 -5
  270. package/loader/index.d.ts +1 -1
  271. package/package.json +6 -6
  272. package/dist/cjs/if.component-51d000af.js.map +0 -1
  273. package/dist/cjs/index-87874f19.js.map +0 -1
  274. package/dist/cjs/language.service-0864d021.js.map +0 -1
  275. package/dist/cjs/store-b99affc1.js.map +0 -1
  276. package/dist/cjs/svg-icon.component-8e05af84.js.map +0 -1
  277. package/dist/cjs/svg-sprite.component-f1866070.js.map +0 -1
  278. package/dist/cjs/ui.service-e1ebb6d4.js.map +0 -1
  279. package/dist/cjs/utils-60853c5d.js.map +0 -1
  280. package/dist/esm/if.component-0fe54385.js.map +0 -1
  281. package/dist/esm/index-82f4f02c.js.map +0 -1
  282. package/dist/esm/language.service-109c485e.js.map +0 -1
  283. package/dist/esm/polyfills/css-shim.js +0 -1
  284. package/dist/esm/store-44830922.js.map +0 -1
  285. package/dist/esm/svg-icon.component-f2fda279.js.map +0 -1
  286. package/dist/esm/svg-sprite.component-c140294e.js.map +0 -1
  287. package/dist/esm/ui.service-2fbc9c45.js.map +0 -1
  288. package/dist/esm/utils-ee79122f.js.map +0 -1
  289. package/dist/esm-es5/if.component-0fe54385.js +0 -2
  290. package/dist/esm-es5/index-82f4f02c.js +0 -2
  291. package/dist/esm-es5/index-82f4f02c.js.map +0 -1
  292. package/dist/esm-es5/klp-widget.controller-30d47ff4.js +0 -13
  293. package/dist/esm-es5/language.service-109c485e.js +0 -2
  294. package/dist/esm-es5/language.service-109c485e.js.map +0 -1
  295. package/dist/esm-es5/store-44830922.js +0 -2
  296. package/dist/esm-es5/store-44830922.js.map +0 -1
  297. package/dist/swisspost-internet-header/p-0352b702.system.entry.js +0 -7
  298. package/dist/swisspost-internet-header/p-0e4299a3.entry.js.map +0 -1
  299. package/dist/swisspost-internet-header/p-10bfe973.system.entry.js +0 -2
  300. package/dist/swisspost-internet-header/p-11d05acc.js +0 -2
  301. package/dist/swisspost-internet-header/p-11d05acc.js.map +0 -1
  302. package/dist/swisspost-internet-header/p-142627fa.entry.js.map +0 -1
  303. package/dist/swisspost-internet-header/p-194475b8.system.js.map +0 -1
  304. package/dist/swisspost-internet-header/p-1a526dc3.system.entry.js +0 -2
  305. package/dist/swisspost-internet-header/p-1a526dc3.system.entry.js.map +0 -1
  306. package/dist/swisspost-internet-header/p-1d455921.system.js +0 -3
  307. package/dist/swisspost-internet-header/p-1d455921.system.js.map +0 -1
  308. package/dist/swisspost-internet-header/p-1ec4e0ee.system.js +0 -2
  309. package/dist/swisspost-internet-header/p-1ec4e0ee.system.js.map +0 -1
  310. package/dist/swisspost-internet-header/p-28bcc0a1.entry.js +0 -2
  311. package/dist/swisspost-internet-header/p-28bcc0a1.entry.js.map +0 -1
  312. package/dist/swisspost-internet-header/p-334412b2.entry.js.map +0 -1
  313. package/dist/swisspost-internet-header/p-334616bc.system.entry.js.map +0 -1
  314. package/dist/swisspost-internet-header/p-37872478.entry.js.map +0 -1
  315. package/dist/swisspost-internet-header/p-459c3983.js.map +0 -1
  316. package/dist/swisspost-internet-header/p-45db66a6.js.map +0 -1
  317. package/dist/swisspost-internet-header/p-4da084d9.entry.js.map +0 -1
  318. package/dist/swisspost-internet-header/p-55bfdf22.system.js +0 -2
  319. package/dist/swisspost-internet-header/p-5d893017.system.js +0 -2
  320. package/dist/swisspost-internet-header/p-5d893017.system.js.map +0 -1
  321. package/dist/swisspost-internet-header/p-66d1bf9a.js.map +0 -1
  322. package/dist/swisspost-internet-header/p-77426673.entry.js.map +0 -1
  323. package/dist/swisspost-internet-header/p-7ddfd160.entry.js +0 -2
  324. package/dist/swisspost-internet-header/p-7ddfd160.entry.js.map +0 -1
  325. package/dist/swisspost-internet-header/p-88aac12c.system.js +0 -2
  326. package/dist/swisspost-internet-header/p-8bf099a8.js.map +0 -1
  327. package/dist/swisspost-internet-header/p-8e0a4d18.js +0 -3
  328. package/dist/swisspost-internet-header/p-8e0a4d18.js.map +0 -1
  329. package/dist/swisspost-internet-header/p-935c70e1.js.map +0 -1
  330. package/dist/swisspost-internet-header/p-95a1384f.system.entry.js +0 -2
  331. package/dist/swisspost-internet-header/p-a2f9d462.js.map +0 -1
  332. package/dist/swisspost-internet-header/p-b4c0cb5a.system.js +0 -13
  333. package/dist/swisspost-internet-header/p-b5937320.entry.js.map +0 -1
  334. package/dist/swisspost-internet-header/p-b762fba9.js.map +0 -1
  335. package/dist/swisspost-internet-header/p-cfc4dbfd.entry.js.map +0 -1
  336. /package/dist/esm-es5/{if.component-0fe54385.js.map → if.component-3a779aca.js.map} +0 -0
  337. /package/dist/esm-es5/{svg-icon.component-f2fda279.js.map → svg-icon.component-7295f7cc.js.map} +0 -0
  338. /package/dist/esm-es5/{svg-sprite.component-c140294e.js.map → svg-sprite.component-29439a18.js.map} +0 -0
  339. /package/dist/esm-es5/{ui.service-2fbc9c45.js.map → ui.service-a71cf490.js.map} +0 -0
  340. /package/dist/esm-es5/{utils-ee79122f.js.map → utils-3a8ff48f.js.map} +0 -0
  341. /package/dist/swisspost-internet-header/{p-0c5624c0.system.js.map → p-0e776d6e.system.js.map} +0 -0
  342. /package/dist/swisspost-internet-header/{p-8120031d.system.entry.js.map → p-5ec6e2de.system.entry.js.map} +0 -0
  343. /package/dist/swisspost-internet-header/{p-d4106bf6.system.entry.js.map → p-62ae68ad.system.entry.js.map} +0 -0
  344. /package/dist/swisspost-internet-header/{p-fb82b748.system.js.map → p-74fea9b8.system.js.map} +0 -0
  345. /package/dist/swisspost-internet-header/{p-88aac12c.system.js.map → p-986a52bc.system.js.map} +0 -0
  346. /package/dist/swisspost-internet-header/{p-312fcf55.system.entry.js.map → p-9acc06ba.system.entry.js.map} +0 -0
  347. /package/dist/swisspost-internet-header/{p-0216631b.system.entry.js.map → p-9d827167.system.entry.js.map} +0 -0
  348. /package/dist/swisspost-internet-header/{p-c291d766.system.entry.js.map → p-a097e677.system.entry.js.map} +0 -0
  349. /package/dist/swisspost-internet-header/{p-55bfdf22.system.js.map → p-a7de7323.system.js.map} +0 -0
  350. /package/dist/swisspost-internet-header/{p-95a1384f.system.entry.js.map → p-c201f1b3.system.entry.js.map} +0 -0
  351. /package/dist/swisspost-internet-header/{p-edb2802d.system.js.map → p-f2a43ce2.system.js.map} +0 -0
@@ -30,4 +30,19 @@
30
30
  * THE SOFTWARE.
31
31
  */.form-label{margin-bottom:.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.5;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:.25rem;font-size:0.8125rem;color:var(--post-contrast-color)}.form-control{display:block;width:100%;padding:.875rem 1.125rem;font-size:1rem;font-weight:400;line-height:1.5;color:#000;appearance:none;background-color:#fff;background-clip:padding-box;border:2px solid #666;border-radius:0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{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:var(--post-contrast-color-rgb);outline:0;box-shadow:0 0 0 .125rem rgba(var(--post-contrast-color-rgb), 0.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:#666;opacity:1}.form-control:disabled{color:#666;background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);border-color:#ccc;opacity:1}.form-control::file-selector-button{padding:.875rem 1.125rem;margin:-0.875rem -1.125rem;margin-inline-end:1.125rem;color:#000;background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:2px;border-radius:0;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#fff}.form-control-plaintext{display:block;width:100%;padding:.875rem 0;margin-bottom:0;line-height:1.5;color:var(--post-contrast-color);background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:2px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg,.form-floating>.form-control-plaintext.form-control,.form-floating>.form-control-plaintext.form-select{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.96875rem + 4px);padding:.375rem .875rem;font-size:0.875rem;border-radius:0}.form-control-sm::file-selector-button{padding:.375rem .875rem;margin:-0.375rem -0.875rem;margin-inline-end:.875rem}.form-control-lg,.form-floating>.form-control,.form-floating>.form-select{min-height:calc(4.375rem + 4px);padding:1.25rem 1.375rem;font-size:1.25rem;border-radius:0}.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;margin-inline-end:1.375rem}textarea.form-control{min-height:calc(3.25rem + 4px)}textarea.form-control-sm{min-height:calc(1.96875rem + 4px)}textarea.form-control-lg,.form-floating>textarea.form-control,.form-floating>textarea.form-select{min-height:calc(4.375rem + 4px)}.form-control-color{width:3rem;height:calc(3.25rem + 4px);padding:.875rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:0}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:0}.form-control-color.form-control-sm{height:calc(1.96875rem + 4px)}.form-control-color.form-control-lg,.form-floating>.form-control-color.form-control,.form-floating>.form-control-color.form-select{height:calc(4.375rem + 4px)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.875rem 1.125rem;font-size:1rem;font-weight:400;line-height:1.5;color:#000;text-align:center;white-space:nowrap;background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);border:2px solid #666;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:.375rem .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):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(2px * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.form-control-rg{padding:.625rem .875rem;font-size:1rem;line-height:1.5}select.form-control-rg:not([size]):not([multiple]){height:calc(2.75rem + 4px)}.form-control{position:relative}.form-control:disabled{color:#666}.form-control[readonly]:not(:disabled){border-color:#666;background-color:#fff}.form-control[type=file]{position:relative;min-height:calc(3.25rem + 4px)}.form-control[type=file]::file-selector-button{display:block;position:absolute;top:0;bottom:0;right:0;margin-inline:0;height:auto;background-color:inherit;border-right:0 none;border-left:inherit}@supports(background: -webkit-named-image(i)){.form-control[type=file]::file-selector-button{display:initial;position:initial;margin-inline:0;padding-inline:0;width:0;border:0 none}.form-control[type=file]::after{display:flex;align-items:center;content:"Choose File";position:absolute;top:0;bottom:0;right:0;z-index:2;padding-inline:.875rem;background-color:inherit;border-left:inherit;text-align:center}[lang=de] .form-control[type=file]::after{content:"Datei auswählen"}[lang=fr] .form-control[type=file]::after{content:"Choisir un fichier"}[lang=it] .form-control[type=file]::after{content:"Scegli file"}.form-control[type=file][multiple]::after{content:"Choose Files"}[lang=de] .form-control[type=file][multiple]::after{content:"Dateien auswählen"}[lang=fr] .form-control[type=file][multiple]::after{content:"Choisir des fichiers"}}.form-control[type=file].form-control-sm{min-height:calc(2.25rem + 4px)}.form-control[type=file].form-control-sm::after{padding-inline:.375rem}.form-control[type=file].form-control-rg{min-height:calc(2.75rem + 4px)}.form-control[type=file].form-control-rg::after{padding-inline:.625rem}.form-control[type=file].form-control-lg{min-height:calc(4rem + 4px)}.form-control[type=file].form-control-lg::after{padding-inline:1.25rem}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.form-control:hover:not(:disabled),.form-control:focus:not(:disabled){border-color:Highlight}.form-control:hover:not(:disabled)::file-selector-button,.form-control:focus:not(:disabled)::file-selector-button{border-left-color:Highlight}}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(4.375rem + 4px);min-height:calc(4.375rem + 4px);line-height:1.5}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1.25rem 1.375rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:2px solid rgba(0,0,0,0);transform-origin:0 0;transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1)}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1.25rem 1.375rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.5rem;padding-bottom:0}.form-floating>.form-select{padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), 1);transform:scale(0.7647058824)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1.25rem .6875rem;z-index:-1;height:4.375rem;content:"";background-color:#fff;border-radius:0}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 1);transform:scale(0.7647058824)}.form-floating>.form-control-plaintext~label{border-width:2px 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6)}.form-floating>label{display:block;top:2px;left:2px;margin:0;padding-inline:1.375rem;padding-top:calc(
32
32
  2px + 2.1875rem - 0.796875rem
33
- );padding-bottom:0;border:0;color:#666;font-size:1.0625rem;width:auto;height:auto;max-width:calc(100% - 4px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform-origin:1.375rem 0;transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1),width 0ms linear}.form-floating>.form-control:focus::placeholder{color:rgba(var(--post-contrast-color-rgb), 0.6)}.form-floating>.form-control:focus::input-placeholder{color:rgba(var(--post-contrast-color-rgb), 0.6)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label{padding-top:.7rem;max-width:calc(130.7692307692% - .8461538462rem - 5.2307692308px);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[type=file]:focus,.form-floating>.form-control[type=file]:not(:placeholder-shown){padding-top:1.995rem}.form-floating>.form-select{padding-top:1.5rem;padding-bottom:0}.form-floating>.form-select~label{padding-top:.7rem;max-width:calc(130.7692307692% - .8461538462rem - 5.2307692308px);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);transform:none}.form-floating>.form-select[multiple]{padding-top:2.25rem;padding-bottom:0;height:auto}.form-floating>.form-select[multiple]~label{padding-top:.9558823529rem;padding-bottom:0;width:calc(130.7692307692% - .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.375rem}.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:focus,.form-floating>textarea.form-control:not(:placeholder-shown){padding-top:1.875rem;padding-bottom:1.25rem}.form-floating>textarea.form-control:focus~label,.form-floating>textarea.form-control:not(:placeholder-shown)~label{padding-top:.9558823529rem;width:calc(130.7692307692% - .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 - .5rem - 2rem)}.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% - .8461538462rem - 5.2307692308px - 1.7980769231rem - .6538461538rem - 2.6153846154rem)}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.form-floating>input::placeholder,.form-floating>textarea::placeholder{opacity:0}.form-floating>input::input-placeholder,.form-floating>textarea::input-placeholder{opacity:0}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 400px;--bs-breakpoint-rg: 600px;--bs-breakpoint-md: 780px;--bs-breakpoint-lg: 1024px;--bs-breakpoint-xl: 1280px;--bs-breakpoint-xxl: 1441px}.row{--bs-gutter-x: 30px;--bs-gutter-y: 0;display:flex;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>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{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{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{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{flex:1 0 0%}.row-cols-rg-auto>*{flex:0 0 auto;width:auto}.row-cols-rg-1>*{flex:0 0 auto;width:100%}.row-cols-rg-2>*{flex:0 0 auto;width:50%}.row-cols-rg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-rg-4>*{flex:0 0 auto;width:25%}.row-cols-rg-5>*{flex:0 0 auto;width:20%}.row-cols-rg-6>*{flex:0 0 auto;width:16.66666667%}.col-rg-auto{flex:0 0 auto;width:auto}.col-rg-1{flex:0 0 auto;width:8.33333333%}.col-rg-2{flex:0 0 auto;width:16.66666667%}.col-rg-3{flex:0 0 auto;width:25%}.col-rg-4{flex:0 0 auto;width:33.33333333%}.col-rg-5{flex:0 0 auto;width:41.66666667%}.col-rg-6{flex:0 0 auto;width:50%}.col-rg-7{flex:0 0 auto;width:58.33333333%}.col-rg-8{flex:0 0 auto;width:66.66666667%}.col-rg-9{flex:0 0 auto;width:75%}.col-rg-10{flex:0 0 auto;width:83.33333333%}.col-rg-11{flex:0 0 auto;width:91.66666667%}.col-rg-12{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{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{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{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{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{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{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{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: 0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: 0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: 0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: 0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.container,.container-fluid,.container-xxl,.container-xl{--bs-gutter-x: 30px;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media(min-width: 1280px){.container-xl,.container-lg,.container-md,.container-rg,.container-sm,.container{max-width:1280px}}@media(min-width: 1441px){.container-xxl,.container-xl,.container-lg,.container-md,.container-rg,.container-sm,.container{max-width:1440px}}.container{padding-inline:var(--post-container-padding-x)}.container-fluid{padding-inline:var(--post-container-fluid-padding-x)}.container{--post-container-padding-x: 12px}.container-fluid{--post-container-fluid-padding-x: 12px}.row{--bs-gutter-x: 12px}@media(min-width: 400px){.container{--post-container-padding-x: 16px}}@media(min-width: 400px){.container-fluid{--post-container-fluid-padding-x: 16px}}@media(min-width: 400px){.row{--bs-gutter-x: 16px}}@media(min-width: 780px){.container{--post-container-padding-x: 32px}}@media(min-width: 780px){.container-fluid{--post-container-fluid-padding-x: 32px}}@media(min-width: 1280px){.container{--post-container-padding-x: 40px}}@media(min-width: 1441px){.container{--post-container-padding-x: 120px}}.g-0,.gx-0{--bs-gutter-x: 0}.g-1,.gx-1{--bs-gutter-x: 0.25rem}.g-2,.gx-2{--bs-gutter-x: 0.5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}@media(min-width: 400px){.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}}@media(min-width: 400px){.g-sm-1,.gx-sm-1{--bs-gutter-x: 0.25rem}}@media(min-width: 400px){.g-sm-2,.gx-sm-2{--bs-gutter-x: 0.5rem}}@media(min-width: 400px){.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}}@media(min-width: 400px){.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}}@media(min-width: 400px){.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}}@media(min-width: 600px){.g-rg-0,.gx-rg-0{--bs-gutter-x: 0}}@media(min-width: 600px){.g-rg-1,.gx-rg-1{--bs-gutter-x: 0.25rem}}@media(min-width: 600px){.g-rg-2,.gx-rg-2{--bs-gutter-x: 0.5rem}}@media(min-width: 600px){.g-rg-3,.gx-rg-3{--bs-gutter-x: 1rem}}@media(min-width: 600px){.g-rg-4,.gx-rg-4{--bs-gutter-x: 1.5rem}}@media(min-width: 600px){.g-rg-5,.gx-rg-5{--bs-gutter-x: 3rem}}@media(min-width: 780px){.g-md-0,.gx-md-0{--bs-gutter-x: 0}}@media(min-width: 780px){.g-md-1,.gx-md-1{--bs-gutter-x: 0.25rem}}@media(min-width: 780px){.g-md-2,.gx-md-2{--bs-gutter-x: 0.5rem}}@media(min-width: 780px){.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}}@media(min-width: 780px){.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}}@media(min-width: 780px){.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}}@media(min-width: 1024px){.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}}@media(min-width: 1024px){.g-lg-1,.gx-lg-1{--bs-gutter-x: 0.25rem}}@media(min-width: 1024px){.g-lg-2,.gx-lg-2{--bs-gutter-x: 0.5rem}}@media(min-width: 1024px){.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}}@media(min-width: 1024px){.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}}@media(min-width: 1024px){.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}}@media(min-width: 1280px){.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}}@media(min-width: 1280px){.g-xl-1,.gx-xl-1{--bs-gutter-x: 0.25rem}}@media(min-width: 1280px){.g-xl-2,.gx-xl-2{--bs-gutter-x: 0.5rem}}@media(min-width: 1280px){.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}}@media(min-width: 1280px){.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}}@media(min-width: 1280px){.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}}@media(min-width: 1441px){.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}}@media(min-width: 1441px){.g-xxl-1,.gx-xxl-1{--bs-gutter-x: 0.25rem}}@media(min-width: 1441px){.g-xxl-2,.gx-xxl-2{--bs-gutter-x: 0.5rem}}@media(min-width: 1441px){.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}}@media(min-width: 1441px){.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}}@media(min-width: 1441px){.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}}.vertical-gutters{margin-bottom:-30px}.vertical-gutters>.col,.vertical-gutters>[class*=col-]{padding-bottom:30px}.row.border-gutters{margin-right:-1px;margin-bottom:-1px;margin-left:0}.row.border-gutters>.col,.row.border-gutters>[class*=col-]{padding-right:1px;padding-bottom:1px;padding-left:0}.container-reset{margin-right:-12px;margin-left:-12px}.container-reset-left{margin-left:-12px}.container-reset-right{margin-right:-12px}@media(max-width: 399.98px){.container-fluid-xs{padding-right:1rem;padding-left:1rem}}@media(min-width: 400px){.container-reset{margin-right:-16px;margin-left:-16px}}@media(min-width: 400px){.container-reset-left{margin-left:-16px}}@media(min-width: 400px){.container-reset-right{margin-right:-16px}}@media(min-width: 400px)and (max-width: 599.98px){.container-fluid-sm{padding-right:1rem;padding-left:1rem}}@media(min-width: 600px)and (max-width: 779.98px){.container-fluid-rg{padding-right:1rem;padding-left:1rem}}@media(min-width: 780px){.container-reset{margin-right:-32px;margin-left:-32px}}@media(min-width: 780px){.container-reset-left{margin-left:-32px}}@media(min-width: 780px){.container-reset-right{margin-right:-32px}}@media(min-width: 780px)and (max-width: 1023.98px){.container-fluid-md{padding-right:1rem;padding-left:1rem}}@media(min-width: 1024px)and (max-width: 1279.98px){.container-fluid-lg{padding-right:1rem;padding-left:1rem}}@media(min-width: 1280px){.container-reset{margin-right:-40px;margin-left:-40px}}@media(min-width: 1280px){.container-reset-left{margin-left:-40px}}@media(min-width: 1280px){.container-reset-right{margin-right:-40px}}@media(min-width: 1280px)and (max-width: 1440.98px){.container-fluid-xl{padding-right:1rem;padding-left:1rem}}@media(min-width: 1441px){.container-reset{margin-right:-120px;margin-left:-120px}}@media(min-width: 1441px){.container-reset-left{margin-left:-120px}}@media(min-width: 1441px){.container-reset-right{margin-right:-120px}}@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:700;font-style:italic;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-BdIt.woff2") format("woff2"),url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-BdIt.woff") format("woff")}@font-face{font-display:swap;font-family:"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:400;font-style:italic;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-It.woff2") format("woff2"),url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-It.woff") format("woff")}@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")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:300;font-style:italic;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-LtIt.woff2") format("woff2"),url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-LtIt.woff") format("woff")}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}.btn-blank{background-color:rgba(0,0,0,0);border:none;border-radius:0;padding:0}.nav-link,.search-button{outline:none;outline-offset:2px;text-decoration:none;color:rgba(0,0,0,.8);transition:color 200ms;background-color:rgba(0,0,0,0);box-shadow:none;border:0;margin:0;cursor:pointer;display:flex;align-items:center;gap:.5rem}.nav-link:is(:focus-visible,:focus-within,.pretend-focus),.search-button:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.nav-link:hover,.search-button:hover,.nav-link:focus,.search-button:focus{color:#000}.nav-link:is(:focus-visible,:focus-within,.pretend-focus),.search-button:is(:focus-visible,:focus-within,.pretend-focus){z-index:1;position:relative}.nav-link>svg,.search-button>svg{width:1.4em;height:1.4em;flex-shrink:0}.nav-link>span,.search-button>span{flex-shrink:1}.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}*,:host,*::before,*::after{box-sizing:border-box}:host{font-family:"Frutiger Neue For Post",system-ui,sans-serif}button{font:inherit;padding:0}a,button{border-radius:4px;outline:none;outline-offset:2px}a:is(:focus-visible,:focus-within,.pretend-focus),button:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color);border-radius:4px}img,svg{max-width:100%;max-height:100%}@media(forced-colors: active){svg{color:#fff}}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{transform:scaleX(-1)}.rotate-270{transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.align-items-center{align-items:center}@media(min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media(max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media(min-width: 600px)and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media(min-width: 1024px){.container{padding-right:40px;padding-left:40px}}@media(max-width: -0.02px){.hidden-xs{display:none}}@media(max-width: 399.98px){.hidden-sm{display:none}}@media(max-width: 599.98px){.hidden-rg{display:none}}@media(max-width: 779.98px){.hidden-md{display:none}}@media(max-width: 1023.98px){.hidden-lg{display:none}}@media(max-width: 1279.98px){.hidden-xl{display:none}}@media(max-width: 1440.98px){.hidden-xxl{display:none}}:host{display:block}.search,:host{height:100%}.search-button{height:100%;display:flex;align-items:center;cursor:pointer;padding-right:calc(1rem - 1px);padding-left:calc(1rem - 1px)}@media(min-width: 1024px){.search-button{padding:0 calc(1.125rem - 1px)}}@media(min-width: 1280px){.search-button{padding:0 calc(1.5rem - 1px)}}.search-button svg{width:1.5rem;height:1.5rem}@media(min-width: 600px)and (max-width: 1023.98px){.search-button .visually-hidden{position:static;width:auto;height:auto;margin:auto;overflow:visible;clip:auto;visibility:visible;font-weight:300;margin-right:.5rem;cursor:pointer}}.flyout{position:absolute;top:100%;left:0;width:100%;background:#fff;overflow:auto;overscroll-behavior:contain;padding-top:3.25rem;padding-bottom:3.25rem;z-index:-1;transform:translateY(-100%);transition:transform .35s,box-shadow .35s}@media(prefers-reduced-motion: reduce){.flyout{transition:none}}@media(min-width: 1024px){.flyout{max-height:calc(100vh - var(--header-height) - var(--meta-header-height) - 1px);box-shadow:0 0 1px 0 rgba(0,0,0,.4)}.flyout.open{box-shadow:0 0 8px 0 rgba(0,0,0,.4)}}@media(max-width: 1023.98px){.flyout{height:calc(100vh - var(--header-height) - 1px)}}.flyout.open{transform:translateY(0)}.form-floating .form-control,.form-floating .form-control+label{padding-right:5.625rem}.start-search-button,.clear-search-button{position:absolute;top:0;right:0;height:100%;padding-right:1rem;padding-left:.5rem;display:flex;align-items:center;cursor:pointer;background:none;border:0;box-shadow:none}.start-search-button svg,.clear-search-button svg{width:1.5rem;height:1.5rem}.clear-search-button{right:3rem;padding-right:.5rem;visibility:hidden}.suggestions{margin:1.5rem 0}.suggestions a{padding:.75rem 1rem}.suggestions a:hover,.suggestions a:focus,.suggestions a.selected{background:#f4f3f1}.suggestions a.parcel-suggestion{flex-wrap:wrap}.search-recommendation__icon{height:1.5em;width:1.5em}
33
+ );padding-bottom:0;border:0;color:#666;font-size:1.0625rem;width:auto;height:auto;max-width:calc(100% - (4px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform-origin:1.375rem 0;transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1),width 0ms linear}.form-floating>.form-control:focus::placeholder{color:rgba(var(--post-contrast-color-rgb), 0.6)}.form-floating>.form-control:focus::input-placeholder{color:rgba(var(--post-contrast-color-rgb), 0.6)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label{padding-top:.7rem;max-width:calc(
34
+ (100% * 1.3076923077) - 0.8461538462rem - 5.2307692308px
35
+ );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[type=file]:focus,.form-floating>.form-control[type=file]:not(:placeholder-shown){padding-top:1.995rem}.form-floating>.form-select{padding-top:1.5rem;padding-bottom:0;background-size:32px 32px}.form-floating>.form-select~label{padding-top:.7rem;max-width:calc(
36
+ (100% * 1.3076923077) - 0.8461538462rem - 5.2307692308px
37
+ );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));transform:none}.form-floating>.form-select[multiple]{padding-top:2.25rem;padding-bottom:0;height:auto}.form-floating>.form-select[multiple]~label{padding-top:.9558823529rem;padding-bottom:0;width:calc(
38
+ (100% * 1.3076923077) - 0.8461538462rem - 5.2307692308px - 1.7980769231rem
39
+ );height:auto;background:#fff}.form-floating>.form-select[multiple]:empty~label{padding-top:1.25rem;padding-bottom:1.25rem;width:calc(
40
+ 100% - (4px) - 1.375rem
41
+ );height:4.375rem}.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:focus,.form-floating>textarea.form-control:not(:placeholder-shown){padding-top:1.875rem;padding-bottom:1.25rem}.form-floating>textarea.form-control:focus~label,.form-floating>textarea.form-control:not(:placeholder-shown)~label{padding-top:.9558823529rem;width:calc(
42
+ (100% * 1.3076923077) - 0.8461538462rem - 5.2307692308px - 1.7980769231rem
43
+ );max-width:none;background:#fff}.form-floating>textarea.form-control:is(.is-valid,.is-invalid)~label{width:calc(
44
+ 100% - (4px) - 1.375rem - 0.5rem -
45
+ 2rem
46
+ )}.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(
47
+ (100% * 1.3076923077) - 0.8461538462rem - 5.2307692308px - 1.7980769231rem - 0.6538461538rem - 2.6153846154rem
48
+ )}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.form-floating>input::placeholder,.form-floating>textarea::placeholder{opacity:0}.form-floating>input::input-placeholder,.form-floating>textarea::input-placeholder{opacity:0}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 400px;--bs-breakpoint-rg: 600px;--bs-breakpoint-md: 780px;--bs-breakpoint-lg: 1024px;--bs-breakpoint-xl: 1280px;--bs-breakpoint-xxl: 1441px}.row{--bs-gutter-x: 30px;--bs-gutter-y: 0;display:flex;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>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{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{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{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{flex:1 0 0%}.row-cols-rg-auto>*{flex:0 0 auto;width:auto}.row-cols-rg-1>*{flex:0 0 auto;width:100%}.row-cols-rg-2>*{flex:0 0 auto;width:50%}.row-cols-rg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-rg-4>*{flex:0 0 auto;width:25%}.row-cols-rg-5>*{flex:0 0 auto;width:20%}.row-cols-rg-6>*{flex:0 0 auto;width:16.66666667%}.col-rg-auto{flex:0 0 auto;width:auto}.col-rg-1{flex:0 0 auto;width:8.33333333%}.col-rg-2{flex:0 0 auto;width:16.66666667%}.col-rg-3{flex:0 0 auto;width:25%}.col-rg-4{flex:0 0 auto;width:33.33333333%}.col-rg-5{flex:0 0 auto;width:41.66666667%}.col-rg-6{flex:0 0 auto;width:50%}.col-rg-7{flex:0 0 auto;width:58.33333333%}.col-rg-8{flex:0 0 auto;width:66.66666667%}.col-rg-9{flex:0 0 auto;width:75%}.col-rg-10{flex:0 0 auto;width:83.33333333%}.col-rg-11{flex:0 0 auto;width:91.66666667%}.col-rg-12{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{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{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{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{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{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{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{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: 0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: 0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: 0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: 0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.container,.container-fluid,.container-xxl,.container-xl{--bs-gutter-x: 30px;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media(min-width: 1280px){.container-xl,.container-lg,.container-md,.container-rg,.container-sm,.container{max-width:1280px}}@media(min-width: 1441px){.container-xxl,.container-xl,.container-lg,.container-md,.container-rg,.container-sm,.container{max-width:1440px}}.container{padding-inline:var(--post-container-padding-x)}.container-fluid{padding-inline:var(--post-container-fluid-padding-x)}.container{--post-container-padding-x: 12px}.container-fluid{--post-container-fluid-padding-x: 12px}.row{--bs-gutter-x: 12px}@media(min-width: 400px){.container{--post-container-padding-x: 16px}}@media(min-width: 400px){.container-fluid{--post-container-fluid-padding-x: 16px}}@media(min-width: 400px){.row{--bs-gutter-x: 16px}}@media(min-width: 780px){.container{--post-container-padding-x: 32px}}@media(min-width: 780px){.container-fluid{--post-container-fluid-padding-x: 32px}}@media(min-width: 1280px){.container{--post-container-padding-x: 40px}}@media(min-width: 1441px){.container{--post-container-padding-x: 120px}}.g-0,.gx-0{--bs-gutter-x: 0}.g-1,.gx-1{--bs-gutter-x: 0.25rem}.g-2,.gx-2{--bs-gutter-x: 0.5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}@media(min-width: 400px){.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}}@media(min-width: 400px){.g-sm-1,.gx-sm-1{--bs-gutter-x: 0.25rem}}@media(min-width: 400px){.g-sm-2,.gx-sm-2{--bs-gutter-x: 0.5rem}}@media(min-width: 400px){.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}}@media(min-width: 400px){.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}}@media(min-width: 400px){.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}}@media(min-width: 600px){.g-rg-0,.gx-rg-0{--bs-gutter-x: 0}}@media(min-width: 600px){.g-rg-1,.gx-rg-1{--bs-gutter-x: 0.25rem}}@media(min-width: 600px){.g-rg-2,.gx-rg-2{--bs-gutter-x: 0.5rem}}@media(min-width: 600px){.g-rg-3,.gx-rg-3{--bs-gutter-x: 1rem}}@media(min-width: 600px){.g-rg-4,.gx-rg-4{--bs-gutter-x: 1.5rem}}@media(min-width: 600px){.g-rg-5,.gx-rg-5{--bs-gutter-x: 3rem}}@media(min-width: 780px){.g-md-0,.gx-md-0{--bs-gutter-x: 0}}@media(min-width: 780px){.g-md-1,.gx-md-1{--bs-gutter-x: 0.25rem}}@media(min-width: 780px){.g-md-2,.gx-md-2{--bs-gutter-x: 0.5rem}}@media(min-width: 780px){.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}}@media(min-width: 780px){.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}}@media(min-width: 780px){.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}}@media(min-width: 1024px){.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}}@media(min-width: 1024px){.g-lg-1,.gx-lg-1{--bs-gutter-x: 0.25rem}}@media(min-width: 1024px){.g-lg-2,.gx-lg-2{--bs-gutter-x: 0.5rem}}@media(min-width: 1024px){.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}}@media(min-width: 1024px){.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}}@media(min-width: 1024px){.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}}@media(min-width: 1280px){.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}}@media(min-width: 1280px){.g-xl-1,.gx-xl-1{--bs-gutter-x: 0.25rem}}@media(min-width: 1280px){.g-xl-2,.gx-xl-2{--bs-gutter-x: 0.5rem}}@media(min-width: 1280px){.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}}@media(min-width: 1280px){.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}}@media(min-width: 1280px){.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}}@media(min-width: 1441px){.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}}@media(min-width: 1441px){.g-xxl-1,.gx-xxl-1{--bs-gutter-x: 0.25rem}}@media(min-width: 1441px){.g-xxl-2,.gx-xxl-2{--bs-gutter-x: 0.5rem}}@media(min-width: 1441px){.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}}@media(min-width: 1441px){.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}}@media(min-width: 1441px){.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}}.vertical-gutters{margin-bottom:-30px}.vertical-gutters>.col,.vertical-gutters>[class*=col-]{padding-bottom:30px}.row.border-gutters{margin-right:-1px;margin-bottom:-1px;margin-left:0}.row.border-gutters>.col,.row.border-gutters>[class*=col-]{padding-right:1px;padding-bottom:1px;padding-left:0}.container-reset{margin-right:-12px;margin-left:-12px}.container-reset-left{margin-left:-12px}.container-reset-right{margin-right:-12px}@media(max-width: 399.98px){.container-fluid-xs{padding-right:1rem;padding-left:1rem}}@media(min-width: 400px){.container-reset{margin-right:-16px;margin-left:-16px}}@media(min-width: 400px){.container-reset-left{margin-left:-16px}}@media(min-width: 400px){.container-reset-right{margin-right:-16px}}@media(min-width: 400px)and (max-width: 599.98px){.container-fluid-sm{padding-right:1rem;padding-left:1rem}}@media(min-width: 600px)and (max-width: 779.98px){.container-fluid-rg{padding-right:1rem;padding-left:1rem}}@media(min-width: 780px){.container-reset{margin-right:-32px;margin-left:-32px}}@media(min-width: 780px){.container-reset-left{margin-left:-32px}}@media(min-width: 780px){.container-reset-right{margin-right:-32px}}@media(min-width: 780px)and (max-width: 1023.98px){.container-fluid-md{padding-right:1rem;padding-left:1rem}}@media(min-width: 1024px)and (max-width: 1279.98px){.container-fluid-lg{padding-right:1rem;padding-left:1rem}}@media(min-width: 1280px){.container-reset{margin-right:-40px;margin-left:-40px}}@media(min-width: 1280px){.container-reset-left{margin-left:-40px}}@media(min-width: 1280px){.container-reset-right{margin-right:-40px}}@media(min-width: 1280px)and (max-width: 1440.98px){.container-fluid-xl{padding-right:1rem;padding-left:1rem}}@media(min-width: 1441px){.container-reset{margin-right:-120px;margin-left:-120px}}@media(min-width: 1441px){.container-reset-left{margin-left:-120px}}@media(min-width: 1441px){.container-reset-right{margin-right:-120px}}@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:700;font-style:italic;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-BdIt.woff2") format("woff2"),url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-BdIt.woff") format("woff")}@font-face{font-display:swap;font-family:"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:400;font-style:italic;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-It.woff2") format("woff2"),url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-It.woff") format("woff")}@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")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:300;font-style:italic;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-LtIt.woff2") format("woff2"),url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-LtIt.woff") format("woff")}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}.btn-blank{background-color:rgba(0,0,0,0);border:none;border-radius:0;padding:0}.nav-link,.search-button{outline:none;outline-offset:2px;text-decoration:none;color:rgba(0,0,0,.8);transition:color 200ms;background-color:rgba(0,0,0,0);box-shadow:none;border:0;margin:0;cursor:pointer;display:flex;align-items:center;gap:.5rem}.nav-link:is(:focus-visible,:focus-within,.pretend-focus),.search-button:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.nav-link:hover,.search-button:hover,.nav-link:focus,.search-button:focus{color:#000}.nav-link:is(:focus-visible,:focus-within,.pretend-focus),.search-button:is(:focus-visible,:focus-within,.pretend-focus){z-index:1;position:relative}.nav-link>svg,.search-button>svg{width:1.4em;height:1.4em;flex-shrink:0}.nav-link>span,.search-button>span{flex-shrink:1}.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}*,:host,*::before,*::after{box-sizing:border-box}:host{font-family:"Frutiger Neue For Post",system-ui,sans-serif}button{font:inherit;padding:0}a,button{border-radius:4px;outline:none;outline-offset:2px}a:is(:focus-visible,:focus-within,.pretend-focus),button:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color);border-radius:4px}img,svg{max-width:100%;max-height:100%}@media(forced-colors: active){svg{color:#fff}}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{transform:scaleX(-1)}.rotate-270{transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.align-items-center{align-items:center}@media(min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media(max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media(min-width: 600px)and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media(min-width: 1024px){.container{padding-right:40px;padding-left:40px}}@media(max-width: -0.02px){.hidden-xs{display:none}}@media(max-width: 399.98px){.hidden-sm{display:none}}@media(max-width: 599.98px){.hidden-rg{display:none}}@media(max-width: 779.98px){.hidden-md{display:none}}@media(max-width: 1023.98px){.hidden-lg{display:none}}@media(max-width: 1279.98px){.hidden-xl{display:none}}@media(max-width: 1440.98px){.hidden-xxl{display:none}}:host{display:block}.search,:host{height:100%}.search-button{height:100%;display:flex;align-items:center;cursor:pointer;padding-right:calc(1rem - 1px);padding-left:calc(1rem - 1px)}@media(min-width: 1024px){.search-button{padding:0 calc(1.125rem - 1px)}}@media(min-width: 1280px){.search-button{padding:0 calc(1.5rem - 1px)}}.search-button svg{width:1.5rem;height:1.5rem}@media(min-width: 600px)and (max-width: 1023.98px){.search-button .visually-hidden{position:static;width:auto;height:auto;margin:auto;overflow:visible;clip:auto;visibility:visible;font-weight:300;margin-right:.5rem;cursor:pointer}}.flyout{position:absolute;top:100%;left:0;width:100%;background:#fff;overflow:auto;overscroll-behavior:contain;padding-top:3.25rem;padding-bottom:3.25rem;z-index:-1;transform:translateY(-100%);transition:transform .35s,box-shadow .35s}@media(prefers-reduced-motion: reduce){.flyout{transition:none}}@media(min-width: 1024px){.flyout{max-height:calc(100vh - var(--header-height) - var(--meta-header-height) - 1px);box-shadow:0 0 1px 0 rgba(0,0,0,.4)}.flyout.open{box-shadow:0 0 8px 0 rgba(0,0,0,.4)}}@media(max-width: 1023.98px){.flyout{height:calc(100vh - var(--header-height) - 1px)}}.flyout.open{transform:translateY(0)}.form-floating .form-control,.form-floating .form-control+label{padding-right:5.625rem}.start-search-button,.clear-search-button{position:absolute;top:0;right:0;height:100%;padding-right:1rem;padding-left:.5rem;display:flex;align-items:center;cursor:pointer;background:none;border:0;box-shadow:none}.start-search-button svg,.clear-search-button svg{width:1.5rem;height:1.5rem}.clear-search-button{right:3rem;padding-right:.5rem;visibility:hidden}.suggestions{margin:1.5rem 0}.suggestions a{padding:.75rem 1rem}.suggestions a:hover,.suggestions a:focus,.suggestions a.selected{background:#f4f3f1}.suggestions a.parcel-suggestion{flex-wrap:wrap}.search-recommendation__icon{height:1.5em;width:1.5em}
@@ -1,17 +1,17 @@
1
- import { h, Host } from '@stencil/core';
2
- import { throttle } from 'throttle-debounce';
3
- import { clearAllBodyScrollLocks, disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';
4
- import { state } from '../../data/store';
5
- import { equalizeArrays, getSearchRedirectUrl } from '../../services/search/search.service';
6
- import { getCoveoSuggestions } from '../../services/search/coveo.service';
7
- import { getPlacesUrl, highlightPlacesString, queryPlaces, } from '../../services/search/places.service';
8
- import { elementHasTransition, userPrefersReducedMotion } from '../../services/ui.service';
9
- import { HighlightedText } from '../../utils/highlighted.component';
10
- import { SvgSprite } from '../../utils/svg-sprite.component';
11
- import { SvgIcon } from '../../utils/svg-icon.component';
12
- import { getParcelSuggestion } from '../../services/search/parcel.service';
13
- import { If } from '../../utils/if.component';
14
- import { translate } from '../../services/language.service';
1
+ import { h, Host } from "@stencil/core";
2
+ import { throttle } from "throttle-debounce";
3
+ import { clearAllBodyScrollLocks, disableBodyScroll, enableBodyScroll } from "body-scroll-lock";
4
+ import { state } from "../../data/store";
5
+ import { equalizeArrays, getSearchRedirectUrl } from "../../services/search/search.service";
6
+ import { getCoveoSuggestions } from "../../services/search/coveo.service";
7
+ import { getPlacesUrl, highlightPlacesString, queryPlaces, } from "../../services/search/places.service";
8
+ import { elementHasTransition, userPrefersReducedMotion } from "../../services/ui.service";
9
+ import { HighlightedText } from "../../utils/highlighted.component";
10
+ import { SvgSprite } from "../../utils/svg-sprite.component";
11
+ import { SvgIcon } from "../../utils/svg-icon.component";
12
+ import { getParcelSuggestion } from "../../services/search/parcel.service";
13
+ import { If } from "../../utils/if.component";
14
+ import { translate } from "../../services/language.service";
15
15
  export class PostSearch {
16
16
  constructor() {
17
17
  this.searchDropdownOpen = false;
@@ -345,7 +345,8 @@ export class PostSearch {
345
345
  "references": {
346
346
  "DropdownEvent": {
347
347
  "location": "import",
348
- "path": "../../models/header.model"
348
+ "path": "../../models/header.model",
349
+ "id": "src/models/header.model.ts::DropdownEvent"
349
350
  }
350
351
  }
351
352
  }
@@ -365,7 +366,8 @@ export class PostSearch {
365
366
  }],
366
367
  "references": {
367
368
  "Promise": {
368
- "location": "global"
369
+ "location": "global",
370
+ "id": "global::Promise"
369
371
  }
370
372
  },
371
373
  "return": "Promise<boolean>"
@@ -387,10 +389,12 @@ export class PostSearch {
387
389
  "parameters": [],
388
390
  "references": {
389
391
  "Promise": {
390
- "location": "global"
392
+ "location": "global",
393
+ "id": "global::Promise"
391
394
  },
392
395
  "HTMLElement": {
393
- "location": "global"
396
+ "location": "global",
397
+ "id": "global::HTMLElement"
394
398
  }
395
399
  },
396
400
  "return": "Promise<void>"
@@ -1 +1 @@
1
- {"version":3,"file":"post-search.js","sourceRoot":"","sources":["../../../../src/components/post-search/post-search.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, State } from '@stencil/core';\nimport { throttle } from 'throttle-debounce';\nimport { clearAllBodyScrollLocks, disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { state } from '../../data/store';\nimport { CoveoCompletion } from '../../models/coveo.model';\nimport { GeocodeLocation } from '../../models/geocode.model';\nimport { TagManagerDataLayer } from '../../models/general.model';\nimport {\n DropdownElement,\n DropdownEvent,\n HasDropdown,\n ISearchRecommendation,\n IsFocusable,\n} from '../../models/header.model';\nimport { equalizeArrays, getSearchRedirectUrl } from '../../services/search/search.service';\nimport { getCoveoSuggestions } from '../../services/search/coveo.service';\nimport {\n getPlacesUrl,\n highlightPlacesString,\n queryPlaces,\n} from '../../services/search/places.service';\nimport { elementHasTransition, userPrefersReducedMotion } from '../../services/ui.service';\nimport { HighlightedText } from '../../utils/highlighted.component';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { TrackAndTraceInfo } from '../../models/track-and-trace.model';\nimport { getParcelSuggestion } from '../../services/search/parcel.service';\nimport { If } from '../../utils/if.component';\nimport { translate } from '../../services/language.service';\n\n@Component({\n tag: 'post-search',\n styleUrl: 'post-search.scss',\n shadow: true,\n})\nexport class PostSearch implements HasDropdown, IsFocusable {\n @State() searchDropdownOpen = false;\n @State() coveoSuggestions: CoveoCompletion[] = [];\n @State() placeSuggestions: GeocodeLocation[] = [];\n @State() parcelSuggestion: (TrackAndTraceInfo & { url: string }) | null = null;\n @Event() dropdownToggled: EventEmitter<DropdownEvent>;\n @Element() host: DropdownElement;\n private searchBox?: HTMLInputElement;\n private searchFlyout: HTMLElement | undefined;\n private throttledResize: throttle<() => void>;\n private clearButton?: HTMLButtonElement;\n\n connectedCallback() {\n this.throttledResize = throttle(300, () => this.handleResize());\n window.addEventListener('resize', this.throttledResize, { passive: true });\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.throttledResize);\n clearAllBodyScrollLocks();\n }\n\n componentWillUpdate() {\n // Check if search flyout got set to close\n if (this.searchFlyout && !this.searchDropdownOpen) {\n this.searchFlyout.classList.remove('open');\n\n // Check if element has transition applied and whether user prefers to see animations or not\n if (elementHasTransition(this.searchFlyout, 'transform') && !userPrefersReducedMotion()) {\n // Wait for CSS transition 'transform' to end before continuing\n return new Promise<boolean>(resolve => {\n if (this.searchFlyout === undefined) {\n return resolve(true);\n }\n\n this.searchFlyout.addEventListener('transitionend', event => {\n if (event.propertyName === 'transform') {\n resolve(true);\n }\n });\n });\n }\n }\n }\n\n componentDidUpdate() {\n // Search flyout got set to open\n if (this.searchFlyout && this.searchDropdownOpen) {\n // Force browser to redraw/refresh DOM before adding 'open' class\n this.searchFlyout.getBoundingClientRect();\n this.searchFlyout.classList.add('open');\n }\n\n // Focus on the searchBox whenever the dropdown is opened\n if (this.searchDropdownOpen && this.searchBox) {\n this.searchBox.focus({ preventScroll: true });\n }\n }\n\n public async toggleDropdown(event?: Event): Promise<boolean>;\n public async toggleDropdown(force?: boolean): Promise<boolean>;\n\n /**\n * Toggle the dropdown and optionally force an open/closed state\n * @param force Boolean to force open/closed state\n * @returns Boolean indicating open state of the component\n */\n @Method()\n async toggleDropdown(force?: unknown) {\n this.searchDropdownOpen =\n force === undefined || typeof force !== 'boolean' ? !this.searchDropdownOpen : force;\n this.dropdownToggled.emit({ open: this.searchDropdownOpen, element: this.host });\n\n if (!this.searchDropdownOpen) {\n // Reset suggestions when dropdown closes\n this.coveoSuggestions = [];\n this.placeSuggestions = [];\n if (this.searchBox) this.searchBox.value = '';\n void this.setFocus();\n } else {\n // Get basic suggestions when dropdown opens\n try {\n this.coveoSuggestions = await getCoveoSuggestions('');\n } catch {}\n }\n\n this.setBodyScroll();\n\n return this.searchDropdownOpen;\n }\n\n /**\n * Sets the focus on the search button\n */\n @Method()\n public async setFocus() {\n const shadowRoot = this.host.shadowRoot;\n if (shadowRoot === null) {\n return;\n }\n const toggleButton = shadowRoot.querySelector<HTMLElement>('.search-button');\n if (toggleButton) {\n toggleButton.focus();\n }\n }\n\n private handleResize() {\n // Only enable/disable body scroll on resize if the search dropdown is open, otherwise this could lead to side effects in other controls\n if (this.searchDropdownOpen) {\n this.setBodyScroll();\n }\n }\n\n /**\n * Disable or re-enable body scrolling, depending on whether search dropdown is open or closed in mobile view (width < 1024px)\n */\n private setBodyScroll() {\n if (!this.searchFlyout) {\n return;\n }\n\n if (this.searchDropdownOpen && window.innerWidth < 1024) {\n disableBodyScroll(this.searchFlyout);\n } else {\n enableBodyScroll(this.searchFlyout);\n }\n }\n\n /**\n * Fetch suggestions from all available sources\n */\n private async handleSearchInput() {\n if (this.searchBox === undefined || state.localizedConfig?.header.search === undefined) {\n return;\n }\n const query = this.searchBox.value.trim();\n\n // shows or hides clearButton depending on the content of the searchbar\n if (this.clearButton) {\n if (query !== '') {\n this.clearButton.style.visibility = 'visible';\n } else {\n this.clearButton.style.visibility = 'hidden';\n }\n }\n\n const [placeSuggestions, coveoSuggestions, trackAndTraceInfo] = await Promise.all([\n queryPlaces(query),\n getCoveoSuggestions(query),\n getParcelSuggestion(query, state.localizedConfig.header.search),\n ]);\n\n this.parcelSuggestion = trackAndTraceInfo;\n\n // Parcel suggestion is more important than any other\n if (trackAndTraceInfo) {\n this.placeSuggestions = [];\n this.coveoSuggestions = [];\n } else {\n [this.coveoSuggestions, this.placeSuggestions] = equalizeArrays(\n coveoSuggestions,\n placeSuggestions,\n 7,\n );\n }\n\n this.deselectSuggestion();\n }\n\n /**\n * clear Search box\n * calls handleSearchInput to update/remove suggestions\n */\n private handleClearSearchBox() {\n if (this.searchBox !== undefined) {\n this.searchBox.value = '';\n this.handleSearchInput();\n }\n }\n\n /**\n * Start search on enter\n * @param event\n */\n private handleKeyDown(event: KeyboardEvent) {\n if (this.searchFlyout === undefined) {\n return;\n }\n\n const selectedSuggestion = this.searchFlyout.querySelector<HTMLElement>(\n '.suggestions > li > a.selected',\n );\n const selectedHref = selectedSuggestion?.getAttribute('href') ?? null;\n const suggestions = this.searchFlyout.querySelectorAll('.suggestions > li > a');\n\n switch (event.key.toLowerCase()) {\n case 'enter':\n if (selectedHref !== null) {\n window.location.href = selectedHref;\n } else {\n void this.startSearch();\n }\n\n break;\n case 'arrowdown':\n this.deselectSuggestion();\n\n if (selectedSuggestion?.parentElement?.nextElementSibling?.firstElementChild) {\n // Select next suggestion if there's any, otherwise none will be selected\n selectedSuggestion.parentElement.nextElementSibling.firstElementChild.classList.add(\n 'selected',\n );\n // If there are any suggestions, select first suggestion in list\n } else if (suggestions.length > 0) {\n suggestions[0].classList.add('selected');\n }\n\n this.updateSearchBoxWithSuggestion();\n\n break;\n case 'arrowup':\n this.deselectSuggestion();\n\n if (selectedSuggestion?.parentElement?.previousElementSibling?.firstElementChild) {\n // Select previous suggestion if there's any, otherwise none will be selected\n\n selectedSuggestion.parentElement.previousElementSibling.firstElementChild.classList.add(\n 'selected',\n );\n // If there are any suggestions, select last suggestion in list\n } else if (suggestions.length > 0) {\n suggestions[suggestions.length - 1].classList.add('selected');\n }\n\n this.updateSearchBoxWithSuggestion();\n\n break;\n }\n }\n\n /**\n * Set selected suggestion on mouse enter\n * @param event\n */\n private handleMouseEnterSuggestion(event: MouseEvent) {\n this.deselectSuggestion();\n\n // Set hovered suggestion element as selected\n (event.target as HTMLElement).classList.add('selected');\n }\n\n /**\n * Set selected suggestion on mouse enter\n * @param event\n */\n private handleMouseLeaveSuggestions() {\n this.deselectSuggestion();\n }\n\n /**\n * Deselect any previously selected suggestion\n */\n private deselectSuggestion() {\n if (this.searchFlyout === undefined) return;\n\n const selectedSuggestion = this.searchFlyout.querySelector('.suggestions .selected');\n\n if (selectedSuggestion) {\n selectedSuggestion.classList.remove('selected');\n }\n }\n\n /**\n * Update search box with selected suggestion\n */\n private updateSearchBoxWithSuggestion() {\n if (this.searchFlyout === undefined) return;\n\n // Get the newly selected suggestion\n const selectedSuggestion = this.searchFlyout.querySelector<HTMLElement>(\n '.suggestions > li > a.selected',\n );\n const suggestedText = selectedSuggestion?.dataset.suggestionText;\n\n // Update search box value with selected suggestion text\n if (suggestedText !== undefined && this.searchBox) {\n this.searchBox.value = suggestedText;\n }\n }\n\n /**\n * Redirect to the post search page\n */\n private async startSearch() {\n if (this.searchBox && state.localizedConfig?.header.search) {\n const redirectUrl = await getSearchRedirectUrl(\n this.searchBox.value.trim(),\n state.localizedConfig.header.search,\n );\n if (!redirectUrl) return;\n window.location.href = redirectUrl;\n }\n }\n\n private trackRecommendationClick(recommendation: ISearchRecommendation) {\n if (!('dataLayer' in window)) return;\n\n const trackingAttributes = recommendation.additionalAttributes.reduce((acc, curr) => {\n acc[curr.name] = curr.value;\n return acc;\n }, {});\n\n (window.dataLayer as TagManagerDataLayer).push({\n event: trackingAttributes['data-event'],\n text: trackingAttributes['data-text'],\n link_url: trackingAttributes['data-linkurl'],\n label: trackingAttributes['data-label'],\n type: trackingAttributes['data-type'],\n });\n }\n\n render() {\n if (state.localizedConfig?.header === undefined) {\n return;\n }\n const { translations, search } = state.localizedConfig.header;\n const isParcelTrackingNr = this.parcelSuggestion && 'sending' in this.parcelSuggestion;\n const showPortalRecommendations =\n this.searchBox?.value === '' && search.searchRecommendations?.links.length > 0;\n\n return (\n <Host role=\"search\">\n <SvgSprite />\n <div class=\"search\">\n <button\n id=\"post-internet-header-search-button\"\n class=\"search-button\"\n type=\"button\"\n aria-expanded={`${this.searchDropdownOpen}`}\n onClick={e => void this.toggleDropdown(e)}\n >\n <span class=\"visually-hidden\">\n {this.searchDropdownOpen\n ? translations.searchToggleExpanded\n : translations.searchToggle}\n </span>\n <SvgIcon name={this.searchDropdownOpen ? 'pi-close' : 'pi-search'} />\n </button>\n <If condition={this.searchDropdownOpen}>\n <div class=\"flyout\" ref={e => (this.searchFlyout = e)}>\n <div class=\"container box\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-md-10 col-lg-8\">\n <div class=\"form-group form-floating\">\n <input\n type=\"text\"\n role=\"searchbox\"\n id=\"searchBox\"\n class=\"form-control form-control-lg\"\n placeholder={translations.flyoutSearchBoxFloatingLabel}\n autocomplete=\"off\"\n ref={el => (this.searchBox = el)}\n onInput={() => void this.handleSearchInput()}\n onKeyDown={e => this.handleKeyDown(e)}\n />\n <label htmlFor=\"searchBox\">{translations.flyoutSearchBoxFloatingLabel}</label>\n <button\n onClick={() => this.handleClearSearchBox()}\n class=\"clear-search-button\"\n type=\"reset\"\n id=\"clearButton\"\n ref={el => (this.clearButton = el)}\n >\n <span class=\"visually-hidden\">{translate('Delete search term')}</span>\n <SvgIcon name=\"pi-close\" />\n </button>\n <button onClick={() => void this.startSearch()} class=\"start-search-button\">\n <span class=\"visually-hidden\">{translations.searchSubmit}</span>\n <SvgIcon name=\"pi-search\" />\n </button>\n </div>\n {showPortalRecommendations && (\n <h2 id=\"post-internet-header-search-recommendations-title\" class=\"bold\">\n {search.searchRecommendations.title}\n </h2>\n )}\n <ul\n class=\"suggestions no-list\"\n onMouseLeave={() => this.handleMouseLeaveSuggestions()}\n aria-labelledby={\n showPortalRecommendations\n ? 'post-internet-header-search-recommendations-title'\n : undefined\n }\n >\n {showPortalRecommendations &&\n search.searchRecommendations.links.map(recommendation => (\n <li key={recommendation.href}>\n <a\n class=\"nav-link search-recommendation\"\n href={new URL(recommendation.href, 'https://post.ch').href}\n data-suggestion-text={recommendation.label}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n onClick={() => this.trackRecommendationClick(recommendation)}\n >\n <span\n class=\"search-recommendation__icon\"\n innerHTML={recommendation.inlineSvg}\n ></span>\n <span>{recommendation.label}</span>\n </a>\n </li>\n ))}\n {isParcelTrackingNr && (\n <li>\n <a\n class=\"nav-link parcel-suggestion\"\n href={this.parcelSuggestion!.url}\n data-suggestion-text={this.searchBox?.value}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-letter-parcel\" />\n <span class=\"bold\">{this.parcelSuggestion?.sending?.id}:&nbsp;</span>\n <span>\n {[\n this.parcelSuggestion?.sending?.product,\n ' ' + this.parcelSuggestion?.sending?.recipient.zipcode,\n ' ' + this.parcelSuggestion?.sending?.recipient.city,\n ', ' + this.parcelSuggestion?.sending?.state,\n ]\n .filter(s => s !== '' && s !== ' ')\n .join('')}\n </span>\n </a>\n </li>\n )}\n {!showPortalRecommendations &&\n this.coveoSuggestions &&\n this.coveoSuggestions.map(suggestion => (\n <li key={suggestion.objectId}>\n <a\n class=\"nav-link\"\n href={suggestion.redirectUrl}\n data-suggestion-text={suggestion.expression}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-search\" />\n <HighlightedText text={suggestion.highlighted} />\n </a>\n </li>\n ))}\n {!showPortalRecommendations &&\n this.placeSuggestions &&\n this.placeSuggestions.map(suggestion => (\n <li key={suggestion.id}>\n <a\n class=\"nav-link\"\n href={getPlacesUrl(suggestion)}\n data-suggestion-text={suggestion.name}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-place\" />\n <HighlightedText\n text={highlightPlacesString(\n this.searchBox?.value?.trim(),\n suggestion.name,\n )}\n />\n </a>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </div>\n </div>\n </If>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"post-search.js","sourceRoot":"","sources":["../../../../src/components/post-search/post-search.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, State } from '@stencil/core';\nimport { throttle } from 'throttle-debounce';\nimport { clearAllBodyScrollLocks, disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { state } from '../../data/store';\nimport { CoveoCompletion } from '../../models/coveo.model';\nimport { GeocodeLocation } from '../../models/geocode.model';\nimport { TagManagerDataLayer } from '../../models/general.model';\nimport {\n DropdownElement,\n DropdownEvent,\n HasDropdown,\n ISearchRecommendation,\n IsFocusable,\n} from '../../models/header.model';\nimport { equalizeArrays, getSearchRedirectUrl } from '../../services/search/search.service';\nimport { getCoveoSuggestions } from '../../services/search/coveo.service';\nimport {\n getPlacesUrl,\n highlightPlacesString,\n queryPlaces,\n} from '../../services/search/places.service';\nimport { elementHasTransition, userPrefersReducedMotion } from '../../services/ui.service';\nimport { HighlightedText } from '../../utils/highlighted.component';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { TrackAndTraceInfo } from '../../models/track-and-trace.model';\nimport { getParcelSuggestion } from '../../services/search/parcel.service';\nimport { If } from '../../utils/if.component';\nimport { translate } from '../../services/language.service';\n\n@Component({\n tag: 'post-search',\n styleUrl: 'post-search.scss',\n shadow: true,\n})\nexport class PostSearch implements HasDropdown, IsFocusable {\n @State() searchDropdownOpen = false;\n @State() coveoSuggestions: CoveoCompletion[] = [];\n @State() placeSuggestions: GeocodeLocation[] = [];\n @State() parcelSuggestion: (TrackAndTraceInfo & { url: string }) | null = null;\n @Event() dropdownToggled: EventEmitter<DropdownEvent>;\n @Element() host: DropdownElement;\n private searchBox?: HTMLInputElement;\n private searchFlyout: HTMLElement | undefined;\n private throttledResize: throttle<() => void>;\n private clearButton?: HTMLButtonElement;\n\n connectedCallback() {\n this.throttledResize = throttle(300, () => this.handleResize());\n window.addEventListener('resize', this.throttledResize, { passive: true });\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.throttledResize);\n clearAllBodyScrollLocks();\n }\n\n componentWillUpdate() {\n // Check if search flyout got set to close\n if (this.searchFlyout && !this.searchDropdownOpen) {\n this.searchFlyout.classList.remove('open');\n\n // Check if element has transition applied and whether user prefers to see animations or not\n if (elementHasTransition(this.searchFlyout, 'transform') && !userPrefersReducedMotion()) {\n // Wait for CSS transition 'transform' to end before continuing\n return new Promise<boolean>(resolve => {\n if (this.searchFlyout === undefined) {\n return resolve(true);\n }\n\n this.searchFlyout.addEventListener('transitionend', event => {\n if (event.propertyName === 'transform') {\n resolve(true);\n }\n });\n });\n }\n }\n }\n\n componentDidUpdate() {\n // Search flyout got set to open\n if (this.searchFlyout && this.searchDropdownOpen) {\n // Force browser to redraw/refresh DOM before adding 'open' class\n this.searchFlyout.getBoundingClientRect();\n this.searchFlyout.classList.add('open');\n }\n\n // Focus on the searchBox whenever the dropdown is opened\n if (this.searchDropdownOpen && this.searchBox) {\n this.searchBox.focus({ preventScroll: true });\n }\n }\n\n public async toggleDropdown(event?: Event): Promise<boolean>;\n public async toggleDropdown(force?: boolean): Promise<boolean>;\n\n /**\n * Toggle the dropdown and optionally force an open/closed state\n * @param force Boolean to force open/closed state\n * @returns Boolean indicating open state of the component\n */\n @Method()\n async toggleDropdown(force?: unknown) {\n this.searchDropdownOpen =\n force === undefined || typeof force !== 'boolean' ? !this.searchDropdownOpen : force;\n this.dropdownToggled.emit({ open: this.searchDropdownOpen, element: this.host });\n\n if (!this.searchDropdownOpen) {\n // Reset suggestions when dropdown closes\n this.coveoSuggestions = [];\n this.placeSuggestions = [];\n if (this.searchBox) this.searchBox.value = '';\n void this.setFocus();\n } else {\n // Get basic suggestions when dropdown opens\n try {\n this.coveoSuggestions = await getCoveoSuggestions('');\n } catch {}\n }\n\n this.setBodyScroll();\n\n return this.searchDropdownOpen;\n }\n\n /**\n * Sets the focus on the search button\n */\n @Method()\n public async setFocus() {\n const shadowRoot = this.host.shadowRoot;\n if (shadowRoot === null) {\n return;\n }\n const toggleButton = shadowRoot.querySelector<HTMLElement>('.search-button');\n if (toggleButton) {\n toggleButton.focus();\n }\n }\n\n private handleResize() {\n // Only enable/disable body scroll on resize if the search dropdown is open, otherwise this could lead to side effects in other controls\n if (this.searchDropdownOpen) {\n this.setBodyScroll();\n }\n }\n\n /**\n * Disable or re-enable body scrolling, depending on whether search dropdown is open or closed in mobile view (width < 1024px)\n */\n private setBodyScroll() {\n if (!this.searchFlyout) {\n return;\n }\n\n if (this.searchDropdownOpen && window.innerWidth < 1024) {\n disableBodyScroll(this.searchFlyout);\n } else {\n enableBodyScroll(this.searchFlyout);\n }\n }\n\n /**\n * Fetch suggestions from all available sources\n */\n private async handleSearchInput() {\n if (this.searchBox === undefined || state.localizedConfig?.header.search === undefined) {\n return;\n }\n const query = this.searchBox.value.trim();\n\n // shows or hides clearButton depending on the content of the searchbar\n if (this.clearButton) {\n if (query !== '') {\n this.clearButton.style.visibility = 'visible';\n } else {\n this.clearButton.style.visibility = 'hidden';\n }\n }\n\n const [placeSuggestions, coveoSuggestions, trackAndTraceInfo] = await Promise.all([\n queryPlaces(query),\n getCoveoSuggestions(query),\n getParcelSuggestion(query, state.localizedConfig.header.search),\n ]);\n\n this.parcelSuggestion = trackAndTraceInfo;\n\n // Parcel suggestion is more important than any other\n if (trackAndTraceInfo) {\n this.placeSuggestions = [];\n this.coveoSuggestions = [];\n } else {\n [this.coveoSuggestions, this.placeSuggestions] = equalizeArrays(\n coveoSuggestions,\n placeSuggestions,\n 7,\n );\n }\n\n this.deselectSuggestion();\n }\n\n /**\n * clear Search box\n * calls handleSearchInput to update/remove suggestions\n */\n private handleClearSearchBox() {\n if (this.searchBox !== undefined) {\n this.searchBox.value = '';\n this.handleSearchInput();\n }\n }\n\n /**\n * Start search on enter\n * @param event\n */\n private handleKeyDown(event: KeyboardEvent) {\n if (this.searchFlyout === undefined) {\n return;\n }\n\n const selectedSuggestion = this.searchFlyout.querySelector<HTMLElement>(\n '.suggestions > li > a.selected',\n );\n const selectedHref = selectedSuggestion?.getAttribute('href') ?? null;\n const suggestions = this.searchFlyout.querySelectorAll('.suggestions > li > a');\n\n switch (event.key.toLowerCase()) {\n case 'enter':\n if (selectedHref !== null) {\n window.location.href = selectedHref;\n } else {\n void this.startSearch();\n }\n\n break;\n case 'arrowdown':\n this.deselectSuggestion();\n\n if (selectedSuggestion?.parentElement?.nextElementSibling?.firstElementChild) {\n // Select next suggestion if there's any, otherwise none will be selected\n selectedSuggestion.parentElement.nextElementSibling.firstElementChild.classList.add(\n 'selected',\n );\n // If there are any suggestions, select first suggestion in list\n } else if (suggestions.length > 0) {\n suggestions[0].classList.add('selected');\n }\n\n this.updateSearchBoxWithSuggestion();\n\n break;\n case 'arrowup':\n this.deselectSuggestion();\n\n if (selectedSuggestion?.parentElement?.previousElementSibling?.firstElementChild) {\n // Select previous suggestion if there's any, otherwise none will be selected\n\n selectedSuggestion.parentElement.previousElementSibling.firstElementChild.classList.add(\n 'selected',\n );\n // If there are any suggestions, select last suggestion in list\n } else if (suggestions.length > 0) {\n suggestions[suggestions.length - 1].classList.add('selected');\n }\n\n this.updateSearchBoxWithSuggestion();\n\n break;\n }\n }\n\n /**\n * Set selected suggestion on mouse enter\n * @param event\n */\n private handleMouseEnterSuggestion(event: MouseEvent) {\n this.deselectSuggestion();\n\n // Set hovered suggestion element as selected\n (event.target as HTMLElement).classList.add('selected');\n }\n\n /**\n * Set selected suggestion on mouse enter\n * @param event\n */\n private handleMouseLeaveSuggestions() {\n this.deselectSuggestion();\n }\n\n /**\n * Deselect any previously selected suggestion\n */\n private deselectSuggestion() {\n if (this.searchFlyout === undefined) return;\n\n const selectedSuggestion = this.searchFlyout.querySelector('.suggestions .selected');\n\n if (selectedSuggestion) {\n selectedSuggestion.classList.remove('selected');\n }\n }\n\n /**\n * Update search box with selected suggestion\n */\n private updateSearchBoxWithSuggestion() {\n if (this.searchFlyout === undefined) return;\n\n // Get the newly selected suggestion\n const selectedSuggestion = this.searchFlyout.querySelector<HTMLElement>(\n '.suggestions > li > a.selected',\n );\n const suggestedText = selectedSuggestion?.dataset.suggestionText;\n\n // Update search box value with selected suggestion text\n if (suggestedText !== undefined && this.searchBox) {\n this.searchBox.value = suggestedText;\n }\n }\n\n /**\n * Redirect to the post search page\n */\n private async startSearch() {\n if (this.searchBox && state.localizedConfig?.header.search) {\n const redirectUrl = await getSearchRedirectUrl(\n this.searchBox.value.trim(),\n state.localizedConfig.header.search,\n );\n if (!redirectUrl) return;\n window.location.href = redirectUrl;\n }\n }\n\n private trackRecommendationClick(recommendation: ISearchRecommendation) {\n if (!('dataLayer' in window)) return;\n\n const trackingAttributes = recommendation.additionalAttributes.reduce((acc, curr) => {\n acc[curr.name] = curr.value;\n return acc;\n }, {});\n\n (window.dataLayer as TagManagerDataLayer).push({\n event: trackingAttributes['data-event'],\n text: trackingAttributes['data-text'],\n link_url: trackingAttributes['data-linkurl'],\n label: trackingAttributes['data-label'],\n type: trackingAttributes['data-type'],\n });\n }\n\n render() {\n if (state.localizedConfig?.header === undefined) {\n return;\n }\n const { translations, search } = state.localizedConfig.header;\n const isParcelTrackingNr = this.parcelSuggestion && 'sending' in this.parcelSuggestion;\n const showPortalRecommendations =\n this.searchBox?.value === '' && search.searchRecommendations?.links.length > 0;\n\n return (\n <Host role=\"search\">\n <SvgSprite />\n <div class=\"search\">\n <button\n id=\"post-internet-header-search-button\"\n class=\"search-button\"\n type=\"button\"\n aria-expanded={`${this.searchDropdownOpen}`}\n onClick={e => void this.toggleDropdown(e)}\n >\n <span class=\"visually-hidden\">\n {this.searchDropdownOpen\n ? translations.searchToggleExpanded\n : translations.searchToggle}\n </span>\n <SvgIcon name={this.searchDropdownOpen ? 'pi-close' : 'pi-search'} />\n </button>\n <If condition={this.searchDropdownOpen}>\n <div class=\"flyout\" ref={e => (this.searchFlyout = e)}>\n <div class=\"container box\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-md-10 col-lg-8\">\n <div class=\"form-group form-floating\">\n <input\n type=\"text\"\n role=\"searchbox\"\n id=\"searchBox\"\n class=\"form-control form-control-lg\"\n placeholder={translations.flyoutSearchBoxFloatingLabel}\n autocomplete=\"off\"\n ref={el => (this.searchBox = el)}\n onInput={() => void this.handleSearchInput()}\n onKeyDown={e => this.handleKeyDown(e)}\n />\n <label htmlFor=\"searchBox\">{translations.flyoutSearchBoxFloatingLabel}</label>\n <button\n onClick={() => this.handleClearSearchBox()}\n class=\"clear-search-button\"\n type=\"reset\"\n id=\"clearButton\"\n ref={el => (this.clearButton = el)}\n >\n <span class=\"visually-hidden\">{translate('Delete search term')}</span>\n <SvgIcon name=\"pi-close\" />\n </button>\n <button onClick={() => void this.startSearch()} class=\"start-search-button\">\n <span class=\"visually-hidden\">{translations.searchSubmit}</span>\n <SvgIcon name=\"pi-search\" />\n </button>\n </div>\n {showPortalRecommendations && (\n <h2 id=\"post-internet-header-search-recommendations-title\" class=\"bold\">\n {search.searchRecommendations.title}\n </h2>\n )}\n <ul\n class=\"suggestions no-list\"\n onMouseLeave={() => this.handleMouseLeaveSuggestions()}\n aria-labelledby={\n showPortalRecommendations\n ? 'post-internet-header-search-recommendations-title'\n : undefined\n }\n >\n {showPortalRecommendations &&\n search.searchRecommendations.links.map(recommendation => (\n <li key={recommendation.href}>\n <a\n class=\"nav-link search-recommendation\"\n href={new URL(recommendation.href, 'https://post.ch').href}\n data-suggestion-text={recommendation.label}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n onClick={() => this.trackRecommendationClick(recommendation)}\n >\n <span\n class=\"search-recommendation__icon\"\n innerHTML={recommendation.inlineSvg}\n ></span>\n <span>{recommendation.label}</span>\n </a>\n </li>\n ))}\n {isParcelTrackingNr && (\n <li>\n <a\n class=\"nav-link parcel-suggestion\"\n href={this.parcelSuggestion!.url}\n data-suggestion-text={this.searchBox?.value}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-letter-parcel\" />\n <span class=\"bold\">{this.parcelSuggestion?.sending?.id}:&nbsp;</span>\n <span>\n {[\n this.parcelSuggestion?.sending?.product,\n ' ' + this.parcelSuggestion?.sending?.recipient.zipcode,\n ' ' + this.parcelSuggestion?.sending?.recipient.city,\n ', ' + this.parcelSuggestion?.sending?.state,\n ]\n .filter(s => s !== '' && s !== ' ')\n .join('')}\n </span>\n </a>\n </li>\n )}\n {!showPortalRecommendations &&\n this.coveoSuggestions &&\n this.coveoSuggestions.map(suggestion => (\n <li key={suggestion.objectId}>\n <a\n class=\"nav-link\"\n href={suggestion.redirectUrl}\n data-suggestion-text={suggestion.expression}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-search\" />\n <HighlightedText text={suggestion.highlighted} />\n </a>\n </li>\n ))}\n {!showPortalRecommendations &&\n this.placeSuggestions &&\n this.placeSuggestions.map(suggestion => (\n <li key={suggestion.id}>\n <a\n class=\"nav-link\"\n href={getPlacesUrl(suggestion)}\n data-suggestion-text={suggestion.name}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-place\" />\n <HighlightedText\n text={highlightPlacesString(\n this.searchBox?.value?.trim(),\n suggestion.name,\n )}\n />\n </a>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </div>\n </div>\n </If>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
- import { h, Host } from '@stencil/core';
2
- import { state } from '../../data/store';
3
- import { translate } from '../../services/language.service';
4
- import { SvgIcon } from '../../utils/svg-icon.component';
1
+ import { h, Host } from "@stencil/core";
2
+ import { state } from "../../data/store";
3
+ import { translate } from "../../services/language.service";
4
+ import { SvgIcon } from "../../utils/svg-icon.component";
5
5
  export class PostSkiplinks {
6
6
  getMainId() {
7
7
  var _a;
@@ -1,4 +1,4 @@
1
- import { createStore } from '@stencil/store';
1
+ import { createStore } from "@stencil/store";
2
2
  export const { state, reset, dispose } = createStore({
3
3
  projectId: null,
4
4
  currentLanguage: null,
@@ -1,13 +1,13 @@
1
- import { getUserLang, persistLanguageChoice } from './language.service';
2
- import { uniqueId } from '../utils/utils';
3
- import { markActiveRoute } from './route.service';
1
+ import { getUserLang, persistLanguageChoice } from "./language.service";
2
+ import { uniqueId } from "../utils/utils";
3
+ import { markActiveRoute } from "./route.service";
4
4
  // Prevent double requests
5
5
  let request = null;
6
6
  // Cache the original os flyout to use it for updates
7
7
  let osFlyoutCache = null;
8
8
  const getPPMConfig = () => {
9
9
  const ppmConfigScript = document.querySelector('#PPM_HEADER_DATA');
10
- if (ppmConfigScript === null || ppmConfigScript === void 0 ? void 0 : ppmConfigScript.textContent) {
10
+ if ((ppmConfigScript === null || ppmConfigScript === void 0 ? void 0 : ppmConfigScript.textContent) != null) {
11
11
  return JSON.parse(ppmConfigScript.textContent);
12
12
  }
13
13
  return null;
@@ -30,7 +30,7 @@ export const getLocalizedConfig = async ({ projectId, environment, language, coo
30
30
  lang = document.documentElement.lang;
31
31
  }
32
32
  else {
33
- if (!request) {
33
+ if (request == null) {
34
34
  request = fetchConfig(projectId, environment);
35
35
  }
36
36
  config = await request;
@@ -51,7 +51,7 @@ export const getLocalizedConfig = async ({ projectId, environment, language, coo
51
51
  if (osFlyoutOverrides)
52
52
  localizedConfig.header.navMain = mergeOsFlyoutOverrides(localizedConfig, osFlyoutOverrides);
53
53
  // Mark active route
54
- if (activeRouteProp)
54
+ if (activeRouteProp != null)
55
55
  localizedConfig.header.navMain = markActiveRoute(localizedConfig.header.navMain, activeRouteProp);
56
56
  setMainNavigationIds((_b = localizedConfig === null || localizedConfig === void 0 ? void 0 : localizedConfig.header) === null || _b === void 0 ? void 0 : _b.navMain);
57
57
  // Set the new language choice
@@ -65,7 +65,7 @@ export const getLocalizedConfig = async ({ projectId, environment, language, coo
65
65
  * @returns Merged localized config
66
66
  */
67
67
  export const mergeOsFlyoutOverrides = (config, osFlyoutOverrides) => {
68
- if (!osFlyoutOverrides)
68
+ if (osFlyoutOverrides == null)
69
69
  return config.header.navMain;
70
70
  return config.header.navMain.map(mainNav => {
71
71
  var _a, _b;
@@ -76,9 +76,9 @@ export const mergeOsFlyoutOverrides = (config, osFlyoutOverrides) => {
76
76
  }
77
77
  const mainNavText = (_a = osFlyoutOverrides.text) !== null && _a !== void 0 ? _a : osFlyoutCache.text;
78
78
  const mainNavTitle = (_b = osFlyoutOverrides.title) !== null && _b !== void 0 ? _b : osFlyoutCache.title;
79
- if (!osFlyoutCache.flyout ||
79
+ if (osFlyoutCache.flyout == null ||
80
80
  osFlyoutCache.flyout.length === 0 ||
81
- !osFlyoutOverrides.flyout ||
81
+ osFlyoutOverrides.flyout == null ||
82
82
  osFlyoutOverrides.flyout.length === 0)
83
83
  return Object.assign(Object.assign({}, mainNav), { title: mainNavTitle, text: mainNavText });
84
84
  // Add entries for os flyout columns without overriding existing config
@@ -87,7 +87,7 @@ export const mergeOsFlyoutOverrides = (config, osFlyoutOverrides) => {
87
87
  var _a;
88
88
  const overrides = osFlyoutOverrides.flyout[index];
89
89
  const title = (_a = overrides.title) !== null && _a !== void 0 ? _a : col.title;
90
- const linkList = overrides.linkList ? osFlyoutOverrides.flyout[index].linkList : [];
90
+ const linkList = overrides.linkList != null ? osFlyoutOverrides.flyout[index].linkList : [];
91
91
  return {
92
92
  title,
93
93
  linkList: [...col.linkList, ...linkList],
@@ -1 +1 @@
1
- {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/services/config.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Environment,\n IPortalConfig,\n ILocalizedConfig,\n ICustomConfig,\n ILocalizedCustomConfig,\n LocalizedConfigParameters,\n} from '../models/general.model';\nimport { NavMainEntity } from '../models/header.model';\nimport { getUserLang, persistLanguageChoice } from './language.service';\nimport { uniqueId } from '../utils/utils';\nimport { markActiveRoute } from './route.service';\n\n// Prevent double requests\nlet request: Promise<IPortalConfig> | null = null;\n\n// Cache the original os flyout to use it for updates\nlet osFlyoutCache: NavMainEntity | null = null;\n\nconst getPPMConfig = (): ILocalizedConfig | null => {\n const ppmConfigScript = document.querySelector('#PPM_HEADER_DATA');\n\n if (ppmConfigScript?.textContent) {\n return JSON.parse(ppmConfigScript.textContent);\n }\n\n return null;\n};\n\n/**\n * Get a localized config object\n *\n * @param projectId String identifying the project\n * @param language [optional] Preferred language\n * @returns Localized config object\n */\nexport const getLocalizedConfig = async ({\n projectId,\n environment,\n language,\n cookieKey,\n localStorageKey,\n activeRouteProp,\n localizedCustomConfig,\n osFlyoutOverrides,\n}: LocalizedConfigParameters): Promise<ILocalizedConfig> => {\n const ppmConfig = getPPMConfig();\n let localizedConfig: ILocalizedConfig;\n let config: IPortalConfig | null = null;\n let lang: string | undefined;\n\n if (ppmConfig) {\n localizedConfig = ppmConfig;\n lang = document.documentElement.lang;\n } else {\n if (!request) {\n request = fetchConfig(projectId, environment);\n }\n\n config = await request;\n lang = getUserLang(Object.keys(config), language, localStorageKey, cookieKey);\n\n if (lang === undefined) {\n throw new Error('Internet Header: unable to determine current language');\n }\n\n // Clone config for more predictable state updates\n localizedConfig = { ...config[lang] };\n }\n\n // Merge custom config with portal config\n if (localizedCustomConfig) {\n const header = localizedCustomConfig?.header?.navMain\n ? {\n ...localizedConfig.header,\n navMain: [...localizedConfig.header.navMain, ...localizedCustomConfig.header.navMain],\n }\n : localizedConfig.header;\n localizedConfig = {\n ...localizedConfig,\n header,\n };\n }\n\n // Add entries to flyout_os\n if (osFlyoutOverrides)\n localizedConfig.header.navMain = mergeOsFlyoutOverrides(localizedConfig, osFlyoutOverrides);\n\n // Mark active route\n if (activeRouteProp)\n localizedConfig.header.navMain = markActiveRoute(\n localizedConfig.header.navMain,\n activeRouteProp,\n );\n\n setMainNavigationIds(localizedConfig?.header?.navMain);\n\n // Set the new language choice\n persistLanguageChoice(lang, cookieKey, localStorageKey);\n\n return localizedConfig;\n};\n\n/**\n * Merge portal config with custom os flyout overrides\n * @param config Localized config\n * @param osFlyoutOverrides Overrides for the flyout\n * @returns Merged localized config\n */\nexport const mergeOsFlyoutOverrides = (\n config: ILocalizedConfig,\n osFlyoutOverrides: NavMainEntity,\n): NavMainEntity[] => {\n if (!osFlyoutOverrides) return config.header.navMain;\n\n return config.header.navMain.map(mainNav => {\n if (mainNav.id !== 'flyout_os') return mainNav;\n\n if (osFlyoutCache === null) {\n osFlyoutCache = JSON.parse(JSON.stringify(mainNav)) as NavMainEntity;\n }\n\n const mainNavText = osFlyoutOverrides.text ?? osFlyoutCache.text;\n const mainNavTitle = osFlyoutOverrides.title ?? osFlyoutCache.title;\n\n if (\n !osFlyoutCache.flyout ||\n osFlyoutCache.flyout.length === 0 ||\n !osFlyoutOverrides.flyout ||\n osFlyoutOverrides.flyout.length === 0\n )\n return {\n ...mainNav,\n title: mainNavTitle,\n text: mainNavText,\n };\n\n // Add entries for os flyout columns without overriding existing config\n const mainNavFlyout = [\n ...osFlyoutCache.flyout.map((col, index) => {\n const overrides = osFlyoutOverrides.flyout[index];\n const title = overrides.title ?? col.title;\n\n const linkList = overrides.linkList ? osFlyoutOverrides.flyout[index].linkList : [];\n\n return {\n title,\n linkList: [...col.linkList, ...linkList],\n };\n }),\n ...osFlyoutOverrides.flyout.slice(osFlyoutCache.flyout.length),\n ];\n\n return {\n ...mainNav,\n text: mainNavText,\n title: mainNavTitle,\n flyout: mainNavFlyout,\n } as NavMainEntity;\n });\n};\n\n/**\n * Fetch the general config based on project id\n *\n * @returns Promise for Post Portal general config\n */\nexport const fetchConfig = async (\n projectId: string,\n environment: Environment,\n): Promise<IPortalConfig> => {\n // Check if project id is sanitized\n if (!isValidProjectId(projectId)) {\n throw new Error(`Internet Header: invalid project id \"${projectId}\"`);\n }\n\n if (projectId === 'test') {\n environment = 'int01';\n }\n\n let url = generateConfigUrl(projectId, environment);\n\n // Get the config if cache is invalid\n try {\n const res = await fetch(url);\n return (await res.json()) as IPortalConfig;\n } catch (error) {\n throw new Error(`Internet Header: fetching config failed. ${error.message}`);\n }\n};\n\n/**\n * Generate an URL with all necessary query params to get the configuration.\n * Project id \"test\" will return a test configuration\n * @param projectId string\n * @param environment int01, int02 or prod\n * @returns URL pointing to the project config\n */\nexport const generateConfigUrl = (projectId: string, environment: Environment): string => {\n if (projectId === 'test') return 'assets/config/test-configuration.json';\n\n const parsedEnvironment = environment.toLowerCase();\n const isProd = parsedEnvironment === 'prod';\n const host = `https://${isProd ? 'www' : 'int'}.post.ch`;\n try {\n // Use URL to validate the generated URL\n return new URL(\n `${host}/api/headerjs/Json?serviceid=${encodeURIComponent(projectId)}${\n !isProd ? '&environment=' + parsedEnvironment : ''\n }`,\n ).toString();\n } catch (error) {\n throw new Error(`Internet Header: Config URL is invalid.`);\n }\n};\n\n/**\n * Check if project id contains only URL safe characters\n *\n * @param projectId Project Id string\n * @returns The valid project id\n */\nexport const isValidProjectId = (projectId: string): boolean => {\n return projectId !== '' && projectId.length > 0 && /^[a-zA-Z][\\w-]*[a-zA-Z0-9]$/.test(projectId);\n};\n\n/**\n * Get the localized config object from a custom config\n *\n * @param config String or json object of the custom config\n * @param language Specific language\n * @returns Localized custom config object\n */\nexport const getLocalizedCustomConfig = (\n config: string | ICustomConfig,\n language: string,\n): ILocalizedCustomConfig | undefined => {\n let customConfig: ICustomConfig;\n try {\n customConfig = typeof config === 'string' ? JSON.parse(config) : config;\n } catch (error) {\n throw new Error(\n `Internet Header: Custom config is invalid. Make sure your custom config contains valid JSON syntax and matches the definition. `,\n );\n }\n let localizedCustomConfig: ILocalizedCustomConfig | undefined = customConfig[language];\n if (localizedCustomConfig?.header?.navMain)\n setMainNavigationIds(localizedCustomConfig.header.navMain);\n return localizedCustomConfig;\n};\n\n/**\n * Check if mobile header styles are applied or not\n * @returns True if browser is smaller than 1024px\n */\nexport const isMobile = () => window.innerWidth < 1024;\n\n/**\n * Set unique ID's on main navigation entities but conserve flyout_os to be able to\n * identify the online-service flyout, which can be configured by osFlyoutOverrides\n */\nexport const setMainNavigationIds = (navMainEntities: NavMainEntity[]): void => {\n navMainEntities.forEach(navMainEntity => {\n navMainEntity.id = navMainEntity.id === 'flyout_os' ? navMainEntity.id : uniqueId('main-nav-');\n });\n};\n"]}
1
+ {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/services/config.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Environment,\n IPortalConfig,\n ILocalizedConfig,\n ICustomConfig,\n ILocalizedCustomConfig,\n LocalizedConfigParameters,\n} from '../models/general.model';\nimport { NavMainEntity } from '../models/header.model';\nimport { getUserLang, persistLanguageChoice } from './language.service';\nimport { uniqueId } from '../utils/utils';\nimport { markActiveRoute } from './route.service';\n\n// Prevent double requests\nlet request: Promise<IPortalConfig> | null = null;\n\n// Cache the original os flyout to use it for updates\nlet osFlyoutCache: NavMainEntity | null = null;\n\nconst getPPMConfig = (): ILocalizedConfig | null => {\n const ppmConfigScript = document.querySelector('#PPM_HEADER_DATA');\n\n if (ppmConfigScript?.textContent != null) {\n return JSON.parse(ppmConfigScript.textContent);\n }\n\n return null;\n};\n\n/**\n * Get a localized config object\n *\n * @param projectId String identifying the project\n * @param language [optional] Preferred language\n * @returns Localized config object\n */\nexport const getLocalizedConfig = async ({\n projectId,\n environment,\n language,\n cookieKey,\n localStorageKey,\n activeRouteProp,\n localizedCustomConfig,\n osFlyoutOverrides,\n}: LocalizedConfigParameters): Promise<ILocalizedConfig> => {\n const ppmConfig = getPPMConfig();\n let localizedConfig: ILocalizedConfig;\n let config: IPortalConfig | null = null;\n let lang: string | undefined;\n\n if (ppmConfig) {\n localizedConfig = ppmConfig;\n lang = document.documentElement.lang;\n } else {\n if (request == null) {\n request = fetchConfig(projectId, environment);\n }\n\n config = await request;\n lang = getUserLang(Object.keys(config), language, localStorageKey, cookieKey);\n\n if (lang === undefined) {\n throw new Error('Internet Header: unable to determine current language');\n }\n\n // Clone config for more predictable state updates\n localizedConfig = { ...config[lang] };\n }\n\n // Merge custom config with portal config\n if (localizedCustomConfig) {\n const header = localizedCustomConfig?.header?.navMain\n ? {\n ...localizedConfig.header,\n navMain: [...localizedConfig.header.navMain, ...localizedCustomConfig.header.navMain],\n }\n : localizedConfig.header;\n localizedConfig = {\n ...localizedConfig,\n header,\n };\n }\n\n // Add entries to flyout_os\n if (osFlyoutOverrides)\n localizedConfig.header.navMain = mergeOsFlyoutOverrides(localizedConfig, osFlyoutOverrides);\n\n // Mark active route\n if (activeRouteProp != null)\n localizedConfig.header.navMain = markActiveRoute(\n localizedConfig.header.navMain,\n activeRouteProp,\n );\n\n setMainNavigationIds(localizedConfig?.header?.navMain);\n\n // Set the new language choice\n persistLanguageChoice(lang, cookieKey, localStorageKey);\n\n return localizedConfig;\n};\n\n/**\n * Merge portal config with custom os flyout overrides\n * @param config Localized config\n * @param osFlyoutOverrides Overrides for the flyout\n * @returns Merged localized config\n */\nexport const mergeOsFlyoutOverrides = (\n config: ILocalizedConfig,\n osFlyoutOverrides: NavMainEntity,\n): NavMainEntity[] => {\n if (osFlyoutOverrides == null) return config.header.navMain;\n\n return config.header.navMain.map(mainNav => {\n if (mainNav.id !== 'flyout_os') return mainNav;\n\n if (osFlyoutCache === null) {\n osFlyoutCache = JSON.parse(JSON.stringify(mainNav)) as NavMainEntity;\n }\n\n const mainNavText = osFlyoutOverrides.text ?? osFlyoutCache.text;\n const mainNavTitle = osFlyoutOverrides.title ?? osFlyoutCache.title;\n\n if (\n osFlyoutCache.flyout == null ||\n osFlyoutCache.flyout.length === 0 ||\n osFlyoutOverrides.flyout == null ||\n osFlyoutOverrides.flyout.length === 0\n )\n return {\n ...mainNav,\n title: mainNavTitle,\n text: mainNavText,\n };\n\n // Add entries for os flyout columns without overriding existing config\n const mainNavFlyout = [\n ...osFlyoutCache.flyout.map((col, index) => {\n const overrides = osFlyoutOverrides.flyout[index];\n const title = overrides.title ?? col.title;\n\n const linkList = overrides.linkList != null ? osFlyoutOverrides.flyout[index].linkList : [];\n\n return {\n title,\n linkList: [...col.linkList, ...linkList],\n };\n }),\n ...osFlyoutOverrides.flyout.slice(osFlyoutCache.flyout.length),\n ];\n\n return {\n ...mainNav,\n text: mainNavText,\n title: mainNavTitle,\n flyout: mainNavFlyout,\n } as NavMainEntity;\n });\n};\n\n/**\n * Fetch the general config based on project id\n *\n * @returns Promise for Post Portal general config\n */\nexport const fetchConfig = async (\n projectId: string,\n environment: Environment,\n): Promise<IPortalConfig> => {\n // Check if project id is sanitized\n if (!isValidProjectId(projectId)) {\n throw new Error(`Internet Header: invalid project id \"${projectId}\"`);\n }\n\n if (projectId === 'test') {\n environment = 'int01';\n }\n\n let url = generateConfigUrl(projectId, environment);\n\n // Get the config if cache is invalid\n try {\n const res = await fetch(url);\n return (await res.json()) as IPortalConfig;\n } catch (error) {\n throw new Error(`Internet Header: fetching config failed. ${error.message}`);\n }\n};\n\n/**\n * Generate an URL with all necessary query params to get the configuration.\n * Project id \"test\" will return a test configuration\n * @param projectId string\n * @param environment int01, int02 or prod\n * @returns URL pointing to the project config\n */\nexport const generateConfigUrl = (projectId: string, environment: Environment): string => {\n if (projectId === 'test') return 'assets/config/test-configuration.json';\n\n const parsedEnvironment = environment.toLowerCase();\n const isProd = parsedEnvironment === 'prod';\n const host = `https://${isProd ? 'www' : 'int'}.post.ch`;\n try {\n // Use URL to validate the generated URL\n return new URL(\n `${host}/api/headerjs/Json?serviceid=${encodeURIComponent(projectId)}${\n !isProd ? '&environment=' + parsedEnvironment : ''\n }`,\n ).toString();\n } catch (error) {\n throw new Error(`Internet Header: Config URL is invalid.`);\n }\n};\n\n/**\n * Check if project id contains only URL safe characters\n *\n * @param projectId Project Id string\n * @returns The valid project id\n */\nexport const isValidProjectId = (projectId: string): boolean => {\n return projectId !== '' && projectId.length > 0 && /^[a-zA-Z][\\w-]*[a-zA-Z0-9]$/.test(projectId);\n};\n\n/**\n * Get the localized config object from a custom config\n *\n * @param config String or json object of the custom config\n * @param language Specific language\n * @returns Localized custom config object\n */\nexport const getLocalizedCustomConfig = (\n config: string | ICustomConfig,\n language: string,\n): ILocalizedCustomConfig | undefined => {\n let customConfig: ICustomConfig;\n try {\n customConfig = typeof config === 'string' ? JSON.parse(config) : config;\n } catch (error) {\n throw new Error(\n `Internet Header: Custom config is invalid. Make sure your custom config contains valid JSON syntax and matches the definition. `,\n );\n }\n let localizedCustomConfig: ILocalizedCustomConfig | undefined = customConfig[language];\n if (localizedCustomConfig?.header?.navMain)\n setMainNavigationIds(localizedCustomConfig.header.navMain);\n return localizedCustomConfig;\n};\n\n/**\n * Check if mobile header styles are applied or not\n * @returns True if browser is smaller than 1024px\n */\nexport const isMobile = () => window.innerWidth < 1024;\n\n/**\n * Set unique ID's on main navigation entities but conserve flyout_os to be able to\n * identify the online-service flyout, which can be configured by osFlyoutOverrides\n */\nexport const setMainNavigationIds = (navMainEntities: NavMainEntity[]): void => {\n navMainEntities.forEach(navMainEntity => {\n navMainEntity.id = navMainEntity.id === 'flyout_os' ? navMainEntity.id : uniqueId('main-nav-');\n });\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { translations } from '../assets/i18n/translations';
2
- import { state } from '../data/store';
1
+ import { translations } from "../assets/i18n/translations";
2
+ import { state } from "../data/store";
3
3
  export const getUserLang = (supportedLanguages, implementorPreferredLanguage, localStorageKey, cookieKey) => {
4
4
  // If there are no supported languages, well...
5
5
  if (supportedLanguages.length === 0) {
@@ -33,12 +33,12 @@ export const getUserLang = (supportedLanguages, implementorPreferredLanguage, lo
33
33
  getPreferredLanguageFromBrowser(supportedLanguages),
34
34
  // Check the state
35
35
  state.currentLanguage,
36
- ].filter((lang) => !!lang);
36
+ ].filter((lang) => lang != null);
37
37
  // Check the set of languages to see if it matches
38
38
  // any of the supported languages. Return the first
39
39
  // supported language if there is none set
40
40
  const lang = languagesSet.find(language => supportedLanguages.includes(language)) || supportedLanguages[0];
41
- if (!lang || lang.length !== 2) {
41
+ if (lang == null || lang.length !== 2) {
42
42
  throw new Error(`Current language could not be determined from settings or the language provided (${lang}) is not supported by the Header API.`);
43
43
  }
44
44
  return lang;
@@ -77,14 +77,14 @@ export const setCookie = (key, value) => {
77
77
  };
78
78
  const getPreferredLanguageFromBrowser = (supportedLanguages) => {
79
79
  // IE & Chrome
80
- if (navigator.language) {
80
+ if (navigator.language != null) {
81
81
  const lang = extractLanguage(navigator.language);
82
82
  if (supportedLanguages.indexOf(lang) !== -1) {
83
83
  return lang;
84
84
  }
85
85
  }
86
86
  // Chrome supports a list of preferred languages: if the preferred is not supported, we go down the list.
87
- if (navigator.languages) {
87
+ if (navigator.languages != null) {
88
88
  for (const l of navigator.languages) {
89
89
  const lang = extractLanguage(l);
90
90
  if (supportedLanguages.indexOf(lang) !== -1) {