@swisspost/internet-header 1.7.1 → 1.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/dist/cjs/{klp-widget.controller-5d5afa10.js → klp-widget.controller-d23f72bb.js} +784 -1047
  2. package/dist/cjs/klp-widget.controller-d23f72bb.js.map +1 -0
  3. package/dist/cjs/{language.service-56d68ec3.js → language.service-dcd7bae3.js} +16 -1
  4. package/dist/cjs/language.service-dcd7bae3.js.map +1 -0
  5. package/dist/cjs/post-klp-login-widget.cjs.entry.js +1 -1
  6. package/dist/cjs/post-language-switch.cjs.entry.js +3 -4
  7. package/dist/cjs/post-language-switch.cjs.entry.js.map +1 -1
  8. package/dist/cjs/post-main-navigation.cjs.entry.js +22 -25
  9. package/dist/cjs/post-main-navigation.cjs.entry.js.map +1 -1
  10. package/dist/cjs/post-meta-navigation.cjs.entry.js +3 -3
  11. package/dist/cjs/post-meta-navigation.cjs.entry.js.map +1 -1
  12. package/dist/cjs/post-search.cjs.entry.js +2 -2
  13. package/dist/cjs/post-search.cjs.entry.js.map +1 -1
  14. package/dist/cjs/post-skiplinks.cjs.entry.js +2 -2
  15. package/dist/cjs/post-skiplinks.cjs.entry.js.map +1 -1
  16. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +4 -4
  17. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js.map +1 -1
  18. package/dist/cjs/swisspost-internet-header.cjs.entry.js +9 -9
  19. package/dist/cjs/swisspost-internet-header.cjs.entry.js.map +1 -1
  20. package/dist/collection/assets/i18n/translations.js +15 -0
  21. package/dist/collection/assets/i18n/translations.js.map +1 -1
  22. package/dist/collection/components/post-internet-breadcrumbs/components/middle-dropdown.component.js +1 -1
  23. package/dist/collection/components/post-internet-breadcrumbs/components/middle-dropdown.component.js.map +1 -1
  24. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js +1 -1
  25. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js.map +1 -1
  26. package/dist/collection/components/post-internet-header/post-internet-header.js +2 -1
  27. package/dist/collection/components/post-internet-header/post-internet-header.js.map +1 -1
  28. package/dist/collection/components/post-language-switch/components/post-language-switch-list.js +1 -1
  29. package/dist/collection/components/post-language-switch/components/post-language-switch-list.js.map +1 -1
  30. package/dist/collection/components/post-main-navigation/components/level-one-action.component.js +2 -1
  31. package/dist/collection/components/post-main-navigation/components/level-one-action.component.js.map +1 -1
  32. package/dist/collection/components/post-main-navigation/post-main-navigation.js +21 -25
  33. package/dist/collection/components/post-main-navigation/post-main-navigation.js.map +1 -1
  34. package/dist/collection/components/post-meta-navigation/post-meta-navigation.js +3 -3
  35. package/dist/collection/components/post-meta-navigation/post-meta-navigation.js.map +1 -1
  36. package/dist/collection/components/post-search/post-search.js +2 -2
  37. package/dist/collection/components/post-search/post-search.js.map +1 -1
  38. package/dist/collection/components/post-skiplinks/post-skiplinks.js +1 -1
  39. package/dist/collection/components/post-skiplinks/post-skiplinks.js.map +1 -1
  40. package/dist/components/klp-widget.controller.js +783 -1046
  41. package/dist/components/klp-widget.controller.js.map +1 -1
  42. package/dist/components/language.service.js +15 -0
  43. package/dist/components/language.service.js.map +1 -1
  44. package/dist/components/post-language-switch2.js +2 -3
  45. package/dist/components/post-language-switch2.js.map +1 -1
  46. package/dist/components/post-main-navigation2.js +22 -25
  47. package/dist/components/post-main-navigation2.js.map +1 -1
  48. package/dist/components/post-meta-navigation2.js +3 -3
  49. package/dist/components/post-meta-navigation2.js.map +1 -1
  50. package/dist/components/post-search2.js +2 -2
  51. package/dist/components/post-search2.js.map +1 -1
  52. package/dist/components/post-skiplinks2.js +1 -1
  53. package/dist/components/post-skiplinks2.js.map +1 -1
  54. package/dist/components/swisspost-internet-breadcrumbs.js +3 -3
  55. package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -1
  56. package/dist/components/swisspost-internet-header.js +9 -9
  57. package/dist/components/swisspost-internet-header.js.map +1 -1
  58. package/dist/esm/{klp-widget.controller-9f7e3c54.js → klp-widget.controller-945d9271.js} +784 -1047
  59. package/dist/esm/klp-widget.controller-945d9271.js.map +1 -0
  60. package/dist/esm/{language.service-74bc1f43.js → language.service-55e5ef74.js} +16 -1
  61. package/dist/esm/language.service-55e5ef74.js.map +1 -0
  62. package/dist/esm/post-klp-login-widget.entry.js +1 -1
  63. package/dist/esm/post-language-switch.entry.js +3 -4
  64. package/dist/esm/post-language-switch.entry.js.map +1 -1
  65. package/dist/esm/post-main-navigation.entry.js +22 -25
  66. package/dist/esm/post-main-navigation.entry.js.map +1 -1
  67. package/dist/esm/post-meta-navigation.entry.js +3 -3
  68. package/dist/esm/post-meta-navigation.entry.js.map +1 -1
  69. package/dist/esm/post-search.entry.js +2 -2
  70. package/dist/esm/post-search.entry.js.map +1 -1
  71. package/dist/esm/post-skiplinks.entry.js +2 -2
  72. package/dist/esm/post-skiplinks.entry.js.map +1 -1
  73. package/dist/esm/swisspost-internet-breadcrumbs.entry.js +4 -4
  74. package/dist/esm/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  75. package/dist/esm/swisspost-internet-header.entry.js +9 -9
  76. package/dist/esm/swisspost-internet-header.entry.js.map +1 -1
  77. package/dist/esm-es5/klp-widget.controller-945d9271.js +13 -0
  78. package/dist/esm-es5/klp-widget.controller-945d9271.js.map +1 -0
  79. package/dist/esm-es5/language.service-55e5ef74.js +2 -0
  80. package/dist/esm-es5/language.service-55e5ef74.js.map +1 -0
  81. package/dist/esm-es5/post-klp-login-widget.entry.js +1 -1
  82. package/dist/esm-es5/post-language-switch.entry.js +1 -1
  83. package/dist/esm-es5/post-language-switch.entry.js.map +1 -1
  84. package/dist/esm-es5/post-main-navigation.entry.js +1 -1
  85. package/dist/esm-es5/post-main-navigation.entry.js.map +1 -1
  86. package/dist/esm-es5/post-meta-navigation.entry.js +1 -1
  87. package/dist/esm-es5/post-meta-navigation.entry.js.map +1 -1
  88. package/dist/esm-es5/post-search.entry.js +1 -1
  89. package/dist/esm-es5/post-search.entry.js.map +1 -1
  90. package/dist/esm-es5/post-skiplinks.entry.js +1 -1
  91. package/dist/esm-es5/post-skiplinks.entry.js.map +1 -1
  92. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +3 -3
  93. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  94. package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
  95. package/dist/esm-es5/swisspost-internet-header.entry.js.map +1 -1
  96. package/dist/swisspost-internet-header/p-0d7864f3.js +13 -0
  97. package/dist/swisspost-internet-header/p-0d7864f3.js.map +1 -0
  98. package/dist/swisspost-internet-header/p-1195cffa.entry.js +2 -0
  99. package/dist/swisspost-internet-header/p-1195cffa.entry.js.map +1 -0
  100. package/dist/swisspost-internet-header/{p-f62f50ce.system.entry.js → p-1c0ba4e8.system.entry.js} +2 -2
  101. package/dist/swisspost-internet-header/p-1c0ba4e8.system.entry.js.map +1 -0
  102. package/dist/swisspost-internet-header/p-242b61d1.system.js +2 -0
  103. package/dist/swisspost-internet-header/p-242b61d1.system.js.map +1 -0
  104. package/dist/swisspost-internet-header/p-30695393.entry.js +7 -0
  105. package/dist/swisspost-internet-header/{p-3f72b002.entry.js.map → p-30695393.entry.js.map} +1 -1
  106. package/dist/swisspost-internet-header/{p-6032d37e.entry.js → p-3462fe1c.entry.js} +2 -2
  107. package/dist/swisspost-internet-header/p-3462fe1c.entry.js.map +1 -0
  108. package/dist/swisspost-internet-header/p-3cabcfa7.entry.js +2 -0
  109. package/dist/swisspost-internet-header/{p-21ef11a4.entry.js.map → p-3cabcfa7.entry.js.map} +1 -1
  110. package/dist/swisspost-internet-header/p-3df8cabd.system.entry.js +2 -0
  111. package/dist/swisspost-internet-header/p-3df8cabd.system.entry.js.map +1 -0
  112. package/dist/swisspost-internet-header/p-49fe20ff.system.js +1 -1
  113. package/dist/swisspost-internet-header/p-4c9f1f1a.system.entry.js +7 -0
  114. package/dist/swisspost-internet-header/{p-8f34abed.system.entry.js.map → p-4c9f1f1a.system.entry.js.map} +1 -1
  115. package/dist/swisspost-internet-header/{p-996a552e.system.entry.js → p-57f4eea0.system.entry.js} +2 -2
  116. package/dist/swisspost-internet-header/p-6582303e.js +2 -0
  117. package/dist/swisspost-internet-header/p-6582303e.js.map +1 -0
  118. package/dist/swisspost-internet-header/p-73208b0d.system.entry.js +2 -0
  119. package/dist/swisspost-internet-header/p-73208b0d.system.entry.js.map +1 -0
  120. package/dist/swisspost-internet-header/p-96623613.system.entry.js +2 -0
  121. package/dist/swisspost-internet-header/{p-73b6ce0d.system.entry.js.map → p-96623613.system.entry.js.map} +1 -1
  122. package/dist/swisspost-internet-header/{p-c435e138.entry.js → p-99228f51.entry.js} +2 -2
  123. package/dist/swisspost-internet-header/p-99228f51.entry.js.map +1 -0
  124. package/dist/swisspost-internet-header/p-9a6083cb.entry.js +2 -0
  125. package/dist/swisspost-internet-header/p-9a6083cb.entry.js.map +1 -0
  126. package/dist/swisspost-internet-header/p-afdd23a8.system.entry.js +2 -0
  127. package/dist/swisspost-internet-header/p-afdd23a8.system.entry.js.map +1 -0
  128. package/dist/swisspost-internet-header/p-b8d05765.system.js +13 -0
  129. package/dist/swisspost-internet-header/p-b8d05765.system.js.map +1 -0
  130. package/dist/swisspost-internet-header/p-d5d1f301.entry.js +2 -0
  131. package/dist/swisspost-internet-header/p-d5d1f301.entry.js.map +1 -0
  132. package/dist/swisspost-internet-header/{p-5e5d587a.entry.js → p-e95ed009.entry.js} +2 -2
  133. package/dist/swisspost-internet-header/{p-30335ce0.system.entry.js → p-f349687c.system.entry.js} +2 -2
  134. package/dist/swisspost-internet-header/p-f349687c.system.entry.js.map +1 -0
  135. package/dist/swisspost-internet-header/swisspost-internet-header.css +1 -1
  136. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
  137. package/dist/types/assets/i18n/translations.d.ts +15 -0
  138. package/dist/types/components/post-main-navigation/post-main-navigation.d.ts +1 -7
  139. package/dist/types/services/language.service.d.ts +19 -1
  140. package/package.json +7 -7
  141. package/dist/cjs/klp-widget.controller-5d5afa10.js.map +0 -1
  142. package/dist/cjs/language.service-56d68ec3.js.map +0 -1
  143. package/dist/esm/klp-widget.controller-9f7e3c54.js.map +0 -1
  144. package/dist/esm/language.service-74bc1f43.js.map +0 -1
  145. package/dist/esm-es5/klp-widget.controller-9f7e3c54.js +0 -27
  146. package/dist/esm-es5/klp-widget.controller-9f7e3c54.js.map +0 -1
  147. package/dist/esm-es5/language.service-74bc1f43.js +0 -2
  148. package/dist/esm-es5/language.service-74bc1f43.js.map +0 -1
  149. package/dist/swisspost-internet-header/p-21ef11a4.entry.js +0 -2
  150. package/dist/swisspost-internet-header/p-2fd2c574.system.entry.js +0 -2
  151. package/dist/swisspost-internet-header/p-2fd2c574.system.entry.js.map +0 -1
  152. package/dist/swisspost-internet-header/p-30335ce0.system.entry.js.map +0 -1
  153. package/dist/swisspost-internet-header/p-3f72b002.entry.js +0 -7
  154. package/dist/swisspost-internet-header/p-6032d37e.entry.js.map +0 -1
  155. package/dist/swisspost-internet-header/p-6df0c486.entry.js +0 -2
  156. package/dist/swisspost-internet-header/p-6df0c486.entry.js.map +0 -1
  157. package/dist/swisspost-internet-header/p-73b6ce0d.system.entry.js +0 -2
  158. package/dist/swisspost-internet-header/p-8bd39c64.js +0 -2
  159. package/dist/swisspost-internet-header/p-8bd39c64.js.map +0 -1
  160. package/dist/swisspost-internet-header/p-8f34abed.system.entry.js +0 -7
  161. package/dist/swisspost-internet-header/p-9efee6d6.system.entry.js +0 -2
  162. package/dist/swisspost-internet-header/p-9efee6d6.system.entry.js.map +0 -1
  163. package/dist/swisspost-internet-header/p-ad7071ea.system.js +0 -27
  164. package/dist/swisspost-internet-header/p-ad7071ea.system.js.map +0 -1
  165. package/dist/swisspost-internet-header/p-c24585eb.entry.js +0 -2
  166. package/dist/swisspost-internet-header/p-c24585eb.entry.js.map +0 -1
  167. package/dist/swisspost-internet-header/p-c435e138.entry.js.map +0 -1
  168. package/dist/swisspost-internet-header/p-cce32859.entry.js +0 -2
  169. package/dist/swisspost-internet-header/p-cce32859.entry.js.map +0 -1
  170. package/dist/swisspost-internet-header/p-f0396178.system.entry.js +0 -2
  171. package/dist/swisspost-internet-header/p-f0396178.system.entry.js.map +0 -1
  172. package/dist/swisspost-internet-header/p-f4f5ca86.system.js +0 -2
  173. package/dist/swisspost-internet-header/p-f4f5ca86.system.js.map +0 -1
  174. package/dist/swisspost-internet-header/p-f62f50ce.system.entry.js.map +0 -1
  175. package/dist/swisspost-internet-header/p-fefa1082.js +0 -27
  176. package/dist/swisspost-internet-header/p-fefa1082.js.map +0 -1
  177. /package/dist/swisspost-internet-header/{p-996a552e.system.entry.js.map → p-57f4eea0.system.entry.js.map} +0 -0
  178. /package/dist/swisspost-internet-header/{p-5e5d587a.entry.js.map → p-e95ed009.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"post-search.js","sourceRoot":"","sources":["../../../../src/components/post-search/post-search.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, State, Event, EventEmitter, Method, Element } from '@stencil/core';\nimport { throttle } from 'throttle-debounce';\nimport { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock';\nimport { state } from '../../data/store';\nimport { CoveoCompletion } from '../../models/coveo.model';\nimport { GeocodeLocation } from '../../models/geocode.model';\nimport {\n DropdownElement,\n DropdownEvent,\n HasDropdown,\n IsFocusable,\n} from '../../models/header.model';\nimport { getSearchRedirectUrl, equalizeArrays } 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 { userPrefersReducedMotion, elementHasTransition } 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';\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\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 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.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 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 * Start search on enter\n * @param event\n */\n private handleKeyDown(event: KeyboardEvent) {\n if (this.searchFlyout === undefined) {\n return;\n }\n\n let selectedSuggestion = this.searchFlyout.querySelector<HTMLElement>(\n '.suggestions > li > a.selected',\n );\n\n switch (event.key.toLowerCase()) {\n case 'enter':\n if (selectedSuggestion) {\n const selectedHref = selectedSuggestion.getAttribute('href');\n if (selectedHref !== null) {\n window.location.href = selectedHref;\n }\n } else {\n this.startSearch();\n }\n\n break;\n case 'arrowdown':\n case 'arrowup':\n const suggestions = this.searchFlyout.querySelectorAll('.suggestions > li > a');\n\n this.deselectSuggestion();\n\n if (event.key.toLowerCase() === 'arrowdown') {\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 } else {\n // If there are any suggestions, select first suggestion in list\n if (suggestions.length > 0) {\n suggestions[0].classList.add('selected');\n }\n }\n } else if (event.key.toLowerCase() === 'arrowup') {\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 } else {\n // If there are any suggestions, select last suggestion in list\n if (suggestions.length > 0) {\n suggestions[suggestions.length - 1].classList.add('selected');\n }\n }\n }\n\n // Get the newly selected suggestion\n selectedSuggestion = this.searchFlyout.querySelector('.suggestions > li > a.selected');\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 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 * 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 render() {\n if (state.localizedConfig?.header === undefined) {\n return;\n }\n const { translations, search } = state.localizedConfig.header;\n const showPortalRecommendations =\n this.searchBox?.value === '' && search.searchRecommendations?.links.length > 0;\n\n return (\n <Host>\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 => 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 id=\"searchBox\"\n class=\"form-control form-control-lg\"\n placeholder={translations.flyoutSearchBoxFloatingLabel}\n autocomplete=\"off\"\n ref={el => (this.searchBox = el)}\n onInput={() => this.handleSearchInput()}\n onKeyDown={e => this.handleKeyDown(e)}\n />\n <label htmlFor=\"searchBox\">{translations.flyoutSearchBoxFloatingLabel}</label>\n <button\n onClick={() => this.startSearch()}\n class=\"nav-link start-search-button\"\n >\n <span class=\"visually-hidden\">{translations.searchSubmit}</span>\n <SvgIcon name=\"pi-search\" />\n </button>\n </div>\n {showPortalRecommendations && (\n <h2\n id=\"post-internet-header-search-recommendations-title\"\n class=\"bold\"\n >{search.searchRecommendations.title}</h2>\n )}\n <ul\n class=\"suggestions no-list\"\n onMouseLeave={() => this.handleMouseLeaveSuggestions()}\n aria-labelledby={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 >\n <span\n class=\"search-recommendation__icon\"\n innerHTML={recommendation.inlineSvg}\n ></span>\n <span>{recommendation.label}</span>\n </a>\n </li>\n ))}\n {this.parcelSuggestion && this.parcelSuggestion.ok && (\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}:&nbsp;</span>\n <span>\n {this.parcelSuggestion?.sending?.product},{' '}\n {this.parcelSuggestion?.sending?.recipient.zipcode}{' '}\n {this.parcelSuggestion?.sending?.recipient.city},{' '}\n {this.parcelSuggestion?.sending?.state}\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"]}
1
+ {"version":3,"file":"post-search.js","sourceRoot":"","sources":["../../../../src/components/post-search/post-search.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAgB,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AASzC,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,WAAW,GACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAO9C,MAAM,OAAO,UAAU;;8BACS,KAAK;4BACY,EAAE;4BACF,EAAE;4BACyB,IAAI;;EAO9E,iBAAiB;IACf,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;EAC7E,CAAC;EAED,oBAAoB;IAClB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3D,uBAAuB,EAAE,CAAC;EAC5B,CAAC;EAED,mBAAmB;IACjB,0CAA0C;IAC1C,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;MACjD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;MAE3C,4FAA4F;MAC5F,IAAI,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE;QACvF,+DAA+D;QAC/D,OAAO,IAAI,OAAO,CAAU,OAAO,CAAC,EAAE;UACpC,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,CAAC,EAAE;YAC1D,IAAI,KAAK,CAAC,YAAY,KAAK,WAAW,EAAE;cACtC,OAAO,CAAC,IAAI,CAAC,CAAC;aACf;UACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;OACJ;KACF;EACH,CAAC;EAED,kBAAkB;IAChB,gCAAgC;IAChC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,kBAAkB,EAAE;MAChD,iEAAiE;MACjE,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;MAC1C,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACzC;IAED,yDAAyD;IACzD,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;EACH,CAAC;EAKD;;;;KAIG;EAEH,KAAK,CAAC,cAAc,CAAC,KAAe;IAClC,IAAI,CAAC,kBAAkB;MACrB,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,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;MAC5B,yCAAyC;MACzC,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,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;SAAM;MACL,4CAA4C;MAC5C,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;EACjC,CAAC;EAED;;KAEG;EAEI,KAAK,CAAC,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;EACH,CAAC;EAEO,YAAY;IAClB,wIAAwI;IACxI,IAAI,IAAI,CAAC,kBAAkB,EAAE;MAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;EACH,CAAC;EAED;;KAEG;EACK,aAAa;IACnB,IAAI,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,EAAE;MACvD,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACtC;SAAM;MACL,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACrC;EACH,CAAC;EAED;;KAEG;EACK,KAAK,CAAC,iBAAiB;;IAC7B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,CAAA,MAAA,KAAK,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;IAE1C,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,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;KAChE,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,GAAG,iBAAiB,CAAC;IAE1C,qDAAqD;IACrD,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;EAC5B,CAAC;EAED;;;KAGG;EACK,aAAa,CAAC,KAAoB;;IACxC,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;MACnC,OAAO;KACR;IAED,IAAI,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CACtD,gCAAgC,CACjC,CAAC;IAEF,QAAQ,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE;MAC/B,KAAK,OAAO;QACV,IAAI,kBAAkB,EAAE;UACtB,MAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;UAC7D,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC;WACrC;SACF;aAAM;UACL,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QAED,MAAM;MACR,KAAK,WAAW,CAAC;MACjB,KAAK,SAAS;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;QAEhF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,WAAW,EAAE;UAC3C,IAAI,MAAA,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,aAAa,0CAAE,kBAAkB,0CAAE,iBAAiB,EAAE;YAC5E,yEAAyE;YACzE,kBAAkB,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,CACjF,UAAU,CACX,CAAC;WACH;eAAM;YACL,gEAAgE;YAChE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;cAC1B,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;aAC1C;WACF;SACF;aAAM,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;UAChD,IAAI,MAAA,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,aAAa,0CAAE,sBAAsB,0CAAE,iBAAiB,EAAE;YAChF,6EAA6E;YAE7E,kBAAkB,CAAC,aAAa,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,CACrF,UAAU,CACX,CAAC;WACH;eAAM;YACL,+DAA+D;YAC/D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;cAC1B,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;aAC/D;WACF;SACF;QAED,oCAAoC;QACpC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;QACvF,MAAM,aAAa,GAAG,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,OAAO,CAAC,cAAc,CAAC;QAEjE,wDAAwD;QACxD,IAAI,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;UACjD,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC;SACtC;QAED,MAAM;KACT;EACH,CAAC;EAED;;;KAGG;EACK,0BAA0B,CAAC,KAAiB;IAClD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAE1B,6CAA6C;IAC5C,KAAK,CAAC,MAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;EAC1D,CAAC;EAED;;;KAGG;EACK,2BAA2B;IACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;EAC5B,CAAC;EAED;;KAEG;EACK,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;EACH,CAAC;EAED;;KAEG;EACK,KAAK,CAAC,WAAW;;IACvB,IAAI,IAAI,CAAC,SAAS,KAAI,MAAA,KAAK,CAAC,eAAe,0CAAE,MAAM,CAAC,MAAM,CAAA,EAAE;MAC1D,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAC5C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAC3B,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CACpC,CAAC;MACF,IAAI,CAAC,WAAW;QAAE,OAAO;MACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;KACpC;EACH,CAAC;EAED,MAAM;;IACJ,IAAI,CAAA,MAAA,KAAK,CAAC,eAAe,0CAAE,MAAM,MAAK,SAAS,EAAE;MAC/C,OAAO;KACR;IACD,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC;IAC9D,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,OAAO,CACL,EAAC,IAAI,IAAC,IAAI,EAAC,QAAQ;MACjB,EAAC,SAAS,OAAG;MACb,WAAK,KAAK,EAAC,QAAQ;QACjB,cACE,EAAE,EAAC,oCAAoC,EACvC,KAAK,EAAC,eAAe,EACrB,IAAI,EAAC,QAAQ,mBACE,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAC3C,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;UAEpC,YAAM,KAAK,EAAC,iBAAiB,IAC1B,IAAI,CAAC,kBAAkB;YACtB,CAAC,CAAC,YAAY,CAAC,oBAAoB;YACnC,CAAC,CAAC,YAAY,CAAC,YAAY,CACxB;UACP,EAAC,OAAO,IAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,GAAI,CAC9D;QACT,EAAC,EAAE,IAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB;UACpC,WAAK,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACnD,WAAK,KAAK,EAAC,eAAe;cACxB,WAAK,KAAK,EAAC,KAAK;gBACd,WAAK,KAAK,EAAC,8BAA8B;kBACvC,WAAK,KAAK,EAAC,0BAA0B;oBACnC,aACE,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,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAChC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,EACvC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GACrC;oBACF,aAAO,OAAO,EAAC,WAAW,IAAE,YAAY,CAAC,4BAA4B,CAAS;oBAC9E,cACE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EACjC,KAAK,EAAC,8BAA8B;sBAEpC,YAAM,KAAK,EAAC,iBAAiB,IAAE,YAAY,CAAC,YAAY,CAAQ;sBAChE,EAAC,OAAO,IAAC,IAAI,EAAC,WAAW,GAAG,CACrB,CACL;kBACL,yBAAyB,IAAI,CAC5B,UACE,EAAE,EAAC,mDAAmD,EACtD,KAAK,EAAC,MAAM,IACZ,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAM,CAC3C;kBACD,UACE,KAAK,EAAC,qBAAqB,EAC3B,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,qBACrC,yBAAyB;sBACxC,CAAC,CAAC,mDAAmD;sBACrD,CAAC,CAAC,SAAS;oBAGZ,yBAAyB;sBACxB,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CACvD,UAAI,GAAG,EAAE,cAAc,CAAC,IAAI;wBAC1B,SACE,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,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;0BAErD,YACE,KAAK,EAAC,6BAA6B,EACnC,SAAS,EAAE,cAAc,CAAC,SAAS,GAC7B;0BACR,gBAAO,cAAc,CAAC,KAAK,CAAQ,CACjC,CACD,CACN,CAAC;oBACH,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,CACpD;sBACE,SACE,KAAK,EAAC,4BAA4B,EAClC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,0BACT,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,EAC3C,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;wBAErD,EAAC,OAAO,IAAC,IAAI,EAAC,kBAAkB,GAAG;wBACnC,YAAM,KAAK,EAAC,MAAM,IAAE,MAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,OAAO;6BAAE,EAAE;oCAAe;wBACrE,gBACG,MAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,OAAO;6BAAE,OAAO;;0BAAG,GAAG,EAC7C,MAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,OAAO;6BAAE,SAAS,CAAC,OAAO;0BAAE,GAAG,EACtD,MAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,OAAO;6BAAE,SAAS,CAAC,IAAI;;0BAAG,GAAG,EACpD,MAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,OAAO;6BAAE,KAAK,CACjC,CACL,CACD,CACN;oBACA,CAAC,yBAAyB;sBACzB,IAAI,CAAC,gBAAgB;sBACrB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CACtC,UAAI,GAAG,EAAE,UAAU,CAAC,QAAQ;wBAC1B,SACE,KAAK,EAAC,UAAU,EAChB,IAAI,EAAE,UAAU,CAAC,WAAW,0BACN,UAAU,CAAC,UAAU,EAC3C,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;0BAErD,EAAC,OAAO,IAAC,IAAI,EAAC,WAAW,GAAG;0BAC5B,EAAC,eAAe,IAAC,IAAI,EAAE,UAAU,CAAC,WAAW,GAAI,CAC/C,CACD,CACN,CAAC;oBACH,CAAC,yBAAyB;sBACzB,IAAI,CAAC,gBAAgB;sBACrB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;;wBAAC,OAAA,CACtC,UAAI,GAAG,EAAE,UAAU,CAAC,EAAE;0BACpB,SACE,KAAK,EAAC,UAAU,EAChB,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,0BACR,UAAU,CAAC,IAAI,EACrC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;4BAErD,EAAC,OAAO,IAAC,IAAI,EAAC,UAAU,GAAG;4BAC3B,EAAC,eAAe,IACd,IAAI,EAAE,qBAAqB,CACzB,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,0CAAE,IAAI,EAAE,EAC7B,UAAU,CAAC,IAAI,CAChB,GACD,CACA,CACD,CACN,CAAA;uBAAA,CAAC,CACD,CACD,CACF,CACF,CACF,CACH,CACD,CACD,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, State, Event, EventEmitter, Method, Element } from '@stencil/core';\nimport { throttle } from 'throttle-debounce';\nimport { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock';\nimport { state } from '../../data/store';\nimport { CoveoCompletion } from '../../models/coveo.model';\nimport { GeocodeLocation } from '../../models/geocode.model';\nimport {\n DropdownElement,\n DropdownEvent,\n HasDropdown,\n IsFocusable,\n} from '../../models/header.model';\nimport { getSearchRedirectUrl, equalizeArrays } 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 { userPrefersReducedMotion, elementHasTransition } 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';\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\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 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.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 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 * Start search on enter\n * @param event\n */\n private handleKeyDown(event: KeyboardEvent) {\n if (this.searchFlyout === undefined) {\n return;\n }\n\n let selectedSuggestion = this.searchFlyout.querySelector<HTMLElement>(\n '.suggestions > li > a.selected',\n );\n\n switch (event.key.toLowerCase()) {\n case 'enter':\n if (selectedSuggestion) {\n const selectedHref = selectedSuggestion.getAttribute('href');\n if (selectedHref !== null) {\n window.location.href = selectedHref;\n }\n } else {\n this.startSearch();\n }\n\n break;\n case 'arrowdown':\n case 'arrowup':\n const suggestions = this.searchFlyout.querySelectorAll('.suggestions > li > a');\n\n this.deselectSuggestion();\n\n if (event.key.toLowerCase() === 'arrowdown') {\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 } else {\n // If there are any suggestions, select first suggestion in list\n if (suggestions.length > 0) {\n suggestions[0].classList.add('selected');\n }\n }\n } else if (event.key.toLowerCase() === 'arrowup') {\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 } else {\n // If there are any suggestions, select last suggestion in list\n if (suggestions.length > 0) {\n suggestions[suggestions.length - 1].classList.add('selected');\n }\n }\n }\n\n // Get the newly selected suggestion\n selectedSuggestion = this.searchFlyout.querySelector('.suggestions > li > a.selected');\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 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 * 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 render() {\n if (state.localizedConfig?.header === undefined) {\n return;\n }\n const { translations, search } = state.localizedConfig.header;\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 => 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={() => this.handleSearchInput()}\n onKeyDown={e => this.handleKeyDown(e)}\n />\n <label htmlFor=\"searchBox\">{translations.flyoutSearchBoxFloatingLabel}</label>\n <button\n onClick={() => this.startSearch()}\n class=\"nav-link start-search-button\"\n >\n <span class=\"visually-hidden\">{translations.searchSubmit}</span>\n <SvgIcon name=\"pi-search\" />\n </button>\n </div>\n {showPortalRecommendations && (\n <h2\n id=\"post-internet-header-search-recommendations-title\"\n class=\"bold\"\n >{search.searchRecommendations.title}</h2>\n )}\n <ul\n class=\"suggestions no-list\"\n onMouseLeave={() => this.handleMouseLeaveSuggestions()}\n aria-labelledby={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 >\n <span\n class=\"search-recommendation__icon\"\n innerHTML={recommendation.inlineSvg}\n ></span>\n <span>{recommendation.label}</span>\n </a>\n </li>\n ))}\n {this.parcelSuggestion && this.parcelSuggestion.ok && (\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}:&nbsp;</span>\n <span>\n {this.parcelSuggestion?.sending?.product},{' '}\n {this.parcelSuggestion?.sending?.recipient.zipcode}{' '}\n {this.parcelSuggestion?.sending?.recipient.city},{' '}\n {this.parcelSuggestion?.sending?.state}\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"]}
@@ -33,7 +33,7 @@ export class PostSkiplinks {
33
33
  if (config === undefined) {
34
34
  return;
35
35
  }
36
- return (h(Host, null, h("div", { class: "skiplinks" }, h("h1", { class: "visually-hidden" }, translate('Navigate on post.ch')), h("ul", { class: "no-list" }, h("li", null, h("a", { class: "nav-link", href: config.logo.logoLink }, h("span", null, config.logo.logoLinkTitle), h(SvgIcon, { name: "pi-pointy-arrow-right" }))), h("li", null, h("a", { class: "nav-link", href: "#post-internet-header-main-navigation", onClick: () => this.focusMain() }, h("span", null, config.translations.navMainAriaLabel), h(SvgIcon, { name: "pi-pointy-arrow-right" }))), mainId ? (h("li", null, h("a", { class: "nav-link", href: `#${mainId}` }, h("span", null, translate('Go to main content')), h(SvgIcon, { name: "pi-pointy-arrow-right" })))) : null, state.search ? (h("li", null, h("a", { class: "nav-link", href: "#post-internet-header-search-button", onClick: () => this.focusSearch() }, h("span", null, translate('Go to search')), h(SvgIcon, { name: "pi-pointy-arrow-right" })))) : null, state.login ? (h("li", null, h("a", { class: "nav-link", href: "#post-klp-login-widget", onClick: () => this.focusLogin() }, h("span", null, translate('Go to login')), h(SvgIcon, { name: "pi-pointy-arrow-right" })))) : null))));
36
+ return (h(Host, null, h("div", { class: "skiplinks" }, h("ul", { class: "no-list", "aria-label": translate('Skip Links') }, h("li", null, h("a", { class: "nav-link", href: config.logo.logoLink }, h("span", null, config.logo.logoLinkTitle), h(SvgIcon, { name: "pi-pointy-arrow-right" }))), h("li", null, h("a", { class: "nav-link", href: "#post-internet-header-main-navigation", onClick: () => this.focusMain() }, h("span", null, config.translations.navMainAriaLabel), h(SvgIcon, { name: "pi-pointy-arrow-right" }))), mainId ? (h("li", null, h("a", { class: "nav-link", href: `#${mainId}` }, h("span", null, translate('Go to main content')), h(SvgIcon, { name: "pi-pointy-arrow-right" })))) : null, state.search ? (h("li", null, h("a", { class: "nav-link", href: "#post-internet-header-search-button", onClick: () => this.focusSearch() }, h("span", null, translate('Go to search')), h(SvgIcon, { name: "pi-pointy-arrow-right" })))) : null, state.login ? (h("li", null, h("a", { class: "nav-link", href: "#post-klp-login-widget", onClick: () => this.focusLogin() }, h("span", null, translate('Go to login')), h(SvgIcon, { name: "pi-pointy-arrow-right" })))) : null))));
37
37
  }
38
38
  static get is() { return "post-skiplinks"; }
39
39
  static get originalStyleUrls() {
@@ -1 +1 @@
1
- {"version":3,"file":"post-skiplinks.js","sourceRoot":"","sources":["../../../../src/components/post-skiplinks/post-skiplinks.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Element } from '@stencil/core';\nimport { state } from '../../data/store';\nimport { FocusableElement } from '../../models/header.model';\nimport { translate } from '../../services/language.service';\nimport { SvgIcon } from '../../utils/svg-icon.component';\n\n@Component({\n tag: 'post-skiplinks',\n styleUrl: 'post-skiplinks.scss',\n shadow: false,\n})\nexport class PostSkiplinks {\n @Element() host: HTMLElement;\n\n private getMainId() {\n return document.querySelector('main[id]')?.getAttribute('id');\n }\n\n private setFocus(tagname: string) {\n const rootHost = this.host.closest('.post-internet-header');\n if (!rootHost) {\n return;\n }\n\n const focusable = rootHost.querySelector<FocusableElement>(tagname);\n if (focusable) {\n focusable.setFocus();\n }\n }\n\n private focusMain() {\n this.setFocus('post-main-navigation');\n }\n\n private focusSearch() {\n this.setFocus('post-search');\n }\n\n private focusLogin() {\n this.setFocus('post-klp-login-widget');\n }\n\n render() {\n const config = state.localizedConfig?.header;\n const mainId = this.getMainId();\n\n if (config === undefined) {\n return;\n }\n\n return (\n <Host>\n <div class=\"skiplinks\">\n <h1 class=\"visually-hidden\">{translate('Navigate on post.ch')}</h1>\n <ul class=\"no-list\">\n <li>\n <a class=\"nav-link\" href={config.logo.logoLink}>\n <span>{config.logo.logoLinkTitle}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n <li>\n <a class=\"nav-link\" href=\"#post-internet-header-main-navigation\" onClick={() => this.focusMain()}>\n <span>{config.translations.navMainAriaLabel}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n {mainId ? (\n <li>\n <a class=\"nav-link\" href={`#${mainId}`}>\n <span>{translate('Go to main content')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n {state.search ? (\n <li>\n <a class=\"nav-link\" href=\"#post-internet-header-search-button\" onClick={() => this.focusSearch()}>\n <span>{translate('Go to search')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n {state.login ? (\n <li>\n <a class=\"nav-link\" href=\"#post-klp-login-widget\" onClick={() => this.focusLogin()}>\n <span>{translate('Go to login')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n </ul>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"post-skiplinks.js","sourceRoot":"","sources":["../../../../src/components/post-skiplinks/post-skiplinks.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Element } from '@stencil/core';\nimport { state } from '../../data/store';\nimport { FocusableElement } from '../../models/header.model';\nimport { translate } from '../../services/language.service';\nimport { SvgIcon } from '../../utils/svg-icon.component';\n\n@Component({\n tag: 'post-skiplinks',\n styleUrl: 'post-skiplinks.scss',\n shadow: false,\n})\nexport class PostSkiplinks {\n @Element() host: HTMLElement;\n\n private getMainId() {\n return document.querySelector('main[id]')?.getAttribute('id');\n }\n\n private setFocus(tagname: string) {\n const rootHost = this.host.closest('.post-internet-header');\n if (!rootHost) {\n return;\n }\n\n const focusable = rootHost.querySelector<FocusableElement>(tagname);\n if (focusable) {\n focusable.setFocus();\n }\n }\n\n private focusMain() {\n this.setFocus('post-main-navigation');\n }\n\n private focusSearch() {\n this.setFocus('post-search');\n }\n\n private focusLogin() {\n this.setFocus('post-klp-login-widget');\n }\n\n render() {\n const config = state.localizedConfig?.header;\n const mainId = this.getMainId();\n\n if (config === undefined) {\n return;\n }\n\n return (\n <Host>\n <div class=\"skiplinks\">\n <ul class=\"no-list\" aria-label={translate('Skip Links')}>\n <li>\n <a class=\"nav-link\" href={config.logo.logoLink}>\n <span>{config.logo.logoLinkTitle}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n <li>\n <a class=\"nav-link\" href=\"#post-internet-header-main-navigation\" onClick={() => this.focusMain()}>\n <span>{config.translations.navMainAriaLabel}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n {mainId ? (\n <li>\n <a class=\"nav-link\" href={`#${mainId}`}>\n <span>{translate('Go to main content')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n {state.search ? (\n <li>\n <a class=\"nav-link\" href=\"#post-internet-header-search-button\" onClick={() => this.focusSearch()}>\n <span>{translate('Go to search')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n {state.login ? (\n <li>\n <a class=\"nav-link\" href=\"#post-klp-login-widget\" onClick={() => this.focusLogin()}>\n <span>{translate('Go to login')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n </ul>\n </div>\n </Host>\n );\n }\n}\n"]}