@swisspost/internet-header 1.8.3-beta.1 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/dist/cjs/{klp-widget.controller-d86525e1.js → klp-widget.controller-8e2198a2.js} +8 -8
  2. package/dist/cjs/klp-widget.controller-8e2198a2.js.map +1 -0
  3. package/dist/cjs/{language.service-516d1809.js → language.service-9334ca5d.js} +7 -2
  4. package/dist/cjs/language.service-9334ca5d.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/post-klp-login-widget.cjs.entry.js +3 -3
  7. package/dist/cjs/post-klp-login-widget.cjs.entry.js.map +1 -1
  8. package/dist/cjs/post-language-switch.cjs.entry.js +3 -3
  9. package/dist/cjs/post-language-switch.cjs.entry.js.map +1 -1
  10. package/dist/cjs/post-logo.cjs.entry.js +2 -29
  11. package/dist/cjs/post-logo.cjs.entry.js.map +1 -1
  12. package/dist/cjs/post-main-navigation.cjs.entry.js +3 -3
  13. package/dist/cjs/post-main-navigation.cjs.entry.js.map +1 -1
  14. package/dist/cjs/post-meta-navigation.cjs.entry.js +2 -2
  15. package/dist/cjs/post-meta-navigation.cjs.entry.js.map +1 -1
  16. package/dist/cjs/post-search.cjs.entry.js +2 -2
  17. package/dist/cjs/post-search.cjs.entry.js.map +1 -1
  18. package/dist/cjs/post-skiplinks.cjs.entry.js +2 -2
  19. package/dist/cjs/{store-915e0360.js → store-b99affc1.js} +2 -1
  20. package/dist/cjs/store-b99affc1.js.map +1 -0
  21. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +3 -3
  22. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js.map +1 -1
  23. package/dist/cjs/swisspost-internet-footer.cjs.entry.js +20 -5
  24. package/dist/cjs/swisspost-internet-footer.cjs.entry.js.map +1 -1
  25. package/dist/cjs/swisspost-internet-header.cjs.entry.js +73 -20
  26. package/dist/cjs/swisspost-internet-header.cjs.entry.js.map +1 -1
  27. package/dist/cjs/swisspost-internet-header.cjs.js +1 -1
  28. package/dist/collection/assets/config/test-configuration.json +12 -12
  29. package/dist/collection/assets/i18n/translations.js +5 -0
  30. package/dist/collection/assets/i18n/translations.js.map +1 -1
  31. package/dist/collection/assets/js/klp-login-widget.js +7 -7
  32. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.css +61 -126
  33. package/dist/collection/components/post-internet-footer/post-internet-footer.css +26 -22
  34. package/dist/collection/components/post-internet-footer/post-internet-footer.js +20 -4
  35. package/dist/collection/components/post-internet-footer/post-internet-footer.js.map +1 -1
  36. package/dist/collection/components/post-internet-header/logo-animation/logo-animation.js +46 -0
  37. package/dist/collection/components/post-internet-header/logo-animation/logo-animation.js.map +1 -0
  38. package/dist/collection/components/post-internet-header/post-internet-header.css +27 -2
  39. package/dist/collection/components/post-internet-header/post-internet-header.js +13 -1
  40. package/dist/collection/components/post-internet-header/post-internet-header.js.map +1 -1
  41. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.css +23 -22
  42. package/dist/collection/components/post-language-switch/post-language-switch.css +5 -3
  43. package/dist/collection/components/post-logo/post-logo.css +6 -4
  44. package/dist/collection/components/post-logo/post-logo.js +0 -34
  45. package/dist/collection/components/post-logo/post-logo.js.map +1 -1
  46. package/dist/collection/components/post-main-navigation/post-main-navigation.css +6 -2
  47. package/dist/collection/components/post-meta-navigation/post-meta-navigation.css +15 -3
  48. package/dist/collection/components/post-search/post-search.css +6 -2
  49. package/dist/collection/data/store.js +1 -0
  50. package/dist/collection/data/store.js.map +1 -1
  51. package/dist/components/klp-widget.controller.js +7 -7
  52. package/dist/components/klp-widget.controller.js.map +1 -1
  53. package/dist/components/language.service.js +5 -0
  54. package/dist/components/language.service.js.map +1 -1
  55. package/dist/components/post-klp-login-widget2.js +1 -1
  56. package/dist/components/post-klp-login-widget2.js.map +1 -1
  57. package/dist/components/post-language-switch2.js +1 -1
  58. package/dist/components/post-language-switch2.js.map +1 -1
  59. package/dist/components/post-logo2.js +2 -31
  60. package/dist/components/post-logo2.js.map +1 -1
  61. package/dist/components/post-main-navigation2.js +1 -1
  62. package/dist/components/post-main-navigation2.js.map +1 -1
  63. package/dist/components/post-meta-navigation2.js +1 -1
  64. package/dist/components/post-meta-navigation2.js.map +1 -1
  65. package/dist/components/post-search2.js +1 -1
  66. package/dist/components/post-search2.js.map +1 -1
  67. package/dist/components/store.js +1 -0
  68. package/dist/components/store.js.map +1 -1
  69. package/dist/components/swisspost-internet-breadcrumbs.js +1 -1
  70. package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -1
  71. package/dist/components/swisspost-internet-footer.js +21 -5
  72. package/dist/components/swisspost-internet-footer.js.map +1 -1
  73. package/dist/components/swisspost-internet-header.js +65 -12
  74. package/dist/components/swisspost-internet-header.js.map +1 -1
  75. package/dist/esm/{klp-widget.controller-91f5dd0b.js → klp-widget.controller-e9029567.js} +8 -8
  76. package/dist/esm/klp-widget.controller-e9029567.js.map +1 -0
  77. package/dist/esm/{language.service-faf591b3.js → language.service-bd0f3b6f.js} +7 -2
  78. package/dist/esm/language.service-bd0f3b6f.js.map +1 -0
  79. package/dist/esm/loader.js +1 -1
  80. package/dist/esm/post-klp-login-widget.entry.js +3 -3
  81. package/dist/esm/post-klp-login-widget.entry.js.map +1 -1
  82. package/dist/esm/post-language-switch.entry.js +3 -3
  83. package/dist/esm/post-language-switch.entry.js.map +1 -1
  84. package/dist/esm/post-logo.entry.js +2 -29
  85. package/dist/esm/post-logo.entry.js.map +1 -1
  86. package/dist/esm/post-main-navigation.entry.js +3 -3
  87. package/dist/esm/post-main-navigation.entry.js.map +1 -1
  88. package/dist/esm/post-meta-navigation.entry.js +2 -2
  89. package/dist/esm/post-meta-navigation.entry.js.map +1 -1
  90. package/dist/esm/post-search.entry.js +2 -2
  91. package/dist/esm/post-search.entry.js.map +1 -1
  92. package/dist/esm/post-skiplinks.entry.js +2 -2
  93. package/dist/esm/{store-79377f91.js → store-44830922.js} +2 -1
  94. package/dist/esm/store-44830922.js.map +1 -0
  95. package/dist/esm/swisspost-internet-breadcrumbs.entry.js +3 -3
  96. package/dist/esm/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  97. package/dist/esm/swisspost-internet-footer.entry.js +20 -5
  98. package/dist/esm/swisspost-internet-footer.entry.js.map +1 -1
  99. package/dist/esm/swisspost-internet-header.entry.js +67 -14
  100. package/dist/esm/swisspost-internet-header.entry.js.map +1 -1
  101. package/dist/esm/swisspost-internet-header.js +1 -1
  102. package/dist/esm-es5/{klp-widget.controller-91f5dd0b.js → klp-widget.controller-e9029567.js} +2 -2
  103. package/dist/esm-es5/{klp-widget.controller-91f5dd0b.js.map → klp-widget.controller-e9029567.js.map} +1 -1
  104. package/dist/esm-es5/language.service-bd0f3b6f.js +2 -0
  105. package/dist/{swisspost-internet-header/p-3e6e0272.system.js.map → esm-es5/language.service-bd0f3b6f.js.map} +1 -1
  106. package/dist/esm-es5/loader.js +1 -1
  107. package/dist/esm-es5/loader.js.map +1 -1
  108. package/dist/esm-es5/post-klp-login-widget.entry.js +1 -1
  109. package/dist/esm-es5/post-klp-login-widget.entry.js.map +1 -1
  110. package/dist/esm-es5/post-language-switch.entry.js +1 -1
  111. package/dist/esm-es5/post-language-switch.entry.js.map +1 -1
  112. package/dist/esm-es5/post-logo.entry.js +1 -1
  113. package/dist/esm-es5/post-logo.entry.js.map +1 -1
  114. package/dist/esm-es5/post-main-navigation.entry.js +1 -1
  115. package/dist/esm-es5/post-main-navigation.entry.js.map +1 -1
  116. package/dist/esm-es5/post-meta-navigation.entry.js +1 -1
  117. package/dist/esm-es5/post-meta-navigation.entry.js.map +1 -1
  118. package/dist/esm-es5/post-search.entry.js +1 -1
  119. package/dist/esm-es5/post-search.entry.js.map +1 -1
  120. package/dist/esm-es5/post-skiplinks.entry.js +1 -1
  121. package/dist/esm-es5/{store-79377f91.js → store-44830922.js} +2 -2
  122. package/dist/esm-es5/store-44830922.js.map +1 -0
  123. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +2 -2
  124. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  125. package/dist/esm-es5/swisspost-internet-footer.entry.js +1 -1
  126. package/dist/esm-es5/swisspost-internet-footer.entry.js.map +1 -1
  127. package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
  128. package/dist/esm-es5/swisspost-internet-header.entry.js.map +1 -1
  129. package/dist/esm-es5/swisspost-internet-header.js +1 -1
  130. package/dist/esm-es5/swisspost-internet-header.js.map +1 -1
  131. package/dist/swisspost-internet-header/assets/config/test-configuration.json +12 -12
  132. package/dist/swisspost-internet-header/p-06d32a28.entry.js +7 -0
  133. package/dist/swisspost-internet-header/{p-1055564a.entry.js.map → p-06d32a28.entry.js.map} +1 -1
  134. package/dist/swisspost-internet-header/p-0dd2de97.entry.js +2 -0
  135. package/dist/swisspost-internet-header/p-0dd2de97.entry.js.map +1 -0
  136. package/dist/swisspost-internet-header/p-131078ce.system.entry.js +2 -0
  137. package/dist/swisspost-internet-header/p-131078ce.system.entry.js.map +1 -0
  138. package/dist/swisspost-internet-header/p-1ec4e0ee.system.js +2 -0
  139. package/dist/swisspost-internet-header/p-1ec4e0ee.system.js.map +1 -0
  140. package/dist/swisspost-internet-header/p-273fd39b.entry.js +2 -0
  141. package/dist/swisspost-internet-header/{p-bab5139b.entry.js.map → p-273fd39b.entry.js.map} +1 -1
  142. package/dist/swisspost-internet-header/p-3c8504b4.system.entry.js +2 -0
  143. package/dist/swisspost-internet-header/p-3c8504b4.system.entry.js.map +1 -0
  144. package/dist/swisspost-internet-header/p-4099b274.system.js +2 -0
  145. package/dist/swisspost-internet-header/p-4099b274.system.js.map +1 -0
  146. package/dist/swisspost-internet-header/{p-8eb05d18.js → p-459c3983.js} +2 -2
  147. package/dist/swisspost-internet-header/p-459c3983.js.map +1 -0
  148. package/dist/swisspost-internet-header/p-51c15273.entry.js +2 -0
  149. package/dist/swisspost-internet-header/p-51c15273.entry.js.map +1 -0
  150. package/dist/swisspost-internet-header/p-5b233b42.entry.js +2 -0
  151. package/dist/swisspost-internet-header/{p-df51fa24.entry.js.map → p-5b233b42.entry.js.map} +1 -1
  152. package/dist/swisspost-internet-header/p-5d893017.system.js +1 -1
  153. package/dist/swisspost-internet-header/p-5d893017.system.js.map +1 -1
  154. package/dist/swisspost-internet-header/{p-24aba4ed.system.js → p-6426cae8.system.js} +2 -2
  155. package/dist/swisspost-internet-header/{p-24aba4ed.system.js.map → p-6426cae8.system.js.map} +1 -1
  156. package/dist/swisspost-internet-header/p-6bb07a80.entry.js +2 -0
  157. package/dist/swisspost-internet-header/p-6bb07a80.entry.js.map +1 -0
  158. package/dist/swisspost-internet-header/{p-bedb8e58.system.entry.js → p-6f69aff4.system.entry.js} +2 -2
  159. package/dist/swisspost-internet-header/p-7bed0797.js +2 -0
  160. package/dist/swisspost-internet-header/p-7bed0797.js.map +1 -0
  161. package/dist/swisspost-internet-header/p-811b9615.entry.js +2 -0
  162. package/dist/swisspost-internet-header/{p-4ae35141.entry.js.map → p-811b9615.entry.js.map} +1 -1
  163. package/dist/swisspost-internet-header/p-84f78f40.system.entry.js +2 -0
  164. package/dist/swisspost-internet-header/{p-b8ea3c0a.system.entry.js.map → p-84f78f40.system.entry.js.map} +1 -1
  165. package/dist/swisspost-internet-header/{p-77f72b8d.js → p-8ad474a9.js} +2 -2
  166. package/dist/swisspost-internet-header/{p-77f72b8d.js.map → p-8ad474a9.js.map} +1 -1
  167. package/dist/swisspost-internet-header/p-97c90e22.system.entry.js +7 -0
  168. package/dist/swisspost-internet-header/{p-b7d03cb1.system.entry.js.map → p-97c90e22.system.entry.js.map} +1 -1
  169. package/dist/swisspost-internet-header/p-9ab24fb3.entry.js +2 -0
  170. package/dist/swisspost-internet-header/p-9ab24fb3.entry.js.map +1 -0
  171. package/dist/swisspost-internet-header/{p-ed043df2.entry.js → p-9ec1f474.entry.js} +2 -2
  172. package/dist/swisspost-internet-header/p-a366648c.system.entry.js +2 -0
  173. package/dist/swisspost-internet-header/{p-eccdad3c.system.entry.js.map → p-a366648c.system.entry.js.map} +1 -1
  174. package/dist/swisspost-internet-header/p-b33e74a6.entry.js +2 -0
  175. package/dist/swisspost-internet-header/p-b33e74a6.entry.js.map +1 -0
  176. package/dist/swisspost-internet-header/p-d6a99399.system.entry.js +2 -0
  177. package/dist/swisspost-internet-header/p-d6a99399.system.entry.js.map +1 -0
  178. package/dist/swisspost-internet-header/p-e1fa55e3.system.entry.js +2 -0
  179. package/dist/swisspost-internet-header/{p-4bd302a5.system.entry.js.map → p-e1fa55e3.system.entry.js.map} +1 -1
  180. package/dist/swisspost-internet-header/p-e2df6e93.system.entry.js +2 -0
  181. package/dist/swisspost-internet-header/p-e2df6e93.system.entry.js.map +1 -0
  182. package/dist/swisspost-internet-header/p-fed8d74d.system.entry.js +2 -0
  183. package/dist/swisspost-internet-header/p-fed8d74d.system.entry.js.map +1 -0
  184. package/dist/swisspost-internet-header/swisspost-internet-header.css +3 -1
  185. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
  186. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js.map +1 -1
  187. package/dist/types/assets/i18n/translations.d.ts +5 -0
  188. package/dist/types/components/post-internet-footer/post-internet-footer.d.ts +3 -0
  189. package/dist/types/components/post-internet-header/logo-animation/logo-animation.d.ts +1 -0
  190. package/dist/types/components/post-internet-header/post-internet-header.d.ts +4 -1
  191. package/dist/types/components/post-logo/post-logo.d.ts +0 -7
  192. package/dist/types/data/store.d.ts +2 -0
  193. package/dist/types/services/language.service.d.ts +5 -0
  194. package/package.json +8 -8
  195. package/dist/cjs/klp-widget.controller-d86525e1.js.map +0 -1
  196. package/dist/cjs/language.service-516d1809.js.map +0 -1
  197. package/dist/cjs/store-915e0360.js.map +0 -1
  198. package/dist/collection/services/config.service.spec.js +0 -274
  199. package/dist/collection/services/config.service.spec.js.map +0 -1
  200. package/dist/collection/services/route.service.spec.js +0 -109
  201. package/dist/collection/services/route.service.spec.js.map +0 -1
  202. package/dist/collection/services/search/search.service.spec.js +0 -49
  203. package/dist/collection/services/search/search.service.spec.js.map +0 -1
  204. package/dist/collection/tests/setup-tests.js +0 -14
  205. package/dist/collection/tests/setup-tests.js.map +0 -1
  206. package/dist/collection/utils/utils.spec.js +0 -11
  207. package/dist/collection/utils/utils.spec.js.map +0 -1
  208. package/dist/esm/klp-widget.controller-91f5dd0b.js.map +0 -1
  209. package/dist/esm/language.service-faf591b3.js.map +0 -1
  210. package/dist/esm/store-79377f91.js.map +0 -1
  211. package/dist/esm-es5/language.service-faf591b3.js +0 -2
  212. package/dist/esm-es5/language.service-faf591b3.js.map +0 -1
  213. package/dist/esm-es5/store-79377f91.js.map +0 -1
  214. package/dist/swisspost-internet-header/p-1055564a.entry.js +0 -7
  215. package/dist/swisspost-internet-header/p-30669cd6.entry.js +0 -2
  216. package/dist/swisspost-internet-header/p-30669cd6.entry.js.map +0 -1
  217. package/dist/swisspost-internet-header/p-31881c83.system.entry.js +0 -2
  218. package/dist/swisspost-internet-header/p-31881c83.system.entry.js.map +0 -1
  219. package/dist/swisspost-internet-header/p-36d624d3.entry.js +0 -2
  220. package/dist/swisspost-internet-header/p-36d624d3.entry.js.map +0 -1
  221. package/dist/swisspost-internet-header/p-3e6e0272.system.js +0 -2
  222. package/dist/swisspost-internet-header/p-41e08c10.system.entry.js +0 -2
  223. package/dist/swisspost-internet-header/p-41e08c10.system.entry.js.map +0 -1
  224. package/dist/swisspost-internet-header/p-4ae35141.entry.js +0 -2
  225. package/dist/swisspost-internet-header/p-4bd302a5.system.entry.js +0 -2
  226. package/dist/swisspost-internet-header/p-541c204b.entry.js +0 -2
  227. package/dist/swisspost-internet-header/p-541c204b.entry.js.map +0 -1
  228. package/dist/swisspost-internet-header/p-8078bb3c.entry.js +0 -2
  229. package/dist/swisspost-internet-header/p-8078bb3c.entry.js.map +0 -1
  230. package/dist/swisspost-internet-header/p-8d12fe0c.system.entry.js +0 -2
  231. package/dist/swisspost-internet-header/p-8d12fe0c.system.entry.js.map +0 -1
  232. package/dist/swisspost-internet-header/p-8d5f4d78.entry.js +0 -2
  233. package/dist/swisspost-internet-header/p-8d5f4d78.entry.js.map +0 -1
  234. package/dist/swisspost-internet-header/p-8eb05d18.js.map +0 -1
  235. package/dist/swisspost-internet-header/p-b6f237a1.system.entry.js +0 -2
  236. package/dist/swisspost-internet-header/p-b6f237a1.system.entry.js.map +0 -1
  237. package/dist/swisspost-internet-header/p-b7d03cb1.system.entry.js +0 -7
  238. package/dist/swisspost-internet-header/p-b8ea3c0a.system.entry.js +0 -2
  239. package/dist/swisspost-internet-header/p-bab5139b.entry.js +0 -2
  240. package/dist/swisspost-internet-header/p-df51fa24.entry.js +0 -2
  241. package/dist/swisspost-internet-header/p-e057071d.js +0 -2
  242. package/dist/swisspost-internet-header/p-e057071d.js.map +0 -1
  243. package/dist/swisspost-internet-header/p-eccdad3c.system.entry.js +0 -2
  244. package/dist/swisspost-internet-header/p-f445483f.system.entry.js +0 -2
  245. package/dist/swisspost-internet-header/p-f445483f.system.entry.js.map +0 -1
  246. package/dist/swisspost-internet-header/p-fa230c6b.system.js +0 -2
  247. package/dist/swisspost-internet-header/p-fa230c6b.system.js.map +0 -1
  248. package/dist/types/tests/setup-tests.d.ts +0 -0
  249. /package/dist/swisspost-internet-header/{p-bedb8e58.system.entry.js.map → p-6f69aff4.system.entry.js.map} +0 -0
  250. /package/dist/swisspost-internet-header/{p-ed043df2.entry.js.map → p-9ec1f474.entry.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{h as t,r as o,c as e,H as n,g as i}from"./p-8e0a4d18.js";import{S as r}from"./p-b762fba9.js";import{S as s}from"./p-11d05acc.js";import{s as a}from"./p-459c3983.js";import{e as l,u as d}from"./p-45db66a6.js";import{t as f}from"./p-7bed0797.js";const p=o=>{var e;if(((e=a.localizedConfig)===null||e===void 0?void 0:e.header)===undefined)return;const n=a.localizedConfig.header;return t("nav",{class:"language-switch-dropdown",ref:t=>o.dropdownRef(t),"aria-label":n.translations.navLangAriaLabel},t("ul",{"aria-label":f("Change language")},o.navLang.filter((t=>!t.isCurrent)).map((e=>{const n=e.url?"a":"button";return t("li",{key:e.lang},t(n,{onClick:()=>o.switchLanguage(e),href:e.url,lang:e.lang,title:e.title},t("span",{class:"visually-hidden"},e.title),t("span",{"aria-hidden":"true"},e.text)))}))))};const g='@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:transparent;border:none;border-radius:0;padding:0}.nav-link,.language-switch-dropdown a,.language-switch-dropdown button{outline:none;outline-offset:2px;text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.nav-link:is(:focus-visible,:focus-within,.pretend-focus),.language-switch-dropdown a:is(:focus-visible,:focus-within,.pretend-focus),.language-switch-dropdown button:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.nav-link:hover,.language-switch-dropdown a:hover,.language-switch-dropdown button:hover,.nav-link:focus,.language-switch-dropdown a:focus,.language-switch-dropdown button:focus{color:black}.nav-link:focus-visible,.language-switch-dropdown a:focus-visible,.language-switch-dropdown button:focus-visible{z-index:1;position:relative}.nav-link>svg,.language-switch-dropdown a>svg,.language-switch-dropdown button>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.nav-link>span,.language-switch-dropdown a>span,.language-switch-dropdown button>span{-ms-flex-negative:1;flex-shrink:1}.no-list,.language-switch-dropdown ul{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", 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:white}}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}@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{--separator-display:none;--separator-height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;align-self:stretch}:host::before{position:relative;content:"";display:var(--separator-display);height:var(--separator-height);border-left:1px solid hsl(0, 0%, 90%)}.lang-btn{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:100%;padding:0 1rem;border:none;-webkit-box-shadow:none;box-shadow:none;background:none;text-transform:uppercase;cursor:pointer;color:rgba(0, 0, 0, 0.8)}.lang-btn:hover,.lang-btn:focus{color:black;position:relative;z-index:1}.lang-btn svg{width:1.5em;height:1.5em;-webkit-transition:-webkit-transform 250ms;transition:-webkit-transform 250ms;transition:transform 250ms;transition:transform 250ms, -webkit-transform 250ms}.lang-btn svg.rotated{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.language-switch{position:relative;-ms-flex-item-align:stretch;align-self:stretch;height:100%}.language-switch.list{margin-top:1.5rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.current-language{text-transform:uppercase;border-right:1px solid hsl(0, 0%, 80%);padding:0.5rem 1rem 0.5rem 0}.dropdown .language-switch-dropdown{position:absolute;top:100%;width:100%;background:white;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2), 0 2px 6px 2px rgba(0, 0, 0, 0.1);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2), 0 2px 6px 2px rgba(0, 0, 0, 0.1);z-index:1;-webkit-transform:scale(0.1);transform:scale(0.1);-webkit-transform-origin:center top;transform-origin:center top;-webkit-transition:-webkit-transform 0.1s;transition:-webkit-transform 0.1s;transition:transform 0.1s;transition:transform 0.1s, -webkit-transform 0.1s;margin-top:var(--language-dropdown-margin-top)}@media (prefers-reduced-motion: reduce){.dropdown .language-switch-dropdown{-webkit-transition:none;transition:none}}.dropdown .language-switch-dropdown.open{-webkit-transform:scale(1);transform:scale(1)}.list .language-switch-dropdown ul{display:-ms-flexbox;display:flex}.list .language-switch-dropdown ul>li+li{border-left:1px solid hsl(0, 0%, 80%)}.language-switch-dropdown a,.language-switch-dropdown button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:3rem;padding:0 0.25rem;text-transform:uppercase;cursor:pointer;-webkit-transition:background-color 200ms, color 200ms;transition:background-color 200ms, color 200ms}.language-switch-dropdown a:hover,.language-switch-dropdown a:focus,.language-switch-dropdown button:hover,.language-switch-dropdown button:focus{background:#f4f3f1}.language-switch-dropdown a span,.language-switch-dropdown button span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.list .language-switch-dropdown a,.list .language-switch-dropdown button{color:black;height:auto;padding:0.5rem 1rem}';const u=class{constructor(t){o(this,t);this.dropdownToggled=e(this,"dropdownToggled",7);this.languageChanged=e(this,"languageChanged",7);this.mode=undefined;this.langSwitchOpen=false}componentWillUpdate(){if(this.languageSwitchDropdown&&!this.langSwitchOpen&&this.mode=="dropdown"){this.languageSwitchDropdown.classList.remove("open");if(l(this.languageSwitchDropdown,"transform")&&!d()){return new Promise((t=>{var o;(o=this.languageSwitchDropdown)===null||o===void 0?void 0:o.addEventListener("transitionend",(o=>{if(o.propertyName==="transform"){t(true)}}))}))}}}componentDidUpdate(){if(this.languageSwitchDropdown&&this.langSwitchOpen){this.languageSwitchDropdown.getBoundingClientRect();this.languageSwitchDropdown.classList.add("open")}}async toggleDropdown(t){this.langSwitchOpen=t!==null&&t!==void 0?t:!this.langSwitchOpen;this.dropdownToggled.emit({open:this.langSwitchOpen,element:this.host});return this.langSwitchOpen}switchLanguage(t){this.languageChanged.emit(t.lang);this.toggleDropdown(false)}getMergedLanguageConfig(t,o){if(o===undefined){return t}return t.map((t=>Object.assign({},t,o.find((o=>o.lang===t.lang)))))}setDropdownRef(t){this.languageSwitchDropdown=t}render(){var o;if(((o=a.localizedConfig)===null||o===void 0?void 0:o.header)===undefined)return;const e=a.localizedConfig.header;const i=this.getMergedLanguageConfig(e.navLang,a.languageSwitchOverrides);return t(n,null,t("div",{class:`language-switch ${this.mode}`},t(r,null),this.mode==="dropdown"?t("button",{class:"lang-btn","aria-expanded":`${this.langSwitchOpen}`,"aria-haspopup":"listbox",onClick:()=>this.toggleDropdown()},t("span",{class:"visually-hidden"},e.translations.navLangAriaLabel,", ",f("Current language is English")),t("span",{"aria-hidden":"true"},a.currentLanguage),t(s,{name:"pi-arrow-down",classNames:this.langSwitchOpen?"rotated":""})):t("span",{class:"bold current-language"},t("span",{class:"visually-hidden"},f("Current language is English")),t("span",null,a.currentLanguage)),this.langSwitchOpen||this.mode==="list"?t(p,{navLang:i,switchLanguage:t=>this.switchLanguage(t),dropdownRef:t=>t!==undefined&&this.setDropdownRef(t)}):null))}get host(){return i(this)}};u.style=g;export{u as post_language_switch};
2
+ //# sourceMappingURL=p-0dd2de97.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PostLanguageSwitchList","props","_a","state","localizedConfig","header","undefined","config","h","class","ref","e","dropdownRef","translations","navLangAriaLabel","translate","navLang","filter","lang","isCurrent","map","TagName","url","key","onClick","switchLanguage","href","title","text","postLanguageSwitchCss","PostLanguageSwitch","componentWillUpdate","this","languageSwitchDropdown","langSwitchOpen","mode","classList","remove","elementHasTransition","userPrefersReducedMotion","Promise","resolve","addEventListener","event","propertyName","componentDidUpdate","getBoundingClientRect","add","async","force","dropdownToggled","emit","open","element","host","newLang","languageChanged","toggleDropdown","getMergedLanguageConfig","overrides","langConfig","Object","assign","find","l","setDropdownRef","render","mergedConfig","languageSwitchOverrides","Host","SvgSprite","currentLanguage","SvgIcon","name","classNames"],"sources":["./src/components/post-language-switch/components/post-language-switch-list.tsx","./src/components/post-language-switch/post-language-switch.scss?tag=post-language-switch&encapsulation=shadow","./src/components/post-language-switch/post-language-switch.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { NavLangEntity } from '../../../models/header.model';\nimport { translate } from '../../../services/language.service';\nimport { state } from '../../../data/store';\n\nexport const PostLanguageSwitchList = (props: {\n navLang: NavLangEntity[];\n switchLanguage: (lang: NavLangEntity) => void;\n dropdownRef: (element: HTMLElement | undefined) => void;\n}) => {\n if (state.localizedConfig?.header === undefined) return;\n const config = state.localizedConfig.header;\n\n return (\n <nav\n class=\"language-switch-dropdown\"\n ref={e => props.dropdownRef(e)}\n aria-label={config.translations.navLangAriaLabel}\n >\n <ul aria-label={translate('Change language')}>\n {props.navLang\n .filter(lang => !lang.isCurrent)\n .map(lang => {\n const TagName = lang.url ? 'a' : 'button';\n return (\n <li key={lang.lang}>\n <TagName\n onClick={() => props.switchLanguage(lang)}\n href={lang.url}\n lang={lang.lang}\n title={lang.title}\n >\n <span class=\"visually-hidden\">{lang.title}</span>\n <span aria-hidden=\"true\">{lang.text}</span>\n </TagName>\n </li>\n );\n })}\n </ul>\n </nav>\n );\n};\n","@use '@swisspost/design-system-styles/variables/color';\n@use '@swisspost/design-system-styles/functions';\n@use '../../utils/utils.scss';\n\n:host {\n --separator-display: none;\n --separator-height: 100%;\n\n display: flex;\n align-items: center;\n align-self: stretch;\n\n &::before {\n position: relative;\n content: '';\n display: var(--separator-display);\n height: var(--separator-height);\n border-left: 1px solid color.$gray-10;\n }\n}\n\n.lang-btn {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 1rem;\n border: none;\n box-shadow: none;\n background: none;\n text-transform: uppercase;\n cursor: pointer;\n color: rgba(color.$black, 0.8);\n\n &:hover,\n &:focus {\n color: black;\n position: relative;\n z-index: 1;\n }\n\n svg {\n width: 1.5em;\n height: 1.5em;\n transition: transform 250ms;\n\n &.rotated {\n transform: rotate(180deg);\n }\n }\n}\n\n.language-switch {\n position: relative;\n align-self: stretch;\n height: 100%;\n\n &.list {\n margin-top: 1.5rem;\n display: flex;\n align-items: center;\n }\n}\n\n.current-language {\n text-transform: uppercase;\n border-right: 1px solid color.$gray-20;\n padding: 0.5rem 1rem 0.5rem 0;\n}\n\n.language-switch-dropdown {\n .dropdown & {\n position: absolute;\n top: 100%;\n width: 100%;\n background: white;\n box-shadow: 0 1px 2px rgb(0 0 0 / 20%), 0 2px 6px 2px rgb(0 0 0 / 10%);\n z-index: 1;\n transform: scale(0.1);\n transform-origin: center top;\n transition: transform 0.1s;\n margin-top: var(--language-dropdown-margin-top);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &.open {\n transform: scale(1);\n }\n }\n\n ul {\n @extend %no-list;\n\n .list & {\n display: flex;\n\n > li + li {\n border-left: 1px solid color.$gray-20;\n }\n }\n }\n\n a,\n button {\n @extend %nav-link;\n\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: functions.px-to-rem(48px);\n padding: 0 0.25rem;\n text-transform: uppercase;\n cursor: pointer;\n transition: background-color 200ms, color 200ms;\n\n &:hover,\n &:focus {\n background: color.$gray-background;\n }\n\n span {\n // Worst case scenario\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n .list & {\n color: black;\n height: auto;\n padding: 0.5rem 1rem;\n }\n }\n}\n","import {\n Component,\n Event,\n Host,\n h,\n Method,\n EventEmitter,\n State,\n Prop,\n Element,\n} from '@stencil/core';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { state } from '../../data/store';\nimport {\n DropdownElement,\n DropdownEvent,\n HasDropdown,\n NavLangEntity,\n} from '../../models/header.model';\nimport { userPrefersReducedMotion, elementHasTransition } from '../../services/ui.service';\nimport { translate } from '../../services/language.service';\nimport { PostLanguageSwitchList } from './components/post-language-switch-list';\nimport { IAvailableLanguage } from '../../models/language.model';\n\n@Component({\n tag: 'post-language-switch',\n styleUrl: 'post-language-switch.scss',\n shadow: true,\n})\nexport class PostLanguageSwitch implements HasDropdown {\n @Prop() mode: 'dropdown' | 'list';\n @State() langSwitchOpen = false;\n @Element() host: DropdownElement;\n @Event() dropdownToggled: EventEmitter<DropdownEvent>;\n @Event({ bubbles: true }) languageChanged: EventEmitter<string>;\n private languageSwitchDropdown: HTMLElement | undefined;\n\n componentWillUpdate() {\n // Check if language switch got set to close and if mode is dropdown\n if (this.languageSwitchDropdown && !this.langSwitchOpen && this.mode == 'dropdown') {\n this.languageSwitchDropdown.classList.remove('open');\n\n // Check if element has transition applied and whether user prefers to see animations or not\n if (\n elementHasTransition(this.languageSwitchDropdown, 'transform') &&\n !userPrefersReducedMotion()\n ) {\n // Wait for CSS transition 'transform' to end before continuing\n return new Promise<boolean>(resolve => {\n this.languageSwitchDropdown?.addEventListener('transitionend', event => {\n if (event.propertyName === 'transform') {\n resolve(true);\n }\n });\n });\n }\n }\n }\n\n componentDidUpdate() {\n // Language switch got set to open\n if (this.languageSwitchDropdown && this.langSwitchOpen) {\n // Force browser to redraw/refresh DOM before adding 'open' class\n this.languageSwitchDropdown.getBoundingClientRect();\n this.languageSwitchDropdown.classList.add('open');\n }\n }\n\n /**\n * Open or close the language switch programatically\n * @param force Boolean to force a state\n * @returns Boolean indicating new state\n */\n @Method()\n async toggleDropdown(force?: boolean) {\n this.langSwitchOpen = force ?? !this.langSwitchOpen;\n this.dropdownToggled.emit({ open: this.langSwitchOpen, element: this.host });\n return this.langSwitchOpen;\n }\n\n /**\n * Emit a language change to the parent component\n *\n * @param newLang Config of the new language\n */\n switchLanguage(newLang: NavLangEntity) {\n this.languageChanged.emit(newLang.lang);\n this.toggleDropdown(false);\n }\n\n private getMergedLanguageConfig(config: NavLangEntity[], overrides?: IAvailableLanguage[]) {\n if (overrides === undefined) {\n return config;\n }\n\n return config.map(langConfig =>\n Object.assign(\n {},\n langConfig,\n overrides.find(l => l.lang === langConfig.lang),\n ),\n );\n }\n\n private setDropdownRef(element: HTMLElement | undefined) {\n this.languageSwitchDropdown = element;\n }\n\n render() {\n if (state.localizedConfig?.header === undefined) return;\n const config = state.localizedConfig.header;\n const mergedConfig = this.getMergedLanguageConfig(\n config.navLang,\n state.languageSwitchOverrides,\n );\n\n return (\n <Host>\n <div class={`language-switch ${this.mode}`}>\n <SvgSprite />\n {this.mode === 'dropdown' ? (\n <button\n class=\"lang-btn\"\n aria-expanded={`${this.langSwitchOpen}`}\n aria-haspopup=\"listbox\"\n onClick={() => this.toggleDropdown()}\n >\n <span class=\"visually-hidden\">\n {config.translations.navLangAriaLabel}, {translate('Current language is English')}\n </span>\n <span aria-hidden=\"true\">{state.currentLanguage}</span>\n <SvgIcon name=\"pi-arrow-down\" classNames={this.langSwitchOpen ? 'rotated' : ''} />\n </button>\n ) : (\n <span class=\"bold current-language\">\n <span class=\"visually-hidden\">{translate('Current language is English')}</span>\n <span>{state.currentLanguage}</span>\n </span>\n )}\n {this.langSwitchOpen || this.mode === 'list' ? (\n <PostLanguageSwitchList\n navLang={mergedConfig}\n switchLanguage={e => this.switchLanguage(e)}\n dropdownRef={e => e !== undefined && this.setDropdownRef(e)}\n />\n ) : null}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ var __awaiter=this&&this.__awaiter||function(t,e,n,o){function i(t){return t instanceof n?t:new n((function(e){e(t)}))}return new(n||(n=Promise))((function(n,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o["throw"](t))}catch(t){r(t)}}function l(t){t.done?n(t.value):i(t.value).then(a,s)}l((o=o.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var n={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},o,i,r,a;return a={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function s(t){return function(e){return l([t,e])}}function l(s){if(o)throw new TypeError("Generator is already executing.");while(a&&(a=0,s[0]&&(n=0)),n)try{if(o=1,i&&(r=s[0]&2?i["return"]:s[0]?i["throw"]||((r=i["return"])&&r.call(i),0):i.next)&&!(r=r.call(i,s[1])).done)return r;if(i=0,r)s=[s[0]&2,r.value];switch(s[0]){case 0:case 1:r=s;break;case 4:n.label++;return{value:s[1],done:false};case 5:n.label++;i=s[1];s=[0];continue;case 7:s=n.ops.pop();n.trys.pop();continue;default:if(!(r=n.trys,r=r.length>0&&r[r.length-1])&&(s[0]===6||s[0]===2)){n=0;continue}if(s[0]===3&&(!r||s[1]>r[0]&&s[1]<r[3])){n.label=s[1];break}if(s[0]===6&&n.label<r[1]){n.label=r[1];r=s;break}if(r&&n.label<r[2]){n.label=r[2];n.ops.push(s);break}if(r[2])n.ops.pop();n.trys.pop();continue}s=e.call(t,n)}catch(t){s=[6,t];i=0}finally{o=r=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:true}}};System.register(["./p-1d455921.system.js","./p-fb82b748.system.js","./p-55bfdf22.system.js","./p-1ec4e0ee.system.js","./p-88aac12c.system.js","./p-4099b274.system.js"],(function(t){"use strict";var e,n,o,i,r,a,s,l,f,d,u;return{setters:[function(t){e=t.h;n=t.r;o=t.c;i=t.H;r=t.g},function(t){a=t.S},function(t){s=t.S},function(t){l=t.s},function(t){f=t.e;d=t.u},function(t){u=t.t}],execute:function(){var g=function(t){var n;if(((n=l.localizedConfig)===null||n===void 0?void 0:n.header)===undefined)return;var o=l.localizedConfig.header;return e("nav",{class:"language-switch-dropdown",ref:function(e){return t.dropdownRef(e)},"aria-label":o.translations.navLangAriaLabel},e("ul",{"aria-label":u("Change language")},t.navLang.filter((function(t){return!t.isCurrent})).map((function(n){var o=n.url?"a":"button";return e("li",{key:n.lang},e(o,{onClick:function(){return t.switchLanguage(n)},href:n.url,lang:n.lang,title:n.title},e("span",{class:"visually-hidden"},n.title),e("span",{"aria-hidden":"true"},n.text)))}))))};var p='@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:transparent;border:none;border-radius:0;padding:0}.nav-link,.language-switch-dropdown a,.language-switch-dropdown button{outline:none;outline-offset:2px;text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.nav-link:is(:focus-visible,:focus-within,.pretend-focus),.language-switch-dropdown a:is(:focus-visible,:focus-within,.pretend-focus),.language-switch-dropdown button:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.nav-link:hover,.language-switch-dropdown a:hover,.language-switch-dropdown button:hover,.nav-link:focus,.language-switch-dropdown a:focus,.language-switch-dropdown button:focus{color:black}.nav-link:focus-visible,.language-switch-dropdown a:focus-visible,.language-switch-dropdown button:focus-visible{z-index:1;position:relative}.nav-link>svg,.language-switch-dropdown a>svg,.language-switch-dropdown button>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.nav-link>span,.language-switch-dropdown a>span,.language-switch-dropdown button>span{-ms-flex-negative:1;flex-shrink:1}.no-list,.language-switch-dropdown ul{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", 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:white}}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}@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{--separator-display:none;--separator-height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;align-self:stretch}:host::before{position:relative;content:"";display:var(--separator-display);height:var(--separator-height);border-left:1px solid hsl(0, 0%, 90%)}.lang-btn{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:100%;padding:0 1rem;border:none;-webkit-box-shadow:none;box-shadow:none;background:none;text-transform:uppercase;cursor:pointer;color:rgba(0, 0, 0, 0.8)}.lang-btn:hover,.lang-btn:focus{color:black;position:relative;z-index:1}.lang-btn svg{width:1.5em;height:1.5em;-webkit-transition:-webkit-transform 250ms;transition:-webkit-transform 250ms;transition:transform 250ms;transition:transform 250ms, -webkit-transform 250ms}.lang-btn svg.rotated{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.language-switch{position:relative;-ms-flex-item-align:stretch;align-self:stretch;height:100%}.language-switch.list{margin-top:1.5rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.current-language{text-transform:uppercase;border-right:1px solid hsl(0, 0%, 80%);padding:0.5rem 1rem 0.5rem 0}.dropdown .language-switch-dropdown{position:absolute;top:100%;width:100%;background:white;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2), 0 2px 6px 2px rgba(0, 0, 0, 0.1);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2), 0 2px 6px 2px rgba(0, 0, 0, 0.1);z-index:1;-webkit-transform:scale(0.1);transform:scale(0.1);-webkit-transform-origin:center top;transform-origin:center top;-webkit-transition:-webkit-transform 0.1s;transition:-webkit-transform 0.1s;transition:transform 0.1s;transition:transform 0.1s, -webkit-transform 0.1s;margin-top:var(--language-dropdown-margin-top)}@media (prefers-reduced-motion: reduce){.dropdown .language-switch-dropdown{-webkit-transition:none;transition:none}}.dropdown .language-switch-dropdown.open{-webkit-transform:scale(1);transform:scale(1)}.list .language-switch-dropdown ul{display:-ms-flexbox;display:flex}.list .language-switch-dropdown ul>li+li{border-left:1px solid hsl(0, 0%, 80%)}.language-switch-dropdown a,.language-switch-dropdown button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:3rem;padding:0 0.25rem;text-transform:uppercase;cursor:pointer;-webkit-transition:background-color 200ms, color 200ms;transition:background-color 200ms, color 200ms}.language-switch-dropdown a:hover,.language-switch-dropdown a:focus,.language-switch-dropdown button:hover,.language-switch-dropdown button:focus{background:#f4f3f1}.language-switch-dropdown a span,.language-switch-dropdown button span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.list .language-switch-dropdown a,.list .language-switch-dropdown button{color:black;height:auto;padding:0.5rem 1rem}';var c=t("post_language_switch",function(){function t(t){n(this,t);this.dropdownToggled=o(this,"dropdownToggled",7);this.languageChanged=o(this,"languageChanged",7);this.mode=undefined;this.langSwitchOpen=false}t.prototype.componentWillUpdate=function(){var t=this;if(this.languageSwitchDropdown&&!this.langSwitchOpen&&this.mode=="dropdown"){this.languageSwitchDropdown.classList.remove("open");if(f(this.languageSwitchDropdown,"transform")&&!d()){return new Promise((function(e){var n;(n=t.languageSwitchDropdown)===null||n===void 0?void 0:n.addEventListener("transitionend",(function(t){if(t.propertyName==="transform"){e(true)}}))}))}}};t.prototype.componentDidUpdate=function(){if(this.languageSwitchDropdown&&this.langSwitchOpen){this.languageSwitchDropdown.getBoundingClientRect();this.languageSwitchDropdown.classList.add("open")}};t.prototype.toggleDropdown=function(t){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){this.langSwitchOpen=t!==null&&t!==void 0?t:!this.langSwitchOpen;this.dropdownToggled.emit({open:this.langSwitchOpen,element:this.host});return[2,this.langSwitchOpen]}))}))};t.prototype.switchLanguage=function(t){this.languageChanged.emit(t.lang);this.toggleDropdown(false)};t.prototype.getMergedLanguageConfig=function(t,e){if(e===undefined){return t}return t.map((function(t){return Object.assign({},t,e.find((function(e){return e.lang===t.lang})))}))};t.prototype.setDropdownRef=function(t){this.languageSwitchDropdown=t};t.prototype.render=function(){var t=this;var n;if(((n=l.localizedConfig)===null||n===void 0?void 0:n.header)===undefined)return;var o=l.localizedConfig.header;var r=this.getMergedLanguageConfig(o.navLang,l.languageSwitchOverrides);return e(i,null,e("div",{class:"language-switch ".concat(this.mode)},e(a,null),this.mode==="dropdown"?e("button",{class:"lang-btn","aria-expanded":"".concat(this.langSwitchOpen),"aria-haspopup":"listbox",onClick:function(){return t.toggleDropdown()}},e("span",{class:"visually-hidden"},o.translations.navLangAriaLabel,", ",u("Current language is English")),e("span",{"aria-hidden":"true"},l.currentLanguage),e(s,{name:"pi-arrow-down",classNames:this.langSwitchOpen?"rotated":""})):e("span",{class:"bold current-language"},e("span",{class:"visually-hidden"},u("Current language is English")),e("span",null,l.currentLanguage)),this.langSwitchOpen||this.mode==="list"?e(g,{navLang:r,switchLanguage:function(e){return t.switchLanguage(e)},dropdownRef:function(e){return e!==undefined&&t.setDropdownRef(e)}}):null))};Object.defineProperty(t.prototype,"host",{get:function(){return r(this)},enumerable:false,configurable:true});return t}());c.style=p}}}));
2
+ //# sourceMappingURL=p-131078ce.system.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PostLanguageSwitchList","props","_a","state","localizedConfig","header","undefined","config","h","class","ref","e","dropdownRef","translations","navLangAriaLabel","translate","navLang","filter","lang","isCurrent","map","TagName","url","key","onClick","switchLanguage","href","title","text","postLanguageSwitchCss","PostLanguageSwitch","exports","class_1","prototype","componentWillUpdate","_this","this","languageSwitchDropdown","langSwitchOpen","mode","classList","remove","elementHasTransition","userPrefersReducedMotion","Promise","resolve","addEventListener","event","propertyName","componentDidUpdate","getBoundingClientRect","add","toggleDropdown","force","dropdownToggled","emit","open","element","host","newLang","languageChanged","getMergedLanguageConfig","overrides","langConfig","Object","assign","find","l","setDropdownRef","render","mergedConfig","languageSwitchOverrides","Host","concat","SvgSprite","currentLanguage","SvgIcon","name","classNames"],"sources":["src/components/post-language-switch/components/post-language-switch-list.tsx","src/components/post-language-switch/post-language-switch.scss?tag=post-language-switch&encapsulation=shadow","src/components/post-language-switch/post-language-switch.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { NavLangEntity } from '../../../models/header.model';\nimport { translate } from '../../../services/language.service';\nimport { state } from '../../../data/store';\n\nexport const PostLanguageSwitchList = (props: {\n navLang: NavLangEntity[];\n switchLanguage: (lang: NavLangEntity) => void;\n dropdownRef: (element: HTMLElement | undefined) => void;\n}) => {\n if (state.localizedConfig?.header === undefined) return;\n const config = state.localizedConfig.header;\n\n return (\n <nav\n class=\"language-switch-dropdown\"\n ref={e => props.dropdownRef(e)}\n aria-label={config.translations.navLangAriaLabel}\n >\n <ul aria-label={translate('Change language')}>\n {props.navLang\n .filter(lang => !lang.isCurrent)\n .map(lang => {\n const TagName = lang.url ? 'a' : 'button';\n return (\n <li key={lang.lang}>\n <TagName\n onClick={() => props.switchLanguage(lang)}\n href={lang.url}\n lang={lang.lang}\n title={lang.title}\n >\n <span class=\"visually-hidden\">{lang.title}</span>\n <span aria-hidden=\"true\">{lang.text}</span>\n </TagName>\n </li>\n );\n })}\n </ul>\n </nav>\n );\n};\n","@use '@swisspost/design-system-styles/variables/color';\n@use '@swisspost/design-system-styles/functions';\n@use '../../utils/utils.scss';\n\n:host {\n --separator-display: none;\n --separator-height: 100%;\n\n display: flex;\n align-items: center;\n align-self: stretch;\n\n &::before {\n position: relative;\n content: '';\n display: var(--separator-display);\n height: var(--separator-height);\n border-left: 1px solid color.$gray-10;\n }\n}\n\n.lang-btn {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 1rem;\n border: none;\n box-shadow: none;\n background: none;\n text-transform: uppercase;\n cursor: pointer;\n color: rgba(color.$black, 0.8);\n\n &:hover,\n &:focus {\n color: black;\n position: relative;\n z-index: 1;\n }\n\n svg {\n width: 1.5em;\n height: 1.5em;\n transition: transform 250ms;\n\n &.rotated {\n transform: rotate(180deg);\n }\n }\n}\n\n.language-switch {\n position: relative;\n align-self: stretch;\n height: 100%;\n\n &.list {\n margin-top: 1.5rem;\n display: flex;\n align-items: center;\n }\n}\n\n.current-language {\n text-transform: uppercase;\n border-right: 1px solid color.$gray-20;\n padding: 0.5rem 1rem 0.5rem 0;\n}\n\n.language-switch-dropdown {\n .dropdown & {\n position: absolute;\n top: 100%;\n width: 100%;\n background: white;\n box-shadow: 0 1px 2px rgb(0 0 0 / 20%), 0 2px 6px 2px rgb(0 0 0 / 10%);\n z-index: 1;\n transform: scale(0.1);\n transform-origin: center top;\n transition: transform 0.1s;\n margin-top: var(--language-dropdown-margin-top);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &.open {\n transform: scale(1);\n }\n }\n\n ul {\n @extend %no-list;\n\n .list & {\n display: flex;\n\n > li + li {\n border-left: 1px solid color.$gray-20;\n }\n }\n }\n\n a,\n button {\n @extend %nav-link;\n\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: functions.px-to-rem(48px);\n padding: 0 0.25rem;\n text-transform: uppercase;\n cursor: pointer;\n transition: background-color 200ms, color 200ms;\n\n &:hover,\n &:focus {\n background: color.$gray-background;\n }\n\n span {\n // Worst case scenario\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n .list & {\n color: black;\n height: auto;\n padding: 0.5rem 1rem;\n }\n }\n}\n","import {\n Component,\n Event,\n Host,\n h,\n Method,\n EventEmitter,\n State,\n Prop,\n Element,\n} from '@stencil/core';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { state } from '../../data/store';\nimport {\n DropdownElement,\n DropdownEvent,\n HasDropdown,\n NavLangEntity,\n} from '../../models/header.model';\nimport { userPrefersReducedMotion, elementHasTransition } from '../../services/ui.service';\nimport { translate } from '../../services/language.service';\nimport { PostLanguageSwitchList } from './components/post-language-switch-list';\nimport { IAvailableLanguage } from '../../models/language.model';\n\n@Component({\n tag: 'post-language-switch',\n styleUrl: 'post-language-switch.scss',\n shadow: true,\n})\nexport class PostLanguageSwitch implements HasDropdown {\n @Prop() mode: 'dropdown' | 'list';\n @State() langSwitchOpen = false;\n @Element() host: DropdownElement;\n @Event() dropdownToggled: EventEmitter<DropdownEvent>;\n @Event({ bubbles: true }) languageChanged: EventEmitter<string>;\n private languageSwitchDropdown: HTMLElement | undefined;\n\n componentWillUpdate() {\n // Check if language switch got set to close and if mode is dropdown\n if (this.languageSwitchDropdown && !this.langSwitchOpen && this.mode == 'dropdown') {\n this.languageSwitchDropdown.classList.remove('open');\n\n // Check if element has transition applied and whether user prefers to see animations or not\n if (\n elementHasTransition(this.languageSwitchDropdown, 'transform') &&\n !userPrefersReducedMotion()\n ) {\n // Wait for CSS transition 'transform' to end before continuing\n return new Promise<boolean>(resolve => {\n this.languageSwitchDropdown?.addEventListener('transitionend', event => {\n if (event.propertyName === 'transform') {\n resolve(true);\n }\n });\n });\n }\n }\n }\n\n componentDidUpdate() {\n // Language switch got set to open\n if (this.languageSwitchDropdown && this.langSwitchOpen) {\n // Force browser to redraw/refresh DOM before adding 'open' class\n this.languageSwitchDropdown.getBoundingClientRect();\n this.languageSwitchDropdown.classList.add('open');\n }\n }\n\n /**\n * Open or close the language switch programatically\n * @param force Boolean to force a state\n * @returns Boolean indicating new state\n */\n @Method()\n async toggleDropdown(force?: boolean) {\n this.langSwitchOpen = force ?? !this.langSwitchOpen;\n this.dropdownToggled.emit({ open: this.langSwitchOpen, element: this.host });\n return this.langSwitchOpen;\n }\n\n /**\n * Emit a language change to the parent component\n *\n * @param newLang Config of the new language\n */\n switchLanguage(newLang: NavLangEntity) {\n this.languageChanged.emit(newLang.lang);\n this.toggleDropdown(false);\n }\n\n private getMergedLanguageConfig(config: NavLangEntity[], overrides?: IAvailableLanguage[]) {\n if (overrides === undefined) {\n return config;\n }\n\n return config.map(langConfig =>\n Object.assign(\n {},\n langConfig,\n overrides.find(l => l.lang === langConfig.lang),\n ),\n );\n }\n\n private setDropdownRef(element: HTMLElement | undefined) {\n this.languageSwitchDropdown = element;\n }\n\n render() {\n if (state.localizedConfig?.header === undefined) return;\n const config = state.localizedConfig.header;\n const mergedConfig = this.getMergedLanguageConfig(\n config.navLang,\n state.languageSwitchOverrides,\n );\n\n return (\n <Host>\n <div class={`language-switch ${this.mode}`}>\n <SvgSprite />\n {this.mode === 'dropdown' ? (\n <button\n class=\"lang-btn\"\n aria-expanded={`${this.langSwitchOpen}`}\n aria-haspopup=\"listbox\"\n onClick={() => this.toggleDropdown()}\n >\n <span class=\"visually-hidden\">\n {config.translations.navLangAriaLabel}, {translate('Current language is English')}\n </span>\n <span aria-hidden=\"true\">{state.currentLanguage}</span>\n <SvgIcon name=\"pi-arrow-down\" classNames={this.langSwitchOpen ? 'rotated' : ''} />\n </button>\n ) : (\n <span class=\"bold current-language\">\n <span class=\"visually-hidden\">{translate('Current language is English')}</span>\n <span>{state.currentLanguage}</span>\n </span>\n )}\n {this.langSwitchOpen || this.mode === 'list' ? (\n <PostLanguageSwitchList\n navLang={mergedConfig}\n switchLanguage={e => this.switchLanguage(e)}\n dropdownRef={e => e !== undefined && this.setDropdownRef(e)}\n />\n ) : null}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ System.register(["./p-1d455921.system.js"],(function(n){"use strict";var e,t;return{setters:[function(n){e=n.a;t=n.f}],execute:function(){var r=function(n,e,t){var r=n.get(e);if(!r){n.set(e,[t])}else if(!r.includes(t)){r.push(t)}};var u=function(n,e){var t;return function(){var r=[];for(var u=0;u<arguments.length;u++){r[u]=arguments[u]}if(t){clearTimeout(t)}t=setTimeout((function(){t=0;n.apply(void 0,r)}),e)}};var i=function(n){return!("isConnected"in n)||n.isConnected};var o=u((function(n){for(var e=0,t=n.keys();e<t.length;e++){var r=t[e];n.set(r,n.get(r).filter(i))}}),2e3);var f=function(){if(typeof e!=="function"){return{}}var n=new Map;return{dispose:function(){return n.clear()},get:function(t){var u=e();if(u){r(n,t,u)}},set:function(e){var r=n.get(e);if(r){n.set(e,r.filter(t))}o(n)},reset:function(){n.forEach((function(n){return n.forEach(t)}));o(n)}}};var s=function(n){return typeof n==="function"?n():n};var c=function(n,e){if(e===void 0){e=function(n,e){return n!==e}}var t=s(n);var r=new Map(Object.entries(t!==null&&t!==void 0?t:{}));var u={dispose:[],get:[],set:[],reset:[]};var i=function(){var e;r=new Map(Object.entries((e=s(n))!==null&&e!==void 0?e:{}));u.reset.forEach((function(n){return n()}))};var o=function(){u.dispose.forEach((function(n){return n()}));i()};var f=function(n){u.get.forEach((function(e){return e(n)}));return r.get(n)};var c=function(n,t){var i=r.get(n);if(e(t,i,n)){r.set(n,t);u.set.forEach((function(e){return e(n,t,i)}))}};var v=typeof Proxy==="undefined"?{}:new Proxy(t,{get:function(n,e){return f(e)},ownKeys:function(n){return Array.from(r.keys())},getOwnPropertyDescriptor:function(){return{enumerable:true,configurable:true}},has:function(n,e){return r.has(e)},set:function(n,e,t){c(e,t);return true}});var l=function(n,e){u[n].push(e);return function(){a(u[n],e)}};var p=function(e,t){var r=l("set",(function(n,r){if(n===e){t(r)}}));var u=l("reset",(function(){return t(s(n)[e])}));return function(){r();u()}};var g=function(){var n=[];for(var e=0;e<arguments.length;e++){n[e]=arguments[e]}var t=n.reduce((function(n,e){if(e.set){n.push(l("set",e.set))}if(e.get){n.push(l("get",e.get))}if(e.reset){n.push(l("reset",e.reset))}if(e.dispose){n.push(l("dispose",e.dispose))}return n}),[]);return function(){return t.forEach((function(n){return n()}))}};var d=function(n){var e=r.get(n);u.set.forEach((function(t){return t(n,e,e)}))};return{state:v,get:f,set:c,on:l,onChange:p,use:g,dispose:o,reset:i,forceUpdate:d}};var a=function(n,e){var t=n.indexOf(e);if(t>=0){n[t]=n[n.length-1];n.length--}};var v=function(n,e){var t=c(n,e);t.use(f());return t};var l=v({projectId:null,currentLanguage:null,localizedConfig:null,environment:"prod",search:true,login:true,meta:true,stickyness:"minimal"}),p=l.state,g=l.reset,d=l.dispose;n({s:p,d:d})}}}));
2
+ //# sourceMappingURL=p-1ec4e0ee.system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["appendToMap","map","propName","value","items","get","set","includes","push","debounce","fn","ms","timeoutId","args","_i","arguments","length","clearTimeout","setTimeout","apply","isConnected","maybeElement","cleanupElements","_b","keys","key","filter","stencilSubscription","getRenderingRef","elmsToUpdate","Map","dispose","clear","elm","elements","forceUpdate","reset","forEach","elms","unwrap","val","createObservableMap","defaultState","shouldUpdate","a","b","unwrappedState","states","Object","entries","handlers","_a","cb","oldValue","state","Proxy","_","ownKeys","Array","from","getOwnPropertyDescriptor","enumerable","configurable","has","on","eventName","callback","removeFromArray","onChange","unSet","newValue","unReset","use","subscriptions","unsubs","reduce","subscription","unsub","array","item","index","indexOf","createStore","projectId","currentLanguage","localizedConfig","environment","search","login","meta","stickyness","exports","s","d"],"sources":["../../node_modules/.pnpm/@stencil+store@2.0.9_@stencil+core@3.4.2/node_modules/@stencil/store/dist/index.mjs","src/data/store.ts"],"sourcesContent":["import { getRenderingRef, forceUpdate } from '@stencil/core';\n\nconst appendToMap = (map, propName, value) => {\n const items = map.get(propName);\n if (!items) {\n map.set(propName, [value]);\n }\n else if (!items.includes(value)) {\n items.push(value);\n }\n};\nconst debounce = (fn, ms) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = 0;\n fn(...args);\n }, ms);\n };\n};\n\n/**\n * Check if a possible element isConnected.\n * The property might not be there, so we check for it.\n *\n * We want it to return true if isConnected is not a property,\n * otherwise we would remove these elements and would not update.\n *\n * Better leak in Edge than to be useless.\n */\nconst isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;\nconst cleanupElements = debounce((map) => {\n for (let key of map.keys()) {\n map.set(key, map.get(key).filter(isConnected));\n }\n}, 2000);\nconst stencilSubscription = () => {\n if (typeof getRenderingRef !== 'function') {\n // If we are not in a stencil project, we do nothing.\n // This function is not really exported by @stencil/core.\n return {};\n }\n const elmsToUpdate = new Map();\n return {\n dispose: () => elmsToUpdate.clear(),\n get: (propName) => {\n const elm = getRenderingRef();\n if (elm) {\n appendToMap(elmsToUpdate, propName, elm);\n }\n },\n set: (propName) => {\n const elements = elmsToUpdate.get(propName);\n if (elements) {\n elmsToUpdate.set(propName, elements.filter(forceUpdate));\n }\n cleanupElements(elmsToUpdate);\n },\n reset: () => {\n elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));\n cleanupElements(elmsToUpdate);\n },\n };\n};\n\nconst unwrap = (val) => (typeof val === 'function' ? val() : val);\nconst createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {\n const unwrappedState = unwrap(defaultState);\n let states = new Map(Object.entries(unwrappedState !== null && unwrappedState !== void 0 ? unwrappedState : {}));\n const handlers = {\n dispose: [],\n get: [],\n set: [],\n reset: [],\n };\n const reset = () => {\n var _a;\n // When resetting the state, the default state may be a function - unwrap it to invoke it.\n // otherwise, the state won't be properly reset\n states = new Map(Object.entries((_a = unwrap(defaultState)) !== null && _a !== void 0 ? _a : {}));\n handlers.reset.forEach((cb) => cb());\n };\n const dispose = () => {\n // Call first dispose as resetting the state would\n // cause less updates ;)\n handlers.dispose.forEach((cb) => cb());\n reset();\n };\n const get = (propName) => {\n handlers.get.forEach((cb) => cb(propName));\n return states.get(propName);\n };\n const set = (propName, value) => {\n const oldValue = states.get(propName);\n if (shouldUpdate(value, oldValue, propName)) {\n states.set(propName, value);\n handlers.set.forEach((cb) => cb(propName, value, oldValue));\n }\n };\n const state = (typeof Proxy === 'undefined'\n ? {}\n : new Proxy(unwrappedState, {\n get(_, propName) {\n return get(propName);\n },\n ownKeys(_) {\n return Array.from(states.keys());\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n has(_, propName) {\n return states.has(propName);\n },\n set(_, propName, value) {\n set(propName, value);\n return true;\n },\n }));\n const on = (eventName, callback) => {\n handlers[eventName].push(callback);\n return () => {\n removeFromArray(handlers[eventName], callback);\n };\n };\n const onChange = (propName, cb) => {\n const unSet = on('set', (key, newValue) => {\n if (key === propName) {\n cb(newValue);\n }\n });\n // We need to unwrap the defaultState because it might be a function.\n // Otherwise we might not be sending the right reset value.\n const unReset = on('reset', () => cb(unwrap(defaultState)[propName]));\n return () => {\n unSet();\n unReset();\n };\n };\n const use = (...subscriptions) => {\n const unsubs = subscriptions.reduce((unsubs, subscription) => {\n if (subscription.set) {\n unsubs.push(on('set', subscription.set));\n }\n if (subscription.get) {\n unsubs.push(on('get', subscription.get));\n }\n if (subscription.reset) {\n unsubs.push(on('reset', subscription.reset));\n }\n if (subscription.dispose) {\n unsubs.push(on('dispose', subscription.dispose));\n }\n return unsubs;\n }, []);\n return () => unsubs.forEach((unsub) => unsub());\n };\n const forceUpdate = (key) => {\n const oldValue = states.get(key);\n handlers.set.forEach((cb) => cb(key, oldValue, oldValue));\n };\n return {\n state,\n get,\n set,\n on,\n onChange,\n use,\n dispose,\n reset,\n forceUpdate,\n };\n};\nconst removeFromArray = (array, item) => {\n const index = array.indexOf(item);\n if (index >= 0) {\n array[index] = array[array.length - 1];\n array.length--;\n }\n};\n\nconst createStore = (defaultState, shouldUpdate) => {\n const map = createObservableMap(defaultState, shouldUpdate);\n map.use(stencilSubscription());\n return map;\n};\n\nexport { createObservableMap, createStore };\n","import { createStore } from '@stencil/store';\nimport { Environment, ILocalizedConfig, ILocalizedCustomConfig } from '../models/general.model';\nimport { NavMainEntity } from '../models/header.model';\nimport { IAvailableLanguage } from '../models/language.model';\nimport { StickynessOptions } from '../components';\n\nexport interface HeaderState {\n localizedConfig: ILocalizedConfig | null;\n currentLanguage: string | null;\n projectId: string | null;\n environment: Environment;\n search: boolean;\n login: boolean;\n meta: boolean;\n languageSwitchOverrides?: IAvailableLanguage[];\n localizedCustomConfig?: ILocalizedCustomConfig;\n osFlyoutOverrides?: NavMainEntity;\n stickyness: StickynessOptions;\n}\n\nexport const { state, reset, dispose } = createStore<HeaderState>({\n projectId: null,\n currentLanguage: null,\n localizedConfig: null,\n environment: 'prod',\n search: true,\n login: true,\n meta: true,\n stickyness: 'minimal',\n});\n"],"mappings":"0IAEA,IAAMA,EAAc,SAACC,EAAKC,EAAUC,GAChC,IAAMC,EAAQH,EAAII,IAAIH,GACtB,IAAKE,EAAO,CACRH,EAAIK,IAAIJ,EAAU,CAACC,G,MAElB,IAAKC,EAAMG,SAASJ,GAAQ,CAC7BC,EAAMI,KAAKL,E,CAEnB,EACA,IAAMM,EAAW,SAACC,EAAIC,GAClB,IAAIC,EACJ,OAAO,WAAC,IAAAC,EAAA,G,IAAA,IAAAC,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAO,CAAPD,EAAAC,GAAAC,UAAAD,E,CACJ,GAAIF,EAAW,CACXK,aAAaL,E,CAEjBA,EAAYM,YAAW,WACnBN,EAAY,EACZF,EAAES,WAAA,EAAIN,EAClB,GAAWF,EACX,CACA,EAWA,IAAMS,EAAc,SAACC,GAAiB,QAAE,gBAAiBA,IAAiBA,EAAaD,WAAjD,EACtC,IAAME,EAAkBb,GAAS,SAACR,GAC9B,IAAgB,IAAAa,EAAA,EAAAS,EAAAtB,EAAIuB,OAAJV,EAAAS,EAAAP,OAAAF,IAAY,CAAvB,IAAIW,EAAGF,EAAAT,GACRb,EAAIK,IAAImB,EAAKxB,EAAII,IAAIoB,GAAKC,OAAON,G,CAEzC,GAAG,KACH,IAAMO,EAAsB,WACxB,UAAWC,IAAoB,WAAY,CAGvC,MAAO,E,CAEX,IAAMC,EAAe,IAAIC,IACzB,MAAO,CACHC,QAAS,WAAM,OAAAF,EAAaG,OAAb,EACf3B,IAAK,SAACH,GACF,IAAM+B,EAAML,IACZ,GAAIK,EAAK,CACLjC,EAAY6B,EAAc3B,EAAU+B,E,CAEpD,EACQ3B,IAAK,SAACJ,GACF,IAAMgC,EAAWL,EAAaxB,IAAIH,GAClC,GAAIgC,EAAU,CACVL,EAAavB,IAAIJ,EAAUgC,EAASR,OAAOS,G,CAE/Cb,EAAgBO,EAC5B,EACQO,MAAO,WACHP,EAAaQ,SAAQ,SAACC,GAAS,OAAAA,EAAKD,QAAQF,EAAb,IAC/Bb,EAAgBO,EAC5B,EAEA,EAEA,IAAMU,EAAS,SAACC,GAAG,cAAaA,IAAQ,WAAaA,IAAQA,CAA1C,EACnB,IAAMC,EAAsB,SAACC,EAAcC,GAAA,GAAAA,SAAA,GAAAA,EAAA,SAAgBC,EAAGC,GAAM,OAAAD,IAAMC,CAAN,CAAO,CACvE,IAAMC,EAAiBP,EAAOG,GAC9B,IAAIK,EAAS,IAAIjB,IAAIkB,OAAOC,QAAQH,IAAmB,MAAQA,SAAwB,EAAIA,EAAiB,KAC5G,IAAMI,EAAW,CACbnB,QAAS,GACT1B,IAAK,GACLC,IAAK,GACL8B,MAAO,IAEX,IAAMA,EAAQ,WACV,IAAIe,EAGJJ,EAAS,IAAIjB,IAAIkB,OAAOC,SAASE,EAAKZ,EAAOG,MAAmB,MAAQS,SAAY,EAAIA,EAAK,KAC7FD,EAASd,MAAMC,SAAQ,SAACe,GAAO,OAAAA,GAAA,GACvC,EACI,IAAMrB,EAAU,WAGZmB,EAASnB,QAAQM,SAAQ,SAACe,GAAO,OAAAA,GAAA,IACjChB,GACR,EACI,IAAM/B,EAAM,SAACH,GACTgD,EAAS7C,IAAIgC,SAAQ,SAACe,GAAO,OAAAA,EAAGlD,EAAH,IAC7B,OAAO6C,EAAO1C,IAAIH,EAC1B,EACI,IAAMI,EAAM,SAACJ,EAAUC,GACnB,IAAMkD,EAAWN,EAAO1C,IAAIH,GAC5B,GAAIyC,EAAaxC,EAAOkD,EAAUnD,GAAW,CACzC6C,EAAOzC,IAAIJ,EAAUC,GACrB+C,EAAS5C,IAAI+B,SAAQ,SAACe,GAAO,OAAAA,EAAGlD,EAAUC,EAAOkD,EAApB,G,CAEzC,EACI,IAAMC,SAAgBC,QAAU,YAC1B,GACA,IAAIA,MAAMT,EAAgB,CACxBzC,IAAG,SAACmD,EAAGtD,GACH,OAAOG,EAAIH,EAC3B,EACYuD,QAAO,SAACD,GACJ,OAAOE,MAAMC,KAAKZ,EAAOvB,OACzC,EACYoC,yBAAwB,WACpB,MAAO,CACHC,WAAY,KACZC,aAAc,KAElC,EACYC,IAAG,SAACP,EAAGtD,GACH,OAAO6C,EAAOgB,IAAI7D,EAClC,EACYI,IAAG,SAACkD,EAAGtD,EAAUC,GACbG,EAAIJ,EAAUC,GACd,OAAO,IACvB,IAEI,IAAM6D,EAAK,SAACC,EAAWC,GACnBhB,EAASe,GAAWzD,KAAK0D,GACzB,OAAO,WACHC,EAAgBjB,EAASe,GAAYC,EACjD,CACA,EACI,IAAME,EAAW,SAAClE,EAAUkD,GACxB,IAAMiB,EAAQL,EAAG,OAAO,SAACvC,EAAK6C,GAC1B,GAAI7C,IAAQvB,EAAU,CAClBkD,EAAGkB,E,CAEnB,IAGQ,IAAMC,EAAUP,EAAG,SAAS,WAAM,OAAAZ,EAAGb,EAAOG,GAAcxC,GAAxB,IAClC,OAAO,WACHmE,IACAE,GACZ,CACA,EACI,IAAMC,EAAM,WAAC,IAAAC,EAAA,G,IAAA,IAAA3D,EAAA,EAAAA,EAAAC,UAAAC,OAAAF,IAAgB,CAAhB2D,EAAA3D,GAAAC,UAAAD,E,CACT,IAAM4D,EAASD,EAAcE,QAAO,SAACD,EAAQE,GACzC,GAAIA,EAAatE,IAAK,CAClBoE,EAAOlE,KAAKwD,EAAG,MAAOY,EAAatE,K,CAEvC,GAAIsE,EAAavE,IAAK,CAClBqE,EAAOlE,KAAKwD,EAAG,MAAOY,EAAavE,K,CAEvC,GAAIuE,EAAaxC,MAAO,CACpBsC,EAAOlE,KAAKwD,EAAG,QAASY,EAAaxC,O,CAEzC,GAAIwC,EAAa7C,QAAS,CACtB2C,EAAOlE,KAAKwD,EAAG,UAAWY,EAAa7C,S,CAE3C,OAAO2C,CACnB,GAAW,IACH,OAAO,WAAM,OAAAA,EAAOrC,SAAQ,SAACwC,GAAU,OAAAA,GAAA,GAA1B,CACrB,EACI,IAAM1C,EAAc,SAACV,GACjB,IAAM4B,EAAWN,EAAO1C,IAAIoB,GAC5ByB,EAAS5C,IAAI+B,SAAQ,SAACe,GAAO,OAAAA,EAAG3B,EAAK4B,EAAUA,EAAlB,GACrC,EACI,MAAO,CACHC,MAAKA,EACLjD,IAAGA,EACHC,IAAGA,EACH0D,GAAEA,EACFI,SAAQA,EACRI,IAAGA,EACHzC,QAAOA,EACPK,MAAKA,EACLD,YAAWA,EAEnB,EACA,IAAMgC,EAAkB,SAACW,EAAOC,GAC5B,IAAMC,EAAQF,EAAMG,QAAQF,GAC5B,GAAIC,GAAS,EAAG,CACZF,EAAME,GAASF,EAAMA,EAAM9D,OAAS,GACpC8D,EAAM9D,Q,CAEd,EAEA,IAAMkE,EAAc,SAACxC,EAAcC,GAC/B,IAAM1C,EAAMwC,EAAoBC,EAAcC,GAC9C1C,EAAIuE,IAAI7C,KACR,OAAO1B,CACX,EC3Ka,IAAAsB,EAA4B2D,EAAyB,CAChEC,UAAW,KACXC,gBAAiB,KACjBC,gBAAiB,KACjBC,YAAa,OACbC,OAAQ,KACRC,MAAO,KACPC,KAAM,KACNC,WAAY,YARCpC,EAAK/B,EAAA+B,MAAElB,EAAKb,EAAAa,MAAEL,EAAOR,EAAAQ,QASnC4D,EAAA,CAAAC,EAAAtC,EAAAuC,EAAA9D,G"}
@@ -0,0 +1,2 @@
1
+ import{h as i,r as t,c as n,H as e,g as o}from"./p-8e0a4d18.js";import{t as s}from"./p-a74b380d.js";import{s as a}from"./p-459c3983.js";import{u as r}from"./p-45db66a6.js";import{t as l}from"./p-7bed0797.js";import{S as f}from"./p-b762fba9.js";import{S as d}from"./p-11d05acc.js";const u=t=>{var n,e,o;const s=t.level.url?"a":"button";return i(s,{class:{"main-link":true,active:!!t.level.isActiveOverride,focus:t.isOpen},href:t.level.url,title:((n=t.level.title)===null||n===void 0?void 0:n.trim())&&((e=t.level.title)===null||e===void 0?void 0:e.trim())!==((o=t.level.text)===null||o===void 0?void 0:o.trim())?t.level.title:undefined,tabindex:t.level.url?undefined:0,"aria-haspopup":!t.level.noFlyout+"","aria-expanded":t.level.noFlyout?null:t.isOpen+"",onTouchEnd:i=>t.onTouchEnd(i),onKeyDown:i=>t.onKeyDown(i),onClick:i=>t.onClick(i)},i("span",null,t.level.text),t.level.isActiveOverride?i("span",{class:"visually-hidden"},l("Active navigation element")):null,i("svg",{"aria-hidden":"true"},i("use",{href:"#pi-pointy-arrow-right"})))};const m='/*!\n * Copyright 2021 by Swiss Post, Information Technology\n */.flyout-nav,.flyout-column h3{font-size:0.9375rem}@media (min-width: 600px){.flyout-nav,.flyout-column h3{font-size:1rem}}@media (min-width: 1024px){.flyout-nav,.flyout-column h3{font-size:1.0625rem}}.flyout-title{font-size:1.0625rem}@media (min-width: 600px){.flyout-title{font-size:1.25rem}}@media (min-width: 1024px){.flyout-title{font-size:1.5rem}}@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:transparent;border:none;border-radius:0;padding:0}.nav-link,.main-link,.flyout-close-button,.flyout-link{outline:none;outline-offset:2px;text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.nav-link:is(:focus-visible,:focus-within,.pretend-focus),.main-link:is(:focus-visible,:focus-within,.pretend-focus),.flyout-close-button:is(:focus-visible,:focus-within,.pretend-focus),.flyout-link:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.nav-link:hover,.main-link:hover,.flyout-close-button:hover,.flyout-link:hover,.nav-link:focus,.main-link:focus,.flyout-close-button:focus,.flyout-link:focus{color:black}.nav-link:focus-visible,.main-link:focus-visible,.flyout-close-button:focus-visible,.flyout-link:focus-visible{z-index:1;position:relative}.nav-link>svg,.main-link>svg,.flyout-close-button>svg,.flyout-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.nav-link>span,.main-link>span,.flyout-close-button>span,.flyout-link>span{-ms-flex-negative:1;flex-shrink:1}.no-list,.main-container,.flyout-linklist{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", 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:white}}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}@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{--host-window-height:var(--window-height, 100vh);--calculated-header-height:calc(var(--header-height) + 1px);display:block;min-width:0;height:var(--header-height)}:host(.no-animation) *{-webkit-animation:none !important;animation:none !important;-webkit-transition:none !important;transition:none !important}@media (min-width: 1024px){.main-navigation,.main-container,.main-container li,.main-link{height:100%}}.main-navigation{font-size:1.125rem}@media (min-width: 1024px){.main-navigation{font-size:1rem;margin:0 0.75rem}}@media (min-width: 1280px){.main-navigation{font-size:1.125rem}}@media (min-width: 1441px){.main-navigation{font-size:1.25rem}}@media (max-width: 1023.98px){.main-navigation{position:absolute;top:var(--calculated-header-height);left:0;background:white;height:calc(var(--host-window-height) - var(--calculated-header-height));width:100%;margin:0;overflow:hidden scroll;-webkit-overflow-scrolling:touch;-ms-scroll-chaining:none;overscroll-behavior:contain;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;z-index:-1;visibility:hidden;-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:visibility 0.35s, -webkit-transform 0.35s;transition:visibility 0.35s, -webkit-transform 0.35s;transition:transform 0.35s, visibility 0.35s;transition:transform 0.35s, visibility 0.35s, -webkit-transform 0.35s}}@media (max-width: 1023.98px) and (prefers-reduced-motion: reduce){.main-navigation{-webkit-transition:none;transition:none}}@media (max-width: 1023.98px){.main-navigation.open{-webkit-transform:translateY(0);transform:translateY(0);visibility:visible}}.main-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:flex-start}@media (max-width: 1023.98px){.main-container{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:start;justify-content:flex-start;padding-top:2.5rem;padding-bottom:2.5rem}.main-container>li+li{border-top:1px solid hsl(0, 0%, 90%)}}@media (min-width: 1024px){.main-container{padding-right:0;padding-left:0}}.main-container>li{-ms-flex:0 1 auto;flex:0 1 auto;min-width:0}.main-link{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding-right:0.75rem;padding-left:0.75rem;text-align:left;cursor:pointer;width:100%}@media (min-width: 1024px){.main-link svg{display:none}}@media (max-width: 1023.98px){.main-link{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;font-weight:300;padding:0.625rem 0;width:100%;text-align:left}.main-link svg{width:1.5rem;height:1.5rem}}.main-link span{overflow:hidden;text-overflow:ellipsis}.main-link,.flyout-link{position:relative;color:black}.main-link::after,.flyout-link::after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:4px;background-color:transparent;opacity:0;-webkit-transform:scaleX(0.8);transform:scaleX(0.8);-webkit-transition:opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1)}@media (prefers-reduced-motion: reduce){.main-link::after,.flyout-link::after{-webkit-transition:none;transition:none}}.main-link:hover::after,.main-link.focus::after,.flyout-link:hover::after,.flyout-link.focus::after{background-color:hsl(0, 0%, 80%);opacity:1;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1)}.main-link.active,.flyout-link.active{font-weight:700}.main-link.active::after,.flyout-link.active::after{background-color:#fc0;opacity:1;-webkit-transform:scale(1);transform:scale(1)}.flyout{left:0;width:100%;background:white;padding-bottom:3rem;overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain;visibility:hidden}@media (min-width: 1024px){.flyout{position:absolute;top:100%;max-height:calc(100vh - var(--header-height) - var(--meta-header-height) - 1px);z-index:-1;-webkit-box-shadow:0 0 1px 0 rgba(0, 0, 0, 0.4);box-shadow:0 0 1px 0 rgba(0, 0, 0, 0.4);-webkit-transform:translateY(-100%);transform:translateY(-100%)}.flyout.open{-webkit-box-shadow:0 0 8px 0 rgba(0, 0, 0, 0.4);box-shadow:0 0 8px 0 rgba(0, 0, 0, 0.4);-webkit-transform:translateY(0);transform:translateY(0)}}@media (max-width: 1023.98px){.flyout{position:fixed;top:0;height:100%;z-index:1;-webkit-transform:translateX(100%);transform:translateX(100%)}.flyout.open{-webkit-transform:translateX(0);transform:translateX(0)}}.flyout.open{visibility:visible}.flyout.animate{-webkit-transition:visibility 0.35s, -webkit-transform 0.35s, -webkit-box-shadow 0.35s;transition:visibility 0.35s, -webkit-transform 0.35s, -webkit-box-shadow 0.35s;transition:transform 0.35s, visibility 0.35s, box-shadow 0.35s;transition:transform 0.35s, visibility 0.35s, box-shadow 0.35s, -webkit-transform 0.35s, -webkit-box-shadow 0.35s}@media (prefers-reduced-motion: reduce){.flyout.animate{-webkit-transition:none;transition:none}}.flyout-nav{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;min-height:3.5rem;-webkit-box-sizing:content-box;box-sizing:content-box}.flyout-row{display:-ms-flexbox;display:flex;gap:1.5rem}@media (max-width: 1023.98px){.flyout-row{display:grid;grid-template-columns:1fr 1fr}}@media (max-width: 599.98px){.flyout-row{grid-template-columns:1fr}}.flyout-column{-ms-flex:1;flex:1;max-width:25%}@media (max-width: 1023.98px){.flyout-column{max-width:none}}.flyout-column h3{margin-top:0}.flyout-back-button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:1rem;font-weight:400;cursor:pointer}@media (max-width: 599.98px){.flyout-back-button{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.flyout-back-button{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.flyout-back-button{padding-right:40px;padding-left:40px}}.flyout-back-button svg{width:1.5rem;height:1.5rem}@media (min-width: 1024px){.flyout-back-button{display:none}}.flyout-close-button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin-left:auto;padding:0 1.5rem;cursor:pointer}.flyout-close-button svg{width:1.5rem;height:1.5rem}@media (max-width: 1023.98px){.flyout-close-button{display:none}}.flyout-linklist li{border-top:1px solid hsl(0, 0%, 90%)}.flyout-linklist:first-child>li{border-top-color:transparent}.flyout-link{display:block;padding:0.75rem 0}.flyout-title{margin:2.5rem 0 1.5rem 0}@media (min-width: 1024px){.flyout-title{display:none}}';const h=class{constructor(i){t(this,i);this.dropdownToggled=n(this,"dropdownToggled",7);this.flyoutToggled=n(this,"flyoutToggled",7);this.resizeTimer=null;this.mouseLeaveTimer=null;this.mouseEnterTimer=null;this.activeFlyout=undefined;this.mobileMenuOpen=undefined}connectedCallback(){this.throttledResize=s(300,(()=>this.handleResize()));window.addEventListener("resize",this.throttledResize,{passive:true});this.setWindowHeight()}disconnectedCallback(){window.removeEventListener("resize",this.throttledResize);if(this.mouseEnterTimer!==null)window.clearTimeout(this.mouseEnterTimer);if(this.mouseLeaveTimer!==null)window.clearTimeout(this.mouseLeaveTimer)}handleResize(){this.host.classList.add("no-animation");if(this.resizeTimer!==null)window.clearTimeout(this.resizeTimer);this.resizeTimer=window.setTimeout((()=>{this.host.classList.remove("no-animation")}),300);this.setWindowHeight()}setWindowHeight(){if(!this.host){return}this.host.style.setProperty("--window-height",`${window.innerHeight}px`);window.setTimeout((()=>{this.host.style.setProperty("--window-height",`${window.innerHeight}px`)}),100)}openFlyout(i){var t;const n=(t=this.host.shadowRoot)===null||t===void 0?void 0:t.getElementById(i);if(n&&this.activeFlyout!==""){this.addFlyoutAnimation(n,"expand")}this.activeFlyout=i;this.flyoutToggled.emit(i);this.setWindowHeight();if(this.mouseLeaveTimer!==null){window.clearTimeout(this.mouseLeaveTimer);this.mouseLeaveTimer=null}}closeFlyout(i,t=true){var n;if(i===undefined)return;const e=(n=this.host.shadowRoot)===null||n===void 0?void 0:n.getElementById(i);if(e){this.addFlyoutAnimation(e,"collapse",t)}this.activeFlyout=null;this.flyoutToggled.emit()}addFlyoutAnimation(i,t,n=true){if(!r()){i.classList.add("animate");i.addEventListener("transitionend",(()=>{var e,o,s;if(n){if(t==="expand"){(e=i.querySelector("button.flyout-back-button"))===null||e===void 0?void 0:e.focus()}else if(t==="collapse"){(s=(o=i.parentElement)===null||o===void 0?void 0:o.querySelector("a.main-link"))===null||s===void 0?void 0:s.focus()}}i.classList.remove("animate")}),{once:true})}}isActiveFlyout(i){return i===this.activeFlyout}handleMouseEnter(i){if(this.mouseEnterTimer!==null){window.clearTimeout(this.mouseEnterTimer);this.mouseEnterTimer=null}if(this.mouseLeaveTimer&&this.activeFlyout===i.id){window.clearTimeout(this.mouseLeaveTimer);this.mouseLeaveTimer=null}if(window.innerWidth>=1024&&i.flyout.length>0&&this.activeFlyout!==i.id){this.mouseEnterTimer=window.setTimeout((()=>{this.mouseEnterTimer=null;if(i.id!==undefined)this.openFlyout(i.id)}),200)}}handleMouseLeave(i){if(this.mouseEnterTimer!==null){window.clearTimeout(this.mouseEnterTimer)}if(this.activeFlyout&&this.activeFlyout!==i.id){return}if(window.innerWidth>=1024&&i.flyout.length>0){this.mouseLeaveTimer=window.setTimeout((()=>{this.closeFlyout(i.id,false)}),300)}}handleTouchEnd(i,t){if(!this.isActiveFlyout(t.id)&&!t.noFlyout){if(i.cancelable)i.preventDefault();if(t.id)this.openFlyout(t.id)}}handleKeyPress(i,t){if(i.key==="Enter"&&!this.isActiveFlyout(t.id)&&!t.noFlyout){i.preventDefault();if(t.id)this.openFlyout(t.id)}}handleClick(i,t){if(!this.isActiveFlyout(t.id)&&!t.noFlyout){i.preventDefault();if(t.id)this.openFlyout(t.id)}}async toggleDropdown(i){this.mobileMenuOpen=i===undefined?!this.mobileMenuOpen:i;this.dropdownToggled.emit({open:this.mobileMenuOpen,element:this.host});if(i===false){this.closeFlyout()}this.setWindowHeight();return this.mobileMenuOpen}async setFocus(){var i;const t=(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelector(".main-link");if(t){t.focus()}}async setActiveFlyout(i){this.activeFlyout=i;this.flyoutToggled.emit(this.activeFlyout)}render(){var t;if(((t=a.localizedConfig)===null||t===void 0?void 0:t.header)===undefined)return;const n=a.localizedConfig.header;return i(e,null,i(f,null),i("nav",{"aria-label":n.translations.navMainAriaLabel,id:"post-internet-header-main-navigation",class:{"main-navigation":true,open:this.mobileMenuOpen},role:"menu"},i("ul",{class:"main-container container"},n.navMain.map((t=>i("li",{key:t.text,onMouseLeave:()=>this.handleMouseLeave(t),onMouseEnter:()=>this.handleMouseEnter(t)},i(u,{level:t,isOpen:this.isActiveFlyout(t.id),onTouchEnd:i=>this.handleTouchEnd(i,t),onKeyDown:i=>this.handleKeyPress(i,t),onClick:i=>this.handleClick(i,t)}),!t.noFlyout?o.bind(this)(t):null)))),i("slot",null)));function o(t){return i("div",{id:t.id,class:{flyout:true,open:this.isActiveFlyout(t.id)}},i("div",{class:"wide-container"},i("div",{class:"flyout-nav"},i("button",{class:"nav-link flyout-back-button",onClick:()=>this.closeFlyout(t.id)},i(d,{name:"pi-pointy-arrow-right",classNames:"mirrored"}),i("span",null,n.translations.backButtonText)),i("button",{class:"flyout-close-button",onClick:()=>this.closeFlyout(t.id)},i("span",{class:"visually-hidden"},t.text,", ",n.translations.mobileNavToggleClose),i(d,{name:"pi-close"}))),i("h2",{class:"flyout-title container"},i("a",{href:t.url,class:"nav-link"},t.text)),i("div",{class:"flyout-row container"},t.flyout.map(((n,e)=>i("div",{key:n.title,class:"flyout-column"},n.title?i("h3",{id:`${t.id}-column-${e}`},n.title):null,i("ul",{class:"flyout-linklist","aria-labelledby":n.title?`${t.id}-column-${e}`:undefined},n.linkList.map((t=>i("li",{key:t.url},i("a",{class:{"flyout-link":true,active:!!(t===null||t===void 0?void 0:t.isActiveOverride)},href:t.url,target:t.target},t.title,(t===null||t===void 0?void 0:t.isActiveOverride)?i("span",{class:"visually-hidden"},", ",l("Active navigation element")):null)))))))))))}}get host(){return o(this)}};h.style=m;export{h as post_main_navigation};
2
+ //# sourceMappingURL=p-273fd39b.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["LevelOneAction","props","TagName","level","url","h","class","active","isActiveOverride","focus","isOpen","href","title","_a","trim","_b","_c","text","undefined","tabindex","noFlyout","onTouchEnd","e","onKeyDown","onClick","translate","postMainNavigationCss","PostMainNavigation","this","resizeTimer","mouseLeaveTimer","mouseEnterTimer","connectedCallback","throttledResize","throttle","handleResize","window","addEventListener","passive","setWindowHeight","disconnectedCallback","removeEventListener","clearTimeout","host","classList","add","setTimeout","remove","style","setProperty","innerHeight","openFlyout","id","flyout","shadowRoot","getElementById","activeFlyout","addFlyoutAnimation","flyoutToggled","emit","closeFlyout","manageFocus","direction","userPrefersReducedMotion","querySelector","parentElement","once","isActiveFlyout","handleMouseEnter","innerWidth","length","handleMouseLeave","handleTouchEnd","event","cancelable","preventDefault","handleKeyPress","key","handleClick","async","force","mobileMenuOpen","dropdownToggled","open","element","firstLink","render","state","localizedConfig","header","headerConfig","Host","SvgSprite","translations","navMainAriaLabel","role","navMain","map","levelOne","onMouseLeave","onMouseEnter","renderLevelOneFlyout","bind","SvgIcon","name","classNames","backButtonText","mobileNavToggleClose","i","linkList","link","target"],"sources":["./src/components/post-main-navigation/components/level-one-action.component.tsx","./src/components/post-main-navigation/post-main-navigation.scss?tag=post-main-navigation&encapsulation=shadow","./src/components/post-main-navigation/post-main-navigation.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { NavMainEntity } from '../../../models/header.model';\nimport { translate } from '../../../services/language.service';\n\nexport const LevelOneAction = (props: {\n level: NavMainEntity;\n isOpen: boolean;\n onTouchEnd: (e: any) => void;\n onKeyDown: (e: any) => void;\n onClick: (e: any) => void;\n}) => {\n const TagName = props.level.url ? 'a' : 'button';\n\n return (\n <TagName\n class={{\n 'main-link': true,\n 'active': !!props.level.isActiveOverride,\n 'focus': props.isOpen,\n }}\n href={props.level.url}\n title={\n props.level.title?.trim() && props.level.title?.trim() !== props.level.text?.trim()\n ? props.level.title\n : undefined\n }\n tabindex={props.level.url ? undefined : 0}\n aria-haspopup={!props.level.noFlyout + ''}\n aria-expanded={props.level.noFlyout ? null : props.isOpen + ''}\n onTouchEnd={e => props.onTouchEnd(e)}\n onKeyDown={e => props.onKeyDown(e)}\n onClick={e => props.onClick(e)}\n >\n <span>{props.level.text}</span>\n {props.level.isActiveOverride ? (\n <span class=\"visually-hidden\">{translate('Active navigation element')}</span>\n ) : null}\n <svg aria-hidden=\"true\">\n <use href=\"#pi-pointy-arrow-right\" />\n </svg>\n </TagName>\n );\n};\n","@use '@swisspost/design-system-styles/variables/color';\n@use '@swisspost/design-system-styles/placeholders/text';\n@use '@swisspost/design-system-styles/functions';\n@use '../../utils/utils.scss';\n@use '../../utils/mixins.scss';\n\n:host {\n --host-window-height: var(--window-height, 100vh);\n --calculated-header-height: calc(var(--header-height) + 1px);\n\n display: block;\n min-width: 0;\n height: var(--header-height);\n}\n\n:host(.no-animation) {\n * {\n animation: none !important;\n transition: none !important;\n }\n}\n\n.main-navigation,\n.main-container,\n.main-container li,\n.main-link {\n @include mixins.min(lg) {\n height: 100%;\n }\n}\n\n.main-navigation {\n font-size: functions.px-to-rem(18px);\n\n @include mixins.min(lg) {\n font-size: functions.px-to-rem(16px);\n margin: 0 0.75rem;\n }\n\n @include mixins.min(xl) {\n font-size: functions.px-to-rem(18px);\n }\n\n @include mixins.min(xxl) {\n font-size: functions.px-to-rem(20px);\n }\n\n @include mixins.max(lg) {\n position: absolute;\n top: var(--calculated-header-height);\n left: 0;\n background: white;\n height: calc(var(--host-window-height) - var(--calculated-header-height));\n width: 100%;\n margin: 0;\n overflow: hidden scroll;\n -webkit-overflow-scrolling: touch;\n overscroll-behavior: contain;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n z-index: -1;\n visibility: hidden;\n transform: translateY(-100%);\n transition: transform 0.35s, visibility 0.35s;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &.open {\n transform: translateY(0);\n visibility: visible;\n }\n }\n}\n\n.main-container {\n @extend %no-list;\n\n display: flex;\n align-items: center;\n justify-content: flex-start;\n\n @include mixins.max(lg) {\n flex-direction: column;\n align-items: stretch;\n justify-content: flex-start;\n padding-top: 2.5rem;\n padding-bottom: 2.5rem;\n\n > li + li {\n border-top: 1px solid color.$gray-10;\n }\n }\n\n @include mixins.min(lg) {\n padding-right: 0;\n padding-left: 0;\n }\n\n > li {\n flex: 0 1 auto;\n min-width: 0;\n }\n}\n\n.main-link {\n @extend %nav-link;\n\n display: flex;\n align-items: center;\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n text-align: left;\n cursor: pointer;\n width: 100%;\n\n @include mixins.min(lg) {\n svg {\n display: none;\n }\n }\n\n @include mixins.max(lg) {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-weight: 300;\n padding: 0.625rem 0;\n width: 100%;\n text-align: left;\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.main-link,\n.flyout-link {\n position: relative;\n color: black;\n\n &::after {\n content: '';\n position: absolute;\n bottom: -1px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: transparent;\n opacity: 0;\n transform: scaleX(0.8);\n transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1),\n transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n\n &:hover,\n &.focus {\n &::after {\n background-color: color.$gray-20;\n opacity: 1;\n transform: scale(1);\n transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1),\n transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n }\n }\n\n &.active {\n font-weight: 700;\n\n &::after {\n background-color: color.$yellow;\n opacity: 1;\n transform: scale(1);\n }\n }\n}\n\n.flyout {\n left: 0;\n width: 100%;\n background: white;\n padding-bottom: 3rem;\n overflow: auto;\n overscroll-behavior: contain;\n visibility: hidden;\n\n @include mixins.min(lg) {\n position: absolute;\n top: 100%;\n max-height: calc(100vh - var(--header-height) - var(--meta-header-height) - 1px);\n z-index: -1;\n box-shadow: 0 0 1px 0 rgb(0 0 0 / 40%);\n transform: translateY(-100%);\n\n &.open {\n box-shadow: 0 0 8px 0 rgb(0 0 0 / 40%);\n transform: translateY(0);\n }\n }\n\n @include mixins.max(lg) {\n position: fixed;\n top: 0;\n height: 100%;\n z-index: 1;\n transform: translateX(100%);\n\n &.open {\n transform: translateX(0);\n }\n }\n\n &.open {\n visibility: visible;\n }\n\n &.animate {\n transition: transform 0.35s, visibility 0.35s, box-shadow 0.35s;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n}\n\n.flyout-nav {\n @extend %font-curve-small;\n\n display: flex;\n justify-content: space-between;\n min-height: 3.5rem;\n\n // Change box-sizing to content-box to add 1px border width to flyout-nav hight.\n // This ensures flyout-nav has same hight as main-navigation-container.\n box-sizing: content-box;\n}\n\n.flyout-row {\n display: flex;\n gap: 1.5rem;\n\n @include mixins.max(lg) {\n display: grid;\n grid-template-columns: 1fr 1fr;\n }\n\n @include mixins.max(rg) {\n grid-template-columns: 1fr;\n }\n}\n\n.flyout-column {\n flex: 1;\n max-width: 25%;\n\n @include mixins.max(lg) {\n max-width: none;\n }\n\n h3 {\n @extend %font-curve-small;\n margin-top: 0;\n }\n}\n\n.flyout-back-button {\n @include mixins.container-padding();\n\n display: flex;\n align-items: center;\n font-size: functions.px-to-rem(16px);\n font-weight: 400;\n cursor: pointer;\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n\n @include mixins.min(lg) {\n display: none;\n }\n}\n\n.flyout-close-button {\n @extend %nav-link;\n\n display: flex;\n align-items: center;\n margin-left: auto;\n padding: 0 1.5rem;\n cursor: pointer;\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n\n @include mixins.max(lg) {\n display: none;\n }\n}\n\n.flyout-linklist {\n @extend %no-list;\n\n li {\n border-top: 1px solid color.$gray-10;\n }\n\n &:first-child > li {\n border-top-color: transparent;\n }\n}\n\n.flyout-link {\n @extend %nav-link;\n\n display: block;\n padding: 0.75rem 0;\n}\n\n.flyout-title {\n @extend %font-curve-bigger-regular;\n\n margin: 2.5rem 0 1.5rem 0;\n\n @include mixins.min(lg) {\n display: none;\n }\n}\n","import { Component, Host, h, State, Method, Event, Element, EventEmitter } from '@stencil/core';\nimport { throttle } from 'throttle-debounce';\nimport { state } from '../../data/store';\nimport {\n DropdownElement,\n DropdownEvent,\n HasDropdown,\n IsFocusable,\n NavMainEntity,\n} from '../../models/header.model';\nimport { userPrefersReducedMotion } from '../../services/ui.service';\nimport { translate } from '../../services/language.service';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { LevelOneAction } from './components/level-one-action.component';\n\n@Component({\n tag: 'post-main-navigation',\n styleUrl: 'post-main-navigation.scss',\n shadow: true,\n})\nexport class PostMainNavigation implements HasDropdown, IsFocusable {\n @State() activeFlyout: string | null;\n @State() mobileMenuOpen: boolean;\n @Event() dropdownToggled: EventEmitter<DropdownEvent>;\n @Event() flyoutToggled: EventEmitter<string | null>;\n @Element() host: DropdownElement;\n private throttledResize: throttle<() => void>;\n private resizeTimer: number | null = null;\n private mouseLeaveTimer: number | null = null;\n private mouseEnterTimer: number | null = null;\n\n connectedCallback() {\n this.throttledResize = throttle(300, () => this.handleResize());\n window.addEventListener('resize', this.throttledResize, { passive: true });\n this.setWindowHeight();\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.throttledResize);\n if (this.mouseEnterTimer !== null) window.clearTimeout(this.mouseEnterTimer);\n if (this.mouseLeaveTimer !== null) window.clearTimeout(this.mouseLeaveTimer);\n }\n\n handleResize() {\n // Suspend all animations and transitions on window resize\n this.host.classList.add('no-animation');\n if (this.resizeTimer !== null) window.clearTimeout(this.resizeTimer);\n this.resizeTimer = window.setTimeout(() => {\n this.host.classList.remove('no-animation');\n }, 300);\n\n this.setWindowHeight();\n }\n\n // Update window height var\n setWindowHeight() {\n if (!this.host) {\n return;\n }\n this.host.style.setProperty('--window-height', `${window.innerHeight}px`);\n\n // Safari might or might not show a blank bar at the bottom where the browser\n // controls should be. This timeout waits for this bar to appear before resetting the available height\n window.setTimeout(() => {\n this.host.style.setProperty('--window-height', `${window.innerHeight}px`);\n }, 100);\n }\n\n openFlyout(id: string) {\n const flyout = this.host.shadowRoot?.getElementById(id);\n\n if (flyout && this.activeFlyout !== '') {\n // Add flyout animation if there's no flyout open\n this.addFlyoutAnimation(flyout, 'expand');\n }\n\n this.activeFlyout = id;\n this.flyoutToggled.emit(id);\n this.setWindowHeight();\n\n if (this.mouseLeaveTimer !== null) {\n window.clearTimeout(this.mouseLeaveTimer);\n this.mouseLeaveTimer = null;\n }\n }\n\n closeFlyout(id?: string, manageFocus = true) {\n if (id === undefined) return;\n const flyout = this.host.shadowRoot?.getElementById(id);\n\n if (flyout) {\n // Add flyout animation for close action\n this.addFlyoutAnimation(flyout, 'collapse', manageFocus);\n }\n\n this.activeFlyout = null;\n this.flyoutToggled.emit();\n }\n\n addFlyoutAnimation(flyout: HTMLElement, direction?: 'expand' | 'collapse', manageFocus = true) {\n // Check if user prefers to see animations or not\n if (!userPrefersReducedMotion()) {\n flyout.classList.add('animate');\n\n // Remove flyout animation after transition ended\n flyout.addEventListener(\n 'transitionend',\n () => {\n if (manageFocus) {\n if (direction === 'expand') {\n flyout.querySelector<HTMLElement>('button.flyout-back-button')?.focus();\n } else if (direction === 'collapse') {\n flyout.parentElement?.querySelector<HTMLElement>('a.main-link')?.focus();\n }\n }\n\n flyout.classList.remove('animate');\n },\n {\n once: true,\n },\n );\n }\n }\n\n isActiveFlyout(id?: string) {\n return id === this.activeFlyout;\n }\n\n handleMouseEnter(level: NavMainEntity) {\n // Cancel opening the flyout if there already is one scheduled to open\n if (this.mouseEnterTimer !== null) {\n window.clearTimeout(this.mouseEnterTimer);\n this.mouseEnterTimer = null;\n }\n\n // Cancel closing if we enter again\n if (this.mouseLeaveTimer && this.activeFlyout === level.id) {\n window.clearTimeout(this.mouseLeaveTimer);\n this.mouseLeaveTimer = null;\n }\n\n if (window.innerWidth >= 1024 && level.flyout.length > 0 && this.activeFlyout !== level.id) {\n // Delay opening the flyout for a moment to give users a chance to move the mouse over the navigation without triggering the flyout\n this.mouseEnterTimer = window.setTimeout(() => {\n this.mouseEnterTimer = null;\n if (level.id !== undefined) this.openFlyout(level.id);\n }, 200);\n }\n }\n\n handleMouseLeave(level: NavMainEntity) {\n // Cancel opening the flyout if a mouseleave event happens before the flyout opened\n if (this.mouseEnterTimer !== null) {\n window.clearTimeout(this.mouseEnterTimer);\n }\n\n // Don't close an open flyout if the mouseleave is from another mainnav entry\n if (this.activeFlyout && this.activeFlyout !== level.id) {\n return;\n }\n\n if (window.innerWidth >= 1024 && level.flyout.length > 0) {\n // Allow the pointer to shortly leave the flyout without closing it. This\n // allows for user mistakes and makes the experience less nervous\n this.mouseLeaveTimer = window.setTimeout(() => {\n this.closeFlyout(level.id, false);\n }, 300);\n }\n }\n\n handleTouchEnd(event: TouchEvent, level: NavMainEntity) {\n if (!this.isActiveFlyout(level.id) && !level.noFlyout) {\n // It's the first touchstart and has a flyout, prevent link activation and open the flyout\n if (event.cancelable) event.preventDefault();\n if (level.id) this.openFlyout(level.id);\n }\n }\n\n handleKeyPress(event: KeyboardEvent, level: NavMainEntity) {\n if (event.key === 'Enter' && !this.isActiveFlyout(level.id) && !level.noFlyout) {\n // It's the first enter keypress and has a flyout, prevent link activation and open the flyout\n event.preventDefault();\n if (level.id) this.openFlyout(level.id);\n }\n }\n\n handleClick(event: MouseEvent, level: NavMainEntity) {\n if (!this.isActiveFlyout(level.id) && !level.noFlyout) {\n // It's the first click, always open the flyout, never the link\n // This is relevant for desktop with active screenreader which\n // translates an enter keypress to a click\n event.preventDefault();\n if (level.id) this.openFlyout(level.id);\n }\n }\n\n /**\n * Toggle the main navigation (only visible on mobile)\n * @param force Force a state\n * @returns Boolean indicating new state\n */\n @Method()\n async toggleDropdown(force?: boolean) {\n this.mobileMenuOpen = force === undefined ? !this.mobileMenuOpen : force;\n this.dropdownToggled.emit({ open: this.mobileMenuOpen, element: this.host });\n\n if (force === false) {\n this.closeFlyout();\n }\n\n this.setWindowHeight();\n\n return this.mobileMenuOpen;\n }\n\n /**\n * Focus the main navigation toggle button\n */\n @Method()\n async setFocus() {\n const firstLink = this.host.shadowRoot?.querySelector<HTMLElement>('.main-link');\n if (firstLink) {\n firstLink.focus();\n }\n }\n\n /**\n * Open a specific flyout\n * @param id Flyout ID\n */\n @Method()\n async setActiveFlyout(id: string | null) {\n this.activeFlyout = id;\n this.flyoutToggled.emit(this.activeFlyout);\n }\n\n render() {\n if (state.localizedConfig?.header === undefined) return;\n const headerConfig = state.localizedConfig.header;\n\n return (\n <Host>\n <SvgSprite />\n <nav\n aria-label={headerConfig.translations.navMainAriaLabel}\n id=\"post-internet-header-main-navigation\"\n class={{ 'main-navigation': true, 'open': this.mobileMenuOpen }}\n role=\"menu\"\n >\n <ul class=\"main-container container\">\n {headerConfig.navMain.map(levelOne => (\n <li\n key={levelOne.text}\n onMouseLeave={() => this.handleMouseLeave(levelOne)}\n onMouseEnter={() => this.handleMouseEnter(levelOne)}\n >\n <LevelOneAction\n level={levelOne}\n isOpen={this.isActiveFlyout(levelOne.id)}\n onTouchEnd={e => this.handleTouchEnd(e, levelOne)}\n onKeyDown={e => this.handleKeyPress(e, levelOne)}\n onClick={e => this.handleClick(e, levelOne)}\n />\n {!levelOne.noFlyout ? renderLevelOneFlyout.bind(this)(levelOne) : null}\n </li>\n ))}\n </ul>\n <slot></slot>\n </nav>\n </Host>\n );\n\n function renderLevelOneFlyout(levelOne: NavMainEntity) {\n return (\n <div id={levelOne.id} class={{ flyout: true, open: this.isActiveFlyout(levelOne.id) }}>\n <div class=\"wide-container\">\n <div class=\"flyout-nav\">\n <button\n class=\"nav-link flyout-back-button\"\n onClick={() => this.closeFlyout(levelOne.id)}\n >\n <SvgIcon name=\"pi-pointy-arrow-right\" classNames=\"mirrored\" />\n <span>{headerConfig.translations.backButtonText}</span>\n </button>\n <button class=\"flyout-close-button\" onClick={() => this.closeFlyout(levelOne.id)}>\n <span class=\"visually-hidden\">\n {levelOne.text}, {headerConfig.translations.mobileNavToggleClose}\n </span>\n <SvgIcon name=\"pi-close\" />\n </button>\n </div>\n <h2 class=\"flyout-title container\">\n <a href={levelOne.url} class=\"nav-link\">\n {levelOne.text}\n </a>\n </h2>\n <div class=\"flyout-row container\">\n {levelOne.flyout.map((flyout, i) => (\n <div key={flyout.title} class=\"flyout-column\">\n {flyout.title ? <h3 id={`${levelOne.id}-column-${i}`}>{flyout.title}</h3> : null}\n <ul\n class=\"flyout-linklist\"\n aria-labelledby={flyout.title ? `${levelOne.id}-column-${i}` : undefined}\n >\n {flyout.linkList.map(link => (\n <li key={link.url}>\n <a\n class={{\n 'flyout-link': true,\n 'active': !!link?.isActiveOverride,\n }}\n href={link.url}\n target={link.target}\n >\n {link.title}\n {link?.isActiveOverride ? (\n <span class=\"visually-hidden\">\n , {translate('Active navigation element')}\n </span>\n ) : null}\n </a>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n }\n }\n}\n"],"mappings":"wRAIO,MAAMA,EAAkBC,I,UAO7B,MAAMC,EAAUD,EAAME,MAAMC,IAAM,IAAM,SAExC,OACEC,EAACH,EAAO,CACNI,MAAO,CACL,YAAa,KACbC,SAAYN,EAAME,MAAMK,iBACxBC,MAASR,EAAMS,QAEjBC,KAAMV,EAAME,MAAMC,IAClBQ,QACEC,EAAAZ,EAAME,MAAMS,SAAK,MAAAC,SAAA,SAAAA,EAAEC,WAAUC,EAAAd,EAAME,MAAMS,SAAK,MAAAG,SAAA,SAAAA,EAAED,YAAWE,EAAAf,EAAME,MAAMc,QAAI,MAAAD,SAAA,SAAAA,EAAEF,QACzEb,EAAME,MAAMS,MACZM,UAENC,SAAUlB,EAAME,MAAMC,IAAMc,UAAY,EAAC,iBACzBjB,EAAME,MAAMiB,SAAW,GAAE,gBAC1BnB,EAAME,MAAMiB,SAAW,KAAOnB,EAAMS,OAAS,GAC5DW,WAAYC,GAAKrB,EAAMoB,WAAWC,GAClCC,UAAWD,GAAKrB,EAAMsB,UAAUD,GAChCE,QAASF,GAAKrB,EAAMuB,QAAQF,IAE5BjB,EAAA,YAAOJ,EAAME,MAAMc,MAClBhB,EAAME,MAAMK,iBACXH,EAAA,QAAMC,MAAM,mBAAmBmB,EAAU,8BACvC,KACJpB,EAAA,qBAAiB,QACfA,EAAA,OAAKM,KAAK,4BAEJ,ECxCd,MAAMe,EAAwB,q1Y,MCqBjBC,EAAkB,M,uHAOrBC,KAAAC,YAA6B,KAC7BD,KAAAE,gBAAiC,KACjCF,KAAAG,gBAAiC,K,0DAEzCC,oBACEJ,KAAKK,gBAAkBC,EAAS,KAAK,IAAMN,KAAKO,iBAChDC,OAAOC,iBAAiB,SAAUT,KAAKK,gBAAiB,CAAEK,QAAS,OACnEV,KAAKW,iB,CAGPC,uBACEJ,OAAOK,oBAAoB,SAAUb,KAAKK,iBAC1C,GAAIL,KAAKG,kBAAoB,KAAMK,OAAOM,aAAad,KAAKG,iBAC5D,GAAIH,KAAKE,kBAAoB,KAAMM,OAAOM,aAAad,KAAKE,gB,CAG9DK,eAEEP,KAAKe,KAAKC,UAAUC,IAAI,gBACxB,GAAIjB,KAAKC,cAAgB,KAAMO,OAAOM,aAAad,KAAKC,aACxDD,KAAKC,YAAcO,OAAOU,YAAW,KACnClB,KAAKe,KAAKC,UAAUG,OAAO,eAAe,GACzC,KAEHnB,KAAKW,iB,CAIPA,kBACE,IAAKX,KAAKe,KAAM,CACd,M,CAEFf,KAAKe,KAAKK,MAAMC,YAAY,kBAAmB,GAAGb,OAAOc,iBAIzDd,OAAOU,YAAW,KAChBlB,KAAKe,KAAKK,MAAMC,YAAY,kBAAmB,GAAGb,OAAOc,gBAAgB,GACxE,I,CAGLC,WAAWC,G,MACT,MAAMC,GAASxC,EAAAe,KAAKe,KAAKW,cAAU,MAAAzC,SAAA,SAAAA,EAAE0C,eAAeH,GAEpD,GAAIC,GAAUzB,KAAK4B,eAAiB,GAAI,CAEtC5B,KAAK6B,mBAAmBJ,EAAQ,S,CAGlCzB,KAAK4B,aAAeJ,EACpBxB,KAAK8B,cAAcC,KAAKP,GACxBxB,KAAKW,kBAEL,GAAIX,KAAKE,kBAAoB,KAAM,CACjCM,OAAOM,aAAad,KAAKE,iBACzBF,KAAKE,gBAAkB,I,EAI3B8B,YAAYR,EAAaS,EAAc,M,MACrC,GAAIT,IAAOlC,UAAW,OACtB,MAAMmC,GAASxC,EAAAe,KAAKe,KAAKW,cAAU,MAAAzC,SAAA,SAAAA,EAAE0C,eAAeH,GAEpD,GAAIC,EAAQ,CAEVzB,KAAK6B,mBAAmBJ,EAAQ,WAAYQ,E,CAG9CjC,KAAK4B,aAAe,KACpB5B,KAAK8B,cAAcC,M,CAGrBF,mBAAmBJ,EAAqBS,EAAmCD,EAAc,MAEvF,IAAKE,IAA4B,CAC/BV,EAAOT,UAAUC,IAAI,WAGrBQ,EAAOhB,iBACL,iBACA,K,UACE,GAAIwB,EAAa,CACf,GAAIC,IAAc,SAAU,EAC1BjD,EAAAwC,EAAOW,cAA2B,gCAA4B,MAAAnD,SAAA,SAAAA,EAAEJ,O,MAC3D,GAAIqD,IAAc,WAAY,EACnC9C,GAAAD,EAAAsC,EAAOY,iBAAa,MAAAlD,SAAA,SAAAA,EAAEiD,cAA2B,kBAAc,MAAAhD,SAAA,SAAAA,EAAEP,O,EAIrE4C,EAAOT,UAAUG,OAAO,UAAU,GAEpC,CACEmB,KAAM,M,EAMdC,eAAef,GACb,OAAOA,IAAOxB,KAAK4B,Y,CAGrBY,iBAAiBjE,GAEf,GAAIyB,KAAKG,kBAAoB,KAAM,CACjCK,OAAOM,aAAad,KAAKG,iBACzBH,KAAKG,gBAAkB,I,CAIzB,GAAIH,KAAKE,iBAAmBF,KAAK4B,eAAiBrD,EAAMiD,GAAI,CAC1DhB,OAAOM,aAAad,KAAKE,iBACzBF,KAAKE,gBAAkB,I,CAGzB,GAAIM,OAAOiC,YAAc,MAAQlE,EAAMkD,OAAOiB,OAAS,GAAK1C,KAAK4B,eAAiBrD,EAAMiD,GAAI,CAE1FxB,KAAKG,gBAAkBK,OAAOU,YAAW,KACvClB,KAAKG,gBAAkB,KACvB,GAAI5B,EAAMiD,KAAOlC,UAAWU,KAAKuB,WAAWhD,EAAMiD,GAAG,GACpD,I,EAIPmB,iBAAiBpE,GAEf,GAAIyB,KAAKG,kBAAoB,KAAM,CACjCK,OAAOM,aAAad,KAAKG,gB,CAI3B,GAAIH,KAAK4B,cAAgB5B,KAAK4B,eAAiBrD,EAAMiD,GAAI,CACvD,M,CAGF,GAAIhB,OAAOiC,YAAc,MAAQlE,EAAMkD,OAAOiB,OAAS,EAAG,CAGxD1C,KAAKE,gBAAkBM,OAAOU,YAAW,KACvClB,KAAKgC,YAAYzD,EAAMiD,GAAI,MAAM,GAChC,I,EAIPoB,eAAeC,EAAmBtE,GAChC,IAAKyB,KAAKuC,eAAehE,EAAMiD,MAAQjD,EAAMiB,SAAU,CAErD,GAAIqD,EAAMC,WAAYD,EAAME,iBAC5B,GAAIxE,EAAMiD,GAAIxB,KAAKuB,WAAWhD,EAAMiD,G,EAIxCwB,eAAeH,EAAsBtE,GACnC,GAAIsE,EAAMI,MAAQ,UAAYjD,KAAKuC,eAAehE,EAAMiD,MAAQjD,EAAMiB,SAAU,CAE9EqD,EAAME,iBACN,GAAIxE,EAAMiD,GAAIxB,KAAKuB,WAAWhD,EAAMiD,G,EAIxC0B,YAAYL,EAAmBtE,GAC7B,IAAKyB,KAAKuC,eAAehE,EAAMiD,MAAQjD,EAAMiB,SAAU,CAIrDqD,EAAME,iBACN,GAAIxE,EAAMiD,GAAIxB,KAAKuB,WAAWhD,EAAMiD,G,EAUxC2B,qBAAqBC,GACnBpD,KAAKqD,eAAiBD,IAAU9D,WAAaU,KAAKqD,eAAiBD,EACnEpD,KAAKsD,gBAAgBvB,KAAK,CAAEwB,KAAMvD,KAAKqD,eAAgBG,QAASxD,KAAKe,OAErE,GAAIqC,IAAU,MAAO,CACnBpD,KAAKgC,a,CAGPhC,KAAKW,kBAEL,OAAOX,KAAKqD,c,CAOdF,iB,MACE,MAAMM,GAAYxE,EAAAe,KAAKe,KAAKW,cAAU,MAAAzC,SAAA,SAAAA,EAAEmD,cAA2B,cACnE,GAAIqB,EAAW,CACbA,EAAU5E,O,EASdsE,sBAAsB3B,GACpBxB,KAAK4B,aAAeJ,EACpBxB,KAAK8B,cAAcC,KAAK/B,KAAK4B,a,CAG/B8B,S,MACE,KAAIzE,EAAA0E,EAAMC,mBAAe,MAAA3E,SAAA,SAAAA,EAAE4E,UAAWvE,UAAW,OACjD,MAAMwE,EAAeH,EAAMC,gBAAgBC,OAE3C,OACEpF,EAACsF,EAAI,KACHtF,EAACuF,EAAS,MACVvF,EAAA,oBACcqF,EAAaG,aAAaC,iBACtC1C,GAAG,uCACH9C,MAAO,CAAE,kBAAmB,KAAM6E,KAAQvD,KAAKqD,gBAC/Cc,KAAK,QAEL1F,EAAA,MAAIC,MAAM,4BACPoF,EAAaM,QAAQC,KAAIC,GACxB7F,EAAA,MACEwE,IAAKqB,EAASjF,KACdkF,aAAc,IAAMvE,KAAK2C,iBAAiB2B,GAC1CE,aAAc,IAAMxE,KAAKwC,iBAAiB8B,IAE1C7F,EAACL,EAAc,CACbG,MAAO+F,EACPxF,OAAQkB,KAAKuC,eAAe+B,EAAS9C,IACrC/B,WAAYC,GAAKM,KAAK4C,eAAelD,EAAG4E,GACxC3E,UAAWD,GAAKM,KAAKgD,eAAetD,EAAG4E,GACvC1E,QAASF,GAAKM,KAAKkD,YAAYxD,EAAG4E,MAElCA,EAAS9E,SAAWiF,EAAqBC,KAAK1E,KAA1ByE,CAAgCH,GAAY,SAIxE7F,EAAA,eAKN,SAASgG,EAAqBH,GAC5B,OACE7F,EAAA,OAAK+C,GAAI8C,EAAS9C,GAAI9C,MAAO,CAAE+C,OAAQ,KAAM8B,KAAMvD,KAAKuC,eAAe+B,EAAS9C,MAC9E/C,EAAA,OAAKC,MAAM,kBACTD,EAAA,OAAKC,MAAM,cACTD,EAAA,UACEC,MAAM,8BACNkB,QAAS,IAAMI,KAAKgC,YAAYsC,EAAS9C,KAEzC/C,EAACkG,EAAO,CAACC,KAAK,wBAAwBC,WAAW,aACjDpG,EAAA,YAAOqF,EAAaG,aAAaa,iBAEnCrG,EAAA,UAAQC,MAAM,sBAAsBkB,QAAS,IAAMI,KAAKgC,YAAYsC,EAAS9C,KAC3E/C,EAAA,QAAMC,MAAM,mBACT4F,EAASjF,KAAI,KAAIyE,EAAaG,aAAac,sBAE9CtG,EAACkG,EAAO,CAACC,KAAK,eAGlBnG,EAAA,MAAIC,MAAM,0BACRD,EAAA,KAAGM,KAAMuF,EAAS9F,IAAKE,MAAM,YAC1B4F,EAASjF,OAGdZ,EAAA,OAAKC,MAAM,wBACR4F,EAAS7C,OAAO4C,KAAI,CAAC5C,EAAQuD,IAC5BvG,EAAA,OAAKwE,IAAKxB,EAAOzC,MAAON,MAAM,iBAC3B+C,EAAOzC,MAAQP,EAAA,MAAI+C,GAAI,GAAG8C,EAAS9C,aAAawD,KAAMvD,EAAOzC,OAAc,KAC5EP,EAAA,MACEC,MAAM,kBAAiB,kBACN+C,EAAOzC,MAAQ,GAAGsF,EAAS9C,aAAawD,IAAM1F,WAE9DmC,EAAOwD,SAASZ,KAAIa,GACnBzG,EAAA,MAAIwE,IAAKiC,EAAK1G,KACZC,EAAA,KACEC,MAAO,CACL,cAAe,KACfC,UAAYuG,IAAI,MAAJA,SAAI,SAAJA,EAAMtG,mBAEpBG,KAAMmG,EAAK1G,IACX2G,OAAQD,EAAKC,QAEZD,EAAKlG,OACLkG,IAAI,MAAJA,SAAI,SAAJA,EAAMtG,kBACLH,EAAA,QAAMC,MAAM,mBAAiB,KACxBmB,EAAU,8BAEb,e"}
1
+ {"version":3,"names":["LevelOneAction","props","TagName","level","url","h","class","active","isActiveOverride","focus","isOpen","href","title","_a","trim","_b","_c","text","undefined","tabindex","noFlyout","onTouchEnd","e","onKeyDown","onClick","translate","postMainNavigationCss","PostMainNavigation","this","resizeTimer","mouseLeaveTimer","mouseEnterTimer","connectedCallback","throttledResize","throttle","handleResize","window","addEventListener","passive","setWindowHeight","disconnectedCallback","removeEventListener","clearTimeout","host","classList","add","setTimeout","remove","style","setProperty","innerHeight","openFlyout","id","flyout","shadowRoot","getElementById","activeFlyout","addFlyoutAnimation","flyoutToggled","emit","closeFlyout","manageFocus","direction","userPrefersReducedMotion","querySelector","parentElement","once","isActiveFlyout","handleMouseEnter","innerWidth","length","handleMouseLeave","handleTouchEnd","event","cancelable","preventDefault","handleKeyPress","key","handleClick","async","force","mobileMenuOpen","dropdownToggled","open","element","firstLink","render","state","localizedConfig","header","headerConfig","Host","SvgSprite","translations","navMainAriaLabel","role","navMain","map","levelOne","onMouseLeave","onMouseEnter","renderLevelOneFlyout","bind","SvgIcon","name","classNames","backButtonText","mobileNavToggleClose","i","linkList","link","target"],"sources":["./src/components/post-main-navigation/components/level-one-action.component.tsx","./src/components/post-main-navigation/post-main-navigation.scss?tag=post-main-navigation&encapsulation=shadow","./src/components/post-main-navigation/post-main-navigation.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { NavMainEntity } from '../../../models/header.model';\nimport { translate } from '../../../services/language.service';\n\nexport const LevelOneAction = (props: {\n level: NavMainEntity;\n isOpen: boolean;\n onTouchEnd: (e: any) => void;\n onKeyDown: (e: any) => void;\n onClick: (e: any) => void;\n}) => {\n const TagName = props.level.url ? 'a' : 'button';\n\n return (\n <TagName\n class={{\n 'main-link': true,\n 'active': !!props.level.isActiveOverride,\n 'focus': props.isOpen,\n }}\n href={props.level.url}\n title={\n props.level.title?.trim() && props.level.title?.trim() !== props.level.text?.trim()\n ? props.level.title\n : undefined\n }\n tabindex={props.level.url ? undefined : 0}\n aria-haspopup={!props.level.noFlyout + ''}\n aria-expanded={props.level.noFlyout ? null : props.isOpen + ''}\n onTouchEnd={e => props.onTouchEnd(e)}\n onKeyDown={e => props.onKeyDown(e)}\n onClick={e => props.onClick(e)}\n >\n <span>{props.level.text}</span>\n {props.level.isActiveOverride ? (\n <span class=\"visually-hidden\">{translate('Active navigation element')}</span>\n ) : null}\n <svg aria-hidden=\"true\">\n <use href=\"#pi-pointy-arrow-right\" />\n </svg>\n </TagName>\n );\n};\n","@use '@swisspost/design-system-styles/variables/color';\n@use '@swisspost/design-system-styles/placeholders/text';\n@use '@swisspost/design-system-styles/functions';\n@use '../../utils/utils.scss';\n@use '../../utils/mixins.scss';\n\n:host {\n --host-window-height: var(--window-height, 100vh);\n --calculated-header-height: calc(var(--header-height) + 1px);\n\n display: block;\n min-width: 0;\n height: var(--header-height);\n}\n\n:host(.no-animation) {\n * {\n animation: none !important;\n transition: none !important;\n }\n}\n\n.main-navigation,\n.main-container,\n.main-container li,\n.main-link {\n @include mixins.min(lg) {\n height: 100%;\n }\n}\n\n.main-navigation {\n font-size: functions.px-to-rem(18px);\n\n @include mixins.min(lg) {\n font-size: functions.px-to-rem(16px);\n margin: 0 0.75rem;\n }\n\n @include mixins.min(xl) {\n font-size: functions.px-to-rem(18px);\n }\n\n @include mixins.min(xxl) {\n font-size: functions.px-to-rem(20px);\n }\n\n @include mixins.max(lg) {\n position: absolute;\n top: var(--calculated-header-height);\n left: 0;\n background: white;\n height: calc(var(--host-window-height) - var(--calculated-header-height));\n width: 100%;\n margin: 0;\n overflow: hidden scroll;\n -webkit-overflow-scrolling: touch;\n overscroll-behavior: contain;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n z-index: -1;\n visibility: hidden;\n transform: translateY(-100%);\n transition: transform 0.35s, visibility 0.35s;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &.open {\n transform: translateY(0);\n visibility: visible;\n }\n }\n}\n\n.main-container {\n @extend %no-list;\n\n display: flex;\n align-items: center;\n justify-content: flex-start;\n\n @include mixins.max(lg) {\n flex-direction: column;\n align-items: stretch;\n justify-content: flex-start;\n padding-top: 2.5rem;\n padding-bottom: 2.5rem;\n\n > li + li {\n border-top: 1px solid color.$gray-10;\n }\n }\n\n @include mixins.min(lg) {\n padding-right: 0;\n padding-left: 0;\n }\n\n > li {\n flex: 0 1 auto;\n min-width: 0;\n }\n}\n\n.main-link {\n @extend %nav-link;\n\n display: flex;\n align-items: center;\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n text-align: left;\n cursor: pointer;\n width: 100%;\n\n @include mixins.min(lg) {\n svg {\n display: none;\n }\n }\n\n @include mixins.max(lg) {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-weight: 300;\n padding: 0.625rem 0;\n width: 100%;\n text-align: left;\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.main-link,\n.flyout-link {\n position: relative;\n color: black;\n\n &::after {\n content: '';\n position: absolute;\n bottom: -1px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: transparent;\n opacity: 0;\n transform: scaleX(0.8);\n transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1),\n transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n\n &:hover,\n &.focus {\n &::after {\n background-color: color.$gray-20;\n opacity: 1;\n transform: scale(1);\n transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1),\n transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n }\n }\n\n &.active {\n font-weight: 700;\n\n &::after {\n background-color: color.$yellow;\n opacity: 1;\n transform: scale(1);\n }\n }\n}\n\n.flyout {\n left: 0;\n width: 100%;\n background: white;\n padding-bottom: 3rem;\n overflow: auto;\n overscroll-behavior: contain;\n visibility: hidden;\n\n @include mixins.min(lg) {\n position: absolute;\n top: 100%;\n max-height: calc(100vh - var(--header-height) - var(--meta-header-height) - 1px);\n z-index: -1;\n box-shadow: 0 0 1px 0 rgb(0 0 0 / 40%);\n transform: translateY(-100%);\n\n &.open {\n box-shadow: 0 0 8px 0 rgb(0 0 0 / 40%);\n transform: translateY(0);\n }\n }\n\n @include mixins.max(lg) {\n position: fixed;\n top: 0;\n height: 100%;\n z-index: 1;\n transform: translateX(100%);\n\n &.open {\n transform: translateX(0);\n }\n }\n\n &.open {\n visibility: visible;\n }\n\n &.animate {\n transition: transform 0.35s, visibility 0.35s, box-shadow 0.35s;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n}\n\n.flyout-nav {\n @extend %font-curve-small;\n\n display: flex;\n justify-content: space-between;\n min-height: 3.5rem;\n\n // Change box-sizing to content-box to add 1px border width to flyout-nav hight.\n // This ensures flyout-nav has same hight as main-navigation-container.\n box-sizing: content-box;\n}\n\n.flyout-row {\n display: flex;\n gap: 1.5rem;\n\n @include mixins.max(lg) {\n display: grid;\n grid-template-columns: 1fr 1fr;\n }\n\n @include mixins.max(rg) {\n grid-template-columns: 1fr;\n }\n}\n\n.flyout-column {\n flex: 1;\n max-width: 25%;\n\n @include mixins.max(lg) {\n max-width: none;\n }\n\n h3 {\n @extend %font-curve-small;\n margin-top: 0;\n }\n}\n\n.flyout-back-button {\n @include mixins.container-padding();\n\n display: flex;\n align-items: center;\n font-size: functions.px-to-rem(16px);\n font-weight: 400;\n cursor: pointer;\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n\n @include mixins.min(lg) {\n display: none;\n }\n}\n\n.flyout-close-button {\n @extend %nav-link;\n\n display: flex;\n align-items: center;\n margin-left: auto;\n padding: 0 1.5rem;\n cursor: pointer;\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n\n @include mixins.max(lg) {\n display: none;\n }\n}\n\n.flyout-linklist {\n @extend %no-list;\n\n li {\n border-top: 1px solid color.$gray-10;\n }\n\n &:first-child > li {\n border-top-color: transparent;\n }\n}\n\n.flyout-link {\n @extend %nav-link;\n\n display: block;\n padding: 0.75rem 0;\n}\n\n.flyout-title {\n @extend %font-curve-bigger-regular;\n\n margin: 2.5rem 0 1.5rem 0;\n\n @include mixins.min(lg) {\n display: none;\n }\n}\n","import { Component, Host, h, State, Method, Event, Element, EventEmitter } from '@stencil/core';\nimport { throttle } from 'throttle-debounce';\nimport { state } from '../../data/store';\nimport {\n DropdownElement,\n DropdownEvent,\n HasDropdown,\n IsFocusable,\n NavMainEntity,\n} from '../../models/header.model';\nimport { userPrefersReducedMotion } from '../../services/ui.service';\nimport { translate } from '../../services/language.service';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { LevelOneAction } from './components/level-one-action.component';\n\n@Component({\n tag: 'post-main-navigation',\n styleUrl: 'post-main-navigation.scss',\n shadow: true,\n})\nexport class PostMainNavigation implements HasDropdown, IsFocusable {\n @State() activeFlyout: string | null;\n @State() mobileMenuOpen: boolean;\n @Event() dropdownToggled: EventEmitter<DropdownEvent>;\n @Event() flyoutToggled: EventEmitter<string | null>;\n @Element() host: DropdownElement;\n private throttledResize: throttle<() => void>;\n private resizeTimer: number | null = null;\n private mouseLeaveTimer: number | null = null;\n private mouseEnterTimer: number | null = null;\n\n connectedCallback() {\n this.throttledResize = throttle(300, () => this.handleResize());\n window.addEventListener('resize', this.throttledResize, { passive: true });\n this.setWindowHeight();\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.throttledResize);\n if (this.mouseEnterTimer !== null) window.clearTimeout(this.mouseEnterTimer);\n if (this.mouseLeaveTimer !== null) window.clearTimeout(this.mouseLeaveTimer);\n }\n\n handleResize() {\n // Suspend all animations and transitions on window resize\n this.host.classList.add('no-animation');\n if (this.resizeTimer !== null) window.clearTimeout(this.resizeTimer);\n this.resizeTimer = window.setTimeout(() => {\n this.host.classList.remove('no-animation');\n }, 300);\n\n this.setWindowHeight();\n }\n\n // Update window height var\n setWindowHeight() {\n if (!this.host) {\n return;\n }\n this.host.style.setProperty('--window-height', `${window.innerHeight}px`);\n\n // Safari might or might not show a blank bar at the bottom where the browser\n // controls should be. This timeout waits for this bar to appear before resetting the available height\n window.setTimeout(() => {\n this.host.style.setProperty('--window-height', `${window.innerHeight}px`);\n }, 100);\n }\n\n openFlyout(id: string) {\n const flyout = this.host.shadowRoot?.getElementById(id);\n\n if (flyout && this.activeFlyout !== '') {\n // Add flyout animation if there's no flyout open\n this.addFlyoutAnimation(flyout, 'expand');\n }\n\n this.activeFlyout = id;\n this.flyoutToggled.emit(id);\n this.setWindowHeight();\n\n if (this.mouseLeaveTimer !== null) {\n window.clearTimeout(this.mouseLeaveTimer);\n this.mouseLeaveTimer = null;\n }\n }\n\n closeFlyout(id?: string, manageFocus = true) {\n if (id === undefined) return;\n const flyout = this.host.shadowRoot?.getElementById(id);\n\n if (flyout) {\n // Add flyout animation for close action\n this.addFlyoutAnimation(flyout, 'collapse', manageFocus);\n }\n\n this.activeFlyout = null;\n this.flyoutToggled.emit();\n }\n\n addFlyoutAnimation(flyout: HTMLElement, direction?: 'expand' | 'collapse', manageFocus = true) {\n // Check if user prefers to see animations or not\n if (!userPrefersReducedMotion()) {\n flyout.classList.add('animate');\n\n // Remove flyout animation after transition ended\n flyout.addEventListener(\n 'transitionend',\n () => {\n if (manageFocus) {\n if (direction === 'expand') {\n flyout.querySelector<HTMLElement>('button.flyout-back-button')?.focus();\n } else if (direction === 'collapse') {\n flyout.parentElement?.querySelector<HTMLElement>('a.main-link')?.focus();\n }\n }\n\n flyout.classList.remove('animate');\n },\n {\n once: true,\n },\n );\n }\n }\n\n isActiveFlyout(id?: string) {\n return id === this.activeFlyout;\n }\n\n handleMouseEnter(level: NavMainEntity) {\n // Cancel opening the flyout if there already is one scheduled to open\n if (this.mouseEnterTimer !== null) {\n window.clearTimeout(this.mouseEnterTimer);\n this.mouseEnterTimer = null;\n }\n\n // Cancel closing if we enter again\n if (this.mouseLeaveTimer && this.activeFlyout === level.id) {\n window.clearTimeout(this.mouseLeaveTimer);\n this.mouseLeaveTimer = null;\n }\n\n if (window.innerWidth >= 1024 && level.flyout.length > 0 && this.activeFlyout !== level.id) {\n // Delay opening the flyout for a moment to give users a chance to move the mouse over the navigation without triggering the flyout\n this.mouseEnterTimer = window.setTimeout(() => {\n this.mouseEnterTimer = null;\n if (level.id !== undefined) this.openFlyout(level.id);\n }, 200);\n }\n }\n\n handleMouseLeave(level: NavMainEntity) {\n // Cancel opening the flyout if a mouseleave event happens before the flyout opened\n if (this.mouseEnterTimer !== null) {\n window.clearTimeout(this.mouseEnterTimer);\n }\n\n // Don't close an open flyout if the mouseleave is from another mainnav entry\n if (this.activeFlyout && this.activeFlyout !== level.id) {\n return;\n }\n\n if (window.innerWidth >= 1024 && level.flyout.length > 0) {\n // Allow the pointer to shortly leave the flyout without closing it. This\n // allows for user mistakes and makes the experience less nervous\n this.mouseLeaveTimer = window.setTimeout(() => {\n this.closeFlyout(level.id, false);\n }, 300);\n }\n }\n\n handleTouchEnd(event: TouchEvent, level: NavMainEntity) {\n if (!this.isActiveFlyout(level.id) && !level.noFlyout) {\n // It's the first touchstart and has a flyout, prevent link activation and open the flyout\n if (event.cancelable) event.preventDefault();\n if (level.id) this.openFlyout(level.id);\n }\n }\n\n handleKeyPress(event: KeyboardEvent, level: NavMainEntity) {\n if (event.key === 'Enter' && !this.isActiveFlyout(level.id) && !level.noFlyout) {\n // It's the first enter keypress and has a flyout, prevent link activation and open the flyout\n event.preventDefault();\n if (level.id) this.openFlyout(level.id);\n }\n }\n\n handleClick(event: MouseEvent, level: NavMainEntity) {\n if (!this.isActiveFlyout(level.id) && !level.noFlyout) {\n // It's the first click, always open the flyout, never the link\n // This is relevant for desktop with active screenreader which\n // translates an enter keypress to a click\n event.preventDefault();\n if (level.id) this.openFlyout(level.id);\n }\n }\n\n /**\n * Toggle the main navigation (only visible on mobile)\n * @param force Force a state\n * @returns Boolean indicating new state\n */\n @Method()\n async toggleDropdown(force?: boolean) {\n this.mobileMenuOpen = force === undefined ? !this.mobileMenuOpen : force;\n this.dropdownToggled.emit({ open: this.mobileMenuOpen, element: this.host });\n\n if (force === false) {\n this.closeFlyout();\n }\n\n this.setWindowHeight();\n\n return this.mobileMenuOpen;\n }\n\n /**\n * Focus the main navigation toggle button\n */\n @Method()\n async setFocus() {\n const firstLink = this.host.shadowRoot?.querySelector<HTMLElement>('.main-link');\n if (firstLink) {\n firstLink.focus();\n }\n }\n\n /**\n * Open a specific flyout\n * @param id Flyout ID\n */\n @Method()\n async setActiveFlyout(id: string | null) {\n this.activeFlyout = id;\n this.flyoutToggled.emit(this.activeFlyout);\n }\n\n render() {\n if (state.localizedConfig?.header === undefined) return;\n const headerConfig = state.localizedConfig.header;\n\n return (\n <Host>\n <SvgSprite />\n <nav\n aria-label={headerConfig.translations.navMainAriaLabel}\n id=\"post-internet-header-main-navigation\"\n class={{ 'main-navigation': true, 'open': this.mobileMenuOpen }}\n role=\"menu\"\n >\n <ul class=\"main-container container\">\n {headerConfig.navMain.map(levelOne => (\n <li\n key={levelOne.text}\n onMouseLeave={() => this.handleMouseLeave(levelOne)}\n onMouseEnter={() => this.handleMouseEnter(levelOne)}\n >\n <LevelOneAction\n level={levelOne}\n isOpen={this.isActiveFlyout(levelOne.id)}\n onTouchEnd={e => this.handleTouchEnd(e, levelOne)}\n onKeyDown={e => this.handleKeyPress(e, levelOne)}\n onClick={e => this.handleClick(e, levelOne)}\n />\n {!levelOne.noFlyout ? renderLevelOneFlyout.bind(this)(levelOne) : null}\n </li>\n ))}\n </ul>\n <slot></slot>\n </nav>\n </Host>\n );\n\n function renderLevelOneFlyout(levelOne: NavMainEntity) {\n return (\n <div id={levelOne.id} class={{ flyout: true, open: this.isActiveFlyout(levelOne.id) }}>\n <div class=\"wide-container\">\n <div class=\"flyout-nav\">\n <button\n class=\"nav-link flyout-back-button\"\n onClick={() => this.closeFlyout(levelOne.id)}\n >\n <SvgIcon name=\"pi-pointy-arrow-right\" classNames=\"mirrored\" />\n <span>{headerConfig.translations.backButtonText}</span>\n </button>\n <button class=\"flyout-close-button\" onClick={() => this.closeFlyout(levelOne.id)}>\n <span class=\"visually-hidden\">\n {levelOne.text}, {headerConfig.translations.mobileNavToggleClose}\n </span>\n <SvgIcon name=\"pi-close\" />\n </button>\n </div>\n <h2 class=\"flyout-title container\">\n <a href={levelOne.url} class=\"nav-link\">\n {levelOne.text}\n </a>\n </h2>\n <div class=\"flyout-row container\">\n {levelOne.flyout.map((flyout, i) => (\n <div key={flyout.title} class=\"flyout-column\">\n {flyout.title ? <h3 id={`${levelOne.id}-column-${i}`}>{flyout.title}</h3> : null}\n <ul\n class=\"flyout-linklist\"\n aria-labelledby={flyout.title ? `${levelOne.id}-column-${i}` : undefined}\n >\n {flyout.linkList.map(link => (\n <li key={link.url}>\n <a\n class={{\n 'flyout-link': true,\n 'active': !!link?.isActiveOverride,\n }}\n href={link.url}\n target={link.target}\n >\n {link.title}\n {link?.isActiveOverride ? (\n <span class=\"visually-hidden\">\n , {translate('Active navigation element')}\n </span>\n ) : null}\n </a>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n }\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ System.register(["./p-1d455921.system.js","./p-1ec4e0ee.system.js"],(function(t){"use strict";var e,i,o,n;return{setters:[function(t){e=t.r;i=t.h;o=t.H},function(t){n=t.s}],execute:function(){var r='@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:transparent;border:none;border-radius:0;padding:0}.nav-link,.meta-link{outline:none;outline-offset:2px;text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.nav-link:is(:focus-visible,:focus-within,.pretend-focus),.meta-link:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.nav-link:hover,.meta-link:hover,.nav-link:focus,.meta-link:focus{color:black}.nav-link:focus-visible,.meta-link:focus-visible{z-index:1;position:relative}.nav-link>svg,.meta-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.nav-link>span,.meta-link>span{-ms-flex-negative:1;flex-shrink:1}.no-list,.meta-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", 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:white}}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}@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;font-size:0.875rem}.meta-container{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-align:center;align-items:center;min-height:3rem;background:#faf9f8}@media (min-width: 1441px){.meta-container:not(.full-width){margin:0 auto;max-width:1440px}}.meta-container.vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;padding-top:2.5rem;padding-bottom:2.5rem}@media (max-width: 599.98px){.meta-container.vertical{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.meta-container.vertical{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.meta-container.vertical{padding-right:40px;padding-left:40px}}@media (min-width: 1024px){.meta-container.vertical{display:none}}.meta-container.horizontal ::slotted(*){--separator-display:block;--separator-height:2.125rem}.meta-container.horizontal::before{display:block;content:"";position:absolute;top:0px;height:var(--meta-header-height);background-color:#faf9f8;left:50%;width:50%}.horizontal .meta-navigation{position:relative;padding-right:1rem}.meta-list{display:-ms-flexbox;display:flex}.vertical .meta-list{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start}.meta-link{font-size:0.875rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0 0.5rem;min-height:2.125rem;border-radius:3px}.meta-link.active{background:#fc0;color:black}.vertical .meta-link{color:black;padding:0}.vertical .meta-link.active{padding:0 0.5rem;margin-left:-0.5rem}';var a=t("post_meta_navigation",function(){function t(t){e(this,t);this.orientation=undefined;this.fullWidth=false}t.prototype.render=function(){var t,e;if(((t=n.localizedConfig)===null||t===void 0?void 0:t.header.navMeta)===undefined)return;var r=n.localizedConfig.header;return i(o,null,i("div",{class:"meta-container ".concat(this.orientation).concat(this.fullWidth?" full-width":"")},i("nav",{"aria-label":r.translations.navMetaAriaLabel,class:"meta-navigation"},i("ul",{class:"meta-list"},(e=r.navMeta)===null||e===void 0?void 0:e.filter((function(t){return!t.isHomeLink})).map((function(t){return i("li",{key:t.url},i("a",{class:{active:t.isActive,"meta-link":true},target:t.target,href:t.url},i("span",{"aria-hidden":"true"},t.text)))})))),i("slot",null)))};return t}());a.style=r}}}));
2
+ //# sourceMappingURL=p-3c8504b4.system.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["postMetaNavigationCss","PostMetaNavigation","exports","class_1","prototype","render","_a","state","localizedConfig","header","navMeta","undefined","headerConfig","h","Host","class","concat","this","orientation","fullWidth","translations","navMetaAriaLabel","_b","filter","meta","isHomeLink","map","key","url","active","isActive","target","href","text"],"sources":["src/components/post-meta-navigation/post-meta-navigation.scss?tag=post-meta-navigation&encapsulation=shadow","src/components/post-meta-navigation/post-meta-navigation.tsx"],"sourcesContent":["@use '@swisspost/design-system-styles/variables/color';\n@use '@swisspost/design-system-styles/functions';\n@use '../../utils/utils.scss';\n@use '../../utils/mixins.scss';\n\n:host {\n display: block;\n font-size: functions.px-to-rem(14px);\n}\n\n.meta-container {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n min-height: functions.px-to-rem(48px);\n\n background: color.$gray-background-light;\n\n @media (min-width: 1441px) {\n &:not(.full-width) {\n margin: 0 auto;\n max-width: 1440px;\n }\n }\n\n &.vertical {\n @include mixins.container-padding();\n\n flex-direction: column;\n align-items: flex-start;\n padding-top: 2.5rem;\n padding-bottom: 2.5rem;\n\n @include mixins.min(lg) {\n display: none;\n }\n }\n\n &.horizontal {\n ::slotted(*) {\n --separator-display: block;\n --separator-height: #{functions.px-to-rem(34px)};\n }\n\n &::before {\n display: block;\n content: '';\n position: absolute;\n top: 0px;\n height: var(--meta-header-height);\n background-color: color.$gray-background-light;\n left: 50%;\n width: 50%;\n }\n }\n}\n\n.meta-navigation {\n .horizontal & {\n position: relative;\n padding-right: 1rem;\n }\n}\n\n.meta-list {\n @extend %no-list;\n display: flex;\n\n .vertical & {\n flex-direction: column;\n align-items: flex-start;\n }\n}\n\n.meta-link {\n @extend %nav-link;\n\n font-size: functions.px-to-rem(14px);\n display: flex;\n align-items: center;\n padding: 0 0.5rem;\n min-height: functions.px-to-rem(34px);\n border-radius: 3px;\n\n &.active {\n background: color.$yellow;\n color: black;\n }\n\n .vertical & {\n color: black;\n padding: 0;\n\n &.active {\n padding: 0 0.5rem;\n margin-left: -0.5rem;\n }\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport { state } from '../../data/store';\n\n@Component({\n tag: 'post-meta-navigation',\n styleUrl: 'post-meta-navigation.scss',\n shadow: true,\n})\nexport class PostMetaNavigation {\n @Prop() orientation: 'horizontal' | 'vertical';\n @Prop() fullWidth?: boolean = false;\n\n render() {\n if (state.localizedConfig?.header.navMeta === undefined) return;\n const headerConfig = state.localizedConfig.header;\n\n return (\n <Host>\n <div class={`meta-container ${this.orientation}${this.fullWidth ? ' full-width' : ''}`}>\n <nav aria-label={headerConfig.translations.navMetaAriaLabel} class=\"meta-navigation\">\n <ul class=\"meta-list\">\n {headerConfig.navMeta\n ?.filter(meta => !meta.isHomeLink)\n .map(meta => (\n <li key={meta.url}>\n <a\n class={{ 'active': meta.isActive, 'meta-link': true }}\n target={meta.target}\n href={meta.url}\n >\n <span aria-hidden=\"true\">{meta.text}</span>\n </a>\n </li>\n ))}\n </ul>\n </nav>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"gMAAA,IAAMA,EAAwB,08L,ICQjBC,EAAkBC,EAAA,kC,kEAEC,K,CAE9BC,EAAAC,UAAAC,OAAA,W,QACE,KAAIC,EAAAC,EAAMC,mBAAe,MAAAF,SAAA,SAAAA,EAAEG,OAAOC,WAAYC,UAAW,OACzD,IAAMC,EAAeL,EAAMC,gBAAgBC,OAE3C,OACEI,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAO,kBAAAC,OAAkBC,KAAKC,aAAWF,OAAGC,KAAKE,UAAY,cAAgB,KAChFN,EAAA,oBAAiBD,EAAaQ,aAAaC,iBAAkBN,MAAM,mBACjEF,EAAA,MAAIE,MAAM,cACPO,EAAAV,EAAaF,WAAO,MAAAY,SAAA,SAAAA,EACjBC,QAAO,SAAAC,GAAQ,OAACA,EAAKC,UAAN,IAChBC,KAAI,SAAAF,GAAI,OACPX,EAAA,MAAIc,IAAKH,EAAKI,KACZf,EAAA,KACEE,MAAO,CAAEc,OAAUL,EAAKM,SAAU,YAAa,MAC/CC,OAAQP,EAAKO,OACbC,KAAMR,EAAKI,KAEXf,EAAA,sBAAkB,QAAQW,EAAKS,OAP5B,MAafpB,EAAA,c,WA5BqB,I"}
@@ -0,0 +1,2 @@
1
+ System.register(["./p-1ec4e0ee.system.js"],(function(e){"use strict";var n;return{setters:[function(e){n=e.s}],execute:function(){var i={"Active navigation element":{de:"Aktives Navigationselement",fr:"Élément de navigation actif",it:"Elemento di navigazione attivo"},"Close overlay":{de:"Overlay Schliessen",fr:"Fermer la superposition",it:"Chiudi sovrapposizione"},"Current language is English":{de:"Die aktuelle Sprache ist Deutsch",fr:"La langue actuelle est le français",it:"La lingua corrente è l'italiano"},"Change language":{de:"Sprache wechseln",fr:"Changer de langue",it:"Cambia lingua"},"Go to main content":{de:"Zum Hauptinhalt springen",fr:"Aller au contenu principal",it:"Vai al contenuto principale"},"Go to search":{de:"Zur Suche springen",fr:"Aller à la recherche",it:"Vai alla ricerca"},"Go to login":{de:"Zum Login springen",fr:"Aller au login",it:"Vai al login"},"Open menu":{de:"Menü öffnen",fr:"Ouvrir le menu",it:"Apri il menu"},"Navigate on post.ch":{de:"Navigieren auf post.ch",fr:"Naviguer sur post.ch",it:"Navigate su post.ch"},"Skip Links":{de:"Sprung Links",fr:"Sauter les liens",it:"Salta i link"},"Intermediary links":{de:"Intermediäre Links",fr:"Liens intermédiaires",it:"Collegamenti intermedi"},"Cookie Settings":{de:"Cookie-Einstellungen",fr:"Configurations des cookies",it:"Impostazioni dei cookie"}};var t=e("g",(function(e,i,t,r){if(e.length===0){return undefined}if(e.length===1){return e[0]}var o=new URL(window.location.href);var l=[i,o.searchParams.get("lang"),o.pathname.split("/").find((function(n){return e.includes(n)})),t!==undefined?window.localStorage.getItem(t):null,a("language"),a("lang"),r!==undefined?a(r):null,document.documentElement.lang,u(e),n.currentLanguage].filter((function(e){return!!e}));var g=l.find((function(n){return e.includes(n)}))||e[0];if(!g||g.length!==2){throw new Error("Current language could not be determined from settings or the language provided (".concat(g,") is not supported by the Header API."))}return g}));var r=e("p",(function(e,i,t){if(t!==undefined){window.localStorage.setItem(t,e)}if(i!==undefined){o(i,e)}n.currentLanguage=e}));var a=function(e){var n;return((n=document.cookie.match("(^|;)\\s*"+e+"\\s*=\\s*([^;]+)"))===null||n===void 0?void 0:n.pop())||""};var o=function(e,n){document.cookie="".concat(encodeURIComponent(e),"=").concat(encodeURIComponent(n))};var u=function(e){if(navigator.language){var n=l(navigator.language);if(e.indexOf(n)!==-1){return n}}if(navigator.languages){for(var i=0,t=navigator.languages;i<t.length;i++){var r=t[i];var n=l(r);if(e.indexOf(n)!==-1){return n}}}return null};var l=function(e){return e.substring(0,2).toLowerCase()};var g=e("t",(function(e,t,r){if(r===void 0){r=i}var a,o,u;return(u=(a=r[e])===null||a===void 0?void 0:a[(o=t!==null&&t!==void 0?t:n.currentLanguage)!==null&&o!==void 0?o:""])!==null&&u!==void 0?u:e}))}}}));
2
+ //# sourceMappingURL=p-4099b274.system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["translations","de","fr","it","getUserLang","exports","supportedLanguages","implementorPreferredLanguage","localStorageKey","cookieKey","length","undefined","url","URL","window","location","href","languagesSet","searchParams","get","pathname","split","find","segment","includes","localStorage","getItem","getCookie","document","documentElement","lang","getPreferredLanguageFromBrowser","state","currentLanguage","filter","language","Error","concat","persistLanguageChoice","setItem","setCookie","name","_a","cookie","match","pop","key","value","encodeURIComponent","navigator","extractLanguage","indexOf","languages","_i","_d","l","substring","toLowerCase","translate","translationObject","_b","_c"],"sources":["src/assets/i18n/translations.ts","src/services/language.service.ts"],"sourcesContent":["export const translations = {\n 'Active navigation element': {\n de: 'Aktives Navigationselement',\n fr: 'Élément de navigation actif',\n it: 'Elemento di navigazione attivo',\n },\n 'Close overlay': {\n de: 'Overlay Schliessen',\n fr: 'Fermer la superposition',\n it: 'Chiudi sovrapposizione',\n },\n 'Current language is English': {\n de: 'Die aktuelle Sprache ist Deutsch',\n fr: 'La langue actuelle est le français',\n it: \"La lingua corrente è l'italiano\",\n },\n 'Change language': {\n de: 'Sprache wechseln',\n fr: 'Changer de langue',\n it: 'Cambia lingua',\n },\n 'Go to main content': {\n de: 'Zum Hauptinhalt springen',\n fr: 'Aller au contenu principal',\n it: 'Vai al contenuto principale',\n },\n 'Go to search': {\n de: 'Zur Suche springen',\n fr: 'Aller à la recherche',\n it: 'Vai alla ricerca',\n },\n 'Go to login': {\n de: 'Zum Login springen',\n fr: 'Aller au login',\n it: 'Vai al login',\n },\n 'Open menu': {\n de: 'Menü öffnen',\n fr: 'Ouvrir le menu',\n it: 'Apri il menu',\n },\n 'Navigate on post.ch': {\n de: 'Navigieren auf post.ch',\n fr: 'Naviguer sur post.ch',\n it: 'Navigate su post.ch',\n },\n 'Skip Links': {\n de: 'Sprung Links',\n fr: 'Sauter les liens',\n it: 'Salta i link',\n },\n 'Intermediary links': {\n de: 'Intermediäre Links',\n fr: 'Liens intermédiaires',\n it: 'Collegamenti intermedi',\n },\n 'Cookie Settings': {\n de: 'Cookie-Einstellungen',\n fr: 'Configurations des cookies',\n it: 'Impostazioni dei cookie',\n },\n};\n","import { translations } from '../assets/i18n/translations';\nimport { state } from '../data/store';\n\nexport const getUserLang = (\n supportedLanguages: string[],\n implementorPreferredLanguage?: string,\n localStorageKey?: string,\n cookieKey?: string,\n) => {\n // If there are no supported languages, well...\n if (supportedLanguages.length === 0) {\n return undefined;\n }\n\n // If there is only one language in the config, use this\n if (supportedLanguages.length === 1) {\n return supportedLanguages[0];\n }\n\n const url = new URL(window.location.href);\n\n /**\n * Build array of possible language definitions in order of importance.\n * At the end is a filter function that will weed out any undefined or null entries.\n */\n let languagesSet: Array<string> = [\n // Check if implementor overrides lang config\n implementorPreferredLanguage,\n\n // Check query string param\n url.searchParams.get('lang'),\n\n // Check url pathname\n url.pathname.split('/').find(segment => supportedLanguages.includes(segment)),\n\n // Check local storage with the key provided\n localStorageKey !== undefined ? window.localStorage.getItem(localStorageKey) : null,\n\n // Check cookies\n getCookie('language'),\n getCookie('lang'),\n cookieKey !== undefined ? getCookie(cookieKey) : null,\n\n // Check document language\n document.documentElement.lang,\n\n // Check browser preferred language\n getPreferredLanguageFromBrowser(supportedLanguages),\n\n // Check the state\n state.currentLanguage,\n ].filter((lang): lang is string => !!lang);\n\n // Check the set of languages to see if it matches\n // any of the supported languages. Return the first\n // supported language if there is none set\n const lang =\n languagesSet.find(language => supportedLanguages.includes(language)) || supportedLanguages[0];\n\n if (!lang || lang.length !== 2) {\n throw new Error(\n `Current language could not be determined from settings or the language provided (${lang}) is not supported by the Header API.`,\n );\n }\n\n return lang;\n};\n\n/**\n * Persist chosen language to local storage\n * @param lang Currently chose language, two char string\n */\nexport const persistLanguageChoice = (\n lang: string,\n cookieKey?: string,\n localStorageKey?: string,\n) => {\n if (localStorageKey !== undefined) {\n window.localStorage.setItem(localStorageKey, lang);\n }\n\n if (cookieKey !== undefined) {\n setCookie(cookieKey, lang);\n }\n\n state.currentLanguage = lang;\n};\n\n/**\n * Read a cookie by name\n * https://stackoverflow.com/questions/5639346/what-is-the-shortest-function-for-reading-a-cookie-by-name-in-javascript?rq=1\n * @param name Cookie name\n * @returns Cookie value or an empty string\n */\nexport const getCookie = (name: string) => {\n return document.cookie.match('(^|;)\\\\s*' + name + '\\\\s*=\\\\s*([^;]+)')?.pop() || '';\n};\n\n/**\n * Write a new cookie\n * https://developer.mozilla.org/en-US/docs/Web/API/document/cookie#A_little_framework.3A_a_complete_cookies_reader.2Fwriter_with_full_unicode_support\n * @param key\n * @param value\n */\nexport const setCookie = (key: string, value: string) => {\n document.cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n};\n\nconst getPreferredLanguageFromBrowser = (supportedLanguages: string[]): string | null => {\n // IE & Chrome\n if (navigator.language) {\n const lang = extractLanguage(navigator.language);\n if (supportedLanguages.indexOf(lang) !== -1) {\n return lang;\n }\n }\n\n // Chrome supports a list of preferred languages: if the preferred is not supported, we go down the list.\n if (navigator.languages) {\n for (const l of navigator.languages) {\n const lang = extractLanguage(l);\n if (supportedLanguages.indexOf(lang) !== -1) {\n return lang;\n }\n }\n }\n\n return null;\n};\n\nconst extractLanguage = (language: string): string => language.substring(0, 2).toLowerCase();\n\n/**\n * Simple translate function for general header UI strings\n *\n * @param key Translation key\n * @param lang Force a language\n * @param translationObject Optionally provide translations\n * @returns Translated string or the key\n */\nexport const translate = (key: string, lang?: string, translationObject = translations) =>\n translationObject[key]?.[lang ?? state.currentLanguage ?? ''] ?? key;\n"],"mappings":"kIAAO,IAAMA,EAAe,CAC1B,4BAA6B,CAC3BC,GAAI,6BACJC,GAAI,8BACJC,GAAI,kCAEN,gBAAiB,CACfF,GAAI,qBACJC,GAAI,0BACJC,GAAI,0BAEN,8BAA+B,CAC7BF,GAAI,mCACJC,GAAI,qCACJC,GAAI,mCAEN,kBAAmB,CACjBF,GAAI,mBACJC,GAAI,oBACJC,GAAI,iBAEN,qBAAsB,CACpBF,GAAI,2BACJC,GAAI,6BACJC,GAAI,+BAEN,eAAgB,CACdF,GAAI,qBACJC,GAAI,uBACJC,GAAI,oBAEN,cAAe,CACbF,GAAI,qBACJC,GAAI,iBACJC,GAAI,gBAEN,YAAa,CACXF,GAAI,cACJC,GAAI,iBACJC,GAAI,gBAEN,sBAAuB,CACrBF,GAAI,yBACJC,GAAI,uBACJC,GAAI,uBAEN,aAAc,CACZF,GAAI,eACJC,GAAI,mBACJC,GAAI,gBAEN,qBAAsB,CACpBF,GAAI,qBACJC,GAAI,uBACJC,GAAI,0BAEN,kBAAmB,CACjBF,GAAI,uBACJC,GAAI,6BACJC,GAAI,4B,ICxDKC,EAAWC,EAAA,KAAG,SACzBC,EACAC,EACAC,EACAC,GAGA,GAAIH,EAAmBI,SAAW,EAAG,CACnC,OAAOC,S,CAIT,GAAIL,EAAmBI,SAAW,EAAG,CACnC,OAAOJ,EAAmB,E,CAG5B,IAAMM,EAAM,IAAIC,IAAIC,OAAOC,SAASC,MAMpC,IAAIC,EAA8B,CAEhCV,EAGAK,EAAIM,aAAaC,IAAI,QAGrBP,EAAIQ,SAASC,MAAM,KAAKC,MAAK,SAAAC,GAAW,OAAAjB,EAAmBkB,SAASD,EAA5B,IAGxCf,IAAoBG,UAAYG,OAAOW,aAAaC,QAAQlB,GAAmB,KAG/EmB,EAAU,YACVA,EAAU,QACVlB,IAAcE,UAAYgB,EAAUlB,GAAa,KAGjDmB,SAASC,gBAAgBC,KAGzBC,EAAgCzB,GAGhC0B,EAAMC,iBACNC,QAAO,SAACJ,GAAyB,QAAEA,CAAF,IAKnC,IAAMA,EACJb,EAAaK,MAAK,SAAAa,GAAY,OAAA7B,EAAmBkB,SAASW,EAA5B,KAA0C7B,EAAmB,GAE7F,IAAKwB,GAAQA,EAAKpB,SAAW,EAAG,CAC9B,MAAM,IAAI0B,MACR,oFAAAC,OAAoFP,EAAI,yC,CAI5F,OAAOA,CACT,I,IAMaQ,EAAqBjC,EAAA,KAAG,SACnCyB,EACArB,EACAD,GAEA,GAAIA,IAAoBG,UAAW,CACjCG,OAAOW,aAAac,QAAQ/B,EAAiBsB,E,CAG/C,GAAIrB,IAAcE,UAAW,CAC3B6B,EAAU/B,EAAWqB,E,CAGvBE,EAAMC,gBAAkBH,CAC1B,IAQO,IAAMH,EAAY,SAACc,G,MACxB,QAAOC,EAAAd,SAASe,OAAOC,MAAM,YAAcH,EAAO,uBAAmB,MAAAC,SAAA,SAAAA,EAAEG,QAAS,EAClF,EAQO,IAAML,EAAY,SAACM,EAAaC,GACrCnB,SAASe,OAAS,GAAAN,OAAGW,mBAAmBF,GAAI,KAAAT,OAAIW,mBAAmBD,GACrE,EAEA,IAAMhB,EAAkC,SAACzB,GAEvC,GAAI2C,UAAUd,SAAU,CACtB,IAAML,EAAOoB,EAAgBD,UAAUd,UACvC,GAAI7B,EAAmB6C,QAAQrB,MAAW,EAAG,CAC3C,OAAOA,C,EAKX,GAAImB,UAAUG,UAAW,CACvB,IAAgB,IAAAC,EAAA,EAAAC,EAAAL,UAAUG,UAAVC,EAAAC,EAAA5C,OAAA2C,IAAqB,CAAhC,IAAME,EAACD,EAAAD,GACV,IAAMvB,EAAOoB,EAAgBK,GAC7B,GAAIjD,EAAmB6C,QAAQrB,MAAW,EAAG,CAC3C,OAAOA,C,GAKb,OAAO,IACT,EAEA,IAAMoB,EAAkB,SAACf,GAA6B,OAAAA,EAASqB,UAAU,EAAG,GAAGC,aAAzB,E,IAUzCC,EAASrD,EAAA,KAAG,SAACyC,EAAahB,EAAe6B,GAAA,GAAAA,SAAA,GAAAA,EAAA3D,CAAgC,KAAA0C,EAAAkB,EAAAC,EACpF,OAAAA,GAAAnB,EAAAiB,EAAkBb,MAAI,MAAAJ,SAAA,SAAAA,GAAGkB,EAAA9B,IAAI,MAAJA,SAAI,EAAJA,EAAQE,EAAMC,mBAAe,MAAA2B,SAAA,EAAAA,EAAI,OAAG,MAAAC,SAAA,EAAAA,EAAIf,CAAG,G"}
@@ -1,2 +1,2 @@
1
- import{a as t,f as e}from"./p-8e0a4d18.js";const n=(t,e,n)=>{const s=t.get(e);if(!s){t.set(e,[n])}else if(!s.includes(n)){s.push(n)}};const s=(t,e)=>{let n;return(...s)=>{if(n){clearTimeout(n)}n=setTimeout((()=>{n=0;t(...s)}),e)}};const o=t=>!("isConnected"in t)||t.isConnected;const r=s((t=>{for(let e of t.keys()){t.set(e,t.get(e).filter(o))}}),2e3);const c=()=>{if(typeof t!=="function"){return{}}const s=new Map;return{dispose:()=>s.clear(),get:e=>{const o=t();if(o){n(s,e,o)}},set:t=>{const n=s.get(t);if(n){s.set(t,n.filter(e))}r(s)},reset:()=>{s.forEach((t=>t.forEach(e)));r(s)}}};const u=t=>typeof t==="function"?t():t;const i=(t,e=((t,e)=>t!==e))=>{const n=u(t);let s=new Map(Object.entries(n!==null&&n!==void 0?n:{}));const o={dispose:[],get:[],set:[],reset:[]};const r=()=>{var e;s=new Map(Object.entries((e=u(t))!==null&&e!==void 0?e:{}));o.reset.forEach((t=>t()))};const c=()=>{o.dispose.forEach((t=>t()));r()};const i=t=>{o.get.forEach((e=>e(t)));return s.get(t)};const a=(t,n)=>{const r=s.get(t);if(e(n,r,t)){s.set(t,n);o.set.forEach((e=>e(t,n,r)))}};const l=typeof Proxy==="undefined"?{}:new Proxy(n,{get(t,e){return i(e)},ownKeys(t){return Array.from(s.keys())},getOwnPropertyDescriptor(){return{enumerable:true,configurable:true}},has(t,e){return s.has(e)},set(t,e,n){a(e,n);return true}});const p=(t,e)=>{o[t].push(e);return()=>{f(o[t],e)}};const d=(e,n)=>{const s=p("set",((t,s)=>{if(t===e){n(s)}}));const o=p("reset",(()=>n(u(t)[e])));return()=>{s();o()}};const g=(...t)=>{const e=t.reduce(((t,e)=>{if(e.set){t.push(p("set",e.set))}if(e.get){t.push(p("get",e.get))}if(e.reset){t.push(p("reset",e.reset))}if(e.dispose){t.push(p("dispose",e.dispose))}return t}),[]);return()=>e.forEach((t=>t()))};const y=t=>{const e=s.get(t);o.set.forEach((n=>n(t,e,e)))};return{state:l,get:i,set:a,on:p,onChange:d,use:g,dispose:c,reset:r,forceUpdate:y}};const f=(t,e)=>{const n=t.indexOf(e);if(n>=0){t[n]=t[t.length-1];t.length--}};const a=(t,e)=>{const n=i(t,e);n.use(c());return n};const{state:l,reset:p,dispose:d}=a({projectId:null,currentLanguage:null,localizedConfig:null,environment:"prod",search:true,login:true,meta:true});export{d,l as s};
2
- //# sourceMappingURL=p-8eb05d18.js.map
1
+ import{a as t,f as e}from"./p-8e0a4d18.js";const n=(t,e,n)=>{const s=t.get(e);if(!s){t.set(e,[n])}else if(!s.includes(n)){s.push(n)}};const s=(t,e)=>{let n;return(...s)=>{if(n){clearTimeout(n)}n=setTimeout((()=>{n=0;t(...s)}),e)}};const o=t=>!("isConnected"in t)||t.isConnected;const r=s((t=>{for(let e of t.keys()){t.set(e,t.get(e).filter(o))}}),2e3);const c=()=>{if(typeof t!=="function"){return{}}const s=new Map;return{dispose:()=>s.clear(),get:e=>{const o=t();if(o){n(s,e,o)}},set:t=>{const n=s.get(t);if(n){s.set(t,n.filter(e))}r(s)},reset:()=>{s.forEach((t=>t.forEach(e)));r(s)}}};const i=t=>typeof t==="function"?t():t;const u=(t,e=((t,e)=>t!==e))=>{const n=i(t);let s=new Map(Object.entries(n!==null&&n!==void 0?n:{}));const o={dispose:[],get:[],set:[],reset:[]};const r=()=>{var e;s=new Map(Object.entries((e=i(t))!==null&&e!==void 0?e:{}));o.reset.forEach((t=>t()))};const c=()=>{o.dispose.forEach((t=>t()));r()};const u=t=>{o.get.forEach((e=>e(t)));return s.get(t)};const a=(t,n)=>{const r=s.get(t);if(e(n,r,t)){s.set(t,n);o.set.forEach((e=>e(t,n,r)))}};const l=typeof Proxy==="undefined"?{}:new Proxy(n,{get(t,e){return u(e)},ownKeys(t){return Array.from(s.keys())},getOwnPropertyDescriptor(){return{enumerable:true,configurable:true}},has(t,e){return s.has(e)},set(t,e,n){a(e,n);return true}});const p=(t,e)=>{o[t].push(e);return()=>{f(o[t],e)}};const d=(e,n)=>{const s=p("set",((t,s)=>{if(t===e){n(s)}}));const o=p("reset",(()=>n(i(t)[e])));return()=>{s();o()}};const g=(...t)=>{const e=t.reduce(((t,e)=>{if(e.set){t.push(p("set",e.set))}if(e.get){t.push(p("get",e.get))}if(e.reset){t.push(p("reset",e.reset))}if(e.dispose){t.push(p("dispose",e.dispose))}return t}),[]);return()=>e.forEach((t=>t()))};const m=t=>{const e=s.get(t);o.set.forEach((n=>n(t,e,e)))};return{state:l,get:u,set:a,on:p,onChange:d,use:g,dispose:c,reset:r,forceUpdate:m}};const f=(t,e)=>{const n=t.indexOf(e);if(n>=0){t[n]=t[t.length-1];t.length--}};const a=(t,e)=>{const n=u(t,e);n.use(c());return n};const{state:l,reset:p,dispose:d}=a({projectId:null,currentLanguage:null,localizedConfig:null,environment:"prod",search:true,login:true,meta:true,stickyness:"minimal"});export{d,l as s};
2
+ //# sourceMappingURL=p-459c3983.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["appendToMap","map","propName","value","items","get","set","includes","push","debounce","fn","ms","timeoutId","args","clearTimeout","setTimeout","isConnected","maybeElement","cleanupElements","key","keys","filter","stencilSubscription","getRenderingRef","elmsToUpdate","Map","dispose","clear","elm","elements","forceUpdate","reset","forEach","elms","unwrap","val","createObservableMap","defaultState","shouldUpdate","a","b","unwrappedState","states","Object","entries","handlers","_a","cb","oldValue","state","Proxy","_","ownKeys","Array","from","getOwnPropertyDescriptor","enumerable","configurable","has","on","eventName","callback","removeFromArray","onChange","unSet","newValue","unReset","use","subscriptions","unsubs","reduce","subscription","unsub","array","item","index","indexOf","length","createStore","projectId","currentLanguage","localizedConfig","environment","search","login","meta","stickyness"],"sources":["../../node_modules/.pnpm/@stencil+store@2.0.9_@stencil+core@3.4.2/node_modules/@stencil/store/dist/index.mjs","./src/data/store.ts"],"sourcesContent":["import { getRenderingRef, forceUpdate } from '@stencil/core';\n\nconst appendToMap = (map, propName, value) => {\n const items = map.get(propName);\n if (!items) {\n map.set(propName, [value]);\n }\n else if (!items.includes(value)) {\n items.push(value);\n }\n};\nconst debounce = (fn, ms) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = 0;\n fn(...args);\n }, ms);\n };\n};\n\n/**\n * Check if a possible element isConnected.\n * The property might not be there, so we check for it.\n *\n * We want it to return true if isConnected is not a property,\n * otherwise we would remove these elements and would not update.\n *\n * Better leak in Edge than to be useless.\n */\nconst isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;\nconst cleanupElements = debounce((map) => {\n for (let key of map.keys()) {\n map.set(key, map.get(key).filter(isConnected));\n }\n}, 2000);\nconst stencilSubscription = () => {\n if (typeof getRenderingRef !== 'function') {\n // If we are not in a stencil project, we do nothing.\n // This function is not really exported by @stencil/core.\n return {};\n }\n const elmsToUpdate = new Map();\n return {\n dispose: () => elmsToUpdate.clear(),\n get: (propName) => {\n const elm = getRenderingRef();\n if (elm) {\n appendToMap(elmsToUpdate, propName, elm);\n }\n },\n set: (propName) => {\n const elements = elmsToUpdate.get(propName);\n if (elements) {\n elmsToUpdate.set(propName, elements.filter(forceUpdate));\n }\n cleanupElements(elmsToUpdate);\n },\n reset: () => {\n elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));\n cleanupElements(elmsToUpdate);\n },\n };\n};\n\nconst unwrap = (val) => (typeof val === 'function' ? val() : val);\nconst createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {\n const unwrappedState = unwrap(defaultState);\n let states = new Map(Object.entries(unwrappedState !== null && unwrappedState !== void 0 ? unwrappedState : {}));\n const handlers = {\n dispose: [],\n get: [],\n set: [],\n reset: [],\n };\n const reset = () => {\n var _a;\n // When resetting the state, the default state may be a function - unwrap it to invoke it.\n // otherwise, the state won't be properly reset\n states = new Map(Object.entries((_a = unwrap(defaultState)) !== null && _a !== void 0 ? _a : {}));\n handlers.reset.forEach((cb) => cb());\n };\n const dispose = () => {\n // Call first dispose as resetting the state would\n // cause less updates ;)\n handlers.dispose.forEach((cb) => cb());\n reset();\n };\n const get = (propName) => {\n handlers.get.forEach((cb) => cb(propName));\n return states.get(propName);\n };\n const set = (propName, value) => {\n const oldValue = states.get(propName);\n if (shouldUpdate(value, oldValue, propName)) {\n states.set(propName, value);\n handlers.set.forEach((cb) => cb(propName, value, oldValue));\n }\n };\n const state = (typeof Proxy === 'undefined'\n ? {}\n : new Proxy(unwrappedState, {\n get(_, propName) {\n return get(propName);\n },\n ownKeys(_) {\n return Array.from(states.keys());\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n has(_, propName) {\n return states.has(propName);\n },\n set(_, propName, value) {\n set(propName, value);\n return true;\n },\n }));\n const on = (eventName, callback) => {\n handlers[eventName].push(callback);\n return () => {\n removeFromArray(handlers[eventName], callback);\n };\n };\n const onChange = (propName, cb) => {\n const unSet = on('set', (key, newValue) => {\n if (key === propName) {\n cb(newValue);\n }\n });\n // We need to unwrap the defaultState because it might be a function.\n // Otherwise we might not be sending the right reset value.\n const unReset = on('reset', () => cb(unwrap(defaultState)[propName]));\n return () => {\n unSet();\n unReset();\n };\n };\n const use = (...subscriptions) => {\n const unsubs = subscriptions.reduce((unsubs, subscription) => {\n if (subscription.set) {\n unsubs.push(on('set', subscription.set));\n }\n if (subscription.get) {\n unsubs.push(on('get', subscription.get));\n }\n if (subscription.reset) {\n unsubs.push(on('reset', subscription.reset));\n }\n if (subscription.dispose) {\n unsubs.push(on('dispose', subscription.dispose));\n }\n return unsubs;\n }, []);\n return () => unsubs.forEach((unsub) => unsub());\n };\n const forceUpdate = (key) => {\n const oldValue = states.get(key);\n handlers.set.forEach((cb) => cb(key, oldValue, oldValue));\n };\n return {\n state,\n get,\n set,\n on,\n onChange,\n use,\n dispose,\n reset,\n forceUpdate,\n };\n};\nconst removeFromArray = (array, item) => {\n const index = array.indexOf(item);\n if (index >= 0) {\n array[index] = array[array.length - 1];\n array.length--;\n }\n};\n\nconst createStore = (defaultState, shouldUpdate) => {\n const map = createObservableMap(defaultState, shouldUpdate);\n map.use(stencilSubscription());\n return map;\n};\n\nexport { createObservableMap, createStore };\n","import { createStore } from '@stencil/store';\nimport { Environment, ILocalizedConfig, ILocalizedCustomConfig } from '../models/general.model';\nimport { NavMainEntity } from '../models/header.model';\nimport { IAvailableLanguage } from '../models/language.model';\nimport { StickynessOptions } from '../components';\n\nexport interface HeaderState {\n localizedConfig: ILocalizedConfig | null;\n currentLanguage: string | null;\n projectId: string | null;\n environment: Environment;\n search: boolean;\n login: boolean;\n meta: boolean;\n languageSwitchOverrides?: IAvailableLanguage[];\n localizedCustomConfig?: ILocalizedCustomConfig;\n osFlyoutOverrides?: NavMainEntity;\n stickyness: StickynessOptions;\n}\n\nexport const { state, reset, dispose } = createStore<HeaderState>({\n projectId: null,\n currentLanguage: null,\n localizedConfig: null,\n environment: 'prod',\n search: true,\n login: true,\n meta: true,\n stickyness: 'minimal',\n});\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{r as t,h as e,H as i}from"./p-8e0a4d18.js";import{s as o}from"./p-459c3983.js";const n='@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:transparent;border:none;border-radius:0;padding:0}.nav-link,.meta-link{outline:none;outline-offset:2px;text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.nav-link:is(:focus-visible,:focus-within,.pretend-focus),.meta-link:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.nav-link:hover,.meta-link:hover,.nav-link:focus,.meta-link:focus{color:black}.nav-link:focus-visible,.meta-link:focus-visible{z-index:1;position:relative}.nav-link>svg,.meta-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.nav-link>span,.meta-link>span{-ms-flex-negative:1;flex-shrink:1}.no-list,.meta-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", 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:white}}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}@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;font-size:0.875rem}.meta-container{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-align:center;align-items:center;min-height:3rem;background:#faf9f8}@media (min-width: 1441px){.meta-container:not(.full-width){margin:0 auto;max-width:1440px}}.meta-container.vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;padding-top:2.5rem;padding-bottom:2.5rem}@media (max-width: 599.98px){.meta-container.vertical{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.meta-container.vertical{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.meta-container.vertical{padding-right:40px;padding-left:40px}}@media (min-width: 1024px){.meta-container.vertical{display:none}}.meta-container.horizontal ::slotted(*){--separator-display:block;--separator-height:2.125rem}.meta-container.horizontal::before{display:block;content:"";position:absolute;top:0px;height:var(--meta-header-height);background-color:#faf9f8;left:50%;width:50%}.horizontal .meta-navigation{position:relative;padding-right:1rem}.meta-list{display:-ms-flexbox;display:flex}.vertical .meta-list{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start}.meta-link{font-size:0.875rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0 0.5rem;min-height:2.125rem;border-radius:3px}.meta-link.active{background:#fc0;color:black}.vertical .meta-link{color:black;padding:0}.vertical .meta-link.active{padding:0 0.5rem;margin-left:-0.5rem}';const r=class{constructor(e){t(this,e);this.orientation=undefined;this.fullWidth=false}render(){var t,n;if(((t=o.localizedConfig)===null||t===void 0?void 0:t.header.navMeta)===undefined)return;const r=o.localizedConfig.header;return e(i,null,e("div",{class:`meta-container ${this.orientation}${this.fullWidth?" full-width":""}`},e("nav",{"aria-label":r.translations.navMetaAriaLabel,class:"meta-navigation"},e("ul",{class:"meta-list"},(n=r.navMeta)===null||n===void 0?void 0:n.filter((t=>!t.isHomeLink)).map((t=>e("li",{key:t.url},e("a",{class:{active:t.isActive,"meta-link":true},target:t.target,href:t.url},e("span",{"aria-hidden":"true"},t.text))))))),e("slot",null)))}};r.style=n;export{r as post_meta_navigation};
2
+ //# sourceMappingURL=p-51c15273.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["postMetaNavigationCss","PostMetaNavigation","render","_a","state","localizedConfig","header","navMeta","undefined","headerConfig","h","Host","class","this","orientation","fullWidth","translations","navMetaAriaLabel","_b","filter","meta","isHomeLink","map","key","url","active","isActive","target","href","text"],"sources":["./src/components/post-meta-navigation/post-meta-navigation.scss?tag=post-meta-navigation&encapsulation=shadow","./src/components/post-meta-navigation/post-meta-navigation.tsx"],"sourcesContent":["@use '@swisspost/design-system-styles/variables/color';\n@use '@swisspost/design-system-styles/functions';\n@use '../../utils/utils.scss';\n@use '../../utils/mixins.scss';\n\n:host {\n display: block;\n font-size: functions.px-to-rem(14px);\n}\n\n.meta-container {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n min-height: functions.px-to-rem(48px);\n\n background: color.$gray-background-light;\n\n @media (min-width: 1441px) {\n &:not(.full-width) {\n margin: 0 auto;\n max-width: 1440px;\n }\n }\n\n &.vertical {\n @include mixins.container-padding();\n\n flex-direction: column;\n align-items: flex-start;\n padding-top: 2.5rem;\n padding-bottom: 2.5rem;\n\n @include mixins.min(lg) {\n display: none;\n }\n }\n\n &.horizontal {\n ::slotted(*) {\n --separator-display: block;\n --separator-height: #{functions.px-to-rem(34px)};\n }\n\n &::before {\n display: block;\n content: '';\n position: absolute;\n top: 0px;\n height: var(--meta-header-height);\n background-color: color.$gray-background-light;\n left: 50%;\n width: 50%;\n }\n }\n}\n\n.meta-navigation {\n .horizontal & {\n position: relative;\n padding-right: 1rem;\n }\n}\n\n.meta-list {\n @extend %no-list;\n display: flex;\n\n .vertical & {\n flex-direction: column;\n align-items: flex-start;\n }\n}\n\n.meta-link {\n @extend %nav-link;\n\n font-size: functions.px-to-rem(14px);\n display: flex;\n align-items: center;\n padding: 0 0.5rem;\n min-height: functions.px-to-rem(34px);\n border-radius: 3px;\n\n &.active {\n background: color.$yellow;\n color: black;\n }\n\n .vertical & {\n color: black;\n padding: 0;\n\n &.active {\n padding: 0 0.5rem;\n margin-left: -0.5rem;\n }\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport { state } from '../../data/store';\n\n@Component({\n tag: 'post-meta-navigation',\n styleUrl: 'post-meta-navigation.scss',\n shadow: true,\n})\nexport class PostMetaNavigation {\n @Prop() orientation: 'horizontal' | 'vertical';\n @Prop() fullWidth?: boolean = false;\n\n render() {\n if (state.localizedConfig?.header.navMeta === undefined) return;\n const headerConfig = state.localizedConfig.header;\n\n return (\n <Host>\n <div class={`meta-container ${this.orientation}${this.fullWidth ? ' full-width' : ''}`}>\n <nav aria-label={headerConfig.translations.navMetaAriaLabel} class=\"meta-navigation\">\n <ul class=\"meta-list\">\n {headerConfig.navMeta\n ?.filter(meta => !meta.isHomeLink)\n .map(meta => (\n <li key={meta.url}>\n <a\n class={{ 'active': meta.isActive, 'meta-link': true }}\n target={meta.target}\n href={meta.url}\n >\n <span aria-hidden=\"true\">{meta.text}</span>\n </a>\n </li>\n ))}\n </ul>\n </nav>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"sFAAA,MAAMA,EAAwB,08L,MCQjBC,EAAkB,M,mEAEC,K,CAE9BC,S,QACE,KAAIC,EAAAC,EAAMC,mBAAe,MAAAF,SAAA,SAAAA,EAAEG,OAAOC,WAAYC,UAAW,OACzD,MAAMC,EAAeL,EAAMC,gBAAgBC,OAE3C,OACEI,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAO,kBAAkBC,KAAKC,cAAcD,KAAKE,UAAY,cAAgB,MAChFL,EAAA,oBAAiBD,EAAaO,aAAaC,iBAAkBL,MAAM,mBACjEF,EAAA,MAAIE,MAAM,cACPM,EAAAT,EAAaF,WAAO,MAAAW,SAAA,SAAAA,EACjBC,QAAOC,IAASA,EAAKC,aACtBC,KAAIF,GACHV,EAAA,MAAIa,IAAKH,EAAKI,KACZd,EAAA,KACEE,MAAO,CAAEa,OAAUL,EAAKM,SAAU,YAAa,MAC/CC,OAAQP,EAAKO,OACbC,KAAMR,EAAKI,KAEXd,EAAA,sBAAkB,QAAQU,EAAKS,YAM3CnB,EAAA,c"}