@swisspost/internet-header 1.13.2 → 1.13.3

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 (311) hide show
  1. package/dist/cjs/{index-3423c7b3.js → index-8cbf8194.js} +1 -1
  2. package/dist/cjs/index-8cbf8194.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +15 -15
  4. package/dist/cjs/{language.service-4742451a.js → language.service-11e7d8c1.js} +2 -2
  5. package/dist/cjs/{language.service-4742451a.js.map → language.service-11e7d8c1.js.map} +1 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/{post-internet-breadcrumbs-15f878ef.js → post-internet-breadcrumbs-f5e20904.js} +6 -6
  8. package/dist/cjs/{post-internet-breadcrumbs-15f878ef.js.map → post-internet-breadcrumbs-f5e20904.js.map} +1 -1
  9. package/dist/cjs/{post-internet-footer-5fa54b4d.js → post-internet-footer-d222e56d.js} +5 -5
  10. package/dist/cjs/{post-internet-footer-5fa54b4d.js.map → post-internet-footer-d222e56d.js.map} +1 -1
  11. package/dist/cjs/{post-internet-header-797beaef.js → post-internet-header-befc7a3f.js} +21 -11
  12. package/dist/cjs/post-internet-header-befc7a3f.js.map +1 -0
  13. package/dist/cjs/{post-klp-login-widget-b0093c44.js → post-klp-login-widget-01eee964.js} +5 -5
  14. package/dist/cjs/{post-klp-login-widget-b0093c44.js.map → post-klp-login-widget-01eee964.js.map} +1 -1
  15. package/dist/cjs/post-klp-login-widget.cjs.entry.js +5 -5
  16. package/dist/cjs/{post-language-switch-a2dacdd9.js → post-language-switch-59e1e832.js} +6 -6
  17. package/dist/cjs/{post-language-switch-a2dacdd9.js.map → post-language-switch-59e1e832.js.map} +1 -1
  18. package/dist/cjs/post-language-switch.cjs.entry.js +6 -6
  19. package/dist/cjs/{post-logo-ac175767.js → post-logo-6d127981.js} +3 -3
  20. package/dist/cjs/{post-logo-ac175767.js.map → post-logo-6d127981.js.map} +1 -1
  21. package/dist/cjs/post-logo.cjs.entry.js +3 -3
  22. package/dist/cjs/{post-main-navigation-8ed49014.js → post-main-navigation-d34e9799.js} +6 -6
  23. package/dist/cjs/{post-main-navigation-8ed49014.js.map → post-main-navigation-d34e9799.js.map} +1 -1
  24. package/dist/cjs/post-main-navigation.cjs.entry.js +6 -6
  25. package/dist/cjs/{post-meta-navigation-35b2926d.js → post-meta-navigation-ac31cee4.js} +3 -3
  26. package/dist/cjs/{post-meta-navigation-35b2926d.js.map → post-meta-navigation-ac31cee4.js.map} +1 -1
  27. package/dist/cjs/post-meta-navigation.cjs.entry.js +3 -3
  28. package/dist/cjs/{post-search-656fc0e6.js → post-search-ac307fd7.js} +6 -6
  29. package/dist/cjs/{post-search-656fc0e6.js.map → post-search-ac307fd7.js.map} +1 -1
  30. package/dist/cjs/post-search.cjs.entry.js +6 -6
  31. package/dist/cjs/{post-skiplinks-857502b0.js → post-skiplinks-74f15d34.js} +5 -5
  32. package/dist/cjs/{post-skiplinks-857502b0.js.map → post-skiplinks-74f15d34.js.map} +1 -1
  33. package/dist/cjs/post-skiplinks.cjs.entry.js +5 -5
  34. package/dist/cjs/{store-24f8d785.js → store-dffccc44.js} +2 -2
  35. package/dist/cjs/store-dffccc44.js.map +1 -0
  36. package/dist/cjs/{svg-icon.component-5355af90.js → svg-icon.component-65508d78.js} +2 -2
  37. package/dist/cjs/{svg-icon.component-5355af90.js.map → svg-icon.component-65508d78.js.map} +1 -1
  38. package/dist/cjs/{svg-sprite.component-4f4f4f30.js → svg-sprite.component-dc109568.js} +2 -2
  39. package/dist/cjs/{svg-sprite.component-4f4f4f30.js.map → svg-sprite.component-dc109568.js.map} +1 -1
  40. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +6 -6
  41. package/dist/cjs/swisspost-internet-footer.cjs.entry.js +5 -5
  42. package/dist/cjs/swisspost-internet-header.cjs.entry.js +6 -6
  43. package/dist/cjs/swisspost-internet-header.cjs.js +2 -2
  44. package/dist/cjs/swisspost-internet-header.cjs.js.map +1 -1
  45. package/dist/collection/collection-manifest.json +2 -2
  46. package/dist/collection/components/post-internet-breadcrumbs/components/focus-trap.component.js.map +1 -1
  47. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js.map +1 -1
  48. package/dist/collection/components/post-internet-footer/components/post-footer-block-contact.component.js.map +1 -1
  49. package/dist/collection/components/post-internet-footer/post-internet-footer.js.map +1 -1
  50. package/dist/collection/components/post-internet-header/logo-animation/logo-animation.js.map +1 -1
  51. package/dist/collection/components/post-internet-header/post-internet-header.js.map +1 -1
  52. package/dist/collection/components/post-klp-login-widget/klp-widget.controller.js.map +1 -1
  53. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.js.map +1 -1
  54. package/dist/collection/components/post-language-switch/post-language-switch.js.map +1 -1
  55. package/dist/collection/components/post-main-navigation/post-main-navigation.js.map +1 -1
  56. package/dist/collection/components/post-search/post-search.js.map +1 -1
  57. package/dist/collection/components/post-skiplinks/post-skiplinks.js.map +1 -1
  58. package/dist/collection/services/config.service.js.map +1 -1
  59. package/dist/collection/services/language.service.js.map +1 -1
  60. package/dist/collection/services/route.service.js.map +1 -1
  61. package/dist/collection/services/search/coveo.service.js.map +1 -1
  62. package/dist/collection/services/search/parcel.service.js.map +1 -1
  63. package/dist/collection/services/search/places.service.js.map +1 -1
  64. package/dist/collection/services/search/search.service.js.map +1 -1
  65. package/dist/collection/utils/if.component.js.map +1 -1
  66. package/dist/collection/utils/scrollparent.js.map +1 -1
  67. package/dist/components/store.js.map +1 -1
  68. package/dist/components/swisspost-internet-header.js +15 -5
  69. package/dist/components/swisspost-internet-header.js.map +1 -1
  70. package/dist/docs.json +3 -3
  71. package/dist/esm/{index-42178863.js → index-54145c02.js} +1 -1
  72. package/dist/esm/index-54145c02.js.map +1 -0
  73. package/dist/esm/index.js +15 -15
  74. package/dist/esm/{language.service-8c9e6bc5.js → language.service-1bd090a7.js} +2 -2
  75. package/dist/esm/{language.service-8c9e6bc5.js.map → language.service-1bd090a7.js.map} +1 -1
  76. package/dist/esm/loader.js +2 -2
  77. package/dist/esm/{post-internet-breadcrumbs-ca69e5ac.js → post-internet-breadcrumbs-16b4d1eb.js} +6 -6
  78. package/dist/esm/{post-internet-breadcrumbs-ca69e5ac.js.map → post-internet-breadcrumbs-16b4d1eb.js.map} +1 -1
  79. package/dist/esm/{post-internet-footer-cdae34cd.js → post-internet-footer-211748e4.js} +5 -5
  80. package/dist/esm/{post-internet-footer-cdae34cd.js.map → post-internet-footer-211748e4.js.map} +1 -1
  81. package/dist/esm/{post-internet-header-134f39f0.js → post-internet-header-91c9a423.js} +21 -11
  82. package/dist/esm/post-internet-header-91c9a423.js.map +1 -0
  83. package/dist/esm/{post-klp-login-widget-0b199a8c.js → post-klp-login-widget-cac28bb1.js} +5 -5
  84. package/dist/esm/{post-klp-login-widget-0b199a8c.js.map → post-klp-login-widget-cac28bb1.js.map} +1 -1
  85. package/dist/esm/post-klp-login-widget.entry.js +5 -5
  86. package/dist/esm/{post-language-switch-a7291097.js → post-language-switch-7df96469.js} +6 -6
  87. package/dist/esm/{post-language-switch-a7291097.js.map → post-language-switch-7df96469.js.map} +1 -1
  88. package/dist/esm/post-language-switch.entry.js +6 -6
  89. package/dist/esm/{post-logo-a6bf90c5.js → post-logo-050acfc4.js} +3 -3
  90. package/dist/esm/{post-logo-a6bf90c5.js.map → post-logo-050acfc4.js.map} +1 -1
  91. package/dist/esm/post-logo.entry.js +3 -3
  92. package/dist/esm/{post-main-navigation-733675fb.js → post-main-navigation-1735be3c.js} +6 -6
  93. package/dist/esm/{post-main-navigation-733675fb.js.map → post-main-navigation-1735be3c.js.map} +1 -1
  94. package/dist/esm/post-main-navigation.entry.js +6 -6
  95. package/dist/esm/{post-meta-navigation-5c330dfa.js → post-meta-navigation-ece1e9de.js} +3 -3
  96. package/dist/esm/{post-meta-navigation-5c330dfa.js.map → post-meta-navigation-ece1e9de.js.map} +1 -1
  97. package/dist/esm/post-meta-navigation.entry.js +3 -3
  98. package/dist/esm/{post-search-0506c0d1.js → post-search-efd16c09.js} +6 -6
  99. package/dist/esm/{post-search-0506c0d1.js.map → post-search-efd16c09.js.map} +1 -1
  100. package/dist/esm/post-search.entry.js +6 -6
  101. package/dist/esm/{post-skiplinks-9e5d3c8e.js → post-skiplinks-c6b5addd.js} +5 -5
  102. package/dist/esm/{post-skiplinks-9e5d3c8e.js.map → post-skiplinks-c6b5addd.js.map} +1 -1
  103. package/dist/esm/post-skiplinks.entry.js +5 -5
  104. package/dist/esm/{store-c3a7c877.js → store-c0bc1c5b.js} +2 -2
  105. package/dist/esm/store-c0bc1c5b.js.map +1 -0
  106. package/dist/esm/{svg-icon.component-bac5b09e.js → svg-icon.component-fe96fac6.js} +2 -2
  107. package/dist/esm/{svg-icon.component-bac5b09e.js.map → svg-icon.component-fe96fac6.js.map} +1 -1
  108. package/dist/esm/{svg-sprite.component-1d9c1de3.js → svg-sprite.component-4874b2fb.js} +2 -2
  109. package/dist/esm/{svg-sprite.component-1d9c1de3.js.map → svg-sprite.component-4874b2fb.js.map} +1 -1
  110. package/dist/esm/swisspost-internet-breadcrumbs.entry.js +6 -6
  111. package/dist/esm/swisspost-internet-footer.entry.js +5 -5
  112. package/dist/esm/swisspost-internet-header.entry.js +6 -6
  113. package/dist/esm/swisspost-internet-header.js +3 -3
  114. package/dist/esm/swisspost-internet-header.js.map +1 -1
  115. package/dist/esm-es5/bodyScrollLock.esm-afcc00e3.js.map +1 -1
  116. package/dist/esm-es5/{index-42178863.js → index-54145c02.js} +1 -1
  117. package/dist/esm-es5/index-54145c02.js.map +1 -0
  118. package/dist/esm-es5/index-d2256e06.js.map +1 -1
  119. package/dist/esm-es5/index.js +1 -1
  120. package/dist/esm-es5/klp-widget.controller-549d5132.js.map +1 -1
  121. package/dist/esm-es5/{language.service-8c9e6bc5.js → language.service-1bd090a7.js} +2 -2
  122. package/dist/esm-es5/loader.js +1 -1
  123. package/dist/esm-es5/{post-internet-breadcrumbs-ca69e5ac.js → post-internet-breadcrumbs-16b4d1eb.js} +2 -2
  124. package/dist/{swisspost-internet-header/p-9448353b.system.js.map → esm-es5/post-internet-breadcrumbs-16b4d1eb.js.map} +1 -1
  125. package/dist/esm-es5/{post-internet-footer-cdae34cd.js → post-internet-footer-211748e4.js} +2 -2
  126. package/dist/esm-es5/post-internet-header-91c9a423.js +2 -0
  127. package/dist/esm-es5/{post-internet-header-134f39f0.js.map → post-internet-header-91c9a423.js.map} +1 -1
  128. package/dist/esm-es5/{post-klp-login-widget-0b199a8c.js → post-klp-login-widget-cac28bb1.js} +2 -2
  129. package/dist/esm-es5/post-klp-login-widget.entry.js +1 -1
  130. package/dist/esm-es5/{post-language-switch-a7291097.js → post-language-switch-7df96469.js} +2 -2
  131. package/dist/esm-es5/post-language-switch.entry.js +1 -1
  132. package/dist/esm-es5/{post-logo-a6bf90c5.js → post-logo-050acfc4.js} +2 -2
  133. package/dist/esm-es5/post-logo.entry.js +1 -1
  134. package/dist/esm-es5/{post-main-navigation-733675fb.js → post-main-navigation-1735be3c.js} +2 -2
  135. package/dist/esm-es5/post-main-navigation.entry.js +1 -1
  136. package/dist/esm-es5/{post-meta-navigation-5c330dfa.js → post-meta-navigation-ece1e9de.js} +2 -2
  137. package/dist/esm-es5/post-meta-navigation.entry.js +1 -1
  138. package/dist/esm-es5/{post-search-0506c0d1.js → post-search-efd16c09.js} +2 -2
  139. package/dist/esm-es5/post-search.entry.js +1 -1
  140. package/dist/esm-es5/{post-skiplinks-9e5d3c8e.js → post-skiplinks-c6b5addd.js} +2 -2
  141. package/dist/esm-es5/post-skiplinks.entry.js +1 -1
  142. package/dist/esm-es5/{store-c3a7c877.js → store-c0bc1c5b.js} +2 -2
  143. package/dist/esm-es5/store-c0bc1c5b.js.map +1 -0
  144. package/dist/esm-es5/{svg-icon.component-bac5b09e.js → svg-icon.component-fe96fac6.js} +2 -2
  145. package/dist/esm-es5/{svg-sprite.component-1d9c1de3.js → svg-sprite.component-4874b2fb.js} +2 -2
  146. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +1 -1
  147. package/dist/esm-es5/swisspost-internet-footer.entry.js +1 -1
  148. package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
  149. package/dist/esm-es5/swisspost-internet-header.js +1 -1
  150. package/dist/esm-es5/swisspost-internet-header.js.map +1 -1
  151. package/dist/swisspost-internet-header/index.esm.js +1 -1
  152. package/dist/swisspost-internet-header/{p-f038a170.system.js → p-0338115d.system.js} +2 -2
  153. package/dist/swisspost-internet-header/{p-b62ac44c.js → p-0589b170.js} +2 -2
  154. package/dist/swisspost-internet-header/{p-8f6fb84d.js → p-0606dca1.js} +2 -2
  155. package/dist/swisspost-internet-header/p-07313f1b.system.entry.js +2 -0
  156. package/dist/swisspost-internet-header/{p-7957177c.system.js → p-11d02764.system.js} +2 -2
  157. package/dist/swisspost-internet-header/p-1244a33a.entry.js +2 -0
  158. package/dist/swisspost-internet-header/{p-3abbb0bc.js → p-14b0f654.js} +1 -1
  159. package/dist/swisspost-internet-header/p-14b0f654.js.map +1 -0
  160. package/dist/swisspost-internet-header/p-1c722d02.system.entry.js +2 -0
  161. package/dist/swisspost-internet-header/p-1cb8fe46.entry.js +2 -0
  162. package/dist/swisspost-internet-header/{p-266e6d3a.js → p-2eb28b7c.js} +2 -2
  163. package/dist/swisspost-internet-header/p-2f221bb5.system.js +2 -0
  164. package/dist/swisspost-internet-header/{p-a9610d39.system.js.map → p-2f221bb5.system.js.map} +1 -1
  165. package/dist/swisspost-internet-header/p-3759e0aa.entry.js +2 -0
  166. package/dist/swisspost-internet-header/{p-66a7fdb3.js → p-3985d762.js} +2 -2
  167. package/dist/swisspost-internet-header/{p-0df077ea.system.js → p-3bcc322e.system.js} +2 -2
  168. package/dist/swisspost-internet-header/p-3e62c7a9.js +2 -0
  169. package/dist/swisspost-internet-header/{p-f6816aeb.js.map → p-3e62c7a9.js.map} +1 -1
  170. package/dist/swisspost-internet-header/{p-9448353b.system.js → p-434dbf16.system.js} +2 -2
  171. package/dist/{esm-es5/post-internet-breadcrumbs-ca69e5ac.js.map → swisspost-internet-header/p-434dbf16.system.js.map} +1 -1
  172. package/dist/swisspost-internet-header/p-4380032a.entry.js +2 -0
  173. package/dist/swisspost-internet-header/{p-ca6b8cae.js → p-4bc05e68.js} +2 -2
  174. package/dist/swisspost-internet-header/p-5498ca7c.entry.js +2 -0
  175. package/dist/swisspost-internet-header/{p-87d6ddc6.system.js → p-5a69c918.system.js} +2 -2
  176. package/dist/swisspost-internet-header/p-5ac16bdd.system.entry.js +2 -0
  177. package/dist/swisspost-internet-header/{p-2133f8ff.js → p-5c2bb553.js} +2 -2
  178. package/dist/swisspost-internet-header/p-5c2bb553.js.map +1 -0
  179. package/dist/swisspost-internet-header/p-6d60866a.system.entry.js +2 -0
  180. package/dist/swisspost-internet-header/p-7505c3e1.system.entry.js +2 -0
  181. package/dist/swisspost-internet-header/{p-e2b94a49.js → p-7d188581.js} +2 -2
  182. package/dist/swisspost-internet-header/{p-62bb3696.system.js → p-87756f7c.system.js} +2 -2
  183. package/dist/swisspost-internet-header/{p-3e59929c.js → p-8a65e8d6.js} +2 -2
  184. package/dist/swisspost-internet-header/{p-c8567a81.system.js → p-8b9d7320.system.js} +2 -2
  185. package/dist/swisspost-internet-header/{p-da01a322.system.js → p-8df32cb8.system.js} +2 -2
  186. package/dist/swisspost-internet-header/p-943d2956.system.entry.js +2 -0
  187. package/dist/swisspost-internet-header/p-948d3e8f.entry.js +2 -0
  188. package/dist/swisspost-internet-header/{p-51a44f8a.js → p-979ae0e8.js} +2 -2
  189. package/dist/swisspost-internet-header/{p-fab8c31c.system.js → p-9b1e0d60.system.js} +2 -2
  190. package/dist/swisspost-internet-header/p-9b4d5e90.system.js.map +1 -1
  191. package/dist/swisspost-internet-header/p-a08ee9d3.entry.js +2 -0
  192. package/dist/swisspost-internet-header/p-a4d04c0b.system.entry.js +2 -0
  193. package/dist/swisspost-internet-header/p-a7bc91ca.system.js.map +1 -1
  194. package/dist/swisspost-internet-header/{p-05bb41bf.system.js → p-a9f840df.system.js} +2 -2
  195. package/dist/swisspost-internet-header/p-a9f840df.system.js.map +1 -0
  196. package/dist/swisspost-internet-header/p-b3014611.system.js.map +1 -1
  197. package/dist/swisspost-internet-header/p-b8c6f6a6.system.entry.js +2 -0
  198. package/dist/swisspost-internet-header/{p-4e3b909b.js → p-bc60a641.js} +2 -2
  199. package/dist/swisspost-internet-header/{p-0adc396f.js → p-bfbb5fc7.js} +2 -2
  200. package/dist/swisspost-internet-header/p-c466f253.entry.js +2 -0
  201. package/dist/swisspost-internet-header/{p-e082d4fe.js → p-c7f451bd.js} +2 -2
  202. package/dist/swisspost-internet-header/p-c7fba36e.system.entry.js +2 -0
  203. package/dist/swisspost-internet-header/p-c8153649.js +2 -0
  204. package/dist/swisspost-internet-header/{p-2b163d9c.system.js → p-c895eccc.system.js} +2 -2
  205. package/dist/swisspost-internet-header/p-d6ab4ef3.entry.js +2 -0
  206. package/dist/swisspost-internet-header/p-da7b8486.system.entry.js +2 -0
  207. package/dist/swisspost-internet-header/{p-c876af15.system.js → p-dd800ff2.system.js} +2 -2
  208. package/dist/swisspost-internet-header/{p-90609524.system.js → p-e2985a86.system.js} +2 -2
  209. package/dist/swisspost-internet-header/{p-548291cb.system.js → p-e5acc124.system.js} +2 -2
  210. package/dist/swisspost-internet-header/{p-b9a1a146.system.js → p-e7bd7ab7.system.js} +2 -2
  211. package/dist/swisspost-internet-header/p-e7bd7ab7.system.js.map +1 -0
  212. package/dist/swisspost-internet-header/{p-a49a2089.system.js → p-fe4736f9.system.js} +1 -1
  213. package/dist/swisspost-internet-header/p-fe4736f9.system.js.map +1 -0
  214. package/dist/swisspost-internet-header/p-ff36437b.entry.js +2 -0
  215. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
  216. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js.map +1 -1
  217. package/dist/swisspost-internet-header/swisspost-internet-header.js +1 -1
  218. package/package.json +13 -4
  219. package/readme.md +1 -1
  220. package/dist/cjs/index-3423c7b3.js.map +0 -1
  221. package/dist/cjs/post-internet-header-797beaef.js.map +0 -1
  222. package/dist/cjs/store-24f8d785.js.map +0 -1
  223. package/dist/esm/index-42178863.js.map +0 -1
  224. package/dist/esm/post-internet-header-134f39f0.js.map +0 -1
  225. package/dist/esm/store-c3a7c877.js.map +0 -1
  226. package/dist/esm-es5/index-42178863.js.map +0 -1
  227. package/dist/esm-es5/post-internet-header-134f39f0.js +0 -2
  228. package/dist/esm-es5/store-c3a7c877.js.map +0 -1
  229. package/dist/swisspost-internet-header/p-05bb41bf.system.js.map +0 -1
  230. package/dist/swisspost-internet-header/p-1668b002.entry.js +0 -2
  231. package/dist/swisspost-internet-header/p-2133f8ff.js.map +0 -1
  232. package/dist/swisspost-internet-header/p-31e7f09a.system.entry.js +0 -2
  233. package/dist/swisspost-internet-header/p-3abbb0bc.js.map +0 -1
  234. package/dist/swisspost-internet-header/p-3e4285cd.entry.js +0 -2
  235. package/dist/swisspost-internet-header/p-461e53b1.js +0 -2
  236. package/dist/swisspost-internet-header/p-550de753.system.entry.js +0 -2
  237. package/dist/swisspost-internet-header/p-56f249a0.system.entry.js +0 -2
  238. package/dist/swisspost-internet-header/p-85b6421e.system.entry.js +0 -2
  239. package/dist/swisspost-internet-header/p-8936d9c2.entry.js +0 -2
  240. package/dist/swisspost-internet-header/p-97a93bc5.entry.js +0 -2
  241. package/dist/swisspost-internet-header/p-9cb8483e.entry.js +0 -2
  242. package/dist/swisspost-internet-header/p-a49a2089.system.js.map +0 -1
  243. package/dist/swisspost-internet-header/p-a9610d39.system.js +0 -2
  244. package/dist/swisspost-internet-header/p-aa836528.entry.js +0 -2
  245. package/dist/swisspost-internet-header/p-aae36739.entry.js +0 -2
  246. package/dist/swisspost-internet-header/p-b4ae4c6d.system.entry.js +0 -2
  247. package/dist/swisspost-internet-header/p-b588b3bf.system.entry.js +0 -2
  248. package/dist/swisspost-internet-header/p-b9a1a146.system.js.map +0 -1
  249. package/dist/swisspost-internet-header/p-c857983f.entry.js +0 -2
  250. package/dist/swisspost-internet-header/p-c91db812.system.entry.js +0 -2
  251. package/dist/swisspost-internet-header/p-cb958a70.entry.js +0 -2
  252. package/dist/swisspost-internet-header/p-d55807a5.entry.js +0 -2
  253. package/dist/swisspost-internet-header/p-ec8cc78c.system.entry.js +0 -2
  254. package/dist/swisspost-internet-header/p-f6816aeb.js +0 -2
  255. package/dist/swisspost-internet-header/p-fc3447a7.system.entry.js +0 -2
  256. package/dist/swisspost-internet-header/p-fce5a989.system.entry.js +0 -2
  257. /package/dist/esm-es5/{language.service-8c9e6bc5.js.map → language.service-1bd090a7.js.map} +0 -0
  258. /package/dist/esm-es5/{post-internet-footer-cdae34cd.js.map → post-internet-footer-211748e4.js.map} +0 -0
  259. /package/dist/esm-es5/{post-klp-login-widget-0b199a8c.js.map → post-klp-login-widget-cac28bb1.js.map} +0 -0
  260. /package/dist/esm-es5/{post-language-switch-a7291097.js.map → post-language-switch-7df96469.js.map} +0 -0
  261. /package/dist/esm-es5/{post-logo-a6bf90c5.js.map → post-logo-050acfc4.js.map} +0 -0
  262. /package/dist/esm-es5/{post-main-navigation-733675fb.js.map → post-main-navigation-1735be3c.js.map} +0 -0
  263. /package/dist/esm-es5/{post-meta-navigation-5c330dfa.js.map → post-meta-navigation-ece1e9de.js.map} +0 -0
  264. /package/dist/esm-es5/{post-search-0506c0d1.js.map → post-search-efd16c09.js.map} +0 -0
  265. /package/dist/esm-es5/{post-skiplinks-9e5d3c8e.js.map → post-skiplinks-c6b5addd.js.map} +0 -0
  266. /package/dist/esm-es5/{svg-icon.component-bac5b09e.js.map → svg-icon.component-fe96fac6.js.map} +0 -0
  267. /package/dist/esm-es5/{svg-sprite.component-1d9c1de3.js.map → svg-sprite.component-4874b2fb.js.map} +0 -0
  268. /package/dist/swisspost-internet-header/{p-f038a170.system.js.map → p-0338115d.system.js.map} +0 -0
  269. /package/dist/swisspost-internet-header/{p-b62ac44c.js.map → p-0589b170.js.map} +0 -0
  270. /package/dist/swisspost-internet-header/{p-8f6fb84d.js.map → p-0606dca1.js.map} +0 -0
  271. /package/dist/swisspost-internet-header/{p-1668b002.entry.js.map → p-07313f1b.system.entry.js.map} +0 -0
  272. /package/dist/swisspost-internet-header/{p-7957177c.system.js.map → p-11d02764.system.js.map} +0 -0
  273. /package/dist/swisspost-internet-header/{p-31e7f09a.system.entry.js.map → p-1244a33a.entry.js.map} +0 -0
  274. /package/dist/swisspost-internet-header/{p-3e4285cd.entry.js.map → p-1c722d02.system.entry.js.map} +0 -0
  275. /package/dist/swisspost-internet-header/{p-550de753.system.entry.js.map → p-1cb8fe46.entry.js.map} +0 -0
  276. /package/dist/swisspost-internet-header/{p-266e6d3a.js.map → p-2eb28b7c.js.map} +0 -0
  277. /package/dist/swisspost-internet-header/{p-56f249a0.system.entry.js.map → p-3759e0aa.entry.js.map} +0 -0
  278. /package/dist/swisspost-internet-header/{p-66a7fdb3.js.map → p-3985d762.js.map} +0 -0
  279. /package/dist/swisspost-internet-header/{p-0df077ea.system.js.map → p-3bcc322e.system.js.map} +0 -0
  280. /package/dist/swisspost-internet-header/{p-85b6421e.system.entry.js.map → p-4380032a.entry.js.map} +0 -0
  281. /package/dist/swisspost-internet-header/{p-ca6b8cae.js.map → p-4bc05e68.js.map} +0 -0
  282. /package/dist/swisspost-internet-header/{p-8936d9c2.entry.js.map → p-5498ca7c.entry.js.map} +0 -0
  283. /package/dist/swisspost-internet-header/{p-87d6ddc6.system.js.map → p-5a69c918.system.js.map} +0 -0
  284. /package/dist/swisspost-internet-header/{p-97a93bc5.entry.js.map → p-5ac16bdd.system.entry.js.map} +0 -0
  285. /package/dist/swisspost-internet-header/{p-9cb8483e.entry.js.map → p-6d60866a.system.entry.js.map} +0 -0
  286. /package/dist/swisspost-internet-header/{p-aa836528.entry.js.map → p-7505c3e1.system.entry.js.map} +0 -0
  287. /package/dist/swisspost-internet-header/{p-e2b94a49.js.map → p-7d188581.js.map} +0 -0
  288. /package/dist/swisspost-internet-header/{p-62bb3696.system.js.map → p-87756f7c.system.js.map} +0 -0
  289. /package/dist/swisspost-internet-header/{p-3e59929c.js.map → p-8a65e8d6.js.map} +0 -0
  290. /package/dist/swisspost-internet-header/{p-c8567a81.system.js.map → p-8b9d7320.system.js.map} +0 -0
  291. /package/dist/swisspost-internet-header/{p-aae36739.entry.js.map → p-8df32cb8.system.js.map} +0 -0
  292. /package/dist/swisspost-internet-header/{p-b4ae4c6d.system.entry.js.map → p-943d2956.system.entry.js.map} +0 -0
  293. /package/dist/swisspost-internet-header/{p-b588b3bf.system.entry.js.map → p-948d3e8f.entry.js.map} +0 -0
  294. /package/dist/swisspost-internet-header/{p-51a44f8a.js.map → p-979ae0e8.js.map} +0 -0
  295. /package/dist/swisspost-internet-header/{p-fab8c31c.system.js.map → p-9b1e0d60.system.js.map} +0 -0
  296. /package/dist/swisspost-internet-header/{p-c857983f.entry.js.map → p-a08ee9d3.entry.js.map} +0 -0
  297. /package/dist/swisspost-internet-header/{p-c91db812.system.entry.js.map → p-a4d04c0b.system.entry.js.map} +0 -0
  298. /package/dist/swisspost-internet-header/{p-cb958a70.entry.js.map → p-b8c6f6a6.system.entry.js.map} +0 -0
  299. /package/dist/swisspost-internet-header/{p-4e3b909b.js.map → p-bc60a641.js.map} +0 -0
  300. /package/dist/swisspost-internet-header/{p-0adc396f.js.map → p-bfbb5fc7.js.map} +0 -0
  301. /package/dist/swisspost-internet-header/{p-d55807a5.entry.js.map → p-c466f253.entry.js.map} +0 -0
  302. /package/dist/swisspost-internet-header/{p-e082d4fe.js.map → p-c7f451bd.js.map} +0 -0
  303. /package/dist/swisspost-internet-header/{p-da01a322.system.js.map → p-c7fba36e.system.entry.js.map} +0 -0
  304. /package/dist/swisspost-internet-header/{p-461e53b1.js.map → p-c8153649.js.map} +0 -0
  305. /package/dist/swisspost-internet-header/{p-2b163d9c.system.js.map → p-c895eccc.system.js.map} +0 -0
  306. /package/dist/swisspost-internet-header/{p-ec8cc78c.system.entry.js.map → p-d6ab4ef3.entry.js.map} +0 -0
  307. /package/dist/swisspost-internet-header/{p-fc3447a7.system.entry.js.map → p-da7b8486.system.entry.js.map} +0 -0
  308. /package/dist/swisspost-internet-header/{p-c876af15.system.js.map → p-dd800ff2.system.js.map} +0 -0
  309. /package/dist/swisspost-internet-header/{p-90609524.system.js.map → p-e2985a86.system.js.map} +0 -0
  310. /package/dist/swisspost-internet-header/{p-548291cb.system.js.map → p-e5acc124.system.js.map} +0 -0
  311. /package/dist/swisspost-internet-header/{p-fce5a989.system.entry.js.map → p-ff36437b.entry.js.map} +0 -0
@@ -13,8 +13,8 @@
13
13
  ],
14
14
  "compiler": {
15
15
  "name": "@stencil/core",
16
- "version": "4.9.0",
17
- "typescriptVersion": "5.2.2"
16
+ "version": "4.10.0",
17
+ "typescriptVersion": "5.3.3"
18
18
  },
19
19
  "collections": [],
20
20
  "bundles": [
@@ -1 +1 @@
1
- {"version":3,"file":"focus-trap.component.js","sourceRoot":"","sources":["../../../../../src/components/post-internet-breadcrumbs/components/focus-trap.component.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,IAAI,GAAG,GAAG,CAAC,CAAC;AAEZ;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAA8C,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;;IACtF,mCAAmC;IACnC,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC;IAErC,MAAM,aAAa,GAAG,CAAC,KAAiB,EAAE,IAAsB,EAAE,EAAE;QAClE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACpB,OAAO;SACR;QAED,yCAAyC;QACzC,MAAM,cAAc,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;QACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEtC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACrB,OAAO;SACR;QAED,0CAA0C;QAC1C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,+CAA+C;QAC/C,MAAM,UAAU,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/D,IAAI,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACzC,YAAY,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,GAAG,EAAE,CAAC;IAEN,OAAO;QACL,aACE,IAAI,EAAC,MAAM,iBACC,MAAM,EAClB,KAAK,EAAC,iBAAiB,EACvB,GAAG,EAAE,qBAAqB,GAAG,EAAE,EAC/B,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,GAClD;QACF,QAAQ;QACR,aACE,IAAI,EAAC,MAAM,iBACC,MAAM,EAClB,KAAK,EAAC,iBAAiB,EACvB,GAAG,EAAE,oBAAoB,GAAG,EAAE,EAC9B,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,GACnD;KACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { tabbable } from 'tabbable';\n\nlet key = 0;\n\n/**\n * Trap the focus inside a specific container by prepending/appending two focus trap\n * input boxes who return the focus into the container.\n *\n * @param props active: activate or deactivate the focus trap\n * @param children Child nodes\n * @returns\n */\nexport const FocusTrap: FunctionalComponent<{ active?: boolean }> = (props, children) => {\n // Default value for active is true\n const active = props.active ?? false;\n\n const handleFocusIn = (event: FocusEvent, mode: 'first' | 'last') => {\n if (!children.length) {\n return;\n }\n\n // Try to get a list of tabbable elements\n const containerIndex = mode === 'first' ? 0 : children.length - 1;\n const container = children[containerIndex].$elm$;\n const focusable = tabbable(container);\n\n if (!focusable.length) {\n return;\n }\n\n // We can trap the focus, cancel the event\n event.preventDefault();\n event.stopPropagation();\n\n // Select the appropriate element from the list\n const focusIndex = mode === 'first' ? 0 : focusable.length - 1;\n let focusElement = focusable[focusIndex];\n focusElement.focus();\n };\n\n key++;\n\n return [\n <input\n type=\"text\"\n aria-hidden=\"true\"\n class=\"visually-hidden\"\n key={`focus-trap-before-${key}`}\n onFocusin={e => active && handleFocusIn(e, 'last')}\n />,\n children,\n <input\n type=\"text\"\n aria-hidden=\"true\"\n class=\"visually-hidden\"\n key={`focus-trap-after-${key}`}\n onFocusin={e => active && handleFocusIn(e, 'first')}\n />,\n ];\n};\n"]}
1
+ {"version":3,"file":"focus-trap.component.js","sourceRoot":"","sources":["../../../../../src/components/post-internet-breadcrumbs/components/focus-trap.component.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,IAAI,GAAG,GAAG,CAAC,CAAC;AAEZ;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAA8C,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;;IACtF,mCAAmC;IACnC,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC;IAErC,MAAM,aAAa,GAAG,CAAC,KAAiB,EAAE,IAAsB,EAAE,EAAE;QAClE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,yCAAyC;QACzC,MAAM,cAAc,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;QACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEtC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,0CAA0C;QAC1C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,+CAA+C;QAC/C,MAAM,UAAU,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/D,IAAI,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACzC,YAAY,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,GAAG,EAAE,CAAC;IAEN,OAAO;QACL,aACE,IAAI,EAAC,MAAM,iBACC,MAAM,EAClB,KAAK,EAAC,iBAAiB,EACvB,GAAG,EAAE,qBAAqB,GAAG,EAAE,EAC/B,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,GAClD;QACF,QAAQ;QACR,aACE,IAAI,EAAC,MAAM,iBACC,MAAM,EAClB,KAAK,EAAC,iBAAiB,EACvB,GAAG,EAAE,oBAAoB,GAAG,EAAE,EAC9B,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,GACnD;KACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { tabbable } from 'tabbable';\n\nlet key = 0;\n\n/**\n * Trap the focus inside a specific container by prepending/appending two focus trap\n * input boxes who return the focus into the container.\n *\n * @param props active: activate or deactivate the focus trap\n * @param children Child nodes\n * @returns\n */\nexport const FocusTrap: FunctionalComponent<{ active?: boolean }> = (props, children) => {\n // Default value for active is true\n const active = props.active ?? false;\n\n const handleFocusIn = (event: FocusEvent, mode: 'first' | 'last') => {\n if (!children.length) {\n return;\n }\n\n // Try to get a list of tabbable elements\n const containerIndex = mode === 'first' ? 0 : children.length - 1;\n const container = children[containerIndex].$elm$;\n const focusable = tabbable(container);\n\n if (!focusable.length) {\n return;\n }\n\n // We can trap the focus, cancel the event\n event.preventDefault();\n event.stopPropagation();\n\n // Select the appropriate element from the list\n const focusIndex = mode === 'first' ? 0 : focusable.length - 1;\n let focusElement = focusable[focusIndex];\n focusElement.focus();\n };\n\n key++;\n\n return [\n <input\n type=\"text\"\n aria-hidden=\"true\"\n class=\"visually-hidden\"\n key={`focus-trap-before-${key}`}\n onFocusin={e => active && handleFocusIn(e, 'last')}\n />,\n children,\n <input\n type=\"text\"\n aria-hidden=\"true\"\n class=\"visually-hidden\"\n key={`focus-trap-after-${key}`}\n onFocusin={e => active && handleFocusIn(e, 'first')}\n />,\n ];\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"post-internet-breadcrumbs.js","sourceRoot":"","sources":["../../../../src/components/post-internet-breadcrumbs/post-internet-breadcrumbs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAOzD,MAAM,OAAO,uBAAuB;;;2BAMH,KAAK;;;;4BAKH,KAAK;yBACR,KAAK;;IAGnC;;;OAGG;IAEH,KAAK,CAAC,iBAAiB,CAAC,SAAmC;;QACzD,MAAM,OAAO,GAAG,MAAA,KAAK,CAAC,eAAe,0CAAE,UAAU,CAAC,OAAO,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,0CAAE,OAAO,CAAC;QAElF,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,CAAC,IAAI,CACV,sDAAsD,SAAS,wDAAwD,CACxH,CAAC;YACF,OAAO;SACR;QAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAUD,iBAAiB;QACf,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,oBAAoB;QAClB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3D,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5D,uBAAuB,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,wDAAwD;QACxD,IAAI;YACF,IAAI,CAAC,qBAAqB;gBACxB,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;SAC1F;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACtB;IACH,CAAC;IAED,gBAAgB;QACd,uDAAuD;QACvD,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,wBAAwB,CAAC,QAAoC;QAC3D,IAAI;YACF,IAAI,CAAC,qBAAqB,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SAC7F;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACtB;IACH,CAAC;IAED,YAAY;QACV,qEAAqE;QACrE,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,eAAe,EAAE;YAC9C,OAAO;SACR;QACD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE;YAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,kBAAkB;YAClB,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;gBAChC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE;oBAC5C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;iBACvF;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,aAAa,CAAC,OAA2B,EAAE,KAAe;;QACxD,MAAM,aAAa,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAEpD,IAAI,aAAa,EAAE;YACjB,sDAAsD;YACtD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YACpC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC7B;aAAM;YACL,MAAM,aAAa,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,aAAa,CACvD,4CAA4C,CAC7C,CAAC;YAEF,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,EAAE;gBAC9C,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;gBAE/B,0DAA0D;gBAC1D,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBAClF,IAAI,aAAa,EAAE;wBACjB,aAAa,CAAC,KAAK,EAAE,CAAC;qBACvB;oBACD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;oBACpC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAA2B;QACvC,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,aAAa;YACb,iBAAiB,CAAC,OAAO,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;SAC3D;aAAM;YACL,aAAa;YACb,gBAAgB,CAAC,OAAO,CAAC,CAAC;SAC3B;IACH,CAAC;IAED,cAAc,CAAC,KAAe;QAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAEhD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,qBAAqB,CAAC,GAAG,EAAE;gBACzB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,qBAAqB,CAAC,MAAqC;QACzD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;;YACnC,aAAa,CACX;gBACE,uBAAuB,EAAE,eAAe;gBACxC,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,KAAK;aACnB,EACD,MAAM,CACP,CAAC;YACF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAChD,IAAI,CAAC,eAAe,GAAG,MAAA,MAAM,CAAC,aAAa,0CAAE,OAAO,CAClD,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,EACrE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAC/B,CAAC;YACF,MAAA,MAAM,CAAC,aAAa,0CAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAA,IAAI,CAAC,eAAe,0CAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;;gBACvC,MAAA,MAAM,CAAC,aAAa,0CAAE,KAAK,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,CAA0B;QACnC,IAAI,CAAC,CAAC,EAAE;YACN,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;YACtE,QAAQ;YACR,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,KAAoB;QACxC,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;YACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;SAChD;IACH,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAEO,mBAAmB,CAAC,OAAoB;QAC9C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,mBAAmB,CAAC,OAAoB;QAC9C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM;QACJ,oCAAoC;QACpC,wEAAwE;QACxE,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,CAAC,IAAI,CACV,wJAAwJ,CACzJ,CAAC;YACF,OAAO,IAAI,CAAC;SACb;QAED,2BAA2B;QAC3B,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;YAC1B,OAAO,IAAI,CAAC;SACb;QAED,uDAAuD;QACvD,wEAAwE;QACxE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,EAAE;YACrC,OAAO,CAAC,IAAI,CACV,qCAAqC,KAAK,CAAC,SAAS,uFAAuF,EAC3I,QAAQ,CAAC,aAAa,CAAC,gCAAgC,CAAC,EACxD,kGAAkG,CACnG,CAAC;YACF,OAAO,IAAI,CAAC;SACb;QAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC;QAC1D,MAAM,KAAK,GACT,IAAI,CAAC,qBAAqB,KAAK,SAAS;YACtC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;YAC5D,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAE7B,OAAO,CACL,EAAC,IAAI;YACH,EAAC,SAAS,OAAG;YACb,WAAK,KAAK,EAAC,aAAa;gBACtB,WAAK,KAAK,EAAC,4BAA4B,iBAAa,MAAM,EAAC,QAAQ,EAAC,IAAI;oBACtE,WAAK,KAAK,EAAC,iBAAiB,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBACnF,EAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,KAAK,EAChB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC,GACN,CACd,CACF;gBACN,yBACc,gBAAgB,CAAC,SAAS,EACtC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EACxD,KAAK,EAAE;wBACL,iBAAiB,EAAE,IAAI;wBACvB,iBAAiB,EAAE,CAAC,IAAI,CAAC,SAAS;qBACnC;oBAED,EAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAC/B,CACd;gBACL,CAAC,IAAI,CAAC,WAAW,IAAI,CACpB,WAAK,KAAK,EAAC,oBAAoB,IAC5B,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CACtC,cACE,KAAK,EAAC,4BAA4B,EAClC,GAAG,EAAE,MAAM,CAAC,IAAI,mBACD,GAAG,OAAO,CACvB,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,OAAO,CAC9D,EAAE,EACH,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;oBAEvD,EAAC,OAAO,IAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,GAAY;oBAC9C,YAAM,KAAK,EAAC,iBAAiB,IAAE,MAAM,CAAC,IAAI,CAAQ,CAC3C,CACV,CAAC,CACE,CACP;gBACA,IAAI,CAAC,cAAc,IAAI,CACtB,EAAC,gBAAgB,IACf,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EACtD,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAChE,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,EACzC,SAAS,EAAE,CAAC,CAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EACtD,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,GACxD,CACrB,CACG;YACN,eAAa,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Host, Method, Prop, State, Watch } from '@stencil/core';\nimport { debounce } from 'throttle-debounce';\nimport { clearAllBodyScrollLocks, disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { state } from '../../data/store';\nimport { OverlayComponent } from './components/overlay.component';\nimport { iframeResizer } from 'iframe-resizer';\nimport { IBreadcrumbItem, IBreadcrumbOverlay } from '../../models/breadcrumbs.model';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { BreadcrumbList } from './components/breadcrumb-list.component';\nimport { prefersReducedMotion } from '../../utils/utils';\n\n@Component({\n tag: 'swisspost-internet-breadcrumbs',\n styleUrl: 'post-internet-breadcrumbs.scss',\n shadow: true,\n})\nexport class PostInternetBreadcrumbs {\n @Prop() customItems?: string | IBreadcrumbItem[];\n\n /**\n * Hide all buttons.\n */\n @Prop() hideButtons: boolean = false;\n\n @State() customBreadcrumbItems?: IBreadcrumbItem[];\n @State() overlayVisible: boolean;\n @State() isConcatenated: boolean; // Don't set an initial value, this has to be calculated first, otherwise reactivity problems ensue\n @State() dropdownOpen: boolean = false;\n @State() refsReady: boolean = false;\n @Element() host: HTMLSwisspostInternetBreadcrumbsElement;\n\n /**\n * Toggle an overlay associated with a button.\n * @param {IBreadcrumbOverlay['id']} overlayId\n */\n @Method()\n async toggleOverlayById(overlayId: IBreadcrumbOverlay['id']): Promise<void> {\n const buttons = state.localizedConfig?.breadcrumb.buttons;\n const overlay = buttons?.find(button => button.overlay.id === overlayId)?.overlay;\n\n if (!overlay) {\n console.warn(\n `Internet Header: Failed to toggle overlay with id #${overlayId} as it was not found in the breadcrumb buttons config.`,\n );\n return;\n }\n\n this.toggleOverlay(overlay);\n }\n\n private controlNavRef?: HTMLElement;\n private visibleNavRef?: HTMLElement;\n private currentOverlay: IBreadcrumbOverlay;\n private debouncedResize: debounce<() => void>;\n private lastWindowWidth: number;\n private openAnimation: Animation;\n private loadedAnimation: Animation | undefined;\n\n connectedCallback() {\n this.debouncedResize = debounce(200, this.handleResize.bind(this));\n window.addEventListener('resize', this.debouncedResize, { passive: true });\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.debouncedResize);\n window.removeEventListener('click', this.handleWindowClick);\n clearAllBodyScrollLocks();\n }\n\n async componentWillLoad() {\n // Wait for the config to arrive, then render the header\n try {\n this.customBreadcrumbItems =\n typeof this.customItems === 'string' ? JSON.parse(this.customItems) : this.customItems;\n } catch (error) {\n console.error(error);\n }\n }\n\n componentDidLoad() {\n // Initially check if breadcrumb items are concatenated\n window.requestAnimationFrame(() => {\n this.handleResize();\n });\n }\n\n @Watch('customItems')\n handleCustomConfigChange(newValue: string | IBreadcrumbItem[]) {\n try {\n this.customBreadcrumbItems = typeof newValue === 'string' ? JSON.parse(newValue) : newValue;\n } catch (error) {\n console.error(error);\n }\n }\n\n handleResize() {\n // Catch and exclude vertical resize events, e.g. scrolling in iPhone\n if (window.innerWidth === this.lastWindowWidth) {\n return;\n }\n this.lastWindowWidth = window.innerWidth;\n this.checkConcatenation();\n }\n\n checkConcatenation() {\n if (this.controlNavRef && this.visibleNavRef) {\n this.refsReady = true;\n\n // Delay the check\n window.requestAnimationFrame(() => {\n if (this.controlNavRef && this.visibleNavRef) {\n this.isConcatenated = this.controlNavRef.clientWidth > this.visibleNavRef.clientWidth;\n }\n });\n }\n }\n\n toggleOverlay(overlay: IBreadcrumbOverlay, force?: boolean) {\n const newVisibility = force ?? !this.overlayVisible;\n\n if (newVisibility) {\n // Will trigger overlayRef() once the HTML is rendered\n this.overlayVisible = newVisibility;\n this.currentOverlay = overlay;\n this.setBodyScroll(overlay);\n } else {\n const activeToggler = this.host.shadowRoot?.querySelector<HTMLElement>(\n '.breadcrumb-buttons [aria-expanded=\"true\"]',\n );\n\n if (this.openAnimation && this.loadedAnimation) {\n this.openAnimation.reverse();\n this.loadedAnimation.reverse();\n\n // Delay hiding overlay until after the animation finishes\n Promise.all([this.openAnimation.finished, this.loadedAnimation.finished]).then(() => {\n if (activeToggler) {\n activeToggler.focus();\n }\n this.overlayVisible = newVisibility;\n this.setBodyScroll(overlay);\n });\n }\n }\n }\n\n /**\n * Disable or re-enable body scrolling, depending on whether overlay is visible or not\n */\n setBodyScroll(overlay: IBreadcrumbOverlay) {\n if (this.overlayVisible) {\n // @ts-ignore\n disableBodyScroll(overlay, { reserveScrollBarGap: true });\n } else {\n // @ts-ignore\n enableBodyScroll(overlay);\n }\n }\n\n toggleDropdown(force?: boolean) {\n this.dropdownOpen = force ?? !this.dropdownOpen;\n\n if (this.dropdownOpen) {\n requestAnimationFrame(() => {\n document.addEventListener('click', this.handleWindowClick.bind(this), { once: true });\n });\n }\n }\n\n handleWindowClick() {\n this.toggleDropdown(false);\n }\n\n registerIFrameResizer(iFrame: HTMLIFrameElement | undefined) {\n if (!iFrame) {\n return;\n }\n\n iFrame.addEventListener('load', () => {\n iframeResizer(\n {\n heightCalculationMethod: 'taggedElement',\n scrolling: true,\n checkOrigin: false,\n },\n iFrame,\n );\n const duration = prefersReducedMotion ? 0 : 300;\n this.loadedAnimation = iFrame.parentElement?.animate(\n [{ opacity: 1, visibility: 'visible', transform: 'translateY(0px)' }],\n { duration, fill: 'forwards' },\n );\n iFrame.parentElement?.classList.add('loaded');\n this.loadedAnimation?.finished.then(() => {\n iFrame.parentElement?.focus();\n });\n });\n }\n\n /**\n * Reference function for the overlay element got called. It is either null (overlay closed)\n * or contains the overlay element as parameter.\n * @param e Overlay element or null\n * @returns void\n */\n overlayRef(e: HTMLElement | undefined) {\n if (!e) {\n return;\n }\n\n const duration = prefersReducedMotion ? 0 : 500;\n this.openAnimation = e.animate([{ opacity: 1, visibility: 'visible' }], {\n duration,\n fill: 'forwards',\n });\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (event.key.toLowerCase() === 'escape') {\n this.toggleOverlay(this.currentOverlay, false);\n }\n }\n\n private handleToggleDropdown() {\n this.toggleDropdown();\n }\n\n private handleToggleOverlay() {\n this.toggleOverlay(this.currentOverlay, false);\n }\n\n private handleControlNavRef(element: HTMLElement) {\n this.controlNavRef = element;\n this.checkConcatenation();\n }\n\n private handleVisibleNavRef(element: HTMLElement) {\n this.visibleNavRef = element;\n this.checkConcatenation();\n }\n\n render() {\n // There is something wrong entirely\n // eslint-disable-next-line @stencil-community/strict-boolean-conditions\n if (!state) {\n console.warn(\n `Internet Breadcrumbs: Could not load config. Please make sure that you included the <swisspost-internet-header></swisspost-internet-header> component.`,\n );\n return null;\n }\n\n // Config is not loaded yet\n if (!state.localizedConfig) {\n return null;\n }\n\n // Config has loaded but there is no breadcrumbs config\n // eslint-disable-next-line @stencil-community/strict-boolean-conditions\n if (!state.localizedConfig.breadcrumb) {\n console.warn(\n `Internet Header: Current project \"${state.projectId}\" does not include a breadcrumb config. The breadcrumbs will not be rendered. Remove `,\n document.querySelector('swisspost-internet-breadcrumbs'),\n `from your markup or configure the breadcrumbs in your portal config to stop seeing this warning.`,\n );\n return null;\n }\n\n const breadcrumbConfig = state.localizedConfig.breadcrumb;\n const items =\n this.customBreadcrumbItems !== undefined\n ? [...breadcrumbConfig.items, ...this.customBreadcrumbItems]\n : breadcrumbConfig.items;\n\n return (\n <Host>\n <SvgSprite />\n <div class=\"breadcrumbs\">\n <div class=\"hidden-control-breadcrumbs\" aria-hidden=\"true\" tabindex=\"-1\">\n <nav class=\"breadcrumbs-nav\" ref={e => e !== undefined && this.handleControlNavRef(e)}>\n <BreadcrumbList\n items={items}\n focusable={false}\n clickHandler={() => {}}\n ></BreadcrumbList>\n </nav>\n </div>\n <nav\n aria-label={breadcrumbConfig.a11yLabel}\n ref={e => e !== undefined && this.handleVisibleNavRef(e)}\n class={{\n 'breadcrumbs-nav': true,\n 'visually-hidden': !this.refsReady,\n }}\n >\n <BreadcrumbList\n items={items}\n dropdownOpen={this.dropdownOpen}\n isConcatenated={this.isConcatenated}\n clickHandler={() => this.handleToggleDropdown()}\n ></BreadcrumbList>\n </nav>\n {!this.hideButtons && (\n <div class=\"breadcrumb-buttons\">\n {breadcrumbConfig.buttons.map(button => (\n <button\n class=\"btn btn-secondary btn-icon\"\n key={button.text}\n aria-expanded={`${Boolean(\n this.overlayVisible && this.currentOverlay === button.overlay,\n )}`}\n onClick={() => this.toggleOverlay(button.overlay, true)}\n >\n <SvgIcon name={button.svgIcon.name}></SvgIcon>\n <span class=\"visually-hidden\">{button.text}</span>\n </button>\n ))}\n </div>\n )}\n {this.overlayVisible && (\n <OverlayComponent\n overlayRef={e => e !== undefined && this.overlayRef(e)}\n iFrameRef={e => e !== undefined && this.registerIFrameResizer(e)}\n overlay={this.currentOverlay}\n onClick={() => this.handleToggleOverlay()}\n onKeyDown={(e: KeyboardEvent) => this.handleKeyDown(e)}\n closeButtonText={state.localizedConfig.header.translations.closeButtonText}\n ></OverlayComponent>\n )}\n </div>\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"post-internet-breadcrumbs.js","sourceRoot":"","sources":["../../../../src/components/post-internet-breadcrumbs/post-internet-breadcrumbs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAOzD,MAAM,OAAO,uBAAuB;;;2BAMH,KAAK;;;;4BAKH,KAAK;yBACR,KAAK;;IAGnC;;;OAGG;IAEH,KAAK,CAAC,iBAAiB,CAAC,SAAmC;;QACzD,MAAM,OAAO,GAAG,MAAA,KAAK,CAAC,eAAe,0CAAE,UAAU,CAAC,OAAO,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,0CAAE,OAAO,CAAC;QAElF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,sDAAsD,SAAS,wDAAwD,CACxH,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAUD,iBAAiB;QACf,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,oBAAoB;QAClB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3D,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5D,uBAAuB,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,wDAAwD;QACxD,IAAI,CAAC;YACH,IAAI,CAAC,qBAAqB;gBACxB,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAC3F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,uDAAuD;QACvD,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,wBAAwB,CAAC,QAAoC;QAC3D,IAAI,CAAC;YACH,IAAI,CAAC,qBAAqB,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,YAAY;QACV,qEAAqE;QACrE,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,kBAAkB;YAClB,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;gBAChC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC7C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;gBACxF,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,aAAa,CAAC,OAA2B,EAAE,KAAe;;QACxD,MAAM,aAAa,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAEpD,IAAI,aAAa,EAAE,CAAC;YAClB,sDAAsD;YACtD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YACpC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,aAAa,CACvD,4CAA4C,CAC7C,CAAC;YAEF,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC/C,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;gBAE/B,0DAA0D;gBAC1D,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBAClF,IAAI,aAAa,EAAE,CAAC;wBAClB,aAAa,CAAC,KAAK,EAAE,CAAC;oBACxB,CAAC;oBACD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;oBACpC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAA2B;QACvC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,aAAa;YACb,iBAAiB,CAAC,OAAO,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,aAAa;YACb,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,cAAc,CAAC,KAAe;QAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAEhD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,qBAAqB,CAAC,GAAG,EAAE;gBACzB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,qBAAqB,CAAC,MAAqC;QACzD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;;YACnC,aAAa,CACX;gBACE,uBAAuB,EAAE,eAAe;gBACxC,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,KAAK;aACnB,EACD,MAAM,CACP,CAAC;YACF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAChD,IAAI,CAAC,eAAe,GAAG,MAAA,MAAM,CAAC,aAAa,0CAAE,OAAO,CAClD,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,EACrE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAC/B,CAAC;YACF,MAAA,MAAM,CAAC,aAAa,0CAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAA,IAAI,CAAC,eAAe,0CAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;;gBACvC,MAAA,MAAM,CAAC,aAAa,0CAAE,KAAK,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,CAA0B;QACnC,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;YACtE,QAAQ;YACR,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,KAAoB;QACxC,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAEO,mBAAmB,CAAC,OAAoB;QAC9C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,mBAAmB,CAAC,OAAoB;QAC9C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM;QACJ,oCAAoC;QACpC,wEAAwE;QACxE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CACV,wJAAwJ,CACzJ,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,uDAAuD;QACvD,wEAAwE;QACxE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CACV,qCAAqC,KAAK,CAAC,SAAS,uFAAuF,EAC3I,QAAQ,CAAC,aAAa,CAAC,gCAAgC,CAAC,EACxD,kGAAkG,CACnG,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC;QAC1D,MAAM,KAAK,GACT,IAAI,CAAC,qBAAqB,KAAK,SAAS;YACtC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;YAC5D,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAE7B,OAAO,CACL,EAAC,IAAI;YACH,EAAC,SAAS,OAAG;YACb,WAAK,KAAK,EAAC,aAAa;gBACtB,WAAK,KAAK,EAAC,4BAA4B,iBAAa,MAAM,EAAC,QAAQ,EAAC,IAAI;oBACtE,WAAK,KAAK,EAAC,iBAAiB,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBACnF,EAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,KAAK,EAChB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC,GACN,CACd,CACF;gBACN,yBACc,gBAAgB,CAAC,SAAS,EACtC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EACxD,KAAK,EAAE;wBACL,iBAAiB,EAAE,IAAI;wBACvB,iBAAiB,EAAE,CAAC,IAAI,CAAC,SAAS;qBACnC;oBAED,EAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAC/B,CACd;gBACL,CAAC,IAAI,CAAC,WAAW,IAAI,CACpB,WAAK,KAAK,EAAC,oBAAoB,IAC5B,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CACtC,cACE,KAAK,EAAC,4BAA4B,EAClC,GAAG,EAAE,MAAM,CAAC,IAAI,mBACD,GAAG,OAAO,CACvB,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,OAAO,CAC9D,EAAE,EACH,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;oBAEvD,EAAC,OAAO,IAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,GAAY;oBAC9C,YAAM,KAAK,EAAC,iBAAiB,IAAE,MAAM,CAAC,IAAI,CAAQ,CAC3C,CACV,CAAC,CACE,CACP;gBACA,IAAI,CAAC,cAAc,IAAI,CACtB,EAAC,gBAAgB,IACf,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EACtD,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAChE,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,EACzC,SAAS,EAAE,CAAC,CAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EACtD,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,GACxD,CACrB,CACG;YACN,eAAa,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Host, Method, Prop, State, Watch } from '@stencil/core';\nimport { debounce } from 'throttle-debounce';\nimport { clearAllBodyScrollLocks, disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { state } from '../../data/store';\nimport { OverlayComponent } from './components/overlay.component';\nimport { iframeResizer } from 'iframe-resizer';\nimport { IBreadcrumbItem, IBreadcrumbOverlay } from '../../models/breadcrumbs.model';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { BreadcrumbList } from './components/breadcrumb-list.component';\nimport { prefersReducedMotion } from '../../utils/utils';\n\n@Component({\n tag: 'swisspost-internet-breadcrumbs',\n styleUrl: 'post-internet-breadcrumbs.scss',\n shadow: true,\n})\nexport class PostInternetBreadcrumbs {\n @Prop() customItems?: string | IBreadcrumbItem[];\n\n /**\n * Hide all buttons.\n */\n @Prop() hideButtons: boolean = false;\n\n @State() customBreadcrumbItems?: IBreadcrumbItem[];\n @State() overlayVisible: boolean;\n @State() isConcatenated: boolean; // Don't set an initial value, this has to be calculated first, otherwise reactivity problems ensue\n @State() dropdownOpen: boolean = false;\n @State() refsReady: boolean = false;\n @Element() host: HTMLSwisspostInternetBreadcrumbsElement;\n\n /**\n * Toggle an overlay associated with a button.\n * @param {IBreadcrumbOverlay['id']} overlayId\n */\n @Method()\n async toggleOverlayById(overlayId: IBreadcrumbOverlay['id']): Promise<void> {\n const buttons = state.localizedConfig?.breadcrumb.buttons;\n const overlay = buttons?.find(button => button.overlay.id === overlayId)?.overlay;\n\n if (!overlay) {\n console.warn(\n `Internet Header: Failed to toggle overlay with id #${overlayId} as it was not found in the breadcrumb buttons config.`,\n );\n return;\n }\n\n this.toggleOverlay(overlay);\n }\n\n private controlNavRef?: HTMLElement;\n private visibleNavRef?: HTMLElement;\n private currentOverlay: IBreadcrumbOverlay;\n private debouncedResize: debounce<() => void>;\n private lastWindowWidth: number;\n private openAnimation: Animation;\n private loadedAnimation: Animation | undefined;\n\n connectedCallback() {\n this.debouncedResize = debounce(200, this.handleResize.bind(this));\n window.addEventListener('resize', this.debouncedResize, { passive: true });\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.debouncedResize);\n window.removeEventListener('click', this.handleWindowClick);\n clearAllBodyScrollLocks();\n }\n\n async componentWillLoad() {\n // Wait for the config to arrive, then render the header\n try {\n this.customBreadcrumbItems =\n typeof this.customItems === 'string' ? JSON.parse(this.customItems) : this.customItems;\n } catch (error) {\n console.error(error);\n }\n }\n\n componentDidLoad() {\n // Initially check if breadcrumb items are concatenated\n window.requestAnimationFrame(() => {\n this.handleResize();\n });\n }\n\n @Watch('customItems')\n handleCustomConfigChange(newValue: string | IBreadcrumbItem[]) {\n try {\n this.customBreadcrumbItems = typeof newValue === 'string' ? JSON.parse(newValue) : newValue;\n } catch (error) {\n console.error(error);\n }\n }\n\n handleResize() {\n // Catch and exclude vertical resize events, e.g. scrolling in iPhone\n if (window.innerWidth === this.lastWindowWidth) {\n return;\n }\n this.lastWindowWidth = window.innerWidth;\n this.checkConcatenation();\n }\n\n checkConcatenation() {\n if (this.controlNavRef && this.visibleNavRef) {\n this.refsReady = true;\n\n // Delay the check\n window.requestAnimationFrame(() => {\n if (this.controlNavRef && this.visibleNavRef) {\n this.isConcatenated = this.controlNavRef.clientWidth > this.visibleNavRef.clientWidth;\n }\n });\n }\n }\n\n toggleOverlay(overlay: IBreadcrumbOverlay, force?: boolean) {\n const newVisibility = force ?? !this.overlayVisible;\n\n if (newVisibility) {\n // Will trigger overlayRef() once the HTML is rendered\n this.overlayVisible = newVisibility;\n this.currentOverlay = overlay;\n this.setBodyScroll(overlay);\n } else {\n const activeToggler = this.host.shadowRoot?.querySelector<HTMLElement>(\n '.breadcrumb-buttons [aria-expanded=\"true\"]',\n );\n\n if (this.openAnimation && this.loadedAnimation) {\n this.openAnimation.reverse();\n this.loadedAnimation.reverse();\n\n // Delay hiding overlay until after the animation finishes\n Promise.all([this.openAnimation.finished, this.loadedAnimation.finished]).then(() => {\n if (activeToggler) {\n activeToggler.focus();\n }\n this.overlayVisible = newVisibility;\n this.setBodyScroll(overlay);\n });\n }\n }\n }\n\n /**\n * Disable or re-enable body scrolling, depending on whether overlay is visible or not\n */\n setBodyScroll(overlay: IBreadcrumbOverlay) {\n if (this.overlayVisible) {\n // @ts-ignore\n disableBodyScroll(overlay, { reserveScrollBarGap: true });\n } else {\n // @ts-ignore\n enableBodyScroll(overlay);\n }\n }\n\n toggleDropdown(force?: boolean) {\n this.dropdownOpen = force ?? !this.dropdownOpen;\n\n if (this.dropdownOpen) {\n requestAnimationFrame(() => {\n document.addEventListener('click', this.handleWindowClick.bind(this), { once: true });\n });\n }\n }\n\n handleWindowClick() {\n this.toggleDropdown(false);\n }\n\n registerIFrameResizer(iFrame: HTMLIFrameElement | undefined) {\n if (!iFrame) {\n return;\n }\n\n iFrame.addEventListener('load', () => {\n iframeResizer(\n {\n heightCalculationMethod: 'taggedElement',\n scrolling: true,\n checkOrigin: false,\n },\n iFrame,\n );\n const duration = prefersReducedMotion ? 0 : 300;\n this.loadedAnimation = iFrame.parentElement?.animate(\n [{ opacity: 1, visibility: 'visible', transform: 'translateY(0px)' }],\n { duration, fill: 'forwards' },\n );\n iFrame.parentElement?.classList.add('loaded');\n this.loadedAnimation?.finished.then(() => {\n iFrame.parentElement?.focus();\n });\n });\n }\n\n /**\n * Reference function for the overlay element got called. It is either null (overlay closed)\n * or contains the overlay element as parameter.\n * @param e Overlay element or null\n * @returns void\n */\n overlayRef(e: HTMLElement | undefined) {\n if (!e) {\n return;\n }\n\n const duration = prefersReducedMotion ? 0 : 500;\n this.openAnimation = e.animate([{ opacity: 1, visibility: 'visible' }], {\n duration,\n fill: 'forwards',\n });\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (event.key.toLowerCase() === 'escape') {\n this.toggleOverlay(this.currentOverlay, false);\n }\n }\n\n private handleToggleDropdown() {\n this.toggleDropdown();\n }\n\n private handleToggleOverlay() {\n this.toggleOverlay(this.currentOverlay, false);\n }\n\n private handleControlNavRef(element: HTMLElement) {\n this.controlNavRef = element;\n this.checkConcatenation();\n }\n\n private handleVisibleNavRef(element: HTMLElement) {\n this.visibleNavRef = element;\n this.checkConcatenation();\n }\n\n render() {\n // There is something wrong entirely\n // eslint-disable-next-line @stencil-community/strict-boolean-conditions\n if (!state) {\n console.warn(\n `Internet Breadcrumbs: Could not load config. Please make sure that you included the <swisspost-internet-header></swisspost-internet-header> component.`,\n );\n return null;\n }\n\n // Config is not loaded yet\n if (!state.localizedConfig) {\n return null;\n }\n\n // Config has loaded but there is no breadcrumbs config\n // eslint-disable-next-line @stencil-community/strict-boolean-conditions\n if (!state.localizedConfig.breadcrumb) {\n console.warn(\n `Internet Header: Current project \"${state.projectId}\" does not include a breadcrumb config. The breadcrumbs will not be rendered. Remove `,\n document.querySelector('swisspost-internet-breadcrumbs'),\n `from your markup or configure the breadcrumbs in your portal config to stop seeing this warning.`,\n );\n return null;\n }\n\n const breadcrumbConfig = state.localizedConfig.breadcrumb;\n const items =\n this.customBreadcrumbItems !== undefined\n ? [...breadcrumbConfig.items, ...this.customBreadcrumbItems]\n : breadcrumbConfig.items;\n\n return (\n <Host>\n <SvgSprite />\n <div class=\"breadcrumbs\">\n <div class=\"hidden-control-breadcrumbs\" aria-hidden=\"true\" tabindex=\"-1\">\n <nav class=\"breadcrumbs-nav\" ref={e => e !== undefined && this.handleControlNavRef(e)}>\n <BreadcrumbList\n items={items}\n focusable={false}\n clickHandler={() => {}}\n ></BreadcrumbList>\n </nav>\n </div>\n <nav\n aria-label={breadcrumbConfig.a11yLabel}\n ref={e => e !== undefined && this.handleVisibleNavRef(e)}\n class={{\n 'breadcrumbs-nav': true,\n 'visually-hidden': !this.refsReady,\n }}\n >\n <BreadcrumbList\n items={items}\n dropdownOpen={this.dropdownOpen}\n isConcatenated={this.isConcatenated}\n clickHandler={() => this.handleToggleDropdown()}\n ></BreadcrumbList>\n </nav>\n {!this.hideButtons && (\n <div class=\"breadcrumb-buttons\">\n {breadcrumbConfig.buttons.map(button => (\n <button\n class=\"btn btn-secondary btn-icon\"\n key={button.text}\n aria-expanded={`${Boolean(\n this.overlayVisible && this.currentOverlay === button.overlay,\n )}`}\n onClick={() => this.toggleOverlay(button.overlay, true)}\n >\n <SvgIcon name={button.svgIcon.name}></SvgIcon>\n <span class=\"visually-hidden\">{button.text}</span>\n </button>\n ))}\n </div>\n )}\n {this.overlayVisible && (\n <OverlayComponent\n overlayRef={e => e !== undefined && this.overlayRef(e)}\n iFrameRef={e => e !== undefined && this.registerIFrameResizer(e)}\n overlay={this.currentOverlay}\n onClick={() => this.handleToggleOverlay()}\n onKeyDown={(e: KeyboardEvent) => this.handleKeyDown(e)}\n closeButtonText={state.localizedConfig.header.translations.closeButtonText}\n ></OverlayComponent>\n )}\n </div>\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"post-footer-block-contact.component.js","sourceRoot":"","sources":["../../../../../src/components/post-internet-footer/components/post-footer-block-contact.component.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAGlC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAE3E,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,IAAI,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,EAAE;QAC/C,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;KACzB;SAAM;QACL,OAAO,CAAC,KAAK,CACX,qLAAqL,CACtL,CAAC;KACH;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAwB,EAAE,EAAE,CAAC,CAChD,cACE,KAAK,EAAC,oBAAoB,EAC1B,EAAE,EAAC,aAAa,EAChB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,GAC/B,CACX,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAItC,EAAE,EAAE;IACH,OAAO,CACL,WAAK,KAAK,EAAC,eAAe;QACxB,cAAK,KAAK,CAAC,KAAK,CAAC,KAAK,CAAM;QAC3B,KAAK,CAAC,KAAK,CAAC,OAAO;YAClB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBACzC,MAAM,aAAa,GACjB,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,OAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC;gBAC/E,IAAI,aAAa,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE;oBAC9C,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,CACL,WAAK,KAAK,EAAC,aAAa,EAAC,GAAG,EAAE,OAAO,CAAC,IAAI;oBACvC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAG,KAAK,EAAC,QAAQ,IAAE,OAAO,CAAC,MAAM,CAAK,CAAC,CAAC,CAAC,IAAI;oBAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAG,KAAK,EAAC,MAAM,IAAE,OAAO,CAAC,IAAI,CAAK,CAAC,CAAC,CAAC,IAAI;oBACxD,OAAO,CAAC,KAAK,IAAI,aAAa,IAAI,EAAC,WAAW,IAAC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAI;oBACvE,OAAO,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI;oBAClC,sKAAsK;oBACtK,SAAG,KAAK,EAAC,OAAO,EAAC,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,GAAM,CACjE;oBACA,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAG,KAAK,EAAC,UAAU,IAAE,OAAO,CAAC,QAAQ,CAAK,CAAC,CAAC,CAAC,IAAI,CACjE,CACP,CAAC;YACJ,CAAC,CAAC,CACA,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { h } from '@stencil/core';\nimport { BlockEntity } from '../../../models/footer.model';\n\nconst getContentHours = (hours: string) => hours.replace(/<[^>]*>?/gm, '');\n\nconst callUnblu = () => {\n if (typeof window['unbluLSLoad'] === 'function') {\n window['unbluLSLoad']();\n } else {\n console.error(\n 'swisspost-internet-footer: The function \"unbluLSLoad\" could not be called because it is not available in the global scope. Did you include the unblu live chat script on your page?',\n );\n }\n};\n\nconst LiveSupport = (props: { hours: string }) => (\n <button\n class=\"hours btn btn-link\"\n id=\"liveSupport\"\n type=\"button\"\n onClick={callUnblu}\n innerHTML={getContentHours(props.hours)}\n ></button>\n);\n\nexport const PostFooterBlockContact = (props: {\n block: BlockEntity;\n liveSupportEnabled: boolean;\n key: string;\n}) => {\n return (\n <div class=\"block-contact\">\n <h3>{props.block.title}</h3>\n {props.block.content &&\n props.block.content.map((content, index) => {\n const isLiveSupport =\n index === props.block.content!.length - 1 && content.text === 'Live Support';\n if (isLiveSupport && !props.liveSupportEnabled) {\n return null;\n }\n return (\n <div class=\"content-row\" key={content.name}>\n {content.number ? <p class=\"number\">{content.number}</p> : null}\n {content.text ? <p class=\"text\">{content.text}</p> : null}\n {content.hours && isLiveSupport && <LiveSupport hours={content.hours} />}\n {content.hours && !isLiveSupport && (\n // Some values arrive in the form of <p>8&emdash;12</p> and without replace and innerHTML, tags get rendered as text (project=\"klp\" language=\"en\" environment=\"int02\")\n <p class=\"hours\" innerHTML={getContentHours(content.hours)}></p>\n )}\n {content.describe ? <p class=\"describe\">{content.describe}</p> : null}\n </div>\n );\n })}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"post-footer-block-contact.component.js","sourceRoot":"","sources":["../../../../../src/components/post-internet-footer/components/post-footer-block-contact.component.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAGlC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAE3E,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,IAAI,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,EAAE,CAAC;QAChD,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CACX,qLAAqL,CACtL,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAwB,EAAE,EAAE,CAAC,CAChD,cACE,KAAK,EAAC,oBAAoB,EAC1B,EAAE,EAAC,aAAa,EAChB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,GAC/B,CACX,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAItC,EAAE,EAAE;IACH,OAAO,CACL,WAAK,KAAK,EAAC,eAAe;QACxB,cAAK,KAAK,CAAC,KAAK,CAAC,KAAK,CAAM;QAC3B,KAAK,CAAC,KAAK,CAAC,OAAO;YAClB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBACzC,MAAM,aAAa,GACjB,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,OAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC;gBAC/E,IAAI,aAAa,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;oBAC/C,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,CACL,WAAK,KAAK,EAAC,aAAa,EAAC,GAAG,EAAE,OAAO,CAAC,IAAI;oBACvC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAG,KAAK,EAAC,QAAQ,IAAE,OAAO,CAAC,MAAM,CAAK,CAAC,CAAC,CAAC,IAAI;oBAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAG,KAAK,EAAC,MAAM,IAAE,OAAO,CAAC,IAAI,CAAK,CAAC,CAAC,CAAC,IAAI;oBACxD,OAAO,CAAC,KAAK,IAAI,aAAa,IAAI,EAAC,WAAW,IAAC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAI;oBACvE,OAAO,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI;oBAClC,sKAAsK;oBACtK,SAAG,KAAK,EAAC,OAAO,EAAC,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,GAAM,CACjE;oBACA,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAG,KAAK,EAAC,UAAU,IAAE,OAAO,CAAC,QAAQ,CAAK,CAAC,CAAC,CAAC,IAAI,CACjE,CACP,CAAC;YACJ,CAAC,CAAC,CACA,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { h } from '@stencil/core';\nimport { BlockEntity } from '../../../models/footer.model';\n\nconst getContentHours = (hours: string) => hours.replace(/<[^>]*>?/gm, '');\n\nconst callUnblu = () => {\n if (typeof window['unbluLSLoad'] === 'function') {\n window['unbluLSLoad']();\n } else {\n console.error(\n 'swisspost-internet-footer: The function \"unbluLSLoad\" could not be called because it is not available in the global scope. Did you include the unblu live chat script on your page?',\n );\n }\n};\n\nconst LiveSupport = (props: { hours: string }) => (\n <button\n class=\"hours btn btn-link\"\n id=\"liveSupport\"\n type=\"button\"\n onClick={callUnblu}\n innerHTML={getContentHours(props.hours)}\n ></button>\n);\n\nexport const PostFooterBlockContact = (props: {\n block: BlockEntity;\n liveSupportEnabled: boolean;\n key: string;\n}) => {\n return (\n <div class=\"block-contact\">\n <h3>{props.block.title}</h3>\n {props.block.content &&\n props.block.content.map((content, index) => {\n const isLiveSupport =\n index === props.block.content!.length - 1 && content.text === 'Live Support';\n if (isLiveSupport && !props.liveSupportEnabled) {\n return null;\n }\n return (\n <div class=\"content-row\" key={content.name}>\n {content.number ? <p class=\"number\">{content.number}</p> : null}\n {content.text ? <p class=\"text\">{content.text}</p> : null}\n {content.hours && isLiveSupport && <LiveSupport hours={content.hours} />}\n {content.hours && !isLiveSupport && (\n // Some values arrive in the form of <p>8&emdash;12</p> and without replace and innerHTML, tags get rendered as text (project=\"klp\" language=\"en\" environment=\"int02\")\n <p class=\"hours\" innerHTML={getContentHours(content.hours)}></p>\n )}\n {content.describe ? <p class=\"describe\">{content.describe}</p> : null}\n </div>\n );\n })}\n </div>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"post-internet-footer.js","sourceRoot":"","sources":["../../../../src/components/post-internet-footer/post-internet-footer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, State } from '@stencil/core';\nimport { state } from '../../data/store';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { PostFooterBlockCustom } from './components/post-footer-block-custom.component';\nimport { PostFooterBlockList } from './components/post-footer-block-list.component';\nimport { PostFooterBlockAddress } from './components/post-footer-block-address.component';\nimport { PostFooterBlockContact } from './components/post-footer-block-contact.component';\nimport { translate } from '../../services/language.service';\n\n@Component({\n tag: 'swisspost-internet-footer',\n styleUrl: 'post-internet-footer.scss',\n shadow: true,\n})\nexport class PostInternetFooter {\n @State() liveSupportEnabled = false;\n @State() cookieSettingsEnabled = false;\n\n constructor() {\n this.liveSupportEnabled = this.unbluEnabled();\n this.cookieSettingsEnabled = this.ucUIEnabled();\n\n /**\n * If the unblu script is not available, wait 5 seconds for it to load.\n * If it's still not there after 5 seconds, abandon efforts and don't\n * show the live support button.\n */\n if (!this.liveSupportEnabled) {\n let intervalId: number;\n let runs = 0;\n\n const checker = () => {\n const unbluEnabled = this.unbluEnabled();\n const ucUIEnabled = this.ucUIEnabled();\n const isEnabled = unbluEnabled && ucUIEnabled;\n if (unbluEnabled) {\n this.liveSupportEnabled = true;\n }\n if (ucUIEnabled) {\n this.cookieSettingsEnabled = true;\n }\n if (isEnabled || runs >= 5) {\n window.clearInterval(intervalId);\n }\n runs++;\n };\n\n intervalId = window.setInterval(checker, 1000);\n }\n }\n\n /**\n * Check if the unblu live support script is loaded\n * @returns Boolean\n */\n private unbluEnabled(): boolean {\n return typeof window['unbluLSLoad'] === 'function';\n }\n\n private ucUIEnabled(): boolean {\n return (\n typeof window['UC_UI'] === 'object' &&\n typeof window['UC_UI']['showSecondLayer'] === 'function'\n );\n }\n\n private handleCookieSettingsClick() {\n window['UC_UI']['showSecondLayer']();\n }\n\n render() {\n // There is something wrong entirely\n if (!state) {\n console.warn(\n `Internet Footer: Could not load config. Please make sure that you included the <swisspost-internet-header></swisspost-internet-header> component.`,\n );\n return null;\n }\n\n // Config has not loaded yet\n if (!state.localizedConfig) {\n return null;\n }\n\n // There's no footer config\n if (!state.localizedConfig.footer) {\n console.warn(\n `Internet Footer: Current project \"${state.projectId}\" does not include a footer config. The footer will not be rendered. Remove `,\n document.querySelector('swisspost-internet-footer'),\n `from your markup or configure the footer in your portal config to stop seeing this warning.`,\n );\n return null;\n }\n\n const footerConfig = state.localizedConfig.footer;\n const customFooterConfig = state.localizedCustomConfig?.footer;\n\n return (\n <Host>\n <SvgSprite />\n <footer class=\"post-internet-footer light font-curve-regular\">\n <h2 class=\"visually-hidden\">{footerConfig.title}</h2>\n {customFooterConfig?.block && <PostFooterBlockCustom block={customFooterConfig?.block} />}\n <div class=\"footer-container container\">\n {footerConfig.block\n .filter(block => block.columnType === 'list')\n .map(block => (\n <PostFooterBlockList key={block.title} block={block} />\n ))}\n {footerConfig.block\n .filter(block => block.columnType === 'contact')\n .map(block => (\n <PostFooterBlockContact\n key={block.title}\n block={block}\n liveSupportEnabled={this.liveSupportEnabled}\n />\n ))}\n {footerConfig.block\n .filter(block => block.columnType === 'address')\n .map(block => (\n <PostFooterBlockAddress key={block.title} block={block} />\n ))}\n </div>\n <div class=\"copyright container\">\n <span class=\"bold\">{footerConfig.entry.text}</span>\n <ul class=\"no-list footer-meta-links\">\n {footerConfig.links\n ? footerConfig.links.map(link => (\n <li key={link.url}>\n <a class=\"nav-link\" href={link.url} target={link.target}>\n {link.text}\n </a>\n </li>\n ))\n : null}\n {this.cookieSettingsEnabled && (\n <li>\n <button class=\"nav-link cookie-settings\" onClick={this.handleCookieSettingsClick}>\n {translate('Cookie Settings')}\n </button>\n </li>\n )}\n </ul>\n </div>\n </footer>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"post-internet-footer.js","sourceRoot":"","sources":["../../../../src/components/post-internet-footer/post-internet-footer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, State } from '@stencil/core';\nimport { state } from '../../data/store';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { PostFooterBlockCustom } from './components/post-footer-block-custom.component';\nimport { PostFooterBlockList } from './components/post-footer-block-list.component';\nimport { PostFooterBlockAddress } from './components/post-footer-block-address.component';\nimport { PostFooterBlockContact } from './components/post-footer-block-contact.component';\nimport { translate } from '../../services/language.service';\n\n@Component({\n tag: 'swisspost-internet-footer',\n styleUrl: 'post-internet-footer.scss',\n shadow: true,\n})\nexport class PostInternetFooter {\n @State() liveSupportEnabled = false;\n @State() cookieSettingsEnabled = false;\n\n constructor() {\n this.liveSupportEnabled = this.unbluEnabled();\n this.cookieSettingsEnabled = this.ucUIEnabled();\n\n /**\n * If the unblu script is not available, wait 5 seconds for it to load.\n * If it's still not there after 5 seconds, abandon efforts and don't\n * show the live support button.\n */\n if (!this.liveSupportEnabled) {\n let intervalId: number;\n let runs = 0;\n\n const checker = () => {\n const unbluEnabled = this.unbluEnabled();\n const ucUIEnabled = this.ucUIEnabled();\n const isEnabled = unbluEnabled && ucUIEnabled;\n if (unbluEnabled) {\n this.liveSupportEnabled = true;\n }\n if (ucUIEnabled) {\n this.cookieSettingsEnabled = true;\n }\n if (isEnabled || runs >= 5) {\n window.clearInterval(intervalId);\n }\n runs++;\n };\n\n intervalId = window.setInterval(checker, 1000);\n }\n }\n\n /**\n * Check if the unblu live support script is loaded\n * @returns Boolean\n */\n private unbluEnabled(): boolean {\n return typeof window['unbluLSLoad'] === 'function';\n }\n\n private ucUIEnabled(): boolean {\n return (\n typeof window['UC_UI'] === 'object' &&\n typeof window['UC_UI']['showSecondLayer'] === 'function'\n );\n }\n\n private handleCookieSettingsClick() {\n window['UC_UI']['showSecondLayer']();\n }\n\n render() {\n // There is something wrong entirely\n if (!state) {\n console.warn(\n `Internet Footer: Could not load config. Please make sure that you included the <swisspost-internet-header></swisspost-internet-header> component.`,\n );\n return null;\n }\n\n // Config has not loaded yet\n if (!state.localizedConfig) {\n return null;\n }\n\n // There's no footer config\n if (!state.localizedConfig.footer) {\n console.warn(\n `Internet Footer: Current project \"${state.projectId}\" does not include a footer config. The footer will not be rendered. Remove `,\n document.querySelector('swisspost-internet-footer'),\n `from your markup or configure the footer in your portal config to stop seeing this warning.`,\n );\n return null;\n }\n\n const footerConfig = state.localizedConfig.footer;\n const customFooterConfig = state.localizedCustomConfig?.footer;\n\n return (\n <Host>\n <SvgSprite />\n <footer class=\"post-internet-footer light font-curve-regular\">\n <h2 class=\"visually-hidden\">{footerConfig.title}</h2>\n {customFooterConfig?.block && <PostFooterBlockCustom block={customFooterConfig?.block} />}\n <div class=\"footer-container container\">\n {footerConfig.block\n .filter(block => block.columnType === 'list')\n .map(block => (\n <PostFooterBlockList key={block.title} block={block} />\n ))}\n {footerConfig.block\n .filter(block => block.columnType === 'contact')\n .map(block => (\n <PostFooterBlockContact\n key={block.title}\n block={block}\n liveSupportEnabled={this.liveSupportEnabled}\n />\n ))}\n {footerConfig.block\n .filter(block => block.columnType === 'address')\n .map(block => (\n <PostFooterBlockAddress key={block.title} block={block} />\n ))}\n </div>\n <div class=\"copyright container\">\n <span class=\"bold\">{footerConfig.entry.text}</span>\n <ul class=\"no-list footer-meta-links\">\n {footerConfig.links\n ? footerConfig.links.map(link => (\n <li key={link.url}>\n <a class=\"nav-link\" href={link.url} target={link.target}>\n {link.text}\n </a>\n </li>\n ))\n : null}\n {this.cookieSettingsEnabled && (\n <li>\n <button class=\"nav-link cookie-settings\" onClick={this.handleCookieSettingsClick}>\n {translate('Cookie Settings')}\n </button>\n </li>\n )}\n </ul>\n </div>\n </footer>\n </Host>\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"logo-animation.js","sourceRoot":"","sources":["../../../../../src/components/post-internet-header/logo-animation/logo-animation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,MAAmB,EACnB,SAA6C,EAC7C,EAAE;IACF,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAEhD;;OAEG;IACH,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC;QACnD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,+DAA+D;QAC/D,MAAM,oBAAoB,GAAG,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,YAAY,YAAY,OAAO,CAAE,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,SAAS,CAAC;QAC1H,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QAEpD,qFAAqF;QACrF,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE;YAC3B,KAAK,GAAG,IAAI,CAAC,GAAG,CACd,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC3C,CAAC,oBAAoB,GAAG,MAAM,CAAC,YAAY,CAAC,EAC9C,CAAC,CACF,CAAC;SACH;QACD,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAE9C;;;OAGG;IACH,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtB,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAAE;gBACvD,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAE7C,6FAA6F;gBAC7F,MAAM,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;aAC5C;iBAAM;gBACL,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBACzD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAChD,MAAM,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;aAC5C;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EACD;QACE,kFAAkF;QAClF,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;KACtB,CACF,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzB,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC","sourcesContent":["import { debounce } from 'throttle-debounce';\nimport { state } from '../../../data/store';\nimport { getScrollParent } from '../../../utils/scrollparent';\n\nexport const registerLogoAnimationObserver = (\n target: HTMLElement,\n headerRef: HTMLSwisspostInternetHeaderElement,\n) => {\n const scrollParent = getScrollParent(headerRef);\n\n /**\n * Set intersection ratio as CSS custom property\n */\n const handleScroll = () => {\n const fullStickyness = state.stickyness === 'full';\n let scale = 1;\n // Minus 1px border at the bottom that the logo is not covering\n const adjustedHeaderHeight = headerRef.clientHeight - 1;\n const scrollDistance = scrollParent instanceof Element ? scrollParent.scrollTop : scrollParent.documentElement.scrollTop;\n const scrollY = fullStickyness ? 0 : scrollDistance;\n\n // If meta navigation is not visible (mobile, not configured), scale should just be 1\n if (target.clientHeight > 0) {\n scale = Math.max(\n (adjustedHeaderHeight - Math.max(scrollY, 0)) /\n (adjustedHeaderHeight - target.clientHeight),\n 1,\n );\n }\n headerRef.style.setProperty('--logo-scale', scale.toString());\n };\n\n const debounced = debounce(150, handleScroll);\n\n /**\n * Observe the meta navigation in order to not track scroll events throughout the whole page.\n * This ensures that the scroll listener is only active while the meta navigation is visible.\n */\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting && entry.intersectionRatio > 0) {\n scrollParent.addEventListener('scroll', handleScroll, { passive: true });\n window.addEventListener('resize', debounced);\n\n // Ensure callback is called at least once in case main thread is too busy while scrolling up\n window.requestAnimationFrame(handleScroll);\n } else {\n scrollParent.removeEventListener('scroll', handleScroll);\n window.removeEventListener('resize', debounced);\n window.requestAnimationFrame(handleScroll);\n }\n });\n },\n {\n // Fires when element leaves viewport (0) and when it just about enters it (0.001)\n threshold: [0, 0.001],\n },\n );\n observer.observe(target);\n\n return handleScroll;\n};\n"]}
1
+ {"version":3,"file":"logo-animation.js","sourceRoot":"","sources":["../../../../../src/components/post-internet-header/logo-animation/logo-animation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,MAAmB,EACnB,SAA6C,EAC7C,EAAE;IACF,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAEhD;;OAEG;IACH,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC;QACnD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,+DAA+D;QAC/D,MAAM,oBAAoB,GAAG,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,YAAY,YAAY,OAAO,CAAE,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,SAAS,CAAC;QAC1H,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QAEpD,qFAAqF;QACrF,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,GAAG,IAAI,CAAC,GAAG,CACd,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC3C,CAAC,oBAAoB,GAAG,MAAM,CAAC,YAAY,CAAC,EAC9C,CAAC,CACF,CAAC;QACJ,CAAC;QACD,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAE9C;;;OAGG;IACH,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtB,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;gBACxD,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAE7C,6FAA6F;gBAC7F,MAAM,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBACzD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAChD,MAAM,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EACD;QACE,kFAAkF;QAClF,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;KACtB,CACF,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzB,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC","sourcesContent":["import { debounce } from 'throttle-debounce';\nimport { state } from '../../../data/store';\nimport { getScrollParent } from '../../../utils/scrollparent';\n\nexport const registerLogoAnimationObserver = (\n target: HTMLElement,\n headerRef: HTMLSwisspostInternetHeaderElement,\n) => {\n const scrollParent = getScrollParent(headerRef);\n\n /**\n * Set intersection ratio as CSS custom property\n */\n const handleScroll = () => {\n const fullStickyness = state.stickyness === 'full';\n let scale = 1;\n // Minus 1px border at the bottom that the logo is not covering\n const adjustedHeaderHeight = headerRef.clientHeight - 1;\n const scrollDistance = scrollParent instanceof Element ? scrollParent.scrollTop : scrollParent.documentElement.scrollTop;\n const scrollY = fullStickyness ? 0 : scrollDistance;\n\n // If meta navigation is not visible (mobile, not configured), scale should just be 1\n if (target.clientHeight > 0) {\n scale = Math.max(\n (adjustedHeaderHeight - Math.max(scrollY, 0)) /\n (adjustedHeaderHeight - target.clientHeight),\n 1,\n );\n }\n headerRef.style.setProperty('--logo-scale', scale.toString());\n };\n\n const debounced = debounce(150, handleScroll);\n\n /**\n * Observe the meta navigation in order to not track scroll events throughout the whole page.\n * This ensures that the scroll listener is only active while the meta navigation is visible.\n */\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting && entry.intersectionRatio > 0) {\n scrollParent.addEventListener('scroll', handleScroll, { passive: true });\n window.addEventListener('resize', debounced);\n\n // Ensure callback is called at least once in case main thread is too busy while scrolling up\n window.requestAnimationFrame(handleScroll);\n } else {\n scrollParent.removeEventListener('scroll', handleScroll);\n window.removeEventListener('resize', debounced);\n window.requestAnimationFrame(handleScroll);\n }\n });\n },\n {\n // Fires when element leaves viewport (0) and when it just about enters it (0.001)\n threshold: [0, 0.001],\n },\n );\n observer.observe(target);\n\n return handleScroll;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"post-internet-header.js","sourceRoot":"","sources":["../../../../src/components/post-internet-header/post-internet-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { debounce, throttle } from 'throttle-debounce';\nimport {\n getLocalizedConfig,\n getLocalizedCustomConfig,\n isValidProjectId,\n} from '../../services/config.service';\nimport { dispose, state } from '../../data/store';\nimport { DropdownElement, DropdownEvent, NavMainEntity } from '../../models/header.model';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { StickynessOptions } from '../../models/implementor.model';\nimport { ActiveRouteProp, Environment, ICustomConfig } from '../../models/general.model';\nimport { IAvailableLanguage } from '../../models/language.model';\nimport { getUserLang, translate } from '../../services/language.service';\nimport { If } from '../../utils/if.component';\nimport packageJson from '../../../package.json';\nimport { registerLogoAnimationObserver } from './logo-animation/logo-animation';\nimport { getScrollParent } from '../../utils/scrollparent';\n\n@Component({\n tag: 'swisspost-internet-header',\n styleUrl: 'post-internet-header.scss',\n shadow: true,\n})\nexport class PostInternetHeader {\n /**\n * Your project id, previously passed as query string parameter serviceId.\n */\n @Prop() project: string;\n\n /**\n * Sticky behaviour of the header.\n */\n @Prop() stickyness: StickynessOptions = 'minimal';\n\n /**\n * Initial language to be used. Overrides automatic language detection.\n */\n @Prop() language?: 'de' | 'fr' | 'it' | 'en';\n\n /**\n * Toggle the meta navigation.\n */\n @Prop() meta: boolean = true;\n\n /**\n * Toggle the login link (when logged out) or the user widget (when logged in).\n */\n @Prop() login: boolean = true;\n\n /**\n * Toggle the search button.\n */\n @Prop() search: boolean = true;\n\n /**\n * Toggle skiplinks. They help keyboard users to quickly jump to important sections of the page.\n */\n @Prop() skiplinks: boolean = true;\n\n /**\n * DEPRECATED!: Define a proxy URL for the config fetch request. Will be removed in the next major version\n */\n @Prop() configProxy?: string;\n\n /**\n * Target environment. Choose 'int01' for local testing.\n */\n @Prop() environment: Environment = 'prod';\n\n /**\n * Override the language switch links with custom URLs. Helpful when your application contains sub-pages, and you\n * would like to stay on subpages when the user changes language.\n */\n @Prop() languageSwitchOverrides?: string | IAvailableLanguage[];\n\n /**\n * Customize the header config loaded from the post portal.\n */\n @Prop() customConfig?: string | ICustomConfig;\n\n /**\n * The header uses this cookie to set the language. Disables automatic language detection.\n */\n @Prop() languageCookieKey?: string;\n\n /**\n * The header uses this local storage key to set the language. Disables automatic language selection.\n */\n @Prop() languageLocalStorageKey?: string = 'swisspost-internet-header-language';\n\n /**\n * Override the logout-url provided by the portal config.\n */\n @Prop() logoutUrl?: string;\n\n /**\n * Set the currently activated route. If there is a link matching this URL in the header, it will be highlighted.\n * Will also highlight partly matching URLs. When set to auto, will use current location.href for comparison.\n */\n @Prop() activeRoute?: 'auto' | false | string = 'auto';\n\n /**\n * Online Services only: Add custom links to the special online service navigation entry\n */\n @Prop() osFlyoutOverrides?: string | NavMainEntity;\n\n /**\n * Displays the header at full width for full-screen applications\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * Fires when the header has been rendered to the page.\n */\n @Event() headerLoaded: EventEmitter<void>;\n\n @State() activeFlyout: string | null = null;\n @State() activeDropdownElement: DropdownElement | null = null;\n @State() isMainSlotEmpty = true;\n @Element() host: HTMLSwisspostInternetHeaderElement;\n\n /**\n * Get the currently set language as a two letter string (\"de\", \"fr\" \"it\" or \"en\")\n * @returns string\n */\n @Method()\n async getCurrentLanguage(): Promise<'de' | 'fr' | 'it' | 'en' | string> {\n return state.currentLanguage ?? 'de';\n }\n\n private mainNav?: HTMLPostMainNavigationElement;\n private metaNav?: HTMLPostMetaNavigationElement;\n private lastScrollTop = window.scrollY || document.documentElement.scrollTop;\n private throttledScroll: throttle<() => void>;\n private debouncedResize: debounce<() => void>;\n private lastWindowWidth: number = window.innerWidth;\n private updateLogoAnimation: () => void;\n private scrollParent: Element | Document;\n\n constructor() {\n if (this.project === undefined || this.project === '' || !isValidProjectId(this.project)) {\n throw new Error(\n `Internet Header project key is \"${this.project}\". Please provide a valid project key.`,\n );\n }\n }\n\n connectedCallback() {\n this.throttledScroll = throttle(300, () => this.handleScrollEvent());\n this.debouncedResize = debounce(200, () => this.handleResize());\n }\n\n disconnectedCallback() {\n this.scrollParent.removeEventListener('scroll', this.throttledScroll);\n this.scrollParent.removeEventListener('resize', this.debouncedResize);\n\n // Reset the store to its original state\n dispose();\n }\n\n async componentWillLoad() {\n this.scrollParent = getScrollParent(this.host);\n this.scrollParent.addEventListener('scroll', this.throttledScroll, { passive: true });\n this.scrollParent.addEventListener('resize', this.debouncedResize, { passive: true });\n\n // Wait for the config to arrive, then render the header\n try {\n state.projectId = this.project;\n state.stickyness = this.stickyness;\n state.environment = this.environment.toLocaleLowerCase() as Environment;\n if (this.language !== undefined) state.currentLanguage = this.language;\n state.languageSwitchOverrides =\n typeof this.languageSwitchOverrides === 'string'\n ? JSON.parse(this.languageSwitchOverrides)\n : this.languageSwitchOverrides;\n state.osFlyoutOverrides =\n typeof this.osFlyoutOverrides === 'string'\n ? JSON.parse(this.osFlyoutOverrides)\n : this.osFlyoutOverrides;\n\n if (this.customConfig !== undefined) {\n const langs = Object.keys(\n typeof this.customConfig === 'string' ? JSON.parse(this.customConfig) : this.customConfig,\n );\n const lang = state.currentLanguage || getUserLang(langs, this.language);\n state.localizedCustomConfig = getLocalizedCustomConfig(this.customConfig, lang);\n }\n\n state.localizedConfig = await getLocalizedConfig({\n projectId: this.project,\n environment: state.environment,\n language: this.language,\n cookieKey: this.languageCookieKey,\n localStorageKey: this.languageLocalStorageKey,\n activeRouteProp: this.activeRoute,\n localizedCustomConfig: state.localizedCustomConfig,\n osFlyoutOverrides: state.osFlyoutOverrides,\n });\n } catch (error) {\n console.error(error);\n }\n }\n\n componentDidLoad() {\n window.requestAnimationFrame(() => {\n this.handleResize();\n this.headerLoaded.emit();\n this.host.classList.add('header-loaded');\n if (this.meta && this.metaNav) {\n this.updateLogoAnimation = registerLogoAnimationObserver(this.metaNav, this.host);\n }\n });\n\n if (this.stickyness === 'full')\n console.warn('Internet Header: The stickyness=\"full\" option is deprecated.');\n }\n\n @Watch('language')\n async handleLanguageChange(newValue: string) {\n state.currentLanguage = newValue;\n state.localizedConfig = await getLocalizedConfig({\n projectId: this.project,\n environment: this.environment,\n language: newValue,\n cookieKey: this.languageCookieKey,\n localStorageKey: this.languageLocalStorageKey,\n activeRouteProp: this.activeRoute,\n localizedCustomConfig: state.localizedCustomConfig,\n osFlyoutOverrides: state.osFlyoutOverrides,\n });\n if (this.customConfig)\n state.localizedCustomConfig = getLocalizedCustomConfig(this.customConfig, newValue);\n }\n\n @Watch('languageSwitchOverrides')\n handleAvailableLanguagesChange(newValue: string | IAvailableLanguage[]) {\n state.languageSwitchOverrides = typeof newValue === 'string' ? JSON.parse(newValue) : newValue;\n }\n\n @Watch('osFlyoutOverrides')\n async handleOsFlyoutOverrides(newValue: string | NavMainEntity) {\n state.osFlyoutOverrides = typeof newValue === 'string' ? JSON.parse(newValue) : newValue;\n state.localizedConfig = await getLocalizedConfig({\n projectId: this.project,\n environment: this.environment,\n language: this.language,\n cookieKey: this.languageCookieKey,\n localStorageKey: this.languageLocalStorageKey,\n activeRouteProp: this.activeRoute,\n localizedCustomConfig: state.localizedCustomConfig,\n osFlyoutOverrides: state.osFlyoutOverrides,\n });\n }\n\n @Watch('activeRoute')\n async handleActiveRouteChange(newValue: string | ActiveRouteProp) {\n state.localizedConfig = await getLocalizedConfig({\n projectId: this.project,\n environment: this.environment,\n language: this.language,\n cookieKey: this.languageCookieKey,\n localStorageKey: this.languageLocalStorageKey,\n activeRouteProp: newValue,\n localizedCustomConfig: state.localizedCustomConfig,\n osFlyoutOverrides: state.osFlyoutOverrides,\n });\n }\n\n @Watch('customConfig')\n async handleCustomConfigChange(newValue: string | ICustomConfig) {\n if (this.language === undefined) return;\n const localizedCustomConfig = getLocalizedCustomConfig(newValue, this.language);\n state.localizedCustomConfig = localizedCustomConfig;\n state.localizedConfig = await getLocalizedConfig({\n projectId: this.project,\n environment: this.environment,\n language: this.language,\n cookieKey: this.languageCookieKey,\n localStorageKey: this.languageLocalStorageKey,\n activeRouteProp: this.activeRoute,\n localizedCustomConfig: localizedCustomConfig,\n osFlyoutOverrides: state.osFlyoutOverrides,\n });\n }\n\n @Watch('search')\n handleSearchChange(newValue: boolean) {\n state.search = newValue;\n }\n\n @Watch('login')\n handleLoginChange(newValue: boolean) {\n state.login = newValue;\n }\n\n @Watch('meta')\n handleMetaChange(newValue: boolean) {\n state.meta = newValue;\n }\n\n @Listen('languageChanged')\n handleLanguageChangeEvent(event: CustomEvent<string>) {\n void this.handleLanguageChange(event.detail);\n }\n\n @Watch('stickyness')\n handleStickynessChange(newValue: StickynessOptions) {\n state.stickyness = newValue;\n if (typeof this.updateLogoAnimation === 'function') this.updateLogoAnimation();\n }\n\n private handleClickOutsideBound = this.handleClickOutside.bind(this);\n\n private handleClickOutside(event: Event) {\n // Close active dropdown element on click outside of it\n if (this.activeDropdownElement && !event.composedPath().includes(this.activeDropdownElement)) {\n void this.activeDropdownElement.toggleDropdown(false);\n }\n }\n\n private handleKeyUp(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n if (this.activeDropdownElement) {\n void this.activeDropdownElement.toggleDropdown(false);\n }\n if (this.activeFlyout !== null && this.mainNav) {\n void this.mainNav.toggleDropdown(false);\n }\n }\n }\n\n private handleScrollEvent() {\n // Credits: \"https://github.com/qeremy/so/blob/master/so.dom.js#L426\"\n const st =\n this.scrollParent instanceof Document\n ? this.scrollParent.documentElement.scrollTop\n : this.scrollParent.scrollTop;\n\n // Toggle class without re-rendering the component if stickyness is minimal\n // the other stickyness modes do not need the class\n if (this.stickyness === 'minimal') {\n this.host.classList.toggle('scrolling-up', st <= this.lastScrollTop);\n }\n\n // For Mobile or negative scrolling\n this.lastScrollTop = st <= 0 ? 0 : st;\n }\n\n private handleResize() {\n // Close main navigation dropdown if size changed to bigger than 1024px (search dropdown will be kept open)\n if (this.isMainNavOpen() && this.lastWindowWidth < 1024 && window.innerWidth >= 1024) {\n this.activeDropdownElement?.toggleDropdown(false);\n }\n\n this.lastWindowWidth = window.innerWidth;\n }\n\n /**\n * Close open dropdown menus if another is being opened\n *\n * @param event Dropdown toggled event\n * @returns void\n */\n private handleDropdownToggled(event: CustomEvent<DropdownEvent>) {\n if (!event.detail.open && this.activeDropdownElement !== event.detail.element) {\n // Some dropdown got closed programmatically (possibly by this function). To prevent\n // a circle or an outdated state, we'll not handle this event\n return;\n }\n\n if (event.detail.open) {\n if (this.activeDropdownElement) {\n void this.activeDropdownElement.toggleDropdown(false);\n }\n\n this.activeDropdownElement = event.detail.element;\n\n if (window.innerWidth >= 1024) {\n // Add event listener to close active dropdown element on click outside of it\n // Also adds 10ms delay in case of an external interaction:\n // Some button on the page calls toggleDropdown() -> dropdown opens\n // Click event bubbles to the window, this.handleClickOutsideBound closes dropdown again\n window.setTimeout(() => {\n window.addEventListener('click', this.handleClickOutsideBound);\n }, 10);\n }\n\n if (this.activeFlyout !== null && this.mainNav) {\n void this.mainNav.setActiveFlyout(null);\n }\n } else {\n this.activeDropdownElement = null;\n\n // Remove event listener as it is not needed if no dropdown element is active\n window.removeEventListener('click', this.handleClickOutsideBound);\n }\n }\n\n /**\n * Close open dropdowns if the flyout is being opened\n * @param event Flyout toggle event\n */\n private handleFlyoutToggled(event: CustomEvent<string | null>) {\n this.activeFlyout = event.detail;\n\n if (this.activeDropdownElement && event.detail && !this.isMainNavOpen()) {\n void this.activeDropdownElement.toggleDropdown(false);\n }\n }\n\n private toggleMobileDropdown() {\n this.mainNav?.toggleDropdown();\n }\n\n private isMainNavOpen() {\n return (\n this.activeDropdownElement && this.activeDropdownElement.tagName === 'POST-MAIN-NAVIGATION'\n );\n }\n\n private handleMainSlotChange(e: Event) {\n const mainSlot = e.target as HTMLSlotElement;\n this.isMainSlotEmpty = mainSlot.assignedElements().length === 0;\n }\n\n render() {\n if (!state.localizedConfig?.header) {\n console.error(new Error('Internet Header: Config cannot be loaded'));\n return;\n }\n\n const config = state.localizedConfig;\n const renderMetaNavigation =\n this.meta &&\n config.header.navMeta !== undefined &&\n config.header.navMeta?.filter(meta => !meta.isHomeLink).length > 0;\n const renderLogin =\n (this.login ?? !config.header.isLoginWidgetHidden) && config.header.loginWidgetOptions;\n const renderLanguageSwitch = config.header.navLang.length > 1;\n\n return (\n <Host\n class={`stickyness-${this.stickyness} ${\n Boolean(this.activeDropdownElement) || Boolean(this.activeFlyout) ? 'dropdown-open' : ''\n }`}\n data-version={packageJson.version}\n onKeyup={(e: KeyboardEvent) => this.handleKeyUp(e)}\n >\n <header class={`post-internet-header${this.fullWidth ? ' full-width' : ''}`}>\n <SvgSprite />\n <h1 class=\"visually-hidden\">{translate('Navigate on post.ch')}</h1>\n <If condition={this.skiplinks}>\n <post-skiplinks></post-skiplinks>\n </If>\n <If condition={renderMetaNavigation}>\n <post-meta-navigation\n orientation=\"horizontal\"\n class=\"hidden-lg\"\n full-width={this.fullWidth}\n ref={el => (this.metaNav = el)}\n >\n <If condition={renderLanguageSwitch}>\n <post-language-switch\n id=\"post-language-switch-desktop\"\n mode=\"dropdown\"\n onDropdownToggled={e => this.handleDropdownToggled(e)}\n ></post-language-switch>\n </If>\n </post-meta-navigation>\n </If>\n <div class=\"main-navigation-container wide-container\">\n <post-logo></post-logo>\n <button\n class=\"menu-button nav-link\"\n onClick={() => this.toggleMobileDropdown()}\n aria-haspopup=\"menu\"\n aria-controls=\"post-internet-header-main-navigation\"\n aria-expanded={this.activeDropdownElement ? 'true' : 'false'}\n >\n <span class=\"menu-button-text visually-hidden\">{config.header.mobileMenu.text}</span>\n <SvgIcon name={this.isMainNavOpen() ? 'pi-close' : 'pi-menu'}></SvgIcon>\n </button>\n <post-main-navigation\n onDropdownToggled={e => this.handleDropdownToggled(e)}\n onFlyoutToggled={e => this.handleFlyoutToggled(e)}\n ref={el => (this.mainNav = el)}\n >\n <If condition={renderMetaNavigation}>\n <post-meta-navigation orientation=\"vertical\">\n <If condition={renderLanguageSwitch}>\n <post-language-switch\n id=\"post-language-switch-mobile\"\n mode=\"list\"\n ></post-language-switch>\n </If>\n </post-meta-navigation>\n </If>\n </post-main-navigation>\n <div class=\"main-navigation-controls\">\n <div class=\"main-navigation-custom-content\" hidden={this.isMainSlotEmpty}>\n <slot name=\"main\" onSlotchange={e => this.handleMainSlotChange(e)}></slot>\n </div>\n <If condition={this.search}>\n <post-search onDropdownToggled={e => this.handleDropdownToggled(e)}></post-search>\n </If>\n <If condition={!!renderLogin}>\n <post-klp-login-widget logout-url={this.logoutUrl}>\n <slot name=\"login-widget\"></slot>\n </post-klp-login-widget>\n </If>\n <If condition={!renderMetaNavigation && renderLanguageSwitch}>\n <post-language-switch\n id=\"post-language-switch-no-meta\"\n onDropdownToggled={e => this.handleDropdownToggled(e)}\n mode=\"dropdown\"\n ></post-language-switch>\n </If>\n </div>\n </div>\n </header>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"post-internet-header.js","sourceRoot":"","sources":["../../../../src/components/post-internet-header/post-internet-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { debounce, throttle } from 'throttle-debounce';\nimport {\n getLocalizedConfig,\n getLocalizedCustomConfig,\n isValidProjectId,\n} from '../../services/config.service';\nimport { dispose, state } from '../../data/store';\nimport { DropdownElement, DropdownEvent, NavMainEntity } from '../../models/header.model';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { StickynessOptions } from '../../models/implementor.model';\nimport { ActiveRouteProp, Environment, ICustomConfig } from '../../models/general.model';\nimport { IAvailableLanguage } from '../../models/language.model';\nimport { getUserLang, translate } from '../../services/language.service';\nimport { If } from '../../utils/if.component';\nimport packageJson from '../../../package.json';\nimport { registerLogoAnimationObserver } from './logo-animation/logo-animation';\nimport { getScrollParent } from '../../utils/scrollparent';\n\n@Component({\n tag: 'swisspost-internet-header',\n styleUrl: 'post-internet-header.scss',\n shadow: true,\n})\nexport class PostInternetHeader {\n /**\n * Your project id, previously passed as query string parameter serviceId.\n */\n @Prop() project: string;\n\n /**\n * Sticky behaviour of the header.\n */\n @Prop() stickyness: StickynessOptions = 'minimal';\n\n /**\n * Initial language to be used. Overrides automatic language detection.\n */\n @Prop() language?: 'de' | 'fr' | 'it' | 'en';\n\n /**\n * Toggle the meta navigation.\n */\n @Prop() meta: boolean = true;\n\n /**\n * Toggle the login link (when logged out) or the user widget (when logged in).\n */\n @Prop() login: boolean = true;\n\n /**\n * Toggle the search button.\n */\n @Prop() search: boolean = true;\n\n /**\n * Toggle skiplinks. They help keyboard users to quickly jump to important sections of the page.\n */\n @Prop() skiplinks: boolean = true;\n\n /**\n * DEPRECATED!: Define a proxy URL for the config fetch request. Will be removed in the next major version\n */\n @Prop() configProxy?: string;\n\n /**\n * Target environment. Choose 'int01' for local testing.\n */\n @Prop() environment: Environment = 'prod';\n\n /**\n * Override the language switch links with custom URLs. Helpful when your application contains sub-pages, and you\n * would like to stay on subpages when the user changes language.\n */\n @Prop() languageSwitchOverrides?: string | IAvailableLanguage[];\n\n /**\n * Customize the header config loaded from the post portal.\n */\n @Prop() customConfig?: string | ICustomConfig;\n\n /**\n * The header uses this cookie to set the language. Disables automatic language detection.\n */\n @Prop() languageCookieKey?: string;\n\n /**\n * The header uses this local storage key to set the language. Disables automatic language selection.\n */\n @Prop() languageLocalStorageKey?: string = 'swisspost-internet-header-language';\n\n /**\n * Override the logout-url provided by the portal config.\n */\n @Prop() logoutUrl?: string;\n\n /**\n * Set the currently activated route. If there is a link matching this URL in the header, it will be highlighted.\n * Will also highlight partly matching URLs. When set to auto, will use current location.href for comparison.\n */\n @Prop() activeRoute?: 'auto' | false | string = 'auto';\n\n /**\n * Online Services only: Add custom links to the special online service navigation entry\n */\n @Prop() osFlyoutOverrides?: string | NavMainEntity;\n\n /**\n * Displays the header at full width for full-screen applications\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * Fires when the header has been rendered to the page.\n */\n @Event() headerLoaded: EventEmitter<void>;\n\n @State() activeFlyout: string | null = null;\n @State() activeDropdownElement: DropdownElement | null = null;\n @State() isMainSlotEmpty = true;\n @Element() host: HTMLSwisspostInternetHeaderElement;\n\n /**\n * Get the currently set language as a two letter string (\"de\", \"fr\" \"it\" or \"en\")\n * @returns string\n */\n @Method()\n async getCurrentLanguage(): Promise<'de' | 'fr' | 'it' | 'en' | string> {\n return state.currentLanguage ?? 'de';\n }\n\n private mainNav?: HTMLPostMainNavigationElement;\n private metaNav?: HTMLPostMetaNavigationElement;\n private lastScrollTop = window.scrollY || document.documentElement.scrollTop;\n private throttledScroll: throttle<() => void>;\n private debouncedResize: debounce<() => void>;\n private lastWindowWidth: number = window.innerWidth;\n private updateLogoAnimation: () => void;\n private scrollParent: Element | Document;\n\n constructor() {\n if (this.project === undefined || this.project === '' || !isValidProjectId(this.project)) {\n throw new Error(\n `Internet Header project key is \"${this.project}\". Please provide a valid project key.`,\n );\n }\n }\n\n connectedCallback() {\n this.throttledScroll = throttle(300, () => this.handleScrollEvent());\n this.debouncedResize = debounce(200, () => this.handleResize());\n }\n\n disconnectedCallback() {\n this.scrollParent.removeEventListener('scroll', this.throttledScroll);\n this.scrollParent.removeEventListener('resize', this.debouncedResize);\n\n // Reset the store to its original state\n dispose();\n }\n\n async componentWillLoad() {\n this.scrollParent = getScrollParent(this.host);\n this.scrollParent.addEventListener('scroll', this.throttledScroll, { passive: true });\n this.scrollParent.addEventListener('resize', this.debouncedResize, { passive: true });\n\n // Wait for the config to arrive, then render the header\n try {\n state.projectId = this.project;\n state.stickyness = this.stickyness;\n state.environment = this.environment.toLocaleLowerCase() as Environment;\n if (this.language !== undefined) state.currentLanguage = this.language;\n state.languageSwitchOverrides =\n typeof this.languageSwitchOverrides === 'string'\n ? JSON.parse(this.languageSwitchOverrides)\n : this.languageSwitchOverrides;\n state.osFlyoutOverrides =\n typeof this.osFlyoutOverrides === 'string'\n ? JSON.parse(this.osFlyoutOverrides)\n : this.osFlyoutOverrides;\n\n if (this.customConfig !== undefined) {\n const langs = Object.keys(\n typeof this.customConfig === 'string' ? JSON.parse(this.customConfig) : this.customConfig,\n );\n const lang = state.currentLanguage || getUserLang(langs, this.language);\n state.localizedCustomConfig = getLocalizedCustomConfig(this.customConfig, lang);\n }\n\n state.localizedConfig = await getLocalizedConfig({\n projectId: this.project,\n environment: state.environment,\n language: this.language,\n cookieKey: this.languageCookieKey,\n localStorageKey: this.languageLocalStorageKey,\n activeRouteProp: this.activeRoute,\n localizedCustomConfig: state.localizedCustomConfig,\n osFlyoutOverrides: state.osFlyoutOverrides,\n });\n } catch (error) {\n console.error(error);\n }\n }\n\n componentDidLoad() {\n window.requestAnimationFrame(() => {\n this.handleResize();\n this.headerLoaded.emit();\n this.host.classList.add('header-loaded');\n if (this.meta && this.metaNav) {\n this.updateLogoAnimation = registerLogoAnimationObserver(this.metaNav, this.host);\n }\n });\n\n if (this.stickyness === 'full')\n console.warn('Internet Header: The stickyness=\"full\" option is deprecated.');\n }\n\n @Watch('language')\n async handleLanguageChange(newValue: string) {\n state.currentLanguage = newValue;\n state.localizedConfig = await getLocalizedConfig({\n projectId: this.project,\n environment: this.environment,\n language: newValue,\n cookieKey: this.languageCookieKey,\n localStorageKey: this.languageLocalStorageKey,\n activeRouteProp: this.activeRoute,\n localizedCustomConfig: state.localizedCustomConfig,\n osFlyoutOverrides: state.osFlyoutOverrides,\n });\n if (this.customConfig)\n state.localizedCustomConfig = getLocalizedCustomConfig(this.customConfig, newValue);\n }\n\n @Watch('languageSwitchOverrides')\n handleAvailableLanguagesChange(newValue: string | IAvailableLanguage[]) {\n state.languageSwitchOverrides = typeof newValue === 'string' ? JSON.parse(newValue) : newValue;\n }\n\n @Watch('osFlyoutOverrides')\n async handleOsFlyoutOverrides(newValue: string | NavMainEntity) {\n state.osFlyoutOverrides = typeof newValue === 'string' ? JSON.parse(newValue) : newValue;\n state.localizedConfig = await getLocalizedConfig({\n projectId: this.project,\n environment: this.environment,\n language: this.language,\n cookieKey: this.languageCookieKey,\n localStorageKey: this.languageLocalStorageKey,\n activeRouteProp: this.activeRoute,\n localizedCustomConfig: state.localizedCustomConfig,\n osFlyoutOverrides: state.osFlyoutOverrides,\n });\n }\n\n @Watch('activeRoute')\n async handleActiveRouteChange(newValue: string | ActiveRouteProp) {\n state.localizedConfig = await getLocalizedConfig({\n projectId: this.project,\n environment: this.environment,\n language: this.language,\n cookieKey: this.languageCookieKey,\n localStorageKey: this.languageLocalStorageKey,\n activeRouteProp: newValue,\n localizedCustomConfig: state.localizedCustomConfig,\n osFlyoutOverrides: state.osFlyoutOverrides,\n });\n }\n\n @Watch('customConfig')\n async handleCustomConfigChange(newValue: string | ICustomConfig) {\n if (this.language === undefined) return;\n const localizedCustomConfig = getLocalizedCustomConfig(newValue, this.language);\n state.localizedCustomConfig = localizedCustomConfig;\n state.localizedConfig = await getLocalizedConfig({\n projectId: this.project,\n environment: this.environment,\n language: this.language,\n cookieKey: this.languageCookieKey,\n localStorageKey: this.languageLocalStorageKey,\n activeRouteProp: this.activeRoute,\n localizedCustomConfig: localizedCustomConfig,\n osFlyoutOverrides: state.osFlyoutOverrides,\n });\n }\n\n @Watch('search')\n handleSearchChange(newValue: boolean) {\n state.search = newValue;\n }\n\n @Watch('login')\n handleLoginChange(newValue: boolean) {\n state.login = newValue;\n }\n\n @Watch('meta')\n handleMetaChange(newValue: boolean) {\n state.meta = newValue;\n }\n\n @Listen('languageChanged')\n handleLanguageChangeEvent(event: CustomEvent<string>) {\n void this.handleLanguageChange(event.detail);\n }\n\n @Watch('stickyness')\n handleStickynessChange(newValue: StickynessOptions) {\n state.stickyness = newValue;\n if (typeof this.updateLogoAnimation === 'function') this.updateLogoAnimation();\n }\n\n private handleClickOutsideBound = this.handleClickOutside.bind(this);\n\n private handleClickOutside(event: Event) {\n // Close active dropdown element on click outside of it\n if (this.activeDropdownElement && !event.composedPath().includes(this.activeDropdownElement)) {\n void this.activeDropdownElement.toggleDropdown(false);\n }\n }\n\n private handleKeyUp(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n if (this.activeDropdownElement) {\n void this.activeDropdownElement.toggleDropdown(false);\n }\n if (this.activeFlyout !== null && this.mainNav) {\n void this.mainNav.toggleDropdown(false);\n }\n }\n }\n\n private handleScrollEvent() {\n // Credits: \"https://github.com/qeremy/so/blob/master/so.dom.js#L426\"\n const st =\n this.scrollParent instanceof Document\n ? this.scrollParent.documentElement.scrollTop\n : this.scrollParent.scrollTop;\n\n // Toggle class without re-rendering the component if stickyness is minimal\n // the other stickyness modes do not need the class\n if (this.stickyness === 'minimal') {\n this.host.classList.toggle('scrolling-up', st <= this.lastScrollTop);\n }\n\n // For Mobile or negative scrolling\n this.lastScrollTop = st <= 0 ? 0 : st;\n }\n\n private handleResize() {\n // Close main navigation dropdown if size changed to bigger than 1024px (search dropdown will be kept open)\n if (this.isMainNavOpen() && this.lastWindowWidth < 1024 && window.innerWidth >= 1024) {\n this.activeDropdownElement?.toggleDropdown(false);\n }\n\n this.lastWindowWidth = window.innerWidth;\n }\n\n /**\n * Close open dropdown menus if another is being opened\n *\n * @param event Dropdown toggled event\n * @returns void\n */\n private handleDropdownToggled(event: CustomEvent<DropdownEvent>) {\n if (!event.detail.open && this.activeDropdownElement !== event.detail.element) {\n // Some dropdown got closed programmatically (possibly by this function). To prevent\n // a circle or an outdated state, we'll not handle this event\n return;\n }\n\n if (event.detail.open) {\n if (this.activeDropdownElement) {\n void this.activeDropdownElement.toggleDropdown(false);\n }\n\n this.activeDropdownElement = event.detail.element;\n\n if (window.innerWidth >= 1024) {\n // Add event listener to close active dropdown element on click outside of it\n // Also adds 10ms delay in case of an external interaction:\n // Some button on the page calls toggleDropdown() -> dropdown opens\n // Click event bubbles to the window, this.handleClickOutsideBound closes dropdown again\n window.setTimeout(() => {\n window.addEventListener('click', this.handleClickOutsideBound);\n }, 10);\n }\n\n if (this.activeFlyout !== null && this.mainNav) {\n void this.mainNav.setActiveFlyout(null);\n }\n } else {\n this.activeDropdownElement = null;\n\n // Remove event listener as it is not needed if no dropdown element is active\n window.removeEventListener('click', this.handleClickOutsideBound);\n }\n }\n\n /**\n * Close open dropdowns if the flyout is being opened\n * @param event Flyout toggle event\n */\n private handleFlyoutToggled(event: CustomEvent<string | null>) {\n this.activeFlyout = event.detail;\n\n if (this.activeDropdownElement && event.detail && !this.isMainNavOpen()) {\n void this.activeDropdownElement.toggleDropdown(false);\n }\n }\n\n private toggleMobileDropdown() {\n this.mainNav?.toggleDropdown();\n }\n\n private isMainNavOpen() {\n return (\n this.activeDropdownElement && this.activeDropdownElement.tagName === 'POST-MAIN-NAVIGATION'\n );\n }\n\n private handleMainSlotChange(e: Event) {\n const mainSlot = e.target as HTMLSlotElement;\n this.isMainSlotEmpty = mainSlot.assignedElements().length === 0;\n }\n\n render() {\n if (!state.localizedConfig?.header) {\n console.error(new Error('Internet Header: Config cannot be loaded'));\n return;\n }\n\n const config = state.localizedConfig;\n const renderMetaNavigation =\n this.meta &&\n config.header.navMeta !== undefined &&\n config.header.navMeta?.filter(meta => !meta.isHomeLink).length > 0;\n const renderLogin =\n (this.login ?? !config.header.isLoginWidgetHidden) && config.header.loginWidgetOptions;\n const renderLanguageSwitch = config.header.navLang.length > 1;\n\n return (\n <Host\n class={`stickyness-${this.stickyness} ${\n Boolean(this.activeDropdownElement) || Boolean(this.activeFlyout) ? 'dropdown-open' : ''\n }`}\n data-version={packageJson.version}\n onKeyup={(e: KeyboardEvent) => this.handleKeyUp(e)}\n >\n <header class={`post-internet-header${this.fullWidth ? ' full-width' : ''}`}>\n <SvgSprite />\n <h1 class=\"visually-hidden\">{translate('Navigate on post.ch')}</h1>\n <If condition={this.skiplinks}>\n <post-skiplinks></post-skiplinks>\n </If>\n <If condition={renderMetaNavigation}>\n <post-meta-navigation\n orientation=\"horizontal\"\n class=\"hidden-lg\"\n full-width={this.fullWidth}\n ref={el => (this.metaNav = el)}\n >\n <If condition={renderLanguageSwitch}>\n <post-language-switch\n id=\"post-language-switch-desktop\"\n mode=\"dropdown\"\n onDropdownToggled={e => this.handleDropdownToggled(e)}\n ></post-language-switch>\n </If>\n </post-meta-navigation>\n </If>\n <div class=\"main-navigation-container wide-container\">\n <post-logo></post-logo>\n <button\n class=\"menu-button nav-link\"\n onClick={() => this.toggleMobileDropdown()}\n aria-haspopup=\"menu\"\n aria-controls=\"post-internet-header-main-navigation\"\n aria-expanded={this.activeDropdownElement ? 'true' : 'false'}\n >\n <span class=\"menu-button-text visually-hidden\">{config.header.mobileMenu.text}</span>\n <SvgIcon name={this.isMainNavOpen() ? 'pi-close' : 'pi-menu'}></SvgIcon>\n </button>\n <post-main-navigation\n onDropdownToggled={e => this.handleDropdownToggled(e)}\n onFlyoutToggled={e => this.handleFlyoutToggled(e)}\n ref={el => (this.mainNav = el)}\n >\n <If condition={renderMetaNavigation}>\n <post-meta-navigation orientation=\"vertical\">\n <If condition={renderLanguageSwitch}>\n <post-language-switch\n id=\"post-language-switch-mobile\"\n mode=\"list\"\n ></post-language-switch>\n </If>\n </post-meta-navigation>\n </If>\n </post-main-navigation>\n <div class=\"main-navigation-controls\">\n <div class=\"main-navigation-custom-content\" hidden={this.isMainSlotEmpty}>\n <slot name=\"main\" onSlotchange={e => this.handleMainSlotChange(e)}></slot>\n </div>\n <If condition={this.search}>\n <post-search onDropdownToggled={e => this.handleDropdownToggled(e)}></post-search>\n </If>\n <If condition={!!renderLogin}>\n <post-klp-login-widget logout-url={this.logoutUrl}>\n <slot name=\"login-widget\"></slot>\n </post-klp-login-widget>\n </If>\n <If condition={!renderMetaNavigation && renderLanguageSwitch}>\n <post-language-switch\n id=\"post-language-switch-no-meta\"\n onDropdownToggled={e => this.handleDropdownToggled(e)}\n mode=\"dropdown\"\n ></post-language-switch>\n </If>\n </div>\n </div>\n </header>\n </Host>\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"klp-widget.controller.js","sourceRoot":"","sources":["../../../../src/components/post-klp-login-widget/klp-widget.controller.ts"],"names":[],"mappings":"AAAA,OAAO,qCAAqC,CAAC;AAG7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,WAAmB,EAAE,OAA4B,EAAE,EAAE;IAC5F,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO;KACR;IAED,IAAI;QACF,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CACvC,WAAW,EACX,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,WAAW,EACnB,IAAI,EAAE,yEAAyE;QAC/E,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,WAAW,CACpB,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACtB;AACH,CAAC,CAAC","sourcesContent":["import '../../assets/js/klp-login-widget.js';\nimport { ILoginWidgetOptions } from '../../models/header.model.js';\n\nexport const initializeKLPLoginWidget = (containerId: string, options: ILoginWidgetOptions) => {\n if (!options) {\n return;\n }\n\n try {\n window.OPPklpWidget = window.klpWidgetDev(\n containerId,\n options.applicationId,\n options.serviceId,\n options.appLoginUrl,\n null, // would be menulinks, but they are not provided anymore from Post-Portal\n options.currentLang,\n options.platform,\n options.options,\n options.environment,\n );\n } catch (error) {\n console.error(error);\n }\n};\n"]}
1
+ {"version":3,"file":"klp-widget.controller.js","sourceRoot":"","sources":["../../../../src/components/post-klp-login-widget/klp-widget.controller.ts"],"names":[],"mappings":"AAAA,OAAO,qCAAqC,CAAC;AAG7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,WAAmB,EAAE,OAA4B,EAAE,EAAE;IAC5F,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CACvC,WAAW,EACX,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,WAAW,EACnB,IAAI,EAAE,yEAAyE;QAC/E,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,WAAW,CACpB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC","sourcesContent":["import '../../assets/js/klp-login-widget.js';\nimport { ILoginWidgetOptions } from '../../models/header.model.js';\n\nexport const initializeKLPLoginWidget = (containerId: string, options: ILoginWidgetOptions) => {\n if (!options) {\n return;\n }\n\n try {\n window.OPPklpWidget = window.klpWidgetDev(\n containerId,\n options.applicationId,\n options.serviceId,\n options.appLoginUrl,\n null, // would be menulinks, but they are not provided anymore from Post-Portal\n options.currentLang,\n options.platform,\n options.options,\n options.environment,\n );\n } catch (error) {\n console.error(error);\n }\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"post-klp-login-widget.js","sourceRoot":"","sources":["../../../../src/components/post-klp-login-widget/post-klp-login-widget.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAQzD,MAAM,OAAO,kBAAkB;;;;IAQ7B,KAAK,CAAC,gBAAgB;;QACpB,IACE,CAAA,MAAA,MAAA,KAAK,CAAC,eAAe,0CAAE,MAAM,0CAAE,mBAAmB;YAClD,CAAC,CAAA,MAAA,MAAA,KAAK,CAAC,eAAe,0CAAE,MAAM,0CAAE,kBAAkB,CAAA;YAElD,OAAO;QACT,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;QAChF,MAAM,KAAiC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,kBAAkB,EAAhF,EAAE,QAAQ,OAAsE,EAAjE,aAAa,cAA5B,YAA8B,CAAkD,CAAC;QACvF,wBAAwB,CAAC,uBAAuB,gDAC3C,aAAa,KAChB,WAAW,EAAE,KAAK,CAAC,WAAW,KAC3B,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS;YAC9B,CAAC,CAAC,EAAE,QAAQ,kCAAO,QAAQ,KAAE,SAAS,EAAE,IAAI,CAAC,SAAS,GAAE,EAAE;YAC1D,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EACjB,CAAC;IACL,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,QAAQ;;QACZ,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,gBAAgB,CACxD,uEAAuE,CACxE,CAAC;QACF,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE;YACrC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;SACxB;IACH,CAAC;IAED,MAAM;;QACJ,IACE,CAAC,CAAA,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,0CAAE,MAAM,0CAAE,kBAAkB,CAAA;YACnD,CAAC,CAAA,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,0CAAE,MAAM,0CAAE,mBAAmB,CAAA,EACpD;YACA,OAAO,CAAC,IAAI,CACV,sHAAsH,KAAK,CAAC,SAAS,kHAAkH,CACxP,CAAC;YACF,OAAO,IAAI,CAAC;SACb;QACD,OAAO,CACL,EAAC,IAAI;YACH,EAAC,SAAS,OAAG;YACb,WAAK,KAAK,EAAC,gBAAgB,8BACxB,CAAA,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,0CAAE,MAAM,0CAAE,mBAAmB,EAAC,CAAC,CAAC,CACrD,SACE,EAAE,EAAC,uBAAuB,EAC1B,KAAK,EAAC,cAAc,EACpB,IAAI,EAAE,MAAA,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,kBAAkB,0CAAE,WAAW;gBAElE,YAAM,KAAK,EAAC,iBAAiB,IAC1B,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CACrD;gBACP,EAAC,OAAO,IAAC,IAAI,EAAC,UAAU,GAAG,CACzB,CACL,CAAC,CAAC,CAAC,CACF,WAAK,EAAE,EAAC,uBAAuB,GAAO,CACvC,CACG,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Host, Method, Prop } from '@stencil/core';\nimport { state } from '../../data/store';\nimport { IsFocusable } from '../../models/header.model';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\n\n@Component({\n tag: 'post-klp-login-widget',\n styleUrl: 'post-klp-login-widget.scss',\n scoped: false,\n shadow: true,\n})\nexport class PostKlpLoginWidget implements IsFocusable {\n @Element() host: HTMLPostKlpLoginWidgetElement;\n\n /**\n * Override the logout-url provided by the portal config.\n */\n @Prop() logoutUrl?: string;\n\n async componentDidLoad() {\n if (\n state.localizedConfig?.header?.showJobsLoginWidget ||\n !state.localizedConfig?.header?.loginWidgetOptions\n )\n return;\n const { initializeKLPLoginWidget } = await import('./klp-widget.controller.js');\n const { platform, ...widgetOptions } = state.localizedConfig.header.loginWidgetOptions;\n initializeKLPLoginWidget('post-klp-login-widget', {\n ...widgetOptions,\n environment: state.environment,\n ...(this.logoutUrl !== undefined\n ? { platform: { ...platform, logoutURL: this.logoutUrl } }\n : { platform }),\n });\n }\n\n /**\n * Sets the focus on the login button\n */\n @Method()\n async setFocus() {\n const loginButton = this.host.shadowRoot?.querySelectorAll<HTMLElement>(\n '.klp-widget-anonymous__wrapper a, .klp-widget-authenticated-session a',\n );\n if (loginButton && loginButton.length) {\n loginButton[0].focus();\n }\n }\n\n render() {\n if (\n !state?.localizedConfig?.header?.loginWidgetOptions &&\n !state?.localizedConfig?.header?.showJobsLoginWidget\n ) {\n console.warn(\n `Internet Header: the login widget is not configured in your portal config. Use <swisspost-internet-header project=\"${state.projectId}\" login=\"false\"></swisspost-internet-header> to turn off the login widget or configure it via the portal config.`,\n );\n return null;\n }\n return (\n <Host>\n <SvgSprite />\n <div class=\"widget-wrapper\" data-hj-suppress>\n {state?.localizedConfig?.header?.showJobsLoginWidget ? (\n <a\n id=\"post-klp-login-widget\"\n class=\"login-button\"\n href={state.localizedConfig.header.loginWidgetOptions?.appLoginUrl}\n >\n <span class=\"visually-hidden\">\n {state.localizedConfig.header.translations.loginWidgetText}\n </span>\n <SvgIcon name=\"pi-login\" />\n </a>\n ) : (\n <div id=\"post-klp-login-widget\"></div>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"post-klp-login-widget.js","sourceRoot":"","sources":["../../../../src/components/post-klp-login-widget/post-klp-login-widget.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAQzD,MAAM,OAAO,kBAAkB;;;;IAQ7B,KAAK,CAAC,gBAAgB;;QACpB,IACE,CAAA,MAAA,MAAA,KAAK,CAAC,eAAe,0CAAE,MAAM,0CAAE,mBAAmB;YAClD,CAAC,CAAA,MAAA,MAAA,KAAK,CAAC,eAAe,0CAAE,MAAM,0CAAE,kBAAkB,CAAA;YAElD,OAAO;QACT,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;QAChF,MAAM,KAAiC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,kBAAkB,EAAhF,EAAE,QAAQ,OAAsE,EAAjE,aAAa,cAA5B,YAA8B,CAAkD,CAAC;QACvF,wBAAwB,CAAC,uBAAuB,gDAC3C,aAAa,KAChB,WAAW,EAAE,KAAK,CAAC,WAAW,KAC3B,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS;YAC9B,CAAC,CAAC,EAAE,QAAQ,kCAAO,QAAQ,KAAE,SAAS,EAAE,IAAI,CAAC,SAAS,GAAE,EAAE;YAC1D,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EACjB,CAAC;IACL,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,QAAQ;;QACZ,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,gBAAgB,CACxD,uEAAuE,CACxE,CAAC;QACF,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACtC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,MAAM;;QACJ,IACE,CAAC,CAAA,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,0CAAE,MAAM,0CAAE,kBAAkB,CAAA;YACnD,CAAC,CAAA,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,0CAAE,MAAM,0CAAE,mBAAmB,CAAA,EACpD,CAAC;YACD,OAAO,CAAC,IAAI,CACV,sHAAsH,KAAK,CAAC,SAAS,kHAAkH,CACxP,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CACL,EAAC,IAAI;YACH,EAAC,SAAS,OAAG;YACb,WAAK,KAAK,EAAC,gBAAgB,8BACxB,CAAA,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,0CAAE,MAAM,0CAAE,mBAAmB,EAAC,CAAC,CAAC,CACrD,SACE,EAAE,EAAC,uBAAuB,EAC1B,KAAK,EAAC,cAAc,EACpB,IAAI,EAAE,MAAA,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,kBAAkB,0CAAE,WAAW;gBAElE,YAAM,KAAK,EAAC,iBAAiB,IAC1B,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CACrD;gBACP,EAAC,OAAO,IAAC,IAAI,EAAC,UAAU,GAAG,CACzB,CACL,CAAC,CAAC,CAAC,CACF,WAAK,EAAE,EAAC,uBAAuB,GAAO,CACvC,CACG,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Host, Method, Prop } from '@stencil/core';\nimport { state } from '../../data/store';\nimport { IsFocusable } from '../../models/header.model';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\n\n@Component({\n tag: 'post-klp-login-widget',\n styleUrl: 'post-klp-login-widget.scss',\n scoped: false,\n shadow: true,\n})\nexport class PostKlpLoginWidget implements IsFocusable {\n @Element() host: HTMLPostKlpLoginWidgetElement;\n\n /**\n * Override the logout-url provided by the portal config.\n */\n @Prop() logoutUrl?: string;\n\n async componentDidLoad() {\n if (\n state.localizedConfig?.header?.showJobsLoginWidget ||\n !state.localizedConfig?.header?.loginWidgetOptions\n )\n return;\n const { initializeKLPLoginWidget } = await import('./klp-widget.controller.js');\n const { platform, ...widgetOptions } = state.localizedConfig.header.loginWidgetOptions;\n initializeKLPLoginWidget('post-klp-login-widget', {\n ...widgetOptions,\n environment: state.environment,\n ...(this.logoutUrl !== undefined\n ? { platform: { ...platform, logoutURL: this.logoutUrl } }\n : { platform }),\n });\n }\n\n /**\n * Sets the focus on the login button\n */\n @Method()\n async setFocus() {\n const loginButton = this.host.shadowRoot?.querySelectorAll<HTMLElement>(\n '.klp-widget-anonymous__wrapper a, .klp-widget-authenticated-session a',\n );\n if (loginButton && loginButton.length) {\n loginButton[0].focus();\n }\n }\n\n render() {\n if (\n !state?.localizedConfig?.header?.loginWidgetOptions &&\n !state?.localizedConfig?.header?.showJobsLoginWidget\n ) {\n console.warn(\n `Internet Header: the login widget is not configured in your portal config. Use <swisspost-internet-header project=\"${state.projectId}\" login=\"false\"></swisspost-internet-header> to turn off the login widget or configure it via the portal config.`,\n );\n return null;\n }\n return (\n <Host>\n <SvgSprite />\n <div class=\"widget-wrapper\" data-hj-suppress>\n {state?.localizedConfig?.header?.showJobsLoginWidget ? (\n <a\n id=\"post-klp-login-widget\"\n class=\"login-button\"\n href={state.localizedConfig.header.loginWidgetOptions?.appLoginUrl}\n >\n <span class=\"visually-hidden\">\n {state.localizedConfig.header.translations.loginWidgetText}\n </span>\n <SvgIcon name=\"pi-login\" />\n </a>\n ) : (\n <div id=\"post-klp-login-widget\"></div>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"post-language-switch.js","sourceRoot":"","sources":["../../../../src/components/post-language-switch/post-language-switch.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\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 { elementHasTransition, userPrefersReducedMotion } 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"]}
1
+ {"version":3,"file":"post-language-switch.js","sourceRoot":"","sources":["../../../../src/components/post-language-switch/post-language-switch.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\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 { elementHasTransition, userPrefersReducedMotion } 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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"post-main-navigation.js","sourceRoot":"","sources":["../../../../src/components/post-main-navigation/post-main-navigation.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, State } from '@stencil/core';\nimport { throttle } from 'throttle-debounce';\nimport { 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"]}
1
+ {"version":3,"file":"post-main-navigation.js","sourceRoot":"","sources":["../../../../src/components/post-main-navigation/post-main-navigation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAQzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAOzE,MAAM,OAAO,kBAAkB;;QAOrB,gBAAW,GAAkB,IAAI,CAAC;QAClC,oBAAe,GAAkB,IAAI,CAAC;QACtC,oBAAe,GAAkB,IAAI,CAAC;;;;IAE9C,iBAAiB;QACf,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,oBAAoB;QAClB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;YAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;YAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/E,CAAC;IAED,YAAY;QACV,0DAA0D;QAC1D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;YAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACxC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7C,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,2BAA2B;IAC3B,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;QAE1E,6EAA6E;QAC7E,sGAAsG;QACtG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;QAC5E,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED,UAAU,CAAC,EAAU;;QACnB,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,cAAc,CAAC,EAAE,CAAC,CAAC;QAExD,IAAI,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE,EAAE,CAAC;YACvC,iDAAiD;YACjD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,WAAW,CAAC,EAAW,EAAE,WAAW,GAAG,IAAI;;QACzC,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO;QAC7B,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,cAAc,CAAC,EAAE,CAAC,CAAC;QAExD,IAAI,MAAM,EAAE,CAAC;YACX,wCAAwC;YACxC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,kBAAkB,CAAC,MAAmB,EAAE,SAAiC,EAAE,WAAW,GAAG,IAAI;QAC3F,iDAAiD;QACjD,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC;YAChC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEhC,iDAAiD;YACjD,MAAM,CAAC,gBAAgB,CACrB,eAAe,EACf,GAAG,EAAE;;gBACH,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;wBAC3B,MAAA,MAAM,CAAC,aAAa,CAAc,2BAA2B,CAAC,0CAAE,KAAK,EAAE,CAAC;oBAC1E,CAAC;yBAAM,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;wBACpC,MAAA,MAAA,MAAM,CAAC,aAAa,0CAAE,aAAa,CAAc,aAAa,CAAC,0CAAE,KAAK,EAAE,CAAC;oBAC3E,CAAC;gBACH,CAAC;gBAED,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC,EACD;gBACE,IAAI,EAAE,IAAI;aACX,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,cAAc,CAAC,EAAW;QACxB,OAAO,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,gBAAgB,CAAC,KAAoB;QACnC,sEAAsE;QACtE,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,mCAAmC;QACnC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;YAC3D,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;YAC3F,mIAAmI;YACnI,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS;oBAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxD,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,KAAoB;QACnC,mFAAmF;QACnF,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5C,CAAC;QAED,6EAA6E;QAC7E,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;YACxD,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,yEAAyE;YACzE,iEAAiE;YACjE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBAC5C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACpC,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,cAAc,CAAC,KAAiB,EAAE,KAAoB;QACpD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtD,0FAA0F;YAC1F,IAAI,KAAK,CAAC,UAAU;gBAAE,KAAK,CAAC,cAAc,EAAE,CAAC;YAC7C,IAAI,KAAK,CAAC,EAAE;gBAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,cAAc,CAAC,KAAoB,EAAE,KAAoB;QACvD,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC/E,8FAA8F;YAC9F,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,KAAK,CAAC,EAAE;gBAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,WAAW,CAAC,KAAiB,EAAE,KAAoB;QACjD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtD,+DAA+D;YAC/D,8DAA8D;YAC9D,0CAA0C;YAC1C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,KAAK,CAAC,EAAE;gBAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;;;OAIG;IAEH,KAAK,CAAC,cAAc,CAAC,KAAe;QAClC,IAAI,CAAC,cAAc,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;QACzE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7E,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,QAAQ;;QACZ,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,aAAa,CAAc,YAAY,CAAC,CAAC;QACjF,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;OAGG;IAEH,KAAK,CAAC,eAAe,CAAC,EAAiB;QACrC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM;;QACJ,IAAI,CAAA,MAAA,KAAK,CAAC,eAAe,0CAAE,MAAM,MAAK,SAAS;YAAE,OAAO;QACxD,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC;QAElD,OAAO,CACL,EAAC,IAAI;YACH,EAAC,SAAS,OAAG;YACb,yBACc,YAAY,CAAC,YAAY,CAAC,gBAAgB,EACtD,EAAE,EAAC,sCAAsC,EACzC,KAAK,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,EAC/D,IAAI,EAAC,MAAM;gBAEX,UAAI,KAAK,EAAC,0BAA0B,IACjC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CACpC,UACE,GAAG,EAAE,QAAQ,CAAC,IAAI,EAClB,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EACnD,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;oBAEnD,EAAC,cAAc,IACb,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EACxC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,EACjD,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,EAChD,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,GAC3C;oBACD,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CACnE,CACN,CAAC,CACC;gBACL,eAAa,CACT,CACD,CACR,CAAC;QAEF,SAAS,oBAAoB,CAAC,QAAuB;YACnD,OAAO,CACL,WAAK,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;gBACnF,WAAK,KAAK,EAAC,gBAAgB;oBACzB,WAAK,KAAK,EAAC,YAAY;wBACrB,cACE,KAAK,EAAC,6BAA6B,EACnC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAE5C,EAAC,OAAO,IAAC,IAAI,EAAC,uBAAuB,EAAC,UAAU,EAAC,UAAU,GAAG;4BAC9D,gBAAO,YAAY,CAAC,YAAY,CAAC,cAAc,CAAQ,CAChD;wBACT,cAAQ,KAAK,EAAC,qBAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC9E,YAAM,KAAK,EAAC,iBAAiB;gCAC1B,QAAQ,CAAC,IAAI;;gCAAI,YAAY,CAAC,YAAY,CAAC,oBAAoB,CAC3D;4BACP,EAAC,OAAO,IAAC,IAAI,EAAC,UAAU,GAAG,CACpB,CACL;oBACN,UAAI,KAAK,EAAC,wBAAwB;wBAChC,SAAG,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAC,UAAU,IACpC,QAAQ,CAAC,IAAI,CACZ,CACD;oBACL,WAAK,KAAK,EAAC,sBAAsB,IAC9B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAClC,WAAK,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAC,eAAe;wBAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAI,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,IAAG,MAAM,CAAC,KAAK,CAAM,CAAC,CAAC,CAAC,IAAI;wBAChF,UACE,KAAK,EAAC,iBAAiB,qBACN,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAEvE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC3B,UAAI,GAAG,EAAE,IAAI,CAAC,GAAG;4BACf,SACE,KAAK,EAAE;oCACL,aAAa,EAAE,IAAI;oCACnB,QAAQ,EAAE,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,CAAA;iCACnC,EACD,IAAI,EAAE,IAAI,CAAC,GAAG,EACd,MAAM,EAAE,IAAI,CAAC,MAAM;gCAElB,IAAI,CAAC,KAAK;gCACV,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,EAAC,CAAC,CAAC,CACxB,YAAM,KAAK,EAAC,iBAAiB;;oCACxB,SAAS,CAAC,2BAA2B,CAAC,CACpC,CACR,CAAC,CAAC,CAAC,IAAI,CACN,CACD,CACN,CAAC,CACC,CACD,CACP,CAAC,CACE,CACF,CACF,CACP,CAAC;QACJ,CAAC;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, State } 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"]}