@swisspost/internet-header 1.13.2 → 1.13.4

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 (417) hide show
  1. package/dist/cjs/{index-3423c7b3.js → index-f082854e.js} +19 -2
  2. package/dist/cjs/index-f082854e.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +15 -16
  4. package/dist/cjs/index.cjs.js.map +1 -1
  5. package/dist/cjs/{klp-widget.controller-7fbe23c3.js → klp-widget.controller-c807789c.js} +15 -10
  6. package/dist/cjs/klp-widget.controller-c807789c.js.map +1 -0
  7. package/dist/cjs/{language.service-4742451a.js → language.service-126b64f9.js} +2 -2
  8. package/dist/cjs/{language.service-4742451a.js.map → language.service-126b64f9.js.map} +1 -1
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/{post-internet-breadcrumbs-15f878ef.js → post-internet-breadcrumbs-3734600f.js} +41 -15
  11. package/dist/cjs/post-internet-breadcrumbs-3734600f.js.map +1 -0
  12. package/dist/cjs/{post-internet-footer-5fa54b4d.js → post-internet-footer-b517b51d.js} +7 -6
  13. package/dist/cjs/post-internet-footer-b517b51d.js.map +1 -0
  14. package/dist/cjs/{post-internet-header-797beaef.js → post-internet-header-3c7fcb36.js} +27 -16
  15. package/dist/cjs/post-internet-header-3c7fcb36.js.map +1 -0
  16. package/dist/cjs/{post-klp-login-widget-b0093c44.js → post-klp-login-widget-cf74cffe.js} +8 -7
  17. package/dist/cjs/post-klp-login-widget-cf74cffe.js.map +1 -0
  18. package/dist/cjs/post-klp-login-widget.cjs.entry.js +5 -5
  19. package/dist/cjs/{post-language-switch-a2dacdd9.js → post-language-switch-e8b5524b.js} +8 -7
  20. package/dist/cjs/post-language-switch-e8b5524b.js.map +1 -0
  21. package/dist/cjs/post-language-switch.cjs.entry.js +6 -6
  22. package/dist/cjs/{post-logo-ac175767.js → post-logo-0a680f8a.js} +6 -5
  23. package/dist/cjs/post-logo-0a680f8a.js.map +1 -0
  24. package/dist/cjs/post-logo.cjs.entry.js +3 -3
  25. package/dist/cjs/{post-main-navigation-8ed49014.js → post-main-navigation-47a7bfa8.js} +8 -7
  26. package/dist/cjs/post-main-navigation-47a7bfa8.js.map +1 -0
  27. package/dist/cjs/post-main-navigation.cjs.entry.js +6 -6
  28. package/dist/cjs/{post-meta-navigation-35b2926d.js → post-meta-navigation-e5da62e3.js} +5 -4
  29. package/dist/cjs/post-meta-navigation-e5da62e3.js.map +1 -0
  30. package/dist/cjs/post-meta-navigation.cjs.entry.js +3 -3
  31. package/dist/cjs/{post-search-656fc0e6.js → post-search-0b908d72.js} +8 -7
  32. package/dist/cjs/post-search-0b908d72.js.map +1 -0
  33. package/dist/cjs/post-search.cjs.entry.js +6 -6
  34. package/dist/cjs/{post-skiplinks-857502b0.js → post-skiplinks-4c494b09.js} +7 -6
  35. package/dist/cjs/post-skiplinks-4c494b09.js.map +1 -0
  36. package/dist/cjs/post-skiplinks.cjs.entry.js +5 -5
  37. package/dist/cjs/{store-24f8d785.js → store-409eabd1.js} +2 -2
  38. package/dist/cjs/store-409eabd1.js.map +1 -0
  39. package/dist/cjs/{svg-icon.component-5355af90.js → svg-icon.component-6731b1e1.js} +2 -2
  40. package/dist/cjs/{svg-icon.component-5355af90.js.map → svg-icon.component-6731b1e1.js.map} +1 -1
  41. package/dist/cjs/{svg-sprite.component-4f4f4f30.js → svg-sprite.component-b7d7ef20.js} +2 -2
  42. package/dist/cjs/{svg-sprite.component-4f4f4f30.js.map → svg-sprite.component-b7d7ef20.js.map} +1 -1
  43. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +6 -7
  44. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js.map +1 -1
  45. package/dist/cjs/swisspost-internet-footer.cjs.entry.js +5 -5
  46. package/dist/cjs/swisspost-internet-header.cjs.entry.js +6 -6
  47. package/dist/cjs/swisspost-internet-header.cjs.js +2 -2
  48. package/dist/cjs/swisspost-internet-header.cjs.js.map +1 -1
  49. package/dist/collection/collection-manifest.json +2 -2
  50. package/dist/collection/components/post-internet-breadcrumbs/components/focus-trap.component.js.map +1 -1
  51. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js.map +1 -1
  52. package/dist/collection/components/post-internet-footer/components/post-footer-block-contact.component.js.map +1 -1
  53. package/dist/collection/components/post-internet-footer/post-internet-footer.js.map +1 -1
  54. package/dist/collection/components/post-internet-header/logo-animation/logo-animation.js.map +1 -1
  55. package/dist/collection/components/post-internet-header/post-internet-header.css +1 -1
  56. package/dist/collection/components/post-internet-header/post-internet-header.js.map +1 -1
  57. package/dist/collection/components/post-klp-login-widget/klp-widget.controller.js.map +1 -1
  58. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.js.map +1 -1
  59. package/dist/collection/components/post-language-switch/post-language-switch.js.map +1 -1
  60. package/dist/collection/components/post-logo/post-logo.css +1 -1
  61. package/dist/collection/components/post-main-navigation/post-main-navigation.js.map +1 -1
  62. package/dist/collection/components/post-search/post-search.js.map +1 -1
  63. package/dist/collection/components/post-skiplinks/post-skiplinks.js.map +1 -1
  64. package/dist/collection/services/config.service.js.map +1 -1
  65. package/dist/collection/services/language.service.js.map +1 -1
  66. package/dist/collection/services/route.service.js.map +1 -1
  67. package/dist/collection/services/search/coveo.service.js.map +1 -1
  68. package/dist/collection/services/search/parcel.service.js.map +1 -1
  69. package/dist/collection/services/search/places.service.js.map +1 -1
  70. package/dist/collection/services/search/search.service.js.map +1 -1
  71. package/dist/collection/utils/if.component.js.map +1 -1
  72. package/dist/collection/utils/scrollparent.js.map +1 -1
  73. package/dist/components/klp-widget.controller.js +9 -4
  74. package/dist/components/klp-widget.controller.js.map +1 -1
  75. package/dist/components/post-klp-login-widget2.js +2 -1
  76. package/dist/components/post-klp-login-widget2.js.map +1 -1
  77. package/dist/components/post-language-switch2.js +2 -1
  78. package/dist/components/post-language-switch2.js.map +1 -1
  79. package/dist/components/post-logo2.js +3 -2
  80. package/dist/components/post-logo2.js.map +1 -1
  81. package/dist/components/post-main-navigation2.js +2 -1
  82. package/dist/components/post-main-navigation2.js.map +1 -1
  83. package/dist/components/post-meta-navigation2.js +2 -1
  84. package/dist/components/post-meta-navigation2.js.map +1 -1
  85. package/dist/components/post-search2.js +2 -1
  86. package/dist/components/post-search2.js.map +1 -1
  87. package/dist/components/post-skiplinks2.js +2 -1
  88. package/dist/components/post-skiplinks2.js.map +1 -1
  89. package/dist/components/store.js.map +1 -1
  90. package/dist/components/swisspost-internet-breadcrumbs.js +35 -9
  91. package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -1
  92. package/dist/components/swisspost-internet-footer.js +2 -1
  93. package/dist/components/swisspost-internet-footer.js.map +1 -1
  94. package/dist/components/swisspost-internet-header.js +21 -10
  95. package/dist/components/swisspost-internet-header.js.map +1 -1
  96. package/dist/docs.json +3 -3
  97. package/dist/esm/{index-42178863.js → index-f796221a.js} +19 -2
  98. package/dist/esm/index-f796221a.js.map +1 -0
  99. package/dist/esm/index.js +15 -16
  100. package/dist/esm/index.js.map +1 -1
  101. package/dist/esm/{klp-widget.controller-549d5132.js → klp-widget.controller-44b1ee83.js} +10 -5
  102. package/dist/esm/klp-widget.controller-44b1ee83.js.map +1 -0
  103. package/dist/esm/{language.service-8c9e6bc5.js → language.service-278970d4.js} +2 -2
  104. package/dist/esm/{language.service-8c9e6bc5.js.map → language.service-278970d4.js.map} +1 -1
  105. package/dist/esm/loader.js +2 -2
  106. package/dist/esm/{post-internet-breadcrumbs-ca69e5ac.js → post-internet-breadcrumbs-14cd1ab2.js} +41 -15
  107. package/dist/esm/post-internet-breadcrumbs-14cd1ab2.js.map +1 -0
  108. package/dist/esm/{post-internet-footer-cdae34cd.js → post-internet-footer-5cec06ad.js} +7 -6
  109. package/dist/esm/post-internet-footer-5cec06ad.js.map +1 -0
  110. package/dist/esm/{post-internet-header-134f39f0.js → post-internet-header-a1b1e981.js} +27 -16
  111. package/dist/esm/post-internet-header-a1b1e981.js.map +1 -0
  112. package/dist/esm/{post-klp-login-widget-0b199a8c.js → post-klp-login-widget-2ba2331a.js} +8 -7
  113. package/dist/esm/post-klp-login-widget-2ba2331a.js.map +1 -0
  114. package/dist/esm/post-klp-login-widget.entry.js +5 -5
  115. package/dist/esm/{post-language-switch-a7291097.js → post-language-switch-a7461ffa.js} +8 -7
  116. package/dist/esm/post-language-switch-a7461ffa.js.map +1 -0
  117. package/dist/esm/post-language-switch.entry.js +6 -6
  118. package/dist/esm/{post-logo-a6bf90c5.js → post-logo-ad2a0fbe.js} +6 -5
  119. package/dist/esm/post-logo-ad2a0fbe.js.map +1 -0
  120. package/dist/esm/post-logo.entry.js +3 -3
  121. package/dist/esm/{post-main-navigation-733675fb.js → post-main-navigation-6fc9a1eb.js} +8 -7
  122. package/dist/esm/post-main-navigation-6fc9a1eb.js.map +1 -0
  123. package/dist/esm/post-main-navigation.entry.js +6 -6
  124. package/dist/esm/{post-meta-navigation-5c330dfa.js → post-meta-navigation-f231a663.js} +5 -4
  125. package/dist/esm/post-meta-navigation-f231a663.js.map +1 -0
  126. package/dist/esm/post-meta-navigation.entry.js +3 -3
  127. package/dist/esm/{post-search-0506c0d1.js → post-search-f41e3841.js} +8 -7
  128. package/dist/esm/post-search-f41e3841.js.map +1 -0
  129. package/dist/esm/post-search.entry.js +6 -6
  130. package/dist/esm/{post-skiplinks-9e5d3c8e.js → post-skiplinks-250a922c.js} +7 -6
  131. package/dist/esm/post-skiplinks-250a922c.js.map +1 -0
  132. package/dist/esm/post-skiplinks.entry.js +5 -5
  133. package/dist/esm/{store-c3a7c877.js → store-2e4643fc.js} +2 -2
  134. package/dist/esm/store-2e4643fc.js.map +1 -0
  135. package/dist/esm/{svg-icon.component-bac5b09e.js → svg-icon.component-811cf43a.js} +2 -2
  136. package/dist/esm/{svg-icon.component-bac5b09e.js.map → svg-icon.component-811cf43a.js.map} +1 -1
  137. package/dist/esm/{svg-sprite.component-1d9c1de3.js → svg-sprite.component-65ce87dc.js} +2 -2
  138. package/dist/esm/{svg-sprite.component-1d9c1de3.js.map → svg-sprite.component-65ce87dc.js.map} +1 -1
  139. package/dist/esm/swisspost-internet-breadcrumbs.entry.js +6 -7
  140. package/dist/esm/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  141. package/dist/esm/swisspost-internet-footer.entry.js +5 -5
  142. package/dist/esm/swisspost-internet-header.entry.js +6 -6
  143. package/dist/esm/swisspost-internet-header.js +3 -3
  144. package/dist/esm/swisspost-internet-header.js.map +1 -1
  145. package/dist/esm-es5/bodyScrollLock.esm-afcc00e3.js.map +1 -1
  146. package/dist/esm-es5/index-d2256e06.js.map +1 -1
  147. package/dist/esm-es5/{index-42178863.js → index-f796221a.js} +2 -2
  148. package/dist/esm-es5/index-f796221a.js.map +1 -0
  149. package/dist/esm-es5/index.js +1 -1
  150. package/dist/esm-es5/klp-widget.controller-44b1ee83.js +12 -0
  151. package/dist/{swisspost-internet-header/p-a7bc91ca.system.js.map → esm-es5/klp-widget.controller-44b1ee83.js.map} +1 -1
  152. package/dist/esm-es5/{language.service-8c9e6bc5.js → language.service-278970d4.js} +2 -2
  153. package/dist/esm-es5/loader.js +1 -1
  154. package/dist/esm-es5/post-internet-breadcrumbs-14cd1ab2.js +7 -0
  155. package/dist/esm-es5/post-internet-breadcrumbs-14cd1ab2.js.map +1 -0
  156. package/dist/esm-es5/{post-internet-footer-cdae34cd.js → post-internet-footer-5cec06ad.js} +2 -2
  157. package/dist/esm-es5/post-internet-footer-5cec06ad.js.map +1 -0
  158. package/dist/esm-es5/post-internet-header-a1b1e981.js +2 -0
  159. package/dist/esm-es5/post-internet-header-a1b1e981.js.map +1 -0
  160. package/dist/esm-es5/{post-klp-login-widget-0b199a8c.js → post-klp-login-widget-2ba2331a.js} +2 -2
  161. package/dist/esm-es5/post-klp-login-widget-2ba2331a.js.map +1 -0
  162. package/dist/esm-es5/post-klp-login-widget.entry.js +1 -1
  163. package/dist/esm-es5/{post-language-switch-a7291097.js → post-language-switch-a7461ffa.js} +2 -2
  164. package/dist/esm-es5/post-language-switch-a7461ffa.js.map +1 -0
  165. package/dist/esm-es5/post-language-switch.entry.js +1 -1
  166. package/dist/esm-es5/{post-logo-a6bf90c5.js → post-logo-ad2a0fbe.js} +2 -2
  167. package/dist/{esm/post-logo-a6bf90c5.js.map → esm-es5/post-logo-ad2a0fbe.js.map} +1 -1
  168. package/dist/esm-es5/post-logo.entry.js +1 -1
  169. package/dist/esm-es5/{post-main-navigation-733675fb.js → post-main-navigation-6fc9a1eb.js} +2 -2
  170. package/dist/esm-es5/post-main-navigation-6fc9a1eb.js.map +1 -0
  171. package/dist/esm-es5/post-main-navigation.entry.js +1 -1
  172. package/dist/esm-es5/{post-meta-navigation-5c330dfa.js → post-meta-navigation-f231a663.js} +2 -2
  173. package/dist/esm-es5/post-meta-navigation-f231a663.js.map +1 -0
  174. package/dist/esm-es5/post-meta-navigation.entry.js +1 -1
  175. package/dist/esm-es5/{post-search-0506c0d1.js → post-search-f41e3841.js} +2 -2
  176. package/dist/esm-es5/post-search-f41e3841.js.map +1 -0
  177. package/dist/esm-es5/post-search.entry.js +1 -1
  178. package/dist/esm-es5/post-skiplinks-250a922c.js +2 -0
  179. package/dist/esm-es5/post-skiplinks-250a922c.js.map +1 -0
  180. package/dist/esm-es5/post-skiplinks.entry.js +1 -1
  181. package/dist/esm-es5/{store-c3a7c877.js → store-2e4643fc.js} +2 -2
  182. package/dist/esm-es5/store-2e4643fc.js.map +1 -0
  183. package/dist/esm-es5/{svg-icon.component-bac5b09e.js → svg-icon.component-811cf43a.js} +2 -2
  184. package/dist/esm-es5/{svg-sprite.component-1d9c1de3.js → svg-sprite.component-65ce87dc.js} +2 -2
  185. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +1 -1
  186. package/dist/esm-es5/swisspost-internet-footer.entry.js +1 -1
  187. package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
  188. package/dist/esm-es5/swisspost-internet-header.js +1 -1
  189. package/dist/esm-es5/swisspost-internet-header.js.map +1 -1
  190. package/dist/swisspost-internet-header/index.esm.js +1 -1
  191. package/dist/swisspost-internet-header/p-0a6b234b.entry.js +2 -0
  192. package/dist/swisspost-internet-header/p-0ff6f7f4.entry.js +2 -0
  193. package/dist/swisspost-internet-header/p-1097010e.js +2 -0
  194. package/dist/swisspost-internet-header/p-1097010e.js.map +1 -0
  195. package/dist/swisspost-internet-header/{p-f038a170.system.js → p-19771ee8.system.js} +2 -2
  196. package/dist/swisspost-internet-header/p-19771ee8.system.js.map +1 -0
  197. package/dist/swisspost-internet-header/p-197bbbde.js +3 -0
  198. package/dist/swisspost-internet-header/p-197bbbde.js.map +1 -0
  199. package/dist/swisspost-internet-header/{p-0df077ea.system.js → p-1d369fcc.system.js} +2 -2
  200. package/dist/swisspost-internet-header/p-1d369fcc.system.js.map +1 -0
  201. package/dist/swisspost-internet-header/{p-b9a1a146.system.js → p-1fcd0f72.system.js} +2 -2
  202. package/dist/swisspost-internet-header/p-1fcd0f72.system.js.map +1 -0
  203. package/dist/swisspost-internet-header/{p-fab8c31c.system.js → p-20c7d029.system.js} +2 -2
  204. package/dist/swisspost-internet-header/p-20c7d029.system.js.map +1 -0
  205. package/dist/swisspost-internet-header/p-20f7e2b6.system.entry.js +2 -0
  206. package/dist/swisspost-internet-header/{p-87d6ddc6.system.js → p-237918ac.system.js} +2 -2
  207. package/dist/swisspost-internet-header/p-237ac2bd.system.js +2 -0
  208. package/dist/swisspost-internet-header/p-237ac2bd.system.js.map +1 -0
  209. package/dist/swisspost-internet-header/p-23b26931.system.entry.js +2 -0
  210. package/dist/swisspost-internet-header/p-271ed32d.js +7 -0
  211. package/dist/swisspost-internet-header/p-271ed32d.js.map +1 -0
  212. package/dist/swisspost-internet-header/p-2e38e01e.system.entry.js +2 -0
  213. package/dist/swisspost-internet-header/p-2f9df702.entry.js +2 -0
  214. package/dist/swisspost-internet-header/p-303b0b53.entry.js +2 -0
  215. package/dist/swisspost-internet-header/p-31512bdc.js +12 -0
  216. package/dist/swisspost-internet-header/{p-2a8d5787.js.map → p-31512bdc.js.map} +1 -1
  217. package/dist/swisspost-internet-header/{p-05bb41bf.system.js → p-332e638f.system.js} +2 -2
  218. package/dist/swisspost-internet-header/p-332e638f.system.js.map +1 -0
  219. package/dist/swisspost-internet-header/p-4363cd22.entry.js +2 -0
  220. package/dist/swisspost-internet-header/p-451d3317.js +2 -0
  221. package/dist/swisspost-internet-header/{p-0adc396f.js → p-501b0f06.js} +2 -2
  222. package/dist/swisspost-internet-header/p-501b0f06.js.map +1 -0
  223. package/dist/swisspost-internet-header/p-51260a1f.system.entry.js +2 -0
  224. package/dist/swisspost-internet-header/p-5c30b6e5.system.js +7 -0
  225. package/dist/swisspost-internet-header/p-5c30b6e5.system.js.map +1 -0
  226. package/dist/swisspost-internet-header/{p-90609524.system.js → p-636b0d26.system.js} +2 -2
  227. package/dist/swisspost-internet-header/p-636b0d26.system.js.map +1 -0
  228. package/dist/swisspost-internet-header/p-6892caee.system.entry.js +2 -0
  229. package/dist/swisspost-internet-header/{p-51a44f8a.js → p-7c655950.js} +2 -2
  230. package/dist/swisspost-internet-header/p-7c655950.js.map +1 -0
  231. package/dist/swisspost-internet-header/p-7f40ebc6.system.js +12 -0
  232. package/dist/{esm-es5/klp-widget.controller-549d5132.js.map → swisspost-internet-header/p-7f40ebc6.system.js.map} +1 -1
  233. package/dist/swisspost-internet-header/{p-c8567a81.system.js → p-88424db0.system.js} +2 -2
  234. package/dist/swisspost-internet-header/{p-b62ac44c.js → p-914ada58.js} +2 -2
  235. package/dist/swisspost-internet-header/{p-3e59929c.js → p-94c5c08e.js} +2 -2
  236. package/dist/swisspost-internet-header/p-9b4d5e90.system.js.map +1 -1
  237. package/dist/swisspost-internet-header/{p-4e3b909b.js → p-9d2502ca.js} +2 -2
  238. package/dist/swisspost-internet-header/{p-7957177c.system.js.map → p-9d2502ca.js.map} +1 -1
  239. package/dist/swisspost-internet-header/{p-8f6fb84d.js → p-9d84e280.js} +2 -2
  240. package/dist/swisspost-internet-header/p-9d84e280.js.map +1 -0
  241. package/dist/swisspost-internet-header/{p-266e6d3a.js → p-a9256af7.js} +2 -2
  242. package/dist/swisspost-internet-header/p-a9256af7.js.map +1 -0
  243. package/dist/swisspost-internet-header/p-a9bfbac2.system.entry.js +2 -0
  244. package/dist/swisspost-internet-header/p-b3014611.system.js.map +1 -1
  245. package/dist/swisspost-internet-header/p-b645daf7.system.js +2 -0
  246. package/dist/swisspost-internet-header/p-b645daf7.system.js.map +1 -0
  247. package/dist/swisspost-internet-header/p-b8380f66.js +2 -0
  248. package/dist/swisspost-internet-header/p-b8380f66.js.map +1 -0
  249. package/dist/swisspost-internet-header/p-b978f6df.system.js +2 -0
  250. package/dist/swisspost-internet-header/p-c1b1ec14.entry.js +2 -0
  251. package/dist/swisspost-internet-header/{p-e082d4fe.js → p-c34a0ce2.js} +2 -2
  252. package/dist/swisspost-internet-header/p-c34a0ce2.js.map +1 -0
  253. package/dist/swisspost-internet-header/p-c98c5063.system.entry.js +2 -0
  254. package/dist/swisspost-internet-header/{p-c876af15.system.js → p-cb0d43c6.system.js} +2 -2
  255. package/dist/swisspost-internet-header/p-cb0d43c6.system.js.map +1 -0
  256. package/dist/swisspost-internet-header/p-cff98d1f.entry.js +2 -0
  257. package/dist/swisspost-internet-header/{p-2b163d9c.system.js → p-d0246e04.system.js} +2 -2
  258. package/dist/swisspost-internet-header/p-d03e7d05.entry.js +2 -0
  259. package/dist/swisspost-internet-header/{p-62bb3696.system.js → p-d7a5b1c5.system.js} +2 -2
  260. package/dist/swisspost-internet-header/p-d7a5b1c5.system.js.map +1 -0
  261. package/dist/swisspost-internet-header/p-d83602cb.system.js +3 -0
  262. package/dist/swisspost-internet-header/p-d83602cb.system.js.map +1 -0
  263. package/dist/swisspost-internet-header/p-d8b3d18d.entry.js +2 -0
  264. package/dist/swisspost-internet-header/p-dff42a0c.system.entry.js +2 -0
  265. package/dist/swisspost-internet-header/{p-7957177c.system.js → p-e6b6ae72.system.js} +2 -2
  266. package/dist/swisspost-internet-header/p-e6b6ae72.system.js.map +1 -0
  267. package/dist/swisspost-internet-header/p-edc198dc.entry.js +2 -0
  268. package/dist/swisspost-internet-header/{p-e2b94a49.js → p-ee278b43.js} +2 -2
  269. package/dist/swisspost-internet-header/p-ee278b43.js.map +1 -0
  270. package/dist/swisspost-internet-header/{p-2133f8ff.js → p-f956d443.js} +2 -2
  271. package/dist/swisspost-internet-header/p-f956d443.js.map +1 -0
  272. package/dist/swisspost-internet-header/p-fcf86039.system.entry.js +2 -0
  273. package/dist/swisspost-internet-header/p-fe7f6fc9.system.entry.js +2 -0
  274. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
  275. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js.map +1 -1
  276. package/dist/swisspost-internet-header/swisspost-internet-header.js +1 -1
  277. package/package.json +16 -7
  278. package/readme.md +1 -1
  279. package/dist/cjs/_commonjsHelpers-537d719a.js +0 -22
  280. package/dist/cjs/_commonjsHelpers-537d719a.js.map +0 -1
  281. package/dist/cjs/index-3423c7b3.js.map +0 -1
  282. package/dist/cjs/klp-widget.controller-7fbe23c3.js.map +0 -1
  283. package/dist/cjs/post-internet-breadcrumbs-15f878ef.js.map +0 -1
  284. package/dist/cjs/post-internet-footer-5fa54b4d.js.map +0 -1
  285. package/dist/cjs/post-internet-header-797beaef.js.map +0 -1
  286. package/dist/cjs/post-klp-login-widget-b0093c44.js.map +0 -1
  287. package/dist/cjs/post-language-switch-a2dacdd9.js.map +0 -1
  288. package/dist/cjs/post-logo-ac175767.js.map +0 -1
  289. package/dist/cjs/post-main-navigation-8ed49014.js.map +0 -1
  290. package/dist/cjs/post-meta-navigation-35b2926d.js.map +0 -1
  291. package/dist/cjs/post-search-656fc0e6.js.map +0 -1
  292. package/dist/cjs/post-skiplinks-857502b0.js.map +0 -1
  293. package/dist/cjs/store-24f8d785.js.map +0 -1
  294. package/dist/components/_commonjsHelpers.js +0 -19
  295. package/dist/components/_commonjsHelpers.js.map +0 -1
  296. package/dist/esm/_commonjsHelpers-9943807e.js +0 -19
  297. package/dist/esm/_commonjsHelpers-9943807e.js.map +0 -1
  298. package/dist/esm/index-42178863.js.map +0 -1
  299. package/dist/esm/klp-widget.controller-549d5132.js.map +0 -1
  300. package/dist/esm/post-internet-breadcrumbs-ca69e5ac.js.map +0 -1
  301. package/dist/esm/post-internet-footer-cdae34cd.js.map +0 -1
  302. package/dist/esm/post-internet-header-134f39f0.js.map +0 -1
  303. package/dist/esm/post-klp-login-widget-0b199a8c.js.map +0 -1
  304. package/dist/esm/post-language-switch-a7291097.js.map +0 -1
  305. package/dist/esm/post-main-navigation-733675fb.js.map +0 -1
  306. package/dist/esm/post-meta-navigation-5c330dfa.js.map +0 -1
  307. package/dist/esm/post-search-0506c0d1.js.map +0 -1
  308. package/dist/esm/post-skiplinks-9e5d3c8e.js.map +0 -1
  309. package/dist/esm/store-c3a7c877.js.map +0 -1
  310. package/dist/esm-es5/_commonjsHelpers-9943807e.js +0 -2
  311. package/dist/esm-es5/index-42178863.js.map +0 -1
  312. package/dist/esm-es5/klp-widget.controller-549d5132.js +0 -13
  313. package/dist/esm-es5/post-internet-breadcrumbs-ca69e5ac.js +0 -7
  314. package/dist/esm-es5/post-internet-breadcrumbs-ca69e5ac.js.map +0 -1
  315. package/dist/esm-es5/post-internet-footer-cdae34cd.js.map +0 -1
  316. package/dist/esm-es5/post-internet-header-134f39f0.js +0 -2
  317. package/dist/esm-es5/post-internet-header-134f39f0.js.map +0 -1
  318. package/dist/esm-es5/post-klp-login-widget-0b199a8c.js.map +0 -1
  319. package/dist/esm-es5/post-language-switch-a7291097.js.map +0 -1
  320. package/dist/esm-es5/post-logo-a6bf90c5.js.map +0 -1
  321. package/dist/esm-es5/post-main-navigation-733675fb.js.map +0 -1
  322. package/dist/esm-es5/post-meta-navigation-5c330dfa.js.map +0 -1
  323. package/dist/esm-es5/post-search-0506c0d1.js.map +0 -1
  324. package/dist/esm-es5/post-skiplinks-9e5d3c8e.js +0 -2
  325. package/dist/esm-es5/post-skiplinks-9e5d3c8e.js.map +0 -1
  326. package/dist/esm-es5/store-c3a7c877.js.map +0 -1
  327. package/dist/swisspost-internet-header/p-05bb41bf.system.js.map +0 -1
  328. package/dist/swisspost-internet-header/p-0adc396f.js.map +0 -1
  329. package/dist/swisspost-internet-header/p-0df077ea.system.js.map +0 -1
  330. package/dist/swisspost-internet-header/p-112455b1.js +0 -2
  331. package/dist/swisspost-internet-header/p-1668b002.entry.js +0 -2
  332. package/dist/swisspost-internet-header/p-2133f8ff.js.map +0 -1
  333. package/dist/swisspost-internet-header/p-266e6d3a.js.map +0 -1
  334. package/dist/swisspost-internet-header/p-2a8d5787.js +0 -13
  335. package/dist/swisspost-internet-header/p-31e7f09a.system.entry.js +0 -2
  336. package/dist/swisspost-internet-header/p-3abbb0bc.js +0 -3
  337. package/dist/swisspost-internet-header/p-3abbb0bc.js.map +0 -1
  338. package/dist/swisspost-internet-header/p-3e4285cd.entry.js +0 -2
  339. package/dist/swisspost-internet-header/p-461e53b1.js +0 -2
  340. package/dist/swisspost-internet-header/p-4e3b909b.js.map +0 -1
  341. package/dist/swisspost-internet-header/p-51a44f8a.js.map +0 -1
  342. package/dist/swisspost-internet-header/p-548291cb.system.js +0 -2
  343. package/dist/swisspost-internet-header/p-548291cb.system.js.map +0 -1
  344. package/dist/swisspost-internet-header/p-550de753.system.entry.js +0 -2
  345. package/dist/swisspost-internet-header/p-56f249a0.system.entry.js +0 -2
  346. package/dist/swisspost-internet-header/p-62bb3696.system.js.map +0 -1
  347. package/dist/swisspost-internet-header/p-66a7fdb3.js +0 -7
  348. package/dist/swisspost-internet-header/p-66a7fdb3.js.map +0 -1
  349. package/dist/swisspost-internet-header/p-85b6421e.system.entry.js +0 -2
  350. package/dist/swisspost-internet-header/p-8936d9c2.entry.js +0 -2
  351. package/dist/swisspost-internet-header/p-8f6fb84d.js.map +0 -1
  352. package/dist/swisspost-internet-header/p-90609524.system.js.map +0 -1
  353. package/dist/swisspost-internet-header/p-9448353b.system.js +0 -7
  354. package/dist/swisspost-internet-header/p-9448353b.system.js.map +0 -1
  355. package/dist/swisspost-internet-header/p-97a93bc5.entry.js +0 -2
  356. package/dist/swisspost-internet-header/p-9cb8483e.entry.js +0 -2
  357. package/dist/swisspost-internet-header/p-a49a2089.system.js +0 -3
  358. package/dist/swisspost-internet-header/p-a49a2089.system.js.map +0 -1
  359. package/dist/swisspost-internet-header/p-a7bc91ca.system.js +0 -13
  360. package/dist/swisspost-internet-header/p-a9610d39.system.js +0 -2
  361. package/dist/swisspost-internet-header/p-a9610d39.system.js.map +0 -1
  362. package/dist/swisspost-internet-header/p-aa836528.entry.js +0 -2
  363. package/dist/swisspost-internet-header/p-aae36739.entry.js +0 -2
  364. package/dist/swisspost-internet-header/p-b4ae4c6d.system.entry.js +0 -2
  365. package/dist/swisspost-internet-header/p-b588b3bf.system.entry.js +0 -2
  366. package/dist/swisspost-internet-header/p-b9a1a146.system.js.map +0 -1
  367. package/dist/swisspost-internet-header/p-c857983f.entry.js +0 -2
  368. package/dist/swisspost-internet-header/p-c876af15.system.js.map +0 -1
  369. package/dist/swisspost-internet-header/p-c91db812.system.entry.js +0 -2
  370. package/dist/swisspost-internet-header/p-ca6b8cae.js +0 -2
  371. package/dist/swisspost-internet-header/p-ca6b8cae.js.map +0 -1
  372. package/dist/swisspost-internet-header/p-cb958a70.entry.js +0 -2
  373. package/dist/swisspost-internet-header/p-d55807a5.entry.js +0 -2
  374. package/dist/swisspost-internet-header/p-da01a322.system.js +0 -2
  375. package/dist/swisspost-internet-header/p-e082d4fe.js.map +0 -1
  376. package/dist/swisspost-internet-header/p-e2b94a49.js.map +0 -1
  377. package/dist/swisspost-internet-header/p-ec8cc78c.system.entry.js +0 -2
  378. package/dist/swisspost-internet-header/p-f038a170.system.js.map +0 -1
  379. package/dist/swisspost-internet-header/p-f6816aeb.js +0 -2
  380. package/dist/swisspost-internet-header/p-f6816aeb.js.map +0 -1
  381. package/dist/swisspost-internet-header/p-f887c8bb.system.js +0 -2
  382. package/dist/swisspost-internet-header/p-f887c8bb.system.js.map +0 -1
  383. package/dist/swisspost-internet-header/p-fab8c31c.system.js.map +0 -1
  384. package/dist/swisspost-internet-header/p-fc3447a7.system.entry.js +0 -2
  385. package/dist/swisspost-internet-header/p-fc3447a7.system.entry.js.map +0 -1
  386. package/dist/swisspost-internet-header/p-fce5a989.system.entry.js +0 -2
  387. package/dist/swisspost-internet-header/p-fce5a989.system.entry.js.map +0 -1
  388. /package/dist/esm-es5/{language.service-8c9e6bc5.js.map → language.service-278970d4.js.map} +0 -0
  389. /package/dist/esm-es5/{svg-icon.component-bac5b09e.js.map → svg-icon.component-811cf43a.js.map} +0 -0
  390. /package/dist/esm-es5/{svg-sprite.component-1d9c1de3.js.map → svg-sprite.component-65ce87dc.js.map} +0 -0
  391. /package/dist/{esm-es5/_commonjsHelpers-9943807e.js.map → swisspost-internet-header/p-0a6b234b.entry.js.map} +0 -0
  392. /package/dist/swisspost-internet-header/{p-112455b1.js.map → p-0ff6f7f4.entry.js.map} +0 -0
  393. /package/dist/swisspost-internet-header/{p-1668b002.entry.js.map → p-20f7e2b6.system.entry.js.map} +0 -0
  394. /package/dist/swisspost-internet-header/{p-87d6ddc6.system.js.map → p-237918ac.system.js.map} +0 -0
  395. /package/dist/swisspost-internet-header/{p-31e7f09a.system.entry.js.map → p-23b26931.system.entry.js.map} +0 -0
  396. /package/dist/swisspost-internet-header/{p-3e4285cd.entry.js.map → p-2e38e01e.system.entry.js.map} +0 -0
  397. /package/dist/swisspost-internet-header/{p-550de753.system.entry.js.map → p-2f9df702.entry.js.map} +0 -0
  398. /package/dist/swisspost-internet-header/{p-56f249a0.system.entry.js.map → p-303b0b53.entry.js.map} +0 -0
  399. /package/dist/swisspost-internet-header/{p-85b6421e.system.entry.js.map → p-4363cd22.entry.js.map} +0 -0
  400. /package/dist/swisspost-internet-header/{p-461e53b1.js.map → p-451d3317.js.map} +0 -0
  401. /package/dist/swisspost-internet-header/{p-8936d9c2.entry.js.map → p-51260a1f.system.entry.js.map} +0 -0
  402. /package/dist/swisspost-internet-header/{p-97a93bc5.entry.js.map → p-6892caee.system.entry.js.map} +0 -0
  403. /package/dist/swisspost-internet-header/{p-c8567a81.system.js.map → p-88424db0.system.js.map} +0 -0
  404. /package/dist/swisspost-internet-header/{p-b62ac44c.js.map → p-914ada58.js.map} +0 -0
  405. /package/dist/swisspost-internet-header/{p-3e59929c.js.map → p-94c5c08e.js.map} +0 -0
  406. /package/dist/swisspost-internet-header/{p-9cb8483e.entry.js.map → p-a9bfbac2.system.entry.js.map} +0 -0
  407. /package/dist/swisspost-internet-header/{p-aa836528.entry.js.map → p-b978f6df.system.js.map} +0 -0
  408. /package/dist/swisspost-internet-header/{p-aae36739.entry.js.map → p-c1b1ec14.entry.js.map} +0 -0
  409. /package/dist/swisspost-internet-header/{p-b4ae4c6d.system.entry.js.map → p-c98c5063.system.entry.js.map} +0 -0
  410. /package/dist/swisspost-internet-header/{p-b588b3bf.system.entry.js.map → p-cff98d1f.entry.js.map} +0 -0
  411. /package/dist/swisspost-internet-header/{p-2b163d9c.system.js.map → p-d0246e04.system.js.map} +0 -0
  412. /package/dist/swisspost-internet-header/{p-c857983f.entry.js.map → p-d03e7d05.entry.js.map} +0 -0
  413. /package/dist/swisspost-internet-header/{p-c91db812.system.entry.js.map → p-d8b3d18d.entry.js.map} +0 -0
  414. /package/dist/swisspost-internet-header/{p-cb958a70.entry.js.map → p-dff42a0c.system.entry.js.map} +0 -0
  415. /package/dist/swisspost-internet-header/{p-d55807a5.entry.js.map → p-edc198dc.entry.js.map} +0 -0
  416. /package/dist/swisspost-internet-header/{p-da01a322.system.js.map → p-fcf86039.system.entry.js.map} +0 -0
  417. /package/dist/swisspost-internet-header/{p-ec8cc78c.system.entry.js.map → p-fe7f6fc9.system.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["parcelController","getTrackAndTraceApiUrl","id","lang","state","currentLanguage","concat","encodeURIComponent","getTrackAndTraceRedirectUrl","query","_q","packageTrackingRedirectUrl","replace","isParcel","searchConfig","__awaiter","_this","getParcelInfo","parcelInfo","sent","redirectPattern","trackingNrPattern","RegExp","test","url_1","abort","AbortController","Promise","resolve","reject","fetch","signal","then","response","json","trackAndTraceResult","Object","assign","ok","catch","error","name","console","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","suggestionsController","getCoveoSuggestions","_b","_d","_c","isCustomSuggestionHidden","config","searchHubName","searchPipelineName","method","headers","Authorization","coveoJSON","completions","map","completion","redirectUrl","expression","gisAPIUrl","placesUrl","hardNormalize","str","toLowerCase","normalize","placesController","queryPlaces","searchParameters","entries","limit","reduce","s","i","k","v","geocodeJSON","Error","info","locations","highlightPlacesString","place","reference","q","indexOfQuery","indexOf","substring","getPlacesUrl","location","HighlightedText","props","highlightClass","highlightedString","text","h","innerHTML","postSearchCss","PostSearch","exports","class_1","prototype","connectedCallback","this","throttledResize","throttle","handleResize","window","addEventListener","passive","disconnectedCallback","removeEventListener","clearAllBodyScrollLocks","componentWillUpdate","searchFlyout","searchDropdownOpen","classList","remove","elementHasTransition","userPrefersReducedMotion","event","propertyName","componentDidUpdate","getBoundingClientRect","add","searchBox","focus","preventScroll","toggleDropdown","force","dropdownToggled","emit","open","element","host","coveoSuggestions","placeSuggestions","value","setFocus","_r","setBodyScroll","shadowRoot","toggleButton","querySelector","innerWidth","disableBodyScroll","enableBodyScroll","handleSearchInput","trim","clearButton","style","visibility","all","_s","trackAndTraceInfo","parcelSuggestion","deselectSuggestion","handleClearSearchBox","handleKeyDown","selectedSuggestion","selectedHref","getAttribute","suggestions","querySelectorAll","key","href","startSearch","parentElement","nextElementSibling","firstElementChild","updateSearchBoxWithSuggestion","_e","previousElementSibling","handleMouseEnterSuggestion","target","handleMouseLeaveSuggestions","suggestedText","dataset","suggestionText","trackRecommendationClick","recommendation","trackingAttributes","additionalAttributes","acc","curr","dataLayer","push","link_url","label","type","render","translations","isParcelTrackingNr","showPortalRecommendations","searchRecommendations","links","Host","role","SvgSprite","class","onClick","e","searchToggleExpanded","searchToggle","SvgIcon","If","condition","ref","placeholder","flyoutSearchBoxFloatingLabel","autocomplete","el","onInput","onKeyDown","htmlFor","translate","searchSubmit","title","onMouseLeave","URL","onMouseEnter","inlineSvg","_f","sending","_h","_g","product","_k","_j","recipient","zipcode","_m","_l","city","_p","_o","filter","join","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\nlet parcelController: AbortController;\n\n// https://www.post.ch/api/trackandtrace?id=99.00.306600.01004883\n\n// Track and trace URL\nexport const getTrackAndTraceApiUrl = (id: string) => {\n const lang = state.currentLanguage;\n return `https://www.post.ch/${lang}/api/trackandtrace?id=${encodeURIComponent(id)}`;\n};\n\n// Get the redire\nexport const getTrackAndTraceRedirectUrl = (\n query: string,\n { packageTrackingRedirectUrl }: ISearchConfig,\n) => {\n return packageTrackingRedirectUrl.replace('{trackingNumber}', encodeURIComponent(query));\n};\n\n/**\n * Check whether a query is a tracking id\n *\n * @param query User query\n * @returns Boolean\n */\nexport const isParcel = async (query: string, searchConfig: ISearchConfig): Promise<boolean> => {\n const parcelInfo = await getParcelInfo(query, searchConfig);\n return 'sending' in parcelInfo;\n};\n\n/**\n * Try to get parcel info from a query that is possibly a tracking id.\n * This is mainly used to check if a search should redirect to track&trace instead of the regular search.\n *\n * @param query User query that is possibly a tracking number\n * @returns Track and trace info\n */\nexport const getParcelInfo = async (\n query: string,\n { redirectPattern }: ISearchConfig,\n): Promise<TrackAndTraceInfo> => {\n const trackingNrPattern = new RegExp(redirectPattern);\n\n if (trackingNrPattern.test(query)) {\n const url = getTrackAndTraceApiUrl(query);\n\n if (parcelController) parcelController.abort();\n parcelController = new AbortController();\n\n return new Promise((resolve, reject) => {\n fetch(url, { signal: parcelController.signal })\n .then(response => response.json())\n .then((trackAndTraceResult: TrackAndTraceInfo) => {\n resolve({ ...trackAndTraceResult, ok: trackAndTraceResult.ok });\n })\n .catch(error => {\n if (error.name !== 'AbortError') {\n console.error(`Could not check track and trace API due to error: ${error.message}`);\n reject(error);\n }\n });\n });\n }\n\n return { ok: false, timestamp: new Date().toDateString() };\n};\n\n/**\n * Get parcel info if query is a parcel or null\n *\n * @param query Parcel id\n * @returns Parcel info and a redirect url or null if not a parcel\n */\nexport const getParcelSuggestion = async (\n query: string,\n searchConfig: ISearchConfig,\n): Promise<(TrackAndTraceInfo & { url: string }) | null> => {\n const parcelInfo = await getParcelInfo(query, searchConfig);\n return parcelInfo.ok\n ? { ...parcelInfo, url: getTrackAndTraceRedirectUrl(query, searchConfig) }\n : null;\n};\n","import { state } from '../../data/store';\nimport { ISearchConfig } from '../../models/header.model';\nimport { getTrackAndTraceRedirectUrl, isParcel } from './parcel.service';\n\n/**\n * Construct a search page url from a query\n *\n * @param query Search term\n * @returns\n */\nexport const getSearchRedirectUrl = async (\n query: string,\n searchConfig: ISearchConfig,\n): Promise<string | undefined> => {\n const isTrackTraceId = await isParcel(query, searchConfig);\n return isTrackTraceId\n ? getTrackAndTraceRedirectUrl(query, searchConfig)\n : getSearchPageUrl(query);\n};\n\n/**\n * Stitch toghether the search page URL\n *\n * @param query Search term\n * @returns Search page URL\n */\nexport const getSearchPageUrl = (query: string): string | undefined => {\n if (state.localizedConfig?.header.search === undefined) {\n return;\n }\n const { searchPageUrl } = state.localizedConfig.header.search;\n const searchParam = `#q=${encodeURIComponent(query)}`;\n return `${searchPageUrl}${searchParam}&t=AllTab`;\n};\n\n/**\n * Equalize the length of two arrays while filling up empty slots up to max. length\n *\n * @param arrayA First array\n * @param arrayB Second array\n * @param maxLength Max. length of result array\n * @returns Array with two resulting arrays\n */\nexport const equalizeArrays = <A, B>(arrayA: A[], arrayB: B[], maxLength = 7): [A[], B[]] => {\n const coveoSliced = arrayA.slice(0, Math.max(maxLength / 2, maxLength - arrayB.length));\n return [coveoSliced, arrayB.slice(0, maxLength - coveoSliced.length)];\n};\n","import { CoveoOptions } from '../../models/coveo.model';\n\n// Coveo constants\nexport const coveo: CoveoOptions = {\n url: 'https://platform-eu.cloud.coveo.com/rest/search/v2/querySuggest',\n environment: {\n prod: {\n organisation: 'postchagprod6ef4sbet',\n token: 'xx5b629890-23b9-4fbe-b601-0e8719186969',\n },\n int01: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n int02: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n dev01: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n dev02: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n devs1: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n test: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n },\n};\n","import { state } from '../../data/store';\nimport { CoveoCompletion, CoveoResponse } from '../../models/coveo.model';\nimport { coveo } from './coveo.settings';\nimport { getSearchPageUrl } from './search.service';\n\nlet suggestionsController: AbortController;\n\n/**\n * Get suggestions from coveo\n * https://docs.coveo.com/en/1459/build-a-search-ui/get-query-suggestions#context-object\n *\n * @param query Search term\n * @returns\n */\nexport const getCoveoSuggestions = async (query: string): Promise<CoveoCompletion[]> => {\n if (\n state.localizedConfig?.header?.search === undefined ||\n state.localizedConfig?.header?.search.isCustomSuggestionHidden === true\n )\n return [];\n const config = state.localizedConfig.header.search;\n const { token, organisation } = coveo.environment[state.environment];\n const url = `${coveo.url}?q=${query}&locale=${state.currentLanguage}&searchHub=${config.searchHubName}&pipeline=${config.searchPipelineName}&organizationId=${organisation}`;\n\n if (suggestionsController) suggestionsController.abort();\n suggestionsController = new AbortController();\n\n return new Promise((resolve, reject) => {\n fetch(url, {\n signal: suggestionsController.signal,\n method: 'GET',\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })\n .then(response => response.json())\n .then((coveoJSON: CoveoResponse) => {\n resolve(\n coveoJSON.completions.map(completion => ({\n ...completion,\n redirectUrl: getSearchPageUrl(completion.expression),\n })),\n );\n })\n .catch(error => {\n if (error.name !== 'AbortError') {\n console.error(\n `Fetching coveo suggestions failed, ${error}\\nDid you add \"*.coveo.com\" to your connect-src content security policy and tried turning off your adblocker?`,\n );\n reject(error);\n }\n });\n });\n};\n","// Implement some TOPOS logic into the header search\nexport const gisAPIUrl = 'https://places.post.ch/StandortSuche/StaoCacheService';\nexport const placesUrl = 'https://places.post.ch';\nexport const pois = [\n '001PST',\n '001MP24',\n '001AG-PICK',\n '001PFFIL',\n '001PFST',\n '001BZ',\n '001LZB',\n '001PZ',\n '001LZP',\n '001AL',\n];\n","/**\n * Transform to lowercase, extract accents to separate unicode chars,\n * replace all accent unicode chars so only standard latin chars remain\n * https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript/37511463#37511463\n *\n * @param str Input string\n * @returns\n */\nexport const hardNormalize = (str: string): string =>\n str\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n","import { state } from '../../data/store';\nimport { GeocodeLocation, GeocodeResponse } from '../../models/geocode.model';\nimport { gisAPIUrl, placesUrl } from './places.settings';\nimport { hardNormalize } from './search-utilities';\n\nlet placesController: AbortController;\n\n/**\n * Query the Gis API for locations and localities (pois)\n *\n * @param query User input string\n * @returns\n */\nexport const queryPlaces = async (query: string): Promise<GeocodeLocation[]> => {\n if (query.length === 0) {\n return [];\n }\n\n const searchParameters = Object.entries({\n query: encodeURIComponent(query),\n lang: state.currentLanguage,\n limit: 7,\n }).reduce((s, [k, v], i) => `${s}${i === 0 ? '?' : '&'}${k}=${v}`, '');\n\n const url = `${gisAPIUrl}/Geocode${searchParameters}`;\n\n if (placesController) placesController.abort();\n placesController = new AbortController();\n\n return new Promise((resolve, reject) => {\n fetch(url, { signal: placesController.signal })\n .then(response => response.json())\n .then((geocodeJSON: GeocodeResponse) => {\n if (!geocodeJSON.ok) throw new Error(geocodeJSON.info);\n resolve(geocodeJSON.locations);\n })\n .catch(error => {\n if (error.name !== 'AbortError') {\n console.error(\n `Fetching places failed, ${error}\\nDid you add \"places.post.ch\" to your connect-src content security policy?`,\n );\n reject(error);\n }\n });\n });\n};\n\n/**\n * Try to highlight place suggestions\n * Limitation: accented chars are not handled by this basic function\n *\n * @param query Search term\n * @param place Name of the suggested place\n * @returns\n */\nexport const highlightPlacesString = (query: string | undefined, place: string) => {\n if (query === undefined) return place;\n\n // Strip accents from the string\n const reference = hardNormalize(place);\n const q = hardNormalize(query);\n const indexOfQuery = reference.indexOf(q);\n\n if (indexOfQuery < 0) {\n return place;\n }\n\n return `${place.substring(0, indexOfQuery)}{${place.substring(\n indexOfQuery,\n indexOfQuery + query.length,\n )}}${place.substring(indexOfQuery + query.length, place.length)}`;\n};\n\n/**\n * Get the deeplink to any location found via geocoder\n *\n * @param location A location from the Gis API Geocode endpoint\n * @returns\n */\nexport const getPlacesUrl = (location: GeocodeLocation): string => {\n let url: string;\n\n if (location.id) {\n url = `${placesUrl}/${state.currentLanguage}/${location.id}/detail`;\n } else {\n url = `${placesUrl}?preselecttext=${encodeURIComponent(location.name)}`;\n }\n\n return url;\n};\n","import { h } from '@stencil/core';\n\nexport const HighlightedText = (props: { text: string; highlightClass?: string }) => {\n const highlightClass = props.highlightClass ?? 'bold';\n const highlightedString = props.text\n .replace(/[{(]/g, `<span class=\"${highlightClass}\">`)\n .replace(/[})]/g, '</span>')\n .replace(/[\\[\\]]/g, '');\n return <span innerHTML={highlightedString}></span>;\n};\n","@use '@swisspost/design-system-styles/core' as post;\n@use '@swisspost/design-system-styles/variables/color';\n@use '@swisspost/design-system-styles/components/forms';\n@use '@swisspost/design-system-styles/components/floating-label';\n@use '@swisspost/design-system-styles/components/grid';\n@use '../../utils/utils.scss';\n@use '../../utils/mixins.scss';\n\n:host {\n display: block;\n}\n\n.search,\n:host {\n height: 100%;\n}\n\n.search-button {\n @extend %nav-link;\n\n height: 100%;\n display: flex;\n align-items: center;\n cursor: pointer;\n padding-right: calc(1rem - 1px);\n padding-left: calc(1rem - 1px);\n\n @include mixins.min(lg) {\n padding: 0 calc(1.125rem - 1px);\n }\n\n @include mixins.min(xl) {\n padding: 0 calc(1.5rem - 1px);\n }\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n\n .visually-hidden {\n @include mixins.between(rg, lg) {\n @include mixins.reset-visually-hidden();\n\n font-weight: 300;\n margin-right: 0.5rem;\n cursor: pointer;\n }\n }\n}\n\n.flyout {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n background: white;\n overflow: auto;\n overscroll-behavior: contain;\n padding-top: 3.25rem;\n padding-bottom: 3.25rem;\n z-index: -1;\n transform: translateY(-100%);\n transition: transform 0.35s, box-shadow 0.35s;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n @include mixins.min(lg) {\n max-height: calc(100vh - var(--header-height) - var(--meta-header-height) - 1px);\n box-shadow: 0 0 1px 0 rgb(0 0 0 / 40%);\n\n &.open {\n box-shadow: 0 0 8px 0 rgb(0 0 0 / 40%);\n }\n }\n\n @include mixins.max(lg) {\n height: calc(100vh - var(--header-height) - 1px);\n }\n\n &.open {\n transform: translateY(0);\n }\n}\n\n.form-floating {\n .form-control,\n .form-control + label {\n padding-right: post.$input-padding-x * 5;\n }\n}\n\n.start-search-button,\n.clear-search-button {\n position: absolute;\n top: 0;\n right: 0;\n height: 100%;\n padding-right: 1rem;\n padding-left: 0.5rem;\n display: flex;\n align-items: center;\n cursor: pointer;\n background: none;\n border: 0;\n box-shadow: none;\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n}\n\n.clear-search-button {\n right: 3rem;\n padding-right: 0.5rem;\n visibility: hidden;\n}\n\n.suggestions {\n margin: 1.5rem 0;\n\n a {\n padding: 0.75rem 1rem;\n\n &:hover,\n &:focus,\n &.selected {\n background: color.$gray-background;\n }\n\n &.parcel-suggestion {\n flex-wrap: wrap;\n }\n }\n}\n\n.search-recommendation__icon {\n height: 1.5em;\n width: 1.5em;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, State } from '@stencil/core';\nimport { throttle } from 'throttle-debounce';\nimport { clearAllBodyScrollLocks, disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { state } from '../../data/store';\nimport { CoveoCompletion } from '../../models/coveo.model';\nimport { GeocodeLocation } from '../../models/geocode.model';\nimport { TagManagerDataLayer } from '../../models/general.model';\nimport {\n DropdownElement,\n DropdownEvent,\n HasDropdown,\n ISearchRecommendation,\n IsFocusable,\n} from '../../models/header.model';\nimport { equalizeArrays, getSearchRedirectUrl } from '../../services/search/search.service';\nimport { getCoveoSuggestions } from '../../services/search/coveo.service';\nimport {\n getPlacesUrl,\n highlightPlacesString,\n queryPlaces,\n} from '../../services/search/places.service';\nimport { elementHasTransition, userPrefersReducedMotion } from '../../services/ui.service';\nimport { HighlightedText } from '../../utils/highlighted.component';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { TrackAndTraceInfo } from '../../models/track-and-trace.model';\nimport { getParcelSuggestion } from '../../services/search/parcel.service';\nimport { If } from '../../utils/if.component';\nimport { translate } from '../../services/language.service';\n\n@Component({\n tag: 'post-search',\n styleUrl: 'post-search.scss',\n shadow: true,\n})\nexport class PostSearch implements HasDropdown, IsFocusable {\n @State() searchDropdownOpen = false;\n @State() coveoSuggestions: CoveoCompletion[] = [];\n @State() placeSuggestions: GeocodeLocation[] = [];\n @State() parcelSuggestion: (TrackAndTraceInfo & { url: string }) | null = null;\n @Event() dropdownToggled: EventEmitter<DropdownEvent>;\n @Element() host: DropdownElement;\n private searchBox?: HTMLInputElement;\n private searchFlyout: HTMLElement | undefined;\n private throttledResize: throttle<() => void>;\n private clearButton?: HTMLButtonElement;\n\n connectedCallback() {\n this.throttledResize = throttle(300, () => this.handleResize());\n window.addEventListener('resize', this.throttledResize, { passive: true });\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.throttledResize);\n clearAllBodyScrollLocks();\n }\n\n componentWillUpdate() {\n // Check if search flyout got set to close\n if (this.searchFlyout && !this.searchDropdownOpen) {\n this.searchFlyout.classList.remove('open');\n\n // Check if element has transition applied and whether user prefers to see animations or not\n if (elementHasTransition(this.searchFlyout, 'transform') && !userPrefersReducedMotion()) {\n // Wait for CSS transition 'transform' to end before continuing\n return new Promise<boolean>(resolve => {\n if (this.searchFlyout === undefined) {\n return resolve(true);\n }\n\n this.searchFlyout.addEventListener('transitionend', event => {\n if (event.propertyName === 'transform') {\n resolve(true);\n }\n });\n });\n }\n }\n }\n\n componentDidUpdate() {\n // Search flyout got set to open\n if (this.searchFlyout && this.searchDropdownOpen) {\n // Force browser to redraw/refresh DOM before adding 'open' class\n this.searchFlyout.getBoundingClientRect();\n this.searchFlyout.classList.add('open');\n }\n\n // Focus on the searchBox whenever the dropdown is opened\n if (this.searchDropdownOpen && this.searchBox) {\n this.searchBox.focus({ preventScroll: true });\n }\n }\n\n public async toggleDropdown(event?: Event): Promise<boolean>;\n public async toggleDropdown(force?: boolean): Promise<boolean>;\n\n /**\n * Toggle the dropdown and optionally force an open/closed state\n * @param force Boolean to force open/closed state\n * @returns Boolean indicating open state of the component\n */\n @Method()\n async toggleDropdown(force?: unknown) {\n this.searchDropdownOpen =\n force === undefined || typeof force !== 'boolean' ? !this.searchDropdownOpen : force;\n this.dropdownToggled.emit({ open: this.searchDropdownOpen, element: this.host });\n\n if (!this.searchDropdownOpen) {\n // Reset suggestions when dropdown closes\n this.coveoSuggestions = [];\n this.placeSuggestions = [];\n if (this.searchBox) this.searchBox.value = '';\n void this.setFocus();\n } else {\n // Get basic suggestions when dropdown opens\n try {\n this.coveoSuggestions = await getCoveoSuggestions('');\n } catch {}\n }\n\n this.setBodyScroll();\n\n return this.searchDropdownOpen;\n }\n\n /**\n * Sets the focus on the search button\n */\n @Method()\n public async setFocus() {\n const shadowRoot = this.host.shadowRoot;\n if (shadowRoot === null) {\n return;\n }\n const toggleButton = shadowRoot.querySelector<HTMLElement>('.search-button');\n if (toggleButton) {\n toggleButton.focus();\n }\n }\n\n private handleResize() {\n // Only enable/disable body scroll on resize if the search dropdown is open, otherwise this could lead to side effects in other controls\n if (this.searchDropdownOpen) {\n this.setBodyScroll();\n }\n }\n\n /**\n * Disable or re-enable body scrolling, depending on whether search dropdown is open or closed in mobile view (width < 1024px)\n */\n private setBodyScroll() {\n if (!this.searchFlyout) {\n return;\n }\n\n if (this.searchDropdownOpen && window.innerWidth < 1024) {\n disableBodyScroll(this.searchFlyout);\n } else {\n enableBodyScroll(this.searchFlyout);\n }\n }\n\n /**\n * Fetch suggestions from all available sources\n */\n private async handleSearchInput() {\n if (this.searchBox === undefined || state.localizedConfig?.header.search === undefined) {\n return;\n }\n const query = this.searchBox.value.trim();\n\n // shows or hides clearButton depending on the content of the searchbar\n if (this.clearButton) {\n if (query !== '') {\n this.clearButton.style.visibility = 'visible';\n } else {\n this.clearButton.style.visibility = 'hidden';\n }\n }\n\n const [placeSuggestions, coveoSuggestions, trackAndTraceInfo] = await Promise.all([\n queryPlaces(query),\n getCoveoSuggestions(query),\n getParcelSuggestion(query, state.localizedConfig.header.search),\n ]);\n\n this.parcelSuggestion = trackAndTraceInfo;\n\n // Parcel suggestion is more important than any other\n if (trackAndTraceInfo) {\n this.placeSuggestions = [];\n this.coveoSuggestions = [];\n } else {\n [this.coveoSuggestions, this.placeSuggestions] = equalizeArrays(\n coveoSuggestions,\n placeSuggestions,\n 7,\n );\n }\n\n this.deselectSuggestion();\n }\n\n /**\n * clear Search box\n * calls handleSearchInput to update/remove suggestions\n */\n private handleClearSearchBox() {\n if (this.searchBox !== undefined) {\n this.searchBox.value = '';\n this.handleSearchInput();\n }\n }\n\n /**\n * Start search on enter\n * @param event\n */\n private handleKeyDown(event: KeyboardEvent) {\n if (this.searchFlyout === undefined) {\n return;\n }\n\n const selectedSuggestion = this.searchFlyout.querySelector<HTMLElement>(\n '.suggestions > li > a.selected',\n );\n const selectedHref = selectedSuggestion?.getAttribute('href') ?? null;\n const suggestions = this.searchFlyout.querySelectorAll('.suggestions > li > a');\n\n switch (event.key.toLowerCase()) {\n case 'enter':\n if (selectedHref !== null) {\n window.location.href = selectedHref;\n } else {\n void this.startSearch();\n }\n\n break;\n case 'arrowdown':\n this.deselectSuggestion();\n\n if (selectedSuggestion?.parentElement?.nextElementSibling?.firstElementChild) {\n // Select next suggestion if there's any, otherwise none will be selected\n selectedSuggestion.parentElement.nextElementSibling.firstElementChild.classList.add(\n 'selected',\n );\n // If there are any suggestions, select first suggestion in list\n } else if (suggestions.length > 0) {\n suggestions[0].classList.add('selected');\n }\n\n this.updateSearchBoxWithSuggestion();\n\n break;\n case 'arrowup':\n this.deselectSuggestion();\n\n if (selectedSuggestion?.parentElement?.previousElementSibling?.firstElementChild) {\n // Select previous suggestion if there's any, otherwise none will be selected\n\n selectedSuggestion.parentElement.previousElementSibling.firstElementChild.classList.add(\n 'selected',\n );\n // If there are any suggestions, select last suggestion in list\n } else if (suggestions.length > 0) {\n suggestions[suggestions.length - 1].classList.add('selected');\n }\n\n this.updateSearchBoxWithSuggestion();\n\n break;\n }\n }\n\n /**\n * Set selected suggestion on mouse enter\n * @param event\n */\n private handleMouseEnterSuggestion(event: MouseEvent) {\n this.deselectSuggestion();\n\n // Set hovered suggestion element as selected\n (event.target as HTMLElement).classList.add('selected');\n }\n\n /**\n * Set selected suggestion on mouse enter\n * @param event\n */\n private handleMouseLeaveSuggestions() {\n this.deselectSuggestion();\n }\n\n /**\n * Deselect any previously selected suggestion\n */\n private deselectSuggestion() {\n if (this.searchFlyout === undefined) return;\n\n const selectedSuggestion = this.searchFlyout.querySelector('.suggestions .selected');\n\n if (selectedSuggestion) {\n selectedSuggestion.classList.remove('selected');\n }\n }\n\n /**\n * Update search box with selected suggestion\n */\n private updateSearchBoxWithSuggestion() {\n if (this.searchFlyout === undefined) return;\n\n // Get the newly selected suggestion\n const selectedSuggestion = this.searchFlyout.querySelector<HTMLElement>(\n '.suggestions > li > a.selected',\n );\n const suggestedText = selectedSuggestion?.dataset.suggestionText;\n\n // Update search box value with selected suggestion text\n if (suggestedText !== undefined && this.searchBox) {\n this.searchBox.value = suggestedText;\n }\n }\n\n /**\n * Redirect to the post search page\n */\n private async startSearch() {\n if (this.searchBox && state.localizedConfig?.header.search) {\n const redirectUrl = await getSearchRedirectUrl(\n this.searchBox.value.trim(),\n state.localizedConfig.header.search,\n );\n if (!redirectUrl) return;\n window.location.href = redirectUrl;\n }\n }\n\n private trackRecommendationClick(recommendation: ISearchRecommendation) {\n if (!('dataLayer' in window)) return;\n\n const trackingAttributes = recommendation.additionalAttributes.reduce((acc, curr) => {\n acc[curr.name] = curr.value;\n return acc;\n }, {});\n\n (window.dataLayer as TagManagerDataLayer).push({\n event: trackingAttributes['data-event'],\n text: trackingAttributes['data-text'],\n link_url: trackingAttributes['data-linkurl'],\n label: trackingAttributes['data-label'],\n type: trackingAttributes['data-type'],\n });\n }\n\n render() {\n if (state.localizedConfig?.header === undefined) {\n return;\n }\n const { translations, search } = state.localizedConfig.header;\n const isParcelTrackingNr = this.parcelSuggestion && 'sending' in this.parcelSuggestion;\n const showPortalRecommendations =\n this.searchBox?.value === '' && search.searchRecommendations?.links.length > 0;\n\n return (\n <Host role=\"search\">\n <SvgSprite />\n <div class=\"search\">\n <button\n id=\"post-internet-header-search-button\"\n class=\"search-button\"\n type=\"button\"\n aria-expanded={`${this.searchDropdownOpen}`}\n onClick={e => void this.toggleDropdown(e)}\n >\n <span class=\"visually-hidden\">\n {this.searchDropdownOpen\n ? translations.searchToggleExpanded\n : translations.searchToggle}\n </span>\n <SvgIcon name={this.searchDropdownOpen ? 'pi-close' : 'pi-search'} />\n </button>\n <If condition={this.searchDropdownOpen}>\n <div class=\"flyout\" ref={e => (this.searchFlyout = e)}>\n <div class=\"container box\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-md-10 col-lg-8\">\n <div class=\"form-group form-floating\">\n <input\n type=\"text\"\n role=\"searchbox\"\n id=\"searchBox\"\n class=\"form-control form-control-lg\"\n placeholder={translations.flyoutSearchBoxFloatingLabel}\n autocomplete=\"off\"\n ref={el => (this.searchBox = el)}\n onInput={() => void this.handleSearchInput()}\n onKeyDown={e => this.handleKeyDown(e)}\n />\n <label htmlFor=\"searchBox\">{translations.flyoutSearchBoxFloatingLabel}</label>\n <button\n onClick={() => this.handleClearSearchBox()}\n class=\"clear-search-button\"\n type=\"reset\"\n id=\"clearButton\"\n ref={el => (this.clearButton = el)}\n >\n <span class=\"visually-hidden\">{translate('Delete search term')}</span>\n <SvgIcon name=\"pi-close\" />\n </button>\n <button onClick={() => void this.startSearch()} class=\"start-search-button\">\n <span class=\"visually-hidden\">{translations.searchSubmit}</span>\n <SvgIcon name=\"pi-search\" />\n </button>\n </div>\n {showPortalRecommendations && (\n <h2 id=\"post-internet-header-search-recommendations-title\" class=\"bold\">\n {search.searchRecommendations.title}\n </h2>\n )}\n <ul\n class=\"suggestions no-list\"\n onMouseLeave={() => this.handleMouseLeaveSuggestions()}\n aria-labelledby={\n showPortalRecommendations\n ? 'post-internet-header-search-recommendations-title'\n : undefined\n }\n >\n {showPortalRecommendations &&\n search.searchRecommendations.links.map(recommendation => (\n <li key={recommendation.href}>\n <a\n class=\"nav-link search-recommendation\"\n href={new URL(recommendation.href, 'https://post.ch').href}\n data-suggestion-text={recommendation.label}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n onClick={() => this.trackRecommendationClick(recommendation)}\n >\n <span\n class=\"search-recommendation__icon\"\n innerHTML={recommendation.inlineSvg}\n ></span>\n <span>{recommendation.label}</span>\n </a>\n </li>\n ))}\n {isParcelTrackingNr && (\n <li>\n <a\n class=\"nav-link parcel-suggestion\"\n href={this.parcelSuggestion!.url}\n data-suggestion-text={this.searchBox?.value}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-letter-parcel\" />\n <span class=\"bold\">{this.parcelSuggestion?.sending?.id}:&nbsp;</span>\n <span>\n {[\n this.parcelSuggestion?.sending?.product,\n ' ' + this.parcelSuggestion?.sending?.recipient.zipcode,\n ' ' + this.parcelSuggestion?.sending?.recipient.city,\n ', ' + this.parcelSuggestion?.sending?.state,\n ]\n .filter(s => s !== '' && s !== ' ')\n .join('')}\n </span>\n </a>\n </li>\n )}\n {!showPortalRecommendations &&\n this.coveoSuggestions &&\n this.coveoSuggestions.map(suggestion => (\n <li key={suggestion.objectId}>\n <a\n class=\"nav-link\"\n href={suggestion.redirectUrl}\n data-suggestion-text={suggestion.expression}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-search\" />\n <HighlightedText text={suggestion.highlighted} />\n </a>\n </li>\n ))}\n {!showPortalRecommendations &&\n this.placeSuggestions &&\n this.placeSuggestions.map(suggestion => (\n <li key={suggestion.id}>\n <a\n class=\"nav-link\"\n href={getPlacesUrl(suggestion)}\n data-suggestion-text={suggestion.name}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-place\" />\n <HighlightedText\n text={highlightPlacesString(\n this.searchBox?.value?.trim(),\n suggestion.name,\n )}\n />\n </a>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </div>\n </div>\n </If>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["parcelController","getTrackAndTraceApiUrl","id","lang","state","currentLanguage","encodeURIComponent","getTrackAndTraceRedirectUrl","query","packageTrackingRedirectUrl","replace","isParcel","async","searchConfig","parcelInfo","getParcelInfo","redirectPattern","trackingNrPattern","RegExp","test","url","abort","AbortController","Promise","resolve","reject","fetch","signal","then","response","json","trackAndTraceResult","Object","assign","ok","catch","error","name","console","message","timestamp","Date","toDateString","getParcelSuggestion","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","suggestionsController","getCoveoSuggestions","_b","_d","_c","isCustomSuggestionHidden","config","searchHubName","searchPipelineName","method","headers","Authorization","coveoJSON","completions","map","completion","redirectUrl","expression","gisAPIUrl","placesUrl","hardNormalize","str","toLowerCase","normalize","placesController","queryPlaces","searchParameters","entries","limit","reduce","s","k","v","i","geocodeJSON","Error","info","locations","highlightPlacesString","place","reference","q","indexOfQuery","indexOf","substring","getPlacesUrl","location","HighlightedText","props","highlightClass","highlightedString","text","h","innerHTML","postSearchCss","PostSearchStyle0","PostSearch","connectedCallback","this","throttledResize","throttle","handleResize","window","addEventListener","passive","disconnectedCallback","removeEventListener","clearAllBodyScrollLocks","componentWillUpdate","searchFlyout","searchDropdownOpen","classList","remove","elementHasTransition","userPrefersReducedMotion","event","propertyName","componentDidUpdate","getBoundingClientRect","add","searchBox","focus","preventScroll","toggleDropdown","force","dropdownToggled","emit","open","element","host","coveoSuggestions","placeSuggestions","value","setFocus","setBodyScroll","shadowRoot","toggleButton","querySelector","innerWidth","disableBodyScroll","enableBodyScroll","handleSearchInput","trim","clearButton","style","visibility","trackAndTraceInfo","all","parcelSuggestion","deselectSuggestion","handleClearSearchBox","handleKeyDown","selectedSuggestion","selectedHref","getAttribute","suggestions","querySelectorAll","key","href","startSearch","parentElement","nextElementSibling","firstElementChild","updateSearchBoxWithSuggestion","_e","previousElementSibling","handleMouseEnterSuggestion","target","handleMouseLeaveSuggestions","suggestedText","dataset","suggestionText","trackRecommendationClick","recommendation","trackingAttributes","additionalAttributes","acc","curr","dataLayer","push","link_url","label","type","render","translations","isParcelTrackingNr","showPortalRecommendations","searchRecommendations","links","Host","role","SvgSprite","class","onClick","e","searchToggleExpanded","searchToggle","SvgIcon","If","condition","ref","placeholder","flyoutSearchBoxFloatingLabel","autocomplete","el","onInput","onKeyDown","htmlFor","translate","searchSubmit","title","onMouseLeave","URL","onMouseEnter","inlineSvg","_f","sending","_h","_g","product","_k","_j","recipient","zipcode","_m","_l","city","_p","_o","filter","join","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\nlet parcelController: AbortController;\n\n// https://www.post.ch/api/trackandtrace?id=99.00.306600.01004883\n\n// Track and trace URL\nexport const getTrackAndTraceApiUrl = (id: string) => {\n const lang = state.currentLanguage;\n return `https://www.post.ch/${lang}/api/trackandtrace?id=${encodeURIComponent(id)}`;\n};\n\n// Get the redire\nexport const getTrackAndTraceRedirectUrl = (\n query: string,\n { packageTrackingRedirectUrl }: ISearchConfig,\n) => {\n return packageTrackingRedirectUrl.replace('{trackingNumber}', encodeURIComponent(query));\n};\n\n/**\n * Check whether a query is a tracking id\n *\n * @param query User query\n * @returns Boolean\n */\nexport const isParcel = async (query: string, searchConfig: ISearchConfig): Promise<boolean> => {\n const parcelInfo = await getParcelInfo(query, searchConfig);\n return 'sending' in parcelInfo;\n};\n\n/**\n * Try to get parcel info from a query that is possibly a tracking id.\n * This is mainly used to check if a search should redirect to track&trace instead of the regular search.\n *\n * @param query User query that is possibly a tracking number\n * @returns Track and trace info\n */\nexport const getParcelInfo = async (\n query: string,\n { redirectPattern }: ISearchConfig,\n): Promise<TrackAndTraceInfo> => {\n const trackingNrPattern = new RegExp(redirectPattern);\n\n if (trackingNrPattern.test(query)) {\n const url = getTrackAndTraceApiUrl(query);\n\n if (parcelController) parcelController.abort();\n parcelController = new AbortController();\n\n return new Promise((resolve, reject) => {\n fetch(url, { signal: parcelController.signal })\n .then(response => response.json())\n .then((trackAndTraceResult: TrackAndTraceInfo) => {\n resolve({ ...trackAndTraceResult, ok: trackAndTraceResult.ok });\n })\n .catch(error => {\n if (error.name !== 'AbortError') {\n console.error(`Could not check track and trace API due to error: ${error.message}`);\n reject(error);\n }\n });\n });\n }\n\n return { ok: false, timestamp: new Date().toDateString() };\n};\n\n/**\n * Get parcel info if query is a parcel or null\n *\n * @param query Parcel id\n * @returns Parcel info and a redirect url or null if not a parcel\n */\nexport const getParcelSuggestion = async (\n query: string,\n searchConfig: ISearchConfig,\n): Promise<(TrackAndTraceInfo & { url: string }) | null> => {\n const parcelInfo = await getParcelInfo(query, searchConfig);\n return parcelInfo.ok\n ? { ...parcelInfo, url: getTrackAndTraceRedirectUrl(query, searchConfig) }\n : null;\n};\n","import { state } from '../../data/store';\nimport { ISearchConfig } from '../../models/header.model';\nimport { getTrackAndTraceRedirectUrl, isParcel } from './parcel.service';\n\n/**\n * Construct a search page url from a query\n *\n * @param query Search term\n * @returns\n */\nexport const getSearchRedirectUrl = async (\n query: string,\n searchConfig: ISearchConfig,\n): Promise<string | undefined> => {\n const isTrackTraceId = await isParcel(query, searchConfig);\n return isTrackTraceId\n ? getTrackAndTraceRedirectUrl(query, searchConfig)\n : getSearchPageUrl(query);\n};\n\n/**\n * Stitch toghether the search page URL\n *\n * @param query Search term\n * @returns Search page URL\n */\nexport const getSearchPageUrl = (query: string): string | undefined => {\n if (state.localizedConfig?.header.search === undefined) {\n return;\n }\n const { searchPageUrl } = state.localizedConfig.header.search;\n const searchParam = `#q=${encodeURIComponent(query)}`;\n return `${searchPageUrl}${searchParam}&t=AllTab`;\n};\n\n/**\n * Equalize the length of two arrays while filling up empty slots up to max. length\n *\n * @param arrayA First array\n * @param arrayB Second array\n * @param maxLength Max. length of result array\n * @returns Array with two resulting arrays\n */\nexport const equalizeArrays = <A, B>(arrayA: A[], arrayB: B[], maxLength = 7): [A[], B[]] => {\n const coveoSliced = arrayA.slice(0, Math.max(maxLength / 2, maxLength - arrayB.length));\n return [coveoSliced, arrayB.slice(0, maxLength - coveoSliced.length)];\n};\n","import { CoveoOptions } from '../../models/coveo.model';\n\n// Coveo constants\nexport const coveo: CoveoOptions = {\n url: 'https://platform-eu.cloud.coveo.com/rest/search/v2/querySuggest',\n environment: {\n prod: {\n organisation: 'postchagprod6ef4sbet',\n token: 'xx5b629890-23b9-4fbe-b601-0e8719186969',\n },\n int01: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n int02: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n dev01: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n dev02: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n devs1: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n test: {\n organisation: 'postchagnonprods5sq57qt',\n token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',\n },\n },\n};\n","import { state } from '../../data/store';\nimport { CoveoCompletion, CoveoResponse } from '../../models/coveo.model';\nimport { coveo } from './coveo.settings';\nimport { getSearchPageUrl } from './search.service';\n\nlet suggestionsController: AbortController;\n\n/**\n * Get suggestions from coveo\n * https://docs.coveo.com/en/1459/build-a-search-ui/get-query-suggestions#context-object\n *\n * @param query Search term\n * @returns\n */\nexport const getCoveoSuggestions = async (query: string): Promise<CoveoCompletion[]> => {\n if (\n state.localizedConfig?.header?.search === undefined ||\n state.localizedConfig?.header?.search.isCustomSuggestionHidden === true\n )\n return [];\n const config = state.localizedConfig.header.search;\n const { token, organisation } = coveo.environment[state.environment];\n const url = `${coveo.url}?q=${query}&locale=${state.currentLanguage}&searchHub=${config.searchHubName}&pipeline=${config.searchPipelineName}&organizationId=${organisation}`;\n\n if (suggestionsController) suggestionsController.abort();\n suggestionsController = new AbortController();\n\n return new Promise((resolve, reject) => {\n fetch(url, {\n signal: suggestionsController.signal,\n method: 'GET',\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })\n .then(response => response.json())\n .then((coveoJSON: CoveoResponse) => {\n resolve(\n coveoJSON.completions.map(completion => ({\n ...completion,\n redirectUrl: getSearchPageUrl(completion.expression),\n })),\n );\n })\n .catch(error => {\n if (error.name !== 'AbortError') {\n console.error(\n `Fetching coveo suggestions failed, ${error}\\nDid you add \"*.coveo.com\" to your connect-src content security policy and tried turning off your adblocker?`,\n );\n reject(error);\n }\n });\n });\n};\n","// Implement some TOPOS logic into the header search\nexport const gisAPIUrl = 'https://places.post.ch/StandortSuche/StaoCacheService';\nexport const placesUrl = 'https://places.post.ch';\nexport const pois = [\n '001PST',\n '001MP24',\n '001AG-PICK',\n '001PFFIL',\n '001PFST',\n '001BZ',\n '001LZB',\n '001PZ',\n '001LZP',\n '001AL',\n];\n","/**\n * Transform to lowercase, extract accents to separate unicode chars,\n * replace all accent unicode chars so only standard latin chars remain\n * https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript/37511463#37511463\n *\n * @param str Input string\n * @returns\n */\nexport const hardNormalize = (str: string): string =>\n str\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n","import { state } from '../../data/store';\nimport { GeocodeLocation, GeocodeResponse } from '../../models/geocode.model';\nimport { gisAPIUrl, placesUrl } from './places.settings';\nimport { hardNormalize } from './search-utilities';\n\nlet placesController: AbortController;\n\n/**\n * Query the Gis API for locations and localities (pois)\n *\n * @param query User input string\n * @returns\n */\nexport const queryPlaces = async (query: string): Promise<GeocodeLocation[]> => {\n if (query.length === 0) {\n return [];\n }\n\n const searchParameters = Object.entries({\n query: encodeURIComponent(query),\n lang: state.currentLanguage,\n limit: 7,\n }).reduce((s, [k, v], i) => `${s}${i === 0 ? '?' : '&'}${k}=${v}`, '');\n\n const url = `${gisAPIUrl}/Geocode${searchParameters}`;\n\n if (placesController) placesController.abort();\n placesController = new AbortController();\n\n return new Promise((resolve, reject) => {\n fetch(url, { signal: placesController.signal })\n .then(response => response.json())\n .then((geocodeJSON: GeocodeResponse) => {\n if (!geocodeJSON.ok) throw new Error(geocodeJSON.info);\n resolve(geocodeJSON.locations);\n })\n .catch(error => {\n if (error.name !== 'AbortError') {\n console.error(\n `Fetching places failed, ${error}\\nDid you add \"places.post.ch\" to your connect-src content security policy?`,\n );\n reject(error);\n }\n });\n });\n};\n\n/**\n * Try to highlight place suggestions\n * Limitation: accented chars are not handled by this basic function\n *\n * @param query Search term\n * @param place Name of the suggested place\n * @returns\n */\nexport const highlightPlacesString = (query: string | undefined, place: string) => {\n if (query === undefined) return place;\n\n // Strip accents from the string\n const reference = hardNormalize(place);\n const q = hardNormalize(query);\n const indexOfQuery = reference.indexOf(q);\n\n if (indexOfQuery < 0) {\n return place;\n }\n\n return `${place.substring(0, indexOfQuery)}{${place.substring(\n indexOfQuery,\n indexOfQuery + query.length,\n )}}${place.substring(indexOfQuery + query.length, place.length)}`;\n};\n\n/**\n * Get the deeplink to any location found via geocoder\n *\n * @param location A location from the Gis API Geocode endpoint\n * @returns\n */\nexport const getPlacesUrl = (location: GeocodeLocation): string => {\n let url: string;\n\n if (location.id) {\n url = `${placesUrl}/${state.currentLanguage}/${location.id}/detail`;\n } else {\n url = `${placesUrl}?preselecttext=${encodeURIComponent(location.name)}`;\n }\n\n return url;\n};\n","import { h } from '@stencil/core';\n\nexport const HighlightedText = (props: { text: string; highlightClass?: string }) => {\n const highlightClass = props.highlightClass ?? 'bold';\n const highlightedString = props.text\n .replace(/[{(]/g, `<span class=\"${highlightClass}\">`)\n .replace(/[})]/g, '</span>')\n .replace(/[\\[\\]]/g, '');\n return <span innerHTML={highlightedString}></span>;\n};\n","@use '@swisspost/design-system-styles/core' as post;\n@use '@swisspost/design-system-styles/variables/color';\n@use '@swisspost/design-system-styles/components/forms';\n@use '@swisspost/design-system-styles/components/floating-label';\n@use '@swisspost/design-system-styles/components/grid';\n@use '../../utils/utils.scss';\n@use '../../utils/mixins.scss';\n\n:host {\n display: block;\n}\n\n.search,\n:host {\n height: 100%;\n}\n\n.search-button {\n @extend %nav-link;\n\n height: 100%;\n display: flex;\n align-items: center;\n cursor: pointer;\n padding-right: calc(1rem - 1px);\n padding-left: calc(1rem - 1px);\n\n @include mixins.min(lg) {\n padding: 0 calc(1.125rem - 1px);\n }\n\n @include mixins.min(xl) {\n padding: 0 calc(1.5rem - 1px);\n }\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n\n .visually-hidden {\n @include mixins.between(rg, lg) {\n @include mixins.reset-visually-hidden();\n\n font-weight: 300;\n margin-right: 0.5rem;\n cursor: pointer;\n }\n }\n}\n\n.flyout {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n background: white;\n overflow: auto;\n overscroll-behavior: contain;\n padding-top: 3.25rem;\n padding-bottom: 3.25rem;\n z-index: -1;\n transform: translateY(-100%);\n transition: transform 0.35s, box-shadow 0.35s;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n @include mixins.min(lg) {\n max-height: calc(100vh - var(--header-height) - var(--meta-header-height) - 1px);\n box-shadow: 0 0 1px 0 rgb(0 0 0 / 40%);\n\n &.open {\n box-shadow: 0 0 8px 0 rgb(0 0 0 / 40%);\n }\n }\n\n @include mixins.max(lg) {\n height: calc(100vh - var(--header-height) - 1px);\n }\n\n &.open {\n transform: translateY(0);\n }\n}\n\n.form-floating {\n .form-control,\n .form-control + label {\n padding-right: post.$input-padding-x * 5;\n }\n}\n\n.start-search-button,\n.clear-search-button {\n position: absolute;\n top: 0;\n right: 0;\n height: 100%;\n padding-right: 1rem;\n padding-left: 0.5rem;\n display: flex;\n align-items: center;\n cursor: pointer;\n background: none;\n border: 0;\n box-shadow: none;\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n}\n\n.clear-search-button {\n right: 3rem;\n padding-right: 0.5rem;\n visibility: hidden;\n}\n\n.suggestions {\n margin: 1.5rem 0;\n\n a {\n padding: 0.75rem 1rem;\n\n &:hover,\n &:focus,\n &.selected {\n background: color.$gray-background;\n }\n\n &.parcel-suggestion {\n flex-wrap: wrap;\n }\n }\n}\n\n.search-recommendation__icon {\n height: 1.5em;\n width: 1.5em;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, State } from '@stencil/core';\nimport { throttle } from 'throttle-debounce';\nimport { clearAllBodyScrollLocks, disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { state } from '../../data/store';\nimport { CoveoCompletion } from '../../models/coveo.model';\nimport { GeocodeLocation } from '../../models/geocode.model';\nimport { TagManagerDataLayer } from '../../models/general.model';\nimport {\n DropdownElement,\n DropdownEvent,\n HasDropdown,\n ISearchRecommendation,\n IsFocusable,\n} from '../../models/header.model';\nimport { equalizeArrays, getSearchRedirectUrl } from '../../services/search/search.service';\nimport { getCoveoSuggestions } from '../../services/search/coveo.service';\nimport {\n getPlacesUrl,\n highlightPlacesString,\n queryPlaces,\n} from '../../services/search/places.service';\nimport { elementHasTransition, userPrefersReducedMotion } from '../../services/ui.service';\nimport { HighlightedText } from '../../utils/highlighted.component';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { TrackAndTraceInfo } from '../../models/track-and-trace.model';\nimport { getParcelSuggestion } from '../../services/search/parcel.service';\nimport { If } from '../../utils/if.component';\nimport { translate } from '../../services/language.service';\n\n@Component({\n tag: 'post-search',\n styleUrl: 'post-search.scss',\n shadow: true,\n})\nexport class PostSearch implements HasDropdown, IsFocusable {\n @State() searchDropdownOpen = false;\n @State() coveoSuggestions: CoveoCompletion[] = [];\n @State() placeSuggestions: GeocodeLocation[] = [];\n @State() parcelSuggestion: (TrackAndTraceInfo & { url: string }) | null = null;\n @Event() dropdownToggled: EventEmitter<DropdownEvent>;\n @Element() host: DropdownElement;\n private searchBox?: HTMLInputElement;\n private searchFlyout: HTMLElement | undefined;\n private throttledResize: throttle<() => void>;\n private clearButton?: HTMLButtonElement;\n\n connectedCallback() {\n this.throttledResize = throttle(300, () => this.handleResize());\n window.addEventListener('resize', this.throttledResize, { passive: true });\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.throttledResize);\n clearAllBodyScrollLocks();\n }\n\n componentWillUpdate() {\n // Check if search flyout got set to close\n if (this.searchFlyout && !this.searchDropdownOpen) {\n this.searchFlyout.classList.remove('open');\n\n // Check if element has transition applied and whether user prefers to see animations or not\n if (elementHasTransition(this.searchFlyout, 'transform') && !userPrefersReducedMotion()) {\n // Wait for CSS transition 'transform' to end before continuing\n return new Promise<boolean>(resolve => {\n if (this.searchFlyout === undefined) {\n return resolve(true);\n }\n\n this.searchFlyout.addEventListener('transitionend', event => {\n if (event.propertyName === 'transform') {\n resolve(true);\n }\n });\n });\n }\n }\n }\n\n componentDidUpdate() {\n // Search flyout got set to open\n if (this.searchFlyout && this.searchDropdownOpen) {\n // Force browser to redraw/refresh DOM before adding 'open' class\n this.searchFlyout.getBoundingClientRect();\n this.searchFlyout.classList.add('open');\n }\n\n // Focus on the searchBox whenever the dropdown is opened\n if (this.searchDropdownOpen && this.searchBox) {\n this.searchBox.focus({ preventScroll: true });\n }\n }\n\n public async toggleDropdown(event?: Event): Promise<boolean>;\n public async toggleDropdown(force?: boolean): Promise<boolean>;\n\n /**\n * Toggle the dropdown and optionally force an open/closed state\n * @param force Boolean to force open/closed state\n * @returns Boolean indicating open state of the component\n */\n @Method()\n async toggleDropdown(force?: unknown) {\n this.searchDropdownOpen =\n force === undefined || typeof force !== 'boolean' ? !this.searchDropdownOpen : force;\n this.dropdownToggled.emit({ open: this.searchDropdownOpen, element: this.host });\n\n if (!this.searchDropdownOpen) {\n // Reset suggestions when dropdown closes\n this.coveoSuggestions = [];\n this.placeSuggestions = [];\n if (this.searchBox) this.searchBox.value = '';\n void this.setFocus();\n } else {\n // Get basic suggestions when dropdown opens\n try {\n this.coveoSuggestions = await getCoveoSuggestions('');\n } catch {}\n }\n\n this.setBodyScroll();\n\n return this.searchDropdownOpen;\n }\n\n /**\n * Sets the focus on the search button\n */\n @Method()\n public async setFocus() {\n const shadowRoot = this.host.shadowRoot;\n if (shadowRoot === null) {\n return;\n }\n const toggleButton = shadowRoot.querySelector<HTMLElement>('.search-button');\n if (toggleButton) {\n toggleButton.focus();\n }\n }\n\n private handleResize() {\n // Only enable/disable body scroll on resize if the search dropdown is open, otherwise this could lead to side effects in other controls\n if (this.searchDropdownOpen) {\n this.setBodyScroll();\n }\n }\n\n /**\n * Disable or re-enable body scrolling, depending on whether search dropdown is open or closed in mobile view (width < 1024px)\n */\n private setBodyScroll() {\n if (!this.searchFlyout) {\n return;\n }\n\n if (this.searchDropdownOpen && window.innerWidth < 1024) {\n disableBodyScroll(this.searchFlyout);\n } else {\n enableBodyScroll(this.searchFlyout);\n }\n }\n\n /**\n * Fetch suggestions from all available sources\n */\n private async handleSearchInput() {\n if (this.searchBox === undefined || state.localizedConfig?.header.search === undefined) {\n return;\n }\n const query = this.searchBox.value.trim();\n\n // shows or hides clearButton depending on the content of the searchbar\n if (this.clearButton) {\n if (query !== '') {\n this.clearButton.style.visibility = 'visible';\n } else {\n this.clearButton.style.visibility = 'hidden';\n }\n }\n\n const [placeSuggestions, coveoSuggestions, trackAndTraceInfo] = await Promise.all([\n queryPlaces(query),\n getCoveoSuggestions(query),\n getParcelSuggestion(query, state.localizedConfig.header.search),\n ]);\n\n this.parcelSuggestion = trackAndTraceInfo;\n\n // Parcel suggestion is more important than any other\n if (trackAndTraceInfo) {\n this.placeSuggestions = [];\n this.coveoSuggestions = [];\n } else {\n [this.coveoSuggestions, this.placeSuggestions] = equalizeArrays(\n coveoSuggestions,\n placeSuggestions,\n 7,\n );\n }\n\n this.deselectSuggestion();\n }\n\n /**\n * clear Search box\n * calls handleSearchInput to update/remove suggestions\n */\n private handleClearSearchBox() {\n if (this.searchBox !== undefined) {\n this.searchBox.value = '';\n this.handleSearchInput();\n }\n }\n\n /**\n * Start search on enter\n * @param event\n */\n private handleKeyDown(event: KeyboardEvent) {\n if (this.searchFlyout === undefined) {\n return;\n }\n\n const selectedSuggestion = this.searchFlyout.querySelector<HTMLElement>(\n '.suggestions > li > a.selected',\n );\n const selectedHref = selectedSuggestion?.getAttribute('href') ?? null;\n const suggestions = this.searchFlyout.querySelectorAll('.suggestions > li > a');\n\n switch (event.key.toLowerCase()) {\n case 'enter':\n if (selectedHref !== null) {\n window.location.href = selectedHref;\n } else {\n void this.startSearch();\n }\n\n break;\n case 'arrowdown':\n this.deselectSuggestion();\n\n if (selectedSuggestion?.parentElement?.nextElementSibling?.firstElementChild) {\n // Select next suggestion if there's any, otherwise none will be selected\n selectedSuggestion.parentElement.nextElementSibling.firstElementChild.classList.add(\n 'selected',\n );\n // If there are any suggestions, select first suggestion in list\n } else if (suggestions.length > 0) {\n suggestions[0].classList.add('selected');\n }\n\n this.updateSearchBoxWithSuggestion();\n\n break;\n case 'arrowup':\n this.deselectSuggestion();\n\n if (selectedSuggestion?.parentElement?.previousElementSibling?.firstElementChild) {\n // Select previous suggestion if there's any, otherwise none will be selected\n\n selectedSuggestion.parentElement.previousElementSibling.firstElementChild.classList.add(\n 'selected',\n );\n // If there are any suggestions, select last suggestion in list\n } else if (suggestions.length > 0) {\n suggestions[suggestions.length - 1].classList.add('selected');\n }\n\n this.updateSearchBoxWithSuggestion();\n\n break;\n }\n }\n\n /**\n * Set selected suggestion on mouse enter\n * @param event\n */\n private handleMouseEnterSuggestion(event: MouseEvent) {\n this.deselectSuggestion();\n\n // Set hovered suggestion element as selected\n (event.target as HTMLElement).classList.add('selected');\n }\n\n /**\n * Set selected suggestion on mouse enter\n * @param event\n */\n private handleMouseLeaveSuggestions() {\n this.deselectSuggestion();\n }\n\n /**\n * Deselect any previously selected suggestion\n */\n private deselectSuggestion() {\n if (this.searchFlyout === undefined) return;\n\n const selectedSuggestion = this.searchFlyout.querySelector('.suggestions .selected');\n\n if (selectedSuggestion) {\n selectedSuggestion.classList.remove('selected');\n }\n }\n\n /**\n * Update search box with selected suggestion\n */\n private updateSearchBoxWithSuggestion() {\n if (this.searchFlyout === undefined) return;\n\n // Get the newly selected suggestion\n const selectedSuggestion = this.searchFlyout.querySelector<HTMLElement>(\n '.suggestions > li > a.selected',\n );\n const suggestedText = selectedSuggestion?.dataset.suggestionText;\n\n // Update search box value with selected suggestion text\n if (suggestedText !== undefined && this.searchBox) {\n this.searchBox.value = suggestedText;\n }\n }\n\n /**\n * Redirect to the post search page\n */\n private async startSearch() {\n if (this.searchBox && state.localizedConfig?.header.search) {\n const redirectUrl = await getSearchRedirectUrl(\n this.searchBox.value.trim(),\n state.localizedConfig.header.search,\n );\n if (!redirectUrl) return;\n window.location.href = redirectUrl;\n }\n }\n\n private trackRecommendationClick(recommendation: ISearchRecommendation) {\n if (!('dataLayer' in window)) return;\n\n const trackingAttributes = recommendation.additionalAttributes.reduce((acc, curr) => {\n acc[curr.name] = curr.value;\n return acc;\n }, {});\n\n (window.dataLayer as TagManagerDataLayer).push({\n event: trackingAttributes['data-event'],\n text: trackingAttributes['data-text'],\n link_url: trackingAttributes['data-linkurl'],\n label: trackingAttributes['data-label'],\n type: trackingAttributes['data-type'],\n });\n }\n\n render() {\n if (state.localizedConfig?.header === undefined) {\n return;\n }\n const { translations, search } = state.localizedConfig.header;\n const isParcelTrackingNr = this.parcelSuggestion && 'sending' in this.parcelSuggestion;\n const showPortalRecommendations =\n this.searchBox?.value === '' && search.searchRecommendations?.links.length > 0;\n\n return (\n <Host role=\"search\">\n <SvgSprite />\n <div class=\"search\">\n <button\n id=\"post-internet-header-search-button\"\n class=\"search-button\"\n type=\"button\"\n aria-expanded={`${this.searchDropdownOpen}`}\n onClick={e => void this.toggleDropdown(e)}\n >\n <span class=\"visually-hidden\">\n {this.searchDropdownOpen\n ? translations.searchToggleExpanded\n : translations.searchToggle}\n </span>\n <SvgIcon name={this.searchDropdownOpen ? 'pi-close' : 'pi-search'} />\n </button>\n <If condition={this.searchDropdownOpen}>\n <div class=\"flyout\" ref={e => (this.searchFlyout = e)}>\n <div class=\"container box\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-md-10 col-lg-8\">\n <div class=\"form-group form-floating\">\n <input\n type=\"text\"\n role=\"searchbox\"\n id=\"searchBox\"\n class=\"form-control form-control-lg\"\n placeholder={translations.flyoutSearchBoxFloatingLabel}\n autocomplete=\"off\"\n ref={el => (this.searchBox = el)}\n onInput={() => void this.handleSearchInput()}\n onKeyDown={e => this.handleKeyDown(e)}\n />\n <label htmlFor=\"searchBox\">{translations.flyoutSearchBoxFloatingLabel}</label>\n <button\n onClick={() => this.handleClearSearchBox()}\n class=\"clear-search-button\"\n type=\"reset\"\n id=\"clearButton\"\n ref={el => (this.clearButton = el)}\n >\n <span class=\"visually-hidden\">{translate('Delete search term')}</span>\n <SvgIcon name=\"pi-close\" />\n </button>\n <button onClick={() => void this.startSearch()} class=\"start-search-button\">\n <span class=\"visually-hidden\">{translations.searchSubmit}</span>\n <SvgIcon name=\"pi-search\" />\n </button>\n </div>\n {showPortalRecommendations && (\n <h2 id=\"post-internet-header-search-recommendations-title\" class=\"bold\">\n {search.searchRecommendations.title}\n </h2>\n )}\n <ul\n class=\"suggestions no-list\"\n onMouseLeave={() => this.handleMouseLeaveSuggestions()}\n aria-labelledby={\n showPortalRecommendations\n ? 'post-internet-header-search-recommendations-title'\n : undefined\n }\n >\n {showPortalRecommendations &&\n search.searchRecommendations.links.map(recommendation => (\n <li key={recommendation.href}>\n <a\n class=\"nav-link search-recommendation\"\n href={new URL(recommendation.href, 'https://post.ch').href}\n data-suggestion-text={recommendation.label}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n onClick={() => this.trackRecommendationClick(recommendation)}\n >\n <span\n class=\"search-recommendation__icon\"\n innerHTML={recommendation.inlineSvg}\n ></span>\n <span>{recommendation.label}</span>\n </a>\n </li>\n ))}\n {isParcelTrackingNr && (\n <li>\n <a\n class=\"nav-link parcel-suggestion\"\n href={this.parcelSuggestion!.url}\n data-suggestion-text={this.searchBox?.value}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-letter-parcel\" />\n <span class=\"bold\">{this.parcelSuggestion?.sending?.id}:&nbsp;</span>\n <span>\n {[\n this.parcelSuggestion?.sending?.product,\n ' ' + this.parcelSuggestion?.sending?.recipient.zipcode,\n ' ' + this.parcelSuggestion?.sending?.recipient.city,\n ', ' + this.parcelSuggestion?.sending?.state,\n ]\n .filter(s => s !== '' && s !== ' ')\n .join('')}\n </span>\n </a>\n </li>\n )}\n {!showPortalRecommendations &&\n this.coveoSuggestions &&\n this.coveoSuggestions.map(suggestion => (\n <li key={suggestion.objectId}>\n <a\n class=\"nav-link\"\n href={suggestion.redirectUrl}\n data-suggestion-text={suggestion.expression}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-search\" />\n <HighlightedText text={suggestion.highlighted} />\n </a>\n </li>\n ))}\n {!showPortalRecommendations &&\n this.placeSuggestions &&\n this.placeSuggestions.map(suggestion => (\n <li key={suggestion.id}>\n <a\n class=\"nav-link\"\n href={getPlacesUrl(suggestion)}\n data-suggestion-text={suggestion.name}\n onMouseEnter={e => this.handleMouseEnterSuggestion(e)}\n >\n <SvgIcon name=\"pi-place\" />\n <HighlightedText\n text={highlightPlacesString(\n this.searchBox?.value?.trim(),\n suggestion.name,\n )}\n />\n </a>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </div>\n </div>\n </If>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{h as t,r as e,H as r}from"./p-3abbb0bc.js";import{s as o}from"./p-2133f8ff.js";import{S as i}from"./p-b62ac44c.js";import{t as l}from"./p-3e59929c.js";const n=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 a=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 g=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 s=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(g,{key:e.name,content:e}))));const b=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 d=e=>t("button",{class:"hours btn btn-link",id:"liveSupport",type:"button",onClick:f,innerHTML:b(e.hours)});const m=e=>t("div",{class:"block-contact"},t("h3",null,e.block.title),e.block.content&&e.block.content.map(((r,o)=>{const i=o===e.block.content.length-1&&r.text==="Live Support";if(i&&!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&&i&&t(d,{hours:r.hours}),r.hours&&!i&&t("p",{class:"hours",innerHTML:b(r.hours)}),r.describe?t("p",{class:"describe"},r.describe):null)})));const x='/*!\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 */:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:400px;--bs-breakpoint-rg:600px;--bs-breakpoint-md:780px;--bs-breakpoint-lg:1024px;--bs-breakpoint-xl:1280px;--bs-breakpoint-xxl:1441px}.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)*.5);padding-left:calc(var(--bs-gutter-x)*.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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-xxl,.container-xl{--bs-gutter-x:30px;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media (min-width: 1280px){.container-xl,.container-lg,.container-md,.container-rg,.container-sm,.container{max-width:1280px}}@media (min-width: 1441px){.container-xxl,.container-xl,.container-lg,.container-md,.container-rg,.container-sm,.container{max-width:1440px}}.container{padding-inline:var(--post-container-padding-x)}.container-fluid{padding-inline:var(--post-container-fluid-padding-x)}.container{--post-container-padding-x:12px}.container-fluid{--post-container-fluid-padding-x:12px}.row{--bs-gutter-x:12px}@media (min-width: 400px){.container{--post-container-padding-x:16px}}@media (min-width: 400px){.container-fluid{--post-container-fluid-padding-x:16px}}@media (min-width: 400px){.row{--bs-gutter-x:16px}}@media (min-width: 780px){.container{--post-container-padding-x:32px}}@media (min-width: 780px){.container-fluid{--post-container-fluid-padding-x:32px}}@media (min-width: 1280px){.container{--post-container-padding-x:40px}}@media (min-width: 1441px){.container{--post-container-padding-x:120px}}.g-0,.gx-0{--bs-gutter-x:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}@media (min-width: 400px){.g-sm-0,.gx-sm-0{--bs-gutter-x:0}}@media (min-width: 400px){.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}}@media (min-width: 400px){.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}}@media (min-width: 400px){.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}}@media (min-width: 400px){.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}}@media (min-width: 400px){.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}}@media (min-width: 600px){.g-rg-0,.gx-rg-0{--bs-gutter-x:0}}@media (min-width: 600px){.g-rg-1,.gx-rg-1{--bs-gutter-x:0.25rem}}@media (min-width: 600px){.g-rg-2,.gx-rg-2{--bs-gutter-x:0.5rem}}@media (min-width: 600px){.g-rg-3,.gx-rg-3{--bs-gutter-x:1rem}}@media (min-width: 600px){.g-rg-4,.gx-rg-4{--bs-gutter-x:1.5rem}}@media (min-width: 600px){.g-rg-5,.gx-rg-5{--bs-gutter-x:3rem}}@media (min-width: 780px){.g-md-0,.gx-md-0{--bs-gutter-x:0}}@media (min-width: 780px){.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}}@media (min-width: 780px){.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}}@media (min-width: 780px){.g-md-3,.gx-md-3{--bs-gutter-x:1rem}}@media (min-width: 780px){.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}}@media (min-width: 780px){.g-md-5,.gx-md-5{--bs-gutter-x:3rem}}@media (min-width: 1024px){.g-lg-0,.gx-lg-0{--bs-gutter-x:0}}@media (min-width: 1024px){.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}}@media (min-width: 1024px){.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}}@media (min-width: 1024px){.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}}@media (min-width: 1024px){.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}}@media (min-width: 1024px){.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}}@media (min-width: 1280px){.g-xl-0,.gx-xl-0{--bs-gutter-x:0}}@media (min-width: 1280px){.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}}@media (min-width: 1280px){.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}}@media (min-width: 1280px){.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}}@media (min-width: 1280px){.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}}@media (min-width: 1280px){.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}}@media (min-width: 1441px){.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}}@media (min-width: 1441px){.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}}@media (min-width: 1441px){.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}}@media (min-width: 1441px){.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}}@media (min-width: 1441px){.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}}@media (min-width: 1441px){.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}}.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-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-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)and (max-width: 779.98px){.container-fluid-rg{padding-right:1rem;padding-left:1rem}}@media (min-width: 780px){.container-reset{margin-right:-32px;margin-left:-32px}}@media (min-width: 780px){.container-reset-left{margin-left:-32px}}@media (min-width: 780px){.container-reset-right{margin-right:-32px}}@media (min-width: 780px)and (max-width: 1023.98px){.container-fluid-md{padding-right:1rem;padding-left:1rem}}@media (min-width: 1024px)and (max-width: 1279.98px){.container-fluid-lg{padding-right:1rem;padding-left:1rem}}@media (min-width: 1280px){.container-reset{margin-right:-40px;margin-left:-40px}}@media (min-width: 1280px){.container-reset-left{margin-left:-40px}}@media (min-width: 1280px){.container-reset-right{margin-right:-40px}}@media (min-width: 1280px)and (max-width: 1440.98px){.container-fluid-xl{padding-right:1rem;padding-left:1rem}}@media (min-width: 1441px){.container-reset{margin-right:-120px;margin-left:-120px}}@media (min-width: 1441px){.container-reset-left{margin-left:-120px}}@media (min-width: 1441px){.container-reset-right{margin-right:-120px}}@media (min-width: 1441px){.container-fluid-xxl{padding-right:1rem;padding-left:1rem}}.btn-default,.btn-secondary{border:2px solid var(--post-gray-60)}.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)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-default,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-secondary{border-color:var(--post-contrast-color)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-default:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-secondary:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-default:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-secondary:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .pretend-hover.btn-default,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .pretend-hover.btn-secondary{border-color:var(--post-gray-40)}.btn-default:disabled,.btn-secondary:disabled{border-color:var(--post-gray-40);color:var(--post-gray-60)}.btn-default:focus,.btn-secondary:focus,.btn-link:focus,.btn-tertiary:focus,.btn-default:not(:disabled):hover,.btn-secondary:not(:disabled):hover,.btn-link:not(:disabled):hover,.btn-tertiary:not(:disabled):hover,.pretend-hover.btn-default,.pretend-hover.btn-secondary,.pretend-hover.btn-link,.pretend-hover.btn-tertiary{color:var(--post-contrast-color)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-default .pi,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-secondary .pi,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-link .pi,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-tertiary .pi{-webkit-filter:invert(1);filter:invert(1)}.btn{min-height:3rem;font-size:1rem;gap:.625rem;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:4px;background-color:rgba(0,0,0,0);-webkit-box-shadow:none;box-shadow:none;color:var(--post-gray-80);font-family:inherit;font-weight:400;text-decoration:none !important;white-space:nowrap}.btn:where(:not(.btn-link,.btn-tertiary)){padding:0 1rem}.btn>.pi,.btn>post-icon{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:rgba(0,0,0,0);background-color:var(--post-gray-80);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-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-primary{background-color:var(--post-contrast-color);color:var(--post-gray-10)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-primary:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-primary:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-primary.pretend-hover{background-color:var(--post-gray-80)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-primary:disabled{color:var(--post-gray-80)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .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:var(--post-gray-40)}.btn-primary .pi{-webkit-filter:invert(1);filter:invert(1);forced-color-adjust:none}.btn-link,.btn-tertiary{border:0;padding-inline:.25rem}.btn-link:disabled,.btn-tertiary:disabled{color:var(--post-gray-60)}@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:.75rem;padding-left:.75rem}.btn-icon.btn-sm{min-width:2rem;padding-right:.375rem;padding-left:.375rem}.btn-icon.btn-rg{min-width:2.5rem;padding-right:.5625rem;padding-left:.5625rem}.btn-icon.btn-lg{min-width:3.5rem;padding-right:.9375rem;padding-left:.9375rem}.btn-animated:not(.btn-link,.btn-tertiary)::after{content:"";position:absolute;right:.5rem;width:.625em;height:.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:.25rem}.btn-animated:not(.btn-link,.btn-tertiary).btn-rg::after{right:.375rem}.btn-animated:not(.btn-link,.btn-tertiary).btn-lg::after{right:.625rem}.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.5rem);transform:translateX(-0.5rem)}.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.5rem);transform:translateX(-0.5rem)}.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(-0.5rem);transform:translateX(-0.5rem)}.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;font-size:.75rem;gap:.375rem}.btn-sm:where(:not(.btn-link,.btn-tertiary)){padding:0 .75rem}.btn-sm>.pi,.btn-sm>post-icon{width:1rem;height:1rem}.btn-rg{min-height:2.5rem;font-size:.875rem;gap:.5rem}.btn-rg:where(:not(.btn-link,.btn-tertiary)){padding:0 .875rem}.btn-rg>.pi,.btn-rg>post-icon{width:1.125rem;height:1.125rem}.btn-lg{min-height:3.5rem;font-size:1.125rem;gap:.75rem}.btn-lg:where(:not(.btn-link,.btn-tertiary)){padding:0 1.125rem}.btn-lg>.pi,.btn-lg>post-icon{width:1.375rem;height:1.375rem}.btn-nightblue{border-color:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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-info{border-color:rgba(0,0,0,0);background-color:#cce4ee;color:#000}.btn-info:focus,.btn-info:not(:disabled):hover,.btn-info.pretend-hover{background-color:#a6d0e1;color:#000}.btn-success{border-color:rgba(0,0,0,0);background-color:#2c911c;color:#fff}.btn-success:focus,.btn-success:not(:disabled):hover,.btn-success.pretend-hover{background-color:#1f6614;color:#fff}.btn-warning{border-color:rgba(0,0,0,0);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:rgba(0,0,0,0);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:700;font-style:italic;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-BdIt.woff2") format("woff2"),url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-BdIt.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:400;font-style:italic;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-It.woff2") format("woff2"),url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-It.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")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:300;font-style:italic;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-LtIt.woff2") format("woff2"),url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-LtIt.woff") format("woff")}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}.btn-blank{background-color:rgba(0,0,0,0);border:none;border-radius:0;padding:0}.nav-link{outline:none;outline-offset:2px;text-decoration:none;color:rgba(0,0,0,.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:rgba(0,0,0,0);-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:.5rem}.nav-link:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.nav-link:hover,.nav-link:focus{color:#000}.nav-link:is(:focus-visible,:focus-within,.pretend-focus){z-index:1;position:relative}.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}.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}*,: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}a,button{border-radius:4px;outline:none;outline-offset:2px}a:is(:focus-visible,:focus-within,.pretend-focus),button:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color);border-radius:4px}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:#fff}}.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}}@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 #e6e6e6}.pre-footer{padding-top:2rem;padding-bottom:2rem;border-bottom:2px solid #e6e6e6}.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:#666;-webkit-transition:color 200ms;transition:color 200ms}.link-list a:hover{color:#000}.content-row{padding:.5rem 0}h3+.content-row{padding-top:0}.content-row:last-child{padding-bottom:0}.content-row+.content-row{border-top:1px solid #e6e6e6}.content-row p,.content-row button{margin:.25rem}.text{font-weight:700}.describe{font-size:.8125rem;color:#666;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:#666;-webkit-transition:color 200ms;transition:color 200ms}.socials a:hover,.socials a:focus{color:#000}.socials svg{display:block;width:1.5rem;height:1.5rem}.copyright{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:2rem;margin-bottom:2rem;font-size:.75rem}.footer-meta-links{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.5rem;font-weight:400}';const u=class{constructor(t){e(this,t);this.liveSupportEnabled=false;this.cookieSettingsEnabled=false;this.liveSupportEnabled=this.unbluEnabled();this.cookieSettingsEnabled=this.ucUIEnabled();if(!this.liveSupportEnabled){let t;let e=0;const r=()=>{const r=this.unbluEnabled();const o=this.ucUIEnabled();const i=r&&o;if(r){this.liveSupportEnabled=true}if(o){this.cookieSettingsEnabled=true}if(i||e>=5){window.clearInterval(t)}e++};t=window.setInterval(r,1e3)}}unbluEnabled(){return typeof window["unbluLSLoad"]==="function"}ucUIEnabled(){return typeof window["UC_UI"]==="object"&&typeof window["UC_UI"]["showSecondLayer"]==="function"}handleCookieSettingsClick(){window["UC_UI"]["showSecondLayer"]()}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 g=o.localizedConfig.footer;const b=(e=o.localizedCustomConfig)===null||e===void 0?void 0:e.footer;return t(r,null,t(i,null),t("footer",{class:"post-internet-footer light font-curve-regular"},t("h2",{class:"visually-hidden"},g.title),(b===null||b===void 0?void 0:b.block)&&t(n,{block:b===null||b===void 0?void 0:b.block}),t("div",{class:"footer-container container"},g.block.filter((t=>t.columnType==="list")).map((e=>t(a,{key:e.title,block:e}))),g.block.filter((t=>t.columnType==="contact")).map((e=>t(m,{key:e.title,block:e,liveSupportEnabled:this.liveSupportEnabled}))),g.block.filter((t=>t.columnType==="address")).map((e=>t(s,{key:e.title,block:e})))),t("div",{class:"copyright container"},t("span",{class:"bold"},g.entry.text),t("ul",{class:"no-list footer-meta-links"},g.links?g.links.map((e=>t("li",{key:e.url},t("a",{class:"nav-link",href:e.url,target:e.target},e.text)))):null,this.cookieSettingsEnabled&&t("li",null,t("button",{class:"nav-link cookie-settings",onClick:this.handleCookieSettingsClick},l("Cookie Settings")))))))}};u.style=x;export{u as P};
2
- //# sourceMappingURL=p-8f6fb84d.js.map
1
+ import{h as t,r as e,H as r}from"./p-197bbbde.js";import{s as o}from"./p-f956d443.js";import{S as i}from"./p-914ada58.js";import{t as l}from"./p-94c5c08e.js";const n=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 a=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 g=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 s=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(g,{key:e.name,content:e}))));const b=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 d=e=>t("button",{class:"hours btn btn-link",id:"liveSupport",type:"button",onClick:f,innerHTML:b(e.hours)});const m=e=>t("div",{class:"block-contact"},t("h3",null,e.block.title),e.block.content&&e.block.content.map(((r,o)=>{const i=o===e.block.content.length-1&&r.text==="Live Support";if(i&&!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&&i&&t(d,{hours:r.hours}),r.hours&&!i&&t("p",{class:"hours",innerHTML:b(r.hours)}),r.describe?t("p",{class:"describe"},r.describe):null)})));const x='/*!\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 */:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:400px;--bs-breakpoint-rg:600px;--bs-breakpoint-md:780px;--bs-breakpoint-lg:1024px;--bs-breakpoint-xl:1280px;--bs-breakpoint-xxl:1441px}.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)*.5);padding-left:calc(var(--bs-gutter-x)*.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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-xxl,.container-xl{--bs-gutter-x:30px;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media (min-width: 1280px){.container-xl,.container-lg,.container-md,.container-rg,.container-sm,.container{max-width:1280px}}@media (min-width: 1441px){.container-xxl,.container-xl,.container-lg,.container-md,.container-rg,.container-sm,.container{max-width:1440px}}.container{padding-inline:var(--post-container-padding-x)}.container-fluid{padding-inline:var(--post-container-fluid-padding-x)}.container{--post-container-padding-x:12px}.container-fluid{--post-container-fluid-padding-x:12px}.row{--bs-gutter-x:12px}@media (min-width: 400px){.container{--post-container-padding-x:16px}}@media (min-width: 400px){.container-fluid{--post-container-fluid-padding-x:16px}}@media (min-width: 400px){.row{--bs-gutter-x:16px}}@media (min-width: 780px){.container{--post-container-padding-x:32px}}@media (min-width: 780px){.container-fluid{--post-container-fluid-padding-x:32px}}@media (min-width: 1280px){.container{--post-container-padding-x:40px}}@media (min-width: 1441px){.container{--post-container-padding-x:120px}}.g-0,.gx-0{--bs-gutter-x:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}@media (min-width: 400px){.g-sm-0,.gx-sm-0{--bs-gutter-x:0}}@media (min-width: 400px){.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}}@media (min-width: 400px){.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}}@media (min-width: 400px){.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}}@media (min-width: 400px){.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}}@media (min-width: 400px){.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}}@media (min-width: 600px){.g-rg-0,.gx-rg-0{--bs-gutter-x:0}}@media (min-width: 600px){.g-rg-1,.gx-rg-1{--bs-gutter-x:0.25rem}}@media (min-width: 600px){.g-rg-2,.gx-rg-2{--bs-gutter-x:0.5rem}}@media (min-width: 600px){.g-rg-3,.gx-rg-3{--bs-gutter-x:1rem}}@media (min-width: 600px){.g-rg-4,.gx-rg-4{--bs-gutter-x:1.5rem}}@media (min-width: 600px){.g-rg-5,.gx-rg-5{--bs-gutter-x:3rem}}@media (min-width: 780px){.g-md-0,.gx-md-0{--bs-gutter-x:0}}@media (min-width: 780px){.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}}@media (min-width: 780px){.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}}@media (min-width: 780px){.g-md-3,.gx-md-3{--bs-gutter-x:1rem}}@media (min-width: 780px){.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}}@media (min-width: 780px){.g-md-5,.gx-md-5{--bs-gutter-x:3rem}}@media (min-width: 1024px){.g-lg-0,.gx-lg-0{--bs-gutter-x:0}}@media (min-width: 1024px){.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}}@media (min-width: 1024px){.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}}@media (min-width: 1024px){.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}}@media (min-width: 1024px){.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}}@media (min-width: 1024px){.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}}@media (min-width: 1280px){.g-xl-0,.gx-xl-0{--bs-gutter-x:0}}@media (min-width: 1280px){.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}}@media (min-width: 1280px){.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}}@media (min-width: 1280px){.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}}@media (min-width: 1280px){.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}}@media (min-width: 1280px){.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}}@media (min-width: 1441px){.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}}@media (min-width: 1441px){.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}}@media (min-width: 1441px){.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}}@media (min-width: 1441px){.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}}@media (min-width: 1441px){.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}}@media (min-width: 1441px){.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}}.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-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-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)and (max-width: 779.98px){.container-fluid-rg{padding-right:1rem;padding-left:1rem}}@media (min-width: 780px){.container-reset{margin-right:-32px;margin-left:-32px}}@media (min-width: 780px){.container-reset-left{margin-left:-32px}}@media (min-width: 780px){.container-reset-right{margin-right:-32px}}@media (min-width: 780px)and (max-width: 1023.98px){.container-fluid-md{padding-right:1rem;padding-left:1rem}}@media (min-width: 1024px)and (max-width: 1279.98px){.container-fluid-lg{padding-right:1rem;padding-left:1rem}}@media (min-width: 1280px){.container-reset{margin-right:-40px;margin-left:-40px}}@media (min-width: 1280px){.container-reset-left{margin-left:-40px}}@media (min-width: 1280px){.container-reset-right{margin-right:-40px}}@media (min-width: 1280px)and (max-width: 1440.98px){.container-fluid-xl{padding-right:1rem;padding-left:1rem}}@media (min-width: 1441px){.container-reset{margin-right:-120px;margin-left:-120px}}@media (min-width: 1441px){.container-reset-left{margin-left:-120px}}@media (min-width: 1441px){.container-reset-right{margin-right:-120px}}@media (min-width: 1441px){.container-fluid-xxl{padding-right:1rem;padding-left:1rem}}.btn-default,.btn-secondary{border:2px solid var(--post-gray-60)}.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)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-default,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-secondary{border-color:var(--post-contrast-color)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-default:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-secondary:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-default:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-secondary:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .pretend-hover.btn-default,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .pretend-hover.btn-secondary{border-color:var(--post-gray-40)}.btn-default:disabled,.btn-secondary:disabled{border-color:var(--post-gray-40);color:var(--post-gray-60)}.btn-default:focus,.btn-secondary:focus,.btn-link:focus,.btn-tertiary:focus,.btn-default:not(:disabled):hover,.btn-secondary:not(:disabled):hover,.btn-link:not(:disabled):hover,.btn-tertiary:not(:disabled):hover,.pretend-hover.btn-default,.pretend-hover.btn-secondary,.pretend-hover.btn-link,.pretend-hover.btn-tertiary{color:var(--post-contrast-color)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-default .pi,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-secondary .pi,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-link .pi,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-tertiary .pi{-webkit-filter:invert(1);filter:invert(1)}.btn{min-height:3rem;font-size:1rem;gap:.625rem;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:4px;background-color:rgba(0,0,0,0);-webkit-box-shadow:none;box-shadow:none;color:var(--post-gray-80);font-family:inherit;font-weight:400;text-decoration:none !important;white-space:nowrap}.btn:where(:not(.btn-link,.btn-tertiary)){padding:0 1rem}.btn>.pi,.btn>post-icon{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:rgba(0,0,0,0);background-color:var(--post-gray-80);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-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-primary{background-color:var(--post-contrast-color);color:var(--post-gray-10)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-primary:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-primary:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-primary.pretend-hover{background-color:var(--post-gray-80)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .btn-primary:disabled{color:var(--post-gray-80)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-coral,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright,.bg-error-red) .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:var(--post-gray-40)}.btn-primary .pi{-webkit-filter:invert(1);filter:invert(1);forced-color-adjust:none}.btn-link,.btn-tertiary{border:0;padding-inline:.25rem}.btn-link:disabled,.btn-tertiary:disabled{color:var(--post-gray-60)}@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:.75rem;padding-left:.75rem}.btn-icon.btn-sm{min-width:2rem;padding-right:.375rem;padding-left:.375rem}.btn-icon.btn-rg{min-width:2.5rem;padding-right:.5625rem;padding-left:.5625rem}.btn-icon.btn-lg{min-width:3.5rem;padding-right:.9375rem;padding-left:.9375rem}.btn-animated:not(.btn-link,.btn-tertiary)::after{content:"";position:absolute;right:.5rem;width:.625em;height:.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:.25rem}.btn-animated:not(.btn-link,.btn-tertiary).btn-rg::after{right:.375rem}.btn-animated:not(.btn-link,.btn-tertiary).btn-lg::after{right:.625rem}.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.5rem);transform:translateX(-0.5rem)}.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.5rem);transform:translateX(-0.5rem)}.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(-0.5rem);transform:translateX(-0.5rem)}.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;font-size:.75rem;gap:.375rem}.btn-sm:where(:not(.btn-link,.btn-tertiary)){padding:0 .75rem}.btn-sm>.pi,.btn-sm>post-icon{width:1rem;height:1rem}.btn-rg{min-height:2.5rem;font-size:.875rem;gap:.5rem}.btn-rg:where(:not(.btn-link,.btn-tertiary)){padding:0 .875rem}.btn-rg>.pi,.btn-rg>post-icon{width:1.125rem;height:1.125rem}.btn-lg{min-height:3.5rem;font-size:1.125rem;gap:.75rem}.btn-lg:where(:not(.btn-link,.btn-tertiary)){padding:0 1.125rem}.btn-lg>.pi,.btn-lg>post-icon{width:1.375rem;height:1.375rem}.btn-nightblue{border-color:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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:rgba(0,0,0,0);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-info{border-color:rgba(0,0,0,0);background-color:#cce4ee;color:#000}.btn-info:focus,.btn-info:not(:disabled):hover,.btn-info.pretend-hover{background-color:#a6d0e1;color:#000}.btn-success{border-color:rgba(0,0,0,0);background-color:#2c911c;color:#fff}.btn-success:focus,.btn-success:not(:disabled):hover,.btn-success.pretend-hover{background-color:#1f6614;color:#fff}.btn-warning{border-color:rgba(0,0,0,0);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:rgba(0,0,0,0);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:700;font-style:italic;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-BdIt.woff2") format("woff2"),url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-BdIt.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:400;font-style:italic;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-It.woff2") format("woff2"),url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-It.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")}@font-face{font-display:swap;font-family:"Frutiger Neue For Post";font-weight:300;font-style:italic;src:url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-LtIt.woff2") format("woff2"),url("https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-LtIt.woff") format("woff")}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}.btn-blank{background-color:rgba(0,0,0,0);border:none;border-radius:0;padding:0}.nav-link{outline:none;outline-offset:2px;text-decoration:none;color:rgba(0,0,0,.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:rgba(0,0,0,0);-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:.5rem}.nav-link:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.nav-link:hover,.nav-link:focus{color:#000}.nav-link:is(:focus-visible,:focus-within,.pretend-focus){z-index:1;position:relative}.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}.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}*,: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}a,button{border-radius:4px;outline:none;outline-offset:2px}a:is(:focus-visible,:focus-within,.pretend-focus),button:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color);border-radius:4px}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:#fff}}.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}}@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 #e6e6e6}.pre-footer{padding-top:2rem;padding-bottom:2rem;border-bottom:2px solid #e6e6e6}.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:#666;-webkit-transition:color 200ms;transition:color 200ms}.link-list a:hover{color:#000}.content-row{padding:.5rem 0}h3+.content-row{padding-top:0}.content-row:last-child{padding-bottom:0}.content-row+.content-row{border-top:1px solid #e6e6e6}.content-row p,.content-row button{margin:.25rem}.text{font-weight:700}.describe{font-size:.8125rem;color:#666;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:#666;-webkit-transition:color 200ms;transition:color 200ms}.socials a:hover,.socials a:focus{color:#000}.socials svg{display:block;width:1.5rem;height:1.5rem}.copyright{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:2rem;margin-bottom:2rem;font-size:.75rem}.footer-meta-links{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.5rem;font-weight:400}';const u=x;const c=class{constructor(t){e(this,t);this.liveSupportEnabled=false;this.cookieSettingsEnabled=false;this.liveSupportEnabled=this.unbluEnabled();this.cookieSettingsEnabled=this.ucUIEnabled();if(!this.liveSupportEnabled){let t;let e=0;const r=()=>{const r=this.unbluEnabled();const o=this.ucUIEnabled();const i=r&&o;if(r){this.liveSupportEnabled=true}if(o){this.cookieSettingsEnabled=true}if(i||e>=5){window.clearInterval(t)}e++};t=window.setInterval(r,1e3)}}unbluEnabled(){return typeof window["unbluLSLoad"]==="function"}ucUIEnabled(){return typeof window["UC_UI"]==="object"&&typeof window["UC_UI"]["showSecondLayer"]==="function"}handleCookieSettingsClick(){window["UC_UI"]["showSecondLayer"]()}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 g=o.localizedConfig.footer;const b=(e=o.localizedCustomConfig)===null||e===void 0?void 0:e.footer;return t(r,null,t(i,null),t("footer",{class:"post-internet-footer light font-curve-regular"},t("h2",{class:"visually-hidden"},g.title),(b===null||b===void 0?void 0:b.block)&&t(n,{block:b===null||b===void 0?void 0:b.block}),t("div",{class:"footer-container container"},g.block.filter((t=>t.columnType==="list")).map((e=>t(a,{key:e.title,block:e}))),g.block.filter((t=>t.columnType==="contact")).map((e=>t(m,{key:e.title,block:e,liveSupportEnabled:this.liveSupportEnabled}))),g.block.filter((t=>t.columnType==="address")).map((e=>t(s,{key:e.title,block:e})))),t("div",{class:"copyright container"},t("span",{class:"bold"},g.entry.text),t("ul",{class:"no-list footer-meta-links"},g.links?g.links.map((e=>t("li",{key:e.url},t("a",{class:"nav-link",href:e.url,target:e.target},e.text)))):null,this.cookieSettingsEnabled&&t("li",null,t("button",{class:"nav-link cookie-settings",onClick:this.handleCookieSettingsClick},l("Cookie Settings")))))))}};c.style=u;export{c as P};
2
+ //# sourceMappingURL=p-9d84e280.js.map
@@ -0,0 +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","SwisspostInternetFooterStyle0","PostInternetFooter","constructor","hostRef","this","unbluEnabled","cookieSettingsEnabled","ucUIEnabled","intervalId","runs","checker","isEnabled","clearInterval","setInterval","handleCookieSettingsClick","render","state","warn","localizedConfig","footer","projectId","document","querySelector","footerConfig","customFooterConfig","_a","localizedCustomConfig","Host","SvgSprite","columnType","entry","translate"],"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';\nimport { translate } from '../../services/language.service';\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 @State() cookieSettingsEnabled = false;\n\n constructor() {\n this.liveSupportEnabled = this.unbluEnabled();\n this.cookieSettingsEnabled = this.ucUIEnabled();\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 unbluEnabled = this.unbluEnabled();\n const ucUIEnabled = this.ucUIEnabled();\n const isEnabled = unbluEnabled && ucUIEnabled;\n if (unbluEnabled) {\n this.liveSupportEnabled = true;\n }\n if (ucUIEnabled) {\n this.cookieSettingsEnabled = 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 private ucUIEnabled(): boolean {\n return (\n typeof window['UC_UI'] === 'object' &&\n typeof window['UC_UI']['showSecondLayer'] === 'function'\n );\n }\n\n private handleCookieSettingsClick() {\n window['UC_UI']['showSecondLayer']();\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 {this.cookieSettingsEnabled && (\n <li>\n <button class=\"nav-link cookie-settings\" onClick={this.handleCookieSettingsClick}>\n {translate('Cookie Settings')}\n </button>\n </li>\n )}\n </ul>\n </div>\n </footer>\n </Host>\n );\n }\n}\n"],"mappings":"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"}