@swisspost/internet-header 1.5.6 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/cjs/{index-d5b7ae1a.js → index-333f9e15.js} +1 -1
  2. package/dist/cjs/{index-d5b7ae1a.js.map → index-333f9e15.js.map} +1 -1
  3. package/dist/cjs/{language.service-f769504f.js → language.service-a3d9e957.js} +2 -2
  4. package/dist/cjs/{language.service-f769504f.js.map → language.service-a3d9e957.js.map} +1 -1
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/loader.cjs.js.map +1 -1
  7. package/dist/cjs/post-klp-login-widget.cjs.entry.js +4 -4
  8. package/dist/cjs/post-klp-login-widget.cjs.entry.js.map +1 -1
  9. package/dist/cjs/post-language-switch.cjs.entry.js +5 -5
  10. package/dist/cjs/post-logo.cjs.entry.js +2 -2
  11. package/dist/cjs/post-main-navigation.cjs.entry.js +5 -5
  12. package/dist/cjs/post-main-navigation.cjs.entry.js.map +1 -1
  13. package/dist/cjs/post-meta-navigation.cjs.entry.js +2 -2
  14. package/dist/cjs/post-search.cjs.entry.js +6 -6
  15. package/dist/cjs/post-search.cjs.entry.js.map +1 -1
  16. package/dist/cjs/post-skiplinks.cjs.entry.js +4 -4
  17. package/dist/cjs/{store-8b73c1d2.js → store-89411b58.js} +2 -2
  18. package/dist/cjs/{store-8b73c1d2.js.map → store-89411b58.js.map} +1 -1
  19. package/dist/cjs/{svg-icon.component-a7308b93.js → svg-icon.component-4f6cd874.js} +2 -2
  20. package/dist/cjs/{svg-icon.component-a7308b93.js.map → svg-icon.component-4f6cd874.js.map} +1 -1
  21. package/dist/cjs/{svg-sprite.component-7cb54614.js → svg-sprite.component-4c755fd2.js} +2 -2
  22. package/dist/cjs/{svg-sprite.component-7cb54614.js.map → svg-sprite.component-4c755fd2.js.map} +1 -1
  23. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +6 -6
  24. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js.map +1 -1
  25. package/dist/cjs/swisspost-internet-footer.cjs.entry.js +4 -4
  26. package/dist/cjs/swisspost-internet-footer.cjs.entry.js.map +1 -1
  27. package/dist/cjs/swisspost-internet-header.cjs.entry.js +42 -26
  28. package/dist/cjs/swisspost-internet-header.cjs.entry.js.map +1 -1
  29. package/dist/cjs/swisspost-internet-header.cjs.js +2 -2
  30. package/dist/cjs/swisspost-internet-header.cjs.js.map +1 -1
  31. package/dist/collection/collection-manifest.json +1 -1
  32. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.css +0 -1
  33. package/dist/collection/components/post-internet-footer/post-internet-footer.css +0 -1
  34. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.css +0 -1
  35. package/dist/collection/components/post-main-navigation/post-main-navigation.css +0 -3
  36. package/dist/collection/components/post-search/post-search.css +43 -46
  37. package/dist/collection/components/post-search/post-search.js +1 -1
  38. package/dist/collection/components/post-search/post-search.js.map +1 -1
  39. package/dist/collection/services/config.service.js +25 -8
  40. package/dist/collection/services/config.service.js.map +1 -1
  41. package/dist/components/post-klp-login-widget2.js +1 -1
  42. package/dist/components/post-klp-login-widget2.js.map +1 -1
  43. package/dist/components/post-main-navigation2.js +1 -1
  44. package/dist/components/post-main-navigation2.js.map +1 -1
  45. package/dist/components/post-search2.js +2 -2
  46. package/dist/components/post-search2.js.map +1 -1
  47. package/dist/components/store.js.map +1 -1
  48. package/dist/components/swisspost-internet-breadcrumbs.js +1 -1
  49. package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -1
  50. package/dist/components/swisspost-internet-footer.js +1 -1
  51. package/dist/components/swisspost-internet-footer.js.map +1 -1
  52. package/dist/components/swisspost-internet-header.js +37 -21
  53. package/dist/components/swisspost-internet-header.js.map +1 -1
  54. package/dist/esm/{index-2c50ce20.js → index-447227c7.js} +1 -1
  55. package/dist/esm/{index-2c50ce20.js.map → index-447227c7.js.map} +1 -1
  56. package/dist/esm/{language.service-1a20901e.js → language.service-3e2fe7e8.js} +2 -2
  57. package/dist/esm/{language.service-1a20901e.js.map → language.service-3e2fe7e8.js.map} +1 -1
  58. package/dist/esm/loader.js +3 -3
  59. package/dist/esm/loader.js.map +1 -1
  60. package/dist/esm/post-klp-login-widget.entry.js +4 -4
  61. package/dist/esm/post-klp-login-widget.entry.js.map +1 -1
  62. package/dist/esm/post-language-switch.entry.js +5 -5
  63. package/dist/esm/post-logo.entry.js +2 -2
  64. package/dist/esm/post-main-navigation.entry.js +5 -5
  65. package/dist/esm/post-main-navigation.entry.js.map +1 -1
  66. package/dist/esm/post-meta-navigation.entry.js +2 -2
  67. package/dist/esm/post-search.entry.js +6 -6
  68. package/dist/esm/post-search.entry.js.map +1 -1
  69. package/dist/esm/post-skiplinks.entry.js +4 -4
  70. package/dist/esm/{store-b8f9cf53.js → store-f0cb4f1a.js} +2 -2
  71. package/dist/esm/{store-b8f9cf53.js.map → store-f0cb4f1a.js.map} +1 -1
  72. package/dist/esm/{svg-icon.component-ecb1700c.js → svg-icon.component-4ca05eb2.js} +2 -2
  73. package/dist/esm/{svg-icon.component-ecb1700c.js.map → svg-icon.component-4ca05eb2.js.map} +1 -1
  74. package/dist/esm/{svg-sprite.component-93c29b17.js → svg-sprite.component-0394cd67.js} +2 -2
  75. package/dist/esm/{svg-sprite.component-93c29b17.js.map → svg-sprite.component-0394cd67.js.map} +1 -1
  76. package/dist/esm/swisspost-internet-breadcrumbs.entry.js +6 -6
  77. package/dist/esm/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  78. package/dist/esm/swisspost-internet-footer.entry.js +4 -4
  79. package/dist/esm/swisspost-internet-footer.entry.js.map +1 -1
  80. package/dist/esm/swisspost-internet-header.entry.js +42 -26
  81. package/dist/esm/swisspost-internet-header.entry.js.map +1 -1
  82. package/dist/esm/swisspost-internet-header.js +3 -3
  83. package/dist/esm/swisspost-internet-header.js.map +1 -1
  84. package/dist/esm-es5/{index-2c50ce20.js → index-447227c7.js} +1 -1
  85. package/dist/esm-es5/{index-2c50ce20.js.map → index-447227c7.js.map} +1 -1
  86. package/dist/esm-es5/{language.service-1a20901e.js → language.service-3e2fe7e8.js} +2 -2
  87. package/dist/esm-es5/loader.js +1 -1
  88. package/dist/esm-es5/loader.js.map +1 -1
  89. package/dist/esm-es5/post-klp-login-widget.entry.js +1 -1
  90. package/dist/esm-es5/post-klp-login-widget.entry.js.map +1 -1
  91. package/dist/esm-es5/post-language-switch.entry.js +1 -1
  92. package/dist/esm-es5/post-logo.entry.js +1 -1
  93. package/dist/esm-es5/post-main-navigation.entry.js +1 -1
  94. package/dist/esm-es5/post-main-navigation.entry.js.map +1 -1
  95. package/dist/esm-es5/post-meta-navigation.entry.js +1 -1
  96. package/dist/esm-es5/post-search.entry.js +1 -1
  97. package/dist/esm-es5/post-search.entry.js.map +1 -1
  98. package/dist/esm-es5/post-skiplinks.entry.js +1 -1
  99. package/dist/esm-es5/{store-b8f9cf53.js → store-f0cb4f1a.js} +2 -2
  100. package/dist/esm-es5/{store-b8f9cf53.js.map → store-f0cb4f1a.js.map} +1 -1
  101. package/dist/esm-es5/{svg-icon.component-ecb1700c.js → svg-icon.component-4ca05eb2.js} +2 -2
  102. package/dist/esm-es5/{svg-sprite.component-93c29b17.js → svg-sprite.component-0394cd67.js} +2 -2
  103. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +2 -2
  104. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  105. package/dist/esm-es5/swisspost-internet-footer.entry.js +1 -1
  106. package/dist/esm-es5/swisspost-internet-footer.entry.js.map +1 -1
  107. package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
  108. package/dist/esm-es5/swisspost-internet-header.entry.js.map +1 -1
  109. package/dist/esm-es5/swisspost-internet-header.js +1 -1
  110. package/dist/esm-es5/swisspost-internet-header.js.map +1 -1
  111. package/dist/swisspost-internet-header/p-137d0cb3.system.entry.js +2 -0
  112. package/dist/swisspost-internet-header/p-137d0cb3.system.entry.js.map +1 -0
  113. package/dist/swisspost-internet-header/p-1f28e7ef.entry.js +2 -0
  114. package/dist/swisspost-internet-header/p-1f28e7ef.entry.js.map +1 -0
  115. package/dist/swisspost-internet-header/p-2a402f35.system.entry.js +2 -0
  116. package/dist/swisspost-internet-header/{p-5e362f9d.system.entry.js.map → p-2a402f35.system.entry.js.map} +1 -1
  117. package/dist/swisspost-internet-header/{p-10dc2991.entry.js → p-2e5d2ce1.entry.js} +2 -2
  118. package/dist/swisspost-internet-header/{p-dc228941.system.entry.js → p-2fd19fc1.system.entry.js} +2 -2
  119. package/dist/swisspost-internet-header/{p-6e24784e.system.js → p-4772446c.system.js} +2 -2
  120. package/dist/swisspost-internet-header/{p-15192462.system.js → p-4c655e05.system.js} +2 -2
  121. package/dist/swisspost-internet-header/{p-15192462.system.js.map → p-4c655e05.system.js.map} +1 -1
  122. package/dist/swisspost-internet-header/{p-f115d8f1.system.js → p-59a0d27b.system.js} +2 -2
  123. package/dist/swisspost-internet-header/p-5d2a1c2d.entry.js +2 -0
  124. package/dist/swisspost-internet-header/{p-58b4b6f9.entry.js.map → p-5d2a1c2d.entry.js.map} +1 -1
  125. package/dist/swisspost-internet-header/{p-5ac43fe4.entry.js → p-69b7fbf4.entry.js} +2 -2
  126. package/dist/swisspost-internet-header/{p-5ac43fe4.entry.js.map → p-69b7fbf4.entry.js.map} +1 -1
  127. package/dist/swisspost-internet-header/{p-bc79a64a.entry.js → p-7c9d0994.entry.js} +2 -2
  128. package/dist/swisspost-internet-header/{p-bb7f28f0.system.js → p-86c5610e.system.js} +2 -2
  129. package/dist/swisspost-internet-header/{p-3a566b21.entry.js → p-8b840367.entry.js} +2 -2
  130. package/dist/swisspost-internet-header/{p-df383e1a.system.js → p-9c5ef36c.system.js} +1 -1
  131. package/dist/swisspost-internet-header/{p-df383e1a.system.js.map → p-9c5ef36c.system.js.map} +1 -1
  132. package/dist/swisspost-internet-header/{p-d93a7553.js → p-9e389f57.js} +2 -2
  133. package/dist/swisspost-internet-header/p-9fddc119.system.entry.js +2 -0
  134. package/dist/swisspost-internet-header/{p-62896d7a.system.entry.js.map → p-9fddc119.system.entry.js.map} +1 -1
  135. package/dist/swisspost-internet-header/p-ad9eb765.entry.js +2 -0
  136. package/dist/swisspost-internet-header/{p-3da1c444.entry.js.map → p-ad9eb765.entry.js.map} +1 -1
  137. package/dist/swisspost-internet-header/{p-d11cfbf6.entry.js → p-b1e20b23.entry.js} +2 -2
  138. package/dist/swisspost-internet-header/{p-f529e4b9.system.entry.js → p-bc800d7f.system.entry.js} +2 -2
  139. package/dist/swisspost-internet-header/{p-f529e4b9.system.entry.js.map → p-bc800d7f.system.entry.js.map} +1 -1
  140. package/dist/swisspost-internet-header/{p-6423a6ea.js → p-bf8fc7fa.js} +2 -2
  141. package/dist/swisspost-internet-header/p-ca5bfb68.entry.js +2 -0
  142. package/dist/swisspost-internet-header/{p-42e2fc84.entry.js.map → p-ca5bfb68.entry.js.map} +1 -1
  143. package/dist/swisspost-internet-header/{p-19520037.system.entry.js → p-cc23da7a.system.entry.js} +2 -2
  144. package/dist/swisspost-internet-header/{p-2ff142da.system.entry.js → p-d7e49083.system.entry.js} +2 -2
  145. package/dist/swisspost-internet-header/p-d8a834ef.js +2 -0
  146. package/dist/swisspost-internet-header/{p-0e63e0aa.js.map → p-d8a834ef.js.map} +1 -1
  147. package/dist/swisspost-internet-header/p-e58de121.entry.js +7 -0
  148. package/dist/swisspost-internet-header/{p-e604a987.entry.js.map → p-e58de121.entry.js.map} +1 -1
  149. package/dist/swisspost-internet-header/p-e75e4c7e.system.entry.js +7 -0
  150. package/dist/swisspost-internet-header/{p-478e297c.system.entry.js.map → p-e75e4c7e.system.entry.js.map} +1 -1
  151. package/dist/swisspost-internet-header/p-e8d72284.js +2 -0
  152. package/dist/swisspost-internet-header/{p-12c07c17.js → p-ebd5ee13.js} +1 -1
  153. package/dist/swisspost-internet-header/{p-12c07c17.js.map → p-ebd5ee13.js.map} +1 -1
  154. package/dist/swisspost-internet-header/{p-b8b59050.system.js → p-ed6c1eec.system.js} +2 -2
  155. package/dist/swisspost-internet-header/{p-b8b59050.system.js.map → p-ed6c1eec.system.js.map} +1 -1
  156. package/dist/swisspost-internet-header/p-f052a22f.system.entry.js +2 -0
  157. package/dist/swisspost-internet-header/{p-2c0aaaf5.system.entry.js.map → p-f052a22f.system.entry.js.map} +1 -1
  158. package/dist/swisspost-internet-header/{p-50910fe5.system.entry.js → p-f5c099b1.system.entry.js} +2 -2
  159. package/dist/swisspost-internet-header/swisspost-internet-header.css +1 -1
  160. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
  161. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js.map +1 -1
  162. package/dist/swisspost-internet-header/swisspost-internet-header.js +1 -1
  163. package/package.json +12 -13
  164. package/dist/swisspost-internet-header/p-0e63e0aa.js +0 -2
  165. package/dist/swisspost-internet-header/p-2c0aaaf5.system.entry.js +0 -2
  166. package/dist/swisspost-internet-header/p-3da1c444.entry.js +0 -2
  167. package/dist/swisspost-internet-header/p-42e2fc84.entry.js +0 -2
  168. package/dist/swisspost-internet-header/p-478e297c.system.entry.js +0 -7
  169. package/dist/swisspost-internet-header/p-4a2492f9.system.entry.js +0 -2
  170. package/dist/swisspost-internet-header/p-4a2492f9.system.entry.js.map +0 -1
  171. package/dist/swisspost-internet-header/p-58b4b6f9.entry.js +0 -2
  172. package/dist/swisspost-internet-header/p-5e362f9d.system.entry.js +0 -2
  173. package/dist/swisspost-internet-header/p-62896d7a.system.entry.js +0 -2
  174. package/dist/swisspost-internet-header/p-9bc33c5f.js +0 -2
  175. package/dist/swisspost-internet-header/p-cd85c4fe.entry.js +0 -2
  176. package/dist/swisspost-internet-header/p-cd85c4fe.entry.js.map +0 -1
  177. package/dist/swisspost-internet-header/p-e604a987.entry.js +0 -7
  178. /package/dist/esm-es5/{language.service-1a20901e.js.map → language.service-3e2fe7e8.js.map} +0 -0
  179. /package/dist/esm-es5/{svg-icon.component-ecb1700c.js.map → svg-icon.component-4ca05eb2.js.map} +0 -0
  180. /package/dist/esm-es5/{svg-sprite.component-93c29b17.js.map → svg-sprite.component-0394cd67.js.map} +0 -0
  181. /package/dist/swisspost-internet-header/{p-10dc2991.entry.js.map → p-2e5d2ce1.entry.js.map} +0 -0
  182. /package/dist/swisspost-internet-header/{p-dc228941.system.entry.js.map → p-2fd19fc1.system.entry.js.map} +0 -0
  183. /package/dist/swisspost-internet-header/{p-6e24784e.system.js.map → p-4772446c.system.js.map} +0 -0
  184. /package/dist/swisspost-internet-header/{p-f115d8f1.system.js.map → p-59a0d27b.system.js.map} +0 -0
  185. /package/dist/swisspost-internet-header/{p-bc79a64a.entry.js.map → p-7c9d0994.entry.js.map} +0 -0
  186. /package/dist/swisspost-internet-header/{p-bb7f28f0.system.js.map → p-86c5610e.system.js.map} +0 -0
  187. /package/dist/swisspost-internet-header/{p-3a566b21.entry.js.map → p-8b840367.entry.js.map} +0 -0
  188. /package/dist/swisspost-internet-header/{p-d93a7553.js.map → p-9e389f57.js.map} +0 -0
  189. /package/dist/swisspost-internet-header/{p-d11cfbf6.entry.js.map → p-b1e20b23.entry.js.map} +0 -0
  190. /package/dist/swisspost-internet-header/{p-6423a6ea.js.map → p-bf8fc7fa.js.map} +0 -0
  191. /package/dist/swisspost-internet-header/{p-19520037.system.entry.js.map → p-cc23da7a.system.entry.js.map} +0 -0
  192. /package/dist/swisspost-internet-header/{p-2ff142da.system.entry.js.map → p-d7e49083.system.entry.js.map} +0 -0
  193. /package/dist/swisspost-internet-header/{p-9bc33c5f.js.map → p-e8d72284.js.map} +0 -0
  194. /package/dist/swisspost-internet-header/{p-50910fe5.system.entry.js.map → p-f5c099b1.system.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["getTrackAndTraceApiUrl","id","lang","state","currentLanguage","encodeURIComponent","getTrackAndTraceRedirectUrl","query","packageTrackingRedirectUrl","replace","isParcel","async","searchConfig","parcelInfo","getParcelInfo","ok","redirectPattern","trackingNrPattern","RegExp","test","trackAndTraceReqest","fetch","trackAndTraceResult","json","Object","assign","error","console","warn","message","timestamp","Date","toDateString","getParcelSuggestion","url","getSearchRedirectUrl","isTrackTraceId","getSearchPageUrl","_a","localizedConfig","header","search","undefined","searchPageUrl","searchParam","equalizeArrays","arrayA","arrayB","maxLength","coveoSliced","slice","Math","max","length","coveo","environment","prod","organisation","token","int01","int02","dev01","dev02","devs1","getCoveoSuggestions","_b","config","searchHubName","searchPipelineName","coveoCompletions","coveoResponse","method","headers","Authorization","coveoJSON","completions","map","completion","redirectUrl","expression","gisAPIUrl","placesUrl","hardNormalize","str","toLowerCase","normalize","queryPlaces","searchParameters","entries","limit","reduce","s","k","v","i","geocoderUrl","geocodeResponse","geocodeJSON","Error","info","locations","highlightPlacesString","place","reference","q","indexOfQuery","indexOf","substring","getPlacesUrl","location","name","HighlightedText","props","highlightClass","highlightedString","text","h","innerHTML","postSearchCss","PostSearch","connectedCallback","this","throttledResize","throttle","handleResize","window","addEventListener","passive","disconnectedCallback","removeEventListener","clearAllBodyScrollLocks","componentWillUpdate","searchFlyout","searchDropdownOpen","classList","remove","elementHasTransition","userPrefersReducedMotion","Promise","resolve","event","propertyName","componentDidUpdate","getBoundingClientRect","add","searchBox","focus","preventScroll","force","dropdownToggled","emit","open","element","host","coveoSuggestions","placeSuggestions","value","setFocus","setBodyScroll","shadowRoot","toggleButton","querySelector","innerWidth","disableBodyScroll","enableBodyScroll","trim","trackAndTraceInfo","all","parcelSuggestion","deselectSuggestion","handleKeyDown","selectedSuggestion","key","selectedHref","getAttribute","href","startSearch","suggestions","querySelectorAll","parentElement","nextElementSibling","firstElementChild","_d","_c","previousElementSibling","suggestedText","dataset","suggestionText","handleMouseEnterSuggestion","target","handleMouseLeaveSuggestions","render","translations","showPortalRecommendations","searchRecommendations","links","Host","SvgSprite","class","type","onClick","e","toggleDropdown","searchToggleExpanded","searchToggle","SvgIcon","If","condition","ref","placeholder","flyoutSearchBoxFloatingLabel","autocomplete","el","onInput","handleSearchInput","onKeyDown","htmlFor","searchSubmit","title","onMouseLeave","recommendation","URL","label","onMouseEnter","inlineSvg","_f","_e","sending","_h","_g","product","_k","_j","recipient","zipcode","_m","_l","city","_p","_o","suggestion","objectId","highlighted"],"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\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 parcelInfo.ok;\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 try {\n const trackAndTraceReqest = await fetch(getTrackAndTraceApiUrl(query));\n const trackAndTraceResult = await trackAndTraceReqest.json();\n return { ...trackAndTraceResult, ok: trackAndTraceResult.ok === 'true' };\n } catch (error) {\n console.warn(`Could not check track and trace API due to error: ${error.message}`);\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\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 (state.localizedConfig?.header?.search === undefined) 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 let coveoCompletions: CoveoCompletion[] | undefined;\n\n try {\n const coveoResponse = await fetch(url, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n const coveoJSON = (await coveoResponse.json()) as CoveoResponse;\n coveoCompletions = coveoJSON.completions.map(completion => ({\n ...completion,\n redirectUrl: getSearchPageUrl(completion.expression),\n }));\n } catch (error) {\n console.error(\n 'Connection to coveo failed. Did you add \"*.coveo.com\" to your connect-src content security policy and tried turning off your adblocker?',\n );\n }\n\n return coveoCompletions === undefined ? [] : coveoCompletions;\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\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 geocoderUrl = `${gisAPIUrl}/Geocode${searchParameters}`;\n\n try {\n const geocodeResponse = await fetch(geocoderUrl);\n const geocodeJSON = (await geocodeResponse.json()) as GeocodeResponse;\n if (!geocodeJSON.ok) {\n throw new Error(geocodeJSON.info);\n }\n return geocodeJSON.locations;\n } catch (error) {\n console.error(\n 'Fetching places failed. Did you add \"places.post.ch\" to your connect-src content security policy?',\n );\n throw error;\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/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 padding-right: 3.5rem;\n }\n}\n\n.start-search-button {\n position: absolute;\n top: 0;\n right: 0;\n height: 100%;\n padding-right: 1rem;\n padding-left: 1rem;\n display: flex;\n align-items: center;\n cursor: pointer;\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\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, 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 // Parcel suggestion is more important than any other\n if (trackAndTraceInfo) {\n this.parcelSuggestion = 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 class=\"bold\">{search.searchRecommendations.title}</h2>\n )}\n <ul\n class=\"suggestions no-list\"\n onMouseLeave={() => this.handleMouseLeaveSuggestions()}\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"],"mappings":"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"}
1
+ {"version":3,"names":["getTrackAndTraceApiUrl","id","lang","state","currentLanguage","encodeURIComponent","getTrackAndTraceRedirectUrl","query","packageTrackingRedirectUrl","replace","isParcel","async","searchConfig","parcelInfo","getParcelInfo","ok","redirectPattern","trackingNrPattern","RegExp","test","trackAndTraceReqest","fetch","trackAndTraceResult","json","Object","assign","error","console","warn","message","timestamp","Date","toDateString","getParcelSuggestion","url","getSearchRedirectUrl","isTrackTraceId","getSearchPageUrl","_a","localizedConfig","header","search","undefined","searchPageUrl","searchParam","equalizeArrays","arrayA","arrayB","maxLength","coveoSliced","slice","Math","max","length","coveo","environment","prod","organisation","token","int01","int02","dev01","dev02","devs1","getCoveoSuggestions","_b","config","searchHubName","searchPipelineName","coveoCompletions","coveoResponse","method","headers","Authorization","coveoJSON","completions","map","completion","redirectUrl","expression","gisAPIUrl","placesUrl","hardNormalize","str","toLowerCase","normalize","queryPlaces","searchParameters","entries","limit","reduce","s","k","v","i","geocoderUrl","geocodeResponse","geocodeJSON","Error","info","locations","highlightPlacesString","place","reference","q","indexOfQuery","indexOf","substring","getPlacesUrl","location","name","HighlightedText","props","highlightClass","highlightedString","text","h","innerHTML","postSearchCss","PostSearch","connectedCallback","this","throttledResize","throttle","handleResize","window","addEventListener","passive","disconnectedCallback","removeEventListener","clearAllBodyScrollLocks","componentWillUpdate","searchFlyout","searchDropdownOpen","classList","remove","elementHasTransition","userPrefersReducedMotion","Promise","resolve","event","propertyName","componentDidUpdate","getBoundingClientRect","add","searchBox","focus","preventScroll","force","dropdownToggled","emit","open","element","host","coveoSuggestions","placeSuggestions","value","setFocus","setBodyScroll","shadowRoot","toggleButton","querySelector","innerWidth","disableBodyScroll","enableBodyScroll","trim","trackAndTraceInfo","all","parcelSuggestion","deselectSuggestion","handleKeyDown","selectedSuggestion","key","selectedHref","getAttribute","href","startSearch","suggestions","querySelectorAll","parentElement","nextElementSibling","firstElementChild","_d","_c","previousElementSibling","suggestedText","dataset","suggestionText","handleMouseEnterSuggestion","target","handleMouseLeaveSuggestions","render","translations","showPortalRecommendations","searchRecommendations","links","Host","SvgSprite","class","type","onClick","e","toggleDropdown","searchToggleExpanded","searchToggle","SvgIcon","If","condition","ref","placeholder","flyoutSearchBoxFloatingLabel","autocomplete","el","onInput","handleSearchInput","onKeyDown","htmlFor","searchSubmit","title","onMouseLeave","recommendation","URL","label","onMouseEnter","inlineSvg","_f","_e","sending","_h","_g","product","_k","_j","recipient","zipcode","_m","_l","city","_p","_o","suggestion","objectId","highlighted"],"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\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 parcelInfo.ok;\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 try {\n const trackAndTraceReqest = await fetch(getTrackAndTraceApiUrl(query));\n const trackAndTraceResult = await trackAndTraceReqest.json();\n return { ...trackAndTraceResult, ok: trackAndTraceResult.ok === 'true' };\n } catch (error) {\n console.warn(`Could not check track and trace API due to error: ${error.message}`);\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\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 (state.localizedConfig?.header?.search === undefined) 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 let coveoCompletions: CoveoCompletion[] | undefined;\n\n try {\n const coveoResponse = await fetch(url, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n const coveoJSON = (await coveoResponse.json()) as CoveoResponse;\n coveoCompletions = coveoJSON.completions.map(completion => ({\n ...completion,\n redirectUrl: getSearchPageUrl(completion.expression),\n }));\n } catch (error) {\n console.error(\n 'Connection to coveo failed. Did you add \"*.coveo.com\" to your connect-src content security policy and tried turning off your adblocker?',\n );\n }\n\n return coveoCompletions === undefined ? [] : coveoCompletions;\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\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 geocoderUrl = `${gisAPIUrl}/Geocode${searchParameters}`;\n\n try {\n const geocodeResponse = await fetch(geocoderUrl);\n const geocodeJSON = (await geocodeResponse.json()) as GeocodeResponse;\n if (!geocodeJSON.ok) {\n throw new Error(geocodeJSON.info);\n }\n return geocodeJSON.locations;\n } catch (error) {\n console.error(\n 'Fetching places failed. Did you add \"places.post.ch\" to your connect-src content security policy?',\n );\n throw error;\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/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 padding-right: 3.5rem;\n }\n}\n\n.start-search-button {\n position: absolute;\n top: 0;\n right: 0;\n height: 100%;\n padding-right: 1rem;\n padding-left: 1rem;\n display: flex;\n align-items: center;\n cursor: pointer;\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\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, 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 class=\"bold\">{search.searchRecommendations.title}</h2>\n )}\n <ul\n class=\"suggestions no-list\"\n onMouseLeave={() => this.handleMouseLeaveSuggestions()}\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"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{h as t,r as e,H as r}from"./p-12c07c17.js";import{s as o}from"./p-0e63e0aa.js";import{S as l}from"./p-6423a6ea.js";const a=e=>t("div",{class:"pre-footer"},t("div",{class:"block-custom container"},t("h3",null,e.block.title),t("ul",{class:"no-list box link-list"},e.block.links&&e.block.links.map((e=>t("li",{key:e.url},t("a",{class:"flyout-link",href:e.url,target:e.target},e.text)))))));const i=e=>t("div",{class:"block-list"},t("h3",null,e.block.title),t("ul",{class:"no-list box link-list"},e.block.links&&e.block.links.map((e=>t("li",{key:e.url},t("a",{class:"flyout-link",href:e.url,target:e.target},e.text))))));const n=e=>t("div",{class:"block-socials"},t("h3",null,e.content.title),t("ul",{class:"no-list socials"},e.content.links.map((e=>t("li",{key:e.url},t("a",{href:e.url,target:e.target},t("span",{class:"visually-hidden"},e.name),t("svg",{"aria-hidden":"true"},t("use",{href:`#${e.icon}`}))))))));const g=e=>t("div",{class:"block-address"},t("h3",null,e.block.title),e.block.content&&e.block.content.filter((t=>t.address)).map((e=>t("address",{class:"vcard",key:e.address},t("span",{class:"adr",innerHTML:e.address})))),e.block.content&&e.block.content.filter((t=>t.links&&t.links.length)).map((e=>t(n,{key:e.name,content:e}))));const s=t=>t.replace(/<[^>]*>?/gm,"");const f=()=>{if(typeof window["unbluLSLoad"]==="function"){window["unbluLSLoad"]()}else{console.error('swisspost-internet-footer: The function "unbluLSLoad" could not be called because it is not available in the global scope. Did you include the unblu live chat script on your page?')}};const b=e=>t("button",{class:"hours btn btn-link",id:"liveSupport",type:"button",onClick:f,innerHTML:s(e.hours)});const d=e=>t("div",{class:"block-contact"},t("h3",null,e.block.title),e.block.content&&e.block.content.map(((r,o)=>{const l=o===e.block.content.length-1&&r.text==="Live Support";if(l&&!e.liveSupportEnabled){return null}return t("div",{class:"content-row",key:r.name},r.number?t("p",{class:"number"},r.number):null,r.text?t("p",{class:"text"},r.text):null,r.hours&&l&&t(b,{hours:r.hours}),r.hours&&!l&&t("p",{class:"hours",innerHTML:s(r.hours)}),r.describe?t("p",{class:"describe"},r.describe):null)})));const m='/*!\n * Bootstrap Utilities v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n\n * The MIT License (MIT)\n\n * Copyright (c) 2011-2020 Twitter, Inc.\n * Copyright (c) 2011-2020 The Bootstrap Authors\n\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the "Software"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */.row{--bs-gutter-x:30px;--bs-gutter-y:0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-0.5 * var(--bs-gutter-x));margin-left:calc(-0.5 * var(--bs-gutter-x))}.row>*{-ms-flex-negative:0;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * 0.5);padding-left:calc(var(--bs-gutter-x) * 0.5);margin-top:var(--bs-gutter-y)}.col{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width: 400px){.col-sm{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-sm-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-sm-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-sm-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-sm-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-sm-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-sm-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width: 600px){.col-rg{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-rg-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-rg-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-rg-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-rg-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-rg-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-rg-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-rg-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-rg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-rg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-rg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-rg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-rg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-rg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-rg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-rg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-rg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-rg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-rg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-rg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-rg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-rg-0{margin-left:0}.offset-rg-1{margin-left:8.33333333%}.offset-rg-2{margin-left:16.66666667%}.offset-rg-3{margin-left:25%}.offset-rg-4{margin-left:33.33333333%}.offset-rg-5{margin-left:41.66666667%}.offset-rg-6{margin-left:50%}.offset-rg-7{margin-left:58.33333333%}.offset-rg-8{margin-left:66.66666667%}.offset-rg-9{margin-left:75%}.offset-rg-10{margin-left:83.33333333%}.offset-rg-11{margin-left:91.66666667%}.g-rg-0,.gx-rg-0{--bs-gutter-x:0}.g-rg-0,.gy-rg-0{--bs-gutter-y:0}.g-rg-1,.gx-rg-1{--bs-gutter-x:0.25rem}.g-rg-1,.gy-rg-1{--bs-gutter-y:0.25rem}.g-rg-2,.gx-rg-2{--bs-gutter-x:0.5rem}.g-rg-2,.gy-rg-2{--bs-gutter-y:0.5rem}.g-rg-3,.gx-rg-3{--bs-gutter-x:1rem}.g-rg-3,.gy-rg-3{--bs-gutter-y:1rem}.g-rg-4,.gx-rg-4{--bs-gutter-x:1.5rem}.g-rg-4,.gy-rg-4{--bs-gutter-y:1.5rem}.g-rg-5,.gx-rg-5{--bs-gutter-x:3rem}.g-rg-5,.gy-rg-5{--bs-gutter-y:3rem}}@media (min-width: 780px){.col-md{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-md-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-md-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-md-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-md-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-md-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-md-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width: 1024px){.col-lg{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-lg-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-lg-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-lg-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-lg-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-lg-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-lg-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width: 1280px){.col-xl{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xl-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-xl-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-xl-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-xl-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-xl-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-xl-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width: 1441px){.col-xxl{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xxl-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-xxl-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-xxl-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-xxl-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-xxl-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-xxl-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xxl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-xxl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-xxl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-xxl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-xxl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-xxl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-xxl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-xxl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-xxl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-xxl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-xxl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-xxl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.container,.container-fluid,.container-xs{--bs-gutter-x:30px;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * 0.5);padding-left:calc(var(--bs-gutter-x) * 0.5);margin-right:auto;margin-left:auto}.container{max-width:1440px}.vertical-gutters{margin-bottom:-30px}.vertical-gutters>.col,.vertical-gutters>[class*=col-]{padding-bottom:30px}.row.border-gutters{margin-right:-1px;margin-bottom:-1px;margin-left:0}.row.border-gutters>.col,.row.border-gutters>[class*=col-]{padding-right:1px;padding-bottom:1px;padding-left:0}.container{padding-right:12px;padding-left:12px}.container-reset{margin-right:-12px;margin-left:-12px}.container-reset-left{margin-left:-12px}.container-reset-right{margin-right:-12px}@media (max-width: 399.98px){.container-fluid-xs{padding-right:1rem;padding-left:1rem}}@media (min-width: 400px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 400px){.container-reset{margin-right:-16px;margin-left:-16px}}@media (min-width: 400px){.container-reset-left{margin-left:-16px}}@media (min-width: 400px){.container-reset-right{margin-right:-16px}}@media (min-width: 400px) and (max-width: 599.98px){.container-fluid-sm{padding-right:1rem;padding-left:1rem}}@media (min-width: 600px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 600px){.container-reset{margin-right:-32px;margin-left:-32px}}@media (min-width: 600px){.container-reset-left{margin-left:-32px}}@media (min-width: 600px){.container-reset-right{margin-right:-32px}}@media (min-width: 600px) and (max-width: 779.98px){.container-fluid-rg{padding-right:1rem;padding-left:1rem}}@media (min-width: 780px) and (max-width: 1023.98px){.container-fluid-md{padding-right:1rem;padding-left:1rem}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}@media (min-width: 1024px){.container-reset{margin-right:-40px;margin-left:-40px}}@media (min-width: 1024px){.container-reset-left{margin-left:-40px}}@media (min-width: 1024px){.container-reset-right{margin-right:-40px}}@media (min-width: 1024px) and (max-width: 1279.98px){.container-fluid-lg{padding-right:1rem;padding-left:1rem}}@media (min-width: 1280px){.container{padding-right:128px;padding-left:128px}}@media (min-width: 1280px){.container-reset{margin-right:-128px;margin-left:-128px}}@media (min-width: 1280px){.container-reset-left{margin-left:-128px}}@media (min-width: 1280px){.container-reset-right{margin-right:-128px}}@media (min-width: 1280px) and (max-width: 1440.98px){.container-fluid-xl{padding-right:1rem;padding-left:1rem}}@media (min-width: 1441px){.container-fluid-xxl{padding-right:1rem;padding-left:1rem}}.btn-default,.btn-secondary{border:2px solid rgba(var(--post-contrast-color-rgb), 0.2)}.btn-default:focus,.btn-secondary:focus,.btn-default:not(:disabled):hover,.btn-secondary:not(:disabled):hover,.pretend-hover.btn-default,.pretend-hover.btn-secondary{border-color:var(--post-contrast-color);color:var(--post-contrast-color)}:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-default,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-secondary{border-color:var(--post-contrast-color)}:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-default:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-secondary:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-default:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-secondary:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .pretend-hover.btn-default,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .pretend-hover.btn-secondary{border-color:rgba(var(--post-contrast-color-rgb), 0.4)}.btn-default:disabled,.btn-secondary:disabled{border-color:rgba(var(--post-contrast-color-rgb), 0.4);color:rgba(var(--post-contrast-color-rgb), 0.6)}.btn{min-height:3rem;padding:0 2rem;font-size:1rem;gap:1rem;outline:none;outline-offset:2px;display:-ms-inline-flexbox;display:inline-flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;overflow:hidden;-webkit-transition:opacity 250ms, border-color 250ms, background-color 250ms, color 250ms;transition:opacity 250ms, border-color 250ms, background-color 250ms, color 250ms;border-width:2px;border-style:solid;border-radius:3px;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;color:var(--post-contrast-color);font-family:inherit;font-weight:400;line-height:inherit;text-decoration:none !important;white-space:nowrap}.btn>.pi{width:1.25rem;height:1.25rem}.btn:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.btn-primary{border-color:transparent;background-color:rgba(var(--post-contrast-color-rgb), 0.8);color:var(--post-contrast-color-inverted)}.btn-primary:focus,.btn-primary:not(:disabled):hover,.btn-primary.pretend-hover{background-color:var(--post-contrast-color);color:var(--post-contrast-color-inverted)}:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary{background-color:var(--post-contrast-color)}:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary.pretend-hover{background-color:rgba(var(--post-contrast-color-rgb), 0.8)}:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary .pi{-webkit-filter:invert(0);filter:invert(0)}@media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black){.btn-primary{border-color:var(--post-contrast-color);background-color:ButtonFace}.btn-primary:not(:disabled,.disabled):hover,.btn-primary:not(:disabled,.disabled):focus-visible{border-color:highlight}.btn-primary .pi{-webkit-filter:invert(1) !important;filter:invert(1) !important}}.btn-primary:disabled{background-color:rgba(var(--post-contrast-color-rgb), 0.4)}.btn-primary .pi{-webkit-filter:invert(1);filter:invert(1);forced-color-adjust:none}:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-default .pi,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-secondary .pi{-webkit-filter:invert(1);filter:invert(1)}.btn-link,.btn-tertiary{border:0;padding-right:0.375rem;padding-left:0.375rem}.btn-link:focus,.btn-link:not(:disabled):hover,.btn-link.pretend-hover,.btn-tertiary:focus,.btn-tertiary:not(:disabled):hover,.btn-tertiary.pretend-hover{color:rgba(var(--post-contrast-color-rgb), 0.8)}.btn-link:disabled,.btn-tertiary:disabled{color:rgba(var(--post-contrast-color-rgb), 0.6)}@media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black){.btn-link,.btn-tertiary{color:linktext;text-decoration:underline !important}}.btn-icon{min-width:3rem;padding-right:0.75rem;padding-left:0.75rem}.btn-icon.btn-sm{min-width:2rem;padding-right:0.375rem;padding-left:0.375rem}.btn-icon.btn-rg{min-width:2.5rem;padding-right:0.5625rem;padding-left:0.5625rem}.btn-icon.btn-lg{min-width:3.5rem;padding-right:0.875rem;padding-left:0.875rem}.btn-animated:not(.btn-link,.btn-tertiary)::after{content:"";position:absolute;right:1.25rem;width:0.625em;height:0.625em;-webkit-transform:rotateZ(315deg) translate(-2px, -2px);transform:rotateZ(315deg) translate(-2px, -2px);-webkit-transform-origin:center center;transform-origin:center center;-webkit-transition:opacity 250ms, -webkit-transform 250ms;transition:opacity 250ms, -webkit-transform 250ms;transition:opacity 250ms, transform 250ms;transition:opacity 250ms, transform 250ms, -webkit-transform 250ms;border-right:2px solid currentColor;border-bottom:2px solid currentColor;opacity:0}.btn-animated:not(.btn-link,.btn-tertiary).btn-sm::after{right:0.5rem}.btn-animated:not(.btn-link,.btn-tertiary).btn-rg::after{right:0.875rem}.btn-animated:not(.btn-link,.btn-tertiary).btn-lg::after{right:1.5rem}.btn-animated:not(.btn-link,.btn-tertiary)>span{-webkit-transition:-webkit-transform 250ms;transition:-webkit-transform 250ms;transition:transform 250ms;transition:transform 250ms, -webkit-transform 250ms}@media (prefers-reduced-motion: no-preference){.btn-animated:not(.btn-link,.btn-tertiary):focus>span,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover>span,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover>span{-webkit-transform:translateX(-0.75rem);transform:translateX(-0.75rem)}.btn-animated:not(.btn-link,.btn-tertiary):focus.btn-sm>span,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover.btn-sm>span,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover.btn-sm>span{-webkit-transform:translateX(-0.5rem);transform:translateX(-0.5rem)}.btn-animated:not(.btn-link,.btn-tertiary):focus.btn-rg>span,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover.btn-rg>span,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover.btn-rg>span{-webkit-transform:translateX(-0.625rem);transform:translateX(-0.625rem)}.btn-animated:not(.btn-link,.btn-tertiary):focus.btn-lg>span,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover.btn-lg>span,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover.btn-lg>span{-webkit-transform:translateX(-1rem);transform:translateX(-1rem)}.btn-animated:not(.btn-link,.btn-tertiary):focus::after,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover::after,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover::after{-webkit-transform:rotateZ(315deg) translate(0, 0);transform:rotateZ(315deg) translate(0, 0);opacity:1}.btn-animated:not(.btn-link,.btn-tertiary)>span{-webkit-transform:translateX(0);transform:translateX(0)}}.btn-sm{min-height:2rem;padding:0 1rem;font-size:0.8125rem;gap:0.5rem}.btn-sm>.pi{width:1rem;height:1rem}.btn-rg{min-height:2.5rem;padding:0 1.5rem;font-size:1rem;gap:0.75rem}.btn-rg>.pi{width:1.125rem;height:1.125rem}.btn-lg{min-height:3.5rem;padding:0 2.5rem;font-size:1.0625rem;gap:1.25rem}.btn-lg>.pi{width:1.5rem;height:1.5rem}.btn-nightblue{border-color:transparent;background-color:#004976;color:#fff}.btn-nightblue:focus,.btn-nightblue:not(:disabled):hover,.btn-nightblue.pretend-hover{background-color:#002943;color:#fff}.btn-nightblue-bright{border-color:transparent;background-color:#0076a8;color:#fff}.btn-nightblue-bright:focus,.btn-nightblue-bright:not(:disabled):hover,.btn-nightblue-bright.pretend-hover{background-color:#005275;color:#fff}.btn-petrol{border-color:transparent;background-color:#006d68;color:#fff}.btn-petrol:focus,.btn-petrol:not(:disabled):hover,.btn-petrol.pretend-hover{background-color:#003a37;color:#fff}.btn-petrol-bright{border-color:transparent;background-color:#00968f;color:#000}.btn-petrol-bright:focus,.btn-petrol-bright:not(:disabled):hover,.btn-petrol-bright.pretend-hover{background-color:#00635e;color:#fff}.btn-coral{border-color:transparent;background-color:#9e2a2f;color:#fff}.btn-coral:focus,.btn-coral:not(:disabled):hover,.btn-coral.pretend-hover{background-color:#761f23;color:#fff}.btn-coral-bright{border-color:transparent;background-color:#e03c31;color:#000}.btn-coral-bright:focus,.btn-coral-bright:not(:disabled):hover,.btn-coral-bright.pretend-hover{background-color:#c1271d;color:#fff}.btn-olive{border-color:transparent;background-color:#716135;color:#fff}.btn-olive:focus,.btn-olive:not(:disabled):hover,.btn-olive.pretend-hover{background-color:#4e4325;color:#fff}.btn-olive-bright{border-color:transparent;background-color:#aa9d2e;color:#000}.btn-olive-bright:focus,.btn-olive-bright:not(:disabled):hover,.btn-olive-bright.pretend-hover{background-color:#827823;color:#000}.btn-purple{border-color:transparent;background-color:#80276c;color:#fff}.btn-purple:focus,.btn-purple:not(:disabled):hover,.btn-purple.pretend-hover{background-color:#591b4b;color:#fff}.btn-purple-bright{border-color:transparent;background-color:#c5299b;color:#fff}.btn-purple-bright:focus,.btn-purple-bright:not(:disabled):hover,.btn-purple-bright.pretend-hover{background-color:#9b207a;color:#fff}.btn-aubergine{border-color:transparent;background-color:#523178;color:#fff}.btn-aubergine:focus,.btn-aubergine:not(:disabled):hover,.btn-aubergine.pretend-hover{background-color:#392254;color:#fff}.btn-aubergine-bright{border-color:transparent;background-color:#7566a0;color:#fff}.btn-aubergine-bright:focus,.btn-aubergine-bright:not(:disabled):hover,.btn-aubergine-bright.pretend-hover{background-color:#5e5182;color:#fff}.btn-success{border-color:transparent;background-color:#2c911c;color:#000}.btn-success:focus,.btn-success:not(:disabled):hover,.btn-success.pretend-hover{background-color:#1f6614;color:#fff}.btn-info{border-color:transparent;background-color:#cce4ee;color:#000}.btn-info:focus,.btn-info:not(:disabled):hover,.btn-info.pretend-hover{background-color:#a6d0e1;color:#000}.btn-warning{border-color:transparent;background-color:#f49e00;color:#000}.btn-warning:focus,.btn-warning:not(:disabled):hover,.btn-warning.pretend-hover{background-color:#c17d00;color:#000}.btn-danger{border-color:transparent;background-color:#a51728;color:#fff}.btn-danger:focus,.btn-danger:not(:disabled):hover,.btn-danger.pretend-hover{background-color:#78111d;color:#fff}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:700;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:400;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:300;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff") format("woff")}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", system-ui, sans-serif}button{font:inherit;padding:0}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:white}}.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}.btn-blank{background-color:transparent;border:none;border-radius:0;padding:0}.nav-link{text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.nav-link:hover,.nav-link:focus{color:black}.nav-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.nav-link>span{-ms-flex-negative:1;flex-shrink:1}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width: -0.02px){.hidden-xs{display:none}}@media (max-width: 399.98px){.hidden-sm{display:none}}@media (max-width: 599.98px){.hidden-rg{display:none}}@media (max-width: 779.98px){.hidden-md{display:none}}@media (max-width: 1023.98px){.hidden-lg{display:none}}@media (max-width: 1279.98px){.hidden-xl{display:none}}@media (max-width: 1440.98px){.hidden-xxl{display:none}}:host{display:block}h3{font-size:inherit;margin-top:0}.btn.btn-link{padding-left:0;padding-right:0}.btn.btn-link:hover{cursor:pointer}.post-internet-footer{font-size:1rem;font-weight:300;border-top:2px solid hsl(0, 0%, 90%)}.pre-footer{padding-top:2rem;padding-bottom:2rem;border-bottom:2px solid hsl(0, 0%, 90%)}.pre-footer .block-custom,.pre-footer .link-list{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:1rem 1.5rem}.pre-footer h3,.pre-footer .link-list li{margin:0}.footer-container{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:3.5rem 2rem;margin-top:3.5rem;margin-bottom:3.5rem}@media (max-width: 1023.98px){.footer-container{grid-template-columns:1fr 1fr}}@media (max-width: 599.98px){.footer-container{gap:1.5rem 2rem;margin-top:1.5rem;margin-bottom:1.5rem}}@media (max-width: 399.98px){.block-list{grid-column:1/3}}@media (max-width: 599.98px){.block-contact,.block-address{grid-column:1/3}}.block-socials{margin-top:3.5rem}@media (max-width: 599.98px){.block-socials{margin-top:1.5rem}}address{font-style:normal}.link-list li{margin:1rem 0}.link-list a{display:block;text-decoration:none;color:hsl(0, 0%, 40%);-webkit-transition:color 200ms;transition:color 200ms}.link-list a:hover{color:black}.content-row{padding:0.5rem 0}h3+.content-row{padding-top:0}.content-row:last-child{padding-bottom:0}.content-row+.content-row{border-top:1px solid hsl(0, 0%, 90%)}.content-row p,.content-row button{margin:0.25rem}.text{font-weight:700}.describe{font-size:0.8125rem;color:hsl(0, 0%, 40%);font-weight:400}.number{font-size:1.25rem}.socials{display:inline-grid;grid-auto-flow:row;grid-template-columns:repeat(4, 1fr);gap:1rem 1.5rem}.socials a{display:block;color:hsl(0, 0%, 40%);-webkit-transition:color 200ms;transition:color 200ms}.socials a:hover,.socials a:focus{color:black}.socials svg{display:block;width:1.5rem;height:1.5rem}.copyright{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:0.5rem 1.5rem;margin-top:2rem;margin-bottom:2rem;font-size:0.75rem}.footer-meta-links{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:0.5rem;font-weight:400}';const u=class{constructor(t){e(this,t);this.liveSupportEnabled=false;this.liveSupportEnabled=this.unbluEnabled();if(!this.liveSupportEnabled){let t;let e=0;const r=()=>{const r=this.unbluEnabled();if(r){this.liveSupportEnabled=true}if(r||e>=5){window.clearInterval(t)}e++};t=window.setInterval(r,1e3)}}unbluEnabled(){return typeof window["unbluLSLoad"]==="function"}render(){var e;if(!o){console.warn(`Internet Footer: Could not load config. Please make sure that you included the <swisspost-internet-header></swisspost-internet-header> component.`);return null}if(!o.localizedConfig){return null}if(!o.localizedConfig.footer){console.warn(`Internet Footer: Current project "${o.projectId}" does not include a footer config. The footer will not be rendered. Remove `,document.querySelector("swisspost-internet-footer"),`from your markup or configure the footer in your portal config to stop seeing this warning.`);return null}const n=o.localizedConfig.footer;const s=(e=o.localizedCustomConfig)===null||e===void 0?void 0:e.footer;return t(r,null,t(l,null),t("footer",{class:"post-internet-footer light font-curve-regular"},t("h2",{class:"visually-hidden"},n.title),(s===null||s===void 0?void 0:s.block)&&t(a,{block:s===null||s===void 0?void 0:s.block}),t("div",{class:"footer-container container"},n.block.filter((t=>t.columnType==="list")).map((e=>t(i,{key:e.title,block:e}))),n.block.filter((t=>t.columnType==="contact")).map((e=>t(d,{key:e.title,block:e,liveSupportEnabled:this.liveSupportEnabled}))),n.block.filter((t=>t.columnType==="address")).map((e=>t(g,{key:e.title,block:e})))),t("div",{class:"copyright container"},t("span",{class:"bold"},n.entry.text),t("ul",{class:"no-list footer-meta-links"},n.links?n.links.map((e=>t("li",{key:e.url},t("a",{class:"nav-link",href:e.url,target:e.target},e.text)))):null))))}};u.style=m;export{u as swisspost_internet_footer};
2
- //# sourceMappingURL=p-5ac43fe4.entry.js.map
1
+ import{h as t,r as e,H as r}from"./p-ebd5ee13.js";import{s as o}from"./p-d8a834ef.js";import{S as l}from"./p-bf8fc7fa.js";const a=e=>t("div",{class:"pre-footer"},t("div",{class:"block-custom container"},t("h3",null,e.block.title),t("ul",{class:"no-list box link-list"},e.block.links&&e.block.links.map((e=>t("li",{key:e.url},t("a",{class:"flyout-link",href:e.url,target:e.target},e.text)))))));const i=e=>t("div",{class:"block-list"},t("h3",null,e.block.title),t("ul",{class:"no-list box link-list"},e.block.links&&e.block.links.map((e=>t("li",{key:e.url},t("a",{class:"flyout-link",href:e.url,target:e.target},e.text))))));const n=e=>t("div",{class:"block-socials"},t("h3",null,e.content.title),t("ul",{class:"no-list socials"},e.content.links.map((e=>t("li",{key:e.url},t("a",{href:e.url,target:e.target},t("span",{class:"visually-hidden"},e.name),t("svg",{"aria-hidden":"true"},t("use",{href:`#${e.icon}`}))))))));const g=e=>t("div",{class:"block-address"},t("h3",null,e.block.title),e.block.content&&e.block.content.filter((t=>t.address)).map((e=>t("address",{class:"vcard",key:e.address},t("span",{class:"adr",innerHTML:e.address})))),e.block.content&&e.block.content.filter((t=>t.links&&t.links.length)).map((e=>t(n,{key:e.name,content:e}))));const s=t=>t.replace(/<[^>]*>?/gm,"");const f=()=>{if(typeof window["unbluLSLoad"]==="function"){window["unbluLSLoad"]()}else{console.error('swisspost-internet-footer: The function "unbluLSLoad" could not be called because it is not available in the global scope. Did you include the unblu live chat script on your page?')}};const b=e=>t("button",{class:"hours btn btn-link",id:"liveSupport",type:"button",onClick:f,innerHTML:s(e.hours)});const d=e=>t("div",{class:"block-contact"},t("h3",null,e.block.title),e.block.content&&e.block.content.map(((r,o)=>{const l=o===e.block.content.length-1&&r.text==="Live Support";if(l&&!e.liveSupportEnabled){return null}return t("div",{class:"content-row",key:r.name},r.number?t("p",{class:"number"},r.number):null,r.text?t("p",{class:"text"},r.text):null,r.hours&&l&&t(b,{hours:r.hours}),r.hours&&!l&&t("p",{class:"hours",innerHTML:s(r.hours)}),r.describe?t("p",{class:"describe"},r.describe):null)})));const m='/*!\n * Bootstrap Utilities v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n\n * The MIT License (MIT)\n\n * Copyright (c) 2011-2020 Twitter, Inc.\n * Copyright (c) 2011-2020 The Bootstrap Authors\n\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the "Software"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */.row{--bs-gutter-x:30px;--bs-gutter-y:0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-0.5 * var(--bs-gutter-x));margin-left:calc(-0.5 * var(--bs-gutter-x))}.row>*{-ms-flex-negative:0;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * 0.5);padding-left:calc(var(--bs-gutter-x) * 0.5);margin-top:var(--bs-gutter-y)}.col{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width: 400px){.col-sm{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-sm-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-sm-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-sm-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-sm-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-sm-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-sm-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width: 600px){.col-rg{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-rg-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-rg-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-rg-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-rg-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-rg-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-rg-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-rg-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-rg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-rg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-rg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-rg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-rg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-rg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-rg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-rg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-rg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-rg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-rg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-rg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-rg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-rg-0{margin-left:0}.offset-rg-1{margin-left:8.33333333%}.offset-rg-2{margin-left:16.66666667%}.offset-rg-3{margin-left:25%}.offset-rg-4{margin-left:33.33333333%}.offset-rg-5{margin-left:41.66666667%}.offset-rg-6{margin-left:50%}.offset-rg-7{margin-left:58.33333333%}.offset-rg-8{margin-left:66.66666667%}.offset-rg-9{margin-left:75%}.offset-rg-10{margin-left:83.33333333%}.offset-rg-11{margin-left:91.66666667%}.g-rg-0,.gx-rg-0{--bs-gutter-x:0}.g-rg-0,.gy-rg-0{--bs-gutter-y:0}.g-rg-1,.gx-rg-1{--bs-gutter-x:0.25rem}.g-rg-1,.gy-rg-1{--bs-gutter-y:0.25rem}.g-rg-2,.gx-rg-2{--bs-gutter-x:0.5rem}.g-rg-2,.gy-rg-2{--bs-gutter-y:0.5rem}.g-rg-3,.gx-rg-3{--bs-gutter-x:1rem}.g-rg-3,.gy-rg-3{--bs-gutter-y:1rem}.g-rg-4,.gx-rg-4{--bs-gutter-x:1.5rem}.g-rg-4,.gy-rg-4{--bs-gutter-y:1.5rem}.g-rg-5,.gx-rg-5{--bs-gutter-x:3rem}.g-rg-5,.gy-rg-5{--bs-gutter-y:3rem}}@media (min-width: 780px){.col-md{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-md-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-md-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-md-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-md-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-md-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-md-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width: 1024px){.col-lg{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-lg-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-lg-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-lg-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-lg-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-lg-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-lg-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width: 1280px){.col-xl{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xl-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-xl-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-xl-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-xl-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-xl-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-xl-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width: 1441px){.col-xxl{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xxl-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-xxl-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-xxl-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-xxl-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-xxl-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-xxl-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xxl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-xxl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-xxl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-xxl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-xxl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-xxl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-xxl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-xxl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-xxl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-xxl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-xxl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-xxl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.container,.container-fluid,.container-xs{--bs-gutter-x:30px;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * 0.5);padding-left:calc(var(--bs-gutter-x) * 0.5);margin-right:auto;margin-left:auto}.container{max-width:1440px}.vertical-gutters{margin-bottom:-30px}.vertical-gutters>.col,.vertical-gutters>[class*=col-]{padding-bottom:30px}.row.border-gutters{margin-right:-1px;margin-bottom:-1px;margin-left:0}.row.border-gutters>.col,.row.border-gutters>[class*=col-]{padding-right:1px;padding-bottom:1px;padding-left:0}.container{padding-right:12px;padding-left:12px}.container-reset{margin-right:-12px;margin-left:-12px}.container-reset-left{margin-left:-12px}.container-reset-right{margin-right:-12px}@media (max-width: 399.98px){.container-fluid-xs{padding-right:1rem;padding-left:1rem}}@media (min-width: 400px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 400px){.container-reset{margin-right:-16px;margin-left:-16px}}@media (min-width: 400px){.container-reset-left{margin-left:-16px}}@media (min-width: 400px){.container-reset-right{margin-right:-16px}}@media (min-width: 400px) and (max-width: 599.98px){.container-fluid-sm{padding-right:1rem;padding-left:1rem}}@media (min-width: 600px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 600px){.container-reset{margin-right:-32px;margin-left:-32px}}@media (min-width: 600px){.container-reset-left{margin-left:-32px}}@media (min-width: 600px){.container-reset-right{margin-right:-32px}}@media (min-width: 600px) and (max-width: 779.98px){.container-fluid-rg{padding-right:1rem;padding-left:1rem}}@media (min-width: 780px) and (max-width: 1023.98px){.container-fluid-md{padding-right:1rem;padding-left:1rem}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}@media (min-width: 1024px){.container-reset{margin-right:-40px;margin-left:-40px}}@media (min-width: 1024px){.container-reset-left{margin-left:-40px}}@media (min-width: 1024px){.container-reset-right{margin-right:-40px}}@media (min-width: 1024px) and (max-width: 1279.98px){.container-fluid-lg{padding-right:1rem;padding-left:1rem}}@media (min-width: 1280px){.container{padding-right:128px;padding-left:128px}}@media (min-width: 1280px){.container-reset{margin-right:-128px;margin-left:-128px}}@media (min-width: 1280px){.container-reset-left{margin-left:-128px}}@media (min-width: 1280px){.container-reset-right{margin-right:-128px}}@media (min-width: 1280px) and (max-width: 1440.98px){.container-fluid-xl{padding-right:1rem;padding-left:1rem}}@media (min-width: 1441px){.container-fluid-xxl{padding-right:1rem;padding-left:1rem}}.btn-default,.btn-secondary{border:2px solid rgba(var(--post-contrast-color-rgb), 0.2)}.btn-default:focus,.btn-secondary:focus,.btn-default:not(:disabled):hover,.btn-secondary:not(:disabled):hover,.pretend-hover.btn-default,.pretend-hover.btn-secondary{border-color:var(--post-contrast-color);color:var(--post-contrast-color)}:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-default,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-secondary{border-color:var(--post-contrast-color)}:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-default:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-secondary:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-default:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-secondary:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .pretend-hover.btn-default,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .pretend-hover.btn-secondary{border-color:rgba(var(--post-contrast-color-rgb), 0.4)}.btn-default:disabled,.btn-secondary:disabled{border-color:rgba(var(--post-contrast-color-rgb), 0.4);color:rgba(var(--post-contrast-color-rgb), 0.6)}.btn{min-height:3rem;padding:0 2rem;font-size:1rem;gap:1rem;outline:none;outline-offset:2px;display:-ms-inline-flexbox;display:inline-flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;overflow:hidden;-webkit-transition:opacity 250ms, border-color 250ms, background-color 250ms, color 250ms;transition:opacity 250ms, border-color 250ms, background-color 250ms, color 250ms;border-width:2px;border-style:solid;border-radius:3px;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;color:var(--post-contrast-color);font-family:inherit;font-weight:400;text-decoration:none !important;white-space:nowrap}.btn>.pi{width:1.25rem;height:1.25rem}.btn:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.btn-primary{border-color:transparent;background-color:rgba(var(--post-contrast-color-rgb), 0.8);color:var(--post-contrast-color-inverted)}.btn-primary:focus,.btn-primary:not(:disabled):hover,.btn-primary.pretend-hover{background-color:var(--post-contrast-color);color:var(--post-contrast-color-inverted)}:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary{background-color:var(--post-contrast-color)}:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary.pretend-hover{background-color:rgba(var(--post-contrast-color-rgb), 0.8)}:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary .pi{-webkit-filter:invert(0);filter:invert(0)}@media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black){.btn-primary{border-color:var(--post-contrast-color);background-color:ButtonFace}.btn-primary:not(:disabled,.disabled):hover,.btn-primary:not(:disabled,.disabled):focus-visible{border-color:highlight}.btn-primary .pi{-webkit-filter:invert(1) !important;filter:invert(1) !important}}.btn-primary:disabled{background-color:rgba(var(--post-contrast-color-rgb), 0.4)}.btn-primary .pi{-webkit-filter:invert(1);filter:invert(1);forced-color-adjust:none}:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-default .pi,:is(.bg-dark,.bg-primary,.bg-black,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-secondary .pi{-webkit-filter:invert(1);filter:invert(1)}.btn-link,.btn-tertiary{border:0;padding-right:0.375rem;padding-left:0.375rem}.btn-link:focus,.btn-link:not(:disabled):hover,.btn-link.pretend-hover,.btn-tertiary:focus,.btn-tertiary:not(:disabled):hover,.btn-tertiary.pretend-hover{color:rgba(var(--post-contrast-color-rgb), 0.8)}.btn-link:disabled,.btn-tertiary:disabled{color:rgba(var(--post-contrast-color-rgb), 0.6)}@media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black){.btn-link,.btn-tertiary{color:linktext;text-decoration:underline !important}}.btn-icon{min-width:3rem;padding-right:0.75rem;padding-left:0.75rem}.btn-icon.btn-sm{min-width:2rem;padding-right:0.375rem;padding-left:0.375rem}.btn-icon.btn-rg{min-width:2.5rem;padding-right:0.5625rem;padding-left:0.5625rem}.btn-icon.btn-lg{min-width:3.5rem;padding-right:0.875rem;padding-left:0.875rem}.btn-animated:not(.btn-link,.btn-tertiary)::after{content:"";position:absolute;right:1.25rem;width:0.625em;height:0.625em;-webkit-transform:rotateZ(315deg) translate(-2px, -2px);transform:rotateZ(315deg) translate(-2px, -2px);-webkit-transform-origin:center center;transform-origin:center center;-webkit-transition:opacity 250ms, -webkit-transform 250ms;transition:opacity 250ms, -webkit-transform 250ms;transition:opacity 250ms, transform 250ms;transition:opacity 250ms, transform 250ms, -webkit-transform 250ms;border-right:2px solid currentColor;border-bottom:2px solid currentColor;opacity:0}.btn-animated:not(.btn-link,.btn-tertiary).btn-sm::after{right:0.5rem}.btn-animated:not(.btn-link,.btn-tertiary).btn-rg::after{right:0.875rem}.btn-animated:not(.btn-link,.btn-tertiary).btn-lg::after{right:1.5rem}.btn-animated:not(.btn-link,.btn-tertiary)>span{-webkit-transition:-webkit-transform 250ms;transition:-webkit-transform 250ms;transition:transform 250ms;transition:transform 250ms, -webkit-transform 250ms}@media (prefers-reduced-motion: no-preference){.btn-animated:not(.btn-link,.btn-tertiary):focus>span,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover>span,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover>span{-webkit-transform:translateX(-0.75rem);transform:translateX(-0.75rem)}.btn-animated:not(.btn-link,.btn-tertiary):focus.btn-sm>span,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover.btn-sm>span,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover.btn-sm>span{-webkit-transform:translateX(-0.5rem);transform:translateX(-0.5rem)}.btn-animated:not(.btn-link,.btn-tertiary):focus.btn-rg>span,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover.btn-rg>span,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover.btn-rg>span{-webkit-transform:translateX(-0.625rem);transform:translateX(-0.625rem)}.btn-animated:not(.btn-link,.btn-tertiary):focus.btn-lg>span,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover.btn-lg>span,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover.btn-lg>span{-webkit-transform:translateX(-1rem);transform:translateX(-1rem)}.btn-animated:not(.btn-link,.btn-tertiary):focus::after,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover::after,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover::after{-webkit-transform:rotateZ(315deg) translate(0, 0);transform:rotateZ(315deg) translate(0, 0);opacity:1}.btn-animated:not(.btn-link,.btn-tertiary)>span{-webkit-transform:translateX(0);transform:translateX(0)}}.btn-sm{min-height:2rem;padding:0 1rem;font-size:0.8125rem;gap:0.5rem}.btn-sm>.pi{width:1rem;height:1rem}.btn-rg{min-height:2.5rem;padding:0 1.5rem;font-size:1rem;gap:0.75rem}.btn-rg>.pi{width:1.125rem;height:1.125rem}.btn-lg{min-height:3.5rem;padding:0 2.5rem;font-size:1.0625rem;gap:1.25rem}.btn-lg>.pi{width:1.5rem;height:1.5rem}.btn-nightblue{border-color:transparent;background-color:#004976;color:#fff}.btn-nightblue:focus,.btn-nightblue:not(:disabled):hover,.btn-nightblue.pretend-hover{background-color:#002943;color:#fff}.btn-nightblue-bright{border-color:transparent;background-color:#0076a8;color:#fff}.btn-nightblue-bright:focus,.btn-nightblue-bright:not(:disabled):hover,.btn-nightblue-bright.pretend-hover{background-color:#005275;color:#fff}.btn-petrol{border-color:transparent;background-color:#006d68;color:#fff}.btn-petrol:focus,.btn-petrol:not(:disabled):hover,.btn-petrol.pretend-hover{background-color:#003a37;color:#fff}.btn-petrol-bright{border-color:transparent;background-color:#00968f;color:#000}.btn-petrol-bright:focus,.btn-petrol-bright:not(:disabled):hover,.btn-petrol-bright.pretend-hover{background-color:#00635e;color:#fff}.btn-coral{border-color:transparent;background-color:#9e2a2f;color:#fff}.btn-coral:focus,.btn-coral:not(:disabled):hover,.btn-coral.pretend-hover{background-color:#761f23;color:#fff}.btn-coral-bright{border-color:transparent;background-color:#e03c31;color:#000}.btn-coral-bright:focus,.btn-coral-bright:not(:disabled):hover,.btn-coral-bright.pretend-hover{background-color:#c1271d;color:#fff}.btn-olive{border-color:transparent;background-color:#716135;color:#fff}.btn-olive:focus,.btn-olive:not(:disabled):hover,.btn-olive.pretend-hover{background-color:#4e4325;color:#fff}.btn-olive-bright{border-color:transparent;background-color:#aa9d2e;color:#000}.btn-olive-bright:focus,.btn-olive-bright:not(:disabled):hover,.btn-olive-bright.pretend-hover{background-color:#827823;color:#000}.btn-purple{border-color:transparent;background-color:#80276c;color:#fff}.btn-purple:focus,.btn-purple:not(:disabled):hover,.btn-purple.pretend-hover{background-color:#591b4b;color:#fff}.btn-purple-bright{border-color:transparent;background-color:#c5299b;color:#fff}.btn-purple-bright:focus,.btn-purple-bright:not(:disabled):hover,.btn-purple-bright.pretend-hover{background-color:#9b207a;color:#fff}.btn-aubergine{border-color:transparent;background-color:#523178;color:#fff}.btn-aubergine:focus,.btn-aubergine:not(:disabled):hover,.btn-aubergine.pretend-hover{background-color:#392254;color:#fff}.btn-aubergine-bright{border-color:transparent;background-color:#7566a0;color:#fff}.btn-aubergine-bright:focus,.btn-aubergine-bright:not(:disabled):hover,.btn-aubergine-bright.pretend-hover{background-color:#5e5182;color:#fff}.btn-success{border-color:transparent;background-color:#2c911c;color:#000}.btn-success:focus,.btn-success:not(:disabled):hover,.btn-success.pretend-hover{background-color:#1f6614;color:#fff}.btn-info{border-color:transparent;background-color:#cce4ee;color:#000}.btn-info:focus,.btn-info:not(:disabled):hover,.btn-info.pretend-hover{background-color:#a6d0e1;color:#000}.btn-warning{border-color:transparent;background-color:#f49e00;color:#000}.btn-warning:focus,.btn-warning:not(:disabled):hover,.btn-warning.pretend-hover{background-color:#c17d00;color:#000}.btn-danger{border-color:transparent;background-color:#a51728;color:#fff}.btn-danger:focus,.btn-danger:not(:disabled):hover,.btn-danger.pretend-hover{background-color:#78111d;color:#fff}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:700;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:400;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:300;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff") format("woff")}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", system-ui, sans-serif}button{font:inherit;padding:0}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:white}}.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}.btn-blank{background-color:transparent;border:none;border-radius:0;padding:0}.nav-link{text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.nav-link:hover,.nav-link:focus{color:black}.nav-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.nav-link>span{-ms-flex-negative:1;flex-shrink:1}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width: -0.02px){.hidden-xs{display:none}}@media (max-width: 399.98px){.hidden-sm{display:none}}@media (max-width: 599.98px){.hidden-rg{display:none}}@media (max-width: 779.98px){.hidden-md{display:none}}@media (max-width: 1023.98px){.hidden-lg{display:none}}@media (max-width: 1279.98px){.hidden-xl{display:none}}@media (max-width: 1440.98px){.hidden-xxl{display:none}}:host{display:block}h3{font-size:inherit;margin-top:0}.btn.btn-link{padding-left:0;padding-right:0}.btn.btn-link:hover{cursor:pointer}.post-internet-footer{font-size:1rem;font-weight:300;border-top:2px solid hsl(0, 0%, 90%)}.pre-footer{padding-top:2rem;padding-bottom:2rem;border-bottom:2px solid hsl(0, 0%, 90%)}.pre-footer .block-custom,.pre-footer .link-list{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:1rem 1.5rem}.pre-footer h3,.pre-footer .link-list li{margin:0}.footer-container{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:3.5rem 2rem;margin-top:3.5rem;margin-bottom:3.5rem}@media (max-width: 1023.98px){.footer-container{grid-template-columns:1fr 1fr}}@media (max-width: 599.98px){.footer-container{gap:1.5rem 2rem;margin-top:1.5rem;margin-bottom:1.5rem}}@media (max-width: 399.98px){.block-list{grid-column:1/3}}@media (max-width: 599.98px){.block-contact,.block-address{grid-column:1/3}}.block-socials{margin-top:3.5rem}@media (max-width: 599.98px){.block-socials{margin-top:1.5rem}}address{font-style:normal}.link-list li{margin:1rem 0}.link-list a{display:block;text-decoration:none;color:hsl(0, 0%, 40%);-webkit-transition:color 200ms;transition:color 200ms}.link-list a:hover{color:black}.content-row{padding:0.5rem 0}h3+.content-row{padding-top:0}.content-row:last-child{padding-bottom:0}.content-row+.content-row{border-top:1px solid hsl(0, 0%, 90%)}.content-row p,.content-row button{margin:0.25rem}.text{font-weight:700}.describe{font-size:0.8125rem;color:hsl(0, 0%, 40%);font-weight:400}.number{font-size:1.25rem}.socials{display:inline-grid;grid-auto-flow:row;grid-template-columns:repeat(4, 1fr);gap:1rem 1.5rem}.socials a{display:block;color:hsl(0, 0%, 40%);-webkit-transition:color 200ms;transition:color 200ms}.socials a:hover,.socials a:focus{color:black}.socials svg{display:block;width:1.5rem;height:1.5rem}.copyright{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:0.5rem 1.5rem;margin-top:2rem;margin-bottom:2rem;font-size:0.75rem}.footer-meta-links{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:0.5rem;font-weight:400}';const u=class{constructor(t){e(this,t);this.liveSupportEnabled=false;this.liveSupportEnabled=this.unbluEnabled();if(!this.liveSupportEnabled){let t;let e=0;const r=()=>{const r=this.unbluEnabled();if(r){this.liveSupportEnabled=true}if(r||e>=5){window.clearInterval(t)}e++};t=window.setInterval(r,1e3)}}unbluEnabled(){return typeof window["unbluLSLoad"]==="function"}render(){var e;if(!o){console.warn(`Internet Footer: Could not load config. Please make sure that you included the <swisspost-internet-header></swisspost-internet-header> component.`);return null}if(!o.localizedConfig){return null}if(!o.localizedConfig.footer){console.warn(`Internet Footer: Current project "${o.projectId}" does not include a footer config. The footer will not be rendered. Remove `,document.querySelector("swisspost-internet-footer"),`from your markup or configure the footer in your portal config to stop seeing this warning.`);return null}const n=o.localizedConfig.footer;const s=(e=o.localizedCustomConfig)===null||e===void 0?void 0:e.footer;return t(r,null,t(l,null),t("footer",{class:"post-internet-footer light font-curve-regular"},t("h2",{class:"visually-hidden"},n.title),(s===null||s===void 0?void 0:s.block)&&t(a,{block:s===null||s===void 0?void 0:s.block}),t("div",{class:"footer-container container"},n.block.filter((t=>t.columnType==="list")).map((e=>t(i,{key:e.title,block:e}))),n.block.filter((t=>t.columnType==="contact")).map((e=>t(d,{key:e.title,block:e,liveSupportEnabled:this.liveSupportEnabled}))),n.block.filter((t=>t.columnType==="address")).map((e=>t(g,{key:e.title,block:e})))),t("div",{class:"copyright container"},t("span",{class:"bold"},n.entry.text),t("ul",{class:"no-list footer-meta-links"},n.links?n.links.map((e=>t("li",{key:e.url},t("a",{class:"nav-link",href:e.url,target:e.target},e.text)))):null))))}};u.style=m;export{u as swisspost_internet_footer};
2
+ //# sourceMappingURL=p-69b7fbf4.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PostFooterBlockCustom","props","h","class","block","title","links","map","link","key","url","href","target","text","PostFooterBlockList","PostFooterBlockSocials","content","name","icon","PostFooterBlockAddress","filter","address","innerHTML","length","getContentHours","hours","replace","callUnblu","window","console","error","LiveSupport","id","type","onClick","PostFooterBlockContact","index","isLiveSupport","liveSupportEnabled","number","describe","postInternetFooterCss","PostInternetFooter","constructor","hostRef","this","unbluEnabled","intervalId","runs","checker","isEnabled","clearInterval","setInterval","render","state","warn","localizedConfig","footer","projectId","document","querySelector","footerConfig","customFooterConfig","_a","localizedCustomConfig","Host","SvgSprite","columnType","entry"],"sources":["./src/components/post-internet-footer/components/post-footer-block-custom.component.tsx","./src/components/post-internet-footer/components/post-footer-block-list.component.tsx","./src/components/post-internet-footer/components/post-footer-block-socials.component.tsx","./src/components/post-internet-footer/components/post-footer-block-address.component.tsx","./src/components/post-internet-footer/components/post-footer-block-contact.component.tsx","./src/components/post-internet-footer/post-internet-footer.scss?tag=swisspost-internet-footer&encapsulation=shadow","./src/components/post-internet-footer/post-internet-footer.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { CustomBlockEntity } from '../../../models/footer.model';\n\nexport const PostFooterBlockCustom = (props: { block: CustomBlockEntity }) => {\n return (\n <div class=\"pre-footer\">\n <div class=\"block-custom container\">\n <h3>{props.block.title}</h3>\n <ul class=\"no-list box link-list\">\n {props.block.links &&\n props.block.links.map(link => (\n <li key={link.url}>\n <a class=\"flyout-link\" href={link.url} target={link.target}>\n {link.text}\n </a>\n </li>\n ))}\n </ul>\n </div>\n </div>\n );\n};\n","import { h } from '@stencil/core';\nimport { CustomBlockEntity } from '../../../models/footer.model';\n\nexport const PostFooterBlockList = (props: { block: CustomBlockEntity; key: string }) => {\n return (\n <div class=\"block-list\">\n <h3>{props.block.title}</h3>\n <ul class=\"no-list box link-list\">\n {props.block.links &&\n props.block.links.map(link => (\n <li key={link.url}>\n <a class=\"flyout-link\" href={link.url} target={link.target}>\n {link.text}\n </a>\n </li>\n ))}\n </ul>\n </div>\n );\n};\n","import { h } from '@stencil/core';\nimport { ContentEntity } from '../../../models/footer.model';\n\nexport const PostFooterBlockSocials = (props: { content: ContentEntity; key: string }) => {\n return (\n <div class=\"block-socials\">\n <h3>{props.content.title}</h3>\n <ul class=\"no-list socials\">\n {props.content.links.map(link => (\n <li key={link.url}>\n <a href={link.url} target={link.target}>\n <span class=\"visually-hidden\">{link.name}</span>\n <svg aria-hidden=\"true\">\n <use href={`#${link.icon}`} />\n </svg>\n </a>\n </li>\n ))}\n </ul>\n </div>\n );\n};\n","import { h } from '@stencil/core';\nimport { BlockEntity } from '../../../models/footer.model';\nimport { PostFooterBlockSocials } from './post-footer-block-socials.component';\n\nexport const PostFooterBlockAddress = (props: { block: BlockEntity; key: string }) => {\n return (\n <div class=\"block-address\">\n <h3>{props.block.title}</h3>\n {props.block.content &&\n props.block.content\n .filter(content => content.address)\n .map(content => (\n <address class=\"vcard\" key={content.address}>\n <span class=\"adr\" innerHTML={content.address}></span>\n </address>\n ))}\n {props.block.content &&\n props.block.content\n .filter(content => content.links && content.links.length)\n .map(content => <PostFooterBlockSocials key={content.name} content={content} />)}\n </div>\n );\n};\n","import { h } from '@stencil/core';\nimport { BlockEntity } from '../../../models/footer.model';\n\nconst getContentHours = (hours: string) => hours.replace(/<[^>]*>?/gm, '');\n\nconst callUnblu = () => {\n if (typeof window['unbluLSLoad'] === 'function') {\n window['unbluLSLoad']();\n } else {\n console.error(\n 'swisspost-internet-footer: The function \"unbluLSLoad\" could not be called because it is not available in the global scope. Did you include the unblu live chat script on your page?',\n );\n }\n};\n\nconst LiveSupport = (props: { hours: string }) => (\n <button\n class=\"hours btn btn-link\"\n id=\"liveSupport\"\n type=\"button\"\n onClick={callUnblu}\n innerHTML={getContentHours(props.hours)}\n ></button>\n);\n\nexport const PostFooterBlockContact = (props: {\n block: BlockEntity;\n liveSupportEnabled: boolean;\n key: string;\n}) => {\n return (\n <div class=\"block-contact\">\n <h3>{props.block.title}</h3>\n {props.block.content &&\n props.block.content.map((content, index) => {\n const isLiveSupport =\n index === props.block.content!.length - 1 && content.text === 'Live Support';\n if (isLiveSupport && !props.liveSupportEnabled) {\n return null;\n }\n return (\n <div class=\"content-row\" key={content.name}>\n {content.number ? <p class=\"number\">{content.number}</p> : null}\n {content.text ? <p class=\"text\">{content.text}</p> : null}\n {content.hours && isLiveSupport && <LiveSupport hours={content.hours} />}\n {content.hours && !isLiveSupport && (\n // Some values arrive in the form of <p>8&emdash;12</p> and without replace and innerHTML, tags get rendered as text (project=\"klp\" language=\"en\" environment=\"int02\")\n <p class=\"hours\" innerHTML={getContentHours(content.hours)}></p>\n )}\n {content.describe ? <p class=\"describe\">{content.describe}</p> : null}\n </div>\n );\n })}\n </div>\n );\n};\n","@use \"@swisspost/design-system-styles/components/grid\";\n@use \"@swisspost/design-system-styles/variables/color\";\n@use \"@swisspost/design-system-styles/placeholders/text\";\n@use \"@swisspost/design-system-styles/functions\";\n@use \"@swisspost/design-system-styles/components/button\";\n@use \"../../utils/utils.scss\";\n@use \"../../utils/mixins.scss\";\n\n:host {\n display: block;\n}\n\nh3 {\n font-size: inherit;\n margin-top: 0;\n}\n\n.btn.btn-link {\n padding-left: 0;\n padding-right: 0;\n\n &:hover {\n cursor: pointer;\n }\n}\n\n.post-internet-footer {\n font-size: 1rem;\n font-weight: 300;\n border-top: 2px solid color.$gray-10;\n}\n\n.pre-footer {\n padding-top: 2rem;\n padding-bottom: 2rem;\n border-bottom: 2px solid color.$gray-10;\n\n .block-custom,\n .link-list {\n display: flex;\n flex-wrap: wrap;\n gap: 1rem 1.5rem;\n }\n\n h3,\n .link-list li {\n margin: 0;\n }\n}\n\n.footer-container {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr 1fr;\n gap: 3.5rem 2rem;\n margin-top: 3.5rem;\n margin-bottom: 3.5rem;\n\n @include mixins.max(lg) {\n grid-template-columns: 1fr 1fr;\n }\n\n @include mixins.max(rg) {\n gap: 1.5rem 2rem;\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n }\n}\n\n.block-list {\n @include mixins.max(sm) {\n grid-column: 1 / 3;\n }\n}\n\n.block-contact,\n.block-address {\n @include mixins.max(rg) {\n grid-column: 1 / 3;\n }\n}\n\n.block-socials {\n margin-top: 3.5rem;\n\n @include mixins.max(rg) {\n margin-top: 1.5rem;\n }\n}\n\naddress {\n font-style: normal;\n}\n\n.link-list {\n li {\n margin: 1rem 0;\n }\n a {\n display: block;\n text-decoration: none;\n color: color.$gray-60;\n transition: color 200ms;\n\n &:hover {\n color: black;\n }\n }\n}\n\n.content-row {\n padding: 0.5rem 0;\n\n h3 + & {\n padding-top: 0;\n }\n\n &:last-child {\n padding-bottom: 0;\n }\n\n & + & {\n border-top: 1px solid color.$gray-10;\n }\n\n p,\n button {\n margin: 0.25rem;\n }\n}\n\n.text {\n font-weight: 700;\n}\n\n.describe {\n font-size: 0.8125rem;\n color: color.$gray-60;\n font-weight: 400;\n}\n\n.number {\n font-size: 1.25rem;\n}\n\n.socials {\n display: inline-grid;\n grid-auto-flow: row;\n grid-template-columns: repeat(4, 1fr);\n gap: 1rem 1.5rem;\n\n a {\n display: block;\n color: color.$gray-60;\n transition: color 200ms;\n\n &:hover,\n &:focus {\n color: black;\n }\n }\n\n svg {\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n }\n}\n\n.copyright {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem 1.5rem;\n margin-top: 2rem;\n margin-bottom: 2rem;\n font-size: functions.px-to-rem(12px);\n}\n\n.footer-meta-links {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n font-weight: 400;\n}\n","import { Component, Host, h, State } from '@stencil/core';\nimport { state } from '../../data/store';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { PostFooterBlockCustom } from './components/post-footer-block-custom.component';\nimport { PostFooterBlockList } from './components/post-footer-block-list.component';\nimport { PostFooterBlockAddress } from './components/post-footer-block-address.component';\nimport { PostFooterBlockContact } from './components/post-footer-block-contact.component';\n\n@Component({\n tag: 'swisspost-internet-footer',\n styleUrl: 'post-internet-footer.scss',\n shadow: true,\n})\nexport class PostInternetFooter {\n @State() liveSupportEnabled = false;\n\n constructor() {\n this.liveSupportEnabled = this.unbluEnabled();\n\n /**\n * If the unblu script is not available, wait 5 seconds for it to load.\n * If it's still not there after 5 seconds, abandon efforts and don't\n * show the live support button.\n */\n if (!this.liveSupportEnabled) {\n let intervalId: number;\n let runs = 0;\n\n const checker = () => {\n const isEnabled = this.unbluEnabled();\n if (isEnabled) {\n this.liveSupportEnabled = true;\n }\n if (isEnabled || runs >= 5) {\n window.clearInterval(intervalId);\n }\n runs++;\n };\n\n intervalId = window.setInterval(checker, 1000);\n }\n }\n\n /**\n * Check if the unblu live support script is loaded\n * @returns Boolean\n */\n private unbluEnabled(): boolean {\n return typeof window['unbluLSLoad'] === 'function';\n }\n\n render() {\n // There is something wrong entirely\n if (!state) {\n console.warn(\n `Internet Footer: Could not load config. Please make sure that you included the <swisspost-internet-header></swisspost-internet-header> component.`,\n );\n return null;\n }\n\n // Config has not loaded yet\n if (!state.localizedConfig) {\n return null;\n }\n\n // There's no footer config\n if (!state.localizedConfig.footer) {\n console.warn(\n `Internet Footer: Current project \"${state.projectId}\" does not include a footer config. The footer will not be rendered. Remove `,\n document.querySelector('swisspost-internet-footer'),\n `from your markup or configure the footer in your portal config to stop seeing this warning.`,\n );\n return null;\n }\n\n const footerConfig = state.localizedConfig.footer;\n const customFooterConfig = state.localizedCustomConfig?.footer;\n\n return (\n <Host>\n <SvgSprite />\n <footer class=\"post-internet-footer light font-curve-regular\">\n <h2 class=\"visually-hidden\">{footerConfig.title}</h2>\n {customFooterConfig?.block && <PostFooterBlockCustom block={customFooterConfig?.block} />}\n <div class=\"footer-container container\">\n {footerConfig.block\n .filter(block => block.columnType === 'list')\n .map(block => (\n <PostFooterBlockList key={block.title} block={block} />\n ))}\n {footerConfig.block\n .filter(block => block.columnType === 'contact')\n .map(block => (\n <PostFooterBlockContact\n key={block.title}\n block={block}\n liveSupportEnabled={this.liveSupportEnabled}\n />\n ))}\n {footerConfig.block\n .filter(block => block.columnType === 'address')\n .map(block => (\n <PostFooterBlockAddress key={block.title} block={block} />\n ))}\n </div>\n <div class=\"copyright container\">\n <span class=\"bold\">{footerConfig.entry.text}</span>\n <ul class=\"no-list footer-meta-links\">\n {footerConfig.links\n ? footerConfig.links.map(link => (\n <li key={link.url}>\n <a class=\"nav-link\" href={link.url} target={link.target}>\n {link.text}\n </a>\n </li>\n ))\n : null}\n </ul>\n </div>\n </footer>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["PostFooterBlockCustom","props","h","class","block","title","links","map","link","key","url","href","target","text","PostFooterBlockList","PostFooterBlockSocials","content","name","icon","PostFooterBlockAddress","filter","address","innerHTML","length","getContentHours","hours","replace","callUnblu","window","console","error","LiveSupport","id","type","onClick","PostFooterBlockContact","index","isLiveSupport","liveSupportEnabled","number","describe","postInternetFooterCss","PostInternetFooter","constructor","hostRef","this","unbluEnabled","intervalId","runs","checker","isEnabled","clearInterval","setInterval","render","state","warn","localizedConfig","footer","projectId","document","querySelector","footerConfig","customFooterConfig","_a","localizedCustomConfig","Host","SvgSprite","columnType","entry"],"sources":["./src/components/post-internet-footer/components/post-footer-block-custom.component.tsx","./src/components/post-internet-footer/components/post-footer-block-list.component.tsx","./src/components/post-internet-footer/components/post-footer-block-socials.component.tsx","./src/components/post-internet-footer/components/post-footer-block-address.component.tsx","./src/components/post-internet-footer/components/post-footer-block-contact.component.tsx","./src/components/post-internet-footer/post-internet-footer.scss?tag=swisspost-internet-footer&encapsulation=shadow","./src/components/post-internet-footer/post-internet-footer.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { CustomBlockEntity } from '../../../models/footer.model';\n\nexport const PostFooterBlockCustom = (props: { block: CustomBlockEntity }) => {\n return (\n <div class=\"pre-footer\">\n <div class=\"block-custom container\">\n <h3>{props.block.title}</h3>\n <ul class=\"no-list box link-list\">\n {props.block.links &&\n props.block.links.map(link => (\n <li key={link.url}>\n <a class=\"flyout-link\" href={link.url} target={link.target}>\n {link.text}\n </a>\n </li>\n ))}\n </ul>\n </div>\n </div>\n );\n};\n","import { h } from '@stencil/core';\nimport { CustomBlockEntity } from '../../../models/footer.model';\n\nexport const PostFooterBlockList = (props: { block: CustomBlockEntity; key: string }) => {\n return (\n <div class=\"block-list\">\n <h3>{props.block.title}</h3>\n <ul class=\"no-list box link-list\">\n {props.block.links &&\n props.block.links.map(link => (\n <li key={link.url}>\n <a class=\"flyout-link\" href={link.url} target={link.target}>\n {link.text}\n </a>\n </li>\n ))}\n </ul>\n </div>\n );\n};\n","import { h } from '@stencil/core';\nimport { ContentEntity } from '../../../models/footer.model';\n\nexport const PostFooterBlockSocials = (props: { content: ContentEntity; key: string }) => {\n return (\n <div class=\"block-socials\">\n <h3>{props.content.title}</h3>\n <ul class=\"no-list socials\">\n {props.content.links.map(link => (\n <li key={link.url}>\n <a href={link.url} target={link.target}>\n <span class=\"visually-hidden\">{link.name}</span>\n <svg aria-hidden=\"true\">\n <use href={`#${link.icon}`} />\n </svg>\n </a>\n </li>\n ))}\n </ul>\n </div>\n );\n};\n","import { h } from '@stencil/core';\nimport { BlockEntity } from '../../../models/footer.model';\nimport { PostFooterBlockSocials } from './post-footer-block-socials.component';\n\nexport const PostFooterBlockAddress = (props: { block: BlockEntity; key: string }) => {\n return (\n <div class=\"block-address\">\n <h3>{props.block.title}</h3>\n {props.block.content &&\n props.block.content\n .filter(content => content.address)\n .map(content => (\n <address class=\"vcard\" key={content.address}>\n <span class=\"adr\" innerHTML={content.address}></span>\n </address>\n ))}\n {props.block.content &&\n props.block.content\n .filter(content => content.links && content.links.length)\n .map(content => <PostFooterBlockSocials key={content.name} content={content} />)}\n </div>\n );\n};\n","import { h } from '@stencil/core';\nimport { BlockEntity } from '../../../models/footer.model';\n\nconst getContentHours = (hours: string) => hours.replace(/<[^>]*>?/gm, '');\n\nconst callUnblu = () => {\n if (typeof window['unbluLSLoad'] === 'function') {\n window['unbluLSLoad']();\n } else {\n console.error(\n 'swisspost-internet-footer: The function \"unbluLSLoad\" could not be called because it is not available in the global scope. Did you include the unblu live chat script on your page?',\n );\n }\n};\n\nconst LiveSupport = (props: { hours: string }) => (\n <button\n class=\"hours btn btn-link\"\n id=\"liveSupport\"\n type=\"button\"\n onClick={callUnblu}\n innerHTML={getContentHours(props.hours)}\n ></button>\n);\n\nexport const PostFooterBlockContact = (props: {\n block: BlockEntity;\n liveSupportEnabled: boolean;\n key: string;\n}) => {\n return (\n <div class=\"block-contact\">\n <h3>{props.block.title}</h3>\n {props.block.content &&\n props.block.content.map((content, index) => {\n const isLiveSupport =\n index === props.block.content!.length - 1 && content.text === 'Live Support';\n if (isLiveSupport && !props.liveSupportEnabled) {\n return null;\n }\n return (\n <div class=\"content-row\" key={content.name}>\n {content.number ? <p class=\"number\">{content.number}</p> : null}\n {content.text ? <p class=\"text\">{content.text}</p> : null}\n {content.hours && isLiveSupport && <LiveSupport hours={content.hours} />}\n {content.hours && !isLiveSupport && (\n // Some values arrive in the form of <p>8&emdash;12</p> and without replace and innerHTML, tags get rendered as text (project=\"klp\" language=\"en\" environment=\"int02\")\n <p class=\"hours\" innerHTML={getContentHours(content.hours)}></p>\n )}\n {content.describe ? <p class=\"describe\">{content.describe}</p> : null}\n </div>\n );\n })}\n </div>\n );\n};\n","@use \"@swisspost/design-system-styles/components/grid\";\n@use \"@swisspost/design-system-styles/variables/color\";\n@use \"@swisspost/design-system-styles/placeholders/text\";\n@use \"@swisspost/design-system-styles/functions\";\n@use \"@swisspost/design-system-styles/components/button\";\n@use \"../../utils/utils.scss\";\n@use \"../../utils/mixins.scss\";\n\n:host {\n display: block;\n}\n\nh3 {\n font-size: inherit;\n margin-top: 0;\n}\n\n.btn.btn-link {\n padding-left: 0;\n padding-right: 0;\n\n &:hover {\n cursor: pointer;\n }\n}\n\n.post-internet-footer {\n font-size: 1rem;\n font-weight: 300;\n border-top: 2px solid color.$gray-10;\n}\n\n.pre-footer {\n padding-top: 2rem;\n padding-bottom: 2rem;\n border-bottom: 2px solid color.$gray-10;\n\n .block-custom,\n .link-list {\n display: flex;\n flex-wrap: wrap;\n gap: 1rem 1.5rem;\n }\n\n h3,\n .link-list li {\n margin: 0;\n }\n}\n\n.footer-container {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr 1fr;\n gap: 3.5rem 2rem;\n margin-top: 3.5rem;\n margin-bottom: 3.5rem;\n\n @include mixins.max(lg) {\n grid-template-columns: 1fr 1fr;\n }\n\n @include mixins.max(rg) {\n gap: 1.5rem 2rem;\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n }\n}\n\n.block-list {\n @include mixins.max(sm) {\n grid-column: 1 / 3;\n }\n}\n\n.block-contact,\n.block-address {\n @include mixins.max(rg) {\n grid-column: 1 / 3;\n }\n}\n\n.block-socials {\n margin-top: 3.5rem;\n\n @include mixins.max(rg) {\n margin-top: 1.5rem;\n }\n}\n\naddress {\n font-style: normal;\n}\n\n.link-list {\n li {\n margin: 1rem 0;\n }\n a {\n display: block;\n text-decoration: none;\n color: color.$gray-60;\n transition: color 200ms;\n\n &:hover {\n color: black;\n }\n }\n}\n\n.content-row {\n padding: 0.5rem 0;\n\n h3 + & {\n padding-top: 0;\n }\n\n &:last-child {\n padding-bottom: 0;\n }\n\n & + & {\n border-top: 1px solid color.$gray-10;\n }\n\n p,\n button {\n margin: 0.25rem;\n }\n}\n\n.text {\n font-weight: 700;\n}\n\n.describe {\n font-size: 0.8125rem;\n color: color.$gray-60;\n font-weight: 400;\n}\n\n.number {\n font-size: 1.25rem;\n}\n\n.socials {\n display: inline-grid;\n grid-auto-flow: row;\n grid-template-columns: repeat(4, 1fr);\n gap: 1rem 1.5rem;\n\n a {\n display: block;\n color: color.$gray-60;\n transition: color 200ms;\n\n &:hover,\n &:focus {\n color: black;\n }\n }\n\n svg {\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n }\n}\n\n.copyright {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem 1.5rem;\n margin-top: 2rem;\n margin-bottom: 2rem;\n font-size: functions.px-to-rem(12px);\n}\n\n.footer-meta-links {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n font-weight: 400;\n}\n","import { Component, Host, h, State } from '@stencil/core';\nimport { state } from '../../data/store';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { PostFooterBlockCustom } from './components/post-footer-block-custom.component';\nimport { PostFooterBlockList } from './components/post-footer-block-list.component';\nimport { PostFooterBlockAddress } from './components/post-footer-block-address.component';\nimport { PostFooterBlockContact } from './components/post-footer-block-contact.component';\n\n@Component({\n tag: 'swisspost-internet-footer',\n styleUrl: 'post-internet-footer.scss',\n shadow: true,\n})\nexport class PostInternetFooter {\n @State() liveSupportEnabled = false;\n\n constructor() {\n this.liveSupportEnabled = this.unbluEnabled();\n\n /**\n * If the unblu script is not available, wait 5 seconds for it to load.\n * If it's still not there after 5 seconds, abandon efforts and don't\n * show the live support button.\n */\n if (!this.liveSupportEnabled) {\n let intervalId: number;\n let runs = 0;\n\n const checker = () => {\n const isEnabled = this.unbluEnabled();\n if (isEnabled) {\n this.liveSupportEnabled = true;\n }\n if (isEnabled || runs >= 5) {\n window.clearInterval(intervalId);\n }\n runs++;\n };\n\n intervalId = window.setInterval(checker, 1000);\n }\n }\n\n /**\n * Check if the unblu live support script is loaded\n * @returns Boolean\n */\n private unbluEnabled(): boolean {\n return typeof window['unbluLSLoad'] === 'function';\n }\n\n render() {\n // There is something wrong entirely\n if (!state) {\n console.warn(\n `Internet Footer: Could not load config. Please make sure that you included the <swisspost-internet-header></swisspost-internet-header> component.`,\n );\n return null;\n }\n\n // Config has not loaded yet\n if (!state.localizedConfig) {\n return null;\n }\n\n // There's no footer config\n if (!state.localizedConfig.footer) {\n console.warn(\n `Internet Footer: Current project \"${state.projectId}\" does not include a footer config. The footer will not be rendered. Remove `,\n document.querySelector('swisspost-internet-footer'),\n `from your markup or configure the footer in your portal config to stop seeing this warning.`,\n );\n return null;\n }\n\n const footerConfig = state.localizedConfig.footer;\n const customFooterConfig = state.localizedCustomConfig?.footer;\n\n return (\n <Host>\n <SvgSprite />\n <footer class=\"post-internet-footer light font-curve-regular\">\n <h2 class=\"visually-hidden\">{footerConfig.title}</h2>\n {customFooterConfig?.block && <PostFooterBlockCustom block={customFooterConfig?.block} />}\n <div class=\"footer-container container\">\n {footerConfig.block\n .filter(block => block.columnType === 'list')\n .map(block => (\n <PostFooterBlockList key={block.title} block={block} />\n ))}\n {footerConfig.block\n .filter(block => block.columnType === 'contact')\n .map(block => (\n <PostFooterBlockContact\n key={block.title}\n block={block}\n liveSupportEnabled={this.liveSupportEnabled}\n />\n ))}\n {footerConfig.block\n .filter(block => block.columnType === 'address')\n .map(block => (\n <PostFooterBlockAddress key={block.title} block={block} />\n ))}\n </div>\n <div class=\"copyright container\">\n <span class=\"bold\">{footerConfig.entry.text}</span>\n <ul class=\"no-list footer-meta-links\">\n {footerConfig.links\n ? footerConfig.links.map(link => (\n <li key={link.url}>\n <a class=\"nav-link\" href={link.url} target={link.target}>\n {link.text}\n </a>\n </li>\n ))\n : null}\n </ul>\n </div>\n </footer>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{h as t,r as e,c as n,H as o,g as i}from"./p-12c07c17.js";import{S as a}from"./p-6423a6ea.js";import{S as r}from"./p-9bc33c5f.js";import{s}from"./p-0e63e0aa.js";import{e as d,u as l}from"./p-45db66a6.js";import{t as g}from"./p-d93a7553.js";const p=e=>t("nav",{class:"language-switch-dropdown",ref:t=>e.dropdownRef(t)},t("h3",{class:"visually-hidden"},g("Change language")),t("ul",null,e.navLang.filter((t=>!t.isCurrent)).map((n=>{const o=n.url===null?"button":"a";return t("li",{key:n.lang},t(o,{onClick:()=>e.switchLanguage(n),href:n.url,lang:n.lang,title:n.title},t("span",{class:"visually-hidden"},n.title),t("span",{"aria-hidden":"true"},n.text)))}))));const f='@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:700;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:400;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:300;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff") format("woff")}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", system-ui, sans-serif}button{font:inherit;padding:0}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:white}}.language-switch-dropdown ul,.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}.btn-blank{background-color:transparent;border:none;border-radius:0;padding:0}.language-switch-dropdown a,.language-switch-dropdown button,.nav-link{text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.language-switch-dropdown a:hover,.language-switch-dropdown button:hover,.nav-link:hover,.language-switch-dropdown a:focus,.language-switch-dropdown button:focus,.nav-link:focus{color:black}.language-switch-dropdown a>svg,.language-switch-dropdown button>svg,.nav-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.language-switch-dropdown a>span,.language-switch-dropdown button>span,.nav-link>span{-ms-flex-negative:1;flex-shrink:1}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width: -0.02px){.hidden-xs{display:none}}@media (max-width: 399.98px){.hidden-sm{display:none}}@media (max-width: 599.98px){.hidden-rg{display:none}}@media (max-width: 779.98px){.hidden-md{display:none}}@media (max-width: 1023.98px){.hidden-lg{display:none}}@media (max-width: 1279.98px){.hidden-xl{display:none}}@media (max-width: 1440.98px){.hidden-xxl{display:none}}:host{--separator-display:none;--separator-height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;align-self:stretch}:host::before{display:var(--separator-display);height:var(--separator-height);border-left:1px solid hsl(0, 0%, 90%);content:""}.lang-btn{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:100%;padding:0 1rem;border:none;-webkit-box-shadow:none;box-shadow:none;background:none;text-transform:uppercase;cursor:pointer;color:rgba(0, 0, 0, 0.8)}.lang-btn:hover,.lang-btn:focus{color:black}.lang-btn svg{width:1.5em;height:1.5em;-webkit-transition:-webkit-transform 250ms;transition:-webkit-transform 250ms;transition:transform 250ms;transition:transform 250ms, -webkit-transform 250ms}.lang-btn svg.rotated{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.language-switch{position:relative;-ms-flex-item-align:stretch;align-self:stretch;height:100%}.language-switch.list{margin-top:1.5rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.current-language{text-transform:uppercase;border-right:1px solid hsl(0, 0%, 80%);padding:0.5rem 1rem 0.5rem 0}.dropdown .language-switch-dropdown{position:absolute;top:100%;width:100%;background:white;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2), 0 2px 6px 2px rgba(0, 0, 0, 0.1);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2), 0 2px 6px 2px rgba(0, 0, 0, 0.1);z-index:1;-webkit-transform:scale(0.1);transform:scale(0.1);-webkit-transform-origin:center top;transform-origin:center top;-webkit-transition:-webkit-transform 0.1s;transition:-webkit-transform 0.1s;transition:transform 0.1s;transition:transform 0.1s, -webkit-transform 0.1s;margin-top:var(--language-dropdown-margin-top)}@media (prefers-reduced-motion: reduce){.dropdown .language-switch-dropdown{-webkit-transition:none;transition:none}}.dropdown .language-switch-dropdown.open{-webkit-transform:scale(1);transform:scale(1)}.list .language-switch-dropdown ul{display:-ms-flexbox;display:flex}.list .language-switch-dropdown ul>li+li{border-left:1px solid hsl(0, 0%, 80%)}.language-switch-dropdown a,.language-switch-dropdown button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:3rem;padding:0 0.25rem;text-transform:uppercase;cursor:pointer;-webkit-transition:background-color 200ms, color 200ms;transition:background-color 200ms, color 200ms}.language-switch-dropdown a:hover,.language-switch-dropdown a:focus,.language-switch-dropdown button:hover,.language-switch-dropdown button:focus{background:#f4f3f1}.language-switch-dropdown a span,.language-switch-dropdown button span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.list .language-switch-dropdown a,.list .language-switch-dropdown button{color:black;height:auto;padding:0.5rem 1rem}';const h=class{constructor(t){e(this,t);this.dropdownToggled=n(this,"dropdownToggled",7);this.languageChanged=n(this,"languageChanged",7);this.mode=undefined;this.langSwitchOpen=false}componentWillUpdate(){if(this.languageSwitchDropdown&&!this.langSwitchOpen&&this.mode=="dropdown"){this.languageSwitchDropdown.classList.remove("open");if(d(this.languageSwitchDropdown,"transform")&&!l()){return new Promise((t=>{var e;(e=this.languageSwitchDropdown)===null||e===void 0?void 0:e.addEventListener("transitionend",(e=>{if(e.propertyName==="transform"){t(true)}}))}))}}}componentDidUpdate(){if(this.languageSwitchDropdown&&this.langSwitchOpen){this.languageSwitchDropdown.getBoundingClientRect();this.languageSwitchDropdown.classList.add("open")}}async toggleDropdown(t){this.langSwitchOpen=t!==null&&t!==void 0?t:!this.langSwitchOpen;this.dropdownToggled.emit({open:this.langSwitchOpen,element:this.host});return this.langSwitchOpen}switchLanguage(t){this.languageChanged.emit(t.lang);this.toggleDropdown(false)}getMergedLanguageConfig(t,e){if(e===undefined){return t}return t.map((t=>Object.assign({},t,e.find((e=>e.lang===t.lang)))))}setDropdownRef(t){this.languageSwitchDropdown=t}render(){var e;if(((e=s.localizedConfig)===null||e===void 0?void 0:e.header)===undefined)return;const n=s.localizedConfig.header;const i=this.getMergedLanguageConfig(n.navLang,s.languageSwitchOverrides);return t(o,null,t("div",{class:`language-switch ${this.mode}`},t(a,null),this.mode==="dropdown"?t("button",{class:"lang-btn","aria-expanded":`${this.langSwitchOpen}`,"aria-haspopup":"listbox",onClick:()=>this.toggleDropdown()},t("span",{class:"visually-hidden"},n.translations.navLangAriaLabel),t("span",{"aria-hidden":"true"},s.currentLanguage),t(r,{name:"pi-arrow-down",classNames:this.langSwitchOpen?"rotated":""})):t("span",{class:"bold current-language"},t("span",{class:"visually-hidden"},g("Current language is English")),t("span",null,s.currentLanguage)),this.langSwitchOpen||this.mode==="list"?t(p,{navLang:i,switchLanguage:t=>this.switchLanguage(t),dropdownRef:t=>t!==undefined&&this.setDropdownRef(t)}):null))}get host(){return i(this)}};h.style=f;export{h as post_language_switch};
2
- //# sourceMappingURL=p-bc79a64a.entry.js.map
1
+ import{h as t,r as e,c as n,H as o,g as i}from"./p-ebd5ee13.js";import{S as a}from"./p-bf8fc7fa.js";import{S as r}from"./p-e8d72284.js";import{s}from"./p-d8a834ef.js";import{e as d,u as l}from"./p-45db66a6.js";import{t as g}from"./p-9e389f57.js";const p=e=>t("nav",{class:"language-switch-dropdown",ref:t=>e.dropdownRef(t)},t("h3",{class:"visually-hidden"},g("Change language")),t("ul",null,e.navLang.filter((t=>!t.isCurrent)).map((n=>{const o=n.url===null?"button":"a";return t("li",{key:n.lang},t(o,{onClick:()=>e.switchLanguage(n),href:n.url,lang:n.lang,title:n.title},t("span",{class:"visually-hidden"},n.title),t("span",{"aria-hidden":"true"},n.text)))}))));const f='@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:700;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:400;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff") format("woff")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:300;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff2") format("woff2"), url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff") format("woff")}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:"Frutiger Neue For Post", system-ui, sans-serif}button{font:inherit;padding:0}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:white}}.language-switch-dropdown ul,.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}.btn-blank{background-color:transparent;border:none;border-radius:0;padding:0}.language-switch-dropdown a,.language-switch-dropdown button,.nav-link{text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.language-switch-dropdown a:hover,.language-switch-dropdown button:hover,.nav-link:hover,.language-switch-dropdown a:focus,.language-switch-dropdown button:focus,.nav-link:focus{color:black}.language-switch-dropdown a>svg,.language-switch-dropdown button>svg,.nav-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.language-switch-dropdown a>span,.language-switch-dropdown button>span,.nav-link>span{-ms-flex-negative:1;flex-shrink:1}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width: -0.02px){.hidden-xs{display:none}}@media (max-width: 399.98px){.hidden-sm{display:none}}@media (max-width: 599.98px){.hidden-rg{display:none}}@media (max-width: 779.98px){.hidden-md{display:none}}@media (max-width: 1023.98px){.hidden-lg{display:none}}@media (max-width: 1279.98px){.hidden-xl{display:none}}@media (max-width: 1440.98px){.hidden-xxl{display:none}}:host{--separator-display:none;--separator-height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;align-self:stretch}:host::before{display:var(--separator-display);height:var(--separator-height);border-left:1px solid hsl(0, 0%, 90%);content:""}.lang-btn{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:100%;padding:0 1rem;border:none;-webkit-box-shadow:none;box-shadow:none;background:none;text-transform:uppercase;cursor:pointer;color:rgba(0, 0, 0, 0.8)}.lang-btn:hover,.lang-btn:focus{color:black}.lang-btn svg{width:1.5em;height:1.5em;-webkit-transition:-webkit-transform 250ms;transition:-webkit-transform 250ms;transition:transform 250ms;transition:transform 250ms, -webkit-transform 250ms}.lang-btn svg.rotated{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.language-switch{position:relative;-ms-flex-item-align:stretch;align-self:stretch;height:100%}.language-switch.list{margin-top:1.5rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.current-language{text-transform:uppercase;border-right:1px solid hsl(0, 0%, 80%);padding:0.5rem 1rem 0.5rem 0}.dropdown .language-switch-dropdown{position:absolute;top:100%;width:100%;background:white;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2), 0 2px 6px 2px rgba(0, 0, 0, 0.1);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2), 0 2px 6px 2px rgba(0, 0, 0, 0.1);z-index:1;-webkit-transform:scale(0.1);transform:scale(0.1);-webkit-transform-origin:center top;transform-origin:center top;-webkit-transition:-webkit-transform 0.1s;transition:-webkit-transform 0.1s;transition:transform 0.1s;transition:transform 0.1s, -webkit-transform 0.1s;margin-top:var(--language-dropdown-margin-top)}@media (prefers-reduced-motion: reduce){.dropdown .language-switch-dropdown{-webkit-transition:none;transition:none}}.dropdown .language-switch-dropdown.open{-webkit-transform:scale(1);transform:scale(1)}.list .language-switch-dropdown ul{display:-ms-flexbox;display:flex}.list .language-switch-dropdown ul>li+li{border-left:1px solid hsl(0, 0%, 80%)}.language-switch-dropdown a,.language-switch-dropdown button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:3rem;padding:0 0.25rem;text-transform:uppercase;cursor:pointer;-webkit-transition:background-color 200ms, color 200ms;transition:background-color 200ms, color 200ms}.language-switch-dropdown a:hover,.language-switch-dropdown a:focus,.language-switch-dropdown button:hover,.language-switch-dropdown button:focus{background:#f4f3f1}.language-switch-dropdown a span,.language-switch-dropdown button span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.list .language-switch-dropdown a,.list .language-switch-dropdown button{color:black;height:auto;padding:0.5rem 1rem}';const h=class{constructor(t){e(this,t);this.dropdownToggled=n(this,"dropdownToggled",7);this.languageChanged=n(this,"languageChanged",7);this.mode=undefined;this.langSwitchOpen=false}componentWillUpdate(){if(this.languageSwitchDropdown&&!this.langSwitchOpen&&this.mode=="dropdown"){this.languageSwitchDropdown.classList.remove("open");if(d(this.languageSwitchDropdown,"transform")&&!l()){return new Promise((t=>{var e;(e=this.languageSwitchDropdown)===null||e===void 0?void 0:e.addEventListener("transitionend",(e=>{if(e.propertyName==="transform"){t(true)}}))}))}}}componentDidUpdate(){if(this.languageSwitchDropdown&&this.langSwitchOpen){this.languageSwitchDropdown.getBoundingClientRect();this.languageSwitchDropdown.classList.add("open")}}async toggleDropdown(t){this.langSwitchOpen=t!==null&&t!==void 0?t:!this.langSwitchOpen;this.dropdownToggled.emit({open:this.langSwitchOpen,element:this.host});return this.langSwitchOpen}switchLanguage(t){this.languageChanged.emit(t.lang);this.toggleDropdown(false)}getMergedLanguageConfig(t,e){if(e===undefined){return t}return t.map((t=>Object.assign({},t,e.find((e=>e.lang===t.lang)))))}setDropdownRef(t){this.languageSwitchDropdown=t}render(){var e;if(((e=s.localizedConfig)===null||e===void 0?void 0:e.header)===undefined)return;const n=s.localizedConfig.header;const i=this.getMergedLanguageConfig(n.navLang,s.languageSwitchOverrides);return t(o,null,t("div",{class:`language-switch ${this.mode}`},t(a,null),this.mode==="dropdown"?t("button",{class:"lang-btn","aria-expanded":`${this.langSwitchOpen}`,"aria-haspopup":"listbox",onClick:()=>this.toggleDropdown()},t("span",{class:"visually-hidden"},n.translations.navLangAriaLabel),t("span",{"aria-hidden":"true"},s.currentLanguage),t(r,{name:"pi-arrow-down",classNames:this.langSwitchOpen?"rotated":""})):t("span",{class:"bold current-language"},t("span",{class:"visually-hidden"},g("Current language is English")),t("span",null,s.currentLanguage)),this.langSwitchOpen||this.mode==="list"?t(p,{navLang:i,switchLanguage:t=>this.switchLanguage(t),dropdownRef:t=>t!==undefined&&this.setDropdownRef(t)}):null))}get host(){return i(this)}};h.style=f;export{h as post_language_switch};
2
+ //# sourceMappingURL=p-7c9d0994.entry.js.map