@swisspost/internet-header 1.13.1 → 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 (552) hide show
  1. package/dist/cjs/if.component-31542061.js +12 -0
  2. package/dist/cjs/{if.component-2cd3c1ff.js.map → if.component-31542061.js.map} +1 -1
  3. package/dist/cjs/{index-4bd0adf1.js → index-8cbf8194.js} +141 -81
  4. package/dist/cjs/index-8cbf8194.js.map +1 -0
  5. package/dist/cjs/index.cjs.js +18 -18
  6. package/dist/cjs/{klp-widget.controller-8baf3b8a.js → klp-widget.controller-7fbe23c3.js} +11 -11
  7. package/dist/cjs/{klp-widget.controller-8baf3b8a.js.map → klp-widget.controller-7fbe23c3.js.map} +1 -1
  8. package/dist/cjs/language.service-11e7d8c1.js +182 -0
  9. package/dist/cjs/language.service-11e7d8c1.js.map +1 -0
  10. package/dist/cjs/loader.cjs.js +2 -2
  11. package/dist/{esm/post-internet-breadcrumbs-f268030c.js → cjs/post-internet-breadcrumbs-f5e20904.js} +278 -276
  12. package/dist/cjs/post-internet-breadcrumbs-f5e20904.js.map +1 -0
  13. package/dist/cjs/post-internet-footer-d222e56d.js +161 -0
  14. package/dist/cjs/post-internet-footer-d222e56d.js.map +1 -0
  15. package/dist/cjs/post-internet-header-befc7a3f.js +847 -0
  16. package/dist/cjs/post-internet-header-befc7a3f.js.map +1 -0
  17. package/dist/cjs/post-klp-login-widget-01eee964.js +63 -0
  18. package/dist/cjs/{post-klp-login-widget-5380708a.js.map → post-klp-login-widget-01eee964.js.map} +1 -1
  19. package/dist/cjs/post-klp-login-widget.cjs.entry.js +5 -5
  20. package/dist/cjs/{post-language-switch-422af4d0.js → post-language-switch-59e1e832.js} +88 -88
  21. package/dist/cjs/post-language-switch-59e1e832.js.map +1 -0
  22. package/dist/cjs/post-language-switch.cjs.entry.js +7 -7
  23. package/dist/cjs/{post-logo-5867ad55.js → post-logo-6d127981.js} +14 -14
  24. package/dist/cjs/{post-logo-5867ad55.js.map → post-logo-6d127981.js.map} +1 -1
  25. package/dist/cjs/post-logo.cjs.entry.js +3 -3
  26. package/dist/cjs/post-main-navigation-d34e9799.js +240 -0
  27. package/dist/cjs/post-main-navigation-d34e9799.js.map +1 -0
  28. package/dist/cjs/post-main-navigation.cjs.entry.js +7 -7
  29. package/dist/cjs/{post-meta-navigation-0b73779f.js → post-meta-navigation-ac31cee4.js} +15 -15
  30. package/dist/cjs/{post-meta-navigation-0b73779f.js.map → post-meta-navigation-ac31cee4.js.map} +1 -1
  31. package/dist/cjs/post-meta-navigation.cjs.entry.js +3 -3
  32. package/dist/cjs/{post-search-7eb0a7a2.js → post-search-ac307fd7.js} +438 -438
  33. package/dist/cjs/post-search-ac307fd7.js.map +1 -0
  34. package/dist/cjs/post-search.cjs.entry.js +8 -8
  35. package/dist/cjs/post-skiplinks-74f15d34.js +52 -0
  36. package/dist/cjs/{post-skiplinks-3db1d214.js.map → post-skiplinks-74f15d34.js.map} +1 -1
  37. package/dist/cjs/post-skiplinks.cjs.entry.js +5 -5
  38. package/dist/cjs/{store-77668e50.js → store-dffccc44.js} +10 -10
  39. package/dist/cjs/store-dffccc44.js.map +1 -0
  40. package/dist/cjs/{svg-icon.component-5965f301.js → svg-icon.component-65508d78.js} +3 -3
  41. package/dist/cjs/{svg-icon.component-5965f301.js.map → svg-icon.component-65508d78.js.map} +1 -1
  42. package/dist/cjs/svg-sprite.component-dc109568.js +51 -0
  43. package/dist/cjs/{svg-sprite.component-68369645.js.map → svg-sprite.component-dc109568.js.map} +1 -1
  44. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +7 -7
  45. package/dist/cjs/swisspost-internet-footer.cjs.entry.js +5 -5
  46. package/dist/cjs/swisspost-internet-header.cjs.entry.js +8 -8
  47. package/dist/cjs/swisspost-internet-header.cjs.js +3 -3
  48. package/dist/cjs/swisspost-internet-header.cjs.js.map +1 -1
  49. package/dist/cjs/{ui.service-488151be.js → ui.service-7334148b.js} +5 -5
  50. package/dist/cjs/{ui.service-488151be.js.map → ui.service-7334148b.js.map} +1 -1
  51. package/dist/cjs/{utils-717975e0.js → utils-0a793763.js} +7 -7
  52. package/dist/cjs/{utils-717975e0.js.map → utils-0a793763.js.map} +1 -1
  53. package/dist/collection/assets/i18n/translations.js +65 -65
  54. package/dist/collection/assets/i18n/translations.js.map +1 -1
  55. package/dist/collection/collection-manifest.json +2 -2
  56. package/dist/collection/components/post-internet-breadcrumbs/components/breadcrumb-list.component.js +4 -4
  57. package/dist/collection/components/post-internet-breadcrumbs/components/breadcrumb-list.component.js.map +1 -1
  58. package/dist/collection/components/post-internet-breadcrumbs/components/focus-trap.component.js +28 -28
  59. package/dist/collection/components/post-internet-breadcrumbs/components/focus-trap.component.js.map +1 -1
  60. package/dist/collection/components/post-internet-breadcrumbs/components/middle-dropdown.component.js +1 -1
  61. package/dist/collection/components/post-internet-breadcrumbs/components/middle-dropdown.component.js.map +1 -1
  62. package/dist/collection/components/post-internet-breadcrumbs/components/middle-links.component.js +1 -1
  63. package/dist/collection/components/post-internet-breadcrumbs/components/middle-links.component.js.map +1 -1
  64. package/dist/collection/components/post-internet-breadcrumbs/components/overlay.component.js.map +1 -1
  65. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.css +1 -1
  66. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js +288 -290
  67. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js.map +1 -1
  68. package/dist/collection/components/post-internet-footer/components/post-footer-block-address.component.js +7 -7
  69. package/dist/collection/components/post-internet-footer/components/post-footer-block-address.component.js.map +1 -1
  70. package/dist/collection/components/post-internet-footer/components/post-footer-block-contact.component.js +16 -16
  71. package/dist/collection/components/post-internet-footer/components/post-footer-block-contact.component.js.map +1 -1
  72. package/dist/collection/components/post-internet-footer/components/post-footer-block-custom.component.js +2 -2
  73. package/dist/collection/components/post-internet-footer/components/post-footer-block-custom.component.js.map +1 -1
  74. package/dist/collection/components/post-internet-footer/components/post-footer-block-list.component.js +2 -2
  75. package/dist/collection/components/post-internet-footer/components/post-footer-block-list.component.js.map +1 -1
  76. package/dist/collection/components/post-internet-footer/components/post-footer-block-socials.component.js +1 -1
  77. package/dist/collection/components/post-internet-footer/components/post-footer-block-socials.component.js.map +1 -1
  78. package/dist/collection/components/post-internet-footer/post-internet-footer.css +1 -1
  79. package/dist/collection/components/post-internet-footer/post-internet-footer.js +82 -82
  80. package/dist/collection/components/post-internet-footer/post-internet-footer.js.map +1 -1
  81. package/dist/collection/components/post-internet-header/logo-animation/logo-animation.js +42 -42
  82. package/dist/collection/components/post-internet-header/logo-animation/logo-animation.js.map +1 -1
  83. package/dist/collection/components/post-internet-header/post-internet-header.css +1 -1
  84. package/dist/collection/components/post-internet-header/post-internet-header.js +707 -701
  85. package/dist/collection/components/post-internet-header/post-internet-header.js.map +1 -1
  86. package/dist/collection/components/post-klp-login-widget/klp-widget.controller.js +10 -10
  87. package/dist/collection/components/post-klp-login-widget/klp-widget.controller.js.map +1 -1
  88. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.css +1 -1
  89. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.js +99 -99
  90. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.js.map +1 -1
  91. package/dist/collection/components/post-language-switch/components/post-language-switch-list.js +10 -10
  92. package/dist/collection/components/post-language-switch/components/post-language-switch-list.js.map +1 -1
  93. package/dist/collection/components/post-language-switch/post-language-switch.js +169 -171
  94. package/dist/collection/components/post-language-switch/post-language-switch.js.map +1 -1
  95. package/dist/collection/components/post-logo/post-logo.js +20 -20
  96. package/dist/collection/components/post-logo/post-logo.js.map +1 -1
  97. package/dist/collection/components/post-main-navigation/components/level-one-action.component.js +9 -9
  98. package/dist/collection/components/post-main-navigation/components/level-one-action.component.js.map +1 -1
  99. package/dist/collection/components/post-main-navigation/post-main-navigation.css +1 -1
  100. package/dist/collection/components/post-main-navigation/post-main-navigation.js +313 -317
  101. package/dist/collection/components/post-main-navigation/post-main-navigation.js.map +1 -1
  102. package/dist/collection/components/post-meta-navigation/post-meta-navigation.js +62 -62
  103. package/dist/collection/components/post-meta-navigation/post-meta-navigation.js.map +1 -1
  104. package/dist/collection/components/post-search/post-search.js +367 -369
  105. package/dist/collection/components/post-search/post-search.js.map +1 -1
  106. package/dist/collection/components/post-skiplinks/post-skiplinks.js +44 -44
  107. package/dist/collection/components/post-skiplinks/post-skiplinks.js.map +1 -1
  108. package/dist/collection/data/store.js +8 -8
  109. package/dist/collection/data/store.js.map +1 -1
  110. package/dist/collection/models/geocode.model.js +6 -6
  111. package/dist/collection/models/geocode.model.js.map +1 -1
  112. package/dist/collection/services/config.service.js +116 -116
  113. package/dist/collection/services/config.service.js.map +1 -1
  114. package/dist/collection/services/language.service.js +66 -66
  115. package/dist/collection/services/language.service.js.map +1 -1
  116. package/dist/collection/services/route.service.js +105 -105
  117. package/dist/collection/services/route.service.js.map +1 -1
  118. package/dist/collection/services/search/coveo.service.js +28 -28
  119. package/dist/collection/services/search/coveo.service.js.map +1 -1
  120. package/dist/collection/services/search/coveo.settings.js +30 -30
  121. package/dist/collection/services/search/coveo.settings.js.map +1 -1
  122. package/dist/collection/services/search/parcel.service.js +29 -29
  123. package/dist/collection/services/search/parcel.service.js.map +1 -1
  124. package/dist/collection/services/search/places.service.js +44 -44
  125. package/dist/collection/services/search/places.service.js.map +1 -1
  126. package/dist/collection/services/search/places.settings.js +10 -10
  127. package/dist/collection/services/search/places.settings.js.map +1 -1
  128. package/dist/collection/services/search/search-utilities.js +3 -3
  129. package/dist/collection/services/search/search-utilities.js.map +1 -1
  130. package/dist/collection/services/search/search.service.js +13 -13
  131. package/dist/collection/services/search/search.service.js.map +1 -1
  132. package/dist/collection/services/ui.service.js +4 -4
  133. package/dist/collection/services/ui.service.js.map +1 -1
  134. package/dist/collection/utils/highlighted.component.js +7 -7
  135. package/dist/collection/utils/highlighted.component.js.map +1 -1
  136. package/dist/collection/utils/if.component.js +4 -4
  137. package/dist/collection/utils/if.component.js.map +1 -1
  138. package/dist/collection/utils/scrollparent.js +18 -15
  139. package/dist/collection/utils/scrollparent.js.map +1 -1
  140. package/dist/collection/utils/svg-icon.component.js.map +1 -1
  141. package/dist/collection/utils/svg-sprite.component.js.map +1 -1
  142. package/dist/collection/utils/utils.js +6 -6
  143. package/dist/collection/utils/utils.js.map +1 -1
  144. package/dist/components/index.js +18 -18
  145. package/dist/components/klp-widget.controller.js +10 -10
  146. package/dist/components/klp-widget.controller.js.map +1 -1
  147. package/dist/components/language.service.js +131 -131
  148. package/dist/components/language.service.js.map +1 -1
  149. package/dist/components/post-klp-login-widget.d.ts +2 -2
  150. package/dist/components/post-klp-login-widget2.js +61 -61
  151. package/dist/components/post-klp-login-widget2.js.map +1 -1
  152. package/dist/components/post-language-switch.d.ts +2 -2
  153. package/dist/components/post-language-switch2.js +99 -99
  154. package/dist/components/post-language-switch2.js.map +1 -1
  155. package/dist/components/post-logo.d.ts +2 -2
  156. package/dist/components/post-logo2.js +25 -25
  157. package/dist/components/post-logo2.js.map +1 -1
  158. package/dist/components/post-main-navigation.d.ts +2 -2
  159. package/dist/components/post-main-navigation2.js +221 -221
  160. package/dist/components/post-main-navigation2.js.map +1 -1
  161. package/dist/components/post-meta-navigation.d.ts +2 -2
  162. package/dist/components/post-meta-navigation2.js +29 -29
  163. package/dist/components/post-meta-navigation2.js.map +1 -1
  164. package/dist/components/post-search.d.ts +2 -2
  165. package/dist/components/post-search2.js +455 -455
  166. package/dist/components/post-search2.js.map +1 -1
  167. package/dist/components/post-skiplinks.d.ts +2 -2
  168. package/dist/components/post-skiplinks2.js +46 -46
  169. package/dist/components/post-skiplinks2.js.map +1 -1
  170. package/dist/components/store.js +8 -8
  171. package/dist/components/store.js.map +1 -1
  172. package/dist/components/svg-icon.component.js +1 -1
  173. package/dist/components/svg-icon.component.js.map +1 -1
  174. package/dist/components/svg-sprite.component.js +42 -42
  175. package/dist/components/svg-sprite.component.js.map +1 -1
  176. package/dist/components/swisspost-internet-breadcrumbs.d.ts +2 -2
  177. package/dist/components/swisspost-internet-breadcrumbs.js +286 -286
  178. package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -1
  179. package/dist/components/swisspost-internet-footer.d.ts +2 -2
  180. package/dist/components/swisspost-internet-footer.js +138 -138
  181. package/dist/components/swisspost-internet-footer.js.map +1 -1
  182. package/dist/components/swisspost-internet-header.d.ts +2 -2
  183. package/dist/components/swisspost-internet-header.js +687 -667
  184. package/dist/components/swisspost-internet-header.js.map +1 -1
  185. package/dist/components/ui.service.js +4 -4
  186. package/dist/components/ui.service.js.map +1 -1
  187. package/dist/components/utils.js +6 -6
  188. package/dist/components/utils.js.map +1 -1
  189. package/dist/docs.d.ts +1 -21
  190. package/dist/docs.json +53 -43
  191. package/dist/esm/if.component-d88d9e48.js +10 -0
  192. package/dist/esm/{if.component-3a779aca.js.map → if.component-d88d9e48.js.map} +1 -1
  193. package/dist/esm/{index-2b83f5e9.js → index-54145c02.js} +141 -81
  194. package/dist/esm/index-54145c02.js.map +1 -0
  195. package/dist/esm/index.js +18 -18
  196. package/dist/esm/{klp-widget.controller-668f7e8d.js → klp-widget.controller-549d5132.js} +11 -11
  197. package/dist/esm/{klp-widget.controller-668f7e8d.js.map → klp-widget.controller-549d5132.js.map} +1 -1
  198. package/dist/esm/language.service-1bd090a7.js +178 -0
  199. package/dist/esm/language.service-1bd090a7.js.map +1 -0
  200. package/dist/esm/loader.js +3 -3
  201. package/dist/{cjs/post-internet-breadcrumbs-e3ee842c.js → esm/post-internet-breadcrumbs-16b4d1eb.js} +276 -278
  202. package/dist/esm/post-internet-breadcrumbs-16b4d1eb.js.map +1 -0
  203. package/dist/esm/post-internet-footer-211748e4.js +159 -0
  204. package/dist/esm/post-internet-footer-211748e4.js.map +1 -0
  205. package/dist/esm/post-internet-header-91c9a423.js +845 -0
  206. package/dist/esm/post-internet-header-91c9a423.js.map +1 -0
  207. package/dist/esm/post-klp-login-widget-cac28bb1.js +61 -0
  208. package/dist/esm/{post-klp-login-widget-57a4fdb5.js.map → post-klp-login-widget-cac28bb1.js.map} +1 -1
  209. package/dist/esm/post-klp-login-widget.entry.js +5 -5
  210. package/dist/esm/{post-language-switch-997ee4f9.js → post-language-switch-7df96469.js} +88 -88
  211. package/dist/esm/post-language-switch-7df96469.js.map +1 -0
  212. package/dist/esm/post-language-switch.entry.js +7 -7
  213. package/dist/esm/{post-logo-cde3c44d.js → post-logo-050acfc4.js} +14 -14
  214. package/dist/esm/{post-logo-cde3c44d.js.map → post-logo-050acfc4.js.map} +1 -1
  215. package/dist/esm/post-logo.entry.js +3 -3
  216. package/dist/esm/post-main-navigation-1735be3c.js +238 -0
  217. package/dist/esm/post-main-navigation-1735be3c.js.map +1 -0
  218. package/dist/esm/post-main-navigation.entry.js +7 -7
  219. package/dist/esm/{post-meta-navigation-09e9bdc8.js → post-meta-navigation-ece1e9de.js} +15 -15
  220. package/dist/esm/{post-meta-navigation-09e9bdc8.js.map → post-meta-navigation-ece1e9de.js.map} +1 -1
  221. package/dist/esm/post-meta-navigation.entry.js +3 -3
  222. package/dist/esm/{post-search-a7f2e856.js → post-search-efd16c09.js} +438 -438
  223. package/dist/esm/post-search-efd16c09.js.map +1 -0
  224. package/dist/esm/post-search.entry.js +8 -8
  225. package/dist/esm/post-skiplinks-c6b5addd.js +50 -0
  226. package/dist/esm/{post-skiplinks-b3c32a77.js.map → post-skiplinks-c6b5addd.js.map} +1 -1
  227. package/dist/esm/post-skiplinks.entry.js +5 -5
  228. package/dist/esm/{store-80b19c12.js → store-c0bc1c5b.js} +10 -10
  229. package/dist/esm/store-c0bc1c5b.js.map +1 -0
  230. package/dist/esm/svg-icon.component-fe96fac6.js +8 -0
  231. package/dist/esm/{svg-icon.component-7295f7cc.js.map → svg-icon.component-fe96fac6.js.map} +1 -1
  232. package/dist/esm/svg-sprite.component-4874b2fb.js +49 -0
  233. package/dist/esm/{svg-sprite.component-cfc05f90.js.map → svg-sprite.component-4874b2fb.js.map} +1 -1
  234. package/dist/esm/swisspost-internet-breadcrumbs.entry.js +7 -7
  235. package/dist/esm/swisspost-internet-footer.entry.js +5 -5
  236. package/dist/esm/swisspost-internet-header.entry.js +8 -8
  237. package/dist/esm/swisspost-internet-header.js +4 -4
  238. package/dist/esm/swisspost-internet-header.js.map +1 -1
  239. package/dist/esm/{ui.service-a71cf490.js → ui.service-22f2c593.js} +5 -5
  240. package/dist/esm/{ui.service-a71cf490.js.map → ui.service-22f2c593.js.map} +1 -1
  241. package/dist/esm/{utils-3a8ff48f.js → utils-c8805f81.js} +7 -7
  242. package/dist/esm/{utils-3a8ff48f.js.map → utils-c8805f81.js.map} +1 -1
  243. package/dist/esm-es5/bodyScrollLock.esm-afcc00e3.js.map +1 -1
  244. package/dist/esm-es5/{if.component-3a779aca.js → if.component-d88d9e48.js} +1 -1
  245. package/dist/esm-es5/index-54145c02.js +2 -0
  246. package/dist/esm-es5/index-54145c02.js.map +1 -0
  247. package/dist/esm-es5/index-d2256e06.js.map +1 -1
  248. package/dist/esm-es5/index.js +1 -1
  249. package/dist/esm-es5/{klp-widget.controller-668f7e8d.js → klp-widget.controller-549d5132.js} +10 -10
  250. package/dist/{swisspost-internet-header/p-5f246e59.system.js.map → esm-es5/klp-widget.controller-549d5132.js.map} +1 -1
  251. package/dist/esm-es5/{language.service-501b09a8.js → language.service-1bd090a7.js} +2 -2
  252. package/dist/esm-es5/loader.js +1 -1
  253. package/dist/esm-es5/loader.js.map +1 -1
  254. package/dist/esm-es5/post-internet-breadcrumbs-16b4d1eb.js +7 -0
  255. package/dist/{swisspost-internet-header/p-bd893111.system.js.map → esm-es5/post-internet-breadcrumbs-16b4d1eb.js.map} +1 -1
  256. package/dist/esm-es5/{post-internet-footer-3a501420.js → post-internet-footer-211748e4.js} +2 -2
  257. package/dist/esm-es5/{post-internet-footer-3a501420.js.map → post-internet-footer-211748e4.js.map} +1 -1
  258. package/dist/esm-es5/post-internet-header-91c9a423.js +2 -0
  259. package/dist/esm-es5/post-internet-header-91c9a423.js.map +1 -0
  260. package/dist/esm-es5/post-klp-login-widget-cac28bb1.js +2 -0
  261. package/dist/esm-es5/{post-klp-login-widget-57a4fdb5.js.map → post-klp-login-widget-cac28bb1.js.map} +1 -1
  262. package/dist/esm-es5/post-klp-login-widget.entry.js +1 -1
  263. package/dist/esm-es5/{post-language-switch-997ee4f9.js → post-language-switch-7df96469.js} +2 -2
  264. package/dist/esm-es5/post-language-switch.entry.js +1 -1
  265. package/dist/esm-es5/{post-logo-cde3c44d.js → post-logo-050acfc4.js} +2 -2
  266. package/dist/esm-es5/post-logo.entry.js +1 -1
  267. package/dist/esm-es5/post-main-navigation-1735be3c.js +2 -0
  268. package/dist/esm-es5/post-main-navigation-1735be3c.js.map +1 -0
  269. package/dist/esm-es5/post-main-navigation.entry.js +1 -1
  270. package/dist/esm-es5/{post-meta-navigation-09e9bdc8.js → post-meta-navigation-ece1e9de.js} +2 -2
  271. package/dist/esm-es5/post-meta-navigation.entry.js +1 -1
  272. package/dist/esm-es5/{post-search-a7f2e856.js → post-search-efd16c09.js} +2 -2
  273. package/dist/esm-es5/post-search.entry.js +1 -1
  274. package/dist/esm-es5/{post-skiplinks-b3c32a77.js → post-skiplinks-c6b5addd.js} +2 -2
  275. package/dist/esm-es5/post-skiplinks.entry.js +1 -1
  276. package/dist/esm-es5/{store-80b19c12.js → store-c0bc1c5b.js} +2 -2
  277. package/dist/esm-es5/store-c0bc1c5b.js.map +1 -0
  278. package/dist/esm-es5/svg-icon.component-fe96fac6.js +2 -0
  279. package/dist/esm-es5/{svg-sprite.component-cfc05f90.js → svg-sprite.component-4874b2fb.js} +2 -2
  280. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +1 -1
  281. package/dist/esm-es5/swisspost-internet-footer.entry.js +1 -1
  282. package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
  283. package/dist/esm-es5/swisspost-internet-header.js +1 -1
  284. package/dist/esm-es5/swisspost-internet-header.js.map +1 -1
  285. package/dist/esm-es5/{ui.service-a71cf490.js → ui.service-22f2c593.js} +1 -1
  286. package/dist/esm-es5/{utils-3a8ff48f.js → utils-c8805f81.js} +1 -1
  287. package/dist/swisspost-internet-header/index.esm.js +1 -1
  288. package/dist/swisspost-internet-header/{p-96618f42.system.js → p-0338115d.system.js} +2 -2
  289. package/dist/swisspost-internet-header/{p-7ab3cbcb.js → p-0589b170.js} +2 -2
  290. package/dist/swisspost-internet-header/{p-788cf356.js → p-0606dca1.js} +2 -2
  291. package/dist/swisspost-internet-header/{p-788cf356.js.map → p-0606dca1.js.map} +1 -1
  292. package/dist/swisspost-internet-header/{p-986a52bc.system.js → p-06f51515.system.js} +1 -1
  293. package/dist/swisspost-internet-header/p-07313f1b.system.entry.js +2 -0
  294. package/dist/swisspost-internet-header/{p-16676174.system.js → p-11d02764.system.js} +2 -2
  295. package/dist/swisspost-internet-header/p-1244a33a.entry.js +2 -0
  296. package/dist/swisspost-internet-header/p-14b0f654.js +3 -0
  297. package/dist/swisspost-internet-header/p-14b0f654.js.map +1 -0
  298. package/dist/swisspost-internet-header/p-1c722d02.system.entry.js +2 -0
  299. package/dist/swisspost-internet-header/p-1cb8fe46.entry.js +2 -0
  300. package/dist/swisspost-internet-header/{p-f2a43ce2.system.js → p-1fd8561a.system.js} +1 -1
  301. package/dist/swisspost-internet-header/{p-7eaa5689.js → p-2a8d5787.js} +1 -1
  302. package/dist/swisspost-internet-header/p-2eb28b7c.js +2 -0
  303. package/dist/swisspost-internet-header/p-2eb28b7c.js.map +1 -0
  304. package/dist/swisspost-internet-header/p-2f221bb5.system.js +2 -0
  305. package/dist/swisspost-internet-header/p-2f221bb5.system.js.map +1 -0
  306. package/dist/swisspost-internet-header/p-3759e0aa.entry.js +2 -0
  307. package/dist/swisspost-internet-header/p-3985d762.js +7 -0
  308. package/dist/swisspost-internet-header/{p-f6a2a74f.js.map → p-3985d762.js.map} +1 -1
  309. package/dist/swisspost-internet-header/p-3bcc322e.system.js +2 -0
  310. package/dist/swisspost-internet-header/p-3bcc322e.system.js.map +1 -0
  311. package/dist/swisspost-internet-header/p-3e62c7a9.js +2 -0
  312. package/dist/swisspost-internet-header/p-3e62c7a9.js.map +1 -0
  313. package/dist/swisspost-internet-header/p-434dbf16.system.js +7 -0
  314. package/dist/{esm-es5/post-internet-breadcrumbs-f268030c.js.map → swisspost-internet-header/p-434dbf16.system.js.map} +1 -1
  315. package/dist/swisspost-internet-header/p-4380032a.entry.js +2 -0
  316. package/dist/swisspost-internet-header/{p-78e8a405.js → p-4bc05e68.js} +2 -2
  317. package/dist/swisspost-internet-header/p-5498ca7c.entry.js +2 -0
  318. package/dist/swisspost-internet-header/{p-a7de7323.system.js → p-5a69c918.system.js} +2 -2
  319. package/dist/swisspost-internet-header/p-5ac16bdd.system.entry.js +2 -0
  320. package/dist/swisspost-internet-header/{p-624d732c.js → p-5c2bb553.js} +2 -2
  321. package/dist/swisspost-internet-header/p-5c2bb553.js.map +1 -0
  322. package/dist/swisspost-internet-header/p-6d60866a.system.entry.js +2 -0
  323. package/dist/swisspost-internet-header/p-7505c3e1.system.entry.js +2 -0
  324. package/dist/swisspost-internet-header/{p-3a7f9457.js → p-7d188581.js} +2 -2
  325. package/dist/swisspost-internet-header/{p-cf06f703.js → p-840aa5c6.js} +1 -1
  326. package/dist/swisspost-internet-header/p-87756f7c.system.js +2 -0
  327. package/dist/swisspost-internet-header/{p-d294420b.system.js.map → p-87756f7c.system.js.map} +1 -1
  328. package/dist/swisspost-internet-header/{p-dc8296bd.js → p-8a65e8d6.js} +2 -2
  329. package/dist/swisspost-internet-header/{p-40806042.system.js → p-8b9d7320.system.js} +2 -2
  330. package/dist/swisspost-internet-header/p-8df32cb8.system.js +2 -0
  331. package/dist/swisspost-internet-header/p-943d2956.system.entry.js +2 -0
  332. package/dist/swisspost-internet-header/p-948d3e8f.entry.js +2 -0
  333. package/dist/swisspost-internet-header/p-979ae0e8.js +2 -0
  334. package/dist/swisspost-internet-header/{p-236420dc.js.map → p-979ae0e8.js.map} +1 -1
  335. package/dist/swisspost-internet-header/{p-69d380ec.system.js → p-9b1e0d60.system.js} +2 -2
  336. package/dist/swisspost-internet-header/{p-69d380ec.system.js.map → p-9b1e0d60.system.js.map} +1 -1
  337. package/dist/swisspost-internet-header/p-9b4d5e90.system.js.map +1 -1
  338. package/dist/swisspost-internet-header/p-a08ee9d3.entry.js +2 -0
  339. package/dist/swisspost-internet-header/{p-3339310e.js → p-a39139a9.js} +1 -1
  340. package/dist/swisspost-internet-header/p-a4d04c0b.system.entry.js +2 -0
  341. package/dist/swisspost-internet-header/{p-5f246e59.system.js → p-a7bc91ca.system.js} +10 -10
  342. package/dist/{esm-es5/klp-widget.controller-668f7e8d.js.map → swisspost-internet-header/p-a7bc91ca.system.js.map} +1 -1
  343. package/dist/swisspost-internet-header/{p-9af33755.system.js → p-a9f840df.system.js} +2 -2
  344. package/dist/swisspost-internet-header/p-a9f840df.system.js.map +1 -0
  345. package/dist/swisspost-internet-header/p-b3014611.system.js.map +1 -1
  346. package/dist/swisspost-internet-header/p-b8c6f6a6.system.entry.js +2 -0
  347. package/dist/swisspost-internet-header/{p-46f2c38c.js → p-bc60a641.js} +2 -2
  348. package/dist/swisspost-internet-header/{p-0096509c.js → p-bfbb5fc7.js} +2 -2
  349. package/dist/swisspost-internet-header/p-c466f253.entry.js +2 -0
  350. package/dist/swisspost-internet-header/{p-70df9137.js → p-c7f451bd.js} +2 -2
  351. package/dist/swisspost-internet-header/p-c7fba36e.system.entry.js +2 -0
  352. package/dist/swisspost-internet-header/p-c8153649.js +2 -0
  353. package/dist/swisspost-internet-header/{p-ad9a417b.system.js → p-c895eccc.system.js} +2 -2
  354. package/dist/swisspost-internet-header/p-d6ab4ef3.entry.js +2 -0
  355. package/dist/swisspost-internet-header/{p-0e776d6e.system.js → p-d7e221af.system.js} +1 -1
  356. package/dist/swisspost-internet-header/p-da7b8486.system.entry.js +2 -0
  357. package/dist/swisspost-internet-header/{p-bbfd407b.js → p-dc2f1d20.js} +1 -1
  358. package/dist/swisspost-internet-header/{p-ee5e0cc6.system.js → p-dd800ff2.system.js} +2 -2
  359. package/dist/swisspost-internet-header/{p-34fe9d92.system.js → p-e2985a86.system.js} +2 -2
  360. package/dist/swisspost-internet-header/{p-18e9ce89.system.js → p-e5acc124.system.js} +2 -2
  361. package/dist/swisspost-internet-header/p-e7bd7ab7.system.js +2 -0
  362. package/dist/swisspost-internet-header/p-e7bd7ab7.system.js.map +1 -0
  363. package/dist/swisspost-internet-header/p-fe4736f9.system.js +3 -0
  364. package/dist/swisspost-internet-header/p-fe4736f9.system.js.map +1 -0
  365. package/dist/swisspost-internet-header/p-ff36437b.entry.js +2 -0
  366. package/dist/swisspost-internet-header/swisspost-internet-header.css +1 -1
  367. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
  368. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js.map +1 -1
  369. package/dist/swisspost-internet-header/swisspost-internet-header.js +15 -15
  370. package/dist/types/assets/i18n/translations.d.ts +65 -65
  371. package/dist/types/components/post-internet-breadcrumbs/components/breadcrumb-list.component.d.ts +6 -6
  372. package/dist/types/components/post-internet-breadcrumbs/components/focus-trap.component.d.ts +1 -1
  373. package/dist/types/components/post-internet-breadcrumbs/components/middle-dropdown.component.d.ts +4 -4
  374. package/dist/types/components/post-internet-breadcrumbs/components/middle-links.component.d.ts +3 -3
  375. package/dist/types/components/post-internet-breadcrumbs/components/overlay.component.d.ts +6 -6
  376. package/dist/types/components/post-internet-breadcrumbs/post-internet-breadcrumbs.d.ts +51 -51
  377. package/dist/types/components/post-internet-footer/components/post-footer-block-address.component.d.ts +2 -2
  378. package/dist/types/components/post-internet-footer/components/post-footer-block-contact.component.d.ts +3 -3
  379. package/dist/types/components/post-internet-footer/components/post-footer-block-custom.component.d.ts +1 -1
  380. package/dist/types/components/post-internet-footer/components/post-footer-block-list.component.d.ts +2 -2
  381. package/dist/types/components/post-internet-footer/components/post-footer-block-socials.component.d.ts +2 -2
  382. package/dist/types/components/post-internet-footer/post-internet-footer.d.ts +11 -11
  383. package/dist/types/components/post-internet-header/post-internet-header.d.ts +127 -125
  384. package/dist/types/components/post-klp-login-widget/post-klp-login-widget.d.ts +11 -11
  385. package/dist/types/components/post-language-switch/components/post-language-switch-list.d.ts +3 -3
  386. package/dist/types/components/post-language-switch/post-language-switch.d.ts +23 -23
  387. package/dist/types/components/post-logo/post-logo.d.ts +2 -2
  388. package/dist/types/components/post-main-navigation/components/level-one-action.component.d.ts +5 -5
  389. package/dist/types/components/post-main-navigation/post-main-navigation.d.ts +38 -38
  390. package/dist/types/components/post-meta-navigation/post-meta-navigation.d.ts +3 -3
  391. package/dist/types/components/post-search/post-search.d.ts +65 -65
  392. package/dist/types/components/post-skiplinks/post-skiplinks.d.ts +7 -7
  393. package/dist/types/data/store.d.ts +11 -11
  394. package/dist/types/models/breadcrumbs.model.d.ts +25 -25
  395. package/dist/types/models/coveo.model.d.ts +14 -14
  396. package/dist/types/models/footer.model.d.ts +35 -35
  397. package/dist/types/models/general.model.d.ts +36 -36
  398. package/dist/types/models/geocode.model.d.ts +42 -42
  399. package/dist/types/models/header.model.d.ts +123 -123
  400. package/dist/types/models/implementor.model.d.ts +5 -5
  401. package/dist/types/models/language.model.d.ts +4 -4
  402. package/dist/types/models/track-and-trace.model.d.ts +22 -22
  403. package/dist/types/services/language.service.d.ts +65 -65
  404. package/dist/types/services/search/parcel.service.d.ts +1 -1
  405. package/dist/types/stencil-public-runtime.d.ts +8 -0
  406. package/dist/types/utils/highlighted.component.d.ts +2 -2
  407. package/dist/types/utils/if.component.d.ts +1 -1
  408. package/dist/types/utils/svg-icon.component.d.ts +2 -2
  409. package/package.json +24 -14
  410. package/readme.md +1 -1
  411. package/dist/cjs/if.component-2cd3c1ff.js +0 -12
  412. package/dist/cjs/index-4bd0adf1.js.map +0 -1
  413. package/dist/cjs/language.service-dbe2a435.js +0 -182
  414. package/dist/cjs/language.service-dbe2a435.js.map +0 -1
  415. package/dist/cjs/post-internet-breadcrumbs-e3ee842c.js.map +0 -1
  416. package/dist/cjs/post-internet-footer-16117586.js +0 -161
  417. package/dist/cjs/post-internet-footer-16117586.js.map +0 -1
  418. package/dist/cjs/post-internet-header-08840fbe.js +0 -828
  419. package/dist/cjs/post-internet-header-08840fbe.js.map +0 -1
  420. package/dist/cjs/post-klp-login-widget-5380708a.js +0 -63
  421. package/dist/cjs/post-language-switch-422af4d0.js.map +0 -1
  422. package/dist/cjs/post-main-navigation-2c9e953e.js +0 -240
  423. package/dist/cjs/post-main-navigation-2c9e953e.js.map +0 -1
  424. package/dist/cjs/post-search-7eb0a7a2.js.map +0 -1
  425. package/dist/cjs/post-skiplinks-3db1d214.js +0 -52
  426. package/dist/cjs/store-77668e50.js.map +0 -1
  427. package/dist/cjs/svg-sprite.component-68369645.js +0 -51
  428. package/dist/esm/if.component-3a779aca.js +0 -10
  429. package/dist/esm/index-2b83f5e9.js.map +0 -1
  430. package/dist/esm/language.service-501b09a8.js +0 -178
  431. package/dist/esm/language.service-501b09a8.js.map +0 -1
  432. package/dist/esm/post-internet-breadcrumbs-f268030c.js.map +0 -1
  433. package/dist/esm/post-internet-footer-3a501420.js +0 -159
  434. package/dist/esm/post-internet-footer-3a501420.js.map +0 -1
  435. package/dist/esm/post-internet-header-36aaba35.js +0 -826
  436. package/dist/esm/post-internet-header-36aaba35.js.map +0 -1
  437. package/dist/esm/post-klp-login-widget-57a4fdb5.js +0 -61
  438. package/dist/esm/post-language-switch-997ee4f9.js.map +0 -1
  439. package/dist/esm/post-main-navigation-77520c14.js +0 -238
  440. package/dist/esm/post-main-navigation-77520c14.js.map +0 -1
  441. package/dist/esm/post-search-a7f2e856.js.map +0 -1
  442. package/dist/esm/post-skiplinks-b3c32a77.js +0 -50
  443. package/dist/esm/store-80b19c12.js.map +0 -1
  444. package/dist/esm/svg-icon.component-7295f7cc.js +0 -8
  445. package/dist/esm/svg-sprite.component-cfc05f90.js +0 -49
  446. package/dist/esm-es5/index-2b83f5e9.js +0 -2
  447. package/dist/esm-es5/index-2b83f5e9.js.map +0 -1
  448. package/dist/esm-es5/post-internet-breadcrumbs-f268030c.js +0 -7
  449. package/dist/esm-es5/post-internet-header-36aaba35.js +0 -2
  450. package/dist/esm-es5/post-internet-header-36aaba35.js.map +0 -1
  451. package/dist/esm-es5/post-klp-login-widget-57a4fdb5.js +0 -2
  452. package/dist/esm-es5/post-main-navigation-77520c14.js +0 -2
  453. package/dist/esm-es5/post-main-navigation-77520c14.js.map +0 -1
  454. package/dist/esm-es5/store-80b19c12.js.map +0 -1
  455. package/dist/esm-es5/svg-icon.component-7295f7cc.js +0 -2
  456. package/dist/swisspost-internet-header/p-094eab7e.system.entry.js +0 -2
  457. package/dist/swisspost-internet-header/p-0f1f2469.system.js +0 -2
  458. package/dist/swisspost-internet-header/p-0f1f2469.system.js.map +0 -1
  459. package/dist/swisspost-internet-header/p-1a6d00a4.system.entry.js +0 -2
  460. package/dist/swisspost-internet-header/p-1bdc4b7b.js +0 -2
  461. package/dist/swisspost-internet-header/p-1bdc4b7b.js.map +0 -1
  462. package/dist/swisspost-internet-header/p-2340f9f1.entry.js +0 -2
  463. package/dist/swisspost-internet-header/p-236420dc.js +0 -2
  464. package/dist/swisspost-internet-header/p-2470951e.js +0 -2
  465. package/dist/swisspost-internet-header/p-2c612086.entry.js +0 -2
  466. package/dist/swisspost-internet-header/p-2eb179a7.entry.js +0 -2
  467. package/dist/swisspost-internet-header/p-3672587a.entry.js +0 -2
  468. package/dist/swisspost-internet-header/p-3bdf4efd.entry.js +0 -2
  469. package/dist/swisspost-internet-header/p-4248f499.system.entry.js +0 -2
  470. package/dist/swisspost-internet-header/p-5adcdd91.system.js +0 -2
  471. package/dist/swisspost-internet-header/p-5adcdd91.system.js.map +0 -1
  472. package/dist/swisspost-internet-header/p-606bd3f1.entry.js +0 -2
  473. package/dist/swisspost-internet-header/p-619bb76e.system.entry.js +0 -2
  474. package/dist/swisspost-internet-header/p-624d732c.js.map +0 -1
  475. package/dist/swisspost-internet-header/p-65ce36ba.entry.js +0 -2
  476. package/dist/swisspost-internet-header/p-669ed0d2.entry.js +0 -2
  477. package/dist/swisspost-internet-header/p-6e3b3c7a.system.js +0 -2
  478. package/dist/swisspost-internet-header/p-837fe525.system.entry.js +0 -2
  479. package/dist/swisspost-internet-header/p-83de3104.system.entry.js +0 -2
  480. package/dist/swisspost-internet-header/p-8ceafc83.js +0 -2
  481. package/dist/swisspost-internet-header/p-8ceafc83.js.map +0 -1
  482. package/dist/swisspost-internet-header/p-9af33755.system.js.map +0 -1
  483. package/dist/swisspost-internet-header/p-9c385f74.system.js +0 -3
  484. package/dist/swisspost-internet-header/p-9c385f74.system.js.map +0 -1
  485. package/dist/swisspost-internet-header/p-a0f5c014.system.entry.js +0 -2
  486. package/dist/swisspost-internet-header/p-a290e3e2.system.entry.js +0 -2
  487. package/dist/swisspost-internet-header/p-a5eda6dc.entry.js +0 -2
  488. package/dist/swisspost-internet-header/p-bd893111.system.js +0 -7
  489. package/dist/swisspost-internet-header/p-c0705313.system.entry.js +0 -2
  490. package/dist/swisspost-internet-header/p-c6bf4781.system.entry.js +0 -2
  491. package/dist/swisspost-internet-header/p-d294420b.system.js +0 -2
  492. package/dist/swisspost-internet-header/p-e2e1c5d4.js +0 -3
  493. package/dist/swisspost-internet-header/p-e2e1c5d4.js.map +0 -1
  494. package/dist/swisspost-internet-header/p-e81673c2.entry.js +0 -2
  495. package/dist/swisspost-internet-header/p-ea99866e.system.js +0 -2
  496. package/dist/swisspost-internet-header/p-ea99866e.system.js.map +0 -1
  497. package/dist/swisspost-internet-header/p-f6a2a74f.js +0 -7
  498. /package/dist/esm-es5/{if.component-3a779aca.js.map → if.component-d88d9e48.js.map} +0 -0
  499. /package/dist/esm-es5/{language.service-501b09a8.js.map → language.service-1bd090a7.js.map} +0 -0
  500. /package/dist/esm-es5/{post-language-switch-997ee4f9.js.map → post-language-switch-7df96469.js.map} +0 -0
  501. /package/dist/esm-es5/{post-logo-cde3c44d.js.map → post-logo-050acfc4.js.map} +0 -0
  502. /package/dist/esm-es5/{post-meta-navigation-09e9bdc8.js.map → post-meta-navigation-ece1e9de.js.map} +0 -0
  503. /package/dist/esm-es5/{post-search-a7f2e856.js.map → post-search-efd16c09.js.map} +0 -0
  504. /package/dist/esm-es5/{post-skiplinks-b3c32a77.js.map → post-skiplinks-c6b5addd.js.map} +0 -0
  505. /package/dist/esm-es5/{svg-icon.component-7295f7cc.js.map → svg-icon.component-fe96fac6.js.map} +0 -0
  506. /package/dist/esm-es5/{svg-sprite.component-cfc05f90.js.map → svg-sprite.component-4874b2fb.js.map} +0 -0
  507. /package/dist/esm-es5/{ui.service-a71cf490.js.map → ui.service-22f2c593.js.map} +0 -0
  508. /package/dist/esm-es5/{utils-3a8ff48f.js.map → utils-c8805f81.js.map} +0 -0
  509. /package/dist/swisspost-internet-header/{p-96618f42.system.js.map → p-0338115d.system.js.map} +0 -0
  510. /package/dist/swisspost-internet-header/{p-7ab3cbcb.js.map → p-0589b170.js.map} +0 -0
  511. /package/dist/swisspost-internet-header/{p-986a52bc.system.js.map → p-06f51515.system.js.map} +0 -0
  512. /package/dist/swisspost-internet-header/{p-094eab7e.system.entry.js.map → p-07313f1b.system.entry.js.map} +0 -0
  513. /package/dist/swisspost-internet-header/{p-16676174.system.js.map → p-11d02764.system.js.map} +0 -0
  514. /package/dist/swisspost-internet-header/{p-1a6d00a4.system.entry.js.map → p-1244a33a.entry.js.map} +0 -0
  515. /package/dist/swisspost-internet-header/{p-2340f9f1.entry.js.map → p-1c722d02.system.entry.js.map} +0 -0
  516. /package/dist/swisspost-internet-header/{p-2c612086.entry.js.map → p-1cb8fe46.entry.js.map} +0 -0
  517. /package/dist/swisspost-internet-header/{p-f2a43ce2.system.js.map → p-1fd8561a.system.js.map} +0 -0
  518. /package/dist/swisspost-internet-header/{p-7eaa5689.js.map → p-2a8d5787.js.map} +0 -0
  519. /package/dist/swisspost-internet-header/{p-2eb179a7.entry.js.map → p-3759e0aa.entry.js.map} +0 -0
  520. /package/dist/swisspost-internet-header/{p-3672587a.entry.js.map → p-4380032a.entry.js.map} +0 -0
  521. /package/dist/swisspost-internet-header/{p-78e8a405.js.map → p-4bc05e68.js.map} +0 -0
  522. /package/dist/swisspost-internet-header/{p-3bdf4efd.entry.js.map → p-5498ca7c.entry.js.map} +0 -0
  523. /package/dist/swisspost-internet-header/{p-a7de7323.system.js.map → p-5a69c918.system.js.map} +0 -0
  524. /package/dist/swisspost-internet-header/{p-4248f499.system.entry.js.map → p-5ac16bdd.system.entry.js.map} +0 -0
  525. /package/dist/swisspost-internet-header/{p-606bd3f1.entry.js.map → p-6d60866a.system.entry.js.map} +0 -0
  526. /package/dist/swisspost-internet-header/{p-619bb76e.system.entry.js.map → p-7505c3e1.system.entry.js.map} +0 -0
  527. /package/dist/swisspost-internet-header/{p-3a7f9457.js.map → p-7d188581.js.map} +0 -0
  528. /package/dist/swisspost-internet-header/{p-cf06f703.js.map → p-840aa5c6.js.map} +0 -0
  529. /package/dist/swisspost-internet-header/{p-dc8296bd.js.map → p-8a65e8d6.js.map} +0 -0
  530. /package/dist/swisspost-internet-header/{p-40806042.system.js.map → p-8b9d7320.system.js.map} +0 -0
  531. /package/dist/swisspost-internet-header/{p-65ce36ba.entry.js.map → p-8df32cb8.system.js.map} +0 -0
  532. /package/dist/swisspost-internet-header/{p-669ed0d2.entry.js.map → p-943d2956.system.entry.js.map} +0 -0
  533. /package/dist/swisspost-internet-header/{p-6e3b3c7a.system.js.map → p-948d3e8f.entry.js.map} +0 -0
  534. /package/dist/swisspost-internet-header/{p-837fe525.system.entry.js.map → p-a08ee9d3.entry.js.map} +0 -0
  535. /package/dist/swisspost-internet-header/{p-3339310e.js.map → p-a39139a9.js.map} +0 -0
  536. /package/dist/swisspost-internet-header/{p-83de3104.system.entry.js.map → p-a4d04c0b.system.entry.js.map} +0 -0
  537. /package/dist/swisspost-internet-header/{p-a0f5c014.system.entry.js.map → p-b8c6f6a6.system.entry.js.map} +0 -0
  538. /package/dist/swisspost-internet-header/{p-46f2c38c.js.map → p-bc60a641.js.map} +0 -0
  539. /package/dist/swisspost-internet-header/{p-0096509c.js.map → p-bfbb5fc7.js.map} +0 -0
  540. /package/dist/swisspost-internet-header/{p-a290e3e2.system.entry.js.map → p-c466f253.entry.js.map} +0 -0
  541. /package/dist/swisspost-internet-header/{p-70df9137.js.map → p-c7f451bd.js.map} +0 -0
  542. /package/dist/swisspost-internet-header/{p-a5eda6dc.entry.js.map → p-c7fba36e.system.entry.js.map} +0 -0
  543. /package/dist/swisspost-internet-header/{p-2470951e.js.map → p-c8153649.js.map} +0 -0
  544. /package/dist/swisspost-internet-header/{p-ad9a417b.system.js.map → p-c895eccc.system.js.map} +0 -0
  545. /package/dist/swisspost-internet-header/{p-c0705313.system.entry.js.map → p-d6ab4ef3.entry.js.map} +0 -0
  546. /package/dist/swisspost-internet-header/{p-0e776d6e.system.js.map → p-d7e221af.system.js.map} +0 -0
  547. /package/dist/swisspost-internet-header/{p-c6bf4781.system.entry.js.map → p-da7b8486.system.entry.js.map} +0 -0
  548. /package/dist/swisspost-internet-header/{p-bbfd407b.js.map → p-dc2f1d20.js.map} +0 -0
  549. /package/dist/swisspost-internet-header/{p-ee5e0cc6.system.js.map → p-dd800ff2.system.js.map} +0 -0
  550. /package/dist/swisspost-internet-header/{p-34fe9d92.system.js.map → p-e2985a86.system.js.map} +0 -0
  551. /package/dist/swisspost-internet-header/{p-18e9ce89.system.js.map → p-e5acc124.system.js.map} +0 -0
  552. /package/dist/swisspost-internet-header/{p-e81673c2.entry.js.map → p-ff36437b.entry.js.map} +0 -0
@@ -6,11 +6,11 @@ let request = null;
6
6
  // Cache the original os flyout to use it for updates
7
7
  let osFlyoutCache = null;
8
8
  const getPPMConfig = () => {
9
- const ppmConfigScript = document.querySelector('#PPM_HEADER_DATA');
10
- if ((ppmConfigScript === null || ppmConfigScript === void 0 ? void 0 : ppmConfigScript.textContent) != null) {
11
- return JSON.parse(ppmConfigScript.textContent);
12
- }
13
- return null;
9
+ const ppmConfigScript = document.querySelector('#PPM_HEADER_DATA');
10
+ if ((ppmConfigScript === null || ppmConfigScript === void 0 ? void 0 : ppmConfigScript.textContent) != null) {
11
+ return JSON.parse(ppmConfigScript.textContent);
12
+ }
13
+ return null;
14
14
  };
15
15
  /**
16
16
  * Get a localized config object
@@ -20,43 +20,43 @@ const getPPMConfig = () => {
20
20
  * @returns Localized config object
21
21
  */
22
22
  export const getLocalizedConfig = async ({ projectId, environment, language, cookieKey, localStorageKey, activeRouteProp, localizedCustomConfig, osFlyoutOverrides, }) => {
23
- var _a, _b;
24
- const ppmConfig = getPPMConfig();
25
- let localizedConfig;
26
- let config = null;
27
- let lang;
28
- if (ppmConfig) {
29
- localizedConfig = ppmConfig;
30
- lang = document.documentElement.lang;
31
- }
32
- else {
33
- if (request == null) {
34
- request = fetchConfig(projectId, environment);
23
+ var _a, _b;
24
+ const ppmConfig = getPPMConfig();
25
+ let localizedConfig;
26
+ let config = null;
27
+ let lang;
28
+ if (ppmConfig) {
29
+ localizedConfig = ppmConfig;
30
+ lang = document.documentElement.lang;
35
31
  }
36
- config = await request;
37
- lang = getUserLang(Object.keys(config), language, localStorageKey, cookieKey);
38
- if (lang === undefined) {
39
- throw new Error('Internet Header: unable to determine current language');
32
+ else {
33
+ if (request == null) {
34
+ request = fetchConfig(projectId, environment);
35
+ }
36
+ config = await request;
37
+ lang = getUserLang(Object.keys(config), language, localStorageKey, cookieKey);
38
+ if (lang === undefined) {
39
+ throw new Error('Internet Header: unable to determine current language');
40
+ }
41
+ // Clone config for more predictable state updates
42
+ localizedConfig = Object.assign({}, config[lang]);
40
43
  }
41
- // Clone config for more predictable state updates
42
- localizedConfig = Object.assign({}, config[lang]);
43
- }
44
- // Merge custom config with portal config
45
- if (localizedCustomConfig) {
46
- const header = ((_a = localizedCustomConfig === null || localizedCustomConfig === void 0 ? void 0 : localizedCustomConfig.header) === null || _a === void 0 ? void 0 : _a.navMain)
47
- ? Object.assign(Object.assign({}, localizedConfig.header), { navMain: [...localizedConfig.header.navMain, ...localizedCustomConfig.header.navMain] }) : localizedConfig.header;
48
- localizedConfig = Object.assign(Object.assign({}, localizedConfig), { header });
49
- }
50
- // Add entries to flyout_os
51
- if (osFlyoutOverrides)
52
- localizedConfig.header.navMain = mergeOsFlyoutOverrides(localizedConfig, osFlyoutOverrides);
53
- // Mark active route
54
- if (activeRouteProp != null)
55
- localizedConfig.header.navMain = markActiveRoute(localizedConfig.header.navMain, activeRouteProp);
56
- setMainNavigationIds((_b = localizedConfig === null || localizedConfig === void 0 ? void 0 : localizedConfig.header) === null || _b === void 0 ? void 0 : _b.navMain);
57
- // Set the new language choice
58
- persistLanguageChoice(lang, cookieKey, localStorageKey);
59
- return localizedConfig;
44
+ // Merge custom config with portal config
45
+ if (localizedCustomConfig) {
46
+ const header = ((_a = localizedCustomConfig === null || localizedCustomConfig === void 0 ? void 0 : localizedCustomConfig.header) === null || _a === void 0 ? void 0 : _a.navMain)
47
+ ? Object.assign(Object.assign({}, localizedConfig.header), { navMain: [...localizedConfig.header.navMain, ...localizedCustomConfig.header.navMain] }) : localizedConfig.header;
48
+ localizedConfig = Object.assign(Object.assign({}, localizedConfig), { header });
49
+ }
50
+ // Add entries to flyout_os
51
+ if (osFlyoutOverrides)
52
+ localizedConfig.header.navMain = mergeOsFlyoutOverrides(localizedConfig, osFlyoutOverrides);
53
+ // Mark active route
54
+ if (activeRouteProp != null)
55
+ localizedConfig.header.navMain = markActiveRoute(localizedConfig.header.navMain, activeRouteProp);
56
+ setMainNavigationIds((_b = localizedConfig === null || localizedConfig === void 0 ? void 0 : localizedConfig.header) === null || _b === void 0 ? void 0 : _b.navMain);
57
+ // Set the new language choice
58
+ persistLanguageChoice(lang, cookieKey, localStorageKey);
59
+ return localizedConfig;
60
60
  };
61
61
  /**
62
62
  * Merge portal config with custom os flyout overrides
@@ -65,38 +65,38 @@ export const getLocalizedConfig = async ({ projectId, environment, language, coo
65
65
  * @returns Merged localized config
66
66
  */
67
67
  export const mergeOsFlyoutOverrides = (config, osFlyoutOverrides) => {
68
- if (osFlyoutOverrides == null)
69
- return config.header.navMain;
70
- return config.header.navMain.map(mainNav => {
71
- var _a, _b;
72
- if (mainNav.id !== 'flyout_os')
73
- return mainNav;
74
- if (osFlyoutCache === null) {
75
- osFlyoutCache = JSON.parse(JSON.stringify(mainNav));
76
- }
77
- const mainNavText = (_a = osFlyoutOverrides.text) !== null && _a !== void 0 ? _a : osFlyoutCache.text;
78
- const mainNavTitle = (_b = osFlyoutOverrides.title) !== null && _b !== void 0 ? _b : osFlyoutCache.title;
79
- if (osFlyoutCache.flyout == null ||
80
- osFlyoutCache.flyout.length === 0 ||
81
- osFlyoutOverrides.flyout == null ||
82
- osFlyoutOverrides.flyout.length === 0)
83
- return Object.assign(Object.assign({}, mainNav), { title: mainNavTitle, text: mainNavText });
84
- // Add entries for os flyout columns without overriding existing config
85
- const mainNavFlyout = [
86
- ...osFlyoutCache.flyout.map((col, index) => {
87
- var _a;
88
- const overrides = osFlyoutOverrides.flyout[index];
89
- const title = (_a = overrides.title) !== null && _a !== void 0 ? _a : col.title;
90
- const linkList = overrides.linkList != null ? osFlyoutOverrides.flyout[index].linkList : [];
91
- return {
92
- title,
93
- linkList: [...col.linkList, ...linkList],
94
- };
95
- }),
96
- ...osFlyoutOverrides.flyout.slice(osFlyoutCache.flyout.length),
97
- ];
98
- return Object.assign(Object.assign({}, mainNav), { text: mainNavText, title: mainNavTitle, flyout: mainNavFlyout });
99
- });
68
+ if (osFlyoutOverrides == null)
69
+ return config.header.navMain;
70
+ return config.header.navMain.map(mainNav => {
71
+ var _a, _b;
72
+ if (mainNav.id !== 'flyout_os')
73
+ return mainNav;
74
+ if (osFlyoutCache === null) {
75
+ osFlyoutCache = JSON.parse(JSON.stringify(mainNav));
76
+ }
77
+ const mainNavText = (_a = osFlyoutOverrides.text) !== null && _a !== void 0 ? _a : osFlyoutCache.text;
78
+ const mainNavTitle = (_b = osFlyoutOverrides.title) !== null && _b !== void 0 ? _b : osFlyoutCache.title;
79
+ if (osFlyoutCache.flyout == null ||
80
+ osFlyoutCache.flyout.length === 0 ||
81
+ osFlyoutOverrides.flyout == null ||
82
+ osFlyoutOverrides.flyout.length === 0)
83
+ return Object.assign(Object.assign({}, mainNav), { title: mainNavTitle, text: mainNavText });
84
+ // Add entries for os flyout columns without overriding existing config
85
+ const mainNavFlyout = [
86
+ ...osFlyoutCache.flyout.map((col, index) => {
87
+ var _a;
88
+ const overrides = osFlyoutOverrides.flyout[index];
89
+ const title = (_a = overrides.title) !== null && _a !== void 0 ? _a : col.title;
90
+ const linkList = overrides.linkList != null ? osFlyoutOverrides.flyout[index].linkList : [];
91
+ return {
92
+ title,
93
+ linkList: [...col.linkList, ...linkList],
94
+ };
95
+ }),
96
+ ...osFlyoutOverrides.flyout.slice(osFlyoutCache.flyout.length),
97
+ ];
98
+ return Object.assign(Object.assign({}, mainNav), { text: mainNavText, title: mainNavTitle, flyout: mainNavFlyout });
99
+ });
100
100
  };
101
101
  /**
102
102
  * Fetch the general config based on project id
@@ -104,22 +104,22 @@ export const mergeOsFlyoutOverrides = (config, osFlyoutOverrides) => {
104
104
  * @returns Promise for Post Portal general config
105
105
  */
106
106
  export const fetchConfig = async (projectId, environment) => {
107
- // Check if project id is sanitized
108
- if (!isValidProjectId(projectId)) {
109
- throw new Error(`Internet Header: invalid project id "${projectId}"`);
110
- }
111
- if (projectId === 'test') {
112
- environment = 'int01';
113
- }
114
- let url = generateConfigUrl(projectId, environment);
115
- // Get the config if cache is invalid
116
- try {
117
- const res = await fetch(url);
118
- return (await res.json());
119
- }
120
- catch (error) {
121
- throw new Error(`Internet Header: fetching config failed. ${error.message}`);
122
- }
107
+ // Check if project id is sanitized
108
+ if (!isValidProjectId(projectId)) {
109
+ throw new Error(`Internet Header: invalid project id "${projectId}"`);
110
+ }
111
+ if (projectId === 'test') {
112
+ environment = 'int01';
113
+ }
114
+ let url = generateConfigUrl(projectId, environment);
115
+ // Get the config if cache is invalid
116
+ try {
117
+ const res = await fetch(url);
118
+ return (await res.json());
119
+ }
120
+ catch (error) {
121
+ throw new Error(`Internet Header: fetching config failed. ${error.message}`);
122
+ }
123
123
  };
124
124
  /**
125
125
  * Generate an URL with all necessary query params to get the configuration.
@@ -129,18 +129,18 @@ export const fetchConfig = async (projectId, environment) => {
129
129
  * @returns URL pointing to the project config
130
130
  */
131
131
  export const generateConfigUrl = (projectId, environment) => {
132
- if (projectId === 'test')
133
- return 'assets/config/test-configuration.json';
134
- const parsedEnvironment = environment.toLowerCase();
135
- const isProd = parsedEnvironment === 'prod';
136
- const host = `https://${isProd ? 'www' : 'int'}.post.ch`;
137
- try {
138
- // Use URL to validate the generated URL
139
- return new URL(`${host}/api/headerjs/Json?serviceid=${encodeURIComponent(projectId)}${!isProd ? '&environment=' + parsedEnvironment : ''}`).toString();
140
- }
141
- catch (error) {
142
- throw new Error(`Internet Header: Config URL is invalid.`);
143
- }
132
+ if (projectId === 'test')
133
+ return 'assets/config/test-configuration.json';
134
+ const parsedEnvironment = environment.toLowerCase();
135
+ const isProd = parsedEnvironment === 'prod';
136
+ const host = `https://${isProd ? 'www' : 'int'}.post.ch`;
137
+ try {
138
+ // Use URL to validate the generated URL
139
+ return new URL(`${host}/api/headerjs/Json?serviceid=${encodeURIComponent(projectId)}${!isProd ? '&environment=' + parsedEnvironment : ''}`).toString();
140
+ }
141
+ catch (error) {
142
+ throw new Error(`Internet Header: Config URL is invalid.`);
143
+ }
144
144
  };
145
145
  /**
146
146
  * Check if project id contains only URL safe characters
@@ -149,7 +149,7 @@ export const generateConfigUrl = (projectId, environment) => {
149
149
  * @returns The valid project id
150
150
  */
151
151
  export const isValidProjectId = (projectId) => {
152
- return projectId !== '' && projectId.length > 0 && /^[a-zA-Z][\w-]*[a-zA-Z0-9]$/.test(projectId);
152
+ return projectId !== '' && projectId.length > 0 && /^[a-zA-Z][\w-]*[a-zA-Z0-9]$/.test(projectId);
153
153
  };
154
154
  /**
155
155
  * Get the localized config object from a custom config
@@ -159,18 +159,18 @@ export const isValidProjectId = (projectId) => {
159
159
  * @returns Localized custom config object
160
160
  */
161
161
  export const getLocalizedCustomConfig = (config, language) => {
162
- var _a;
163
- let customConfig;
164
- try {
165
- customConfig = typeof config === 'string' ? JSON.parse(config) : config;
166
- }
167
- catch (error) {
168
- throw new Error(`Internet Header: Custom config is invalid. Make sure your custom config contains valid JSON syntax and matches the definition. `);
169
- }
170
- let localizedCustomConfig = customConfig[language];
171
- if ((_a = localizedCustomConfig === null || localizedCustomConfig === void 0 ? void 0 : localizedCustomConfig.header) === null || _a === void 0 ? void 0 : _a.navMain)
172
- setMainNavigationIds(localizedCustomConfig.header.navMain);
173
- return localizedCustomConfig;
162
+ var _a;
163
+ let customConfig;
164
+ try {
165
+ customConfig = typeof config === 'string' ? JSON.parse(config) : config;
166
+ }
167
+ catch (error) {
168
+ throw new Error(`Internet Header: Custom config is invalid. Make sure your custom config contains valid JSON syntax and matches the definition. `);
169
+ }
170
+ let localizedCustomConfig = customConfig[language];
171
+ if ((_a = localizedCustomConfig === null || localizedCustomConfig === void 0 ? void 0 : localizedCustomConfig.header) === null || _a === void 0 ? void 0 : _a.navMain)
172
+ setMainNavigationIds(localizedCustomConfig.header.navMain);
173
+ return localizedCustomConfig;
174
174
  };
175
175
  /**
176
176
  * Check if mobile header styles are applied or not
@@ -182,8 +182,8 @@ export const isMobile = () => window.innerWidth < 1024;
182
182
  * identify the online-service flyout, which can be configured by osFlyoutOverrides
183
183
  */
184
184
  export const setMainNavigationIds = (navMainEntities) => {
185
- navMainEntities.forEach(navMainEntity => {
186
- navMainEntity.id = navMainEntity.id === 'flyout_os' ? navMainEntity.id : uniqueId('main-nav-');
187
- });
185
+ navMainEntities.forEach(navMainEntity => {
186
+ navMainEntity.id = navMainEntity.id === 'flyout_os' ? navMainEntity.id : uniqueId('main-nav-');
187
+ });
188
188
  };
189
189
  //# sourceMappingURL=config.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/services/config.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Environment,\n IPortalConfig,\n ILocalizedConfig,\n ICustomConfig,\n ILocalizedCustomConfig,\n LocalizedConfigParameters,\n} from '../models/general.model';\nimport { NavMainEntity } from '../models/header.model';\nimport { getUserLang, persistLanguageChoice } from './language.service';\nimport { uniqueId } from '../utils/utils';\nimport { markActiveRoute } from './route.service';\n\n// Prevent double requests\nlet request: Promise<IPortalConfig> | null = null;\n\n// Cache the original os flyout to use it for updates\nlet osFlyoutCache: NavMainEntity | null = null;\n\nconst getPPMConfig = (): ILocalizedConfig | null => {\n const ppmConfigScript = document.querySelector('#PPM_HEADER_DATA');\n\n if (ppmConfigScript?.textContent != null) {\n return JSON.parse(ppmConfigScript.textContent);\n }\n\n return null;\n};\n\n/**\n * Get a localized config object\n *\n * @param projectId String identifying the project\n * @param language [optional] Preferred language\n * @returns Localized config object\n */\nexport const getLocalizedConfig = async ({\n projectId,\n environment,\n language,\n cookieKey,\n localStorageKey,\n activeRouteProp,\n localizedCustomConfig,\n osFlyoutOverrides,\n}: LocalizedConfigParameters): Promise<ILocalizedConfig> => {\n const ppmConfig = getPPMConfig();\n let localizedConfig: ILocalizedConfig;\n let config: IPortalConfig | null = null;\n let lang: string | undefined;\n\n if (ppmConfig) {\n localizedConfig = ppmConfig;\n lang = document.documentElement.lang;\n } else {\n if (request == null) {\n request = fetchConfig(projectId, environment);\n }\n\n config = await request;\n lang = getUserLang(Object.keys(config), language, localStorageKey, cookieKey);\n\n if (lang === undefined) {\n throw new Error('Internet Header: unable to determine current language');\n }\n\n // Clone config for more predictable state updates\n localizedConfig = { ...config[lang] };\n }\n\n // Merge custom config with portal config\n if (localizedCustomConfig) {\n const header = localizedCustomConfig?.header?.navMain\n ? {\n ...localizedConfig.header,\n navMain: [...localizedConfig.header.navMain, ...localizedCustomConfig.header.navMain],\n }\n : localizedConfig.header;\n localizedConfig = {\n ...localizedConfig,\n header,\n };\n }\n\n // Add entries to flyout_os\n if (osFlyoutOverrides)\n localizedConfig.header.navMain = mergeOsFlyoutOverrides(localizedConfig, osFlyoutOverrides);\n\n // Mark active route\n if (activeRouteProp != null)\n localizedConfig.header.navMain = markActiveRoute(\n localizedConfig.header.navMain,\n activeRouteProp,\n );\n\n setMainNavigationIds(localizedConfig?.header?.navMain);\n\n // Set the new language choice\n persistLanguageChoice(lang, cookieKey, localStorageKey);\n\n return localizedConfig;\n};\n\n/**\n * Merge portal config with custom os flyout overrides\n * @param config Localized config\n * @param osFlyoutOverrides Overrides for the flyout\n * @returns Merged localized config\n */\nexport const mergeOsFlyoutOverrides = (\n config: ILocalizedConfig,\n osFlyoutOverrides: NavMainEntity,\n): NavMainEntity[] => {\n if (osFlyoutOverrides == null) return config.header.navMain;\n\n return config.header.navMain.map(mainNav => {\n if (mainNav.id !== 'flyout_os') return mainNav;\n\n if (osFlyoutCache === null) {\n osFlyoutCache = JSON.parse(JSON.stringify(mainNav)) as NavMainEntity;\n }\n\n const mainNavText = osFlyoutOverrides.text ?? osFlyoutCache.text;\n const mainNavTitle = osFlyoutOverrides.title ?? osFlyoutCache.title;\n\n if (\n osFlyoutCache.flyout == null ||\n osFlyoutCache.flyout.length === 0 ||\n osFlyoutOverrides.flyout == null ||\n osFlyoutOverrides.flyout.length === 0\n )\n return {\n ...mainNav,\n title: mainNavTitle,\n text: mainNavText,\n };\n\n // Add entries for os flyout columns without overriding existing config\n const mainNavFlyout = [\n ...osFlyoutCache.flyout.map((col, index) => {\n const overrides = osFlyoutOverrides.flyout[index];\n const title = overrides.title ?? col.title;\n\n const linkList = overrides.linkList != null ? osFlyoutOverrides.flyout[index].linkList : [];\n\n return {\n title,\n linkList: [...col.linkList, ...linkList],\n };\n }),\n ...osFlyoutOverrides.flyout.slice(osFlyoutCache.flyout.length),\n ];\n\n return {\n ...mainNav,\n text: mainNavText,\n title: mainNavTitle,\n flyout: mainNavFlyout,\n } as NavMainEntity;\n });\n};\n\n/**\n * Fetch the general config based on project id\n *\n * @returns Promise for Post Portal general config\n */\nexport const fetchConfig = async (\n projectId: string,\n environment: Environment,\n): Promise<IPortalConfig> => {\n // Check if project id is sanitized\n if (!isValidProjectId(projectId)) {\n throw new Error(`Internet Header: invalid project id \"${projectId}\"`);\n }\n\n if (projectId === 'test') {\n environment = 'int01';\n }\n\n let url = generateConfigUrl(projectId, environment);\n\n // Get the config if cache is invalid\n try {\n const res = await fetch(url);\n return (await res.json()) as IPortalConfig;\n } catch (error) {\n throw new Error(`Internet Header: fetching config failed. ${error.message}`);\n }\n};\n\n/**\n * Generate an URL with all necessary query params to get the configuration.\n * Project id \"test\" will return a test configuration\n * @param projectId string\n * @param environment int01, int02 or prod\n * @returns URL pointing to the project config\n */\nexport const generateConfigUrl = (projectId: string, environment: Environment): string => {\n if (projectId === 'test') return 'assets/config/test-configuration.json';\n\n const parsedEnvironment = environment.toLowerCase();\n const isProd = parsedEnvironment === 'prod';\n const host = `https://${isProd ? 'www' : 'int'}.post.ch`;\n try {\n // Use URL to validate the generated URL\n return new URL(\n `${host}/api/headerjs/Json?serviceid=${encodeURIComponent(projectId)}${\n !isProd ? '&environment=' + parsedEnvironment : ''\n }`,\n ).toString();\n } catch (error) {\n throw new Error(`Internet Header: Config URL is invalid.`);\n }\n};\n\n/**\n * Check if project id contains only URL safe characters\n *\n * @param projectId Project Id string\n * @returns The valid project id\n */\nexport const isValidProjectId = (projectId: string): boolean => {\n return projectId !== '' && projectId.length > 0 && /^[a-zA-Z][\\w-]*[a-zA-Z0-9]$/.test(projectId);\n};\n\n/**\n * Get the localized config object from a custom config\n *\n * @param config String or json object of the custom config\n * @param language Specific language\n * @returns Localized custom config object\n */\nexport const getLocalizedCustomConfig = (\n config: string | ICustomConfig,\n language: string,\n): ILocalizedCustomConfig | undefined => {\n let customConfig: ICustomConfig;\n try {\n customConfig = typeof config === 'string' ? JSON.parse(config) : config;\n } catch (error) {\n throw new Error(\n `Internet Header: Custom config is invalid. Make sure your custom config contains valid JSON syntax and matches the definition. `,\n );\n }\n let localizedCustomConfig: ILocalizedCustomConfig | undefined = customConfig[language];\n if (localizedCustomConfig?.header?.navMain)\n setMainNavigationIds(localizedCustomConfig.header.navMain);\n return localizedCustomConfig;\n};\n\n/**\n * Check if mobile header styles are applied or not\n * @returns True if browser is smaller than 1024px\n */\nexport const isMobile = () => window.innerWidth < 1024;\n\n/**\n * Set unique ID's on main navigation entities but conserve flyout_os to be able to\n * identify the online-service flyout, which can be configured by osFlyoutOverrides\n */\nexport const setMainNavigationIds = (navMainEntities: NavMainEntity[]): void => {\n navMainEntities.forEach(navMainEntity => {\n navMainEntity.id = navMainEntity.id === 'flyout_os' ? navMainEntity.id : uniqueId('main-nav-');\n });\n};\n"]}
1
+ {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/services/config.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Environment,\n IPortalConfig,\n ILocalizedConfig,\n ICustomConfig,\n ILocalizedCustomConfig,\n LocalizedConfigParameters,\n} from '../models/general.model';\nimport { NavMainEntity } from '../models/header.model';\nimport { getUserLang, persistLanguageChoice } from './language.service';\nimport { uniqueId } from '../utils/utils';\nimport { markActiveRoute } from './route.service';\n\n// Prevent double requests\nlet request: Promise<IPortalConfig> | null = null;\n\n// Cache the original os flyout to use it for updates\nlet osFlyoutCache: NavMainEntity | null = null;\n\nconst getPPMConfig = (): ILocalizedConfig | null => {\n const ppmConfigScript = document.querySelector('#PPM_HEADER_DATA');\n\n if (ppmConfigScript?.textContent != null) {\n return JSON.parse(ppmConfigScript.textContent);\n }\n\n return null;\n};\n\n/**\n * Get a localized config object\n *\n * @param projectId String identifying the project\n * @param language [optional] Preferred language\n * @returns Localized config object\n */\nexport const getLocalizedConfig = async ({\n projectId,\n environment,\n language,\n cookieKey,\n localStorageKey,\n activeRouteProp,\n localizedCustomConfig,\n osFlyoutOverrides,\n}: LocalizedConfigParameters): Promise<ILocalizedConfig> => {\n const ppmConfig = getPPMConfig();\n let localizedConfig: ILocalizedConfig;\n let config: IPortalConfig | null = null;\n let lang: string | undefined;\n\n if (ppmConfig) {\n localizedConfig = ppmConfig;\n lang = document.documentElement.lang;\n } else {\n if (request == null) {\n request = fetchConfig(projectId, environment);\n }\n\n config = await request;\n lang = getUserLang(Object.keys(config), language, localStorageKey, cookieKey);\n\n if (lang === undefined) {\n throw new Error('Internet Header: unable to determine current language');\n }\n\n // Clone config for more predictable state updates\n localizedConfig = { ...config[lang] };\n }\n\n // Merge custom config with portal config\n if (localizedCustomConfig) {\n const header = localizedCustomConfig?.header?.navMain\n ? {\n ...localizedConfig.header,\n navMain: [...localizedConfig.header.navMain, ...localizedCustomConfig.header.navMain],\n }\n : localizedConfig.header;\n localizedConfig = {\n ...localizedConfig,\n header,\n };\n }\n\n // Add entries to flyout_os\n if (osFlyoutOverrides)\n localizedConfig.header.navMain = mergeOsFlyoutOverrides(localizedConfig, osFlyoutOverrides);\n\n // Mark active route\n if (activeRouteProp != null)\n localizedConfig.header.navMain = markActiveRoute(\n localizedConfig.header.navMain,\n activeRouteProp,\n );\n\n setMainNavigationIds(localizedConfig?.header?.navMain);\n\n // Set the new language choice\n persistLanguageChoice(lang, cookieKey, localStorageKey);\n\n return localizedConfig;\n};\n\n/**\n * Merge portal config with custom os flyout overrides\n * @param config Localized config\n * @param osFlyoutOverrides Overrides for the flyout\n * @returns Merged localized config\n */\nexport const mergeOsFlyoutOverrides = (\n config: ILocalizedConfig,\n osFlyoutOverrides: NavMainEntity,\n): NavMainEntity[] => {\n if (osFlyoutOverrides == null) return config.header.navMain;\n\n return config.header.navMain.map(mainNav => {\n if (mainNav.id !== 'flyout_os') return mainNav;\n\n if (osFlyoutCache === null) {\n osFlyoutCache = JSON.parse(JSON.stringify(mainNav)) as NavMainEntity;\n }\n\n const mainNavText = osFlyoutOverrides.text ?? osFlyoutCache.text;\n const mainNavTitle = osFlyoutOverrides.title ?? osFlyoutCache.title;\n\n if (\n osFlyoutCache.flyout == null ||\n osFlyoutCache.flyout.length === 0 ||\n osFlyoutOverrides.flyout == null ||\n osFlyoutOverrides.flyout.length === 0\n )\n return {\n ...mainNav,\n title: mainNavTitle,\n text: mainNavText,\n };\n\n // Add entries for os flyout columns without overriding existing config\n const mainNavFlyout = [\n ...osFlyoutCache.flyout.map((col, index) => {\n const overrides = osFlyoutOverrides.flyout[index];\n const title = overrides.title ?? col.title;\n\n const linkList = overrides.linkList != null ? osFlyoutOverrides.flyout[index].linkList : [];\n\n return {\n title,\n linkList: [...col.linkList, ...linkList],\n };\n }),\n ...osFlyoutOverrides.flyout.slice(osFlyoutCache.flyout.length),\n ];\n\n return {\n ...mainNav,\n text: mainNavText,\n title: mainNavTitle,\n flyout: mainNavFlyout,\n } as NavMainEntity;\n });\n};\n\n/**\n * Fetch the general config based on project id\n *\n * @returns Promise for Post Portal general config\n */\nexport const fetchConfig = async (\n projectId: string,\n environment: Environment,\n): Promise<IPortalConfig> => {\n // Check if project id is sanitized\n if (!isValidProjectId(projectId)) {\n throw new Error(`Internet Header: invalid project id \"${projectId}\"`);\n }\n\n if (projectId === 'test') {\n environment = 'int01';\n }\n\n let url = generateConfigUrl(projectId, environment);\n\n // Get the config if cache is invalid\n try {\n const res = await fetch(url);\n return (await res.json()) as IPortalConfig;\n } catch (error) {\n throw new Error(`Internet Header: fetching config failed. ${error.message}`);\n }\n};\n\n/**\n * Generate an URL with all necessary query params to get the configuration.\n * Project id \"test\" will return a test configuration\n * @param projectId string\n * @param environment int01, int02 or prod\n * @returns URL pointing to the project config\n */\nexport const generateConfigUrl = (projectId: string, environment: Environment): string => {\n if (projectId === 'test') return 'assets/config/test-configuration.json';\n\n const parsedEnvironment = environment.toLowerCase();\n const isProd = parsedEnvironment === 'prod';\n const host = `https://${isProd ? 'www' : 'int'}.post.ch`;\n try {\n // Use URL to validate the generated URL\n return new URL(\n `${host}/api/headerjs/Json?serviceid=${encodeURIComponent(projectId)}${\n !isProd ? '&environment=' + parsedEnvironment : ''\n }`,\n ).toString();\n } catch (error) {\n throw new Error(`Internet Header: Config URL is invalid.`);\n }\n};\n\n/**\n * Check if project id contains only URL safe characters\n *\n * @param projectId Project Id string\n * @returns The valid project id\n */\nexport const isValidProjectId = (projectId: string): boolean => {\n return projectId !== '' && projectId.length > 0 && /^[a-zA-Z][\\w-]*[a-zA-Z0-9]$/.test(projectId);\n};\n\n/**\n * Get the localized config object from a custom config\n *\n * @param config String or json object of the custom config\n * @param language Specific language\n * @returns Localized custom config object\n */\nexport const getLocalizedCustomConfig = (\n config: string | ICustomConfig,\n language: string,\n): ILocalizedCustomConfig | undefined => {\n let customConfig: ICustomConfig;\n try {\n customConfig = typeof config === 'string' ? JSON.parse(config) : config;\n } catch (error) {\n throw new Error(\n `Internet Header: Custom config is invalid. Make sure your custom config contains valid JSON syntax and matches the definition. `,\n );\n }\n let localizedCustomConfig: ILocalizedCustomConfig | undefined = customConfig[language];\n if (localizedCustomConfig?.header?.navMain)\n setMainNavigationIds(localizedCustomConfig.header.navMain);\n return localizedCustomConfig;\n};\n\n/**\n * Check if mobile header styles are applied or not\n * @returns True if browser is smaller than 1024px\n */\nexport const isMobile = () => window.innerWidth < 1024;\n\n/**\n * Set unique ID's on main navigation entities but conserve flyout_os to be able to\n * identify the online-service flyout, which can be configured by osFlyoutOverrides\n */\nexport const setMainNavigationIds = (navMainEntities: NavMainEntity[]): void => {\n navMainEntities.forEach(navMainEntity => {\n navMainEntity.id = navMainEntity.id === 'flyout_os' ? navMainEntity.id : uniqueId('main-nav-');\n });\n};\n"]}
@@ -1,60 +1,60 @@
1
1
  import { translations } from "../assets/i18n/translations";
2
2
  import { state } from "../data/store";
3
3
  export const getUserLang = (supportedLanguages, implementorPreferredLanguage, localStorageKey, cookieKey) => {
4
- // If there are no supported languages, well...
5
- if (supportedLanguages.length === 0) {
6
- return 'de';
7
- }
8
- // If there is only one language in the config, use this
9
- if (supportedLanguages.length === 1) {
10
- return supportedLanguages[0];
11
- }
12
- const url = new URL(window.location.href);
13
- /**
14
- * Build array of possible language definitions in order of importance.
15
- * At the end is a filter function that will weed out any undefined or null entries.
16
- */
17
- let languagesSet = [
18
- // Check if implementor overrides lang config
19
- implementorPreferredLanguage,
20
- // Check query string param
21
- url.searchParams.get('lang'),
22
- // Check url pathname
23
- url.pathname.split('/').find(segment => supportedLanguages.includes(segment)),
24
- // Check local storage with the key provided
25
- localStorageKey !== undefined ? window.localStorage.getItem(localStorageKey) : null,
26
- // Check cookies
27
- getCookie('language'),
28
- getCookie('lang'),
29
- cookieKey !== undefined ? getCookie(cookieKey) : null,
30
- // Check document language
31
- document.documentElement.lang,
32
- // Check browser preferred language
33
- getPreferredLanguageFromBrowser(supportedLanguages),
34
- // Check the state
35
- state.currentLanguage,
36
- ].filter((lang) => lang != null);
37
- // Check the set of languages to see if it matches
38
- // any of the supported languages. Return the first
39
- // supported language if there is none set
40
- const lang = languagesSet.find(language => supportedLanguages.includes(language)) || supportedLanguages[0];
41
- if (lang == null || lang.length !== 2) {
42
- throw new Error(`Current language could not be determined from settings or the language provided (${lang}) is not supported by the Header API.`);
43
- }
44
- return lang;
4
+ // If there are no supported languages, well...
5
+ if (supportedLanguages.length === 0) {
6
+ return 'de';
7
+ }
8
+ // If there is only one language in the config, use this
9
+ if (supportedLanguages.length === 1) {
10
+ return supportedLanguages[0];
11
+ }
12
+ const url = new URL(window.location.href);
13
+ /**
14
+ * Build array of possible language definitions in order of importance.
15
+ * At the end is a filter function that will weed out any undefined or null entries.
16
+ */
17
+ let languagesSet = [
18
+ // Check if implementor overrides lang config
19
+ implementorPreferredLanguage,
20
+ // Check query string param
21
+ url.searchParams.get('lang'),
22
+ // Check url pathname
23
+ url.pathname.split('/').find(segment => supportedLanguages.includes(segment)),
24
+ // Check local storage with the key provided
25
+ localStorageKey !== undefined ? window.localStorage.getItem(localStorageKey) : null,
26
+ // Check cookies
27
+ getCookie('language'),
28
+ getCookie('lang'),
29
+ cookieKey !== undefined ? getCookie(cookieKey) : null,
30
+ // Check document language
31
+ document.documentElement.lang,
32
+ // Check browser preferred language
33
+ getPreferredLanguageFromBrowser(supportedLanguages),
34
+ // Check the state
35
+ state.currentLanguage,
36
+ ].filter((lang) => lang != null);
37
+ // Check the set of languages to see if it matches
38
+ // any of the supported languages. Return the first
39
+ // supported language if there is none set
40
+ const lang = languagesSet.find(language => supportedLanguages.includes(language)) || supportedLanguages[0];
41
+ if (lang == null || lang.length !== 2) {
42
+ throw new Error(`Current language could not be determined from settings or the language provided (${lang}) is not supported by the Header API.`);
43
+ }
44
+ return lang;
45
45
  };
46
46
  /**
47
47
  * Persist chosen language to local storage
48
48
  * @param lang Currently chose language, two char string
49
49
  */
50
50
  export const persistLanguageChoice = (lang, cookieKey, localStorageKey) => {
51
- if (localStorageKey !== undefined) {
52
- window.localStorage.setItem(localStorageKey, lang);
53
- }
54
- if (cookieKey !== undefined) {
55
- setCookie(cookieKey, lang);
56
- }
57
- state.currentLanguage = lang;
51
+ if (localStorageKey !== undefined) {
52
+ window.localStorage.setItem(localStorageKey, lang);
53
+ }
54
+ if (cookieKey !== undefined) {
55
+ setCookie(cookieKey, lang);
56
+ }
57
+ state.currentLanguage = lang;
58
58
  };
59
59
  /**
60
60
  * Read a cookie by name
@@ -63,8 +63,8 @@ export const persistLanguageChoice = (lang, cookieKey, localStorageKey) => {
63
63
  * @returns Cookie value or an empty string
64
64
  */
65
65
  export const getCookie = (name) => {
66
- var _a;
67
- return ((_a = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)')) === null || _a === void 0 ? void 0 : _a.pop()) || '';
66
+ var _a;
67
+ return ((_a = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)')) === null || _a === void 0 ? void 0 : _a.pop()) || '';
68
68
  };
69
69
  /**
70
70
  * Write a new cookie
@@ -73,26 +73,26 @@ export const getCookie = (name) => {
73
73
  * @param value
74
74
  */
75
75
  export const setCookie = (key, value) => {
76
- document.cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
76
+ document.cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
77
77
  };
78
78
  const getPreferredLanguageFromBrowser = (supportedLanguages) => {
79
- // IE & Chrome
80
- if (navigator.language != null) {
81
- const lang = extractLanguage(navigator.language);
82
- if (supportedLanguages.indexOf(lang) !== -1) {
83
- return lang;
79
+ // IE & Chrome
80
+ if (navigator.language != null) {
81
+ const lang = extractLanguage(navigator.language);
82
+ if (supportedLanguages.indexOf(lang) !== -1) {
83
+ return lang;
84
+ }
84
85
  }
85
- }
86
- // Chrome supports a list of preferred languages: if the preferred is not supported, we go down the list.
87
- if (navigator.languages != null) {
88
- for (const l of navigator.languages) {
89
- const lang = extractLanguage(l);
90
- if (supportedLanguages.indexOf(lang) !== -1) {
91
- return lang;
92
- }
86
+ // Chrome supports a list of preferred languages: if the preferred is not supported, we go down the list.
87
+ if (navigator.languages != null) {
88
+ for (const l of navigator.languages) {
89
+ const lang = extractLanguage(l);
90
+ if (supportedLanguages.indexOf(lang) !== -1) {
91
+ return lang;
92
+ }
93
+ }
93
94
  }
94
- }
95
- return null;
95
+ return null;
96
96
  };
97
97
  const extractLanguage = (language) => language.substring(0, 2).toLowerCase();
98
98
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"language.service.js","sourceRoot":"","sources":["../../../src/services/language.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { translations } from '../assets/i18n/translations';\nimport { state } from '../data/store';\n\nexport const getUserLang = (\n supportedLanguages: string[],\n implementorPreferredLanguage?: string,\n localStorageKey?: string,\n cookieKey?: string,\n) => {\n // If there are no supported languages, well...\n if (supportedLanguages.length === 0) {\n return 'de';\n }\n\n // If there is only one language in the config, use this\n if (supportedLanguages.length === 1) {\n return supportedLanguages[0];\n }\n\n const url = new URL(window.location.href);\n\n /**\n * Build array of possible language definitions in order of importance.\n * At the end is a filter function that will weed out any undefined or null entries.\n */\n let languagesSet: Array<string> = [\n // Check if implementor overrides lang config\n implementorPreferredLanguage,\n\n // Check query string param\n url.searchParams.get('lang'),\n\n // Check url pathname\n url.pathname.split('/').find(segment => supportedLanguages.includes(segment)),\n\n // Check local storage with the key provided\n localStorageKey !== undefined ? window.localStorage.getItem(localStorageKey) : null,\n\n // Check cookies\n getCookie('language'),\n getCookie('lang'),\n cookieKey !== undefined ? getCookie(cookieKey) : null,\n\n // Check document language\n document.documentElement.lang,\n\n // Check browser preferred language\n getPreferredLanguageFromBrowser(supportedLanguages),\n\n // Check the state\n state.currentLanguage,\n ].filter((lang): lang is string => lang != null);\n\n // Check the set of languages to see if it matches\n // any of the supported languages. Return the first\n // supported language if there is none set\n const lang =\n languagesSet.find(language => supportedLanguages.includes(language)) || supportedLanguages[0];\n\n if (lang == null || lang.length !== 2) {\n throw new Error(\n `Current language could not be determined from settings or the language provided (${lang}) is not supported by the Header API.`,\n );\n }\n\n return lang;\n};\n\n/**\n * Persist chosen language to local storage\n * @param lang Currently chose language, two char string\n */\nexport const persistLanguageChoice = (\n lang: string,\n cookieKey?: string,\n localStorageKey?: string,\n) => {\n if (localStorageKey !== undefined) {\n window.localStorage.setItem(localStorageKey, lang);\n }\n\n if (cookieKey !== undefined) {\n setCookie(cookieKey, lang);\n }\n\n state.currentLanguage = lang;\n};\n\n/**\n * Read a cookie by name\n * https://stackoverflow.com/questions/5639346/what-is-the-shortest-function-for-reading-a-cookie-by-name-in-javascript?rq=1\n * @param name Cookie name\n * @returns Cookie value or an empty string\n */\nexport const getCookie = (name: string) => {\n return document.cookie.match('(^|;)\\\\s*' + name + '\\\\s*=\\\\s*([^;]+)')?.pop() || '';\n};\n\n/**\n * Write a new cookie\n * https://developer.mozilla.org/en-US/docs/Web/API/document/cookie#A_little_framework.3A_a_complete_cookies_reader.2Fwriter_with_full_unicode_support\n * @param key\n * @param value\n */\nexport const setCookie = (key: string, value: string) => {\n document.cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n};\n\nconst getPreferredLanguageFromBrowser = (supportedLanguages: string[]): string | null => {\n // IE & Chrome\n if (navigator.language != null) {\n const lang = extractLanguage(navigator.language);\n if (supportedLanguages.indexOf(lang) !== -1) {\n return lang;\n }\n }\n\n // Chrome supports a list of preferred languages: if the preferred is not supported, we go down the list.\n if (navigator.languages != null) {\n for (const l of navigator.languages) {\n const lang = extractLanguage(l);\n if (supportedLanguages.indexOf(lang) !== -1) {\n return lang;\n }\n }\n }\n\n return null;\n};\n\nconst extractLanguage = (language: string): string => language.substring(0, 2).toLowerCase();\n\n/**\n * Simple translate function for general header UI strings\n *\n * @param key Translation key\n * @param lang Force a language\n * @param translationObject Optionally provide translations\n * @returns Translated string or the key\n */\nexport const translate = (key: string, lang?: string, translationObject = translations) =>\n translationObject[key]?.[lang ?? state.currentLanguage ?? ''] ?? key;\n"]}
1
+ {"version":3,"file":"language.service.js","sourceRoot":"","sources":["../../../src/services/language.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { translations } from '../assets/i18n/translations';\nimport { state } from '../data/store';\n\nexport const getUserLang = (\n supportedLanguages: string[],\n implementorPreferredLanguage?: string,\n localStorageKey?: string,\n cookieKey?: string,\n) => {\n // If there are no supported languages, well...\n if (supportedLanguages.length === 0) {\n return 'de';\n }\n\n // If there is only one language in the config, use this\n if (supportedLanguages.length === 1) {\n return supportedLanguages[0];\n }\n\n const url = new URL(window.location.href);\n\n /**\n * Build array of possible language definitions in order of importance.\n * At the end is a filter function that will weed out any undefined or null entries.\n */\n let languagesSet: Array<string> = [\n // Check if implementor overrides lang config\n implementorPreferredLanguage,\n\n // Check query string param\n url.searchParams.get('lang'),\n\n // Check url pathname\n url.pathname.split('/').find(segment => supportedLanguages.includes(segment)),\n\n // Check local storage with the key provided\n localStorageKey !== undefined ? window.localStorage.getItem(localStorageKey) : null,\n\n // Check cookies\n getCookie('language'),\n getCookie('lang'),\n cookieKey !== undefined ? getCookie(cookieKey) : null,\n\n // Check document language\n document.documentElement.lang,\n\n // Check browser preferred language\n getPreferredLanguageFromBrowser(supportedLanguages),\n\n // Check the state\n state.currentLanguage,\n ].filter((lang): lang is string => lang != null);\n\n // Check the set of languages to see if it matches\n // any of the supported languages. Return the first\n // supported language if there is none set\n const lang =\n languagesSet.find(language => supportedLanguages.includes(language)) || supportedLanguages[0];\n\n if (lang == null || lang.length !== 2) {\n throw new Error(\n `Current language could not be determined from settings or the language provided (${lang}) is not supported by the Header API.`,\n );\n }\n\n return lang;\n};\n\n/**\n * Persist chosen language to local storage\n * @param lang Currently chose language, two char string\n */\nexport const persistLanguageChoice = (\n lang: string,\n cookieKey?: string,\n localStorageKey?: string,\n) => {\n if (localStorageKey !== undefined) {\n window.localStorage.setItem(localStorageKey, lang);\n }\n\n if (cookieKey !== undefined) {\n setCookie(cookieKey, lang);\n }\n\n state.currentLanguage = lang;\n};\n\n/**\n * Read a cookie by name\n * https://stackoverflow.com/questions/5639346/what-is-the-shortest-function-for-reading-a-cookie-by-name-in-javascript?rq=1\n * @param name Cookie name\n * @returns Cookie value or an empty string\n */\nexport const getCookie = (name: string) => {\n return document.cookie.match('(^|;)\\\\s*' + name + '\\\\s*=\\\\s*([^;]+)')?.pop() || '';\n};\n\n/**\n * Write a new cookie\n * https://developer.mozilla.org/en-US/docs/Web/API/document/cookie#A_little_framework.3A_a_complete_cookies_reader.2Fwriter_with_full_unicode_support\n * @param key\n * @param value\n */\nexport const setCookie = (key: string, value: string) => {\n document.cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n};\n\nconst getPreferredLanguageFromBrowser = (supportedLanguages: string[]): string | null => {\n // IE & Chrome\n if (navigator.language != null) {\n const lang = extractLanguage(navigator.language);\n if (supportedLanguages.indexOf(lang) !== -1) {\n return lang;\n }\n }\n\n // Chrome supports a list of preferred languages: if the preferred is not supported, we go down the list.\n if (navigator.languages != null) {\n for (const l of navigator.languages) {\n const lang = extractLanguage(l);\n if (supportedLanguages.indexOf(lang) !== -1) {\n return lang;\n }\n }\n }\n\n return null;\n};\n\nconst extractLanguage = (language: string): string => language.substring(0, 2).toLowerCase();\n\n/**\n * Simple translate function for general header UI strings\n *\n * @param key Translation key\n * @param lang Force a language\n * @param translationObject Optionally provide translations\n * @returns Translated string or the key\n */\nexport const translate = (key: string, lang?: string, translationObject = translations) =>\n translationObject[key]?.[lang ?? state.currentLanguage ?? ''] ?? key;\n"]}