@swisspost/internet-header 1.12.1 → 1.13.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/dist/cjs/index.cjs.js +36 -0
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/{klp-widget.controller-59fd5d5e.js → klp-widget.controller-8baf3b8a.js} +12 -14
- package/dist/cjs/klp-widget.controller-8baf3b8a.js.map +1 -0
- package/dist/cjs/post-internet-breadcrumbs-e3ee842c.js +3616 -0
- package/dist/cjs/post-internet-breadcrumbs-e3ee842c.js.map +1 -0
- package/dist/cjs/post-internet-footer-16117586.js +161 -0
- package/dist/cjs/post-internet-footer-16117586.js.map +1 -0
- package/dist/cjs/post-internet-header-08840fbe.js +828 -0
- package/dist/cjs/post-internet-header-08840fbe.js.map +1 -0
- package/dist/cjs/post-klp-login-widget-5380708a.js +63 -0
- package/dist/cjs/post-klp-login-widget-5380708a.js.map +1 -0
- package/dist/cjs/post-klp-login-widget.cjs.entry.js +6 -56
- package/dist/cjs/post-klp-login-widget.cjs.entry.js.map +1 -1
- package/dist/cjs/post-language-switch-422af4d0.js +106 -0
- package/dist/cjs/post-language-switch-422af4d0.js.map +1 -0
- package/dist/cjs/post-language-switch.cjs.entry.js +8 -99
- package/dist/cjs/post-language-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/post-logo-5867ad55.js +25 -0
- package/dist/cjs/post-logo-5867ad55.js.map +1 -0
- package/dist/cjs/post-logo.cjs.entry.js +4 -18
- package/dist/cjs/post-logo.cjs.entry.js.map +1 -1
- package/dist/cjs/post-main-navigation-2c9e953e.js +240 -0
- package/dist/cjs/post-main-navigation-2c9e953e.js.map +1 -0
- package/dist/cjs/post-main-navigation.cjs.entry.js +9 -233
- package/dist/cjs/post-main-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/post-meta-navigation-0b73779f.js +26 -0
- package/dist/cjs/post-meta-navigation-0b73779f.js.map +1 -0
- package/dist/cjs/post-meta-navigation.cjs.entry.js +4 -19
- package/dist/cjs/post-meta-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/post-search-7eb0a7a2.js +597 -0
- package/dist/cjs/post-search-7eb0a7a2.js.map +1 -0
- package/dist/cjs/post-search.cjs.entry.js +11 -590
- package/dist/cjs/post-search.cjs.entry.js.map +1 -1
- package/dist/cjs/post-skiplinks-3db1d214.js +52 -0
- package/dist/cjs/post-skiplinks-3db1d214.js.map +1 -0
- package/dist/cjs/post-skiplinks.cjs.entry.js +6 -45
- package/dist/cjs/post-skiplinks.cjs.entry.js.map +1 -1
- package/dist/cjs/{svg-sprite.component-4b5677ef.js → svg-sprite.component-68369645.js} +2 -2
- package/dist/cjs/{svg-sprite.component-4b5677ef.js.map → svg-sprite.component-68369645.js.map} +1 -1
- package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +11 -3609
- package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js.map +1 -1
- package/dist/cjs/swisspost-internet-footer.cjs.entry.js +6 -154
- package/dist/cjs/swisspost-internet-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/swisspost-internet-header.cjs.entry.js +10 -824
- package/dist/cjs/swisspost-internet-header.cjs.entry.js.map +1 -1
- package/dist/collection/assets/js/klp-login-widget.js +11 -13
- package/dist/collection/collection-manifest.json +4 -4
- package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.css +2 -2
- package/dist/collection/components/post-internet-footer/post-internet-footer.css +1 -1
- package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.css +1 -1
- package/dist/collection/components/post-main-navigation/post-main-navigation.css +1 -1
- package/dist/collection/components/post-search/post-search.css +10 -6
- package/dist/collection/index.js +11 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/utils/svg-sprite.component.js +1 -1
- package/dist/collection/utils/svg-sprite.component.js.map +1 -1
- package/dist/components/index.js +10 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/klp-widget.controller.js +11 -13
- 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-main-navigation2.js +1 -1
- package/dist/components/post-main-navigation2.js.map +1 -1
- package/dist/components/post-search2.js +1 -1
- package/dist/components/post-search2.js.map +1 -1
- package/dist/components/svg-sprite.component.js +1 -1
- package/dist/components/svg-sprite.component.js.map +1 -1
- package/dist/components/swisspost-internet-breadcrumbs.js +2 -2
- package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -1
- package/dist/components/swisspost-internet-footer.js +2 -2
- package/dist/components/swisspost-internet-footer.js.map +1 -1
- package/dist/components/swisspost-internet-header.js +21 -24
- package/dist/components/swisspost-internet-header.js.map +1 -1
- package/dist/docs.json +11 -11
- package/dist/esm/index.js +21 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{klp-widget.controller-2a0a5183.js → klp-widget.controller-668f7e8d.js} +12 -14
- package/dist/esm/klp-widget.controller-668f7e8d.js.map +1 -0
- package/dist/esm/post-internet-breadcrumbs-f268030c.js +3614 -0
- package/dist/esm/post-internet-breadcrumbs-f268030c.js.map +1 -0
- package/dist/esm/post-internet-footer-3a501420.js +159 -0
- package/dist/esm/post-internet-footer-3a501420.js.map +1 -0
- package/dist/esm/post-internet-header-36aaba35.js +826 -0
- package/dist/esm/post-internet-header-36aaba35.js.map +1 -0
- package/dist/esm/post-klp-login-widget-57a4fdb5.js +61 -0
- package/dist/esm/post-klp-login-widget-57a4fdb5.js.map +1 -0
- package/dist/esm/post-klp-login-widget.entry.js +5 -59
- package/dist/esm/post-klp-login-widget.entry.js.map +1 -1
- package/dist/esm/post-language-switch-997ee4f9.js +104 -0
- package/dist/esm/post-language-switch-997ee4f9.js.map +1 -0
- package/dist/esm/post-language-switch.entry.js +7 -102
- package/dist/esm/post-language-switch.entry.js.map +1 -1
- package/dist/esm/post-logo-cde3c44d.js +23 -0
- package/dist/esm/post-logo-cde3c44d.js.map +1 -0
- package/dist/esm/post-logo.entry.js +3 -21
- package/dist/esm/post-logo.entry.js.map +1 -1
- package/dist/esm/post-main-navigation-77520c14.js +238 -0
- package/dist/esm/post-main-navigation-77520c14.js.map +1 -0
- package/dist/esm/post-main-navigation.entry.js +8 -236
- package/dist/esm/post-main-navigation.entry.js.map +1 -1
- package/dist/esm/post-meta-navigation-09e9bdc8.js +24 -0
- package/dist/esm/post-meta-navigation-09e9bdc8.js.map +1 -0
- package/dist/esm/post-meta-navigation.entry.js +3 -22
- package/dist/esm/post-meta-navigation.entry.js.map +1 -1
- package/dist/esm/post-search-a7f2e856.js +595 -0
- package/dist/esm/post-search-a7f2e856.js.map +1 -0
- package/dist/esm/post-search.entry.js +10 -593
- package/dist/esm/post-search.entry.js.map +1 -1
- package/dist/esm/post-skiplinks-b3c32a77.js +50 -0
- package/dist/esm/post-skiplinks-b3c32a77.js.map +1 -0
- package/dist/esm/post-skiplinks.entry.js +5 -48
- package/dist/esm/post-skiplinks.entry.js.map +1 -1
- package/dist/esm/{svg-sprite.component-29439a18.js → svg-sprite.component-cfc05f90.js} +2 -2
- package/dist/esm/{svg-sprite.component-29439a18.js.map → svg-sprite.component-cfc05f90.js.map} +1 -1
- package/dist/esm/swisspost-internet-breadcrumbs.entry.js +10 -3612
- package/dist/esm/swisspost-internet-breadcrumbs.entry.js.map +1 -1
- package/dist/esm/swisspost-internet-footer.entry.js +5 -157
- package/dist/esm/swisspost-internet-footer.entry.js.map +1 -1
- package/dist/esm/swisspost-internet-header.entry.js +9 -827
- package/dist/esm/swisspost-internet-header.entry.js.map +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/{klp-widget.controller-2a0a5183.js → klp-widget.controller-668f7e8d.js} +2 -2
- package/dist/esm-es5/{klp-widget.controller-2a0a5183.js.map → klp-widget.controller-668f7e8d.js.map} +1 -1
- package/dist/esm-es5/post-internet-breadcrumbs-f268030c.js +7 -0
- package/dist/esm-es5/post-internet-breadcrumbs-f268030c.js.map +1 -0
- package/dist/esm-es5/post-internet-footer-3a501420.js +2 -0
- package/dist/esm-es5/post-internet-footer-3a501420.js.map +1 -0
- package/dist/esm-es5/post-internet-header-36aaba35.js +2 -0
- package/dist/esm-es5/post-internet-header-36aaba35.js.map +1 -0
- package/dist/esm-es5/post-klp-login-widget-57a4fdb5.js +2 -0
- package/dist/esm-es5/post-klp-login-widget-57a4fdb5.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-997ee4f9.js +2 -0
- package/dist/esm-es5/post-language-switch-997ee4f9.js.map +1 -0
- 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-cde3c44d.js +2 -0
- package/dist/esm-es5/post-logo-cde3c44d.js.map +1 -0
- 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-77520c14.js +2 -0
- package/dist/esm-es5/post-main-navigation-77520c14.js.map +1 -0
- 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-09e9bdc8.js +2 -0
- package/dist/esm-es5/post-meta-navigation-09e9bdc8.js.map +1 -0
- 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-a7f2e856.js +2 -0
- package/dist/esm-es5/post-search-a7f2e856.js.map +1 -0
- 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-b3c32a77.js +2 -0
- package/dist/esm-es5/post-skiplinks-b3c32a77.js.map +1 -0
- 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/svg-sprite.component-cfc05f90.js +2 -0
- package/dist/esm-es5/svg-sprite.component-cfc05f90.js.map +1 -0
- package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +1 -6
- 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/swisspost-internet-header/index.esm.js +1 -1
- package/dist/swisspost-internet-header/{p-f5a1e4a6.entry.js → p-0096509c.js} +2 -2
- package/dist/swisspost-internet-header/p-094eab7e.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-0f1f2469.system.js +2 -0
- package/dist/swisspost-internet-header/{p-65cd41a6.system.entry.js.map → p-0f1f2469.system.js.map} +1 -1
- package/dist/swisspost-internet-header/p-16676174.system.js +2 -0
- package/dist/swisspost-internet-header/{p-6b18b251.system.entry.js.map → p-16676174.system.js.map} +1 -1
- package/dist/swisspost-internet-header/p-18e9ce89.system.js +2 -0
- package/dist/swisspost-internet-header/{p-c201f1b3.system.entry.js.map → p-18e9ce89.system.js.map} +1 -1
- package/dist/swisspost-internet-header/p-1a6d00a4.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-1a6d00a4.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-1bdc4b7b.js +2 -0
- package/dist/swisspost-internet-header/{p-b3ad4f8a.entry.js.map → p-1bdc4b7b.js.map} +1 -1
- package/dist/swisspost-internet-header/p-2340f9f1.entry.js +2 -0
- package/dist/swisspost-internet-header/p-2340f9f1.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-236420dc.js +2 -0
- package/dist/swisspost-internet-header/{p-04b1cab7.entry.js.map → p-236420dc.js.map} +1 -1
- package/dist/swisspost-internet-header/p-2c612086.entry.js +2 -0
- package/dist/swisspost-internet-header/p-2c612086.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-2eb179a7.entry.js +2 -0
- package/dist/swisspost-internet-header/p-2eb179a7.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-a097e677.system.entry.js → p-34fe9d92.system.js} +2 -2
- package/dist/swisspost-internet-header/{p-a097e677.system.entry.js.map → p-34fe9d92.system.js.map} +1 -1
- package/dist/swisspost-internet-header/p-3672587a.entry.js +2 -0
- package/dist/swisspost-internet-header/p-3672587a.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-2e334cfc.entry.js → p-3a7f9457.js} +2 -2
- package/dist/swisspost-internet-header/p-3bdf4efd.entry.js +2 -0
- package/dist/swisspost-internet-header/p-3bdf4efd.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-40806042.system.js +2 -0
- package/dist/swisspost-internet-header/p-40806042.system.js.map +1 -0
- package/dist/swisspost-internet-header/p-4248f499.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-4248f499.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-46f2c38c.js +2 -0
- package/dist/swisspost-internet-header/{p-069dbe32.entry.js.map → p-46f2c38c.js.map} +1 -1
- package/dist/swisspost-internet-header/p-5adcdd91.system.js +1 -1
- package/dist/swisspost-internet-header/{p-bcd01683.system.js → p-5f246e59.system.js} +2 -2
- package/dist/swisspost-internet-header/{p-bcd01683.system.js.map → p-5f246e59.system.js.map} +1 -1
- package/dist/swisspost-internet-header/p-606bd3f1.entry.js +2 -0
- package/dist/swisspost-internet-header/p-606bd3f1.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-619bb76e.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-619bb76e.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-65ce36ba.entry.js +2 -0
- package/dist/swisspost-internet-header/p-65ce36ba.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-669ed0d2.entry.js +2 -0
- package/dist/swisspost-internet-header/p-669ed0d2.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-9d827167.system.entry.js → p-69d380ec.system.js} +2 -2
- package/dist/swisspost-internet-header/{p-9d827167.system.entry.js.map → p-69d380ec.system.js.map} +1 -1
- package/dist/swisspost-internet-header/p-6e3b3c7a.system.js +2 -0
- package/dist/swisspost-internet-header/p-6e3b3c7a.system.js.map +1 -0
- package/dist/swisspost-internet-header/{p-b8368eca.entry.js → p-70df9137.js} +2 -2
- package/dist/swisspost-internet-header/{p-21d8e5bc.entry.js → p-788cf356.js} +2 -2
- package/dist/swisspost-internet-header/{p-21d8e5bc.entry.js.map → p-788cf356.js.map} +1 -1
- package/dist/swisspost-internet-header/{p-61074cb4.entry.js → p-78e8a405.js} +2 -2
- package/dist/swisspost-internet-header/p-7ab3cbcb.js +2 -0
- package/dist/swisspost-internet-header/p-7ab3cbcb.js.map +1 -0
- package/dist/swisspost-internet-header/{p-5a897619.js → p-7eaa5689.js} +2 -2
- package/dist/swisspost-internet-header/{p-5a897619.js.map → p-7eaa5689.js.map} +1 -1
- package/dist/swisspost-internet-header/p-837fe525.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-837fe525.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-83de3104.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-83de3104.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/{p-d2fd2ff6.entry.js → p-8ceafc83.js} +2 -2
- package/dist/swisspost-internet-header/p-8ceafc83.js.map +1 -0
- package/dist/swisspost-internet-header/{p-5ec6e2de.system.entry.js → p-96618f42.system.js} +2 -2
- package/dist/swisspost-internet-header/{p-5ec6e2de.system.entry.js.map → p-96618f42.system.js.map} +1 -1
- package/dist/swisspost-internet-header/p-a0f5c014.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-a0f5c014.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-a290e3e2.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-a290e3e2.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-a5eda6dc.entry.js +2 -0
- package/dist/swisspost-internet-header/p-a5eda6dc.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-bd893111.system.js +7 -0
- package/dist/swisspost-internet-header/{p-50da051d.system.entry.js.map → p-bd893111.system.js.map} +1 -1
- package/dist/swisspost-internet-header/p-c0705313.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-c0705313.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-c6bf4781.system.entry.js +2 -0
- package/dist/swisspost-internet-header/p-c6bf4781.system.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-d294420b.system.js +2 -0
- package/dist/swisspost-internet-header/{p-64b3fabe.system.entry.js.map → p-d294420b.system.js.map} +1 -1
- package/dist/swisspost-internet-header/p-e81673c2.entry.js +2 -0
- package/dist/swisspost-internet-header/p-e81673c2.entry.js.map +1 -0
- package/dist/swisspost-internet-header/p-ea99866e.system.js +2 -0
- package/dist/swisspost-internet-header/p-ea99866e.system.js.map +1 -0
- package/dist/swisspost-internet-header/{p-9acc06ba.system.entry.js → p-ee5e0cc6.system.js} +2 -2
- package/dist/swisspost-internet-header/{p-9acc06ba.system.entry.js.map → p-ee5e0cc6.system.js.map} +1 -1
- package/dist/swisspost-internet-header/p-f6a2a74f.js +7 -0
- package/dist/swisspost-internet-header/{p-76e3cd9c.entry.js.map → p-f6a2a74f.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/types/index.d.ts +10 -0
- package/package.json +20 -22
- package/dist/cjs/klp-widget.controller-59fd5d5e.js.map +0 -1
- package/dist/esm/klp-widget.controller-2a0a5183.js.map +0 -1
- package/dist/esm-es5/svg-sprite.component-29439a18.js +0 -2
- package/dist/esm-es5/svg-sprite.component-29439a18.js.map +0 -1
- package/dist/swisspost-internet-header/p-04b1cab7.entry.js +0 -2
- package/dist/swisspost-internet-header/p-069dbe32.entry.js +0 -2
- package/dist/swisspost-internet-header/p-50da051d.system.entry.js +0 -7
- package/dist/swisspost-internet-header/p-50ea2036.system.js +0 -2
- package/dist/swisspost-internet-header/p-60ea6000.js +0 -2
- package/dist/swisspost-internet-header/p-60ea6000.js.map +0 -1
- package/dist/swisspost-internet-header/p-62ae68ad.system.entry.js +0 -2
- package/dist/swisspost-internet-header/p-62ae68ad.system.entry.js.map +0 -1
- package/dist/swisspost-internet-header/p-64b3fabe.system.entry.js +0 -2
- package/dist/swisspost-internet-header/p-65cd41a6.system.entry.js +0 -2
- package/dist/swisspost-internet-header/p-6b18b251.system.entry.js +0 -2
- package/dist/swisspost-internet-header/p-74fea9b8.system.js +0 -2
- package/dist/swisspost-internet-header/p-74fea9b8.system.js.map +0 -1
- package/dist/swisspost-internet-header/p-76e3cd9c.entry.js +0 -7
- package/dist/swisspost-internet-header/p-b3ad4f8a.entry.js +0 -2
- package/dist/swisspost-internet-header/p-c201f1b3.system.entry.js +0 -2
- package/dist/swisspost-internet-header/p-d2fd2ff6.entry.js.map +0 -1
- /package/dist/swisspost-internet-header/{p-f5a1e4a6.entry.js.map → p-0096509c.js.map} +0 -0
- /package/dist/swisspost-internet-header/{p-50ea2036.system.js.map → p-094eab7e.system.entry.js.map} +0 -0
- /package/dist/swisspost-internet-header/{p-2e334cfc.entry.js.map → p-3a7f9457.js.map} +0 -0
- /package/dist/swisspost-internet-header/{p-b8368eca.entry.js.map → p-70df9137.js.map} +0 -0
- /package/dist/swisspost-internet-header/{p-61074cb4.entry.js.map → p-78e8a405.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"post-search-7eb0a7a2.js","mappings":";;;;;;;;;;;;AAIA,IAAI,gBAAiC,CAAC;AAEtC;AAEA;AACO,MAAM,sBAAsB,GAAG,CAAC,EAAU;EAC/C,MAAM,IAAI,GAAGA,WAAK,CAAC,eAAe,CAAC;EACnC,OAAO,uBAAuB,IAAI,yBAAyB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;AACtF,CAAC,CAAC;AAEF;AACO,MAAM,2BAA2B,GAAG,CACzC,KAAa,EACb,EAAE,0BAA0B,EAAiB;EAE7C,OAAO,0BAA0B,CAAC,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF;;;;;;AAMO,MAAM,QAAQ,GAAG,OAAO,KAAa,EAAE,YAA2B;EACvE,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;EAC5D,OAAO,SAAS,IAAI,UAAU,CAAC;AACjC,CAAC,CAAC;AAEF;;;;;;;AAOO,MAAM,aAAa,GAAG,OAC3B,KAAa,EACb,EAAE,eAAe,EAAiB;EAElC,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC;EAEtD,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IACjC,MAAM,GAAG,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,gBAAgB;MAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAC/C,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;IAEzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM;MACjC,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC;SAC5C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;SACjC,IAAI,CAAC,CAAC,mBAAsC;QAC3C,OAAO,iCAAM,mBAAmB,KAAE,EAAE,EAAE,mBAAmB,CAAC,EAAE,IAAG,CAAC;OACjE,CAAC;SACD,KAAK,CAAC,KAAK;QACV,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;UAC/B,OAAO,CAAC,KAAK,CAAC,qDAAqD,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;UACpF,MAAM,CAAC,KAAK,CAAC,CAAC;SACf;OACF,CAAC,CAAC;KACN,CAAC,CAAC;GACJ;EAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC;AAC7D,CAAC,CAAC;AAEF;;;;;;AAMO,MAAM,mBAAmB,GAAG,OACjC,KAAa,EACb,YAA2B;EAE3B,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;EAC5D,OAAO,UAAU,CAAC,EAAE;sCACX,UAAU,KAAE,GAAG,EAAE,2BAA2B,CAAC,KAAK,EAAE,YAAY,CAAC,MACtE,IAAI,CAAC;AACX,CAAC;;AChFD;;;;;;AAMO,MAAM,oBAAoB,GAAG,OAClC,KAAa,EACb,YAA2B;EAE3B,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;EAC3D,OAAO,cAAc;MACjB,2BAA2B,CAAC,KAAK,EAAE,YAAY,CAAC;MAChD,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF;;;;;;AAMO,MAAM,gBAAgB,GAAG,CAAC,KAAa;;EAC5C,IAAI,CAAA,MAAAA,WAAK,CAAC,eAAe,0CAAE,MAAM,CAAC,MAAM,MAAK,SAAS,EAAE;IACtD,OAAO;GACR;EACD,MAAM,EAAE,aAAa,EAAE,GAAGA,WAAK,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;EAC9D,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;EACtD,OAAO,GAAG,aAAa,GAAG,WAAW,WAAW,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;;;;AAQO,MAAM,cAAc,GAAG,CAAO,MAAW,EAAE,MAAW,EAAE,SAAS,GAAG,CAAC;EAC1E,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;EACxF,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AACxE,CAAC;;AC5CD;AACO,MAAM,KAAK,GAAiB;EACjC,GAAG,EAAE,iEAAiE;EACtE,WAAW,EAAE;IACX,IAAI,EAAE;MACJ,YAAY,EAAE,sBAAsB;MACpC,KAAK,EAAE,wCAAwC;KAChD;IACD,KAAK,EAAE;MACL,YAAY,EAAE,yBAAyB;MACvC,KAAK,EAAE,wCAAwC;KAChD;IACD,KAAK,EAAE;MACL,YAAY,EAAE,yBAAyB;MACvC,KAAK,EAAE,wCAAwC;KAChD;IACD,KAAK,EAAE;MACL,YAAY,EAAE,yBAAyB;MACvC,KAAK,EAAE,wCAAwC;KAChD;IACD,KAAK,EAAE;MACL,YAAY,EAAE,yBAAyB;MACvC,KAAK,EAAE,wCAAwC;KAChD;IACD,KAAK,EAAE;MACL,YAAY,EAAE,yBAAyB;MACvC,KAAK,EAAE,wCAAwC;KAChD;IACD,IAAI,EAAE;MACJ,YAAY,EAAE,yBAAyB;MACvC,KAAK,EAAE,wCAAwC;KAChD;GACF;CACF;;AC9BD,IAAI,qBAAsC,CAAC;AAE3C;;;;;;;AAOO,MAAM,mBAAmB,GAAG,OAAO,KAAa;;EACrD,IACE,CAAA,MAAA,MAAAA,WAAK,CAAC,eAAe,0CAAE,MAAM,0CAAE,MAAM,MAAK,SAAS;IACnD,CAAA,MAAA,MAAAA,WAAK,CAAC,eAAe,0CAAE,MAAM,0CAAE,MAAM,CAAC,wBAAwB,MAAK,IAAI;IAEvE,OAAO,EAAE,CAAC;EACZ,MAAM,MAAM,GAAGA,WAAK,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;EACnD,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,WAAW,CAACA,WAAK,CAAC,WAAW,CAAC,CAAC;EACrE,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,MAAM,KAAK,WAAWA,WAAK,CAAC,eAAe,cAAc,MAAM,CAAC,aAAa,aAAa,MAAM,CAAC,kBAAkB,mBAAmB,YAAY,EAAE,CAAC;EAE7K,IAAI,qBAAqB;IAAE,qBAAqB,CAAC,KAAK,EAAE,CAAC;EACzD,qBAAqB,GAAG,IAAI,eAAe,EAAE,CAAC;EAE9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM;IACjC,KAAK,CAAC,GAAG,EAAE;MACT,MAAM,EAAE,qBAAqB,CAAC,MAAM;MACpC,MAAM,EAAE,KAAK;MACb,OAAO,EAAE;QACP,aAAa,EAAE,UAAU,KAAK,EAAE;OACjC;KACF,CAAC;OACC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;OACjC,IAAI,CAAC,CAAC,SAAwB;MAC7B,OAAO,CACL,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,qCAC/B,UAAU,KACb,WAAW,EAAE,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,IACpD,CAAC,CACJ,CAAC;KACH,CAAC;OACD,KAAK,CAAC,KAAK;MACV,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;QAC/B,OAAO,CAAC,KAAK,CACX,sCAAsC,KAAK,+GAA+G,CAC3J,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,CAAC;OACf;KACF,CAAC,CAAC;GACN,CAAC,CAAC;AACL,CAAC;;ACrDD;AACO,MAAM,SAAS,GAAG,uDAAuD,CAAC;AAC1E,MAAM,SAAS,GAAG,wBAAwB;;ACFjD;;;;;;;;AAQO,MAAM,aAAa,GAAG,CAAC,GAAW,KACvC,GAAG;GACA,WAAW,EAAE;GACb,SAAS,CAAC,KAAK,CAAC;GAChB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;;ACPpC,IAAI,gBAAiC,CAAC;AAEtC;;;;;;AAMO,MAAM,WAAW,GAAG,OAAO,KAAa;EAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;IACtB,OAAO,EAAE,CAAC;GACX;EAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC;IACtC,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;IAChC,IAAI,EAAEA,WAAK,CAAC,eAAe;IAC3B,KAAK,EAAE,CAAC;GACT,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;EAEvE,MAAM,GAAG,GAAG,GAAG,SAAS,WAAW,gBAAgB,EAAE,CAAC;EAEtD,IAAI,gBAAgB;IAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC;EAC/C,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;EAEzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM;IACjC,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC;OAC5C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;OACjC,IAAI,CAAC,CAAC,WAA4B;MACjC,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;MACvD,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;KAChC,CAAC;OACD,KAAK,CAAC,KAAK;MACV,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;QAC/B,OAAO,CAAC,KAAK,CACX,2BAA2B,KAAK,6EAA6E,CAC9G,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,CAAC;OACf;KACF,CAAC,CAAC;GACN,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;AAQO,MAAM,qBAAqB,GAAG,CAAC,KAAyB,EAAE,KAAa;EAC5E,IAAI,KAAK,KAAK,SAAS;IAAE,OAAO,KAAK,CAAC;;EAGtC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;EACvC,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;EAC/B,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;EAE1C,IAAI,YAAY,GAAG,CAAC,EAAE;IACpB,OAAO,KAAK,CAAC;GACd;EAED,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,KAAK,CAAC,SAAS,CAC3D,YAAY,EACZ,YAAY,GAAG,KAAK,CAAC,MAAM,CAC5B,IAAI,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;AACpE,CAAC,CAAC;AAEF;;;;;;AAMO,MAAM,YAAY,GAAG,CAAC,QAAyB;EACpD,IAAI,GAAW,CAAC;EAEhB,IAAI,QAAQ,CAAC,EAAE,EAAE;IACf,GAAG,GAAG,GAAG,SAAS,IAAIA,WAAK,CAAC,eAAe,IAAI,QAAQ,CAAC,EAAE,SAAS,CAAC;GACrE;OAAM;IACL,GAAG,GAAG,GAAG,SAAS,kBAAkB,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;GACzE;EAED,OAAO,GAAG,CAAC;AACb,CAAC;;ACvFM,MAAM,eAAe,GAAG,CAAC,KAAgD;;EAC9E,MAAM,cAAc,GAAG,MAAA,KAAK,CAAC,cAAc,mCAAI,MAAM,CAAC;EACtD,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI;KACjC,OAAO,CAAC,OAAO,EAAE,gBAAgB,cAAc,IAAI,CAAC;KACpD,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;KAC3B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;EAC1B,OAAOC,kBAAM,SAAS,EAAE,iBAAiB,GAAS,CAAC;AACrD,CAAC;;ACTD,MAAM,aAAa,GAAG,gzlDAAgzlD;;MCmCzzlD,UAAU;;;;8BACS,KAAK;4BACY,EAAE;4BACF,EAAE;4BACyB,IAAI;;EAQ9E,iBAAiB;IACf,IAAI,CAAC,eAAe,GAAGC,gBAAQ,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;GAC5E;EAED,oBAAoB;IAClB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3DC,0CAAuB,EAAE,CAAC;GAC3B;EAED,mBAAmB;;IAEjB,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;MACjD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;MAG3C,IAAIC,+BAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,CAACC,mCAAwB,EAAE,EAAE;;QAEvF,OAAO,IAAI,OAAO,CAAU,OAAO;UACjC,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;WACtB;UAED,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,eAAe,EAAE,KAAK;YACvD,IAAI,KAAK,CAAC,YAAY,KAAK,WAAW,EAAE;cACtC,OAAO,CAAC,IAAI,CAAC,CAAC;aACf;WACF,CAAC,CAAC;SACJ,CAAC,CAAC;OACJ;KACF;GACF;EAED,kBAAkB;;IAEhB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,kBAAkB,EAAE;;MAEhD,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;MAC1C,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACzC;;IAGD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,SAAS,EAAE;MAC7C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;KAC/C;GACF;;;;;;EAWD,MAAM,cAAc,CAAC,KAAe;IAClC,IAAI,CAAC,kBAAkB;MACrB,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACvF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAEjF,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;;MAE5B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;MAC3B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;MAC3B,IAAI,IAAI,CAAC,SAAS;QAAE,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;MAC9C,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;KACtB;SAAM;;MAEL,IAAI;QACF,IAAI,CAAC,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAC;OACvD;MAAC,WAAM,GAAE;KACX;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;IAErB,OAAO,IAAI,CAAC,kBAAkB,CAAC;GAChC;;;;EAMM,MAAM,QAAQ;IACnB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IACxC,IAAI,UAAU,KAAK,IAAI,EAAE;MACvB,OAAO;KACR;IACD,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAc,gBAAgB,CAAC,CAAC;IAC7E,IAAI,YAAY,EAAE;MAChB,YAAY,CAAC,KAAK,EAAE,CAAC;KACtB;GACF;EAEO,YAAY;;IAElB,IAAI,IAAI,CAAC,kBAAkB,EAAE;MAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;GACF;;;;EAKO,aAAa;IACnB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;MACtB,OAAO;KACR;IAED,IAAI,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,EAAE;MACvDC,oCAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACtC;SAAM;MACLC,mCAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACrC;GACF;;;;EAKO,MAAM,iBAAiB;;IAC7B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,CAAA,MAAAP,WAAK,CAAC,eAAe,0CAAE,MAAM,CAAC,MAAM,MAAK,SAAS,EAAE;MACtF,OAAO;KACR;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;;IAG1C,IAAI,IAAI,CAAC,WAAW,EAAE;MACpB,IAAI,KAAK,KAAK,EAAE,EAAE;QAChB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;OAC/C;WAAM;QACL,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;OAC9C;KACF;IAED,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;MAChF,WAAW,CAAC,KAAK,CAAC;MAClB,mBAAmB,CAAC,KAAK,CAAC;MAC1B,mBAAmB,CAAC,KAAK,EAAEA,WAAK,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;KAChE,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,GAAG,iBAAiB,CAAC;;IAG1C,IAAI,iBAAiB,EAAE;MACrB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;MAC3B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC5B;SAAM;MACL,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAC7D,gBAAgB,EAChB,gBAAgB,EAChB,CAAC,CACF,CAAC;KACH;IAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;GAC3B;;;;;EAMO,oBAAoB;IAC1B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;MAChC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;MAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;GACF;;;;;EAMO,aAAa,CAAC,KAAoB;;IACxC,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;MACnC,OAAO;KACR;IAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CACxD,gCAAgC,CACjC,CAAC;IACF,MAAM,YAAY,GAAG,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,YAAY,CAAC,MAAM,CAAC,mCAAI,IAAI,CAAC;IACtE,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IAEhF,QAAQ,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE;MAC7B,KAAK,OAAO;QACV,IAAI,YAAY,KAAK,IAAI,EAAE;UACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC;SACrC;aAAM;UACL,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;SACzB;QAED,MAAM;MACR,KAAK,WAAW;QACd,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,MAAA,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,aAAa,0CAAE,kBAAkB,0CAAE,iBAAiB,EAAE;;UAE5E,kBAAkB,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,CACjF,UAAU,CACX,CAAC;;SAEH;aAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;UACjC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SAC1C;QAED,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAErC,MAAM;MACR,KAAK,SAAS;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,MAAA,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,aAAa,0CAAE,sBAAsB,0CAAE,iBAAiB,EAAE;;UAGhF,kBAAkB,CAAC,aAAa,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,CACrF,UAAU,CACX,CAAC;;SAEH;aAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;UACjC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SAC/D;QAED,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAErC,MAAM;KACT;GACF;;;;;EAMO,0BAA0B,CAAC,KAAiB;IAClD,IAAI,CAAC,kBAAkB,EAAE,CAAC;;IAGzB,KAAK,CAAC,MAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;GACzD;;;;;EAMO,2BAA2B;IACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;GAC3B;;;;EAKO,kBAAkB;IACxB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;MAAE,OAAO;IAE5C,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;IAErF,IAAI,kBAAkB,EAAE;MACtB,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KACjD;GACF;;;;EAKO,6BAA6B;IACnC,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;MAAE,OAAO;;IAG5C,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CACxD,gCAAgC,CACjC,CAAC;IACF,MAAM,aAAa,GAAG,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,OAAO,CAAC,cAAc,CAAC;;IAGjE,IAAI,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;MACjD,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC;KACtC;GACF;;;;EAKO,MAAM,WAAW;;IACvB,IAAI,IAAI,CAAC,SAAS,KAAI,MAAAA,WAAK,CAAC,eAAe,0CAAE,MAAM,CAAC,MAAM,CAAA,EAAE;MAC1D,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAC5C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAC3BA,WAAK,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CACpC,CAAC;MACF,IAAI,CAAC,WAAW;QAAE,OAAO;MACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;KACpC;GACF;EAEO,wBAAwB,CAAC,cAAqC;IACpE,IAAI,EAAE,WAAW,IAAI,MAAM,CAAC;MAAE,OAAO;IAErC,MAAM,kBAAkB,GAAG,cAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI;MAC9E,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;MAC5B,OAAO,GAAG,CAAC;KACZ,EAAE,EAAE,CAAC,CAAC;IAEN,MAAM,CAAC,SAAiC,CAAC,IAAI,CAAC;MAC7C,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC;MACvC,IAAI,EAAE,kBAAkB,CAAC,WAAW,CAAC;MACrC,QAAQ,EAAE,kBAAkB,CAAC,cAAc,CAAC;MAC5C,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC;MACvC,IAAI,EAAE,kBAAkB,CAAC,WAAW,CAAC;KACtC,CAAC,CAAC;GACJ;EAED,MAAM;;IACJ,IAAI,CAAA,MAAAA,WAAK,CAAC,eAAe,0CAAE,MAAM,MAAK,SAAS,EAAE;MAC/C,OAAO;KACR;IACD,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAGA,WAAK,CAAC,eAAe,CAAC,MAAM,CAAC;IAC9D,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,IAAI,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC;IACvF,MAAM,yBAAyB,GAC7B,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,MAAK,EAAE,IAAI,CAAA,MAAA,MAAM,CAAC,qBAAqB,0CAAE,KAAK,CAAC,MAAM,IAAG,CAAC,CAAC;IAEjF,QACEC,QAACO,UAAI,IAAC,IAAI,EAAC,QAAQ,IACjBP,QAACQ,6BAAS,OAAG,EACbR,iBAAK,KAAK,EAAC,QAAQ,IACjBA,oBACE,EAAE,EAAC,oCAAoC,EACvC,KAAK,EAAC,eAAe,EACrB,IAAI,EAAC,QAAQ,mBACE,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAC3C,OAAO,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAEzCA,kBAAM,KAAK,EAAC,iBAAiB,IAC1B,IAAI,CAAC,kBAAkB;QACpB,YAAY,CAAC,oBAAoB;QACjC,YAAY,CAAC,YAAY,CACxB,EACPA,QAACS,yBAAO,IAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,GAAG,UAAU,GAAG,WAAW,GAAI,CAC9D,EACTT,QAACU,eAAE,IAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,IACpCV,iBAAK,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,IACnDA,iBAAK,KAAK,EAAC,eAAe,IACxBA,iBAAK,KAAK,EAAC,KAAK,IACdA,iBAAK,KAAK,EAAC,8BAA8B,IACvCA,iBAAK,KAAK,EAAC,0BAA0B,IACnCA,mBACE,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,WAAW,EAChB,EAAE,EAAC,WAAW,EACd,KAAK,EAAC,8BAA8B,EACpC,WAAW,EAAE,YAAY,CAAC,4BAA4B,EACtD,YAAY,EAAC,KAAK,EAClB,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAChC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,iBAAiB,EAAE,EAC5C,SAAS,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GACrC,EACFA,mBAAO,OAAO,EAAC,WAAW,IAAE,YAAY,CAAC,4BAA4B,CAAS,EAC9EA,oBACE,OAAO,EAAE,MAAM,IAAI,CAAC,oBAAoB,EAAE,EAC1C,KAAK,EAAC,qBAAqB,EAC3B,IAAI,EAAC,OAAO,EACZ,EAAE,EAAC,aAAa,EAChB,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,IAElCA,kBAAM,KAAK,EAAC,iBAAiB,IAAEW,0BAAS,CAAC,oBAAoB,CAAC,CAAQ,EACtEX,QAACS,yBAAO,IAAC,IAAI,EAAC,UAAU,GAAG,CACpB,EACTT,oBAAQ,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAC,qBAAqB,IACzEA,kBAAM,KAAK,EAAC,iBAAiB,IAAE,YAAY,CAAC,YAAY,CAAQ,EAChEA,QAACS,yBAAO,IAAC,IAAI,EAAC,WAAW,GAAG,CACrB,CACL,EACL,yBAAyB,KACxBT,gBAAI,EAAE,EAAC,mDAAmD,EAAC,KAAK,EAAC,MAAM,IACpE,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAChC,CACN,EACDA,gBACE,KAAK,EAAC,qBAAqB,EAC3B,YAAY,EAAE,MAAM,IAAI,CAAC,2BAA2B,EAAE,qBAEpD,yBAAyB;UACrB,mDAAmD;UACnD,SAAS,IAGd,yBAAyB;MACxB,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,KACnDA,gBAAI,GAAG,EAAE,cAAc,CAAC,IAAI,IAC1BA,eACE,KAAK,EAAC,gCAAgC,EACtC,IAAI,EAAE,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,IAAI,0BACpC,cAAc,CAAC,KAAK,EAC1C,YAAY,EAAE,CAAC,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,EACrD,OAAO,EAAE,MAAM,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,IAE5DA,kBACE,KAAK,EAAC,6BAA6B,EACnC,SAAS,EAAE,cAAc,CAAC,SAAS,GAC7B,EACRA,sBAAO,cAAc,CAAC,KAAK,CAAQ,CACjC,CACD,CACN,CAAC,EACH,kBAAkB,KACjBA,oBACEA,eACE,KAAK,EAAC,4BAA4B,EAClC,IAAI,EAAE,IAAI,CAAC,gBAAiB,CAAC,GAAG,0BACV,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,EAC3C,YAAY,EAAE,CAAC,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAErDA,QAACS,yBAAO,IAAC,IAAI,EAAC,kBAAkB,GAAG,EACnCT,kBAAM,KAAK,EAAC,MAAM,IAAE,MAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,OAAO;SAAE,EAAE,YAAe,EACrEA,sBACG;MACC,MAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,OAAO,0CAAE,OAAO;MACvC,GAAG,IAAG,MAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,OAAO,0CAAE,SAAS,CAAC,OAAO,CAAA;MACvD,GAAG,IAAG,MAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,OAAO,0CAAE,SAAS,CAAC,IAAI,CAAA;MACpD,IAAI,IAAG,MAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,OAAO,0CAAE,KAAK,CAAA;KAC7C;OACE,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;OAClC,IAAI,CAAC,EAAE,CAAC,CACN,CACL,CACD,CACN,EACA,CAAC,yBAAyB;MACzB,IAAI,CAAC,gBAAgB;MACrB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,KAClCA,gBAAI,GAAG,EAAE,UAAU,CAAC,QAAQ,IAC1BA,eACE,KAAK,EAAC,UAAU,EAChB,IAAI,EAAE,UAAU,CAAC,WAAW,0BACN,UAAU,CAAC,UAAU,EAC3C,YAAY,EAAE,CAAC,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAErDA,QAACS,yBAAO,IAAC,IAAI,EAAC,WAAW,GAAG,EAC5BT,QAAC,eAAe,IAAC,IAAI,EAAE,UAAU,CAAC,WAAW,GAAI,CAC/C,CACD,CACN,CAAC,EACH,CAAC,yBAAyB;MACzB,IAAI,CAAC,gBAAgB;MACrB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU;;QAAI,QACtCA,gBAAI,GAAG,EAAE,UAAU,CAAC,EAAE,IACpBA,eACE,KAAK,EAAC,UAAU,EAChB,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,0BACR,UAAU,CAAC,IAAI,EACrC,YAAY,EAAE,CAAC,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAErDA,QAACS,yBAAO,IAAC,IAAI,EAAC,UAAU,GAAG,EAC3BT,QAAC,eAAe,IACd,IAAI,EAAE,qBAAqB,CACzB,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,0CAAE,IAAI,EAAE,EAC7B,UAAU,CAAC,IAAI,CAChB,GACD,CACA,CACD,EACN;OAAA,CAAC,CACD,CACD,CACF,CACF,CACF,CACH,CACD,CACD,EACP;GACH;;;;;;;","names":["state","h","throttle","clearAllBodyScrollLocks","elementHasTransition","userPrefersReducedMotion","disableBodyScroll","enableBodyScroll","Host","SvgSprite","SvgIcon","If","translate"],"sources":["src/services/search/parcel.service.ts","src/services/search/search.service.ts","src/services/search/coveo.settings.ts","src/services/search/coveo.service.ts","src/services/search/places.settings.ts","src/services/search/search-utilities.ts","src/services/search/places.service.ts","src/utils/highlighted.component.tsx","src/components/post-search/post-search.scss?tag=post-search&encapsulation=shadow","src/components/post-search/post-search.tsx"],"sourcesContent":["import { state } from '../../data/store';\nimport { ISearchConfig } from '../../models/header.model';\nimport { TrackAndTraceInfo } from '../../models/track-and-trace.model';\n\nlet parcelController: AbortController;\n\n// https://www.post.ch/api/trackandtrace?id=99.00.306600.01004883\n\n// Track and trace URL\nexport const getTrackAndTraceApiUrl = (id: string) => {\n const lang = state.currentLanguage;\n return `https://www.post.ch/${lang}/api/trackandtrace?id=${encodeURIComponent(id)}`;\n};\n\n// Get the redire\nexport const getTrackAndTraceRedirectUrl = (\n query: string,\n { packageTrackingRedirectUrl }: ISearchConfig,\n) => {\n return packageTrackingRedirectUrl.replace('{trackingNumber}', encodeURIComponent(query));\n};\n\n/**\n * Check whether a query is a tracking id\n *\n * @param query User query\n * @returns Boolean\n */\nexport const isParcel = async (query: string, searchConfig: ISearchConfig): Promise<boolean> => {\n const parcelInfo = await getParcelInfo(query, searchConfig);\n return 'sending' in parcelInfo;\n};\n\n/**\n * Try to get parcel info from a query that is possibly a tracking id.\n * This is mainly used to check if a search should redirect to track&trace instead of the regular search.\n *\n * @param query User query that is possibly a tracking number\n * @returns Track and trace info\n */\nexport const getParcelInfo = async (\n query: string,\n { redirectPattern }: ISearchConfig,\n): Promise<TrackAndTraceInfo> => {\n const trackingNrPattern = new RegExp(redirectPattern);\n\n if (trackingNrPattern.test(query)) {\n const url = getTrackAndTraceApiUrl(query);\n\n if (parcelController) parcelController.abort();\n parcelController = new AbortController();\n\n return new Promise((resolve, reject) => {\n fetch(url, { signal: parcelController.signal })\n .then(response => response.json())\n .then((trackAndTraceResult: TrackAndTraceInfo) => {\n resolve({ ...trackAndTraceResult, ok: trackAndTraceResult.ok });\n })\n .catch(error => {\n if (error.name !== 'AbortError') {\n console.error(`Could not check track and trace API due to error: ${error.message}`);\n reject(error);\n }\n });\n });\n }\n\n return { ok: false, timestamp: new Date().toDateString() };\n};\n\n/**\n * Get parcel info if query is a parcel or null\n *\n * @param query Parcel id\n * @returns Parcel info and a redirect url or null if not a parcel\n */\nexport const getParcelSuggestion = async (\n query: string,\n searchConfig: ISearchConfig,\n): Promise<(TrackAndTraceInfo & { url: string }) | null> => {\n const parcelInfo = await getParcelInfo(query, searchConfig);\n return parcelInfo.ok\n ? { ...parcelInfo, url: getTrackAndTraceRedirectUrl(query, searchConfig) }\n : null;\n};\n","import { state } from '../../data/store';\nimport { ISearchConfig } from '../../models/header.model';\nimport { getTrackAndTraceRedirectUrl, isParcel } from './parcel.service';\n\n/**\n * Construct a search page url from a query\n *\n * @param query Search term\n * @returns\n */\nexport const getSearchRedirectUrl = async (\n query: string,\n searchConfig: ISearchConfig,\n): Promise<string | undefined> => {\n const isTrackTraceId = await isParcel(query, searchConfig);\n return isTrackTraceId\n ? getTrackAndTraceRedirectUrl(query, searchConfig)\n : getSearchPageUrl(query);\n};\n\n/**\n * Stitch toghether the search page URL\n *\n * @param query Search term\n * @returns Search page URL\n */\nexport const getSearchPageUrl = (query: string): string | undefined => {\n if (state.localizedConfig?.header.search === undefined) {\n return;\n }\n const { searchPageUrl } = state.localizedConfig.header.search;\n const searchParam = `#q=${encodeURIComponent(query)}`;\n return `${searchPageUrl}${searchParam}&t=AllTab`;\n};\n\n/**\n * Equalize the length of two arrays while filling up empty slots up to max. length\n *\n * @param arrayA First array\n * @param arrayB Second array\n * @param maxLength Max. length of result array\n * @returns Array with two resulting arrays\n */\nexport const equalizeArrays = <A, B>(arrayA: A[], arrayB: B[], maxLength = 7): [A[], B[]] => {\n const coveoSliced = arrayA.slice(0, Math.max(maxLength / 2, maxLength - arrayB.length));\n return [coveoSliced, arrayB.slice(0, maxLength - coveoSliced.length)];\n};\n","import { CoveoOptions } from '../../models/coveo.model';\n\n// Coveo constants\nexport const coveo: CoveoOptions = {\n url: 'https://platform-eu.cloud.coveo.com/rest/search/v2/querySuggest',\n environment: {\n prod: {\n organisation: 'postchagprod6ef4sbet',\n token: 'xx5b629890-23b9-4fbe-b601-0e8719186969',\n },\n int01: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n int02: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n dev01: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n dev02: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n devs1: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n test: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n },\n};\n","import { state } from '../../data/store';\nimport { CoveoCompletion, CoveoResponse } from '../../models/coveo.model';\nimport { coveo } from './coveo.settings';\nimport { getSearchPageUrl } from './search.service';\n\nlet suggestionsController: AbortController;\n\n/**\n * Get suggestions from coveo\n * https://docs.coveo.com/en/1459/build-a-search-ui/get-query-suggestions#context-object\n *\n * @param query Search term\n * @returns\n */\nexport const getCoveoSuggestions = async (query: string): Promise<CoveoCompletion[]> => {\n if (\n state.localizedConfig?.header?.search === undefined ||\n state.localizedConfig?.header?.search.isCustomSuggestionHidden === true\n )\n return [];\n const config = state.localizedConfig.header.search;\n const { token, organisation } = coveo.environment[state.environment];\n const url = `${coveo.url}?q=${query}&locale=${state.currentLanguage}&searchHub=${config.searchHubName}&pipeline=${config.searchPipelineName}&organizationId=${organisation}`;\n\n if (suggestionsController) suggestionsController.abort();\n suggestionsController = new AbortController();\n\n return new Promise((resolve, reject) => {\n fetch(url, {\n signal: suggestionsController.signal,\n method: 'GET',\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })\n .then(response => response.json())\n .then((coveoJSON: CoveoResponse) => {\n resolve(\n coveoJSON.completions.map(completion => ({\n ...completion,\n redirectUrl: getSearchPageUrl(completion.expression),\n })),\n );\n })\n .catch(error => {\n if (error.name !== 'AbortError') {\n console.error(\n `Fetching coveo suggestions failed, ${error}\\nDid you add \"*.coveo.com\" to your connect-src content security policy and tried turning off your adblocker?`,\n );\n reject(error);\n }\n });\n });\n};\n","// Implement some TOPOS logic into the header search\nexport const gisAPIUrl = 'https://places.post.ch/StandortSuche/StaoCacheService';\nexport const placesUrl = 'https://places.post.ch';\nexport const pois = [\n '001PST',\n '001MP24',\n '001AG-PICK',\n '001PFFIL',\n '001PFST',\n '001BZ',\n '001LZB',\n '001PZ',\n '001LZP',\n '001AL',\n];\n","/**\n * Transform to lowercase, extract accents to separate unicode chars,\n * replace all accent unicode chars so only standard latin chars remain\n * https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript/37511463#37511463\n *\n * @param str Input string\n * @returns\n */\nexport const hardNormalize = (str: string): string =>\n str\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n","import { state } from '../../data/store';\nimport { GeocodeLocation, GeocodeResponse } from '../../models/geocode.model';\nimport { gisAPIUrl, placesUrl } from './places.settings';\nimport { hardNormalize } from './search-utilities';\n\nlet placesController: AbortController;\n\n/**\n * Query the Gis API for locations and localities (pois)\n *\n * @param query User input string\n * @returns\n */\nexport const queryPlaces = async (query: string): Promise<GeocodeLocation[]> => {\n if (query.length === 0) {\n return [];\n }\n\n const searchParameters = Object.entries({\n query: encodeURIComponent(query),\n lang: state.currentLanguage,\n limit: 7,\n }).reduce((s, [k, v], i) => `${s}${i === 0 ? '?' : '&'}${k}=${v}`, '');\n\n const url = `${gisAPIUrl}/Geocode${searchParameters}`;\n\n if (placesController) placesController.abort();\n placesController = new AbortController();\n\n return new Promise((resolve, reject) => {\n fetch(url, { signal: placesController.signal })\n .then(response => response.json())\n .then((geocodeJSON: GeocodeResponse) => {\n if (!geocodeJSON.ok) throw new Error(geocodeJSON.info);\n resolve(geocodeJSON.locations);\n })\n .catch(error => {\n if (error.name !== 'AbortError') {\n console.error(\n `Fetching places failed, ${error}\\nDid you add \"places.post.ch\" to your connect-src content security policy?`,\n );\n reject(error);\n }\n });\n });\n};\n\n/**\n * Try to highlight place suggestions\n * Limitation: accented chars are not handled by this basic function\n *\n * @param query Search term\n * @param place Name of the suggested place\n * @returns\n */\nexport const highlightPlacesString = (query: string | undefined, place: string) => {\n if (query === undefined) return place;\n\n // Strip accents from the string\n const reference = hardNormalize(place);\n const q = hardNormalize(query);\n const indexOfQuery = reference.indexOf(q);\n\n if (indexOfQuery < 0) {\n return place;\n }\n\n return `${place.substring(0, indexOfQuery)}{${place.substring(\n indexOfQuery,\n indexOfQuery + query.length,\n )}}${place.substring(indexOfQuery + query.length, place.length)}`;\n};\n\n/**\n * Get the deeplink to any location found via geocoder\n *\n * @param location A location from the Gis API Geocode endpoint\n * @returns\n */\nexport const getPlacesUrl = (location: GeocodeLocation): string => {\n let url: string;\n\n if (location.id) {\n url = `${placesUrl}/${state.currentLanguage}/${location.id}/detail`;\n } else {\n url = `${placesUrl}?preselecttext=${encodeURIComponent(location.name)}`;\n }\n\n return url;\n};\n","import { h } from '@stencil/core';\n\nexport const HighlightedText = (props: { text: string; highlightClass?: string }) => {\n const highlightClass = props.highlightClass ?? 'bold';\n const highlightedString = props.text\n .replace(/[{(]/g, `<span class=\"${highlightClass}\">`)\n .replace(/[})]/g, '</span>')\n .replace(/[\\[\\]]/g, '');\n return <span innerHTML={highlightedString}></span>;\n};\n","@use '@swisspost/design-system-styles/core' as post;\n@use '@swisspost/design-system-styles/variables/color';\n@use '@swisspost/design-system-styles/components/forms';\n@use '@swisspost/design-system-styles/components/floating-label';\n@use '@swisspost/design-system-styles/components/grid';\n@use '../../utils/utils.scss';\n@use '../../utils/mixins.scss';\n\n:host {\n display: block;\n}\n\n.search,\n:host {\n height: 100%;\n}\n\n.search-button {\n @extend %nav-link;\n\n height: 100%;\n display: flex;\n align-items: center;\n cursor: pointer;\n padding-right: calc(1rem - 1px);\n padding-left: calc(1rem - 1px);\n\n @include mixins.min(lg) {\n padding: 0 calc(1.125rem - 1px);\n }\n\n @include mixins.min(xl) {\n padding: 0 calc(1.5rem - 1px);\n }\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n\n .visually-hidden {\n @include mixins.between(rg, lg) {\n @include mixins.reset-visually-hidden();\n\n font-weight: 300;\n margin-right: 0.5rem;\n cursor: pointer;\n }\n }\n}\n\n.flyout {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n background: white;\n overflow: auto;\n overscroll-behavior: contain;\n padding-top: 3.25rem;\n padding-bottom: 3.25rem;\n z-index: -1;\n transform: translateY(-100%);\n transition: transform 0.35s, box-shadow 0.35s;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n @include mixins.min(lg) {\n max-height: calc(100vh - var(--header-height) - var(--meta-header-height) - 1px);\n box-shadow: 0 0 1px 0 rgb(0 0 0 / 40%);\n\n &.open {\n box-shadow: 0 0 8px 0 rgb(0 0 0 / 40%);\n }\n }\n\n @include mixins.max(lg) {\n height: calc(100vh - var(--header-height) - 1px);\n }\n\n &.open {\n transform: translateY(0);\n }\n}\n\n.form-floating {\n .form-control,\n .form-control + label {\n padding-right: post.$input-padding-x * 5;\n }\n}\n\n.start-search-button,\n.clear-search-button {\n position: absolute;\n top: 0;\n right: 0;\n height: 100%;\n padding-right: 1rem;\n padding-left: 0.5rem;\n display: flex;\n align-items: center;\n cursor: pointer;\n background: none;\n border: 0;\n box-shadow: none;\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n}\n\n.clear-search-button {\n right: 3rem;\n padding-right: 0.5rem;\n visibility: hidden;\n}\n\n.suggestions {\n margin: 1.5rem 0;\n\n a {\n padding: 0.75rem 1rem;\n\n &:hover,\n &:focus,\n &.selected {\n background: color.$gray-background;\n }\n\n &.parcel-suggestion {\n flex-wrap: wrap;\n }\n }\n}\n\n.search-recommendation__icon {\n height: 1.5em;\n width: 1.5em;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, State } from '@stencil/core';\nimport { throttle } from 'throttle-debounce';\nimport { clearAllBodyScrollLocks, disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { state } from '../../data/store';\nimport { CoveoCompletion } from '../../models/coveo.model';\nimport { GeocodeLocation } from '../../models/geocode.model';\nimport { TagManagerDataLayer } from '../../models/general.model';\nimport {\n DropdownElement,\n DropdownEvent,\n HasDropdown,\n ISearchRecommendation,\n IsFocusable,\n} from '../../models/header.model';\nimport { equalizeArrays, getSearchRedirectUrl } from '../../services/search/search.service';\nimport { getCoveoSuggestions } from '../../services/search/coveo.service';\nimport {\n getPlacesUrl,\n highlightPlacesString,\n queryPlaces,\n} from '../../services/search/places.service';\nimport { elementHasTransition, userPrefersReducedMotion } from '../../services/ui.service';\nimport { HighlightedText } from '../../utils/highlighted.component';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { TrackAndTraceInfo } from '../../models/track-and-trace.model';\nimport { getParcelSuggestion } from '../../services/search/parcel.service';\nimport { If } from '../../utils/if.component';\nimport { translate } from '../../services/language.service';\n\n@Component({\n tag: 'post-search',\n styleUrl: 'post-search.scss',\n shadow: true,\n})\nexport class PostSearch implements HasDropdown, IsFocusable {\n @State() searchDropdownOpen = false;\n @State() coveoSuggestions: CoveoCompletion[] = [];\n @State() placeSuggestions: GeocodeLocation[] = [];\n @State() parcelSuggestion: (TrackAndTraceInfo & { url: string }) | null = null;\n @Event() dropdownToggled: EventEmitter<DropdownEvent>;\n @Element() host: DropdownElement;\n private searchBox?: HTMLInputElement;\n private searchFlyout: HTMLElement | undefined;\n private throttledResize: throttle<() => void>;\n private clearButton?: HTMLButtonElement;\n\n connectedCallback() {\n this.throttledResize = throttle(300, () => this.handleResize());\n window.addEventListener('resize', this.throttledResize, { passive: true });\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.throttledResize);\n clearAllBodyScrollLocks();\n }\n\n componentWillUpdate() {\n // Check if search flyout got set to close\n if (this.searchFlyout && !this.searchDropdownOpen) {\n this.searchFlyout.classList.remove('open');\n\n // Check if element has transition applied and whether user prefers to see animations or not\n if (elementHasTransition(this.searchFlyout, 'transform') && !userPrefersReducedMotion()) {\n // Wait for CSS transition 'transform' to end before continuing\n return new Promise<boolean>(resolve => {\n if (this.searchFlyout === undefined) {\n return resolve(true);\n }\n\n this.searchFlyout.addEventListener('transitionend', event => {\n if (event.propertyName === 'transform') {\n resolve(true);\n }\n });\n });\n }\n }\n }\n\n componentDidUpdate() {\n // Search flyout got set to open\n if (this.searchFlyout && this.searchDropdownOpen) {\n // Force browser to redraw/refresh DOM before adding 'open' class\n this.searchFlyout.getBoundingClientRect();\n this.searchFlyout.classList.add('open');\n }\n\n // Focus on the searchBox whenever the dropdown is opened\n if (this.searchDropdownOpen && this.searchBox) {\n this.searchBox.focus({ preventScroll: true });\n }\n }\n\n public async toggleDropdown(event?: Event): Promise<boolean>;\n public async toggleDropdown(force?: boolean): Promise<boolean>;\n\n /**\n * Toggle the dropdown and optionally force an open/closed state\n * @param force Boolean to force open/closed state\n * @returns Boolean indicating open state of the component\n */\n @Method()\n async toggleDropdown(force?: unknown) {\n this.searchDropdownOpen =\n force === undefined || typeof force !== 'boolean' ? !this.searchDropdownOpen : force;\n this.dropdownToggled.emit({ open: this.searchDropdownOpen, element: this.host });\n\n if (!this.searchDropdownOpen) {\n // Reset suggestions when dropdown closes\n this.coveoSuggestions = [];\n this.placeSuggestions = [];\n if (this.searchBox) this.searchBox.value = '';\n void this.setFocus();\n } else {\n // Get basic suggestions when dropdown opens\n try {\n this.coveoSuggestions = await getCoveoSuggestions('');\n } catch {}\n }\n\n this.setBodyScroll();\n\n return this.searchDropdownOpen;\n }\n\n /**\n * Sets the focus on the search button\n */\n @Method()\n public async setFocus() {\n const shadowRoot = this.host.shadowRoot;\n if (shadowRoot === null) {\n return;\n }\n const toggleButton = shadowRoot.querySelector<HTMLElement>('.search-button');\n if (toggleButton) {\n toggleButton.focus();\n }\n }\n\n private handleResize() {\n // Only enable/disable body scroll on resize if the search dropdown is open, otherwise this could lead to side effects in other controls\n if (this.searchDropdownOpen) {\n this.setBodyScroll();\n }\n }\n\n /**\n * Disable or re-enable body scrolling, depending on whether search dropdown is open or closed in mobile view (width < 1024px)\n */\n private setBodyScroll() {\n if (!this.searchFlyout) {\n return;\n }\n\n if (this.searchDropdownOpen && window.innerWidth < 1024) {\n disableBodyScroll(this.searchFlyout);\n } else {\n enableBodyScroll(this.searchFlyout);\n }\n }\n\n /**\n * Fetch suggestions from all available sources\n */\n private async handleSearchInput() {\n if (this.searchBox === undefined || state.localizedConfig?.header.search === undefined) {\n return;\n }\n const query = this.searchBox.value.trim();\n\n // shows or hides clearButton depending on the content of the searchbar\n if (this.clearButton) {\n if (query !== '') {\n this.clearButton.style.visibility = 'visible';\n } else {\n this.clearButton.style.visibility = 'hidden';\n }\n }\n\n const [placeSuggestions, coveoSuggestions, trackAndTraceInfo] = await Promise.all([\n queryPlaces(query),\n getCoveoSuggestions(query),\n getParcelSuggestion(query, state.localizedConfig.header.search),\n ]);\n\n this.parcelSuggestion = trackAndTraceInfo;\n\n // Parcel suggestion is more important than any other\n if (trackAndTraceInfo) {\n this.placeSuggestions = [];\n this.coveoSuggestions = [];\n } else {\n [this.coveoSuggestions, this.placeSuggestions] = equalizeArrays(\n coveoSuggestions,\n placeSuggestions,\n 7,\n );\n }\n\n this.deselectSuggestion();\n }\n\n /**\n * clear Search box\n * calls handleSearchInput to update/remove suggestions\n */\n private handleClearSearchBox() {\n if (this.searchBox !== undefined) {\n this.searchBox.value = '';\n this.handleSearchInput();\n }\n }\n\n /**\n * Start search on enter\n * @param event\n */\n private handleKeyDown(event: KeyboardEvent) {\n if (this.searchFlyout === undefined) {\n return;\n }\n\n const selectedSuggestion = this.searchFlyout.querySelector<HTMLElement>(\n '.suggestions > li > a.selected',\n );\n const selectedHref = selectedSuggestion?.getAttribute('href') ?? null;\n const suggestions = this.searchFlyout.querySelectorAll('.suggestions > li > a');\n\n switch (event.key.toLowerCase()) {\n case 'enter':\n if (selectedHref !== null) {\n window.location.href = selectedHref;\n } else {\n void this.startSearch();\n }\n\n break;\n case 'arrowdown':\n this.deselectSuggestion();\n\n if (selectedSuggestion?.parentElement?.nextElementSibling?.firstElementChild) {\n // Select next suggestion if there's any, otherwise none will be selected\n selectedSuggestion.parentElement.nextElementSibling.firstElementChild.classList.add(\n 'selected',\n );\n // If there are any suggestions, select first suggestion in list\n } else if (suggestions.length > 0) {\n suggestions[0].classList.add('selected');\n }\n\n this.updateSearchBoxWithSuggestion();\n\n break;\n case 'arrowup':\n this.deselectSuggestion();\n\n if (selectedSuggestion?.parentElement?.previousElementSibling?.firstElementChild) {\n // Select previous suggestion if there's any, otherwise none will be selected\n\n selectedSuggestion.parentElement.previousElementSibling.firstElementChild.classList.add(\n 'selected',\n );\n // If there are any suggestions, select last suggestion in list\n } else if (suggestions.length > 0) {\n suggestions[suggestions.length - 1].classList.add('selected');\n }\n\n this.updateSearchBoxWithSuggestion();\n\n break;\n }\n }\n\n /**\n * Set selected suggestion on mouse enter\n * @param event\n */\n private handleMouseEnterSuggestion(event: MouseEvent) {\n this.deselectSuggestion();\n\n // Set hovered suggestion element as selected\n (event.target as HTMLElement).classList.add('selected');\n }\n\n /**\n * Set selected suggestion on mouse enter\n * @param event\n */\n private handleMouseLeaveSuggestions() {\n this.deselectSuggestion();\n }\n\n /**\n * Deselect any previously selected suggestion\n */\n private deselectSuggestion() {\n if (this.searchFlyout === undefined) return;\n\n const selectedSuggestion = this.searchFlyout.querySelector('.suggestions .selected');\n\n if (selectedSuggestion) {\n selectedSuggestion.classList.remove('selected');\n }\n }\n\n /**\n * Update search box with selected suggestion\n */\n private updateSearchBoxWithSuggestion() {\n if (this.searchFlyout === undefined) return;\n\n // Get the newly selected suggestion\n const selectedSuggestion = this.searchFlyout.querySelector<HTMLElement>(\n '.suggestions > li > a.selected',\n );\n const suggestedText = selectedSuggestion?.dataset.suggestionText;\n\n // Update search box value with selected suggestion text\n if (suggestedText !== undefined && this.searchBox) {\n this.searchBox.value = suggestedText;\n }\n }\n\n /**\n * Redirect to the post search page\n */\n private async startSearch() {\n if (this.searchBox && state.localizedConfig?.header.search) {\n const redirectUrl = await getSearchRedirectUrl(\n this.searchBox.value.trim(),\n state.localizedConfig.header.search,\n );\n if (!redirectUrl) return;\n window.location.href = redirectUrl;\n }\n }\n\n private trackRecommendationClick(recommendation: ISearchRecommendation) {\n if (!('dataLayer' in window)) return;\n\n const trackingAttributes = recommendation.additionalAttributes.reduce((acc, curr) => {\n acc[curr.name] = curr.value;\n return acc;\n }, {});\n\n (window.dataLayer as TagManagerDataLayer).push({\n event: trackingAttributes['data-event'],\n text: trackingAttributes['data-text'],\n link_url: trackingAttributes['data-linkurl'],\n label: trackingAttributes['data-label'],\n type: trackingAttributes['data-type'],\n });\n }\n\n render() {\n if (state.localizedConfig?.header === undefined) {\n return;\n }\n const { translations, search } = state.localizedConfig.header;\n const isParcelTrackingNr = this.parcelSuggestion && 'sending' in this.parcelSuggestion;\n const showPortalRecommendations =\n this.searchBox?.value === '' && search.searchRecommendations?.links.length > 0;\n\n return (\n <Host role=\"search\">\n <SvgSprite />\n <div class=\"search\">\n <button\n id=\"post-internet-header-search-button\"\n class=\"search-button\"\n type=\"button\"\n aria-expanded={`${this.searchDropdownOpen}`}\n onClick={e => void this.toggleDropdown(e)}\n >\n <span class=\"visually-hidden\">\n {this.searchDropdownOpen\n ? translations.searchToggleExpanded\n : translations.searchToggle}\n </span>\n <SvgIcon name={this.searchDropdownOpen ? 'pi-close' : 'pi-search'} />\n </button>\n <If condition={this.searchDropdownOpen}>\n <div class=\"flyout\" ref={e => (this.searchFlyout = e)}>\n <div class=\"container box\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-md-10 col-lg-8\">\n <div class=\"form-group form-floating\">\n <input\n type=\"text\"\n role=\"searchbox\"\n id=\"searchBox\"\n class=\"form-control form-control-lg\"\n placeholder={translations.flyoutSearchBoxFloatingLabel}\n autocomplete=\"off\"\n ref={el => (this.searchBox = el)}\n onInput={() => void this.handleSearchInput()}\n onKeyDown={e => this.handleKeyDown(e)}\n />\n <label htmlFor=\"searchBox\">{translations.flyoutSearchBoxFloatingLabel}</label>\n <button\n onClick={() => this.handleClearSearchBox()}\n class=\"clear-search-button\"\n type=\"reset\"\n id=\"clearButton\"\n ref={el => (this.clearButton = el)}\n >\n <span class=\"visually-hidden\">{translate('Delete search term')}</span>\n <SvgIcon name=\"pi-close\" />\n </button>\n <button onClick={() => void this.startSearch()} class=\"start-search-button\">\n <span class=\"visually-hidden\">{translations.searchSubmit}</span>\n <SvgIcon name=\"pi-search\" />\n </button>\n </div>\n {showPortalRecommendations && (\n <h2 id=\"post-internet-header-search-recommendations-title\" class=\"bold\">\n {search.searchRecommendations.title}\n </h2>\n )}\n <ul\n class=\"suggestions no-list\"\n onMouseLeave={() => this.handleMouseLeaveSuggestions()}\n aria-labelledby={\n showPortalRecommendations\n ? 'post-internet-header-search-recommendations-title'\n : undefined\n }\n >\n {showPortalRecommendations &&\n search.searchRecommendations.links.map(recommendation => (\n <li key={recommendation.href}>\n <a\n class=\"nav-link search-recommendation\"\n href={new URL(recommendation.href, 'https://post.ch').href}\n data-suggestion-text={recommendation.label}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n onClick={() => this.trackRecommendationClick(recommendation)}\n >\n <span\n class=\"search-recommendation__icon\"\n innerHTML={recommendation.inlineSvg}\n ></span>\n <span>{recommendation.label}</span>\n </a>\n </li>\n ))}\n {isParcelTrackingNr && (\n <li>\n <a\n class=\"nav-link parcel-suggestion\"\n href={this.parcelSuggestion!.url}\n data-suggestion-text={this.searchBox?.value}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-letter-parcel\" />\n <span class=\"bold\">{this.parcelSuggestion?.sending?.id}: </span>\n <span>\n {[\n this.parcelSuggestion?.sending?.product,\n ' ' + this.parcelSuggestion?.sending?.recipient.zipcode,\n ' ' + this.parcelSuggestion?.sending?.recipient.city,\n ', ' + this.parcelSuggestion?.sending?.state,\n ]\n .filter(s => s !== '' && s !== ' ')\n .join('')}\n </span>\n </a>\n </li>\n )}\n {!showPortalRecommendations &&\n this.coveoSuggestions &&\n this.coveoSuggestions.map(suggestion => (\n <li key={suggestion.objectId}>\n <a\n class=\"nav-link\"\n href={suggestion.redirectUrl}\n data-suggestion-text={suggestion.expression}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-search\" />\n <HighlightedText text={suggestion.highlighted} />\n </a>\n </li>\n ))}\n {!showPortalRecommendations &&\n this.placeSuggestions &&\n this.placeSuggestions.map(suggestion => (\n <li key={suggestion.id}>\n <a\n class=\"nav-link\"\n href={getPlacesUrl(suggestion)}\n data-suggestion-text={suggestion.name}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-place\" />\n <HighlightedText\n text={highlightPlacesString(\n this.searchBox?.value?.trim(),\n suggestion.name,\n )}\n />\n </a>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </div>\n </div>\n </If>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|