@swisspost/internet-header 1.5.0-beta.2 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -202
- package/dist/cjs/{if.component-313f59b8.js → if.component-51d000af.js} +6 -6
- package/dist/cjs/if.component-51d000af.js.map +1 -0
- package/dist/cjs/{klp-widget.controller-84642428.js → klp-widget.controller-d8941c4e.js} +4811 -4811
- package/dist/cjs/{klp-widget.controller-84642428.js.map → klp-widget.controller-d8941c4e.js.map} +1 -1
- package/dist/cjs/{language.service-a80ae01d.js → language.service-7dbf739d.js} +141 -141
- package/dist/cjs/language.service-7dbf739d.js.map +1 -0
- package/dist/cjs/post-klp-login-widget.cjs.entry.js +33 -33
- package/dist/cjs/post-klp-login-widget.cjs.entry.js.map +1 -1
- package/dist/cjs/post-language-switch.cjs.entry.js +88 -88
- package/dist/cjs/post-language-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/post-logo.cjs.entry.js +51 -51
- package/dist/cjs/post-logo.cjs.entry.js.map +1 -1
- package/dist/cjs/post-main-navigation.cjs.entry.js +227 -227
- package/dist/cjs/post-main-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/post-meta-navigation.cjs.entry.js +15 -15
- package/dist/cjs/post-meta-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/post-search.cjs.entry.js +556 -534
- package/dist/cjs/post-search.cjs.entry.js.map +1 -1
- package/dist/cjs/post-skiplinks.cjs.entry.js +41 -41
- package/dist/cjs/post-skiplinks.cjs.entry.js.map +1 -1
- package/dist/cjs/{store-47e14589.js → store-d0d514fc.js} +20 -13
- package/dist/cjs/store-d0d514fc.js.map +1 -0
- package/dist/cjs/{svg-icon.component-10fbda11.js → svg-icon.component-be93f876.js} +2 -2
- package/dist/cjs/svg-icon.component-be93f876.js.map +1 -0
- package/dist/cjs/{svg-sprite.component-c3b454b3.js → svg-sprite.component-1bd7a058.js} +40 -40
- package/dist/cjs/svg-sprite.component-1bd7a058.js.map +1 -0
- package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +370 -392
- package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js.map +1 -1
- package/dist/cjs/swisspost-internet-footer.cjs.entry.js +125 -125
- package/dist/cjs/swisspost-internet-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/swisspost-internet-header.cjs.entry.js +608 -608
- package/dist/cjs/swisspost-internet-header.cjs.entry.js.map +1 -1
- package/dist/cjs/{ui.service-db4a8252.js → ui.service-e1ebb6d4.js} +28 -28
- package/dist/cjs/ui.service-e1ebb6d4.js.map +1 -0
- package/dist/cjs/{utils-b6014257.js → utils-60853c5d.js} +15 -15
- package/dist/cjs/utils-60853c5d.js.map +1 -0
- package/dist/collection/assets/config/test-configuration.json +4067 -4067
- package/dist/collection/assets/i18n/translations.js +38 -38
- package/dist/collection/assets/i18n/translations.js.map +1 -1
- package/dist/collection/assets/js/sockjs-client.js +5134 -5134
- package/dist/collection/components/post-internet-breadcrumbs/components/breadcrumb-list.component.js +11 -11
- package/dist/collection/components/post-internet-breadcrumbs/components/breadcrumb-list.component.js.map +1 -1
- package/dist/collection/components/post-internet-breadcrumbs/components/focus-trap.component.js +42 -42
- package/dist/collection/components/post-internet-breadcrumbs/components/focus-trap.component.js.map +1 -1
- package/dist/collection/components/post-internet-breadcrumbs/components/middle-dropdown.component.js +8 -8
- package/dist/collection/components/post-internet-breadcrumbs/components/middle-dropdown.component.js.map +1 -1
- package/dist/collection/components/post-internet-breadcrumbs/components/middle-links.component.js +6 -6
- package/dist/collection/components/post-internet-breadcrumbs/components/middle-links.component.js.map +1 -1
- package/dist/collection/components/post-internet-breadcrumbs/components/overlay.component.js +12 -12
- package/dist/collection/components/post-internet-breadcrumbs/components/overlay.component.js.map +1 -1
- package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js +253 -253
- package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js.map +1 -1
- package/dist/collection/components/post-internet-footer/components/post-footer-block-address.component.js +12 -12
- package/dist/collection/components/post-internet-footer/components/post-footer-block-address.component.js.map +1 -1
- package/dist/collection/components/post-internet-footer/components/post-footer-block-contact.component.js +24 -24
- package/dist/collection/components/post-internet-footer/components/post-footer-block-contact.component.js.map +1 -1
- package/dist/collection/components/post-internet-footer/components/post-footer-block-custom.component.js +6 -6
- package/dist/collection/components/post-internet-footer/components/post-footer-block-custom.component.js.map +1 -1
- package/dist/collection/components/post-internet-footer/components/post-footer-block-list.component.js +6 -6
- package/dist/collection/components/post-internet-footer/components/post-footer-block-list.component.js.map +1 -1
- package/dist/collection/components/post-internet-footer/components/post-footer-block-socials.component.js +5 -5
- package/dist/collection/components/post-internet-footer/components/post-footer-block-socials.component.js.map +1 -1
- package/dist/collection/components/post-internet-footer/post-internet-footer.js +86 -86
- package/dist/collection/components/post-internet-footer/post-internet-footer.js.map +1 -1
- package/dist/collection/components/post-internet-header/post-internet-header.js +676 -676
- package/dist/collection/components/post-internet-header/post-internet-header.js.map +1 -1
- package/dist/collection/components/post-klp-login-widget/klp-widget.controller.js +14 -14
- package/dist/collection/components/post-klp-login-widget/klp-widget.controller.js.map +1 -1
- package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.js +67 -67
- package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.js.map +1 -1
- package/dist/collection/components/post-language-switch/components/post-language-switch-list.js +9 -9
- 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.js +186 -186
- package/dist/collection/components/post-language-switch/post-language-switch.js.map +1 -1
- package/dist/collection/components/post-logo/logo-sprite.component.js +4 -4
- package/dist/collection/components/post-logo/logo-sprite.component.js.map +1 -1
- package/dist/collection/components/post-logo/post-logo.js +60 -60
- package/dist/collection/components/post-logo/post-logo.js.map +1 -1
- package/dist/collection/components/post-main-navigation/components/level-one-action.component.js +13 -13
- package/dist/collection/components/post-main-navigation/components/level-one-action.component.js.map +1 -1
- package/dist/collection/components/post-main-navigation/post-main-navigation.css +1 -1
- package/dist/collection/components/post-main-navigation/post-main-navigation.js +347 -347
- package/dist/collection/components/post-main-navigation/post-main-navigation.js.map +1 -1
- package/dist/collection/components/post-meta-navigation/post-meta-navigation.js +67 -67
- package/dist/collection/components/post-meta-navigation/post-meta-navigation.js.map +1 -1
- package/dist/collection/components/post-search/post-search.js +362 -362
- package/dist/collection/components/post-search/post-search.js.map +1 -1
- package/dist/collection/components/post-skiplinks/post-skiplinks.js +51 -51
- package/dist/collection/components/post-skiplinks/post-skiplinks.js.map +1 -1
- package/dist/collection/data/store.js +11 -11
- package/dist/collection/data/store.js.map +1 -1
- package/dist/collection/index.js +2 -2
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/models/breadcrumbs.model.js +2 -2
- package/dist/collection/models/breadcrumbs.model.js.map +1 -1
- package/dist/collection/models/coveo.model.js +2 -2
- package/dist/collection/models/coveo.model.js.map +1 -1
- package/dist/collection/models/footer.model.js +2 -2
- package/dist/collection/models/footer.model.js.map +1 -1
- package/dist/collection/models/general.model.js +2 -2
- package/dist/collection/models/general.model.js.map +1 -1
- package/dist/collection/models/geocode.model.js +10 -10
- package/dist/collection/models/geocode.model.js.map +1 -1
- package/dist/collection/models/header.model.js +2 -2
- package/dist/collection/models/header.model.js.map +1 -1
- package/dist/collection/models/implementor.model.js +2 -2
- package/dist/collection/models/implementor.model.js.map +1 -1
- package/dist/collection/models/language.model.js +2 -2
- package/dist/collection/models/language.model.js.map +1 -1
- package/dist/collection/models/track-and-trace.model.js +2 -2
- package/dist/collection/models/track-and-trace.model.js.map +1 -1
- package/dist/collection/services/config.service.js +170 -170
- package/dist/collection/services/config.service.js.map +1 -1
- package/dist/collection/services/language.service.js +107 -107
- package/dist/collection/services/language.service.js.map +1 -1
- package/dist/collection/services/route.service.js +163 -163
- package/dist/collection/services/route.service.js.map +1 -1
- package/dist/collection/services/search/coveo.service.js +34 -34
- package/dist/collection/services/search/coveo.service.js.map +1 -1
- package/dist/collection/services/search/coveo.settings.js +19 -19
- package/dist/collection/services/search/coveo.settings.js.map +1 -1
- package/dist/collection/services/search/parcel.service.js +54 -54
- package/dist/collection/services/search/parcel.service.js.map +1 -1
- package/dist/collection/services/search/places.service.js +95 -95
- package/dist/collection/services/search/places.service.js.map +1 -1
- package/dist/collection/services/search/places.settings.js +16 -16
- package/dist/collection/services/search/places.settings.js.map +1 -1
- package/dist/collection/services/search/search-utilities.js +26 -26
- package/dist/collection/services/search/search-utilities.js.map +1 -1
- package/dist/collection/services/search/search.service.js +42 -42
- package/dist/collection/services/search/search.service.js.map +1 -1
- package/dist/collection/services/ui.service.js +30 -30
- package/dist/collection/services/ui.service.js.map +1 -1
- package/dist/collection/tests/setup-tests.js +14 -14
- package/dist/collection/tests/setup-tests.js.map +1 -1
- package/dist/collection/utils/highlighted.component.js +11 -11
- package/dist/collection/utils/highlighted.component.js.map +1 -1
- package/dist/collection/utils/if.component.js +7 -7
- package/dist/collection/utils/if.component.js.map +1 -1
- package/dist/collection/utils/svg-icon.component.js +3 -3
- package/dist/collection/utils/svg-icon.component.js.map +1 -1
- package/dist/collection/utils/svg-sprite.component.js +3 -3
- package/dist/collection/utils/svg-sprite.component.js.map +1 -1
- package/dist/collection/utils/utils.js +16 -16
- package/dist/collection/utils/utils.js.map +1 -1
- package/dist/components/klp-widget.controller.js +4810 -4810
- package/dist/components/klp-widget.controller.js.map +1 -1
- package/dist/components/language.service.js +139 -139
- package/dist/components/language.service.js.map +1 -1
- package/dist/components/post-klp-login-widget2.js +48 -48
- package/dist/components/post-klp-login-widget2.js.map +1 -1
- package/dist/components/post-language-switch2.js +102 -102
- package/dist/components/post-language-switch2.js.map +1 -1
- package/dist/components/post-logo2.js +67 -67
- package/dist/components/post-logo2.js.map +1 -1
- package/dist/components/post-main-navigation2.js +244 -244
- package/dist/components/post-main-navigation2.js.map +1 -1
- package/dist/components/post-meta-navigation2.js +32 -32
- package/dist/components/post-meta-navigation2.js.map +1 -1
- package/dist/components/post-search2.js +577 -555
- package/dist/components/post-search2.js.map +1 -1
- package/dist/components/post-skiplinks2.js +52 -52
- package/dist/components/post-skiplinks2.js.map +1 -1
- package/dist/components/store.js +19 -12
- package/dist/components/store.js.map +1 -1
- package/dist/components/svg-icon.component.js +1 -1
- package/dist/components/svg-icon.component.js.map +1 -1
- package/dist/components/svg-sprite.component.js +39 -39
- package/dist/components/svg-sprite.component.js.map +1 -1
- package/dist/components/swisspost-internet-breadcrumbs.js +387 -409
- package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -1
- package/dist/components/swisspost-internet-footer.js +140 -140
- package/dist/components/swisspost-internet-footer.js.map +1 -1
- package/dist/components/swisspost-internet-header.js +672 -672
- package/dist/components/swisspost-internet-header.js.map +1 -1
- package/dist/components/ui.service.js +27 -27
- package/dist/components/ui.service.js.map +1 -1
- package/dist/components/utils.js +14 -14
- package/dist/components/utils.js.map +1 -1
- package/dist/esm/{if.component-542fb8c3.js → if.component-0fe54385.js} +6 -6
- package/dist/esm/if.component-0fe54385.js.map +1 -0
- package/dist/esm/{klp-widget.controller-903e0422.js → klp-widget.controller-55366e6a.js} +4811 -4811
- package/dist/esm/{klp-widget.controller-903e0422.js.map → klp-widget.controller-55366e6a.js.map} +1 -1
- package/dist/esm/{language.service-e49858e0.js → language.service-023d2711.js} +141 -141
- package/dist/esm/language.service-023d2711.js.map +1 -0
- package/dist/esm/post-klp-login-widget.entry.js +33 -33
- package/dist/esm/post-klp-login-widget.entry.js.map +1 -1
- package/dist/esm/post-language-switch.entry.js +88 -88
- package/dist/esm/post-language-switch.entry.js.map +1 -1
- package/dist/esm/post-logo.entry.js +51 -51
- package/dist/esm/post-logo.entry.js.map +1 -1
- package/dist/esm/post-main-navigation.entry.js +227 -227
- package/dist/esm/post-main-navigation.entry.js.map +1 -1
- package/dist/esm/post-meta-navigation.entry.js +15 -15
- package/dist/esm/post-meta-navigation.entry.js.map +1 -1
- package/dist/esm/post-search.entry.js +556 -534
- package/dist/esm/post-search.entry.js.map +1 -1
- package/dist/esm/post-skiplinks.entry.js +41 -41
- package/dist/esm/post-skiplinks.entry.js.map +1 -1
- package/dist/esm/{store-d495dc07.js → store-837c3490.js} +20 -13
- package/dist/esm/store-837c3490.js.map +1 -0
- package/dist/esm/{svg-icon.component-1b1b27a2.js → svg-icon.component-e09b4bf9.js} +2 -2
- package/dist/esm/svg-icon.component-e09b4bf9.js.map +1 -0
- package/dist/esm/{svg-sprite.component-ec0ac38c.js → svg-sprite.component-cf60303f.js} +40 -40
- package/dist/esm/svg-sprite.component-cf60303f.js.map +1 -0
- package/dist/esm/swisspost-internet-breadcrumbs.entry.js +370 -392
- package/dist/esm/swisspost-internet-breadcrumbs.entry.js.map +1 -1
- package/dist/esm/swisspost-internet-footer.entry.js +125 -125
- package/dist/esm/swisspost-internet-footer.entry.js.map +1 -1
- package/dist/esm/swisspost-internet-header.entry.js +608 -608
- package/dist/esm/swisspost-internet-header.entry.js.map +1 -1
- package/dist/esm/{ui.service-1d9b0f51.js → ui.service-2fbc9c45.js} +28 -28
- package/dist/esm/ui.service-2fbc9c45.js.map +1 -0
- package/dist/esm/{utils-5bf107ff.js → utils-ee79122f.js} +15 -15
- package/dist/esm/utils-ee79122f.js.map +1 -0
- package/dist/esm-es5/{if.component-542fb8c3.js → if.component-0fe54385.js} +1 -1
- package/dist/esm-es5/if.component-0fe54385.js.map +1 -0
- package/dist/esm-es5/{klp-widget.controller-903e0422.js → klp-widget.controller-55366e6a.js} +1 -1
- package/dist/{swisspost-internet-header/p-83f6cd1e.js.map → esm-es5/klp-widget.controller-55366e6a.js.map} +1 -1
- package/dist/esm-es5/{language.service-e49858e0.js → language.service-023d2711.js} +2 -2
- package/dist/esm-es5/language.service-023d2711.js.map +1 -0
- 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-837c3490.js +2 -0
- package/dist/esm-es5/store-837c3490.js.map +1 -0
- package/dist/esm-es5/{svg-icon.component-1b1b27a2.js → svg-icon.component-e09b4bf9.js} +1 -1
- package/dist/esm-es5/svg-icon.component-e09b4bf9.js.map +1 -0
- package/dist/esm-es5/{svg-sprite.component-ec0ac38c.js → svg-sprite.component-cf60303f.js} +1 -1
- package/dist/esm-es5/svg-sprite.component-cf60303f.js.map +1 -0
- package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +3 -3
- 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/{ui.service-1d9b0f51.js → ui.service-2fbc9c45.js} +1 -1
- package/dist/esm-es5/ui.service-2fbc9c45.js.map +1 -0
- package/dist/esm-es5/{utils-5bf107ff.js → utils-ee79122f.js} +1 -1
- package/dist/esm-es5/utils-ee79122f.js.map +1 -0
- package/dist/swisspost-internet-header/assets/config/test-configuration.json +4067 -4067
- package/dist/swisspost-internet-header/p-06649b46.js +2 -0
- package/dist/swisspost-internet-header/p-06649b46.js.map +1 -0
- package/dist/swisspost-internet-header/{p-ec80c8fc.js → p-0942595f.js} +2 -2
- package/dist/swisspost-internet-header/p-0942595f.js.map +1 -0
- package/dist/swisspost-internet-header/{p-c29ec122.system.js → p-0c5624c0.system.js} +1 -1
- package/dist/swisspost-internet-header/p-0c5624c0.system.js.map +1 -0
- package/dist/swisspost-internet-header/{p-2eb04045.entry.js → p-0cba8ab4.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-0cba8ab4.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-17a47667.system.js +1 -1
- package/dist/swisspost-internet-header/{p-ddcb8258.entry.js → p-26879023.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-26879023.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-cb3de015.system.entry.js → p-28e6362f.system.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-28e6362f.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-00fd320e.entry.js → p-322526ef.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-322526ef.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-f4ff1e9e.system.js → p-3753a678.system.js} +2 -2
- package/dist/swisspost-internet-header/p-3753a678.system.js.map +1 -0
- package/dist/swisspost-internet-header/{p-a9c4b2d0.system.entry.js → p-38d645ba.system.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-38d645ba.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-3df823de.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-3df823de.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-872a76a4.system.js → p-42695801.system.js} +1 -1
- package/dist/swisspost-internet-header/p-42695801.system.js.map +1 -0
- package/dist/swisspost-internet-header/{p-bdabd6ac.js → p-45db66a6.js} +1 -1
- package/dist/swisspost-internet-header/p-45db66a6.js.map +1 -0
- package/dist/swisspost-internet-header/p-493337e1.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-493337e1.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-78f653be.system.entry.js → p-5d2fac3b.system.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-5d2fac3b.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-62c5cf26.entry.js +2 -0
- package/dist/swisspost-internet-header/p-62c5cf26.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-9d0a7039.entry.js → p-64cb215a.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-64cb215a.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-a51ad207.system.entry.js → p-66144e99.system.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-66144e99.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-715ebef7.system.entry.js +7 -0
- package/dist/swisspost-internet-header/p-715ebef7.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-7709ed5c.entry.js +2 -0
- package/dist/swisspost-internet-header/p-7709ed5c.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-12baacf0.entry.js → p-77d5e07f.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-77d5e07f.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-7fcba2e7.system.js +2 -0
- package/dist/swisspost-internet-header/p-7fcba2e7.system.js.map +1 -0
- package/dist/swisspost-internet-header/{p-549b62ba.system.js → p-88aac12c.system.js} +1 -1
- package/dist/swisspost-internet-header/p-88aac12c.system.js.map +1 -0
- package/dist/swisspost-internet-header/{p-0e2ec555.js → p-8bf099a8.js} +1 -1
- package/dist/swisspost-internet-header/p-8bf099a8.js.map +1 -0
- package/dist/swisspost-internet-header/{p-3eb881c3.js → p-a2f9d462.js} +1 -1
- package/dist/swisspost-internet-header/p-a2f9d462.js.map +1 -0
- package/dist/swisspost-internet-header/{p-eeff8b03.js → p-ab1dd269.js} +1 -1
- package/dist/swisspost-internet-header/p-ab1dd269.js.map +1 -0
- package/dist/swisspost-internet-header/{p-a4160d23.entry.js → p-ccb522ba.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-ccb522ba.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-cfa787d7.entry.js +6 -0
- package/dist/swisspost-internet-header/p-cfa787d7.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-8717445f.entry.js → p-d33734b5.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-d33734b5.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-c946c5b8.system.entry.js → p-db87f3e3.system.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-db87f3e3.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-b406315a.system.entry.js → p-e2990968.system.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-e2990968.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-83f6cd1e.js → p-ed24b372.js} +1 -1
- package/dist/swisspost-internet-header/p-ed24b372.js.map +1 -0
- package/dist/swisspost-internet-header/{p-9509f6c7.system.js → p-edb2802d.system.js} +1 -1
- package/dist/swisspost-internet-header/p-edb2802d.system.js.map +1 -0
- package/dist/swisspost-internet-header/{p-ee915bbe.system.js → p-ee119d2e.system.js} +1 -1
- package/dist/swisspost-internet-header/p-ee119d2e.system.js.map +1 -0
- package/dist/swisspost-internet-header/{p-883f9547.system.entry.js → p-f38f38f4.system.entry.js} +2 -2
- package/dist/swisspost-internet-header/p-f38f38f4.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-3ba40afe.js → p-f7c0cf7b.js} +1 -1
- package/dist/swisspost-internet-header/p-f7c0cf7b.js.map +1 -0
- package/dist/swisspost-internet-header/{p-4654b2af.system.js → p-ffc59851.system.js} +1 -1
- package/dist/swisspost-internet-header/p-ffc59851.system.js.map +1 -0
- package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
- package/dist/types/assets/i18n/translations.d.ts +37 -37
- package/dist/types/components/post-internet-breadcrumbs/components/breadcrumb-list.component.d.ts +9 -9
- package/dist/types/components/post-internet-breadcrumbs/components/focus-trap.component.d.ts +12 -12
- package/dist/types/components/post-internet-breadcrumbs/components/middle-dropdown.component.d.ts +7 -7
- package/dist/types/components/post-internet-breadcrumbs/components/middle-links.component.d.ts +6 -6
- package/dist/types/components/post-internet-breadcrumbs/components/overlay.component.d.ts +16 -16
- package/dist/types/components/post-internet-breadcrumbs/post-internet-breadcrumbs.d.ts +45 -45
- package/dist/types/components/post-internet-footer/components/post-footer-block-address.component.d.ts +5 -5
- package/dist/types/components/post-internet-footer/components/post-footer-block-contact.component.d.ts +6 -6
- package/dist/types/components/post-internet-footer/components/post-footer-block-custom.component.d.ts +4 -4
- package/dist/types/components/post-internet-footer/components/post-footer-block-list.component.d.ts +5 -5
- package/dist/types/components/post-internet-footer/components/post-footer-block-socials.component.d.ts +5 -5
- package/dist/types/components/post-internet-footer/post-internet-footer.d.ts +10 -10
- package/dist/types/components/post-internet-header/post-internet-header.d.ts +124 -124
- package/dist/types/components/post-klp-login-widget/klp-widget.controller.d.ts +3 -3
- package/dist/types/components/post-klp-login-widget/post-klp-login-widget.d.ts +10 -10
- package/dist/types/components/post-language-switch/components/post-language-switch-list.d.ts +6 -6
- package/dist/types/components/post-language-switch/post-language-switch.d.ts +27 -27
- package/dist/types/components/post-logo/logo-sprite.component.d.ts +4 -4
- package/dist/types/components/post-logo/post-logo.d.ts +11 -11
- package/dist/types/components/post-main-navigation/components/level-one-action.component.d.ts +8 -8
- package/dist/types/components/post-main-navigation/post-main-navigation.d.ts +48 -48
- package/dist/types/components/post-meta-navigation/post-meta-navigation.d.ts +5 -5
- package/dist/types/components/post-search/post-search.d.ts +61 -61
- package/dist/types/components/post-skiplinks/post-skiplinks.d.ts +9 -9
- package/dist/types/data/store.d.ts +16 -16
- package/dist/types/index.d.ts +1 -1
- package/dist/types/models/breadcrumbs.model.d.ts +36 -36
- package/dist/types/models/coveo.model.d.ts +22 -22
- package/dist/types/models/footer.model.d.ts +48 -48
- package/dist/types/models/general.model.d.ts +46 -46
- package/dist/types/models/geocode.model.d.ts +52 -52
- package/dist/types/models/header.model.d.ts +163 -163
- package/dist/types/models/implementor.model.d.ts +22 -22
- package/dist/types/models/language.model.d.ts +6 -6
- package/dist/types/models/track-and-trace.model.d.ts +25 -25
- package/dist/types/services/config.service.d.ts +56 -56
- package/dist/types/services/language.service.d.ts +65 -65
- package/dist/types/services/route.service.d.ts +39 -39
- package/dist/types/services/search/coveo.service.d.ts +9 -9
- package/dist/types/services/search/coveo.settings.d.ts +2 -2
- package/dist/types/services/search/parcel.service.d.ts +28 -28
- package/dist/types/services/search/places.service.d.ts +24 -24
- package/dist/types/services/search/places.settings.d.ts +3 -3
- package/dist/types/services/search/search-utilities.d.ts +15 -15
- package/dist/types/services/search/search.service.d.ts +24 -24
- package/dist/types/services/ui.service.d.ts +23 -23
- package/dist/types/utils/highlighted.component.d.ts +4 -4
- package/dist/types/utils/if.component.d.ts +4 -4
- package/dist/types/utils/svg-icon.component.d.ts +4 -4
- package/dist/types/utils/svg-sprite.component.d.ts +1 -1
- package/dist/types/utils/utils.d.ts +8 -8
- package/package.json +7 -7
- package/readme.md +57 -15
- package/dist/cjs/if.component-313f59b8.js.map +0 -1
- package/dist/cjs/language.service-a80ae01d.js.map +0 -1
- package/dist/cjs/store-47e14589.js.map +0 -1
- package/dist/cjs/svg-icon.component-10fbda11.js.map +0 -1
- package/dist/cjs/svg-sprite.component-c3b454b3.js.map +0 -1
- package/dist/cjs/ui.service-db4a8252.js.map +0 -1
- package/dist/cjs/utils-b6014257.js.map +0 -1
- package/dist/esm/if.component-542fb8c3.js.map +0 -1
- package/dist/esm/language.service-e49858e0.js.map +0 -1
- package/dist/esm/store-d495dc07.js.map +0 -1
- package/dist/esm/svg-icon.component-1b1b27a2.js.map +0 -1
- package/dist/esm/svg-sprite.component-ec0ac38c.js.map +0 -1
- package/dist/esm/ui.service-1d9b0f51.js.map +0 -1
- package/dist/esm/utils-5bf107ff.js.map +0 -1
- package/dist/esm-es5/if.component-542fb8c3.js.map +0 -1
- package/dist/esm-es5/klp-widget.controller-903e0422.js.map +0 -1
- package/dist/esm-es5/language.service-e49858e0.js.map +0 -1
- package/dist/esm-es5/store-d495dc07.js +0 -2
- package/dist/esm-es5/store-d495dc07.js.map +0 -1
- package/dist/esm-es5/svg-icon.component-1b1b27a2.js.map +0 -1
- package/dist/esm-es5/svg-sprite.component-ec0ac38c.js.map +0 -1
- package/dist/esm-es5/ui.service-1d9b0f51.js.map +0 -1
- package/dist/esm-es5/utils-5bf107ff.js.map +0 -1
- package/dist/swisspost-internet-header/p-00fd320e.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-0e2ec555.js.map +0 -1
- package/dist/swisspost-internet-header/p-12baacf0.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-2eb04045.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-3ba40afe.js.map +0 -1
- package/dist/swisspost-internet-header/p-3eb881c3.js.map +0 -1
- package/dist/swisspost-internet-header/p-458c9862.system.entry.js +0 -2
- package/dist/swisspost-internet-header/p-458c9862.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-4654b2af.system.js.map +0 -1
- package/dist/swisspost-internet-header/p-549b62ba.system.js.map +0 -1
- package/dist/swisspost-internet-header/p-5e43c5e0.js +0 -2
- package/dist/swisspost-internet-header/p-5e43c5e0.js.map +0 -1
- package/dist/swisspost-internet-header/p-74932c29.entry.js +0 -6
- package/dist/swisspost-internet-header/p-74932c29.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-76ce4acc.system.entry.js +0 -2
- package/dist/swisspost-internet-header/p-76ce4acc.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-78f653be.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-7f16a46b.entry.js +0 -2
- package/dist/swisspost-internet-header/p-7f16a46b.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-8717445f.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-872a76a4.system.js.map +0 -1
- package/dist/swisspost-internet-header/p-883f9547.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-9509f6c7.system.js.map +0 -1
- package/dist/swisspost-internet-header/p-9d0a7039.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-a4160d23.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-a51ad207.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-a9c4b2d0.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-b406315a.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-bdabd6ac.js.map +0 -1
- package/dist/swisspost-internet-header/p-c29ec122.system.js.map +0 -1
- package/dist/swisspost-internet-header/p-c69923cd.system.js +0 -2
- package/dist/swisspost-internet-header/p-c69923cd.system.js.map +0 -1
- package/dist/swisspost-internet-header/p-c946c5b8.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-cb3de015.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-d713a3b3.system.entry.js +0 -7
- package/dist/swisspost-internet-header/p-d713a3b3.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-ddcb8258.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-ec80c8fc.js.map +0 -1
- package/dist/swisspost-internet-header/p-ee915bbe.system.js.map +0 -1
- package/dist/swisspost-internet-header/p-eeff8b03.js.map +0 -1
- package/dist/swisspost-internet-header/p-f4ff1e9e.system.js.map +0 -1
- package/dist/swisspost-internet-header/p-fa0c66c7.entry.js +0 -2
- package/dist/swisspost-internet-header/p-fa0c66c7.entry.js.map +0 -1
|
@@ -1,362 +1,362 @@
|
|
|
1
|
-
import { Host, h } from '@stencil/core';
|
|
2
|
-
import { throttle } from 'throttle-debounce';
|
|
3
|
-
import { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock';
|
|
4
|
-
import { state } from '../../data/store';
|
|
5
|
-
import { getSearchRedirectUrl, equalizeArrays } from '../../services/search/search.service';
|
|
6
|
-
import { getCoveoSuggestions } from '../../services/search/coveo.service';
|
|
7
|
-
import { getPlacesUrl, highlightPlacesString, queryPlaces, } from '../../services/search/places.service';
|
|
8
|
-
import { userPrefersReducedMotion, elementHasTransition } from '../../services/ui.service';
|
|
9
|
-
import { HighlightedText } from '../../utils/highlighted.component';
|
|
10
|
-
import { SvgSprite } from '../../utils/svg-sprite.component';
|
|
11
|
-
import { SvgIcon } from '../../utils/svg-icon.component';
|
|
12
|
-
import { getParcelSuggestion } from '../../services/search/parcel.service';
|
|
13
|
-
import { If } from '../../utils/if.component';
|
|
14
|
-
export class PostSearch {
|
|
15
|
-
constructor() {
|
|
16
|
-
this.searchDropdownOpen = false;
|
|
17
|
-
this.coveoSuggestions = [];
|
|
18
|
-
this.placeSuggestions = [];
|
|
19
|
-
this.parcelSuggestion = null;
|
|
20
|
-
}
|
|
21
|
-
connectedCallback() {
|
|
22
|
-
this.throttledResize = throttle(300, () => this.handleResize());
|
|
23
|
-
window.addEventListener('resize', this.throttledResize, { passive: true });
|
|
24
|
-
}
|
|
25
|
-
disconnectedCallback() {
|
|
26
|
-
window.removeEventListener('resize', this.throttledResize);
|
|
27
|
-
clearAllBodyScrollLocks();
|
|
28
|
-
}
|
|
29
|
-
componentWillUpdate() {
|
|
30
|
-
// Check if search flyout got set to close
|
|
31
|
-
if (this.searchFlyout && !this.searchDropdownOpen) {
|
|
32
|
-
this.searchFlyout.classList.remove('open');
|
|
33
|
-
// Check if element has transition applied and whether user prefers to see animations or not
|
|
34
|
-
if (elementHasTransition(this.searchFlyout, 'transform') && !userPrefersReducedMotion()) {
|
|
35
|
-
// Wait for CSS transition 'transform' to end before continuing
|
|
36
|
-
return new Promise(resolve => {
|
|
37
|
-
if (this.searchFlyout === undefined) {
|
|
38
|
-
return resolve(true);
|
|
39
|
-
}
|
|
40
|
-
this.searchFlyout.addEventListener('transitionend', event => {
|
|
41
|
-
if (event.propertyName === 'transform') {
|
|
42
|
-
resolve(true);
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
componentDidUpdate() {
|
|
50
|
-
// Search flyout got set to open
|
|
51
|
-
if (this.searchFlyout && this.searchDropdownOpen) {
|
|
52
|
-
// Force browser to redraw/refresh DOM before adding 'open' class
|
|
53
|
-
this.searchFlyout.getBoundingClientRect();
|
|
54
|
-
this.searchFlyout.classList.add('open');
|
|
55
|
-
}
|
|
56
|
-
// Focus on the searchBox whenever the dropdown is opened
|
|
57
|
-
if (this.searchDropdownOpen && this.searchBox) {
|
|
58
|
-
this.searchBox.focus({ preventScroll: true });
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Toggle the dropdown and optionally force an open/closed state
|
|
63
|
-
* @param force Boolean to force open/closed state
|
|
64
|
-
* @returns Boolean indicating open state of the component
|
|
65
|
-
*/
|
|
66
|
-
async toggleDropdown(force) {
|
|
67
|
-
this.searchDropdownOpen =
|
|
68
|
-
force === undefined || typeof force !== 'boolean' ? !this.searchDropdownOpen : force;
|
|
69
|
-
this.dropdownToggled.emit({ open: this.searchDropdownOpen, element: this.host });
|
|
70
|
-
if (!this.searchDropdownOpen) {
|
|
71
|
-
// Reset suggestions when dropdown closes
|
|
72
|
-
this.coveoSuggestions = [];
|
|
73
|
-
this.placeSuggestions = [];
|
|
74
|
-
if (this.searchBox)
|
|
75
|
-
this.searchBox.value = '';
|
|
76
|
-
this.setFocus();
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
// Get basic suggestions when dropdown opens
|
|
80
|
-
try {
|
|
81
|
-
this.coveoSuggestions = await getCoveoSuggestions('');
|
|
82
|
-
}
|
|
83
|
-
catch (_a) { }
|
|
84
|
-
}
|
|
85
|
-
this.setBodyScroll();
|
|
86
|
-
return this.searchDropdownOpen;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Sets the focus on the search button
|
|
90
|
-
*/
|
|
91
|
-
async setFocus() {
|
|
92
|
-
const shadowRoot = this.host.shadowRoot;
|
|
93
|
-
if (shadowRoot === null) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
const toggleButton = shadowRoot.querySelector('.search-button');
|
|
97
|
-
if (toggleButton) {
|
|
98
|
-
toggleButton.focus();
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
handleResize() {
|
|
102
|
-
// Only enable/disable body scroll on resize if the search dropdown is open, otherwise this could lead to side effects in other controls
|
|
103
|
-
if (this.searchDropdownOpen) {
|
|
104
|
-
this.setBodyScroll();
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Disable or re-enable body scrolling, depending on whether search dropdown is open or closed in mobile view (width < 1024px)
|
|
109
|
-
*/
|
|
110
|
-
setBodyScroll() {
|
|
111
|
-
if (this.searchDropdownOpen && window.innerWidth < 1024) {
|
|
112
|
-
disableBodyScroll(this.searchFlyout);
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
enableBodyScroll(this.searchFlyout);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Fetch suggestions from all available sources
|
|
120
|
-
*/
|
|
121
|
-
async handleSearchInput() {
|
|
122
|
-
var _a;
|
|
123
|
-
if (this.searchBox === undefined || ((_a = state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search) === undefined) {
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
const query = this.searchBox.value.trim();
|
|
127
|
-
const [placeSuggestions, coveoSuggestions, trackAndTraceInfo] = await Promise.all([
|
|
128
|
-
queryPlaces(query),
|
|
129
|
-
getCoveoSuggestions(query),
|
|
130
|
-
getParcelSuggestion(query, state.localizedConfig.header.search),
|
|
131
|
-
]);
|
|
132
|
-
// Parcel suggestion is more important than any other
|
|
133
|
-
if (trackAndTraceInfo) {
|
|
134
|
-
this.parcelSuggestion = trackAndTraceInfo;
|
|
135
|
-
this.placeSuggestions = [];
|
|
136
|
-
this.coveoSuggestions = [];
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
[this.coveoSuggestions, this.placeSuggestions] = equalizeArrays(coveoSuggestions, placeSuggestions, 8);
|
|
140
|
-
}
|
|
141
|
-
this.deselectSuggestion();
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Start search on enter
|
|
145
|
-
* @param event
|
|
146
|
-
*/
|
|
147
|
-
handleKeyDown(event) {
|
|
148
|
-
var _a, _b, _c, _d;
|
|
149
|
-
if (this.searchFlyout === undefined) {
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
let selectedSuggestion = this.searchFlyout.querySelector('.suggestions > li > a.selected');
|
|
153
|
-
switch (event.key.toLowerCase()) {
|
|
154
|
-
case 'enter':
|
|
155
|
-
if (selectedSuggestion) {
|
|
156
|
-
const selectedHref = selectedSuggestion.getAttribute('href');
|
|
157
|
-
if (selectedHref !== null) {
|
|
158
|
-
window.location.href = selectedHref;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
this.startSearch();
|
|
163
|
-
}
|
|
164
|
-
break;
|
|
165
|
-
case 'arrowdown':
|
|
166
|
-
case 'arrowup':
|
|
167
|
-
const suggestions = this.searchFlyout.querySelectorAll('.suggestions > li > a');
|
|
168
|
-
this.deselectSuggestion();
|
|
169
|
-
if (event.key.toLowerCase() === 'arrowdown') {
|
|
170
|
-
if ((_b = (_a = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.parentElement) === null || _a === void 0 ? void 0 : _a.nextElementSibling) === null || _b === void 0 ? void 0 : _b.firstElementChild) {
|
|
171
|
-
// Select next suggestion if there's any, otherwise none will be selected
|
|
172
|
-
selectedSuggestion.parentElement.nextElementSibling.firstElementChild.classList.add('selected');
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
// If there are any suggestions, select first suggestion in list
|
|
176
|
-
if (suggestions.length > 0) {
|
|
177
|
-
suggestions[0].classList.add('selected');
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
else if (event.key.toLowerCase() === 'arrowup') {
|
|
182
|
-
if ((_d = (_c = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.parentElement) === null || _c === void 0 ? void 0 : _c.previousElementSibling) === null || _d === void 0 ? void 0 : _d.firstElementChild) {
|
|
183
|
-
// Select previous suggestion if there's any, otherwise none will be selected
|
|
184
|
-
selectedSuggestion.parentElement.previousElementSibling.firstElementChild.classList.add('selected');
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
// If there are any suggestions, select last suggestion in list
|
|
188
|
-
if (suggestions.length > 0) {
|
|
189
|
-
suggestions[suggestions.length - 1].classList.add('selected');
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
// Get the newly selected suggestion
|
|
194
|
-
selectedSuggestion = this.searchFlyout.querySelector('.suggestions > li > a.selected');
|
|
195
|
-
const suggestedText = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.dataset.suggestionText;
|
|
196
|
-
// Update search box value with selected suggestion text
|
|
197
|
-
if (suggestedText !== undefined && this.searchBox) {
|
|
198
|
-
this.searchBox.value = suggestedText;
|
|
199
|
-
}
|
|
200
|
-
break;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Set selected suggestion on mouse enter
|
|
205
|
-
* @param event
|
|
206
|
-
*/
|
|
207
|
-
handleMouseEnterSuggestion(event) {
|
|
208
|
-
this.deselectSuggestion();
|
|
209
|
-
// Set hovered suggestion element as selected
|
|
210
|
-
event.target.classList.add('selected');
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Set selected suggestion on mouse enter
|
|
214
|
-
* @param event
|
|
215
|
-
*/
|
|
216
|
-
handleMouseLeaveSuggestions() {
|
|
217
|
-
this.deselectSuggestion();
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Deselect any previously selected suggestion
|
|
221
|
-
*/
|
|
222
|
-
deselectSuggestion() {
|
|
223
|
-
if (this.searchFlyout === undefined)
|
|
224
|
-
return;
|
|
225
|
-
const selectedSuggestion = this.searchFlyout.querySelector('.suggestions .selected');
|
|
226
|
-
if (selectedSuggestion) {
|
|
227
|
-
selectedSuggestion.classList.remove('selected');
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Redirect to the post search page
|
|
232
|
-
*/
|
|
233
|
-
async startSearch() {
|
|
234
|
-
var _a;
|
|
235
|
-
if (this.searchBox && ((_a = state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search)) {
|
|
236
|
-
const redirectUrl = await getSearchRedirectUrl(this.searchBox.value.trim(), state.localizedConfig.header.search);
|
|
237
|
-
if (!redirectUrl)
|
|
238
|
-
return;
|
|
239
|
-
window.location.href = redirectUrl;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
render() {
|
|
243
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
244
|
-
if (((_a = state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header) === undefined) {
|
|
245
|
-
return;
|
|
246
|
-
}
|
|
247
|
-
const { translations, search } = state.localizedConfig.header;
|
|
248
|
-
const showPortalRecommendations = ((_b = this.searchBox) === null || _b === void 0 ? void 0 : _b.value) === '' && ((_c = search.searchRecommendations) === null || _c === void 0 ? void 0 : _c.links.length) > 0;
|
|
249
|
-
return (h(Host, null, h(SvgSprite, null), h("div", { class: "search" }, h("button", { id: "post-internet-header-search-button", class: "search-button", type: "button", "aria-expanded": `${this.searchDropdownOpen}`, onClick: e => this.toggleDropdown(e) }, h("span", { class: "visually-hidden" }, this.searchDropdownOpen
|
|
250
|
-
? translations.searchToggleExpanded
|
|
251
|
-
: translations.searchToggle), h(SvgIcon, { name: this.searchDropdownOpen ? 'pi-close' : 'pi-search' })), h(If, { condition: this.searchDropdownOpen }, h("div", { class: "flyout", ref: e => (this.searchFlyout = e) }, h("div", { class: "container box" }, h("div", { class: "row" }, h("div", { class: "col-xs-12 col-md-10 col-lg-8" }, h("div", { class: "form-group form-floating" }, h("input", { type: "text", id: "searchBox", class: "form-control form-control-lg", placeholder: translations.flyoutSearchBoxFloatingLabel, autocomplete: "off", ref: el => (this.searchBox = el), onInput: () => this.handleSearchInput(), onKeyDown: e => this.handleKeyDown(e) }), h("label", { htmlFor: "searchBox" }, translations.flyoutSearchBoxFloatingLabel), h("button", { onClick: () => this.startSearch(), class: "nav-link start-search-button" }, h("span", { class: "visually-hidden" }, translations.searchSubmit), h(SvgIcon, { name: "pi-search" }))), showPortalRecommendations && (h("h2", { class: "bold" }, search.searchRecommendations.title)), h("ul", { class: "suggestions no-list", onMouseLeave: () => this.handleMouseLeaveSuggestions() }, showPortalRecommendations &&
|
|
252
|
-
search.searchRecommendations.links.map(recommendation => (h("li", { key: recommendation.href }, h("a", { class: "nav-link search-recommendation", href: new URL(recommendation.href, 'https://post.ch').href, "data-suggestion-text": recommendation.label, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, h("span", { class: "search-recommendation__icon", innerHTML: recommendation.inlineSvg }), h("span", null, recommendation.label))))), this.parcelSuggestion && this.parcelSuggestion.ok && (h("li", null, h("a", { class: "nav-link parcel-suggestion", href: this.parcelSuggestion.url, "data-suggestion-text": (_d = this.searchBox) === null || _d === void 0 ? void 0 : _d.value, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, h(SvgIcon, { name: "pi-letter-parcel" }), h("span", { class: "bold" }, (_f = (_e = this.parcelSuggestion) === null || _e === void 0 ? void 0 : _e.sending) === null || _f === void 0 ? void 0 :
|
|
253
|
-
_f.id, ":\u00A0"), h("span", null, (_h = (_g = this.parcelSuggestion) === null || _g === void 0 ? void 0 : _g.sending) === null || _h === void 0 ? void 0 :
|
|
254
|
-
_h.product, ",", ' ', (_k = (_j = this.parcelSuggestion) === null || _j === void 0 ? void 0 : _j.sending) === null || _k === void 0 ? void 0 :
|
|
255
|
-
_k.recipient.zipcode, ' ', (_m = (_l = this.parcelSuggestion) === null || _l === void 0 ? void 0 : _l.sending) === null || _m === void 0 ? void 0 :
|
|
256
|
-
_m.recipient.city, ",", ' ', (_p = (_o = this.parcelSuggestion) === null || _o === void 0 ? void 0 : _o.sending) === null || _p === void 0 ? void 0 :
|
|
257
|
-
_p.state)))), !showPortalRecommendations &&
|
|
258
|
-
this.coveoSuggestions &&
|
|
259
|
-
this.coveoSuggestions.map(suggestion => (h("li", { key: suggestion.objectId }, h("a", { class: "nav-link", href: suggestion.redirectUrl, "data-suggestion-text": suggestion.expression, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, h(SvgIcon, { name: "pi-search" }), h(HighlightedText, { text: suggestion.highlighted }))))), !showPortalRecommendations &&
|
|
260
|
-
this.placeSuggestions &&
|
|
261
|
-
this.placeSuggestions.map(suggestion => {
|
|
262
|
-
var _a, _b;
|
|
263
|
-
return (h("li", { key: suggestion.id }, h("a", { class: "nav-link", href: getPlacesUrl(suggestion), "data-suggestion-text": suggestion.name, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, h(SvgIcon, { name: "pi-place" }), h(HighlightedText, { text: highlightPlacesString((_b = (_a = this.searchBox) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.trim(), suggestion.name) }))));
|
|
264
|
-
}))))))))));
|
|
265
|
-
}
|
|
266
|
-
static get is() { return "post-search"; }
|
|
267
|
-
static get encapsulation() { return "shadow"; }
|
|
268
|
-
static get originalStyleUrls() {
|
|
269
|
-
return {
|
|
270
|
-
"$": ["post-search.scss"]
|
|
271
|
-
};
|
|
272
|
-
}
|
|
273
|
-
static get styleUrls() {
|
|
274
|
-
return {
|
|
275
|
-
"$": ["post-search.css"]
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
|
-
static get states() {
|
|
279
|
-
return {
|
|
280
|
-
"searchDropdownOpen": {},
|
|
281
|
-
"coveoSuggestions": {},
|
|
282
|
-
"placeSuggestions": {},
|
|
283
|
-
"parcelSuggestion": {}
|
|
284
|
-
};
|
|
285
|
-
}
|
|
286
|
-
static get events() {
|
|
287
|
-
return [{
|
|
288
|
-
"method": "dropdownToggled",
|
|
289
|
-
"name": "dropdownToggled",
|
|
290
|
-
"bubbles": true,
|
|
291
|
-
"cancelable": true,
|
|
292
|
-
"composed": true,
|
|
293
|
-
"docs": {
|
|
294
|
-
"tags": [],
|
|
295
|
-
"text": ""
|
|
296
|
-
},
|
|
297
|
-
"complexType": {
|
|
298
|
-
"original": "DropdownEvent",
|
|
299
|
-
"resolved": "{ open: boolean; element: DropdownElement; }",
|
|
300
|
-
"references": {
|
|
301
|
-
"DropdownEvent": {
|
|
302
|
-
"location": "import",
|
|
303
|
-
"path": "../../models/header.model"
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
}];
|
|
308
|
-
}
|
|
309
|
-
static get methods() {
|
|
310
|
-
return {
|
|
311
|
-
"toggleDropdown": {
|
|
312
|
-
"complexType": {
|
|
313
|
-
"signature": "(force?: unknown) => Promise<boolean>",
|
|
314
|
-
"parameters": [{
|
|
315
|
-
"tags": [{
|
|
316
|
-
"name": "param",
|
|
317
|
-
"text": "force Boolean to force open/closed state"
|
|
318
|
-
}],
|
|
319
|
-
"text": "Boolean to force open/closed state"
|
|
320
|
-
}],
|
|
321
|
-
"references": {
|
|
322
|
-
"Promise": {
|
|
323
|
-
"location": "global"
|
|
324
|
-
}
|
|
325
|
-
},
|
|
326
|
-
"return": "Promise<boolean>"
|
|
327
|
-
},
|
|
328
|
-
"docs": {
|
|
329
|
-
"text": "Toggle the dropdown and optionally force an open/closed state",
|
|
330
|
-
"tags": [{
|
|
331
|
-
"name": "param",
|
|
332
|
-
"text": "force Boolean to force open/closed state"
|
|
333
|
-
}, {
|
|
334
|
-
"name": "returns",
|
|
335
|
-
"text": "Boolean indicating open state of the component"
|
|
336
|
-
}]
|
|
337
|
-
}
|
|
338
|
-
},
|
|
339
|
-
"setFocus": {
|
|
340
|
-
"complexType": {
|
|
341
|
-
"signature": "() => Promise<void>",
|
|
342
|
-
"parameters": [],
|
|
343
|
-
"references": {
|
|
344
|
-
"Promise": {
|
|
345
|
-
"location": "global"
|
|
346
|
-
},
|
|
347
|
-
"HTMLElement": {
|
|
348
|
-
"location": "global"
|
|
349
|
-
}
|
|
350
|
-
},
|
|
351
|
-
"return": "Promise<void>"
|
|
352
|
-
},
|
|
353
|
-
"docs": {
|
|
354
|
-
"text": "Sets the focus on the search button",
|
|
355
|
-
"tags": []
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
};
|
|
359
|
-
}
|
|
360
|
-
static get elementRef() { return "host"; }
|
|
361
|
-
}
|
|
362
|
-
//# sourceMappingURL=post-search.js.map
|
|
1
|
+
import { Host, h } from '@stencil/core';
|
|
2
|
+
import { throttle } from 'throttle-debounce';
|
|
3
|
+
import { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock';
|
|
4
|
+
import { state } from '../../data/store';
|
|
5
|
+
import { getSearchRedirectUrl, equalizeArrays } from '../../services/search/search.service';
|
|
6
|
+
import { getCoveoSuggestions } from '../../services/search/coveo.service';
|
|
7
|
+
import { getPlacesUrl, highlightPlacesString, queryPlaces, } from '../../services/search/places.service';
|
|
8
|
+
import { userPrefersReducedMotion, elementHasTransition } from '../../services/ui.service';
|
|
9
|
+
import { HighlightedText } from '../../utils/highlighted.component';
|
|
10
|
+
import { SvgSprite } from '../../utils/svg-sprite.component';
|
|
11
|
+
import { SvgIcon } from '../../utils/svg-icon.component';
|
|
12
|
+
import { getParcelSuggestion } from '../../services/search/parcel.service';
|
|
13
|
+
import { If } from '../../utils/if.component';
|
|
14
|
+
export class PostSearch {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.searchDropdownOpen = false;
|
|
17
|
+
this.coveoSuggestions = [];
|
|
18
|
+
this.placeSuggestions = [];
|
|
19
|
+
this.parcelSuggestion = null;
|
|
20
|
+
}
|
|
21
|
+
connectedCallback() {
|
|
22
|
+
this.throttledResize = throttle(300, () => this.handleResize());
|
|
23
|
+
window.addEventListener('resize', this.throttledResize, { passive: true });
|
|
24
|
+
}
|
|
25
|
+
disconnectedCallback() {
|
|
26
|
+
window.removeEventListener('resize', this.throttledResize);
|
|
27
|
+
clearAllBodyScrollLocks();
|
|
28
|
+
}
|
|
29
|
+
componentWillUpdate() {
|
|
30
|
+
// Check if search flyout got set to close
|
|
31
|
+
if (this.searchFlyout && !this.searchDropdownOpen) {
|
|
32
|
+
this.searchFlyout.classList.remove('open');
|
|
33
|
+
// Check if element has transition applied and whether user prefers to see animations or not
|
|
34
|
+
if (elementHasTransition(this.searchFlyout, 'transform') && !userPrefersReducedMotion()) {
|
|
35
|
+
// Wait for CSS transition 'transform' to end before continuing
|
|
36
|
+
return new Promise(resolve => {
|
|
37
|
+
if (this.searchFlyout === undefined) {
|
|
38
|
+
return resolve(true);
|
|
39
|
+
}
|
|
40
|
+
this.searchFlyout.addEventListener('transitionend', event => {
|
|
41
|
+
if (event.propertyName === 'transform') {
|
|
42
|
+
resolve(true);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
componentDidUpdate() {
|
|
50
|
+
// Search flyout got set to open
|
|
51
|
+
if (this.searchFlyout && this.searchDropdownOpen) {
|
|
52
|
+
// Force browser to redraw/refresh DOM before adding 'open' class
|
|
53
|
+
this.searchFlyout.getBoundingClientRect();
|
|
54
|
+
this.searchFlyout.classList.add('open');
|
|
55
|
+
}
|
|
56
|
+
// Focus on the searchBox whenever the dropdown is opened
|
|
57
|
+
if (this.searchDropdownOpen && this.searchBox) {
|
|
58
|
+
this.searchBox.focus({ preventScroll: true });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Toggle the dropdown and optionally force an open/closed state
|
|
63
|
+
* @param force Boolean to force open/closed state
|
|
64
|
+
* @returns Boolean indicating open state of the component
|
|
65
|
+
*/
|
|
66
|
+
async toggleDropdown(force) {
|
|
67
|
+
this.searchDropdownOpen =
|
|
68
|
+
force === undefined || typeof force !== 'boolean' ? !this.searchDropdownOpen : force;
|
|
69
|
+
this.dropdownToggled.emit({ open: this.searchDropdownOpen, element: this.host });
|
|
70
|
+
if (!this.searchDropdownOpen) {
|
|
71
|
+
// Reset suggestions when dropdown closes
|
|
72
|
+
this.coveoSuggestions = [];
|
|
73
|
+
this.placeSuggestions = [];
|
|
74
|
+
if (this.searchBox)
|
|
75
|
+
this.searchBox.value = '';
|
|
76
|
+
this.setFocus();
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
// Get basic suggestions when dropdown opens
|
|
80
|
+
try {
|
|
81
|
+
this.coveoSuggestions = await getCoveoSuggestions('');
|
|
82
|
+
}
|
|
83
|
+
catch (_a) { }
|
|
84
|
+
}
|
|
85
|
+
this.setBodyScroll();
|
|
86
|
+
return this.searchDropdownOpen;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Sets the focus on the search button
|
|
90
|
+
*/
|
|
91
|
+
async setFocus() {
|
|
92
|
+
const shadowRoot = this.host.shadowRoot;
|
|
93
|
+
if (shadowRoot === null) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const toggleButton = shadowRoot.querySelector('.search-button');
|
|
97
|
+
if (toggleButton) {
|
|
98
|
+
toggleButton.focus();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
handleResize() {
|
|
102
|
+
// Only enable/disable body scroll on resize if the search dropdown is open, otherwise this could lead to side effects in other controls
|
|
103
|
+
if (this.searchDropdownOpen) {
|
|
104
|
+
this.setBodyScroll();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Disable or re-enable body scrolling, depending on whether search dropdown is open or closed in mobile view (width < 1024px)
|
|
109
|
+
*/
|
|
110
|
+
setBodyScroll() {
|
|
111
|
+
if (this.searchDropdownOpen && window.innerWidth < 1024) {
|
|
112
|
+
disableBodyScroll(this.searchFlyout);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
enableBodyScroll(this.searchFlyout);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Fetch suggestions from all available sources
|
|
120
|
+
*/
|
|
121
|
+
async handleSearchInput() {
|
|
122
|
+
var _a;
|
|
123
|
+
if (this.searchBox === undefined || ((_a = state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search) === undefined) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const query = this.searchBox.value.trim();
|
|
127
|
+
const [placeSuggestions, coveoSuggestions, trackAndTraceInfo] = await Promise.all([
|
|
128
|
+
queryPlaces(query),
|
|
129
|
+
getCoveoSuggestions(query),
|
|
130
|
+
getParcelSuggestion(query, state.localizedConfig.header.search),
|
|
131
|
+
]);
|
|
132
|
+
// Parcel suggestion is more important than any other
|
|
133
|
+
if (trackAndTraceInfo) {
|
|
134
|
+
this.parcelSuggestion = trackAndTraceInfo;
|
|
135
|
+
this.placeSuggestions = [];
|
|
136
|
+
this.coveoSuggestions = [];
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
[this.coveoSuggestions, this.placeSuggestions] = equalizeArrays(coveoSuggestions, placeSuggestions, 8);
|
|
140
|
+
}
|
|
141
|
+
this.deselectSuggestion();
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Start search on enter
|
|
145
|
+
* @param event
|
|
146
|
+
*/
|
|
147
|
+
handleKeyDown(event) {
|
|
148
|
+
var _a, _b, _c, _d;
|
|
149
|
+
if (this.searchFlyout === undefined) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
let selectedSuggestion = this.searchFlyout.querySelector('.suggestions > li > a.selected');
|
|
153
|
+
switch (event.key.toLowerCase()) {
|
|
154
|
+
case 'enter':
|
|
155
|
+
if (selectedSuggestion) {
|
|
156
|
+
const selectedHref = selectedSuggestion.getAttribute('href');
|
|
157
|
+
if (selectedHref !== null) {
|
|
158
|
+
window.location.href = selectedHref;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
this.startSearch();
|
|
163
|
+
}
|
|
164
|
+
break;
|
|
165
|
+
case 'arrowdown':
|
|
166
|
+
case 'arrowup':
|
|
167
|
+
const suggestions = this.searchFlyout.querySelectorAll('.suggestions > li > a');
|
|
168
|
+
this.deselectSuggestion();
|
|
169
|
+
if (event.key.toLowerCase() === 'arrowdown') {
|
|
170
|
+
if ((_b = (_a = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.parentElement) === null || _a === void 0 ? void 0 : _a.nextElementSibling) === null || _b === void 0 ? void 0 : _b.firstElementChild) {
|
|
171
|
+
// Select next suggestion if there's any, otherwise none will be selected
|
|
172
|
+
selectedSuggestion.parentElement.nextElementSibling.firstElementChild.classList.add('selected');
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
// If there are any suggestions, select first suggestion in list
|
|
176
|
+
if (suggestions.length > 0) {
|
|
177
|
+
suggestions[0].classList.add('selected');
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
else if (event.key.toLowerCase() === 'arrowup') {
|
|
182
|
+
if ((_d = (_c = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.parentElement) === null || _c === void 0 ? void 0 : _c.previousElementSibling) === null || _d === void 0 ? void 0 : _d.firstElementChild) {
|
|
183
|
+
// Select previous suggestion if there's any, otherwise none will be selected
|
|
184
|
+
selectedSuggestion.parentElement.previousElementSibling.firstElementChild.classList.add('selected');
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
// If there are any suggestions, select last suggestion in list
|
|
188
|
+
if (suggestions.length > 0) {
|
|
189
|
+
suggestions[suggestions.length - 1].classList.add('selected');
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
// Get the newly selected suggestion
|
|
194
|
+
selectedSuggestion = this.searchFlyout.querySelector('.suggestions > li > a.selected');
|
|
195
|
+
const suggestedText = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.dataset.suggestionText;
|
|
196
|
+
// Update search box value with selected suggestion text
|
|
197
|
+
if (suggestedText !== undefined && this.searchBox) {
|
|
198
|
+
this.searchBox.value = suggestedText;
|
|
199
|
+
}
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Set selected suggestion on mouse enter
|
|
205
|
+
* @param event
|
|
206
|
+
*/
|
|
207
|
+
handleMouseEnterSuggestion(event) {
|
|
208
|
+
this.deselectSuggestion();
|
|
209
|
+
// Set hovered suggestion element as selected
|
|
210
|
+
event.target.classList.add('selected');
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Set selected suggestion on mouse enter
|
|
214
|
+
* @param event
|
|
215
|
+
*/
|
|
216
|
+
handleMouseLeaveSuggestions() {
|
|
217
|
+
this.deselectSuggestion();
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Deselect any previously selected suggestion
|
|
221
|
+
*/
|
|
222
|
+
deselectSuggestion() {
|
|
223
|
+
if (this.searchFlyout === undefined)
|
|
224
|
+
return;
|
|
225
|
+
const selectedSuggestion = this.searchFlyout.querySelector('.suggestions .selected');
|
|
226
|
+
if (selectedSuggestion) {
|
|
227
|
+
selectedSuggestion.classList.remove('selected');
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Redirect to the post search page
|
|
232
|
+
*/
|
|
233
|
+
async startSearch() {
|
|
234
|
+
var _a;
|
|
235
|
+
if (this.searchBox && ((_a = state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search)) {
|
|
236
|
+
const redirectUrl = await getSearchRedirectUrl(this.searchBox.value.trim(), state.localizedConfig.header.search);
|
|
237
|
+
if (!redirectUrl)
|
|
238
|
+
return;
|
|
239
|
+
window.location.href = redirectUrl;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
render() {
|
|
243
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
244
|
+
if (((_a = state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header) === undefined) {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
const { translations, search } = state.localizedConfig.header;
|
|
248
|
+
const showPortalRecommendations = ((_b = this.searchBox) === null || _b === void 0 ? void 0 : _b.value) === '' && ((_c = search.searchRecommendations) === null || _c === void 0 ? void 0 : _c.links.length) > 0;
|
|
249
|
+
return (h(Host, null, h(SvgSprite, null), h("div", { class: "search" }, h("button", { id: "post-internet-header-search-button", class: "search-button", type: "button", "aria-expanded": `${this.searchDropdownOpen}`, onClick: e => this.toggleDropdown(e) }, h("span", { class: "visually-hidden" }, this.searchDropdownOpen
|
|
250
|
+
? translations.searchToggleExpanded
|
|
251
|
+
: translations.searchToggle), h(SvgIcon, { name: this.searchDropdownOpen ? 'pi-close' : 'pi-search' })), h(If, { condition: this.searchDropdownOpen }, h("div", { class: "flyout", ref: e => (this.searchFlyout = e) }, h("div", { class: "container box" }, h("div", { class: "row" }, h("div", { class: "col-xs-12 col-md-10 col-lg-8" }, h("div", { class: "form-group form-floating" }, h("input", { type: "text", id: "searchBox", class: "form-control form-control-lg", placeholder: translations.flyoutSearchBoxFloatingLabel, autocomplete: "off", ref: el => (this.searchBox = el), onInput: () => this.handleSearchInput(), onKeyDown: e => this.handleKeyDown(e) }), h("label", { htmlFor: "searchBox" }, translations.flyoutSearchBoxFloatingLabel), h("button", { onClick: () => this.startSearch(), class: "nav-link start-search-button" }, h("span", { class: "visually-hidden" }, translations.searchSubmit), h(SvgIcon, { name: "pi-search" }))), showPortalRecommendations && (h("h2", { class: "bold" }, search.searchRecommendations.title)), h("ul", { class: "suggestions no-list", onMouseLeave: () => this.handleMouseLeaveSuggestions() }, showPortalRecommendations &&
|
|
252
|
+
search.searchRecommendations.links.map(recommendation => (h("li", { key: recommendation.href }, h("a", { class: "nav-link search-recommendation", href: new URL(recommendation.href, 'https://post.ch').href, "data-suggestion-text": recommendation.label, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, h("span", { class: "search-recommendation__icon", innerHTML: recommendation.inlineSvg }), h("span", null, recommendation.label))))), this.parcelSuggestion && this.parcelSuggestion.ok && (h("li", null, h("a", { class: "nav-link parcel-suggestion", href: this.parcelSuggestion.url, "data-suggestion-text": (_d = this.searchBox) === null || _d === void 0 ? void 0 : _d.value, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, h(SvgIcon, { name: "pi-letter-parcel" }), h("span", { class: "bold" }, (_f = (_e = this.parcelSuggestion) === null || _e === void 0 ? void 0 : _e.sending) === null || _f === void 0 ? void 0 :
|
|
253
|
+
_f.id, ":\u00A0"), h("span", null, (_h = (_g = this.parcelSuggestion) === null || _g === void 0 ? void 0 : _g.sending) === null || _h === void 0 ? void 0 :
|
|
254
|
+
_h.product, ",", ' ', (_k = (_j = this.parcelSuggestion) === null || _j === void 0 ? void 0 : _j.sending) === null || _k === void 0 ? void 0 :
|
|
255
|
+
_k.recipient.zipcode, ' ', (_m = (_l = this.parcelSuggestion) === null || _l === void 0 ? void 0 : _l.sending) === null || _m === void 0 ? void 0 :
|
|
256
|
+
_m.recipient.city, ",", ' ', (_p = (_o = this.parcelSuggestion) === null || _o === void 0 ? void 0 : _o.sending) === null || _p === void 0 ? void 0 :
|
|
257
|
+
_p.state)))), !showPortalRecommendations &&
|
|
258
|
+
this.coveoSuggestions &&
|
|
259
|
+
this.coveoSuggestions.map(suggestion => (h("li", { key: suggestion.objectId }, h("a", { class: "nav-link", href: suggestion.redirectUrl, "data-suggestion-text": suggestion.expression, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, h(SvgIcon, { name: "pi-search" }), h(HighlightedText, { text: suggestion.highlighted }))))), !showPortalRecommendations &&
|
|
260
|
+
this.placeSuggestions &&
|
|
261
|
+
this.placeSuggestions.map(suggestion => {
|
|
262
|
+
var _a, _b;
|
|
263
|
+
return (h("li", { key: suggestion.id }, h("a", { class: "nav-link", href: getPlacesUrl(suggestion), "data-suggestion-text": suggestion.name, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, h(SvgIcon, { name: "pi-place" }), h(HighlightedText, { text: highlightPlacesString((_b = (_a = this.searchBox) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.trim(), suggestion.name) }))));
|
|
264
|
+
}))))))))));
|
|
265
|
+
}
|
|
266
|
+
static get is() { return "post-search"; }
|
|
267
|
+
static get encapsulation() { return "shadow"; }
|
|
268
|
+
static get originalStyleUrls() {
|
|
269
|
+
return {
|
|
270
|
+
"$": ["post-search.scss"]
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
static get styleUrls() {
|
|
274
|
+
return {
|
|
275
|
+
"$": ["post-search.css"]
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
static get states() {
|
|
279
|
+
return {
|
|
280
|
+
"searchDropdownOpen": {},
|
|
281
|
+
"coveoSuggestions": {},
|
|
282
|
+
"placeSuggestions": {},
|
|
283
|
+
"parcelSuggestion": {}
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
static get events() {
|
|
287
|
+
return [{
|
|
288
|
+
"method": "dropdownToggled",
|
|
289
|
+
"name": "dropdownToggled",
|
|
290
|
+
"bubbles": true,
|
|
291
|
+
"cancelable": true,
|
|
292
|
+
"composed": true,
|
|
293
|
+
"docs": {
|
|
294
|
+
"tags": [],
|
|
295
|
+
"text": ""
|
|
296
|
+
},
|
|
297
|
+
"complexType": {
|
|
298
|
+
"original": "DropdownEvent",
|
|
299
|
+
"resolved": "{ open: boolean; element: DropdownElement; }",
|
|
300
|
+
"references": {
|
|
301
|
+
"DropdownEvent": {
|
|
302
|
+
"location": "import",
|
|
303
|
+
"path": "../../models/header.model"
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}];
|
|
308
|
+
}
|
|
309
|
+
static get methods() {
|
|
310
|
+
return {
|
|
311
|
+
"toggleDropdown": {
|
|
312
|
+
"complexType": {
|
|
313
|
+
"signature": "(force?: unknown) => Promise<boolean>",
|
|
314
|
+
"parameters": [{
|
|
315
|
+
"tags": [{
|
|
316
|
+
"name": "param",
|
|
317
|
+
"text": "force Boolean to force open/closed state"
|
|
318
|
+
}],
|
|
319
|
+
"text": "Boolean to force open/closed state"
|
|
320
|
+
}],
|
|
321
|
+
"references": {
|
|
322
|
+
"Promise": {
|
|
323
|
+
"location": "global"
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
"return": "Promise<boolean>"
|
|
327
|
+
},
|
|
328
|
+
"docs": {
|
|
329
|
+
"text": "Toggle the dropdown and optionally force an open/closed state",
|
|
330
|
+
"tags": [{
|
|
331
|
+
"name": "param",
|
|
332
|
+
"text": "force Boolean to force open/closed state"
|
|
333
|
+
}, {
|
|
334
|
+
"name": "returns",
|
|
335
|
+
"text": "Boolean indicating open state of the component"
|
|
336
|
+
}]
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
"setFocus": {
|
|
340
|
+
"complexType": {
|
|
341
|
+
"signature": "() => Promise<void>",
|
|
342
|
+
"parameters": [],
|
|
343
|
+
"references": {
|
|
344
|
+
"Promise": {
|
|
345
|
+
"location": "global"
|
|
346
|
+
},
|
|
347
|
+
"HTMLElement": {
|
|
348
|
+
"location": "global"
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
"return": "Promise<void>"
|
|
352
|
+
},
|
|
353
|
+
"docs": {
|
|
354
|
+
"text": "Sets the focus on the search button",
|
|
355
|
+
"tags": []
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
static get elementRef() { return "host"; }
|
|
361
|
+
}
|
|
362
|
+
//# sourceMappingURL=post-search.js.map
|