@swisspost/internet-header 1.7.2 → 1.7.3-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{index-92e9d4f8.js → index-0f01e1a4.js} +4 -3
- package/dist/cjs/index-0f01e1a4.js.map +1 -0
- package/dist/cjs/{klp-widget.controller-d23f72bb.js → klp-widget.controller-413d85e1.js} +2 -3
- package/dist/cjs/klp-widget.controller-413d85e1.js.map +1 -0
- package/dist/cjs/{language.service-dcd7bae3.js → language.service-4954855f.js} +2 -2
- package/dist/cjs/{language.service-dcd7bae3.js.map → language.service-4954855f.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/post-klp-login-widget.cjs.entry.js +5 -5
- package/dist/cjs/post-klp-login-widget.cjs.entry.js.map +1 -1
- package/dist/cjs/post-language-switch.cjs.entry.js +7 -7
- package/dist/cjs/post-language-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/post-logo.cjs.entry.js +3 -3
- package/dist/cjs/post-logo.cjs.entry.js.map +1 -1
- package/dist/cjs/post-main-navigation.cjs.entry.js +17 -15
- package/dist/cjs/post-main-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/post-meta-navigation.cjs.entry.js +3 -3
- package/dist/cjs/post-meta-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/post-search.cjs.entry.js +61 -36
- package/dist/cjs/post-search.cjs.entry.js.map +1 -1
- package/dist/cjs/post-skiplinks.cjs.entry.js +5 -5
- package/dist/cjs/post-skiplinks.cjs.entry.js.map +1 -1
- package/dist/cjs/{store-638313d5.js → store-9d562808.js} +2 -2
- package/dist/cjs/{store-638313d5.js.map → store-9d562808.js.map} +1 -1
- package/dist/cjs/{svg-icon.component-f07628a9.js → svg-icon.component-f4cd45b0.js} +2 -2
- package/dist/cjs/{svg-icon.component-f07628a9.js.map → svg-icon.component-f4cd45b0.js.map} +1 -1
- package/dist/cjs/{svg-sprite.component-dc8e2e95.js → svg-sprite.component-e4b163ae.js} +2 -2
- package/dist/cjs/{svg-sprite.component-dc8e2e95.js.map → svg-sprite.component-e4b163ae.js.map} +1 -1
- package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +6 -6
- package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js.map +1 -1
- package/dist/cjs/swisspost-internet-footer.cjs.entry.js +4 -4
- package/dist/cjs/swisspost-internet-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/swisspost-internet-header.cjs.entry.js +28 -20
- package/dist/cjs/swisspost-internet-header.cjs.entry.js.map +1 -1
- package/dist/cjs/swisspost-internet-header.cjs.js +2 -2
- package/dist/cjs/swisspost-internet-header.cjs.js.map +1 -1
- package/dist/collection/assets/js/klp-login-widget.js +1 -2
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.css +113 -58
- package/dist/collection/components/post-internet-footer/post-internet-footer.css +78 -44
- package/dist/collection/components/post-internet-header/post-internet-header.css +68 -44
- package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.css +68 -46
- package/dist/collection/components/post-language-switch/components/post-language-switch-list.js +1 -1
- package/dist/collection/components/post-language-switch/components/post-language-switch-list.js.map +1 -1
- package/dist/collection/components/post-language-switch/post-language-switch.css +79 -53
- package/dist/collection/components/post-logo/post-logo.css +68 -44
- package/dist/collection/components/post-main-navigation/post-main-navigation.css +73 -48
- package/dist/collection/components/post-main-navigation/post-main-navigation.js +11 -9
- package/dist/collection/components/post-main-navigation/post-main-navigation.js.map +1 -1
- package/dist/collection/components/post-meta-navigation/post-meta-navigation.css +72 -48
- package/dist/collection/components/post-search/post-search.css +162 -90
- package/dist/collection/components/post-skiplinks/post-skiplinks.css +1 -0
- package/dist/collection/services/config.service.spec.js +274 -0
- package/dist/collection/services/config.service.spec.js.map +1 -0
- package/dist/collection/services/route.service.js +11 -3
- package/dist/collection/services/route.service.js.map +1 -1
- package/dist/collection/services/route.service.spec.js +109 -0
- package/dist/collection/services/route.service.spec.js.map +1 -0
- package/dist/collection/services/search/coveo.service.js +18 -10
- package/dist/collection/services/search/coveo.service.js.map +1 -1
- package/dist/collection/services/search/parcel.service.js +18 -8
- package/dist/collection/services/search/parcel.service.js.map +1 -1
- package/dist/collection/services/search/places.service.js +20 -13
- package/dist/collection/services/search/places.service.js.map +1 -1
- package/dist/collection/services/search/search.service.spec.js +49 -0
- package/dist/collection/services/search/search.service.spec.js.map +1 -0
- package/dist/collection/utils/utils.spec.js +11 -0
- package/dist/collection/utils/utils.spec.js.map +1 -0
- package/dist/components/klp-widget.controller.js +1 -2
- package/dist/components/klp-widget.controller.js.map +1 -1
- package/dist/components/post-klp-login-widget2.js +1 -1
- package/dist/components/post-klp-login-widget2.js.map +1 -1
- package/dist/components/post-language-switch2.js +2 -2
- package/dist/components/post-language-switch2.js.map +1 -1
- package/dist/components/post-logo2.js +1 -1
- package/dist/components/post-logo2.js.map +1 -1
- package/dist/components/post-main-navigation2.js +12 -10
- package/dist/components/post-main-navigation2.js.map +1 -1
- package/dist/components/post-meta-navigation2.js +1 -1
- package/dist/components/post-meta-navigation2.js.map +1 -1
- package/dist/components/post-search2.js +57 -32
- package/dist/components/post-search2.js.map +1 -1
- package/dist/components/post-skiplinks2.js +1 -1
- package/dist/components/post-skiplinks2.js.map +1 -1
- package/dist/components/store.js.map +1 -1
- package/dist/components/swisspost-internet-breadcrumbs.js +1 -1
- package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -1
- package/dist/components/swisspost-internet-footer.js +1 -1
- package/dist/components/swisspost-internet-footer.js.map +1 -1
- package/dist/components/swisspost-internet-header.js +23 -15
- package/dist/components/swisspost-internet-header.js.map +1 -1
- package/dist/esm/{index-35186c69.js → index-2aa4bc9f.js} +4 -3
- package/dist/esm/index-2aa4bc9f.js.map +1 -0
- package/dist/esm/{klp-widget.controller-945d9271.js → klp-widget.controller-1b2db6e7.js} +2 -3
- package/dist/esm/klp-widget.controller-1b2db6e7.js.map +1 -0
- package/dist/esm/{language.service-55e5ef74.js → language.service-c0f81273.js} +2 -2
- package/dist/esm/{language.service-55e5ef74.js.map → language.service-c0f81273.js.map} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/polyfills/core-js.js +0 -0
- package/dist/esm/polyfills/dom.js +0 -0
- package/dist/esm/polyfills/es5-html-element.js +0 -0
- package/dist/esm/polyfills/index.js +0 -0
- package/dist/esm/polyfills/system.js +0 -0
- package/dist/esm/post-klp-login-widget.entry.js +5 -5
- package/dist/esm/post-klp-login-widget.entry.js.map +1 -1
- package/dist/esm/post-language-switch.entry.js +7 -7
- package/dist/esm/post-language-switch.entry.js.map +1 -1
- package/dist/esm/post-logo.entry.js +3 -3
- package/dist/esm/post-logo.entry.js.map +1 -1
- package/dist/esm/post-main-navigation.entry.js +17 -15
- package/dist/esm/post-main-navigation.entry.js.map +1 -1
- package/dist/esm/post-meta-navigation.entry.js +3 -3
- package/dist/esm/post-meta-navigation.entry.js.map +1 -1
- package/dist/esm/post-search.entry.js +61 -36
- package/dist/esm/post-search.entry.js.map +1 -1
- package/dist/esm/post-skiplinks.entry.js +5 -5
- package/dist/esm/post-skiplinks.entry.js.map +1 -1
- package/dist/esm/{store-b78e2d3b.js → store-d5165a8f.js} +2 -2
- package/dist/esm/{store-b78e2d3b.js.map → store-d5165a8f.js.map} +1 -1
- package/dist/esm/{svg-icon.component-7bac7397.js → svg-icon.component-02f233c7.js} +2 -2
- package/dist/esm/{svg-icon.component-7bac7397.js.map → svg-icon.component-02f233c7.js.map} +1 -1
- package/dist/esm/{svg-sprite.component-f319da57.js → svg-sprite.component-1f13a769.js} +2 -2
- package/dist/esm/{svg-sprite.component-f319da57.js.map → svg-sprite.component-1f13a769.js.map} +1 -1
- package/dist/esm/swisspost-internet-breadcrumbs.entry.js +6 -6
- package/dist/esm/swisspost-internet-breadcrumbs.entry.js.map +1 -1
- package/dist/esm/swisspost-internet-footer.entry.js +4 -4
- package/dist/esm/swisspost-internet-footer.entry.js.map +1 -1
- package/dist/esm/swisspost-internet-header.entry.js +28 -20
- package/dist/esm/swisspost-internet-header.entry.js.map +1 -1
- package/dist/esm/swisspost-internet-header.js +3 -3
- package/dist/esm/swisspost-internet-header.js.map +1 -1
- package/dist/esm-es5/{index-35186c69.js → index-2aa4bc9f.js} +2 -2
- package/dist/esm-es5/index-2aa4bc9f.js.map +1 -0
- package/dist/esm-es5/{klp-widget.controller-945d9271.js → klp-widget.controller-1b2db6e7.js} +2 -2
- package/dist/{swisspost-internet-header/p-b8d05765.system.js.map → esm-es5/klp-widget.controller-1b2db6e7.js.map} +1 -1
- package/dist/esm-es5/{language.service-55e5ef74.js → language.service-c0f81273.js} +2 -2
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/loader.js.map +1 -1
- package/dist/esm-es5/post-klp-login-widget.entry.js +1 -1
- package/dist/esm-es5/post-klp-login-widget.entry.js.map +1 -1
- package/dist/esm-es5/post-language-switch.entry.js +1 -1
- package/dist/esm-es5/post-language-switch.entry.js.map +1 -1
- package/dist/esm-es5/post-logo.entry.js +1 -1
- package/dist/esm-es5/post-logo.entry.js.map +1 -1
- package/dist/esm-es5/post-main-navigation.entry.js +1 -1
- package/dist/esm-es5/post-main-navigation.entry.js.map +1 -1
- package/dist/esm-es5/post-meta-navigation.entry.js +1 -1
- package/dist/esm-es5/post-meta-navigation.entry.js.map +1 -1
- package/dist/esm-es5/post-search.entry.js +1 -1
- package/dist/esm-es5/post-search.entry.js.map +1 -1
- package/dist/esm-es5/post-skiplinks.entry.js +1 -1
- package/dist/esm-es5/post-skiplinks.entry.js.map +1 -1
- package/dist/esm-es5/{store-b78e2d3b.js → store-d5165a8f.js} +2 -2
- package/dist/esm-es5/{store-b78e2d3b.js.map → store-d5165a8f.js.map} +1 -1
- package/dist/esm-es5/svg-icon.component-02f233c7.js +2 -0
- package/dist/esm-es5/{svg-sprite.component-f319da57.js → svg-sprite.component-1f13a769.js} +2 -2
- package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +2 -2
- package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js.map +1 -1
- package/dist/esm-es5/swisspost-internet-footer.entry.js +1 -1
- package/dist/esm-es5/swisspost-internet-footer.entry.js.map +1 -1
- package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
- package/dist/esm-es5/swisspost-internet-header.entry.js.map +1 -1
- package/dist/esm-es5/swisspost-internet-header.js +1 -1
- package/dist/esm-es5/swisspost-internet-header.js.map +1 -1
- package/dist/swisspost-internet-header/p-04cf4eeb.system.entry.js +2 -0
- package/dist/swisspost-internet-header/{p-055f51f2.system.entry.js.map → p-04cf4eeb.system.entry.js.map} +1 -1
- package/dist/swisspost-internet-header/p-0af4e3e8.entry.js +2 -0
- package/dist/swisspost-internet-header/{p-6a22a9c3.entry.js.map → p-0af4e3e8.entry.js.map} +1 -1
- package/dist/swisspost-internet-header/p-18a3b952.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-18a3b952.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-1a2a0045.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-1a2a0045.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-25872a84.system.entry.js +2 -0
- package/dist/swisspost-internet-header/{p-02bb40cf.system.entry.js.map → p-25872a84.system.entry.js.map} +1 -1
- package/dist/swisspost-internet-header/p-2824a296.entry.js +7 -0
- package/dist/swisspost-internet-header/{p-30695393.entry.js.map → p-2824a296.entry.js.map} +1 -1
- package/dist/swisspost-internet-header/{p-b8d05765.system.js → p-30592816.system.js} +2 -2
- package/dist/{esm-es5/klp-widget.controller-945d9271.js.map → swisspost-internet-header/p-30592816.system.js.map} +1 -1
- package/dist/swisspost-internet-header/p-34205e78.entry.js +2 -0
- package/dist/swisspost-internet-header/p-34205e78.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-47b1ef62.entry.js +2 -0
- package/dist/swisspost-internet-header/{p-e95ed009.entry.js.map → p-47b1ef62.entry.js.map} +1 -1
- package/dist/swisspost-internet-header/p-5ecd4ac6.entry.js +2 -0
- package/dist/swisspost-internet-header/p-5ecd4ac6.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-0d7864f3.js → p-6492c505.js} +2 -2
- package/dist/swisspost-internet-header/{p-0d7864f3.js.map → p-6492c505.js.map} +1 -1
- package/dist/swisspost-internet-header/{p-3819c4ce.system.js → p-65e18d30.system.js} +2 -2
- package/dist/swisspost-internet-header/{p-3819c4ce.system.js.map → p-65e18d30.system.js.map} +1 -1
- package/dist/swisspost-internet-header/{p-4d015bfc.system.js → p-70805f8f.system.js} +2 -2
- package/dist/swisspost-internet-header/{p-91035a2a.system.js → p-77394e93.system.js} +2 -2
- package/dist/swisspost-internet-header/p-7d4ecdb6.entry.js +2 -0
- package/dist/swisspost-internet-header/p-7d4ecdb6.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-809e69c8.entry.js +2 -0
- package/dist/swisspost-internet-header/{p-b9bcb22a.entry.js.map → p-809e69c8.entry.js.map} +1 -1
- package/dist/swisspost-internet-header/p-94d45cc5.system.entry.js +2 -0
- package/dist/swisspost-internet-header/{p-57f4eea0.system.entry.js.map → p-94d45cc5.system.entry.js.map} +1 -1
- package/dist/swisspost-internet-header/p-97793474.entry.js +2 -0
- package/dist/swisspost-internet-header/p-97793474.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-6582303e.js → p-99eafc12.js} +2 -2
- package/dist/swisspost-internet-header/{p-e2db30e1.js → p-9a8f9281.js} +2 -2
- package/dist/swisspost-internet-header/{p-22e64bf2.js → p-b7feee8d.js} +2 -2
- package/dist/swisspost-internet-header/{p-22e64bf2.js.map → p-b7feee8d.js.map} +1 -1
- package/dist/swisspost-internet-header/p-bad10ea9.system.entry.js +7 -0
- package/dist/swisspost-internet-header/{p-4c9f1f1a.system.entry.js.map → p-bad10ea9.system.entry.js.map} +1 -1
- package/dist/swisspost-internet-header/{p-3df8cabd.system.entry.js → p-bf3dac2f.system.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-bf3dac2f.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-c72e824c.entry.js +2 -0
- package/dist/swisspost-internet-header/p-c72e824c.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-c96ad7d6.entry.js +2 -0
- package/dist/swisspost-internet-header/{p-99228f51.entry.js.map → p-c96ad7d6.entry.js.map} +1 -1
- package/dist/swisspost-internet-header/p-c9cf2e49.system.entry.js +2 -0
- package/dist/swisspost-internet-header/{p-f349687c.system.entry.js.map → p-c9cf2e49.system.entry.js.map} +1 -1
- package/dist/swisspost-internet-header/{p-242b61d1.system.js → p-ce02164e.system.js} +2 -2
- package/dist/swisspost-internet-header/{p-2945db6c.js → p-d8b954a1.js} +3 -3
- package/dist/swisspost-internet-header/p-d8b954a1.js.map +1 -0
- package/dist/swisspost-internet-header/p-e415699e.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-e415699e.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-e75bba89.js +2 -0
- package/dist/swisspost-internet-header/p-eef407b0.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-eef407b0.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-5e9ba287.system.js → p-f5935384.system.js} +2 -2
- package/dist/swisspost-internet-header/p-f5935384.system.js.map +1 -0
- package/dist/swisspost-internet-header/{p-49fe20ff.system.js → p-f70ab166.system.js} +2 -2
- package/dist/swisspost-internet-header/{p-49fe20ff.system.js.map → p-f70ab166.system.js.map} +1 -1
- package/dist/swisspost-internet-header/swisspost-internet-header.css +1 -1
- package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
- package/dist/swisspost-internet-header/swisspost-internet-header.esm.js.map +1 -1
- package/dist/swisspost-internet-header/swisspost-internet-header.js +1 -1
- package/dist/types/components/post-main-navigation/post-main-navigation.d.ts +2 -2
- package/package.json +26 -26
- package/dist/cjs/index-92e9d4f8.js.map +0 -1
- package/dist/cjs/klp-widget.controller-d23f72bb.js.map +0 -1
- package/dist/esm/index-35186c69.js.map +0 -1
- package/dist/esm/klp-widget.controller-945d9271.js.map +0 -1
- package/dist/esm-es5/index-35186c69.js.map +0 -1
- package/dist/esm-es5/svg-icon.component-7bac7397.js +0 -2
- package/dist/swisspost-internet-header/p-02bb40cf.system.entry.js +0 -2
- package/dist/swisspost-internet-header/p-055f51f2.system.entry.js +0 -2
- package/dist/swisspost-internet-header/p-1195cffa.entry.js +0 -2
- package/dist/swisspost-internet-header/p-1195cffa.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-1c0ba4e8.system.entry.js +0 -2
- package/dist/swisspost-internet-header/p-1c0ba4e8.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-2945db6c.js.map +0 -1
- package/dist/swisspost-internet-header/p-30695393.entry.js +0 -7
- package/dist/swisspost-internet-header/p-32fe68f0.js +0 -2
- package/dist/swisspost-internet-header/p-3462fe1c.entry.js +0 -2
- package/dist/swisspost-internet-header/p-3462fe1c.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-3cabcfa7.entry.js +0 -2
- package/dist/swisspost-internet-header/p-3cabcfa7.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-3df8cabd.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-4c9f1f1a.system.entry.js +0 -7
- package/dist/swisspost-internet-header/p-57f4eea0.system.entry.js +0 -2
- package/dist/swisspost-internet-header/p-5e9ba287.system.js.map +0 -1
- package/dist/swisspost-internet-header/p-6a22a9c3.entry.js +0 -2
- package/dist/swisspost-internet-header/p-73208b0d.system.entry.js +0 -2
- package/dist/swisspost-internet-header/p-73208b0d.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-96623613.system.entry.js +0 -2
- package/dist/swisspost-internet-header/p-96623613.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-99228f51.entry.js +0 -2
- package/dist/swisspost-internet-header/p-9a6083cb.entry.js +0 -2
- package/dist/swisspost-internet-header/p-9a6083cb.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-afdd23a8.system.entry.js +0 -2
- package/dist/swisspost-internet-header/p-afdd23a8.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-b9bcb22a.entry.js +0 -2
- package/dist/swisspost-internet-header/p-d5d1f301.entry.js +0 -2
- package/dist/swisspost-internet-header/p-d5d1f301.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-e95ed009.entry.js +0 -2
- package/dist/swisspost-internet-header/p-f349687c.system.entry.js +0 -2
- /package/dist/esm-es5/{language.service-55e5ef74.js.map → language.service-c0f81273.js.map} +0 -0
- /package/dist/esm-es5/{svg-icon.component-7bac7397.js.map → svg-icon.component-02f233c7.js.map} +0 -0
- /package/dist/esm-es5/{svg-sprite.component-f319da57.js.map → svg-sprite.component-1f13a769.js.map} +0 -0
- /package/dist/swisspost-internet-header/{p-4d015bfc.system.js.map → p-70805f8f.system.js.map} +0 -0
- /package/dist/swisspost-internet-header/{p-91035a2a.system.js.map → p-77394e93.system.js.map} +0 -0
- /package/dist/swisspost-internet-header/{p-6582303e.js.map → p-99eafc12.js.map} +0 -0
- /package/dist/swisspost-internet-header/{p-e2db30e1.js.map → p-9a8f9281.js.map} +0 -0
- /package/dist/swisspost-internet-header/{p-242b61d1.system.js.map → p-ce02164e.system.js.map} +0 -0
- /package/dist/swisspost-internet-header/{p-32fe68f0.js.map → p-e75bba89.js.map} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(t,i,e,n){function o(t){return t instanceof e?t:new e((function(i){i(t)}))}return new(e||(e=Promise))((function(e,a){function r(t){try{s(n.next(t))}catch(t){a(t)}}function l(t){try{s(n["throw"](t))}catch(t){a(t)}}function s(t){t.done?e(t.value):o(t.value).then(r,l)}s((n=n.apply(t,i||[])).next())}))};var __generator=this&&this.__generator||function(t,i){var e={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,o,a,r;return r={next:l(0),throw:l(1),return:l(2)},typeof Symbol==="function"&&(r[Symbol.iterator]=function(){return this}),r;function l(t){return function(i){return s([t,i])}}function s(l){if(n)throw new TypeError("Generator is already executing.");while(r&&(r=0,l[0]&&(e=0)),e)try{if(n=1,o&&(a=l[0]&2?o["return"]:l[0]?o["throw"]||((a=o["return"])&&a.call(o),0):o.next)&&!(a=a.call(o,l[1])).done)return a;if(o=0,a)l=[l[0]&2,a.value];switch(l[0]){case 0:case 1:a=l;break;case 4:e.label++;return{value:l[1],done:false};case 5:e.label++;o=l[1];l=[0];continue;case 7:l=e.ops.pop();e.trys.pop();continue;default:if(!(a=e.trys,a=a.length>0&&a[a.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!a||l[1]>a[0]&&l[1]<a[3])){e.label=l[1];break}if(l[0]===6&&e.label<a[1]){e.label=a[1];a=l;break}if(a&&e.label<a[2]){e.label=a[2];e.ops.push(l);break}if(a[2])e.ops.pop();e.trys.pop();continue}l=i.call(t,e)}catch(t){l=[6,t];o=0}finally{n=a=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:true}}};System.register(["./p-5e9ba287.system.js","./p-9b4d5e90.system.js","./p-3819c4ce.system.js","./p-88aac12c.system.js","./p-242b61d1.system.js","./p-4d015bfc.system.js","./p-91035a2a.system.js"],(function(t){"use strict";var i,e,n,o,a,r,l,s,u,d,f;return{setters:[function(t){i=t.h;e=t.r;n=t.c;o=t.H;a=t.g},function(t){r=t.t},function(t){l=t.s},function(t){s=t.u},function(t){u=t.t},function(t){d=t.S},function(t){f=t.S}],execute:function(){var c=function(t){var e,n,o;var a=t.level.url?"a":"button";return i(a,{class:{"main-link":true,active:!!t.level.isActiveOverride,focus:t.isOpen},href:t.level.url,title:((e=t.level.title)===null||e===void 0?void 0:e.trim())&&((n=t.level.title)===null||n===void 0?void 0:n.trim())!==((o=t.level.text)===null||o===void 0?void 0:o.trim())?t.level.title:undefined,tabindex:t.level.url?undefined:0,"aria-haspopup":!t.level.noFlyout+"","aria-expanded":t.level.noFlyout?null:t.isOpen+"",onTouchEnd:function(i){return t.onTouchEnd(i)},onKeyDown:function(i){return t.onKeyDown(i)},onClick:function(i){return t.onClick(i)}},i("span",null,t.level.text),t.level.isActiveOverride?i("span",{class:"visually-hidden"},u("Active navigation element")):null,i("svg",{"aria-hidden":"true"},i("use",{href:"#pi-pointy-arrow-right"})))};var m='.flyout-nav,.flyout-column h3{font-size:0.9375rem}@media (min-width: 600px){.flyout-nav,.flyout-column h3{font-size:1rem}}@media (min-width: 1024px){.flyout-nav,.flyout-column h3{font-size:1.0625rem}}.flyout-title{font-size:1.0625rem}@media (min-width: 600px){.flyout-title{font-size:1.25rem}}@media (min-width: 1024px){.flyout-title{font-size:1.5rem}}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:700;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:400;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:300;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff") format("woff")}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", system-ui, sans-serif}button{font:inherit;padding:0}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:white}}.main-container,.flyout-linklist,.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}.btn-blank{background-color:transparent;border:none;border-radius:0;padding:0}.main-link,.flyout-close-button,.flyout-link,.nav-link{text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.main-link:hover,.flyout-close-button:hover,.flyout-link:hover,.nav-link:hover,.main-link:focus,.flyout-close-button:focus,.flyout-link:focus,.nav-link:focus{color:black}.main-link>svg,.flyout-close-button>svg,.flyout-link>svg,.nav-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.main-link>span,.flyout-close-button>span,.flyout-link>span,.nav-link>span{-ms-flex-negative:1;flex-shrink:1}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width: -0.02px){.hidden-xs{display:none}}@media (max-width: 399.98px){.hidden-sm{display:none}}@media (max-width: 599.98px){.hidden-rg{display:none}}@media (max-width: 779.98px){.hidden-md{display:none}}@media (max-width: 1023.98px){.hidden-lg{display:none}}@media (max-width: 1279.98px){.hidden-xl{display:none}}@media (max-width: 1440.98px){.hidden-xxl{display:none}}:host{--host-window-height:var(--window-height, 100vh);--calculated-header-height:calc(var(--header-height) + 1px);display:block;min-width:0;height:var(--header-height)}:host(.no-animation) *{-webkit-animation:none !important;animation:none !important;-webkit-transition:none !important;transition:none !important}@media (min-width: 1024px){.main-navigation,.main-container,.main-container li,.main-link{height:100%}}.main-navigation{font-size:1.125rem}@media (min-width: 1024px){.main-navigation{font-size:1rem;margin:0 0.75rem}}@media (min-width: 1280px){.main-navigation{font-size:1.125rem}}@media (min-width: 1441px){.main-navigation{font-size:1.25rem}}@media (max-width: 1023.98px){.main-navigation{position:absolute;top:var(--calculated-header-height);left:0;background:white;height:calc(var(--host-window-height) - var(--calculated-header-height));width:100%;margin:0;overflow:hidden scroll;-webkit-overflow-scrolling:touch;-ms-scroll-chaining:none;overscroll-behavior:contain;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;z-index:-1;visibility:hidden;-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:visibility 0.35s, -webkit-transform 0.35s;transition:visibility 0.35s, -webkit-transform 0.35s;transition:transform 0.35s, visibility 0.35s;transition:transform 0.35s, visibility 0.35s, -webkit-transform 0.35s}}@media (max-width: 1023.98px) and (prefers-reduced-motion: reduce){.main-navigation{-webkit-transition:none;transition:none}}@media (max-width: 1023.98px){.main-navigation.open{-webkit-transform:translateY(0);transform:translateY(0);visibility:visible}}.main-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:flex-start}@media (max-width: 1023.98px){.main-container{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:start;justify-content:flex-start;padding-top:2.5rem;padding-bottom:2.5rem}.main-container>li+li{border-top:1px solid hsl(0, 0%, 90%)}}@media (min-width: 1024px){.main-container{padding-right:0;padding-left:0}}.main-container>li{-ms-flex:0 1 auto;flex:0 1 auto;min-width:0}.main-link{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding-right:0.75rem;padding-left:0.75rem;text-align:left;cursor:pointer;width:100%}@media (min-width: 1024px){.main-link svg{display:none}}@media (max-width: 1023.98px){.main-link{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;font-weight:300;padding:0.625rem 0;width:100%;text-align:left}.main-link svg{width:1.5rem;height:1.5rem}}.main-link span{overflow:hidden;text-overflow:ellipsis}.main-link,.flyout-link{position:relative;color:black}.main-link::after,.flyout-link::after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:4px;background-color:transparent;opacity:0;-webkit-transform:scaleX(0.8);transform:scaleX(0.8);-webkit-transition:opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1)}@media (prefers-reduced-motion: reduce){.main-link::after,.flyout-link::after{-webkit-transition:none;transition:none}}.main-link:hover::after,.main-link.focus::after,.flyout-link:hover::after,.flyout-link.focus::after{background-color:hsl(0, 0%, 80%);opacity:1;-webkit-transform:scale(1);transform:scale(1)}.main-link.active,.flyout-link.active{font-weight:700}.main-link.active::after,.flyout-link.active::after{background-color:#fc0;opacity:1;-webkit-transform:scale(1);transform:scale(1)}.flyout{left:0;width:100%;background:white;padding-bottom:3rem;overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain;visibility:hidden}@media (min-width: 1024px){.flyout{position:absolute;top:100%;max-height:calc(100vh - var(--header-height) - var(--meta-header-height) - 1px);z-index:-1;-webkit-box-shadow:0 0 1px 0 rgba(0, 0, 0, 0.4);box-shadow:0 0 1px 0 rgba(0, 0, 0, 0.4);-webkit-transform:translateY(-100%);transform:translateY(-100%)}.flyout.open{-webkit-box-shadow:0 0 8px 0 rgba(0, 0, 0, 0.4);box-shadow:0 0 8px 0 rgba(0, 0, 0, 0.4);-webkit-transform:translateY(0);transform:translateY(0)}}@media (max-width: 1023.98px){.flyout{position:fixed;top:0;height:100%;z-index:1;-webkit-transform:translateX(100%);transform:translateX(100%)}.flyout.open{-webkit-transform:translateX(0);transform:translateX(0)}}.flyout.open{visibility:visible}.flyout.animate{-webkit-transition:visibility 0.35s, -webkit-transform 0.35s, -webkit-box-shadow 0.35s;transition:visibility 0.35s, -webkit-transform 0.35s, -webkit-box-shadow 0.35s;transition:transform 0.35s, visibility 0.35s, box-shadow 0.35s;transition:transform 0.35s, visibility 0.35s, box-shadow 0.35s, -webkit-transform 0.35s, -webkit-box-shadow 0.35s}@media (prefers-reduced-motion: reduce){.flyout.animate{-webkit-transition:none;transition:none}}.flyout-nav{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;min-height:3.5rem;-webkit-box-sizing:content-box;box-sizing:content-box}.flyout-row{display:-ms-flexbox;display:flex;gap:1.5rem}@media (max-width: 1023.98px){.flyout-row{display:grid;grid-template-columns:1fr 1fr}}@media (max-width: 599.98px){.flyout-row{grid-template-columns:1fr}}.flyout-column{-ms-flex:1;flex:1;max-width:25%}@media (max-width: 1023.98px){.flyout-column{max-width:none}}.flyout-column h3{margin-top:0}.flyout-back-button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:1rem;font-weight:400;cursor:pointer}@media (max-width: 599.98px){.flyout-back-button{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.flyout-back-button{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.flyout-back-button{padding-right:40px;padding-left:40px}}.flyout-back-button svg{width:1.5rem;height:1.5rem}@media (min-width: 1024px){.flyout-back-button{display:none}}.flyout-close-button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin-left:auto;padding:0 1.5rem;cursor:pointer}.flyout-close-button svg{width:1.5rem;height:1.5rem}@media (max-width: 1023.98px){.flyout-close-button{display:none}}.flyout-linklist li{border-top:1px solid hsl(0, 0%, 90%)}.flyout-linklist:first-child>li{border-top-color:transparent}.flyout-link{display:block;padding:0.75rem 0}.flyout-title{margin:2.5rem 0 1.5rem 0}@media (min-width: 1024px){.flyout-title{display:none}}';var h=t("post_main_navigation",function(){function t(t){e(this,t);this.dropdownToggled=n(this,"dropdownToggled",7);this.flyoutToggled=n(this,"flyoutToggled",7);this.resizeTimer=null;this.mouseLeaveTimer=null;this.mouseEnterTimer=null;this.activeFlyout=undefined;this.mobileMenuOpen=undefined}t.prototype.connectedCallback=function(){var t=this;this.throttledResize=r(300,(function(){return t.handleResize()}));window.addEventListener("resize",this.throttledResize,{passive:true});this.setWindowHeight()};t.prototype.disconnectedCallback=function(){window.removeEventListener("resize",this.throttledResize);if(this.mouseEnterTimer!==null)window.clearTimeout(this.mouseEnterTimer);if(this.mouseLeaveTimer!==null)window.clearTimeout(this.mouseLeaveTimer)};t.prototype.handleResize=function(){var t=this;this.host.classList.add("no-animation");if(this.resizeTimer!==null)window.clearTimeout(this.resizeTimer);this.resizeTimer=window.setTimeout((function(){t.host.classList.remove("no-animation")}),300);this.setWindowHeight()};t.prototype.setWindowHeight=function(){var t=this;if(!this.host){return}this.host.style.setProperty("--window-height","".concat(window.innerHeight,"px"));window.setTimeout((function(){t.host.style.setProperty("--window-height","".concat(window.innerHeight,"px"))}),100)};t.prototype.openFlyout=function(t){var i;var e=(i=this.host.shadowRoot)===null||i===void 0?void 0:i.getElementById(t);if(e&&this.activeFlyout!==""){this.addFlyoutAnimation(e,"expand")}this.activeFlyout=t;this.flyoutToggled.emit(t);this.setWindowHeight();if(this.mouseLeaveTimer!==null){window.clearTimeout(this.mouseLeaveTimer);this.mouseLeaveTimer=null}};t.prototype.closeFlyout=function(t){var i;if(t===undefined)return;var e=(i=this.host.shadowRoot)===null||i===void 0?void 0:i.getElementById(t);if(e){this.addFlyoutAnimation(e,"collapse")}this.activeFlyout=null;this.flyoutToggled.emit()};t.prototype.addFlyoutAnimation=function(t,i){if(!s()){t.classList.add("animate");t.addEventListener("transitionend",(function(){var e,n,o;if(i==="expand"){(e=t.querySelector("button.flyout-back-button"))===null||e===void 0?void 0:e.focus()}else if(i==="collapse"){(o=(n=t.parentElement)===null||n===void 0?void 0:n.querySelector("a.main-link"))===null||o===void 0?void 0:o.focus()}t.classList.remove("animate")}),{once:true})}};t.prototype.isActiveFlyout=function(t){return t===this.activeFlyout};t.prototype.handleMouseEnter=function(t){var i=this;if(this.mouseEnterTimer!==null){window.clearTimeout(this.mouseEnterTimer);this.mouseEnterTimer=null}if(this.mouseLeaveTimer&&this.activeFlyout===t.id){window.clearTimeout(this.mouseLeaveTimer);this.mouseLeaveTimer=null}if(window.innerWidth>=1024&&t.flyout.length>0&&this.activeFlyout!==t.id){this.mouseEnterTimer=window.setTimeout((function(){i.mouseEnterTimer=null;if(t.id!==undefined)i.openFlyout(t.id)}),200)}};t.prototype.handleMouseLeave=function(t){var i=this;if(this.mouseEnterTimer!==null){window.clearTimeout(this.mouseEnterTimer)}if(this.activeFlyout&&this.activeFlyout!==t.id){return}if(window.innerWidth>=1024&&t.flyout.length>0){this.mouseLeaveTimer=window.setTimeout((function(){i.closeFlyout(t.id)}),300)}};t.prototype.handleTouchEnd=function(t,i){if(!this.isActiveFlyout(i.id)&&!i.noFlyout){if(t.cancelable)t.preventDefault();if(i.id)this.openFlyout(i.id)}};t.prototype.handleKeyPress=function(t,i){if(t.key==="Enter"&&!this.isActiveFlyout(i.id)&&!i.noFlyout){t.preventDefault();if(i.id)this.openFlyout(i.id)}};t.prototype.handleClick=function(t,i){if(!this.isActiveFlyout(i.id)&&!i.noFlyout){t.preventDefault();if(i.id)this.openFlyout(i.id)}};t.prototype.toggleDropdown=function(t){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(i){this.mobileMenuOpen=t===undefined?!this.mobileMenuOpen:t;this.dropdownToggled.emit({open:this.mobileMenuOpen,element:this.host});if(t===false){this.closeFlyout()}this.setWindowHeight();return[2,this.mobileMenuOpen]}))}))};t.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){var t,i;return __generator(this,(function(e){i=(t=this.host.shadowRoot)===null||t===void 0?void 0:t.querySelector(".main-link");if(i){i.focus()}return[2]}))}))};t.prototype.setActiveFlyout=function(t){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(i){this.activeFlyout=t;this.flyoutToggled.emit(this.activeFlyout);return[2]}))}))};t.prototype.render=function(){var t=this;var e;if(((e=l.localizedConfig)===null||e===void 0?void 0:e.header)===undefined)return;var n=l.localizedConfig.header;return i(o,null,i(d,null),i("nav",{"aria-label":n.translations.navMainAriaLabel,id:"post-internet-header-main-navigation",class:{"main-navigation":true,open:this.mobileMenuOpen},role:"menu"},i("ul",{class:"main-container container"},n.navMain.map((function(e){return i("li",{key:e.text,onMouseLeave:function(){return t.handleMouseLeave(e)},onMouseEnter:function(){return t.handleMouseEnter(e)}},i(c,{level:e,isOpen:t.isActiveFlyout(e.id),onTouchEnd:function(i){return t.handleTouchEnd(i,e)},onKeyDown:function(i){return t.handleKeyPress(i,e)},onClick:function(i){return t.handleClick(i,e)}}),!e.noFlyout?a.bind(t)(e):null)}))),i("slot",null)));function a(t){var e=this;return i("div",{id:t.id,class:{flyout:true,open:this.isActiveFlyout(t.id)}},i("div",{class:"wide-container"},i("div",{class:"flyout-nav"},i("button",{class:"nav-link flyout-back-button",onClick:function(){return e.closeFlyout(t.id)}},i(f,{name:"pi-pointy-arrow-right",classNames:"mirrored"}),i("span",null,n.translations.backButtonText)),i("button",{class:"flyout-close-button",onClick:function(){return e.closeFlyout(t.id)}},i("span",{class:"visually-hidden"},t.text,", ",n.translations.mobileNavToggleClose),i(f,{name:"pi-close"}))),i("h2",{class:"flyout-title container"},i("a",{href:t.url,class:"nav-link"},t.text)),i("div",{class:"flyout-row container"},t.flyout.map((function(e,n){return i("div",{key:e.title,class:"flyout-column"},e.title?i("h3",{id:"".concat(t.id,"-column-").concat(n)},e.title):null,i("ul",{class:"flyout-linklist","aria-labelledby":e.title?"".concat(t.id,"-column-").concat(n):undefined},e.linkList.map((function(t){return i("li",{key:t.url},i("a",{class:{"flyout-link":true,active:!!(t===null||t===void 0?void 0:t.isActiveOverride)},href:t.url,target:t.target},t.title,(t===null||t===void 0?void 0:t.isActiveOverride)?i("span",{class:"visually-hidden"},", ",u("Active navigation element")):null))}))))})))))}};Object.defineProperty(t.prototype,"host",{get:function(){return a(this)},enumerable:false,configurable:true});return t}());h.style=m}}}));
|
|
2
|
-
//# sourceMappingURL=p-73208b0d.system.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["LevelOneAction","props","TagName","level","url","h","class","active","isActiveOverride","focus","isOpen","href","title","_a","trim","_b","_c","text","undefined","tabindex","noFlyout","onTouchEnd","e","onKeyDown","onClick","translate","postMainNavigationCss","PostMainNavigation","exports","this","resizeTimer","mouseLeaveTimer","mouseEnterTimer","class_1","prototype","connectedCallback","_this","throttledResize","throttle","handleResize","window","addEventListener","passive","setWindowHeight","disconnectedCallback","removeEventListener","clearTimeout","host","classList","add","setTimeout","remove","style","setProperty","concat","innerHeight","openFlyout","id","flyout","shadowRoot","getElementById","activeFlyout","addFlyoutAnimation","flyoutToggled","emit","closeFlyout","direction","userPrefersReducedMotion","querySelector","parentElement","once","isActiveFlyout","handleMouseEnter","innerWidth","length","handleMouseLeave","handleTouchEnd","event","cancelable","preventDefault","handleKeyPress","key","handleClick","toggleDropdown","force","mobileMenuOpen","dropdownToggled","open","element","setFocus","firstLink","setActiveFlyout","render","state","localizedConfig","header","headerConfig","Host","SvgSprite","translations","navMainAriaLabel","role","navMain","map","levelOne","onMouseLeave","onMouseEnter","renderLevelOneFlyout","bind","SvgIcon","name","classNames","backButtonText","mobileNavToggleClose","i","linkList","link","target"],"sources":["src/components/post-main-navigation/components/level-one-action.component.tsx","src/components/post-main-navigation/post-main-navigation.scss?tag=post-main-navigation&encapsulation=shadow","src/components/post-main-navigation/post-main-navigation.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { NavMainEntity } from '../../../models/header.model';\nimport { translate } from '../../../services/language.service';\n\nexport const LevelOneAction = (props: {\n level: NavMainEntity;\n isOpen: boolean;\n onTouchEnd: (e: any) => void;\n onKeyDown: (e: any) => void;\n onClick: (e: any) => void;\n}) => {\n const TagName = props.level.url ? 'a' : 'button';\n\n return (\n <TagName\n class={{\n 'main-link': true,\n 'active': !!props.level.isActiveOverride,\n 'focus': props.isOpen,\n }}\n href={props.level.url}\n title={\n props.level.title?.trim() && props.level.title?.trim() !== props.level.text?.trim()\n ? props.level.title\n : undefined\n }\n tabindex={props.level.url ? undefined : 0}\n aria-haspopup={!props.level.noFlyout + ''}\n aria-expanded={props.level.noFlyout ? null : props.isOpen + ''}\n onTouchEnd={e => props.onTouchEnd(e)}\n onKeyDown={e => props.onKeyDown(e)}\n onClick={e => props.onClick(e)}\n >\n <span>{props.level.text}</span>\n {props.level.isActiveOverride ? (\n <span class=\"visually-hidden\">{translate('Active navigation element')}</span>\n ) : null}\n <svg aria-hidden=\"true\">\n <use href=\"#pi-pointy-arrow-right\" />\n </svg>\n </TagName>\n );\n};\n","@use '@swisspost/design-system-styles/variables/color';\n@use '@swisspost/design-system-styles/placeholders/text';\n@use '@swisspost/design-system-styles/functions';\n@use '../../utils/utils.scss';\n@use '../../utils/mixins.scss';\n\n:host {\n --host-window-height: var(--window-height, 100vh);\n --calculated-header-height: calc(var(--header-height) + 1px);\n\n display: block;\n min-width: 0;\n height: var(--header-height);\n}\n\n:host(.no-animation) {\n * {\n animation: none !important;\n transition: none !important;\n }\n}\n\n.main-navigation,\n.main-container,\n.main-container li,\n.main-link {\n @include mixins.min(lg) {\n height: 100%;\n }\n}\n\n.main-navigation {\n font-size: functions.px-to-rem(18px);\n\n @include mixins.min(lg) {\n font-size: functions.px-to-rem(16px);\n margin: 0 0.75rem;\n }\n\n @include mixins.min(xl) {\n font-size: functions.px-to-rem(18px);\n }\n\n @include mixins.min(xxl) {\n font-size: functions.px-to-rem(20px);\n }\n\n @include mixins.max(lg) {\n position: absolute;\n top: var(--calculated-header-height);\n left: 0;\n background: white;\n height: calc(var(--host-window-height) - var(--calculated-header-height));\n width: 100%;\n margin: 0;\n overflow: hidden scroll;\n -webkit-overflow-scrolling: touch;\n overscroll-behavior: contain;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n z-index: -1;\n visibility: hidden;\n transform: translateY(-100%);\n transition: transform 0.35s, visibility 0.35s;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &.open {\n transform: translateY(0);\n visibility: visible;\n }\n }\n}\n\n.main-container {\n @extend %no-list;\n\n display: flex;\n align-items: center;\n justify-content: flex-start;\n\n @include mixins.max(lg) {\n flex-direction: column;\n align-items: stretch;\n justify-content: flex-start;\n padding-top: 2.5rem;\n padding-bottom: 2.5rem;\n\n > li + li {\n border-top: 1px solid color.$gray-10;\n }\n }\n\n @include mixins.min(lg) {\n padding-right: 0;\n padding-left: 0;\n }\n\n > li {\n flex: 0 1 auto;\n min-width: 0;\n }\n}\n\n.main-link {\n @extend %nav-link;\n\n display: flex;\n align-items: center;\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n text-align: left;\n cursor: pointer;\n width: 100%;\n\n @include mixins.min(lg) {\n svg {\n display: none;\n }\n }\n\n @include mixins.max(lg) {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-weight: 300;\n padding: 0.625rem 0;\n width: 100%;\n text-align: left;\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.main-link,\n.flyout-link {\n position: relative;\n color: black;\n\n &::after {\n content: '';\n position: absolute;\n bottom: -1px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: transparent;\n opacity: 0;\n transform: scaleX(0.8);\n transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1),\n transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n\n &:hover,\n &.focus {\n &::after {\n background-color: color.$gray-20;\n opacity: 1;\n transform: scale(1);\n }\n }\n\n &.active {\n font-weight: 700;\n\n &::after {\n background-color: color.$yellow;\n opacity: 1;\n transform: scale(1);\n }\n }\n}\n\n.flyout {\n left: 0;\n width: 100%;\n background: white;\n padding-bottom: 3rem;\n overflow: auto;\n overscroll-behavior: contain;\n visibility: hidden;\n\n @include mixins.min(lg) {\n position: absolute;\n top: 100%;\n max-height: calc(100vh - var(--header-height) - var(--meta-header-height) - 1px);\n z-index: -1;\n box-shadow: 0 0 1px 0 rgb(0 0 0 / 40%);\n transform: translateY(-100%);\n\n &.open {\n box-shadow: 0 0 8px 0 rgb(0 0 0 / 40%);\n transform: translateY(0);\n }\n }\n\n @include mixins.max(lg) {\n position: fixed;\n top: 0;\n height: 100%;\n z-index: 1;\n transform: translateX(100%);\n\n &.open {\n transform: translateX(0);\n }\n }\n\n &.open {\n visibility: visible;\n }\n\n &.animate {\n transition: transform 0.35s, visibility 0.35s, box-shadow 0.35s;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n}\n\n.flyout-nav {\n @extend %font-curve-small;\n\n display: flex;\n justify-content: space-between;\n min-height: 3.5rem;\n\n // Change box-sizing to content-box to add 1px border width to flyout-nav hight.\n // This ensures flyout-nav has same hight as main-navigation-container.\n box-sizing: content-box;\n}\n\n.flyout-row {\n display: flex;\n gap: 1.5rem;\n\n @include mixins.max(lg) {\n display: grid;\n grid-template-columns: 1fr 1fr;\n }\n\n @include mixins.max(rg) {\n grid-template-columns: 1fr;\n }\n}\n\n.flyout-column {\n flex: 1;\n max-width: 25%;\n\n @include mixins.max(lg) {\n max-width: none;\n }\n\n h3 {\n @extend %font-curve-small;\n margin-top: 0;\n }\n}\n\n.flyout-back-button {\n @include mixins.container-padding();\n\n display: flex;\n align-items: center;\n font-size: functions.px-to-rem(16px);\n font-weight: 400;\n cursor: pointer;\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n\n @include mixins.min(lg) {\n display: none;\n }\n}\n\n.flyout-close-button {\n @extend %nav-link;\n\n display: flex;\n align-items: center;\n margin-left: auto;\n padding: 0 1.5rem;\n cursor: pointer;\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n\n @include mixins.max(lg) {\n display: none;\n }\n}\n\n.flyout-linklist {\n @extend %no-list;\n\n li {\n border-top: 1px solid color.$gray-10;\n }\n\n &:first-child > li {\n border-top-color: transparent;\n }\n}\n\n.flyout-link {\n @extend %nav-link;\n\n display: block;\n padding: 0.75rem 0;\n}\n\n.flyout-title {\n @extend %font-curve-bigger-regular;\n\n margin: 2.5rem 0 1.5rem 0;\n\n @include mixins.min(lg) {\n display: none;\n }\n}\n","import { Component, Host, h, State, Method, Event, Element, EventEmitter } from '@stencil/core';\nimport { throttle } from 'throttle-debounce';\nimport { state } from '../../data/store';\nimport {\n DropdownElement,\n DropdownEvent,\n HasDropdown,\n IsFocusable,\n NavMainEntity,\n} from '../../models/header.model';\nimport { userPrefersReducedMotion } from '../../services/ui.service';\nimport { translate } from '../../services/language.service';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { LevelOneAction } from './components/level-one-action.component';\n\n@Component({\n tag: 'post-main-navigation',\n styleUrl: 'post-main-navigation.scss',\n shadow: true,\n})\nexport class PostMainNavigation implements HasDropdown, IsFocusable {\n @State() activeFlyout: string | null;\n @State() mobileMenuOpen: boolean;\n @Event() dropdownToggled: EventEmitter<DropdownEvent>;\n @Event() flyoutToggled: EventEmitter<string | null>;\n @Element() host: DropdownElement;\n private throttledResize: throttle<() => void>;\n private resizeTimer: number | null = null;\n private mouseLeaveTimer: number | null = null;\n private mouseEnterTimer: number | null = null;\n\n connectedCallback() {\n this.throttledResize = throttle(300, () => this.handleResize());\n window.addEventListener('resize', this.throttledResize, { passive: true });\n this.setWindowHeight();\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.throttledResize);\n if (this.mouseEnterTimer !== null) window.clearTimeout(this.mouseEnterTimer);\n if (this.mouseLeaveTimer !== null) window.clearTimeout(this.mouseLeaveTimer);\n }\n\n handleResize() {\n // Suspend all animations and transitions on window resize\n this.host.classList.add('no-animation');\n if (this.resizeTimer !== null) window.clearTimeout(this.resizeTimer);\n this.resizeTimer = window.setTimeout(() => {\n this.host.classList.remove('no-animation');\n }, 300);\n\n this.setWindowHeight();\n }\n\n // Update window height var\n setWindowHeight() {\n if (!this.host) {\n return;\n }\n this.host.style.setProperty('--window-height', `${window.innerHeight}px`);\n\n // Safari might or might not show a blank bar at the bottom where the browser\n // controls should be. This timeout waits for this bar to appear before resetting the available height\n window.setTimeout(() => {\n this.host.style.setProperty('--window-height', `${window.innerHeight}px`);\n }, 100);\n }\n\n openFlyout(id: string) {\n const flyout = this.host.shadowRoot?.getElementById(id);\n\n if (flyout && this.activeFlyout !== '') {\n // Add flyout animation if there's no flyout open\n this.addFlyoutAnimation(flyout, 'expand');\n }\n\n this.activeFlyout = id;\n this.flyoutToggled.emit(id);\n this.setWindowHeight();\n\n if (this.mouseLeaveTimer !== null) {\n window.clearTimeout(this.mouseLeaveTimer);\n this.mouseLeaveTimer = null;\n }\n }\n\n closeFlyout(id?: string) {\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');\n }\n\n this.activeFlyout = null;\n this.flyoutToggled.emit();\n }\n\n addFlyoutAnimation(flyout: HTMLElement, direction?: 'expand' | 'collapse') {\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 (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 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);\n }, 300);\n }\n }\n\n handleTouchEnd(event: TouchEvent, level: NavMainEntity) {\n if (!this.isActiveFlyout(level.id) && !level.noFlyout) {\n // It's the first touchstart and has a flyout, prevent link activation and open the flyout\n if (event.cancelable) event.preventDefault();\n if (level.id) this.openFlyout(level.id);\n }\n }\n\n handleKeyPress(event: KeyboardEvent, level: NavMainEntity) {\n if (event.key === 'Enter' && !this.isActiveFlyout(level.id) && !level.noFlyout) {\n // It's the first enter keypress and has a flyout, prevent link activation and open the flyout\n event.preventDefault();\n if (level.id) this.openFlyout(level.id);\n }\n }\n\n handleClick(event: MouseEvent, level: NavMainEntity) {\n if (!this.isActiveFlyout(level.id) && !level.noFlyout) {\n // It's the first click, always open the flyout, never the link\n // This is relevant for desktop with active screenreader which\n // translates an enter keypress to a click\n event.preventDefault();\n if (level.id) this.openFlyout(level.id);\n }\n }\n\n /**\n * Toggle the main navigation (only visible on mobile)\n * @param force Force a state\n * @returns Boolean indicating new state\n */\n @Method()\n async toggleDropdown(force?: boolean) {\n this.mobileMenuOpen = force === undefined ? !this.mobileMenuOpen : force;\n this.dropdownToggled.emit({ open: this.mobileMenuOpen, element: this.host });\n\n if (force === false) {\n this.closeFlyout();\n }\n\n this.setWindowHeight();\n\n return this.mobileMenuOpen;\n }\n\n /**\n * Focus the main navigation toggle button\n */\n @Method()\n async setFocus() {\n const firstLink = this.host.shadowRoot?.querySelector<HTMLElement>('.main-link');\n if (firstLink) {\n firstLink.focus();\n }\n }\n\n /**\n * Open a specific flyout\n * @param id Flyout ID\n */\n @Method()\n async setActiveFlyout(id: string | null) {\n this.activeFlyout = id;\n this.flyoutToggled.emit(this.activeFlyout);\n }\n\n render() {\n if (state.localizedConfig?.header === undefined) return;\n const headerConfig = state.localizedConfig.header;\n\n return (\n <Host>\n <SvgSprite />\n <nav\n aria-label={headerConfig.translations.navMainAriaLabel}\n id=\"post-internet-header-main-navigation\"\n class={{ 'main-navigation': true, 'open': this.mobileMenuOpen }}\n role=\"menu\"\n >\n <ul class=\"main-container container\">\n {headerConfig.navMain.map(levelOne => (\n <li\n key={levelOne.text}\n onMouseLeave={() => this.handleMouseLeave(levelOne)}\n onMouseEnter={() => this.handleMouseEnter(levelOne)}\n >\n <LevelOneAction\n level={levelOne}\n isOpen={this.isActiveFlyout(levelOne.id)}\n onTouchEnd={e => this.handleTouchEnd(e, levelOne)}\n onKeyDown={e => this.handleKeyPress(e, levelOne)}\n onClick={e => this.handleClick(e, levelOne)}\n />\n {!levelOne.noFlyout ? renderLevelOneFlyout.bind(this)(levelOne) : null}\n </li>\n ))}\n </ul>\n <slot></slot>\n </nav>\n </Host>\n );\n\n function renderLevelOneFlyout(levelOne: NavMainEntity) {\n return (\n <div id={levelOne.id} class={{ flyout: true, open: this.isActiveFlyout(levelOne.id) }}>\n <div class=\"wide-container\">\n <div class=\"flyout-nav\">\n <button\n class=\"nav-link flyout-back-button\"\n onClick={() => this.closeFlyout(levelOne.id)}\n >\n <SvgIcon name=\"pi-pointy-arrow-right\" classNames=\"mirrored\" />\n <span>{headerConfig.translations.backButtonText}</span>\n </button>\n <button class=\"flyout-close-button\" onClick={() => this.closeFlyout(levelOne.id)}>\n <span class=\"visually-hidden\">\n {levelOne.text}, {headerConfig.translations.mobileNavToggleClose}\n </span>\n <SvgIcon name=\"pi-close\" />\n </button>\n </div>\n <h2 class=\"flyout-title container\">\n <a href={levelOne.url} class=\"nav-link\">\n {levelOne.text}\n </a>\n </h2>\n <div class=\"flyout-row container\">\n {levelOne.flyout.map((flyout, i) => (\n <div key={flyout.title} class=\"flyout-column\">\n {flyout.title ? <h3 id={`${levelOne.id}-column-${i}`}>{flyout.title}</h3> : null}\n <ul\n class=\"flyout-linklist\"\n aria-labelledby={flyout.title ? `${levelOne.id}-column-${i}` : undefined}\n >\n {flyout.linkList.map(link => (\n <li key={link.url}>\n <a\n class={{\n 'flyout-link': true,\n 'active': !!link?.isActiveOverride,\n }}\n href={link.url}\n target={link.target}\n >\n {link.title}\n {link?.isActiveOverride ? (\n <span class=\"visually-hidden\">\n , {translate('Active navigation element')}\n </span>\n ) : null}\n </a>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
System.register(["./p-5e9ba287.system.js","./p-3819c4ce.system.js","./p-242b61d1.system.js","./p-91035a2a.system.js"],(function(n){"use strict";var t,i,e,o,s,r,l;return{setters:[function(n){t=n.r;i=n.h;e=n.H;o=n.g},function(n){s=n.s},function(n){r=n.t},function(n){l=n.S}],execute:function(){var a=":host{display:block}.skiplinks a{position:absolute;top:0.5rem;left:0.5rem;clip:rect(0 0 0 0);width:1px;overflow:hidden;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0.25rem;background:white}.skiplinks a:focus-visible{clip:unset;width:auto}";var u=n("post_skiplinks",function(){function n(n){t(this,n)}n.prototype.getMainId=function(){var n;return(n=document.querySelector("main[id]"))===null||n===void 0?void 0:n.getAttribute("id")};n.prototype.setFocus=function(n){var t=this.host.closest(".post-internet-header");if(!t){return}var i=t.querySelector(n);if(i){i.setFocus()}};n.prototype.focusMain=function(){this.setFocus("post-main-navigation")};n.prototype.focusSearch=function(){this.setFocus("post-search")};n.prototype.focusLogin=function(){this.setFocus("post-klp-login-widget")};n.prototype.render=function(){var n=this;var t;var o=(t=s.localizedConfig)===null||t===void 0?void 0:t.header;var a=this.getMainId();if(o===undefined){return}return i(e,null,i("div",{class:"skiplinks"},i("ul",{class:"no-list","aria-label":r("Skip Links")},i("li",null,i("a",{class:"nav-link",href:o.logo.logoLink},i("span",null,o.logo.logoLinkTitle),i(l,{name:"pi-pointy-arrow-right"}))),i("li",null,i("a",{class:"nav-link",href:"#post-internet-header-main-navigation",onClick:function(){return n.focusMain()}},i("span",null,o.translations.navMainAriaLabel),i(l,{name:"pi-pointy-arrow-right"}))),a?i("li",null,i("a",{class:"nav-link",href:"#".concat(a)},i("span",null,r("Go to main content")),i(l,{name:"pi-pointy-arrow-right"}))):null,s.search?i("li",null,i("a",{class:"nav-link",href:"#post-internet-header-search-button",onClick:function(){return n.focusSearch()}},i("span",null,r("Go to search")),i(l,{name:"pi-pointy-arrow-right"}))):null,s.login?i("li",null,i("a",{class:"nav-link",href:"#post-klp-login-widget",onClick:function(){return n.focusLogin()}},i("span",null,r("Go to login")),i(l,{name:"pi-pointy-arrow-right"}))):null)))};Object.defineProperty(n.prototype,"host",{get:function(){return o(this)},enumerable:false,configurable:true});return n}());u.style=a}}}));
|
|
2
|
-
//# sourceMappingURL=p-96623613.system.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["postSkiplinksCss","PostSkiplinks","exports","class_1","prototype","getMainId","_a","document","querySelector","getAttribute","setFocus","tagname","rootHost","this","host","closest","focusable","focusMain","focusSearch","focusLogin","render","_this","config","state","localizedConfig","header","mainId","undefined","h","Host","class","translate","href","logo","logoLink","logoLinkTitle","SvgIcon","name","onClick","translations","navMainAriaLabel","concat","search","login"],"sources":["src/components/post-skiplinks/post-skiplinks.scss?tag=post-skiplinks","src/components/post-skiplinks/post-skiplinks.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.skiplinks {\n a {\n position: absolute;\n top: 0.5rem;\n left: 0.5rem;\n clip: rect(0 0 0 0);\n width: 1px;\n overflow: hidden;\n display: flex;\n align-items: center;\n padding: 0.25rem;\n background: white;\n\n &:focus-visible {\n clip: unset;\n width: auto;\n }\n }\n}\n","import { Component, Host, h, Element } from '@stencil/core';\nimport { state } from '../../data/store';\nimport { FocusableElement } from '../../models/header.model';\nimport { translate } from '../../services/language.service';\nimport { SvgIcon } from '../../utils/svg-icon.component';\n\n@Component({\n tag: 'post-skiplinks',\n styleUrl: 'post-skiplinks.scss',\n shadow: false,\n})\nexport class PostSkiplinks {\n @Element() host: HTMLElement;\n\n private getMainId() {\n return document.querySelector('main[id]')?.getAttribute('id');\n }\n\n private setFocus(tagname: string) {\n const rootHost = this.host.closest('.post-internet-header');\n if (!rootHost) {\n return;\n }\n\n const focusable = rootHost.querySelector<FocusableElement>(tagname);\n if (focusable) {\n focusable.setFocus();\n }\n }\n\n private focusMain() {\n this.setFocus('post-main-navigation');\n }\n\n private focusSearch() {\n this.setFocus('post-search');\n }\n\n private focusLogin() {\n this.setFocus('post-klp-login-widget');\n }\n\n render() {\n const config = state.localizedConfig?.header;\n const mainId = this.getMainId();\n\n if (config === undefined) {\n return;\n }\n\n return (\n <Host>\n <div class=\"skiplinks\">\n <ul class=\"no-list\" aria-label={translate('Skip Links')}>\n <li>\n <a class=\"nav-link\" href={config.logo.logoLink}>\n <span>{config.logo.logoLinkTitle}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n <li>\n <a class=\"nav-link\" href=\"#post-internet-header-main-navigation\" onClick={() => this.focusMain()}>\n <span>{config.translations.navMainAriaLabel}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n {mainId ? (\n <li>\n <a class=\"nav-link\" href={`#${mainId}`}>\n <span>{translate('Go to main content')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n {state.search ? (\n <li>\n <a class=\"nav-link\" href=\"#post-internet-header-search-button\" onClick={() => this.focusSearch()}>\n <span>{translate('Go to search')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n {state.login ? (\n <li>\n <a class=\"nav-link\" href=\"#post-klp-login-widget\" onClick={() => this.focusLogin()}>\n <span>{translate('Go to login')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n </ul>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"oSAAA,IAAMA,EAAmB,sR,ICWZC,EAAaC,EAAA,4B,wBAGhBC,EAAAC,UAAAC,UAAA,W,MACN,OAAOC,EAAAC,SAASC,cAAc,eAAW,MAAAF,SAAA,SAAAA,EAAEG,aAAa,K,EAGlDN,EAAAC,UAAAM,SAAA,SAASC,GACf,IAAMC,EAAWC,KAAKC,KAAKC,QAAQ,yBACnC,IAAKH,EAAU,CACb,M,CAGF,IAAMI,EAAYJ,EAASJ,cAAgCG,GAC3D,GAAIK,EAAW,CACbA,EAAUN,U,GAINP,EAAAC,UAAAa,UAAA,WACNJ,KAAKH,SAAS,uB,EAGRP,EAAAC,UAAAc,YAAA,WACNL,KAAKH,SAAS,c,EAGRP,EAAAC,UAAAe,WAAA,WACNN,KAAKH,SAAS,wB,EAGhBP,EAAAC,UAAAgB,OAAA,eAAAC,EAAAR,K,MACE,IAAMS,GAAShB,EAAAiB,EAAMC,mBAAe,MAAAlB,SAAA,SAAAA,EAAEmB,OACtC,IAAMC,EAASb,KAAKR,YAEpB,GAAIiB,IAAWK,UAAW,CACxB,M,CAGF,OACEC,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAM,aACTF,EAAA,MAAIE,MAAM,UAAS,aAAaC,EAAU,eACxCH,EAAA,UACEA,EAAA,KAAGE,MAAM,WAAWE,KAAMV,EAAOW,KAAKC,UACpCN,EAAA,YAAON,EAAOW,KAAKE,eACnBP,EAACQ,EAAO,CAACC,KAAK,4BAGlBT,EAAA,UACEA,EAAA,KAAGE,MAAM,WAAWE,KAAK,wCAAwCM,QAAS,WAAM,OAAAjB,EAAKJ,WAAL,GAC9EW,EAAA,YAAON,EAAOiB,aAAaC,kBAC3BZ,EAACQ,EAAO,CAACC,KAAK,4BAGjBX,EACCE,EAAA,UACEA,EAAA,KAAGE,MAAM,WAAWE,KAAM,IAAAS,OAAIf,IAC5BE,EAAA,YAAOG,EAAU,uBACjBH,EAACQ,EAAO,CAACC,KAAK,4BAGhB,KACHd,EAAMmB,OACLd,EAAA,UACEA,EAAA,KAAGE,MAAM,WAAWE,KAAK,sCAAsCM,QAAS,WAAM,OAAAjB,EAAKH,aAAL,GAC5EU,EAAA,YAAOG,EAAU,iBACjBH,EAACQ,EAAO,CAACC,KAAK,4BAGhB,KACHd,EAAMoB,MACLf,EAAA,UACEA,EAAA,KAAGE,MAAM,WAAWE,KAAK,yBAAyBM,QAAS,WAAM,OAAAjB,EAAKF,YAAL,GAC/DS,EAAA,YAAOG,EAAU,gBACjBH,EAACQ,EAAO,CAACC,KAAK,4BAGhB,O,yHA9EU,I"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,h as t,H as i}from"./p-2945db6c.js";import{s as a}from"./p-22e64bf2.js";const n='@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:700;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:400;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:300;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff") format("woff")}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", system-ui, sans-serif}button{font:inherit;padding:0}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:white}}.meta-list,.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}.btn-blank{background-color:transparent;border:none;border-radius:0;padding:0}.meta-link,.nav-link{text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.meta-link:hover,.nav-link:hover,.meta-link:focus,.nav-link:focus{color:black}.meta-link>svg,.nav-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.meta-link>span,.nav-link>span{-ms-flex-negative:1;flex-shrink:1}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width: -0.02px){.hidden-xs{display:none}}@media (max-width: 399.98px){.hidden-sm{display:none}}@media (max-width: 599.98px){.hidden-rg{display:none}}@media (max-width: 779.98px){.hidden-md{display:none}}@media (max-width: 1023.98px){.hidden-lg{display:none}}@media (max-width: 1279.98px){.hidden-xl{display:none}}@media (max-width: 1440.98px){.hidden-xxl{display:none}}:host{display:block;background:#faf9f8;font-size:0.875rem}.meta-container{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-align:center;align-items:center;min-height:3rem}@media (min-width: 1441px){.meta-container:not(.full-width){margin:0 auto;max-width:1440px}}.meta-container.vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;padding-top:2.5rem;padding-bottom:2.5rem}@media (max-width: 599.98px){.meta-container.vertical{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.meta-container.vertical{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.meta-container.vertical{padding-right:40px;padding-left:40px}}@media (min-width: 1024px){.meta-container.vertical{display:none}}.meta-container.horizontal ::slotted(*){--separator-display:block;--separator-height:2.125rem}.horizontal .meta-navigation{padding-right:1rem}.meta-list{display:-ms-flexbox;display:flex}.vertical .meta-list{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start}.meta-link{font-size:0.875rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0 0.5rem;min-height:2.125rem;border-radius:3px}.meta-link.active{background:#fc0;color:black}.vertical .meta-link{color:black;padding:0}.vertical .meta-link.active{padding:0 0.5rem;margin-left:-0.5rem}';const o=class{constructor(t){e(this,t);this.orientation=undefined;this.fullWidth=false}render(){var e,n;if(((e=a.localizedConfig)===null||e===void 0?void 0:e.header.navMeta)===undefined)return;const o=a.localizedConfig.header;return t(i,null,t("div",{class:`meta-container ${this.orientation}${this.fullWidth?" full-width":""}`},t("nav",{"aria-label":o.translations.navMetaAriaLabel,class:"meta-navigation"},t("ul",{class:"meta-list"},(n=o.navMeta)===null||n===void 0?void 0:n.filter((e=>!e.isHomeLink)).map((e=>t("li",{key:e.url},t("a",{class:{active:e.isActive,"meta-link":true},target:e.target,href:e.url},t("span",{"aria-hidden":"true"},e.text))))))),t("slot",null)))}};o.style=n;export{o as post_meta_navigation};
|
|
2
|
-
//# sourceMappingURL=p-99228f51.entry.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{h as t,r as e,c as n,H as o,g as i}from"./p-2945db6c.js";import{S as a}from"./p-e2db30e1.js";import{S as r}from"./p-32fe68f0.js";import{s}from"./p-22e64bf2.js";import{e as d,u as l}from"./p-45db66a6.js";import{t as g}from"./p-6582303e.js";const p=e=>{var n;if(((n=s.localizedConfig)===null||n===void 0?void 0:n.header)===undefined)return;const o=s.localizedConfig.header;return t("nav",{class:"language-switch-dropdown",ref:t=>e.dropdownRef(t),"aria-label":o.translations.navLangAriaLabel},t("ul",{"aria-label":g("Change language")},e.navLang.filter((t=>!t.isCurrent)).map((n=>{const o=n.url===null?"button":"a";return t("li",{key:n.lang},t(o,{onClick:()=>e.switchLanguage(n),href:n.url,lang:n.lang,title:n.title},t("span",{class:"visually-hidden"},n.title),t("span",{"aria-hidden":"true"},n.text)))}))))};const f='@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:700;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:400;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:300;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff") format("woff")}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", system-ui, sans-serif}button{font:inherit;padding:0}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:white}}.language-switch-dropdown ul,.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}.btn-blank{background-color:transparent;border:none;border-radius:0;padding:0}.language-switch-dropdown a,.language-switch-dropdown button,.nav-link{text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.language-switch-dropdown a:hover,.language-switch-dropdown button:hover,.nav-link:hover,.language-switch-dropdown a:focus,.language-switch-dropdown button:focus,.nav-link:focus{color:black}.language-switch-dropdown a>svg,.language-switch-dropdown button>svg,.nav-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.language-switch-dropdown a>span,.language-switch-dropdown button>span,.nav-link>span{-ms-flex-negative:1;flex-shrink:1}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width: -0.02px){.hidden-xs{display:none}}@media (max-width: 399.98px){.hidden-sm{display:none}}@media (max-width: 599.98px){.hidden-rg{display:none}}@media (max-width: 779.98px){.hidden-md{display:none}}@media (max-width: 1023.98px){.hidden-lg{display:none}}@media (max-width: 1279.98px){.hidden-xl{display:none}}@media (max-width: 1440.98px){.hidden-xxl{display:none}}:host{--separator-display:none;--separator-height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;align-self:stretch}:host::before{display:var(--separator-display);height:var(--separator-height);border-left:1px solid hsl(0, 0%, 90%);content:""}.lang-btn{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:100%;padding:0 1rem;border:none;-webkit-box-shadow:none;box-shadow:none;background:none;text-transform:uppercase;cursor:pointer;color:rgba(0, 0, 0, 0.8)}.lang-btn:hover,.lang-btn:focus{color:black}.lang-btn svg{width:1.5em;height:1.5em;-webkit-transition:-webkit-transform 250ms;transition:-webkit-transform 250ms;transition:transform 250ms;transition:transform 250ms, -webkit-transform 250ms}.lang-btn svg.rotated{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.language-switch{position:relative;-ms-flex-item-align:stretch;align-self:stretch;height:100%}.language-switch.list{margin-top:1.5rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.current-language{text-transform:uppercase;border-right:1px solid hsl(0, 0%, 80%);padding:0.5rem 1rem 0.5rem 0}.dropdown .language-switch-dropdown{position:absolute;top:100%;width:100%;background:white;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2), 0 2px 6px 2px rgba(0, 0, 0, 0.1);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2), 0 2px 6px 2px rgba(0, 0, 0, 0.1);z-index:1;-webkit-transform:scale(0.1);transform:scale(0.1);-webkit-transform-origin:center top;transform-origin:center top;-webkit-transition:-webkit-transform 0.1s;transition:-webkit-transform 0.1s;transition:transform 0.1s;transition:transform 0.1s, -webkit-transform 0.1s;margin-top:var(--language-dropdown-margin-top)}@media (prefers-reduced-motion: reduce){.dropdown .language-switch-dropdown{-webkit-transition:none;transition:none}}.dropdown .language-switch-dropdown.open{-webkit-transform:scale(1);transform:scale(1)}.list .language-switch-dropdown ul{display:-ms-flexbox;display:flex}.list .language-switch-dropdown ul>li+li{border-left:1px solid hsl(0, 0%, 80%)}.language-switch-dropdown a,.language-switch-dropdown button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:3rem;padding:0 0.25rem;text-transform:uppercase;cursor:pointer;-webkit-transition:background-color 200ms, color 200ms;transition:background-color 200ms, color 200ms}.language-switch-dropdown a:hover,.language-switch-dropdown a:focus,.language-switch-dropdown button:hover,.language-switch-dropdown button:focus{background:#f4f3f1}.language-switch-dropdown a span,.language-switch-dropdown button span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.list .language-switch-dropdown a,.list .language-switch-dropdown button{color:black;height:auto;padding:0.5rem 1rem}';const h=class{constructor(t){e(this,t);this.dropdownToggled=n(this,"dropdownToggled",7);this.languageChanged=n(this,"languageChanged",7);this.mode=undefined;this.langSwitchOpen=false}componentWillUpdate(){if(this.languageSwitchDropdown&&!this.langSwitchOpen&&this.mode=="dropdown"){this.languageSwitchDropdown.classList.remove("open");if(d(this.languageSwitchDropdown,"transform")&&!l()){return new Promise((t=>{var e;(e=this.languageSwitchDropdown)===null||e===void 0?void 0:e.addEventListener("transitionend",(e=>{if(e.propertyName==="transform"){t(true)}}))}))}}}componentDidUpdate(){if(this.languageSwitchDropdown&&this.langSwitchOpen){this.languageSwitchDropdown.getBoundingClientRect();this.languageSwitchDropdown.classList.add("open")}}async toggleDropdown(t){this.langSwitchOpen=t!==null&&t!==void 0?t:!this.langSwitchOpen;this.dropdownToggled.emit({open:this.langSwitchOpen,element:this.host});return this.langSwitchOpen}switchLanguage(t){this.languageChanged.emit(t.lang);this.toggleDropdown(false)}getMergedLanguageConfig(t,e){if(e===undefined){return t}return t.map((t=>Object.assign({},t,e.find((e=>e.lang===t.lang)))))}setDropdownRef(t){this.languageSwitchDropdown=t}render(){var e;if(((e=s.localizedConfig)===null||e===void 0?void 0:e.header)===undefined)return;const n=s.localizedConfig.header;const i=this.getMergedLanguageConfig(n.navLang,s.languageSwitchOverrides);return t(o,null,t("div",{class:`language-switch ${this.mode}`},t(a,null),this.mode==="dropdown"?t("button",{class:"lang-btn","aria-expanded":`${this.langSwitchOpen}`,"aria-haspopup":"listbox",onClick:()=>this.toggleDropdown()},t("span",{class:"visually-hidden"},n.translations.navLangAriaLabel,", ",g("Current language is English")),t("span",{"aria-hidden":"true"},s.currentLanguage),t(r,{name:"pi-arrow-down",classNames:this.langSwitchOpen?"rotated":""})):t("span",{class:"bold current-language"},t("span",{class:"visually-hidden"},g("Current language is English")),t("span",null,s.currentLanguage)),this.langSwitchOpen||this.mode==="list"?t(p,{navLang:i,switchLanguage:t=>this.switchLanguage(t),dropdownRef:t=>t!==undefined&&this.setDropdownRef(t)}):null))}get host(){return i(this)}};h.style=f;export{h as post_language_switch};
|
|
2
|
-
//# sourceMappingURL=p-9a6083cb.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["PostLanguageSwitchList","props","_a","state","localizedConfig","header","undefined","config","h","class","ref","e","dropdownRef","translations","navLangAriaLabel","translate","navLang","filter","lang","isCurrent","map","TagName","url","key","onClick","switchLanguage","href","title","text","postLanguageSwitchCss","PostLanguageSwitch","componentWillUpdate","this","languageSwitchDropdown","langSwitchOpen","mode","classList","remove","elementHasTransition","userPrefersReducedMotion","Promise","resolve","addEventListener","event","propertyName","componentDidUpdate","getBoundingClientRect","add","async","force","dropdownToggled","emit","open","element","host","newLang","languageChanged","toggleDropdown","getMergedLanguageConfig","overrides","langConfig","Object","assign","find","l","setDropdownRef","render","mergedConfig","languageSwitchOverrides","Host","SvgSprite","currentLanguage","SvgIcon","name","classNames"],"sources":["./src/components/post-language-switch/components/post-language-switch-list.tsx","./src/components/post-language-switch/post-language-switch.scss?tag=post-language-switch&encapsulation=shadow","./src/components/post-language-switch/post-language-switch.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { NavLangEntity } from '../../../models/header.model';\nimport { translate } from '../../../services/language.service';\nimport { state } from '../../../data/store';\n\nexport const PostLanguageSwitchList = (props: {\n navLang: NavLangEntity[];\n switchLanguage: (lang: NavLangEntity) => void;\n dropdownRef: (element: HTMLElement | undefined) => void;\n}) => {\n if (state.localizedConfig?.header === undefined) return;\n const config = state.localizedConfig.header;\n\n return (\n <nav\n class=\"language-switch-dropdown\"\n ref={e => props.dropdownRef(e)}\n aria-label={config.translations.navLangAriaLabel}\n >\n <ul aria-label={translate('Change language')}>\n {props.navLang\n .filter(lang => !lang.isCurrent)\n .map(lang => {\n const TagName = lang.url === null ? 'button' : 'a';\n return (\n <li key={lang.lang}>\n <TagName\n onClick={() => props.switchLanguage(lang)}\n href={lang.url}\n lang={lang.lang}\n title={lang.title}\n >\n <span class=\"visually-hidden\">{lang.title}</span>\n <span aria-hidden=\"true\">{lang.text}</span>\n </TagName>\n </li>\n );\n })}\n </ul>\n </nav>\n );\n};\n","@use \"@swisspost/design-system-styles/variables/color\";\n@use \"@swisspost/design-system-styles/functions\";\n@use \"../../utils/utils.scss\";\n\n:host {\n --separator-display: none;\n --separator-height: 100%;\n\n display: flex;\n align-items: center;\n align-self: stretch;\n\n &::before {\n display: var(--separator-display);\n height: var(--separator-height);\n border-left: 1px solid color.$gray-10;\n content: '';\n }\n}\n\n.lang-btn {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 1rem;\n border: none;\n box-shadow: none;\n background: none;\n text-transform: uppercase;\n cursor: pointer;\n color: rgba(color.$black, 0.8);\n\n &:hover,\n &:focus {\n color: black;\n }\n\n svg {\n width: 1.5em;\n height: 1.5em;\n transition: transform 250ms;\n\n &.rotated {\n transform: rotate(180deg);\n }\n }\n}\n\n.language-switch {\n position: relative;\n align-self: stretch;\n height: 100%;\n\n &.list {\n margin-top: 1.5rem;\n display: flex;\n align-items: center;\n }\n}\n\n.current-language {\n text-transform: uppercase;\n border-right: 1px solid color.$gray-20;\n padding: 0.5rem 1rem 0.5rem 0;\n}\n\n.language-switch-dropdown {\n .dropdown & {\n position: absolute;\n top: 100%;\n width: 100%;\n background: white;\n box-shadow: 0 1px 2px rgb(0 0 0 / 20%), 0 2px 6px 2px rgb(0 0 0 / 10%);\n z-index: 1;\n transform: scale(0.1);\n transform-origin: center top;\n transition: transform 0.1s;\n margin-top: var(--language-dropdown-margin-top);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &.open {\n transform: scale(1);\n }\n }\n\n ul {\n @extend %no-list;\n\n .list & {\n display: flex;\n\n > li + li {\n border-left: 1px solid color.$gray-20;\n }\n }\n }\n\n a,\n button {\n @extend %nav-link;\n\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: functions.px-to-rem(48px);\n padding: 0 0.25rem;\n text-transform: uppercase;\n cursor: pointer;\n transition: background-color 200ms, color 200ms;\n\n &:hover,\n &:focus {\n background: color.$gray-background;\n }\n\n span {\n // Worst case scenario\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n .list & {\n color: black;\n height: auto;\n padding: 0.5rem 1rem;\n }\n }\n}\n","import {\n Component,\n Event,\n Host,\n h,\n Method,\n EventEmitter,\n State,\n Prop,\n Element,\n} from '@stencil/core';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { state } from '../../data/store';\nimport {\n DropdownElement,\n DropdownEvent,\n HasDropdown,\n NavLangEntity,\n} from '../../models/header.model';\nimport { userPrefersReducedMotion, elementHasTransition } from '../../services/ui.service';\nimport { translate } from '../../services/language.service';\nimport { PostLanguageSwitchList } from './components/post-language-switch-list';\nimport { IAvailableLanguage } from '../../models/language.model';\n\n@Component({\n tag: 'post-language-switch',\n styleUrl: 'post-language-switch.scss',\n shadow: true,\n})\nexport class PostLanguageSwitch implements HasDropdown {\n @Prop() mode: 'dropdown' | 'list';\n @State() langSwitchOpen = false;\n @Element() host: DropdownElement;\n @Event() dropdownToggled: EventEmitter<DropdownEvent>;\n @Event({ bubbles: true }) languageChanged: EventEmitter<string>;\n private languageSwitchDropdown: HTMLElement | undefined;\n\n componentWillUpdate() {\n // Check if language switch got set to close and if mode is dropdown\n if (this.languageSwitchDropdown && !this.langSwitchOpen && this.mode == 'dropdown') {\n this.languageSwitchDropdown.classList.remove('open');\n\n // Check if element has transition applied and whether user prefers to see animations or not\n if (\n elementHasTransition(this.languageSwitchDropdown, 'transform') &&\n !userPrefersReducedMotion()\n ) {\n // Wait for CSS transition 'transform' to end before continuing\n return new Promise<boolean>(resolve => {\n this.languageSwitchDropdown?.addEventListener('transitionend', event => {\n if (event.propertyName === 'transform') {\n resolve(true);\n }\n });\n });\n }\n }\n }\n\n componentDidUpdate() {\n // Language switch got set to open\n if (this.languageSwitchDropdown && this.langSwitchOpen) {\n // Force browser to redraw/refresh DOM before adding 'open' class\n this.languageSwitchDropdown.getBoundingClientRect();\n this.languageSwitchDropdown.classList.add('open');\n }\n }\n\n /**\n * Open or close the language switch programatically\n * @param force Boolean to force a state\n * @returns Boolean indicating new state\n */\n @Method()\n async toggleDropdown(force?: boolean) {\n this.langSwitchOpen = force ?? !this.langSwitchOpen;\n this.dropdownToggled.emit({ open: this.langSwitchOpen, element: this.host });\n return this.langSwitchOpen;\n }\n\n /**\n * Emit a language change to the parent component\n *\n * @param newLang Config of the new language\n */\n switchLanguage(newLang: NavLangEntity) {\n this.languageChanged.emit(newLang.lang);\n this.toggleDropdown(false);\n }\n\n private getMergedLanguageConfig(config: NavLangEntity[], overrides?: IAvailableLanguage[]) {\n if (overrides === undefined) {\n return config;\n }\n\n return config.map(langConfig =>\n Object.assign(\n {},\n langConfig,\n overrides.find(l => l.lang === langConfig.lang),\n ),\n );\n }\n\n private setDropdownRef(element: HTMLElement | undefined) {\n this.languageSwitchDropdown = element;\n }\n\n render() {\n if (state.localizedConfig?.header === undefined) return;\n const config = state.localizedConfig.header;\n const mergedConfig = this.getMergedLanguageConfig(\n config.navLang,\n state.languageSwitchOverrides,\n );\n\n return (\n <Host>\n <div class={`language-switch ${this.mode}`}>\n <SvgSprite />\n {this.mode === 'dropdown' ? (\n <button\n class=\"lang-btn\"\n aria-expanded={`${this.langSwitchOpen}`}\n aria-haspopup=\"listbox\"\n onClick={() => this.toggleDropdown()}\n >\n <span class=\"visually-hidden\">\n {config.translations.navLangAriaLabel}, {translate('Current language is English')}\n </span>\n <span aria-hidden=\"true\">{state.currentLanguage}</span>\n <SvgIcon name=\"pi-arrow-down\" classNames={this.langSwitchOpen ? 'rotated' : ''} />\n </button>\n ) : (\n <span class=\"bold current-language\">\n <span class=\"visually-hidden\">{translate('Current language is English')}</span>\n <span>{state.currentLanguage}</span>\n </span>\n )}\n {this.langSwitchOpen || this.mode === 'list' ? (\n <PostLanguageSwitchList\n navLang={mergedConfig}\n switchLanguage={e => this.switchLanguage(e)}\n dropdownRef={e => e !== undefined && this.setDropdownRef(e)}\n />\n ) : null}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(n,t,e,o){function a(n){return n instanceof e?n:new e((function(t){t(n)}))}return new(e||(e=Promise))((function(e,i){function r(n){try{l(o.next(n))}catch(n){i(n)}}function s(n){try{l(o["throw"](n))}catch(n){i(n)}}function l(n){n.done?e(n.value):a(n.value).then(r,s)}l((o=o.apply(n,t||[])).next())}))};var __generator=this&&this.__generator||function(n,t){var e={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},o,a,i,r;return r={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(r[Symbol.iterator]=function(){return this}),r;function s(n){return function(t){return l([n,t])}}function l(s){if(o)throw new TypeError("Generator is already executing.");while(r&&(r=0,s[0]&&(e=0)),e)try{if(o=1,a&&(i=s[0]&2?a["return"]:s[0]?a["throw"]||((i=a["return"])&&i.call(a),0):a.next)&&!(i=i.call(a,s[1])).done)return i;if(a=0,i)s=[s[0]&2,i.value];switch(s[0]){case 0:case 1:i=s;break;case 4:e.label++;return{value:s[1],done:false};case 5:e.label++;a=s[1];s=[0];continue;case 7:s=e.ops.pop();e.trys.pop();continue;default:if(!(i=e.trys,i=i.length>0&&i[i.length-1])&&(s[0]===6||s[0]===2)){e=0;continue}if(s[0]===3&&(!i||s[1]>i[0]&&s[1]<i[3])){e.label=s[1];break}if(s[0]===6&&e.label<i[1]){e.label=i[1];i=s;break}if(i&&e.label<i[2]){e.label=i[2];e.ops.push(s);break}if(i[2])e.ops.pop();e.trys.pop();continue}s=t.call(n,e)}catch(n){s=[6,n];a=0}finally{o=i=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:true}}};System.register(["./p-5e9ba287.system.js","./p-4d015bfc.system.js","./p-91035a2a.system.js","./p-3819c4ce.system.js","./p-88aac12c.system.js","./p-242b61d1.system.js"],(function(n){"use strict";var t,e,o,a,i,r,s,l,d,g,u;return{setters:[function(n){t=n.h;e=n.r;o=n.c;a=n.H;i=n.g},function(n){r=n.S},function(n){s=n.S},function(n){l=n.s},function(n){d=n.e;g=n.u},function(n){u=n.t}],execute:function(){var p=function(n){var e;if(((e=l.localizedConfig)===null||e===void 0?void 0:e.header)===undefined)return;var o=l.localizedConfig.header;return t("nav",{class:"language-switch-dropdown",ref:function(t){return n.dropdownRef(t)},"aria-label":o.translations.navLangAriaLabel},t("ul",{"aria-label":u("Change language")},n.navLang.filter((function(n){return!n.isCurrent})).map((function(e){var o=e.url===null?"button":"a";return t("li",{key:e.lang},t(o,{onClick:function(){return n.switchLanguage(e)},href:e.url,lang:e.lang,title:e.title},t("span",{class:"visually-hidden"},e.title),t("span",{"aria-hidden":"true"},e.text)))}))))};var f='@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:700;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:400;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:300;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff") format("woff")}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", system-ui, sans-serif}button{font:inherit;padding:0}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:white}}.language-switch-dropdown ul,.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}.btn-blank{background-color:transparent;border:none;border-radius:0;padding:0}.language-switch-dropdown a,.language-switch-dropdown button,.nav-link{text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.language-switch-dropdown a:hover,.language-switch-dropdown button:hover,.nav-link:hover,.language-switch-dropdown a:focus,.language-switch-dropdown button:focus,.nav-link:focus{color:black}.language-switch-dropdown a>svg,.language-switch-dropdown button>svg,.nav-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.language-switch-dropdown a>span,.language-switch-dropdown button>span,.nav-link>span{-ms-flex-negative:1;flex-shrink:1}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width: -0.02px){.hidden-xs{display:none}}@media (max-width: 399.98px){.hidden-sm{display:none}}@media (max-width: 599.98px){.hidden-rg{display:none}}@media (max-width: 779.98px){.hidden-md{display:none}}@media (max-width: 1023.98px){.hidden-lg{display:none}}@media (max-width: 1279.98px){.hidden-xl{display:none}}@media (max-width: 1440.98px){.hidden-xxl{display:none}}:host{--separator-display:none;--separator-height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;align-self:stretch}:host::before{display:var(--separator-display);height:var(--separator-height);border-left:1px solid hsl(0, 0%, 90%);content:""}.lang-btn{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:100%;padding:0 1rem;border:none;-webkit-box-shadow:none;box-shadow:none;background:none;text-transform:uppercase;cursor:pointer;color:rgba(0, 0, 0, 0.8)}.lang-btn:hover,.lang-btn:focus{color:black}.lang-btn svg{width:1.5em;height:1.5em;-webkit-transition:-webkit-transform 250ms;transition:-webkit-transform 250ms;transition:transform 250ms;transition:transform 250ms, -webkit-transform 250ms}.lang-btn svg.rotated{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.language-switch{position:relative;-ms-flex-item-align:stretch;align-self:stretch;height:100%}.language-switch.list{margin-top:1.5rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.current-language{text-transform:uppercase;border-right:1px solid hsl(0, 0%, 80%);padding:0.5rem 1rem 0.5rem 0}.dropdown .language-switch-dropdown{position:absolute;top:100%;width:100%;background:white;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2), 0 2px 6px 2px rgba(0, 0, 0, 0.1);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2), 0 2px 6px 2px rgba(0, 0, 0, 0.1);z-index:1;-webkit-transform:scale(0.1);transform:scale(0.1);-webkit-transform-origin:center top;transform-origin:center top;-webkit-transition:-webkit-transform 0.1s;transition:-webkit-transform 0.1s;transition:transform 0.1s;transition:transform 0.1s, -webkit-transform 0.1s;margin-top:var(--language-dropdown-margin-top)}@media (prefers-reduced-motion: reduce){.dropdown .language-switch-dropdown{-webkit-transition:none;transition:none}}.dropdown .language-switch-dropdown.open{-webkit-transform:scale(1);transform:scale(1)}.list .language-switch-dropdown ul{display:-ms-flexbox;display:flex}.list .language-switch-dropdown ul>li+li{border-left:1px solid hsl(0, 0%, 80%)}.language-switch-dropdown a,.language-switch-dropdown button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:3rem;padding:0 0.25rem;text-transform:uppercase;cursor:pointer;-webkit-transition:background-color 200ms, color 200ms;transition:background-color 200ms, color 200ms}.language-switch-dropdown a:hover,.language-switch-dropdown a:focus,.language-switch-dropdown button:hover,.language-switch-dropdown button:focus{background:#f4f3f1}.language-switch-dropdown a span,.language-switch-dropdown button span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.list .language-switch-dropdown a,.list .language-switch-dropdown button{color:black;height:auto;padding:0.5rem 1rem}';var c=n("post_language_switch",function(){function n(n){e(this,n);this.dropdownToggled=o(this,"dropdownToggled",7);this.languageChanged=o(this,"languageChanged",7);this.mode=undefined;this.langSwitchOpen=false}n.prototype.componentWillUpdate=function(){var n=this;if(this.languageSwitchDropdown&&!this.langSwitchOpen&&this.mode=="dropdown"){this.languageSwitchDropdown.classList.remove("open");if(d(this.languageSwitchDropdown,"transform")&&!g()){return new Promise((function(t){var e;(e=n.languageSwitchDropdown)===null||e===void 0?void 0:e.addEventListener("transitionend",(function(n){if(n.propertyName==="transform"){t(true)}}))}))}}};n.prototype.componentDidUpdate=function(){if(this.languageSwitchDropdown&&this.langSwitchOpen){this.languageSwitchDropdown.getBoundingClientRect();this.languageSwitchDropdown.classList.add("open")}};n.prototype.toggleDropdown=function(n){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){this.langSwitchOpen=n!==null&&n!==void 0?n:!this.langSwitchOpen;this.dropdownToggled.emit({open:this.langSwitchOpen,element:this.host});return[2,this.langSwitchOpen]}))}))};n.prototype.switchLanguage=function(n){this.languageChanged.emit(n.lang);this.toggleDropdown(false)};n.prototype.getMergedLanguageConfig=function(n,t){if(t===undefined){return n}return n.map((function(n){return Object.assign({},n,t.find((function(t){return t.lang===n.lang})))}))};n.prototype.setDropdownRef=function(n){this.languageSwitchDropdown=n};n.prototype.render=function(){var n=this;var e;if(((e=l.localizedConfig)===null||e===void 0?void 0:e.header)===undefined)return;var o=l.localizedConfig.header;var i=this.getMergedLanguageConfig(o.navLang,l.languageSwitchOverrides);return t(a,null,t("div",{class:"language-switch ".concat(this.mode)},t(r,null),this.mode==="dropdown"?t("button",{class:"lang-btn","aria-expanded":"".concat(this.langSwitchOpen),"aria-haspopup":"listbox",onClick:function(){return n.toggleDropdown()}},t("span",{class:"visually-hidden"},o.translations.navLangAriaLabel,", ",u("Current language is English")),t("span",{"aria-hidden":"true"},l.currentLanguage),t(s,{name:"pi-arrow-down",classNames:this.langSwitchOpen?"rotated":""})):t("span",{class:"bold current-language"},t("span",{class:"visually-hidden"},u("Current language is English")),t("span",null,l.currentLanguage)),this.langSwitchOpen||this.mode==="list"?t(p,{navLang:i,switchLanguage:function(t){return n.switchLanguage(t)},dropdownRef:function(t){return t!==undefined&&n.setDropdownRef(t)}}):null))};Object.defineProperty(n.prototype,"host",{get:function(){return i(this)},enumerable:false,configurable:true});return n}());c.style=f}}}));
|
|
2
|
-
//# sourceMappingURL=p-afdd23a8.system.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["PostLanguageSwitchList","props","_a","state","localizedConfig","header","undefined","config","h","class","ref","e","dropdownRef","translations","navLangAriaLabel","translate","navLang","filter","lang","isCurrent","map","TagName","url","key","onClick","switchLanguage","href","title","text","postLanguageSwitchCss","PostLanguageSwitch","exports","class_1","prototype","componentWillUpdate","_this","this","languageSwitchDropdown","langSwitchOpen","mode","classList","remove","elementHasTransition","userPrefersReducedMotion","Promise","resolve","addEventListener","event","propertyName","componentDidUpdate","getBoundingClientRect","add","toggleDropdown","force","dropdownToggled","emit","open","element","host","newLang","languageChanged","getMergedLanguageConfig","overrides","langConfig","Object","assign","find","l","setDropdownRef","render","mergedConfig","languageSwitchOverrides","Host","concat","SvgSprite","currentLanguage","SvgIcon","name","classNames"],"sources":["src/components/post-language-switch/components/post-language-switch-list.tsx","src/components/post-language-switch/post-language-switch.scss?tag=post-language-switch&encapsulation=shadow","src/components/post-language-switch/post-language-switch.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { NavLangEntity } from '../../../models/header.model';\nimport { translate } from '../../../services/language.service';\nimport { state } from '../../../data/store';\n\nexport const PostLanguageSwitchList = (props: {\n navLang: NavLangEntity[];\n switchLanguage: (lang: NavLangEntity) => void;\n dropdownRef: (element: HTMLElement | undefined) => void;\n}) => {\n if (state.localizedConfig?.header === undefined) return;\n const config = state.localizedConfig.header;\n\n return (\n <nav\n class=\"language-switch-dropdown\"\n ref={e => props.dropdownRef(e)}\n aria-label={config.translations.navLangAriaLabel}\n >\n <ul aria-label={translate('Change language')}>\n {props.navLang\n .filter(lang => !lang.isCurrent)\n .map(lang => {\n const TagName = lang.url === null ? 'button' : 'a';\n return (\n <li key={lang.lang}>\n <TagName\n onClick={() => props.switchLanguage(lang)}\n href={lang.url}\n lang={lang.lang}\n title={lang.title}\n >\n <span class=\"visually-hidden\">{lang.title}</span>\n <span aria-hidden=\"true\">{lang.text}</span>\n </TagName>\n </li>\n );\n })}\n </ul>\n </nav>\n );\n};\n","@use \"@swisspost/design-system-styles/variables/color\";\n@use \"@swisspost/design-system-styles/functions\";\n@use \"../../utils/utils.scss\";\n\n:host {\n --separator-display: none;\n --separator-height: 100%;\n\n display: flex;\n align-items: center;\n align-self: stretch;\n\n &::before {\n display: var(--separator-display);\n height: var(--separator-height);\n border-left: 1px solid color.$gray-10;\n content: '';\n }\n}\n\n.lang-btn {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 1rem;\n border: none;\n box-shadow: none;\n background: none;\n text-transform: uppercase;\n cursor: pointer;\n color: rgba(color.$black, 0.8);\n\n &:hover,\n &:focus {\n color: black;\n }\n\n svg {\n width: 1.5em;\n height: 1.5em;\n transition: transform 250ms;\n\n &.rotated {\n transform: rotate(180deg);\n }\n }\n}\n\n.language-switch {\n position: relative;\n align-self: stretch;\n height: 100%;\n\n &.list {\n margin-top: 1.5rem;\n display: flex;\n align-items: center;\n }\n}\n\n.current-language {\n text-transform: uppercase;\n border-right: 1px solid color.$gray-20;\n padding: 0.5rem 1rem 0.5rem 0;\n}\n\n.language-switch-dropdown {\n .dropdown & {\n position: absolute;\n top: 100%;\n width: 100%;\n background: white;\n box-shadow: 0 1px 2px rgb(0 0 0 / 20%), 0 2px 6px 2px rgb(0 0 0 / 10%);\n z-index: 1;\n transform: scale(0.1);\n transform-origin: center top;\n transition: transform 0.1s;\n margin-top: var(--language-dropdown-margin-top);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &.open {\n transform: scale(1);\n }\n }\n\n ul {\n @extend %no-list;\n\n .list & {\n display: flex;\n\n > li + li {\n border-left: 1px solid color.$gray-20;\n }\n }\n }\n\n a,\n button {\n @extend %nav-link;\n\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: functions.px-to-rem(48px);\n padding: 0 0.25rem;\n text-transform: uppercase;\n cursor: pointer;\n transition: background-color 200ms, color 200ms;\n\n &:hover,\n &:focus {\n background: color.$gray-background;\n }\n\n span {\n // Worst case scenario\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n .list & {\n color: black;\n height: auto;\n padding: 0.5rem 1rem;\n }\n }\n}\n","import {\n Component,\n Event,\n Host,\n h,\n Method,\n EventEmitter,\n State,\n Prop,\n Element,\n} from '@stencil/core';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { state } from '../../data/store';\nimport {\n DropdownElement,\n DropdownEvent,\n HasDropdown,\n NavLangEntity,\n} from '../../models/header.model';\nimport { userPrefersReducedMotion, elementHasTransition } from '../../services/ui.service';\nimport { translate } from '../../services/language.service';\nimport { PostLanguageSwitchList } from './components/post-language-switch-list';\nimport { IAvailableLanguage } from '../../models/language.model';\n\n@Component({\n tag: 'post-language-switch',\n styleUrl: 'post-language-switch.scss',\n shadow: true,\n})\nexport class PostLanguageSwitch implements HasDropdown {\n @Prop() mode: 'dropdown' | 'list';\n @State() langSwitchOpen = false;\n @Element() host: DropdownElement;\n @Event() dropdownToggled: EventEmitter<DropdownEvent>;\n @Event({ bubbles: true }) languageChanged: EventEmitter<string>;\n private languageSwitchDropdown: HTMLElement | undefined;\n\n componentWillUpdate() {\n // Check if language switch got set to close and if mode is dropdown\n if (this.languageSwitchDropdown && !this.langSwitchOpen && this.mode == 'dropdown') {\n this.languageSwitchDropdown.classList.remove('open');\n\n // Check if element has transition applied and whether user prefers to see animations or not\n if (\n elementHasTransition(this.languageSwitchDropdown, 'transform') &&\n !userPrefersReducedMotion()\n ) {\n // Wait for CSS transition 'transform' to end before continuing\n return new Promise<boolean>(resolve => {\n this.languageSwitchDropdown?.addEventListener('transitionend', event => {\n if (event.propertyName === 'transform') {\n resolve(true);\n }\n });\n });\n }\n }\n }\n\n componentDidUpdate() {\n // Language switch got set to open\n if (this.languageSwitchDropdown && this.langSwitchOpen) {\n // Force browser to redraw/refresh DOM before adding 'open' class\n this.languageSwitchDropdown.getBoundingClientRect();\n this.languageSwitchDropdown.classList.add('open');\n }\n }\n\n /**\n * Open or close the language switch programatically\n * @param force Boolean to force a state\n * @returns Boolean indicating new state\n */\n @Method()\n async toggleDropdown(force?: boolean) {\n this.langSwitchOpen = force ?? !this.langSwitchOpen;\n this.dropdownToggled.emit({ open: this.langSwitchOpen, element: this.host });\n return this.langSwitchOpen;\n }\n\n /**\n * Emit a language change to the parent component\n *\n * @param newLang Config of the new language\n */\n switchLanguage(newLang: NavLangEntity) {\n this.languageChanged.emit(newLang.lang);\n this.toggleDropdown(false);\n }\n\n private getMergedLanguageConfig(config: NavLangEntity[], overrides?: IAvailableLanguage[]) {\n if (overrides === undefined) {\n return config;\n }\n\n return config.map(langConfig =>\n Object.assign(\n {},\n langConfig,\n overrides.find(l => l.lang === langConfig.lang),\n ),\n );\n }\n\n private setDropdownRef(element: HTMLElement | undefined) {\n this.languageSwitchDropdown = element;\n }\n\n render() {\n if (state.localizedConfig?.header === undefined) return;\n const config = state.localizedConfig.header;\n const mergedConfig = this.getMergedLanguageConfig(\n config.navLang,\n state.languageSwitchOverrides,\n );\n\n return (\n <Host>\n <div class={`language-switch ${this.mode}`}>\n <SvgSprite />\n {this.mode === 'dropdown' ? (\n <button\n class=\"lang-btn\"\n aria-expanded={`${this.langSwitchOpen}`}\n aria-haspopup=\"listbox\"\n onClick={() => this.toggleDropdown()}\n >\n <span class=\"visually-hidden\">\n {config.translations.navLangAriaLabel}, {translate('Current language is English')}\n </span>\n <span aria-hidden=\"true\">{state.currentLanguage}</span>\n <SvgIcon name=\"pi-arrow-down\" classNames={this.langSwitchOpen ? 'rotated' : ''} />\n </button>\n ) : (\n <span class=\"bold current-language\">\n <span class=\"visually-hidden\">{translate('Current language is English')}</span>\n <span>{state.currentLanguage}</span>\n </span>\n )}\n {this.langSwitchOpen || this.mode === 'list' ? (\n <PostLanguageSwitchList\n navLang={mergedConfig}\n switchLanguage={e => this.switchLanguage(e)}\n dropdownRef={e => e !== undefined && this.setDropdownRef(e)}\n />\n ) : null}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,h as i,H as e,g as o}from"./p-2945db6c.js";import{t as n}from"./p-a74b380d.js";import{s as r}from"./p-22e64bf2.js";const s='@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:700;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:400;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:300;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff") format("woff")}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", system-ui, sans-serif}button{font:inherit;padding:0}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:white}}.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}.btn-blank{background-color:transparent;border:none;border-radius:0;padding:0}.nav-link{text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.nav-link:hover,.nav-link:focus{color:black}.nav-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.nav-link>span{-ms-flex-negative:1;flex-shrink:1}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width: -0.02px){.hidden-xs{display:none}}@media (max-width: 399.98px){.hidden-sm{display:none}}@media (max-width: 599.98px){.hidden-rg{display:none}}@media (max-width: 779.98px){.hidden-md{display:none}}@media (max-width: 1023.98px){.hidden-lg{display:none}}@media (max-width: 1279.98px){.hidden-xl{display:none}}@media (max-width: 1440.98px){.hidden-xxl{display:none}}:host{display:block}.logo{display:block;-ms-flex-align:center;align-items:center;background:#fc0}.logo svg{display:block;width:var(--header-height);height:var(--header-height)}';const a=class{constructor(i){t(this,i);this.showFaviconLogo=undefined;this.throttledResize=n(300,(()=>this.handleResize()));window.addEventListener("resize",this.throttledResize,{passive:true});this.resizeObserver=new ResizeObserver(this.handleResize.bind(this));this.handleResize()}componentDidLoad(){var t;const i=(t=this.host.parentElement)===null||t===void 0?void 0:t.querySelector(".main-navigation-controls");if(i){this.resizeObserver.observe(i)}}disconnectedCallback(){window.removeEventListener("resize",this.throttledResize);this.resizeObserver.disconnect()}handleResize(){var t,i;const e=(t=this.host.parentElement)===null||t===void 0?void 0:t.querySelector(".main-navigation-controls");const o=(i=this.host.parentElement)===null||i===void 0?void 0:i.querySelector(".menu-button");if(e&&o)this.showFaviconLogo=window.innerWidth-(150+e.clientWidth+o.clientWidth)<=0}render(){var t;if(((t=r.localizedConfig)===null||t===void 0?void 0:t.header.logo)===undefined)return;const o=r.localizedConfig.header.logo;return i(e,null,i("a",{href:o.logoLink,class:"logo"},i("span",{class:"visually-hidden"},o.logoLinkTitle),i("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 72 72","aria-hidden":"true"},i("g",{id:"Logo"},i("rect",{fill:"#ffcc00",x:"0",y:"0",width:"72",height:"72"}),i("polygon",{fill:"#ff0000",points:"34,32.3 34,19 19.7,19 19.7,29.1 10,29.1 10,42.9 19.7,42.9 19.7,53 34,53 34,39.7 30.6,39.7 30.6,49.8 23.1,49.8 23.1,39.7 13.4,39.7 13.4,32.3 23.1,32.3 23.1,22.2 30.6,22.2 30.6,32.3"}),i("path",{d:"M53.56234,31.10526c0,2.41272-1.99154,4.29475-4.51723,4.29475H45.2v-8.3h3.84511C51.66802,27.1,53.56234,28.78889,53.56234,31.10526z M50.69666,19H36v34h9.2V42.9h5.49666c6.75131,0,11.9971-5.15137,11.9971-11.8057C62.69376,24.39136,57.35099,19,50.69666,19z"})))))}get host(){return o(this)}};a.style=s;export{a as post_logo};
|
|
2
|
-
//# sourceMappingURL=p-b9bcb22a.entry.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as e,h as i,H as n,g as o}from"./p-2945db6c.js";import{t as s,d as a}from"./p-a74b380d.js";import{g as r,p as l,t as d}from"./p-6582303e.js";import{u as c}from"./p-8bf099a8.js";import{s as h,d as u}from"./p-22e64bf2.js";import{S as p}from"./p-e2db30e1.js";import{S as f}from"./p-32fe68f0.js";import{I as g}from"./p-a2f9d462.js";const m=(t,e)=>{if(e===false){return t}let i;t=y(t);if(e==="auto"||e==="exact"){if(w(t)){return v(t)}i=new URL(window.location.href)}else{try{i=new URL(e,document.location.origin)}catch(i){console.warn(`Active Route: ${e} is not a valid URL. Navigation highlighting has been disabled.`);return t}}const n=b(t,i,e);if(n.length===0){return t}const o=n[0];o.main.isActiveOverride=true;if(o.sub)o.sub.isActiveOverride=true;return t};const w=t=>t.filter((t=>t.isActive)).length>0;const v=t=>t.map((t=>Object.assign(Object.assign({},t),{isActiveOverride:t.isActive,flyout:t.flyout.map((t=>Object.assign(Object.assign({},t),{linkList:t.linkList.map((t=>Object.assign(Object.assign({},t),{isActiveOverride:t.isActive})))})))})));const y=t=>t.map((t=>Object.assign(Object.assign({},t),{isActiveOverride:false,flyout:t.flyout.map((t=>Object.assign(Object.assign({},t),{linkList:t.linkList.map((t=>Object.assign(Object.assign({},t),{isActiveOverride:false})))})))})));const b=(t,e,i)=>{let n=false;const o=[];t.forEach((t=>{if(n||!t){return}try{const s=x(e,new URL(t.url),i);if(s>0){if(s===Infinity)n=true;o.push({main:t,score:s})}}catch(t){}if(t.flyout.length){t.flyout.forEach((s=>{if(s.linkList){s.linkList.forEach((s=>{if(s.isActive&&(i==="auto"||i==="exact")){n=true;return}try{const a=new URL(s.url);const r=x(e,a,i);if(r>0){if(r===Infinity)n=true;o.push({main:t,sub:s,score:r})}}catch(t){}}))}}))}}));return o.sort(((t,e)=>e.score-t.score))};const x=(t,e,i)=>{if(!t||!e||t.origin!==e.origin){return 0}if(t.pathname===e.pathname){return Infinity}if(t.pathname.length<e.pathname.length){return 0}if(i==="auto"){const i=[t.origin,...t.pathname.split("/").filter((t=>!!t))];const n=[e.origin,...e.pathname.split("/").filter((t=>!!t))];const o=k(i,n);return Math.min(i.length,n.length)===o?o:0}return 0};const k=(t,e)=>{if(!(t===null||t===void 0?void 0:t.length)||!(e===null||e===void 0?void 0:e.length)){return 0}let i=0;for(;i<Math.min(t.length,e.length);i++){if(t[i]!==e[i]){return 0}}return i};let j=null;let O=null;const C=()=>{const t=document.querySelector("#PPM_HEADER_DATA");if(t===null||t===void 0?void 0:t.textContent){return JSON.parse(t.textContent)}return null};const F=async({projectId:t,environment:e,language:i,cookieKey:n,localStorageKey:o,activeRouteProp:s,localizedCustomConfig:a,osFlyoutOverrides:d})=>{var c,h;const u=C();let p;let f=null;let g;if(u){p=u;g=document.documentElement.lang}else{if(!j){j=L(t,e)}f=await j;g=r(Object.keys(f),i,o,n);if(g===undefined){throw new Error("Internet Header: unable to determine current language")}p=Object.assign({},f[g])}if(a){const t=((c=a===null||a===void 0?void 0:a.header)===null||c===void 0?void 0:c.navMain)?Object.assign(Object.assign({},p.header),{navMain:[...p.header.navMain,...a.header.navMain]}):p.header;p=Object.assign(Object.assign({},p),{header:t})}if(d)p.header.navMain=N(p,d);if(s)p.header.navMain=m(p.header.navMain,s);I((h=p===null||p===void 0?void 0:p.header)===null||h===void 0?void 0:h.navMain);l(g,n,o);return p};const N=(t,e)=>{if(!e)return t.header.navMain;return t.header.navMain.map((t=>{var i,n;if(t.id!=="flyout_os")return t;if(O===null){O=JSON.parse(JSON.stringify(t))}const o=(i=e.text)!==null&&i!==void 0?i:O.text;const s=(n=e.title)!==null&&n!==void 0?n:O.title;if(!O.flyout||O.flyout.length===0||!e.flyout||e.flyout.length===0)return Object.assign(Object.assign({},t),{title:s,text:o});const a=[...O.flyout.map(((t,i)=>{var n;const o=e.flyout[i];const s=(n=o.title)!==null&&n!==void 0?n:t.title;const a=o.linkList?e.flyout[i].linkList:[];return{title:s,linkList:[...t.linkList,...a]}})),...e.flyout.slice(O.flyout.length)];return Object.assign(Object.assign({},t),{text:o,title:s,flyout:a})}))};const L=async(t,e)=>{if(!R(t)){throw new Error(`Internet Header: invalid project id "${t}"`)}if(t==="test"){e="int01"}let i=S(t,e);try{const t=await fetch(i);return await t.json()}catch(t){throw new Error(`Internet Header: fetching config failed. ${t.message}`)}};const S=(t,e)=>{if(t==="test")return"assets/config/test-configuration.json";const i=e.toLowerCase();const n=i==="prod";const o=`https://${n?"www":"int"}.post.ch`;try{return new URL(`${o}/api/headerjs/Json?serviceid=${encodeURIComponent(t)}${!n?"&environment="+i:""}`).toString()}catch(t){throw new Error(`Internet Header: Config URL is invalid.`)}};const R=t=>t!==""&&t.length>0&&/^[a-zA-Z][\w-]*[a-zA-Z0-9]$/.test(t);const z=(t,e)=>{var i;let n;try{n=typeof t==="string"?JSON.parse(t):t}catch(t){throw new Error(`Internet Header: Custom config is invalid. Make sure your custom config contains valid JSON syntax and matches the definition. `)}let o=n[e];if((i=o===null||o===void 0?void 0:o.header)===null||i===void 0?void 0:i.navMain)I(o.header.navMain);return o};const I=t=>{t.forEach((t=>{t.id=t.id==="flyout_os"?t.id:c("main-nav-")}))};const P="@swisspost/internet-header";const A="1.7.2";const K="The header for client facing applications.";const E="Swiss Post <oss@post.ch>";const $="Apache-2.0";const T={type:"git",url:"https://github.com/swisspost/design-system.git"};const D="https://next.design-system.post.ch";const J={url:"https://github.com/swisspost/design-system/issues"};const M="loader/index.cjs.js";const H="loader/index.js";const U="loader/index.es2017.js";const W="loader/index.es2017.js";const _="loader/index.d.ts";const q="dist/collection/collection-manifest.json";const B="loader/cdn.js";const X={access:"public"};const Z=["dist/","loader/"];const G={start:"stencil build --docs --watch",dev:"stencil build --watch --serve --docs",build:"stencil build --docs",test:"npm run unit",unit:"jest","unit:watch":"jest --watch",e2e:"cypress run","e2e:watch":"cypress open",clean:"rimraf www dist loader storybook-static",lint:"eslint src/**/*{.ts,.tsx}","lint:fix":"eslint src/**/*{.ts,.tsx} --fix",generate:"stencil generate"};const V={"@stencil/core":"3.2.2","@stencil/store":"2.0.6","body-scroll-lock":"4.0.0-beta.0","iframe-resizer":"4.3.6",jquery:"3.7.0",tabbable:"6.1.2","throttle-debounce":"5.0.0","url-polyfill":"1.1.12"};const Q={"@babel/core":"7.21.8","@percy/cli":"1.24.0","@percy/cypress":"3.1.2","@stencil/eslint-plugin":"0.4.0","@stencil/sass":"3.0.2","@swisspost/design-system-styles":"workspace:6.2.1","@types/iframe-resizer":"3.5.9","@types/jest":"27.5.2","@types/jquery":"3.5.16","@types/node":"18.16.12","@types/throttle-debounce":"5.0.0","babel-loader":"9.1.2",bootstrap:"5.2.3",cypress:"12.12.0","cypress-each":"1.13.3","cypress-storybook":"0.5.1","eslint-plugin-react":"7.32.2",globby:"13.1.4",jest:"27.5.1",rimraf:"5.0.0","rollup-plugin-node-polyfills":"0.2.1","rollup-plugin-scss":"4.0.0","rollup-plugin-visualizer":"5.9.0",sass:"1.62.1","start-server-and-test":"2.0.0","ts-jest":"27.1.5",typescript:"4.9.5"};const Y={name:P,version:A,description:K,author:E,license:$,repository:T,homepage:D,bugs:J,main:M,module:H,es2015:U,es2017:W,"jsnext:main":"loader/index.es2017.js",types:_,collection:q,"collection:main":"dist/collection/index.js",unpkg:B,publishConfig:X,files:Z,scripts:G,dependencies:V,devDependencies:Q};const tt='@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:700;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:400;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:300;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff") format("woff")}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", system-ui, sans-serif}button{font:inherit;padding:0}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:white}}.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}.btn-blank{background-color:transparent;border:none;border-radius:0;padding:0}.nav-link{text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.nav-link:hover,.nav-link:focus{color:black}.nav-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.nav-link>span{-ms-flex-negative:1;flex-shrink:1}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width: -0.02px){.hidden-xs{display:none}}@media (max-width: 399.98px){.hidden-sm{display:none}}@media (max-width: 599.98px){.hidden-rg{display:none}}@media (max-width: 779.98px){.hidden-md{display:none}}@media (max-width: 1023.98px){.hidden-lg{display:none}}@media (max-width: 1279.98px){.hidden-xl{display:none}}@media (max-width: 1440.98px){.hidden-xxl{display:none}}:host{display:block;position:relative;font-size:1rem;font-weight:300;z-index:var(--header-z-index, 10);--header-height:3.5rem;--meta-header-height:0px;--language-dropdown-margin-top:0px}@media (min-width: 1024px){:host{--meta-header-height:3rem;--header-height:4rem}}@media (min-width: 1280px){:host{--header-height:4.5rem}}:host([meta=false]){--meta-header-height:0px;--language-dropdown-margin-top:1px}@supports ((position: -webkit-sticky) or (position: sticky)){:host(:not(.stickyness-none)){position:-webkit-sticky;position:sticky}:host(.stickyness-full){top:0}:host(.stickyness-main){top:calc(var(--meta-header-height, 0px) * -1)}:host(.stickyness-minimal){top:calc((var(--header-height, 0px) + var(--meta-header-height, 0px)) * -1);-webkit-transition:top 200ms ease-in;transition:top 200ms ease-in}:host(.stickyness-minimal.scrolling-up),:host(.stickyness-minimal.dropdown-open){top:calc(var(--meta-header-height, 0px) * -1);-webkit-transition:top 200ms ease-out;transition:top 200ms ease-out}}.post-internet-header{border-bottom:1px solid hsl(0, 0%, 90%);background-color:white}.main-navigation-container{display:-ms-flexbox;display:flex}.main-navigation-container>.main-navigation-controls{-ms-flex:0 0 auto;flex:0 0 auto}.main-navigation{display:-ms-flexbox;display:flex}.sub-navigation-container{position:absolute;top:100%;left:0;width:100%;display:-ms-flexbox;display:flex;background:white;visibility:hidden}.main-navigation-item:hover .sub-navigation-container{visibility:visible}.main-navigation-controls{display:-ms-flexbox;display:flex;margin-left:auto}@media (max-width: 1023.98px){.main-navigation-controls{font-weight:400}}@media (min-width: 1024px){.main-navigation-controls{font-size:1.0625rem}}.main-navigation-controls>*{border-left:1px solid hsl(0, 0%, 90%)}.menu-button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0 calc(1rem - 1px);font-weight:300;cursor:pointer;border-left:1px solid hsl(0, 0%, 90%);-ms-flex-order:1;order:1;}@media (min-width: 1024px){.menu-button{display:none}}@media (min-width: 600px) and (max-width: 1023.98px){.menu-button .visually-hidden{position:static;width:auto;height:auto;margin:auto;overflow:visible;clip:auto;visibility:visible;margin-right:0.5rem}}.menu-button svg{width:1.5rem;height:1.5rem}.full-width .wide-container{max-width:none}';const et=class{async getCurrentLanguage(){var t;return(t=h.currentLanguage)!==null&&t!==void 0?t:"de"}constructor(i){t(this,i);this.headerLoaded=e(this,"headerLoaded",7);this.lastScrollTop=window.scrollY||document.documentElement.scrollTop;this.lastWindowWidth=window.innerWidth;this.handleClickOutsideBound=this.handleClickOutside.bind(this);this.project=undefined;this.stickyness="minimal";this.language=undefined;this.meta=true;this.login=true;this.search=true;this.skiplinks=true;this.configProxy=undefined;this.environment="prod";this.languageSwitchOverrides=undefined;this.customConfig=undefined;this.languageCookieKey=undefined;this.languageLocalStorageKey="swisspost-internet-header-language";this.activeRoute="auto";this.osFlyoutOverrides=undefined;this.fullWidth=false;this.activeFlyout=null;this.activeDropdownElement=null;if(this.project===undefined||this.project===""||!R(this.project)){throw new Error(`Internet Header project key is "${this.project}". Please provide a valid project key.`)}}connectedCallback(){this.throttledScroll=s(300,(()=>this.handleScrollEvent()));this.debouncedResize=a(200,(()=>this.handleResize()));window.addEventListener("scroll",this.throttledScroll,{passive:true});window.addEventListener("resize",this.debouncedResize,{passive:true})}disconnectedCallback(){window.removeEventListener("scroll",this.throttledScroll);window.removeEventListener("resize",this.debouncedResize);u()}async componentWillLoad(){try{h.projectId=this.project;h.environment=this.environment;if(this.language!==undefined)h.currentLanguage=this.language;h.languageSwitchOverrides=typeof this.languageSwitchOverrides==="string"?JSON.parse(this.languageSwitchOverrides):this.languageSwitchOverrides;h.osFlyoutOverrides=typeof this.osFlyoutOverrides==="string"?JSON.parse(this.osFlyoutOverrides):this.osFlyoutOverrides;if(this.customConfig!==undefined&&h.currentLanguage!==null){h.localizedCustomConfig=z(this.customConfig,h.currentLanguage)}h.localizedConfig=await F({projectId:this.project,environment:this.environment,language:this.language,cookieKey:this.languageCookieKey,localStorageKey:this.languageLocalStorageKey,activeRouteProp:this.activeRoute,localizedCustomConfig:h.localizedCustomConfig,osFlyoutOverrides:h.osFlyoutOverrides})}catch(t){console.error(t)}}componentDidLoad(){window.requestAnimationFrame((()=>{this.handleResize();this.headerLoaded.emit();this.host.classList.add("header-loaded")}))}async handleLanguageChange(t){h.currentLanguage=t;h.localizedConfig=await F({projectId:this.project,environment:this.environment,language:t,cookieKey:this.languageCookieKey,localStorageKey:this.languageLocalStorageKey,activeRouteProp:this.activeRoute,localizedCustomConfig:h.localizedCustomConfig,osFlyoutOverrides:h.osFlyoutOverrides});if(this.customConfig)h.localizedCustomConfig=z(this.customConfig,t)}handleAvailableLanguagesChage(t){h.languageSwitchOverrides=typeof t==="string"?JSON.parse(t):t}async handleOsFlyoutOverrides(t){h.osFlyoutOverrides=typeof t==="string"?JSON.parse(t):t;h.localizedConfig=await F({projectId:this.project,environment:this.environment,language:this.language,cookieKey:this.languageCookieKey,localStorageKey:this.languageLocalStorageKey,activeRouteProp:this.activeRoute,localizedCustomConfig:h.localizedCustomConfig,osFlyoutOverrides:h.osFlyoutOverrides})}async handleActiveRouteChange(t){h.localizedConfig=await F({projectId:this.project,environment:this.environment,language:this.language,cookieKey:this.languageCookieKey,localStorageKey:this.languageLocalStorageKey,activeRouteProp:t,localizedCustomConfig:h.localizedCustomConfig,osFlyoutOverrides:h.osFlyoutOverrides})}async handleCustomConfigChange(t){if(this.language===undefined)return;const e=z(t,this.language);h.localizedCustomConfig=e;h.localizedConfig=await F({projectId:this.project,environment:this.environment,language:this.language,cookieKey:this.languageCookieKey,localStorageKey:this.languageLocalStorageKey,activeRouteProp:this.activeRoute,localizedCustomConfig:e,osFlyoutOverrides:h.osFlyoutOverrides})}handleSearchChange(t){h.search=t}handleLoginChange(t){h.login=t}handleMetaChange(t){h.meta=t}handleLanguageChangeEvent(t){this.handleLanguageChange(t.detail)}handleClickOutside(t){if(this.activeDropdownElement&&!t.composedPath().includes(this.activeDropdownElement)){this.activeDropdownElement.toggleDropdown(false)}}handleKeyUp(t){if(t.key==="Escape"){if(this.activeDropdownElement){this.activeDropdownElement.toggleDropdown(false)}if(this.activeFlyout!==null&&this.mainNav){this.mainNav.toggleDropdown(false)}}}handleScrollEvent(){const t=window.scrollY||document.documentElement.scrollTop;if(this.stickyness==="minimal"){this.host.classList.toggle("scrolling-up",t<=this.lastScrollTop)}this.lastScrollTop=t<=0?0:t}handleResize(){var t;if(this.isMainNavOpen()&&this.lastWindowWidth<1024&&window.innerWidth>=1024){(t=this.activeDropdownElement)===null||t===void 0?void 0:t.toggleDropdown(false)}this.lastWindowWidth=window.innerWidth}handleDropdownToggled(t){if(!t.detail.open&&this.activeDropdownElement!==t.detail.element){return}if(t.detail.open===true){if(this.activeDropdownElement){this.activeDropdownElement.toggleDropdown(false)}this.activeDropdownElement=t.detail.element;if(window.innerWidth>=1024){window.setTimeout((()=>{window.addEventListener("click",this.handleClickOutsideBound)}),10)}if(this.activeFlyout!==null&&this.mainNav){this.mainNav.setActiveFlyout(null)}}else{this.activeDropdownElement=null;window.removeEventListener("click",this.handleClickOutsideBound)}}handleFlyoutToggled(t){this.activeFlyout=t.detail;if(this.activeDropdownElement&&t.detail&&!this.isMainNavOpen()){this.activeDropdownElement.toggleDropdown(false)}}toggleMobileDropdown(){var t;(t=this.mainNav)===null||t===void 0?void 0:t.toggleDropdown()}isMainNavOpen(){return this.activeDropdownElement&&this.activeDropdownElement.tagName==="POST-MAIN-NAVIGATION"}render(){var t,e,o;if(!((t=h.localizedConfig)===null||t===void 0?void 0:t.header)){console.error(new Error("Internet Header: Config cannot be loaded"));return}const s=h.localizedConfig;const a=this.meta&&s.header.navMeta!==undefined&&((e=s.header.navMeta)===null||e===void 0?void 0:e.filter((t=>!t.isHomeLink)).length)>0;const r=((o=this.login)!==null&&o!==void 0?o:!s.header.isLoginWidgetHidden)&&s.header.loginWidgetOptions;const l=s.header.navLang.length>1;return i(n,{class:`stickyness-${this.stickyness} ${this.activeDropdownElement||this.activeFlyout?"dropdown-open":""}`,"data-version":Y.version,onKeyup:t=>this.handleKeyUp(t)},i("header",{class:`post-internet-header${this.fullWidth?" full-width":""}`},i(p,null),i("h1",{class:"visually-hidden"},d("Navigate on post.ch")),i(g,{condition:this.skiplinks===true},i("post-skiplinks",null)),i(g,{condition:a===true},i("post-meta-navigation",{orientation:"horizontal",class:"hidden-lg","full-width":this.fullWidth},i(g,{condition:l===true},i("post-language-switch",{id:"post-language-switch-desktop",mode:"dropdown",onDropdownToggled:t=>this.handleDropdownToggled(t)})))),i("div",{class:"main-navigation-container wide-container"},i("post-logo",null),i("button",{class:"menu-button nav-link",onClick:()=>this.toggleMobileDropdown(),"aria-haspopup":"menu","aria-controls":"post-internet-header-main-navigation","aria-expanded":this.activeDropdownElement?"true":"false"},i("span",{class:"menu-button-text visually-hidden"},s.header.mobileMenu.text),i(f,{name:this.isMainNavOpen()?"pi-close":"pi-menu"})),i("post-main-navigation",{onDropdownToggled:t=>this.handleDropdownToggled(t),onFlyoutToggled:t=>this.handleFlyoutToggled(t),ref:t=>this.mainNav=t},i(g,{condition:a===true},i("post-meta-navigation",{orientation:"vertical"},i(g,{condition:l===true},i("post-language-switch",{id:"post-language-switch-mobile",mode:"list"}))))),i("div",{class:"main-navigation-controls"},i(g,{condition:this.search!==false},i("post-search",{onDropdownToggled:t=>this.handleDropdownToggled(t)})),i(g,{condition:!!r},i("post-klp-login-widget",null,i("slot",{name:"login-widget"}))),i(g,{condition:a===false&&l===true},i("post-language-switch",{id:"post-language-switch-no-meta",onDropdownToggled:t=>this.handleDropdownToggled(t),mode:"dropdown"})),i("slot",{name:"main"})))))}get host(){return o(this)}static get watchers(){return{language:["handleLanguageChange"],languageSwitchOverrides:["handleAvailableLanguagesChage"],osFlyoutOverrides:["handleOsFlyoutOverrides"],activeRoute:["handleActiveRouteChange"],customConfig:["handleCustomConfigChange"],search:["handleSearchChange"],login:["handleLoginChange"],meta:["handleMetaChange"]}}};et.style=tt;export{et as swisspost_internet_header};
|
|
2
|
-
//# sourceMappingURL=p-d5d1f301.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["markActiveRoute","config","activeRouteProp","compareUrl","resetOverrideConfig","hasActivePortalRoute","resetActiveStateToPortalConfig","URL","window","location","href","document","origin","error","console","warn","scoreList","compileScoreList","length","winnerPair","main","isActiveOverride","sub","filter","nav","isActive","map","Object","assign","flyout","linkList","link","hadAnyActiveLink","forEach","mainNav","score","compareRoutes","url","Infinity","push","_a","linklist","sort","a","b","baseUrl","matchMode","pathname","baseSegments","split","x","compareSegments","getSimilarityScore","Math","min","i","request","osFlyoutCache","getPPMConfig","ppmConfigScript","querySelector","textContent","JSON","parse","getLocalizedConfig","async","projectId","environment","language","cookieKey","localStorageKey","localizedCustomConfig","osFlyoutOverrides","ppmConfig","localizedConfig","lang","documentElement","fetchConfig","getUserLang","keys","undefined","Error","header","navMain","mergeOsFlyoutOverrides","setMainNavigationIds","_b","persistLanguageChoice","id","stringify","mainNavText","text","mainNavTitle","title","mainNavFlyout","col","index","overrides","slice","isValidProjectId","generateConfigUrl","res","fetch","json","message","parsedEnvironment","toLowerCase","isProd","host","encodeURIComponent","toString","test","getLocalizedCustomConfig","customConfig","navMainEntities","navMainEntity","uniqueId","postInternetHeaderCss","PostInternetHeader","state","currentLanguage","constructor","hostRef","this","lastScrollTop","scrollY","scrollTop","lastWindowWidth","innerWidth","handleClickOutsideBound","handleClickOutside","bind","project","connectedCallback","throttledScroll","throttle","handleScrollEvent","debouncedResize","debounce","handleResize","addEventListener","passive","disconnectedCallback","removeEventListener","dispose","languageSwitchOverrides","languageCookieKey","languageLocalStorageKey","activeRoute","componentDidLoad","requestAnimationFrame","headerLoaded","emit","classList","add","newValue","handleAvailableLanguagesChage","handleSearchChange","search","handleLoginChange","login","handleMetaChange","meta","handleLanguageChangeEvent","event","handleLanguageChange","detail","activeDropdownElement","composedPath","includes","toggleDropdown","handleKeyUp","key","activeFlyout","st","stickyness","toggle","isMainNavOpen","handleDropdownToggled","open","element","setTimeout","setActiveFlyout","handleFlyoutToggled","toggleMobileDropdown","tagName","render","renderMetaNavigation","navMeta","isHomeLink","renderLogin","_c","isLoginWidgetHidden","loginWidgetOptions","renderLanguageSwitch","navLang","h","Host","class","packageJson","version","onKeyup","e","fullWidth","SvgSprite","translate","If","condition","skiplinks","orientation","mode","onDropdownToggled","onClick","mobileMenu","SvgIcon","name","onFlyoutToggled","ref","el"],"sources":["./src/services/route.service.ts","./src/services/config.service.ts","./src/components/post-internet-header/post-internet-header.scss?tag=swisspost-internet-header&encapsulation=shadow","./src/components/post-internet-header/post-internet-header.tsx"],"sourcesContent":["import { ActiveRouteProp } from '../models/general.model';\nimport { NavMainEntity, MainNavScoreList } from '../models/header.model';\n\n/**\n * Activate the current route based on the config and the match mode\n * @param config Main Navigation Config\n * @param activeRouteProp Match mode\n * @returns Modified Main Navigation Config\n */\nexport const markActiveRoute = (\n config: NavMainEntity[],\n activeRouteProp: ActiveRouteProp,\n): NavMainEntity[] => {\n // Don't highlight any route\n if (activeRouteProp === false) {\n return config;\n }\n\n // Set compare URL and check if activeRouteProp is valid\n let compareUrl: URL;\n config = resetOverrideConfig(config);\n\n if (activeRouteProp === 'auto' || activeRouteProp === 'exact') {\n // Check if an active route is already configured, set override to that and return\n if (hasActivePortalRoute(config)) {\n return resetActiveStateToPortalConfig(config);\n }\n\n compareUrl = new URL(window.location.href);\n } else {\n try {\n compareUrl = new URL(activeRouteProp, document.location.origin);\n } catch (error) {\n console.warn(\n `Active Route: ${activeRouteProp} is not a valid URL. Navigation highlighting has been disabled.`,\n );\n return config;\n }\n }\n\n const scoreList = compileScoreList(config, compareUrl, activeRouteProp);\n\n if (scoreList.length === 0) {\n // No match found or already active links defined\n return config;\n }\n\n const winnerPair = scoreList[0];\n winnerPair.main.isActiveOverride = true;\n if (winnerPair.sub) winnerPair.sub.isActiveOverride = true;\n\n return config;\n};\n\n/**\n * Check if the portal config set any active route\n * @param config Main navigation config\n * @returns True if portal set any route as active\n */\nexport const hasActivePortalRoute = (config: NavMainEntity[]): boolean => {\n return config.filter(nav => nav.isActive).length > 0;\n};\n\nexport const resetActiveStateToPortalConfig = (config: NavMainEntity[]): NavMainEntity[] => {\n return config.map(nav => ({\n ...nav,\n isActiveOverride: nav.isActive,\n flyout: nav.flyout.map(flyout => ({\n ...flyout,\n linkList: flyout.linkList.map(link => ({ ...link, isActiveOverride: link.isActive })),\n })),\n }));\n};\n\nconst resetOverrideConfig = (config: NavMainEntity[]): NavMainEntity[] => {\n return config.map(nav => ({\n ...nav,\n isActiveOverride: false,\n flyout: nav.flyout.map(flyout => ({\n ...flyout,\n linkList: flyout.linkList.map(link => ({ ...link, isActiveOverride: false })),\n })),\n }));\n};\n\n/**\n * Compile a list of scores based on the map mode, sorted in descending order\n * @param config Main Nav Config\n * @param compareUrl Current Browser URL or a custom URL\n * @param activeRouteProp Match mode\n * @returns A list of scored URLs if any matched\n */\nexport const compileScoreList = (\n config: NavMainEntity[],\n compareUrl: URL,\n activeRouteProp: ActiveRouteProp,\n): MainNavScoreList => {\n // Flag to check if the Portal set any active links or if there are any exact matches\n let hadAnyActiveLink = false;\n const scoreList: MainNavScoreList = [];\n\n config.forEach(mainNav => {\n if (hadAnyActiveLink || !mainNav) {\n return;\n }\n\n try {\n const score = compareRoutes(\n compareUrl,\n new URL(mainNav.url),\n activeRouteProp as 'auto' | 'exact',\n );\n if (score > 0) {\n if (score === Infinity) hadAnyActiveLink = true;\n scoreList.push({ main: mainNav, score });\n }\n } catch {\n // Not a valid url, continue\n }\n\n // Loop through flyout links 2nd level\n if (mainNav.flyout.length) {\n mainNav.flyout.forEach(flyout => {\n if (flyout.linkList) {\n flyout.linkList.forEach(linklist => {\n // Don't override if any link is already active\n if (linklist.isActive && (activeRouteProp === 'auto' || activeRouteProp === 'exact')) {\n hadAnyActiveLink = true;\n return;\n }\n\n try {\n const url = new URL(linklist.url);\n const score = compareRoutes(compareUrl, url, activeRouteProp as 'auto' | 'exact');\n if (score > 0) {\n if (score === Infinity) hadAnyActiveLink = true;\n\n // Push score\n scoreList.push({\n main: mainNav,\n sub: linklist,\n score,\n });\n }\n } catch {\n // Not a valid URL, continue\n }\n });\n }\n });\n }\n });\n\n return scoreList.sort((a, b) => b.score - a.score);\n};\n\n/**\n * Compare two URLs for similarity based on a match mode\n * @param baseUrl Browser URL\n * @param compareUrl Navigatgion URL\n * @param matchMode exact or auto matching\n * @returns Score\n */\nexport const compareRoutes = (\n baseUrl: URL,\n compareUrl: URL,\n matchMode?: 'auto' | 'exact',\n): number => {\n // One url is not defined or they don't share the same orign\n if (!baseUrl || !compareUrl || baseUrl.origin !== compareUrl.origin) {\n return 0;\n }\n\n // Exact match, origin and pathname are the same\n if (baseUrl.pathname === compareUrl.pathname) {\n return Infinity;\n }\n\n // The basepath is longer than the comparison, a match is impossible\n if (baseUrl.pathname.length < compareUrl.pathname.length) {\n return 0;\n }\n\n if (matchMode === 'auto') {\n const baseSegments = [baseUrl.origin, ...baseUrl.pathname.split('/').filter(x => !!x)];\n const compareSegments = [compareUrl.origin, ...compareUrl.pathname.split('/').filter(x => !!x)];\n\n const score = getSimilarityScore(baseSegments, compareSegments);\n\n // If only some segments match, but not the whole smaller array, it's not a match\n return Math.min(baseSegments.length, compareSegments.length) === score ? score : 0;\n }\n\n return 0;\n};\n\n/**\n * Check how many items in an array match\n * @param a Base array\n * @param b Compare array\n * @returns Score\n */\nexport const getSimilarityScore = (a: string[], b: string[]): number => {\n if (!a?.length || !b?.length) {\n return 0;\n }\n\n let i = 0;\n for (; i < Math.min(a.length, b.length); i++) {\n if (a[i] !== b[i]) {\n return 0;\n }\n }\n\n return i;\n};\n","import {\n Environment,\n IPortalConfig,\n ILocalizedConfig,\n ICustomConfig,\n ILocalizedCustomConfig,\n LocalizedConfigParameters,\n} from '../models/general.model';\nimport { NavMainEntity } from '../models/header.model';\nimport { getUserLang, persistLanguageChoice } from './language.service';\nimport { uniqueId } from '../utils/utils';\nimport { markActiveRoute } from './route.service';\n\n// Prevent double requests\nlet request: Promise<IPortalConfig> | null = null;\n\n// Cache the original os flyout to use it for updates\nlet osFlyoutCache: NavMainEntity | null = null;\n\nconst getPPMConfig = (): ILocalizedConfig | null => {\n const ppmConfigScript = document.querySelector('#PPM_HEADER_DATA');\n\n if (ppmConfigScript?.textContent) {\n return JSON.parse(ppmConfigScript.textContent);\n }\n\n return null;\n};\n\n/**\n * Get a localized config object\n *\n * @param projectId String identifying the project\n * @param language [optional] Preferred language\n * @returns Localized config object\n */\nexport const getLocalizedConfig = async ({\n projectId,\n environment,\n language,\n cookieKey,\n localStorageKey,\n activeRouteProp,\n localizedCustomConfig,\n osFlyoutOverrides,\n}: LocalizedConfigParameters): Promise<ILocalizedConfig> => {\n const ppmConfig = getPPMConfig();\n let localizedConfig: ILocalizedConfig;\n let config: IPortalConfig | null = null;\n let lang: string | undefined;\n\n if (ppmConfig) {\n localizedConfig = ppmConfig;\n lang = document.documentElement.lang;\n } else {\n if (!request) {\n request = fetchConfig(projectId, environment);\n }\n\n config = await request;\n lang = getUserLang(Object.keys(config), language, localStorageKey, cookieKey);\n\n if (lang === undefined) {\n throw new Error('Internet Header: unable to determine current language');\n }\n\n // Clone config for more predictable state updates\n localizedConfig = { ...config[lang] };\n }\n\n // Merge custom config with portal config\n if (localizedCustomConfig) {\n const header = localizedCustomConfig?.header?.navMain\n ? {\n ...localizedConfig.header,\n navMain: [...localizedConfig.header.navMain, ...localizedCustomConfig.header.navMain],\n }\n : localizedConfig.header;\n localizedConfig = {\n ...localizedConfig,\n header,\n };\n }\n\n // Add entries to flyout_os\n if (osFlyoutOverrides)\n localizedConfig.header.navMain = mergeOsFlyoutOverrides(localizedConfig, osFlyoutOverrides);\n\n // Mark active route\n if (activeRouteProp)\n localizedConfig.header.navMain = markActiveRoute(\n localizedConfig.header.navMain,\n activeRouteProp,\n );\n\n setMainNavigationIds(localizedConfig?.header?.navMain);\n\n // Set the new language choice\n persistLanguageChoice(lang, cookieKey, localStorageKey);\n\n return localizedConfig;\n};\n\n/**\n * Merge portal config with custom os flyout overrides\n * @param config Localized config\n * @param osFlyoutOverrides Overrides for the flyout\n * @returns Merged localized config\n */\nexport const mergeOsFlyoutOverrides = (\n config: ILocalizedConfig,\n osFlyoutOverrides: NavMainEntity,\n): NavMainEntity[] => {\n if (!osFlyoutOverrides) return config.header.navMain;\n\n return config.header.navMain.map(mainNav => {\n if (mainNav.id !== 'flyout_os') return mainNav;\n\n if (osFlyoutCache === null) {\n osFlyoutCache = JSON.parse(JSON.stringify(mainNav)) as NavMainEntity;\n }\n\n const mainNavText = osFlyoutOverrides.text ?? osFlyoutCache.text;\n const mainNavTitle = osFlyoutOverrides.title ?? osFlyoutCache.title;\n\n if (\n !osFlyoutCache.flyout ||\n osFlyoutCache.flyout.length === 0 ||\n !osFlyoutOverrides.flyout ||\n osFlyoutOverrides.flyout.length === 0\n )\n return {\n ...mainNav,\n title: mainNavTitle,\n text: mainNavText,\n };\n\n // Add entries for os flyout columns without overriding existing config\n const mainNavFlyout = [\n ...osFlyoutCache.flyout.map((col, index) => {\n const overrides = osFlyoutOverrides.flyout[index];\n const title = overrides.title ?? col.title;\n\n const linkList = overrides.linkList ? osFlyoutOverrides.flyout[index].linkList : [];\n\n return {\n title,\n linkList: [...col.linkList, ...linkList],\n };\n }),\n ...osFlyoutOverrides.flyout.slice(osFlyoutCache.flyout.length),\n ];\n\n return {\n ...mainNav,\n text: mainNavText,\n title: mainNavTitle,\n flyout: mainNavFlyout,\n } as NavMainEntity;\n });\n};\n\n/**\n * Fetch the general config based on project id\n *\n * @returns Promise for Post Portal general config\n */\nexport const fetchConfig = async (\n projectId: string,\n environment: Environment,\n): Promise<IPortalConfig> => {\n // Check if project id is sanitized\n if (!isValidProjectId(projectId)) {\n throw new Error(`Internet Header: invalid project id \"${projectId}\"`);\n }\n\n if (projectId === 'test') {\n environment = 'int01';\n }\n\n let url = generateConfigUrl(projectId, environment);\n\n // Get the config if cache is invalid\n try {\n const res = await fetch(url);\n return (await res.json()) as IPortalConfig;\n } catch (error) {\n throw new Error(`Internet Header: fetching config failed. ${error.message}`);\n }\n};\n\n/**\n * Generate an URL with all necessary query params to get the configuration.\n * Project id \"test\" will return a test configuration\n * @param projectId string\n * @param environment int01, int02 or prod\n * @returns URL pointing to the project config\n */\nexport const generateConfigUrl = (projectId: string, environment: Environment): string => {\n if (projectId === 'test') return 'assets/config/test-configuration.json';\n\n const parsedEnvironment = environment.toLowerCase();\n const isProd = parsedEnvironment === 'prod';\n const host = `https://${isProd ? 'www' : 'int'}.post.ch`;\n try {\n // Use URL to validate the generated URL\n return new URL(\n `${host}/api/headerjs/Json?serviceid=${encodeURIComponent(projectId)}${\n !isProd ? '&environment=' + parsedEnvironment : ''\n }`,\n ).toString();\n } catch (error) {\n throw new Error(`Internet Header: Config URL is invalid.`);\n }\n};\n\n/**\n * Check if project id contains only URL safe characters\n *\n * @param projectId Project Id string\n * @returns The valid project id\n */\nexport const isValidProjectId = (projectId: string): boolean => {\n return projectId !== '' && projectId.length > 0 && /^[a-zA-Z][\\w-]*[a-zA-Z0-9]$/.test(projectId);\n};\n\n/**\n * Get the localized config object from a custom config\n *\n * @param config String or json object of the custom config\n * @param language Specific language\n * @returns Localized custom config object\n */\nexport const getLocalizedCustomConfig = (\n config: string | ICustomConfig,\n language: string,\n): ILocalizedCustomConfig | undefined => {\n let customConfig: ICustomConfig;\n try {\n customConfig = typeof config === 'string' ? JSON.parse(config) : config;\n } catch (error) {\n throw new Error(\n `Internet Header: Custom config is invalid. Make sure your custom config contains valid JSON syntax and matches the definition. `,\n );\n }\n let localizedCustomConfig: ILocalizedCustomConfig | undefined = customConfig[language];\n if (localizedCustomConfig?.header?.navMain)\n setMainNavigationIds(localizedCustomConfig.header.navMain);\n return localizedCustomConfig;\n};\n\n/**\n * Check if mobile header styles are applied or not\n * @returns True if browser is smaller than 1024px\n */\nexport const isMobile = () => window.innerWidth < 1024;\n\n/**\n * Set unique ID's on main navigation entities but conserve flyout_os to be able to\n * identify the online-service flyout, which can be configured by osFlyoutOverrides\n */\nexport const setMainNavigationIds = (navMainEntities: NavMainEntity[]): void => {\n navMainEntities.forEach(navMainEntity => {\n navMainEntity.id = navMainEntity.id === 'flyout_os' ? navMainEntity.id : uniqueId('main-nav-');\n });\n};\n","@use '@swisspost/design-system-styles/variables/color';\n@use '../../utils/utils.scss';\n@use '../../utils/mixins.scss';\n\n:host {\n display: block;\n position: relative;\n font-size: 1rem;\n font-weight: 300;\n z-index: var(--header-z-index, 10);\n\n --header-height: 3.5rem; // 56px\n --meta-header-height: 0px; // Not visible on mobile\n --language-dropdown-margin-top: 0px;\n\n @include mixins.min(lg) {\n --meta-header-height: 3rem; // 48px\n --header-height: 4rem; // 64px\n }\n\n @include mixins.min(xl) {\n --header-height: 4.5rem; // 72px\n }\n}\n\n// Set height to 0 if meta is never visible\n:host([meta='false']) {\n --meta-header-height: 0px;\n // Compensation for header border-bottom, when language dropdown is displayed within main navigation controls\n --language-dropdown-margin-top: 1px;\n}\n\n// Support different kinds of stickyness modes\n// Works only in combination with setting header heights dynamically\n@supports (position: sticky) {\n // If stickyness is none, simply apply no styles, all others are sticky\n :host(:not(.stickyness-none)) {\n position: sticky;\n }\n\n // Everything is always sticky\n :host(.stickyness-full) {\n top: 0;\n }\n\n // Only main nav is sticky\n :host(.stickyness-main) {\n top: calc(var(--meta-header-height, 0px) * -1);\n }\n\n // Hide everything\n :host(.stickyness-minimal) {\n top: calc((var(--header-height, 0px) + var(--meta-header-height, 0px)) * -1);\n transition: top 200ms ease-in;\n }\n\n // Show main when scrolling up or any of the menus are open\n :host(.stickyness-minimal.scrolling-up),\n :host(.stickyness-minimal.dropdown-open) {\n top: calc(var(--meta-header-height, 0px) * -1);\n transition: top 200ms ease-out;\n }\n}\n\n.post-internet-header {\n border-bottom: 1px solid color.$gray-10;\n background-color: white;\n}\n\n.main-navigation-container {\n display: flex;\n\n & > .main-navigation-controls {\n flex: 0 0 auto;\n }\n}\n\n.main-navigation {\n display: flex;\n}\n\n.sub-navigation-container {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n display: flex;\n background: white;\n visibility: hidden;\n}\n\n.main-navigation-item:hover .sub-navigation-container {\n visibility: visible;\n}\n\n.main-navigation-controls {\n display: flex;\n margin-left: auto;\n\n @include mixins.max(lg) {\n font-weight: 400;\n }\n\n @include mixins.min(lg) {\n font-size: 1.0625rem;\n }\n\n & > * {\n border-left: 1px solid color.$gray-10;\n }\n}\n\n.menu-button {\n display: flex;\n align-items: center;\n padding: 0 calc(1rem - 1px);\n font-weight: 300;\n cursor: pointer;\n border-left: 1px solid color.$gray-10;\n order: 1; /* Display on the far right because of tab order */\n\n @include mixins.min(lg) {\n display: none;\n }\n\n .visually-hidden {\n @include mixins.between(rg, lg) {\n @include mixins.reset-visually-hidden();\n\n margin-right: 0.5rem;\n }\n }\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n}\n\n.full-width {\n .wide-container {\n max-width: none;\n }\n}\n","import {\n Component,\n Host,\n Element,\n h,\n State,\n Prop,\n Watch,\n Listen,\n EventEmitter,\n Event,\n Method,\n} from '@stencil/core';\nimport { debounce, throttle } from 'throttle-debounce';\nimport {\n getLocalizedConfig,\n getLocalizedCustomConfig,\n isValidProjectId,\n} from '../../services/config.service';\nimport { state, dispose } 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 { translate } from '../../services/language.service';\nimport { If } from '../../utils/if.component';\nimport packageJson from '../../../package.json';\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?: string;\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 * 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 @Element() host: HTMLElement;\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 lastScrollTop = window.scrollY || document.documentElement.scrollTop;\n private throttledScroll: throttle<() => void>;\n private debouncedResize: debounce<() => void>;\n private lastWindowWidth: number = window.innerWidth;\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 window.addEventListener('scroll', this.throttledScroll, { passive: true });\n window.addEventListener('resize', this.debouncedResize, { passive: true });\n }\n\n disconnectedCallback() {\n window.removeEventListener('scroll', this.throttledScroll);\n window.removeEventListener('resize', this.debouncedResize);\n\n // Reset the store to its original state\n dispose();\n }\n\n async componentWillLoad() {\n // Wait for the config to arrive, then render the header\n try {\n state.projectId = this.project;\n state.environment = this.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 && state.currentLanguage !== null) {\n state.localizedCustomConfig = getLocalizedCustomConfig(\n this.customConfig,\n state.currentLanguage,\n );\n }\n\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 } 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 });\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 handleAvailableLanguagesChage(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 this.handleLanguageChange(event.detail);\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 this.activeDropdownElement.toggleDropdown(false);\n }\n }\n\n private handleKeyUp(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n if (this.activeDropdownElement) {\n this.activeDropdownElement.toggleDropdown(false);\n }\n if (this.activeFlyout !== null && this.mainNav) {\n 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 = window.scrollY || document.documentElement.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 === true) {\n if (this.activeDropdownElement) {\n 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 outsite 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 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 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 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 this.activeDropdownElement || 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 === true}>\n <post-skiplinks></post-skiplinks>\n </If>\n <If condition={renderMetaNavigation === true}>\n <post-meta-navigation\n orientation=\"horizontal\"\n class=\"hidden-lg\"\n full-width={this.fullWidth}\n >\n <If condition={renderLanguageSwitch === true}>\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 === true}>\n <post-meta-navigation orientation=\"vertical\">\n <If condition={renderLanguageSwitch === true}>\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 <If condition={this.search !== false}>\n <post-search onDropdownToggled={e => this.handleDropdownToggled(e)}></post-search>\n </If>\n <If condition={!!renderLogin}>\n <post-klp-login-widget>\n <slot name=\"login-widget\"></slot>\n </post-klp-login-widget>\n </If>\n <If condition={renderMetaNavigation === false && renderLanguageSwitch === true}>\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 <slot name=\"main\"></slot>\n </div>\n </div>\n </header>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|