@swisspost/internet-header 1.5.0-beta.2 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/LICENSE +202 -202
  2. package/dist/cjs/{if.component-313f59b8.js → if.component-51d000af.js} +6 -6
  3. package/dist/cjs/if.component-51d000af.js.map +1 -0
  4. package/dist/cjs/{klp-widget.controller-84642428.js → klp-widget.controller-d8941c4e.js} +4811 -4811
  5. package/dist/cjs/{klp-widget.controller-84642428.js.map → klp-widget.controller-d8941c4e.js.map} +1 -1
  6. package/dist/cjs/{language.service-a80ae01d.js → language.service-7dbf739d.js} +141 -141
  7. package/dist/cjs/language.service-7dbf739d.js.map +1 -0
  8. package/dist/cjs/post-klp-login-widget.cjs.entry.js +33 -33
  9. package/dist/cjs/post-klp-login-widget.cjs.entry.js.map +1 -1
  10. package/dist/cjs/post-language-switch.cjs.entry.js +88 -88
  11. package/dist/cjs/post-language-switch.cjs.entry.js.map +1 -1
  12. package/dist/cjs/post-logo.cjs.entry.js +51 -51
  13. package/dist/cjs/post-logo.cjs.entry.js.map +1 -1
  14. package/dist/cjs/post-main-navigation.cjs.entry.js +227 -227
  15. package/dist/cjs/post-main-navigation.cjs.entry.js.map +1 -1
  16. package/dist/cjs/post-meta-navigation.cjs.entry.js +15 -15
  17. package/dist/cjs/post-meta-navigation.cjs.entry.js.map +1 -1
  18. package/dist/cjs/post-search.cjs.entry.js +556 -534
  19. package/dist/cjs/post-search.cjs.entry.js.map +1 -1
  20. package/dist/cjs/post-skiplinks.cjs.entry.js +41 -41
  21. package/dist/cjs/post-skiplinks.cjs.entry.js.map +1 -1
  22. package/dist/cjs/{store-47e14589.js → store-d0d514fc.js} +20 -13
  23. package/dist/cjs/store-d0d514fc.js.map +1 -0
  24. package/dist/cjs/{svg-icon.component-10fbda11.js → svg-icon.component-be93f876.js} +2 -2
  25. package/dist/cjs/svg-icon.component-be93f876.js.map +1 -0
  26. package/dist/cjs/{svg-sprite.component-c3b454b3.js → svg-sprite.component-1bd7a058.js} +40 -40
  27. package/dist/cjs/svg-sprite.component-1bd7a058.js.map +1 -0
  28. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +370 -392
  29. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js.map +1 -1
  30. package/dist/cjs/swisspost-internet-footer.cjs.entry.js +125 -125
  31. package/dist/cjs/swisspost-internet-footer.cjs.entry.js.map +1 -1
  32. package/dist/cjs/swisspost-internet-header.cjs.entry.js +608 -608
  33. package/dist/cjs/swisspost-internet-header.cjs.entry.js.map +1 -1
  34. package/dist/cjs/{ui.service-db4a8252.js → ui.service-e1ebb6d4.js} +28 -28
  35. package/dist/cjs/ui.service-e1ebb6d4.js.map +1 -0
  36. package/dist/cjs/{utils-b6014257.js → utils-60853c5d.js} +15 -15
  37. package/dist/cjs/utils-60853c5d.js.map +1 -0
  38. package/dist/collection/assets/config/test-configuration.json +4067 -4067
  39. package/dist/collection/assets/i18n/translations.js +38 -38
  40. package/dist/collection/assets/i18n/translations.js.map +1 -1
  41. package/dist/collection/assets/js/sockjs-client.js +5134 -5134
  42. package/dist/collection/components/post-internet-breadcrumbs/components/breadcrumb-list.component.js +11 -11
  43. package/dist/collection/components/post-internet-breadcrumbs/components/breadcrumb-list.component.js.map +1 -1
  44. package/dist/collection/components/post-internet-breadcrumbs/components/focus-trap.component.js +42 -42
  45. package/dist/collection/components/post-internet-breadcrumbs/components/focus-trap.component.js.map +1 -1
  46. package/dist/collection/components/post-internet-breadcrumbs/components/middle-dropdown.component.js +8 -8
  47. package/dist/collection/components/post-internet-breadcrumbs/components/middle-dropdown.component.js.map +1 -1
  48. package/dist/collection/components/post-internet-breadcrumbs/components/middle-links.component.js +6 -6
  49. package/dist/collection/components/post-internet-breadcrumbs/components/middle-links.component.js.map +1 -1
  50. package/dist/collection/components/post-internet-breadcrumbs/components/overlay.component.js +12 -12
  51. package/dist/collection/components/post-internet-breadcrumbs/components/overlay.component.js.map +1 -1
  52. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js +253 -253
  53. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js.map +1 -1
  54. package/dist/collection/components/post-internet-footer/components/post-footer-block-address.component.js +12 -12
  55. package/dist/collection/components/post-internet-footer/components/post-footer-block-address.component.js.map +1 -1
  56. package/dist/collection/components/post-internet-footer/components/post-footer-block-contact.component.js +24 -24
  57. package/dist/collection/components/post-internet-footer/components/post-footer-block-contact.component.js.map +1 -1
  58. package/dist/collection/components/post-internet-footer/components/post-footer-block-custom.component.js +6 -6
  59. package/dist/collection/components/post-internet-footer/components/post-footer-block-custom.component.js.map +1 -1
  60. package/dist/collection/components/post-internet-footer/components/post-footer-block-list.component.js +6 -6
  61. package/dist/collection/components/post-internet-footer/components/post-footer-block-list.component.js.map +1 -1
  62. package/dist/collection/components/post-internet-footer/components/post-footer-block-socials.component.js +5 -5
  63. package/dist/collection/components/post-internet-footer/components/post-footer-block-socials.component.js.map +1 -1
  64. package/dist/collection/components/post-internet-footer/post-internet-footer.js +86 -86
  65. package/dist/collection/components/post-internet-footer/post-internet-footer.js.map +1 -1
  66. package/dist/collection/components/post-internet-header/post-internet-header.js +676 -676
  67. package/dist/collection/components/post-internet-header/post-internet-header.js.map +1 -1
  68. package/dist/collection/components/post-klp-login-widget/klp-widget.controller.js +14 -14
  69. package/dist/collection/components/post-klp-login-widget/klp-widget.controller.js.map +1 -1
  70. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.js +67 -67
  71. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.js.map +1 -1
  72. package/dist/collection/components/post-language-switch/components/post-language-switch-list.js +9 -9
  73. package/dist/collection/components/post-language-switch/components/post-language-switch-list.js.map +1 -1
  74. package/dist/collection/components/post-language-switch/post-language-switch.js +186 -186
  75. package/dist/collection/components/post-language-switch/post-language-switch.js.map +1 -1
  76. package/dist/collection/components/post-logo/logo-sprite.component.js +4 -4
  77. package/dist/collection/components/post-logo/logo-sprite.component.js.map +1 -1
  78. package/dist/collection/components/post-logo/post-logo.js +60 -60
  79. package/dist/collection/components/post-logo/post-logo.js.map +1 -1
  80. package/dist/collection/components/post-main-navigation/components/level-one-action.component.js +13 -13
  81. package/dist/collection/components/post-main-navigation/components/level-one-action.component.js.map +1 -1
  82. package/dist/collection/components/post-main-navigation/post-main-navigation.css +1 -1
  83. package/dist/collection/components/post-main-navigation/post-main-navigation.js +347 -347
  84. package/dist/collection/components/post-main-navigation/post-main-navigation.js.map +1 -1
  85. package/dist/collection/components/post-meta-navigation/post-meta-navigation.js +67 -67
  86. package/dist/collection/components/post-meta-navigation/post-meta-navigation.js.map +1 -1
  87. package/dist/collection/components/post-search/post-search.js +362 -362
  88. package/dist/collection/components/post-search/post-search.js.map +1 -1
  89. package/dist/collection/components/post-skiplinks/post-skiplinks.js +51 -51
  90. package/dist/collection/components/post-skiplinks/post-skiplinks.js.map +1 -1
  91. package/dist/collection/data/store.js +11 -11
  92. package/dist/collection/data/store.js.map +1 -1
  93. package/dist/collection/index.js +2 -2
  94. package/dist/collection/index.js.map +1 -1
  95. package/dist/collection/models/breadcrumbs.model.js +2 -2
  96. package/dist/collection/models/breadcrumbs.model.js.map +1 -1
  97. package/dist/collection/models/coveo.model.js +2 -2
  98. package/dist/collection/models/coveo.model.js.map +1 -1
  99. package/dist/collection/models/footer.model.js +2 -2
  100. package/dist/collection/models/footer.model.js.map +1 -1
  101. package/dist/collection/models/general.model.js +2 -2
  102. package/dist/collection/models/general.model.js.map +1 -1
  103. package/dist/collection/models/geocode.model.js +10 -10
  104. package/dist/collection/models/geocode.model.js.map +1 -1
  105. package/dist/collection/models/header.model.js +2 -2
  106. package/dist/collection/models/header.model.js.map +1 -1
  107. package/dist/collection/models/implementor.model.js +2 -2
  108. package/dist/collection/models/implementor.model.js.map +1 -1
  109. package/dist/collection/models/language.model.js +2 -2
  110. package/dist/collection/models/language.model.js.map +1 -1
  111. package/dist/collection/models/track-and-trace.model.js +2 -2
  112. package/dist/collection/models/track-and-trace.model.js.map +1 -1
  113. package/dist/collection/services/config.service.js +170 -170
  114. package/dist/collection/services/config.service.js.map +1 -1
  115. package/dist/collection/services/language.service.js +107 -107
  116. package/dist/collection/services/language.service.js.map +1 -1
  117. package/dist/collection/services/route.service.js +163 -163
  118. package/dist/collection/services/route.service.js.map +1 -1
  119. package/dist/collection/services/search/coveo.service.js +34 -34
  120. package/dist/collection/services/search/coveo.service.js.map +1 -1
  121. package/dist/collection/services/search/coveo.settings.js +19 -19
  122. package/dist/collection/services/search/coveo.settings.js.map +1 -1
  123. package/dist/collection/services/search/parcel.service.js +54 -54
  124. package/dist/collection/services/search/parcel.service.js.map +1 -1
  125. package/dist/collection/services/search/places.service.js +95 -95
  126. package/dist/collection/services/search/places.service.js.map +1 -1
  127. package/dist/collection/services/search/places.settings.js +16 -16
  128. package/dist/collection/services/search/places.settings.js.map +1 -1
  129. package/dist/collection/services/search/search-utilities.js +26 -26
  130. package/dist/collection/services/search/search-utilities.js.map +1 -1
  131. package/dist/collection/services/search/search.service.js +42 -42
  132. package/dist/collection/services/search/search.service.js.map +1 -1
  133. package/dist/collection/services/ui.service.js +30 -30
  134. package/dist/collection/services/ui.service.js.map +1 -1
  135. package/dist/collection/tests/setup-tests.js +14 -14
  136. package/dist/collection/tests/setup-tests.js.map +1 -1
  137. package/dist/collection/utils/highlighted.component.js +11 -11
  138. package/dist/collection/utils/highlighted.component.js.map +1 -1
  139. package/dist/collection/utils/if.component.js +7 -7
  140. package/dist/collection/utils/if.component.js.map +1 -1
  141. package/dist/collection/utils/svg-icon.component.js +3 -3
  142. package/dist/collection/utils/svg-icon.component.js.map +1 -1
  143. package/dist/collection/utils/svg-sprite.component.js +3 -3
  144. package/dist/collection/utils/svg-sprite.component.js.map +1 -1
  145. package/dist/collection/utils/utils.js +16 -16
  146. package/dist/collection/utils/utils.js.map +1 -1
  147. package/dist/components/klp-widget.controller.js +4810 -4810
  148. package/dist/components/klp-widget.controller.js.map +1 -1
  149. package/dist/components/language.service.js +139 -139
  150. package/dist/components/language.service.js.map +1 -1
  151. package/dist/components/post-klp-login-widget2.js +48 -48
  152. package/dist/components/post-klp-login-widget2.js.map +1 -1
  153. package/dist/components/post-language-switch2.js +102 -102
  154. package/dist/components/post-language-switch2.js.map +1 -1
  155. package/dist/components/post-logo2.js +67 -67
  156. package/dist/components/post-logo2.js.map +1 -1
  157. package/dist/components/post-main-navigation2.js +244 -244
  158. package/dist/components/post-main-navigation2.js.map +1 -1
  159. package/dist/components/post-meta-navigation2.js +32 -32
  160. package/dist/components/post-meta-navigation2.js.map +1 -1
  161. package/dist/components/post-search2.js +577 -555
  162. package/dist/components/post-search2.js.map +1 -1
  163. package/dist/components/post-skiplinks2.js +52 -52
  164. package/dist/components/post-skiplinks2.js.map +1 -1
  165. package/dist/components/store.js +19 -12
  166. package/dist/components/store.js.map +1 -1
  167. package/dist/components/svg-icon.component.js +1 -1
  168. package/dist/components/svg-icon.component.js.map +1 -1
  169. package/dist/components/svg-sprite.component.js +39 -39
  170. package/dist/components/svg-sprite.component.js.map +1 -1
  171. package/dist/components/swisspost-internet-breadcrumbs.js +387 -409
  172. package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -1
  173. package/dist/components/swisspost-internet-footer.js +140 -140
  174. package/dist/components/swisspost-internet-footer.js.map +1 -1
  175. package/dist/components/swisspost-internet-header.js +672 -672
  176. package/dist/components/swisspost-internet-header.js.map +1 -1
  177. package/dist/components/ui.service.js +27 -27
  178. package/dist/components/ui.service.js.map +1 -1
  179. package/dist/components/utils.js +14 -14
  180. package/dist/components/utils.js.map +1 -1
  181. package/dist/esm/{if.component-542fb8c3.js → if.component-0fe54385.js} +6 -6
  182. package/dist/esm/if.component-0fe54385.js.map +1 -0
  183. package/dist/esm/{klp-widget.controller-903e0422.js → klp-widget.controller-55366e6a.js} +4811 -4811
  184. package/dist/esm/{klp-widget.controller-903e0422.js.map → klp-widget.controller-55366e6a.js.map} +1 -1
  185. package/dist/esm/{language.service-e49858e0.js → language.service-023d2711.js} +141 -141
  186. package/dist/esm/language.service-023d2711.js.map +1 -0
  187. package/dist/esm/post-klp-login-widget.entry.js +33 -33
  188. package/dist/esm/post-klp-login-widget.entry.js.map +1 -1
  189. package/dist/esm/post-language-switch.entry.js +88 -88
  190. package/dist/esm/post-language-switch.entry.js.map +1 -1
  191. package/dist/esm/post-logo.entry.js +51 -51
  192. package/dist/esm/post-logo.entry.js.map +1 -1
  193. package/dist/esm/post-main-navigation.entry.js +227 -227
  194. package/dist/esm/post-main-navigation.entry.js.map +1 -1
  195. package/dist/esm/post-meta-navigation.entry.js +15 -15
  196. package/dist/esm/post-meta-navigation.entry.js.map +1 -1
  197. package/dist/esm/post-search.entry.js +556 -534
  198. package/dist/esm/post-search.entry.js.map +1 -1
  199. package/dist/esm/post-skiplinks.entry.js +41 -41
  200. package/dist/esm/post-skiplinks.entry.js.map +1 -1
  201. package/dist/esm/{store-d495dc07.js → store-837c3490.js} +20 -13
  202. package/dist/esm/store-837c3490.js.map +1 -0
  203. package/dist/esm/{svg-icon.component-1b1b27a2.js → svg-icon.component-e09b4bf9.js} +2 -2
  204. package/dist/esm/svg-icon.component-e09b4bf9.js.map +1 -0
  205. package/dist/esm/{svg-sprite.component-ec0ac38c.js → svg-sprite.component-cf60303f.js} +40 -40
  206. package/dist/esm/svg-sprite.component-cf60303f.js.map +1 -0
  207. package/dist/esm/swisspost-internet-breadcrumbs.entry.js +370 -392
  208. package/dist/esm/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  209. package/dist/esm/swisspost-internet-footer.entry.js +125 -125
  210. package/dist/esm/swisspost-internet-footer.entry.js.map +1 -1
  211. package/dist/esm/swisspost-internet-header.entry.js +608 -608
  212. package/dist/esm/swisspost-internet-header.entry.js.map +1 -1
  213. package/dist/esm/{ui.service-1d9b0f51.js → ui.service-2fbc9c45.js} +28 -28
  214. package/dist/esm/ui.service-2fbc9c45.js.map +1 -0
  215. package/dist/esm/{utils-5bf107ff.js → utils-ee79122f.js} +15 -15
  216. package/dist/esm/utils-ee79122f.js.map +1 -0
  217. package/dist/esm-es5/{if.component-542fb8c3.js → if.component-0fe54385.js} +1 -1
  218. package/dist/esm-es5/if.component-0fe54385.js.map +1 -0
  219. package/dist/esm-es5/{klp-widget.controller-903e0422.js → klp-widget.controller-55366e6a.js} +1 -1
  220. package/dist/{swisspost-internet-header/p-83f6cd1e.js.map → esm-es5/klp-widget.controller-55366e6a.js.map} +1 -1
  221. package/dist/esm-es5/{language.service-e49858e0.js → language.service-023d2711.js} +2 -2
  222. package/dist/esm-es5/language.service-023d2711.js.map +1 -0
  223. package/dist/esm-es5/post-klp-login-widget.entry.js +1 -1
  224. package/dist/esm-es5/post-klp-login-widget.entry.js.map +1 -1
  225. package/dist/esm-es5/post-language-switch.entry.js +1 -1
  226. package/dist/esm-es5/post-language-switch.entry.js.map +1 -1
  227. package/dist/esm-es5/post-logo.entry.js +1 -1
  228. package/dist/esm-es5/post-logo.entry.js.map +1 -1
  229. package/dist/esm-es5/post-main-navigation.entry.js +1 -1
  230. package/dist/esm-es5/post-main-navigation.entry.js.map +1 -1
  231. package/dist/esm-es5/post-meta-navigation.entry.js +1 -1
  232. package/dist/esm-es5/post-meta-navigation.entry.js.map +1 -1
  233. package/dist/esm-es5/post-search.entry.js +1 -1
  234. package/dist/esm-es5/post-search.entry.js.map +1 -1
  235. package/dist/esm-es5/post-skiplinks.entry.js +1 -1
  236. package/dist/esm-es5/post-skiplinks.entry.js.map +1 -1
  237. package/dist/esm-es5/store-837c3490.js +2 -0
  238. package/dist/esm-es5/store-837c3490.js.map +1 -0
  239. package/dist/esm-es5/{svg-icon.component-1b1b27a2.js → svg-icon.component-e09b4bf9.js} +1 -1
  240. package/dist/esm-es5/svg-icon.component-e09b4bf9.js.map +1 -0
  241. package/dist/esm-es5/{svg-sprite.component-ec0ac38c.js → svg-sprite.component-cf60303f.js} +1 -1
  242. package/dist/esm-es5/svg-sprite.component-cf60303f.js.map +1 -0
  243. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +3 -3
  244. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  245. package/dist/esm-es5/swisspost-internet-footer.entry.js +1 -1
  246. package/dist/esm-es5/swisspost-internet-footer.entry.js.map +1 -1
  247. package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
  248. package/dist/esm-es5/swisspost-internet-header.entry.js.map +1 -1
  249. package/dist/esm-es5/{ui.service-1d9b0f51.js → ui.service-2fbc9c45.js} +1 -1
  250. package/dist/esm-es5/ui.service-2fbc9c45.js.map +1 -0
  251. package/dist/esm-es5/{utils-5bf107ff.js → utils-ee79122f.js} +1 -1
  252. package/dist/esm-es5/utils-ee79122f.js.map +1 -0
  253. package/dist/swisspost-internet-header/assets/config/test-configuration.json +4067 -4067
  254. package/dist/swisspost-internet-header/p-06649b46.js +2 -0
  255. package/dist/swisspost-internet-header/p-06649b46.js.map +1 -0
  256. package/dist/swisspost-internet-header/{p-ec80c8fc.js → p-0942595f.js} +2 -2
  257. package/dist/swisspost-internet-header/p-0942595f.js.map +1 -0
  258. package/dist/swisspost-internet-header/{p-c29ec122.system.js → p-0c5624c0.system.js} +1 -1
  259. package/dist/swisspost-internet-header/p-0c5624c0.system.js.map +1 -0
  260. package/dist/swisspost-internet-header/{p-2eb04045.entry.js → p-0cba8ab4.entry.js} +2 -2
  261. package/dist/swisspost-internet-header/p-0cba8ab4.entry.js.map +1 -0
  262. package/dist/swisspost-internet-header/p-17a47667.system.js +1 -1
  263. package/dist/swisspost-internet-header/{p-ddcb8258.entry.js → p-26879023.entry.js} +2 -2
  264. package/dist/swisspost-internet-header/p-26879023.entry.js.map +1 -0
  265. package/dist/swisspost-internet-header/{p-cb3de015.system.entry.js → p-28e6362f.system.entry.js} +2 -2
  266. package/dist/swisspost-internet-header/p-28e6362f.system.entry.js.map +1 -0
  267. package/dist/swisspost-internet-header/{p-00fd320e.entry.js → p-322526ef.entry.js} +2 -2
  268. package/dist/swisspost-internet-header/p-322526ef.entry.js.map +1 -0
  269. package/dist/swisspost-internet-header/{p-f4ff1e9e.system.js → p-3753a678.system.js} +2 -2
  270. package/dist/swisspost-internet-header/p-3753a678.system.js.map +1 -0
  271. package/dist/swisspost-internet-header/{p-a9c4b2d0.system.entry.js → p-38d645ba.system.entry.js} +2 -2
  272. package/dist/swisspost-internet-header/p-38d645ba.system.entry.js.map +1 -0
  273. package/dist/swisspost-internet-header/p-3df823de.system.entry.js +2 -0
  274. package/dist/swisspost-internet-header/p-3df823de.system.entry.js.map +1 -0
  275. package/dist/swisspost-internet-header/{p-872a76a4.system.js → p-42695801.system.js} +1 -1
  276. package/dist/swisspost-internet-header/p-42695801.system.js.map +1 -0
  277. package/dist/swisspost-internet-header/{p-bdabd6ac.js → p-45db66a6.js} +1 -1
  278. package/dist/swisspost-internet-header/p-45db66a6.js.map +1 -0
  279. package/dist/swisspost-internet-header/p-493337e1.system.entry.js +2 -0
  280. package/dist/swisspost-internet-header/p-493337e1.system.entry.js.map +1 -0
  281. package/dist/swisspost-internet-header/{p-78f653be.system.entry.js → p-5d2fac3b.system.entry.js} +2 -2
  282. package/dist/swisspost-internet-header/p-5d2fac3b.system.entry.js.map +1 -0
  283. package/dist/swisspost-internet-header/p-62c5cf26.entry.js +2 -0
  284. package/dist/swisspost-internet-header/p-62c5cf26.entry.js.map +1 -0
  285. package/dist/swisspost-internet-header/{p-9d0a7039.entry.js → p-64cb215a.entry.js} +2 -2
  286. package/dist/swisspost-internet-header/p-64cb215a.entry.js.map +1 -0
  287. package/dist/swisspost-internet-header/{p-a51ad207.system.entry.js → p-66144e99.system.entry.js} +2 -2
  288. package/dist/swisspost-internet-header/p-66144e99.system.entry.js.map +1 -0
  289. package/dist/swisspost-internet-header/p-715ebef7.system.entry.js +7 -0
  290. package/dist/swisspost-internet-header/p-715ebef7.system.entry.js.map +1 -0
  291. package/dist/swisspost-internet-header/p-7709ed5c.entry.js +2 -0
  292. package/dist/swisspost-internet-header/p-7709ed5c.entry.js.map +1 -0
  293. package/dist/swisspost-internet-header/{p-12baacf0.entry.js → p-77d5e07f.entry.js} +2 -2
  294. package/dist/swisspost-internet-header/p-77d5e07f.entry.js.map +1 -0
  295. package/dist/swisspost-internet-header/p-7fcba2e7.system.js +2 -0
  296. package/dist/swisspost-internet-header/p-7fcba2e7.system.js.map +1 -0
  297. package/dist/swisspost-internet-header/{p-549b62ba.system.js → p-88aac12c.system.js} +1 -1
  298. package/dist/swisspost-internet-header/p-88aac12c.system.js.map +1 -0
  299. package/dist/swisspost-internet-header/{p-0e2ec555.js → p-8bf099a8.js} +1 -1
  300. package/dist/swisspost-internet-header/p-8bf099a8.js.map +1 -0
  301. package/dist/swisspost-internet-header/{p-3eb881c3.js → p-a2f9d462.js} +1 -1
  302. package/dist/swisspost-internet-header/p-a2f9d462.js.map +1 -0
  303. package/dist/swisspost-internet-header/{p-eeff8b03.js → p-ab1dd269.js} +1 -1
  304. package/dist/swisspost-internet-header/p-ab1dd269.js.map +1 -0
  305. package/dist/swisspost-internet-header/{p-a4160d23.entry.js → p-ccb522ba.entry.js} +2 -2
  306. package/dist/swisspost-internet-header/p-ccb522ba.entry.js.map +1 -0
  307. package/dist/swisspost-internet-header/p-cfa787d7.entry.js +6 -0
  308. package/dist/swisspost-internet-header/p-cfa787d7.entry.js.map +1 -0
  309. package/dist/swisspost-internet-header/{p-8717445f.entry.js → p-d33734b5.entry.js} +2 -2
  310. package/dist/swisspost-internet-header/p-d33734b5.entry.js.map +1 -0
  311. package/dist/swisspost-internet-header/{p-c946c5b8.system.entry.js → p-db87f3e3.system.entry.js} +2 -2
  312. package/dist/swisspost-internet-header/p-db87f3e3.system.entry.js.map +1 -0
  313. package/dist/swisspost-internet-header/{p-b406315a.system.entry.js → p-e2990968.system.entry.js} +2 -2
  314. package/dist/swisspost-internet-header/p-e2990968.system.entry.js.map +1 -0
  315. package/dist/swisspost-internet-header/{p-83f6cd1e.js → p-ed24b372.js} +1 -1
  316. package/dist/swisspost-internet-header/p-ed24b372.js.map +1 -0
  317. package/dist/swisspost-internet-header/{p-9509f6c7.system.js → p-edb2802d.system.js} +1 -1
  318. package/dist/swisspost-internet-header/p-edb2802d.system.js.map +1 -0
  319. package/dist/swisspost-internet-header/{p-ee915bbe.system.js → p-ee119d2e.system.js} +1 -1
  320. package/dist/swisspost-internet-header/p-ee119d2e.system.js.map +1 -0
  321. package/dist/swisspost-internet-header/{p-883f9547.system.entry.js → p-f38f38f4.system.entry.js} +2 -2
  322. package/dist/swisspost-internet-header/p-f38f38f4.system.entry.js.map +1 -0
  323. package/dist/swisspost-internet-header/{p-3ba40afe.js → p-f7c0cf7b.js} +1 -1
  324. package/dist/swisspost-internet-header/p-f7c0cf7b.js.map +1 -0
  325. package/dist/swisspost-internet-header/{p-4654b2af.system.js → p-ffc59851.system.js} +1 -1
  326. package/dist/swisspost-internet-header/p-ffc59851.system.js.map +1 -0
  327. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
  328. package/dist/types/assets/i18n/translations.d.ts +37 -37
  329. package/dist/types/components/post-internet-breadcrumbs/components/breadcrumb-list.component.d.ts +9 -9
  330. package/dist/types/components/post-internet-breadcrumbs/components/focus-trap.component.d.ts +12 -12
  331. package/dist/types/components/post-internet-breadcrumbs/components/middle-dropdown.component.d.ts +7 -7
  332. package/dist/types/components/post-internet-breadcrumbs/components/middle-links.component.d.ts +6 -6
  333. package/dist/types/components/post-internet-breadcrumbs/components/overlay.component.d.ts +16 -16
  334. package/dist/types/components/post-internet-breadcrumbs/post-internet-breadcrumbs.d.ts +45 -45
  335. package/dist/types/components/post-internet-footer/components/post-footer-block-address.component.d.ts +5 -5
  336. package/dist/types/components/post-internet-footer/components/post-footer-block-contact.component.d.ts +6 -6
  337. package/dist/types/components/post-internet-footer/components/post-footer-block-custom.component.d.ts +4 -4
  338. package/dist/types/components/post-internet-footer/components/post-footer-block-list.component.d.ts +5 -5
  339. package/dist/types/components/post-internet-footer/components/post-footer-block-socials.component.d.ts +5 -5
  340. package/dist/types/components/post-internet-footer/post-internet-footer.d.ts +10 -10
  341. package/dist/types/components/post-internet-header/post-internet-header.d.ts +124 -124
  342. package/dist/types/components/post-klp-login-widget/klp-widget.controller.d.ts +3 -3
  343. package/dist/types/components/post-klp-login-widget/post-klp-login-widget.d.ts +10 -10
  344. package/dist/types/components/post-language-switch/components/post-language-switch-list.d.ts +6 -6
  345. package/dist/types/components/post-language-switch/post-language-switch.d.ts +27 -27
  346. package/dist/types/components/post-logo/logo-sprite.component.d.ts +4 -4
  347. package/dist/types/components/post-logo/post-logo.d.ts +11 -11
  348. package/dist/types/components/post-main-navigation/components/level-one-action.component.d.ts +8 -8
  349. package/dist/types/components/post-main-navigation/post-main-navigation.d.ts +48 -48
  350. package/dist/types/components/post-meta-navigation/post-meta-navigation.d.ts +5 -5
  351. package/dist/types/components/post-search/post-search.d.ts +61 -61
  352. package/dist/types/components/post-skiplinks/post-skiplinks.d.ts +9 -9
  353. package/dist/types/data/store.d.ts +16 -16
  354. package/dist/types/index.d.ts +1 -1
  355. package/dist/types/models/breadcrumbs.model.d.ts +36 -36
  356. package/dist/types/models/coveo.model.d.ts +22 -22
  357. package/dist/types/models/footer.model.d.ts +48 -48
  358. package/dist/types/models/general.model.d.ts +46 -46
  359. package/dist/types/models/geocode.model.d.ts +52 -52
  360. package/dist/types/models/header.model.d.ts +163 -163
  361. package/dist/types/models/implementor.model.d.ts +22 -22
  362. package/dist/types/models/language.model.d.ts +6 -6
  363. package/dist/types/models/track-and-trace.model.d.ts +25 -25
  364. package/dist/types/services/config.service.d.ts +56 -56
  365. package/dist/types/services/language.service.d.ts +65 -65
  366. package/dist/types/services/route.service.d.ts +39 -39
  367. package/dist/types/services/search/coveo.service.d.ts +9 -9
  368. package/dist/types/services/search/coveo.settings.d.ts +2 -2
  369. package/dist/types/services/search/parcel.service.d.ts +28 -28
  370. package/dist/types/services/search/places.service.d.ts +24 -24
  371. package/dist/types/services/search/places.settings.d.ts +3 -3
  372. package/dist/types/services/search/search-utilities.d.ts +15 -15
  373. package/dist/types/services/search/search.service.d.ts +24 -24
  374. package/dist/types/services/ui.service.d.ts +23 -23
  375. package/dist/types/utils/highlighted.component.d.ts +4 -4
  376. package/dist/types/utils/if.component.d.ts +4 -4
  377. package/dist/types/utils/svg-icon.component.d.ts +4 -4
  378. package/dist/types/utils/svg-sprite.component.d.ts +1 -1
  379. package/dist/types/utils/utils.d.ts +8 -8
  380. package/package.json +7 -7
  381. package/readme.md +57 -15
  382. package/dist/cjs/if.component-313f59b8.js.map +0 -1
  383. package/dist/cjs/language.service-a80ae01d.js.map +0 -1
  384. package/dist/cjs/store-47e14589.js.map +0 -1
  385. package/dist/cjs/svg-icon.component-10fbda11.js.map +0 -1
  386. package/dist/cjs/svg-sprite.component-c3b454b3.js.map +0 -1
  387. package/dist/cjs/ui.service-db4a8252.js.map +0 -1
  388. package/dist/cjs/utils-b6014257.js.map +0 -1
  389. package/dist/esm/if.component-542fb8c3.js.map +0 -1
  390. package/dist/esm/language.service-e49858e0.js.map +0 -1
  391. package/dist/esm/store-d495dc07.js.map +0 -1
  392. package/dist/esm/svg-icon.component-1b1b27a2.js.map +0 -1
  393. package/dist/esm/svg-sprite.component-ec0ac38c.js.map +0 -1
  394. package/dist/esm/ui.service-1d9b0f51.js.map +0 -1
  395. package/dist/esm/utils-5bf107ff.js.map +0 -1
  396. package/dist/esm-es5/if.component-542fb8c3.js.map +0 -1
  397. package/dist/esm-es5/klp-widget.controller-903e0422.js.map +0 -1
  398. package/dist/esm-es5/language.service-e49858e0.js.map +0 -1
  399. package/dist/esm-es5/store-d495dc07.js +0 -2
  400. package/dist/esm-es5/store-d495dc07.js.map +0 -1
  401. package/dist/esm-es5/svg-icon.component-1b1b27a2.js.map +0 -1
  402. package/dist/esm-es5/svg-sprite.component-ec0ac38c.js.map +0 -1
  403. package/dist/esm-es5/ui.service-1d9b0f51.js.map +0 -1
  404. package/dist/esm-es5/utils-5bf107ff.js.map +0 -1
  405. package/dist/swisspost-internet-header/p-00fd320e.entry.js.map +0 -1
  406. package/dist/swisspost-internet-header/p-0e2ec555.js.map +0 -1
  407. package/dist/swisspost-internet-header/p-12baacf0.entry.js.map +0 -1
  408. package/dist/swisspost-internet-header/p-2eb04045.entry.js.map +0 -1
  409. package/dist/swisspost-internet-header/p-3ba40afe.js.map +0 -1
  410. package/dist/swisspost-internet-header/p-3eb881c3.js.map +0 -1
  411. package/dist/swisspost-internet-header/p-458c9862.system.entry.js +0 -2
  412. package/dist/swisspost-internet-header/p-458c9862.system.entry.js.map +0 -1
  413. package/dist/swisspost-internet-header/p-4654b2af.system.js.map +0 -1
  414. package/dist/swisspost-internet-header/p-549b62ba.system.js.map +0 -1
  415. package/dist/swisspost-internet-header/p-5e43c5e0.js +0 -2
  416. package/dist/swisspost-internet-header/p-5e43c5e0.js.map +0 -1
  417. package/dist/swisspost-internet-header/p-74932c29.entry.js +0 -6
  418. package/dist/swisspost-internet-header/p-74932c29.entry.js.map +0 -1
  419. package/dist/swisspost-internet-header/p-76ce4acc.system.entry.js +0 -2
  420. package/dist/swisspost-internet-header/p-76ce4acc.system.entry.js.map +0 -1
  421. package/dist/swisspost-internet-header/p-78f653be.system.entry.js.map +0 -1
  422. package/dist/swisspost-internet-header/p-7f16a46b.entry.js +0 -2
  423. package/dist/swisspost-internet-header/p-7f16a46b.entry.js.map +0 -1
  424. package/dist/swisspost-internet-header/p-8717445f.entry.js.map +0 -1
  425. package/dist/swisspost-internet-header/p-872a76a4.system.js.map +0 -1
  426. package/dist/swisspost-internet-header/p-883f9547.system.entry.js.map +0 -1
  427. package/dist/swisspost-internet-header/p-9509f6c7.system.js.map +0 -1
  428. package/dist/swisspost-internet-header/p-9d0a7039.entry.js.map +0 -1
  429. package/dist/swisspost-internet-header/p-a4160d23.entry.js.map +0 -1
  430. package/dist/swisspost-internet-header/p-a51ad207.system.entry.js.map +0 -1
  431. package/dist/swisspost-internet-header/p-a9c4b2d0.system.entry.js.map +0 -1
  432. package/dist/swisspost-internet-header/p-b406315a.system.entry.js.map +0 -1
  433. package/dist/swisspost-internet-header/p-bdabd6ac.js.map +0 -1
  434. package/dist/swisspost-internet-header/p-c29ec122.system.js.map +0 -1
  435. package/dist/swisspost-internet-header/p-c69923cd.system.js +0 -2
  436. package/dist/swisspost-internet-header/p-c69923cd.system.js.map +0 -1
  437. package/dist/swisspost-internet-header/p-c946c5b8.system.entry.js.map +0 -1
  438. package/dist/swisspost-internet-header/p-cb3de015.system.entry.js.map +0 -1
  439. package/dist/swisspost-internet-header/p-d713a3b3.system.entry.js +0 -7
  440. package/dist/swisspost-internet-header/p-d713a3b3.system.entry.js.map +0 -1
  441. package/dist/swisspost-internet-header/p-ddcb8258.entry.js.map +0 -1
  442. package/dist/swisspost-internet-header/p-ec80c8fc.js.map +0 -1
  443. package/dist/swisspost-internet-header/p-ee915bbe.system.js.map +0 -1
  444. package/dist/swisspost-internet-header/p-eeff8b03.js.map +0 -1
  445. package/dist/swisspost-internet-header/p-f4ff1e9e.system.js.map +0 -1
  446. package/dist/swisspost-internet-header/p-fa0c66c7.entry.js +0 -2
  447. package/dist/swisspost-internet-header/p-fa0c66c7.entry.js.map +0 -1
@@ -1,15 +1,15 @@
1
1
  import { h, r as registerInstance, H as Host, g as getElement } from './index-066666f4.js';
2
2
  import { d as debounce } from './index-a75df186.js';
3
3
  import { c as clearAllBodyScrollLocks, d as disableBodyScroll, e as enableBodyScroll } from './bodyScrollLock.esm-afcc00e3.js';
4
- import { S as SvgIcon } from './svg-icon.component-1b1b27a2.js';
5
- import { s as state } from './store-d495dc07.js';
4
+ import { S as SvgIcon } from './svg-icon.component-e09b4bf9.js';
5
+ import { s as state } from './store-837c3490.js';
6
6
  import { c as createCommonjsModule } from './_commonjsHelpers-9943807e.js';
7
- import { S as SvgSprite } from './svg-sprite.component-ec0ac38c.js';
8
- import { t as translate } from './language.service-e49858e0.js';
9
- import { p as prefersReducedMotion } from './utils-5bf107ff.js';
7
+ import { S as SvgSprite } from './svg-sprite.component-cf60303f.js';
8
+ import { t as translate } from './language.service-023d2711.js';
9
+ import { p as prefersReducedMotion } from './utils-ee79122f.js';
10
10
 
11
11
  /*!
12
- * tabbable 5.3.3
12
+ * tabbable 6.0.1
13
13
  * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
14
14
  */
15
15
  var candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable="false"])', 'details>summary:first-of-type', 'details'];
@@ -21,23 +21,22 @@ var getRootNode = !NoElement && Element.prototype.getRootNode ? function (elemen
21
21
  } : function (element) {
22
22
  return element.ownerDocument;
23
23
  };
24
+
24
25
  /**
25
26
  * @param {Element} el container to check in
26
27
  * @param {boolean} includeContainer add container to check
27
28
  * @param {(node: Element) => boolean} filter filter candidates
28
29
  * @returns {Element[]}
29
30
  */
30
-
31
31
  var getCandidates = function getCandidates(el, includeContainer, filter) {
32
32
  var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));
33
-
34
33
  if (includeContainer && matches.call(el, candidateSelector)) {
35
34
  candidates.unshift(el);
36
35
  }
37
-
38
36
  candidates = candidates.filter(filter);
39
37
  return candidates;
40
38
  };
39
+
41
40
  /**
42
41
  * @callback GetShadowRoot
43
42
  * @param {Element} element to check for shadow root
@@ -51,9 +50,9 @@ var getCandidates = function getCandidates(el, includeContainer, filter) {
51
50
  */
52
51
 
53
52
  /**
54
- * @typedef {Object} CandidatesScope
55
- * @property {Element} scope contains inner candidates
56
- * @property {Element[]} candidates
53
+ * @typedef {Object} CandidateScope
54
+ * @property {Element} scopeParent contains inner candidates
55
+ * @property {Element[]} candidates list of candidates found in the scope parent
57
56
  */
58
57
 
59
58
  /**
@@ -62,7 +61,7 @@ var getCandidates = function getCandidates(el, includeContainer, filter) {
62
61
  * if a function, implies shadow support is enabled and either returns the shadow root of an element
63
62
  * or a boolean stating if it has an undisclosed shadow root
64
63
  * @property {(node: Element) => boolean} filter filter candidates
65
- * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list
64
+ * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list
66
65
  * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;
67
66
  */
68
67
 
@@ -70,44 +69,38 @@ var getCandidates = function getCandidates(el, includeContainer, filter) {
70
69
  * @param {Element[]} elements list of element containers to match candidates from
71
70
  * @param {boolean} includeContainer add container list to check
72
71
  * @param {IterativeOptions} options
73
- * @returns {Array.<Element|CandidatesScope>}
72
+ * @returns {Array.<Element|CandidateScope>}
74
73
  */
75
-
76
-
77
74
  var getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {
78
75
  var candidates = [];
79
76
  var elementsToCheck = Array.from(elements);
80
-
81
77
  while (elementsToCheck.length) {
82
78
  var element = elementsToCheck.shift();
83
-
84
79
  if (element.tagName === 'SLOT') {
85
80
  // add shadow dom slot scope (slot itself cannot be focusable)
86
81
  var assigned = element.assignedElements();
87
82
  var content = assigned.length ? assigned : element.children;
88
83
  var nestedCandidates = getCandidatesIteratively(content, true, options);
89
-
90
84
  if (options.flatten) {
91
85
  candidates.push.apply(candidates, nestedCandidates);
92
86
  } else {
93
87
  candidates.push({
94
- scope: element,
88
+ scopeParent: element,
95
89
  candidates: nestedCandidates
96
90
  });
97
91
  }
98
92
  } else {
99
93
  // check candidate element
100
94
  var validCandidate = matches.call(element, candidateSelector);
101
-
102
95
  if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {
103
96
  candidates.push(element);
104
- } // iterate over shadow content if possible
105
-
97
+ }
106
98
 
107
- var shadowRoot = element.shadowRoot || // check for an undisclosed shadow
99
+ // iterate over shadow content if possible
100
+ var shadowRoot = element.shadowRoot ||
101
+ // check for an undisclosed shadow
108
102
  typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);
109
103
  var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element);
110
-
111
104
  if (shadowRoot && validShadowRoot) {
112
105
  // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed
113
106
  // shadow exists, so look at light dom children as fallback BUT create a scope for any
@@ -116,12 +109,11 @@ var getCandidatesIteratively = function getCandidatesIteratively(elements, inclu
116
109
  // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,
117
110
  // _after_ we return from this recursive call
118
111
  var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);
119
-
120
112
  if (options.flatten) {
121
113
  candidates.push.apply(candidates, _nestedCandidates);
122
114
  } else {
123
115
  candidates.push({
124
- scope: element,
116
+ scopeParent: element,
125
117
  candidates: _nestedCandidates
126
118
  });
127
119
  }
@@ -132,10 +124,8 @@ var getCandidatesIteratively = function getCandidatesIteratively(elements, inclu
132
124
  }
133
125
  }
134
126
  }
135
-
136
127
  return candidates;
137
128
  };
138
-
139
129
  var getTabindex = function getTabindex(node, isScope) {
140
130
  if (node.tabIndex < 0) {
141
131
  // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default
@@ -153,29 +143,23 @@ var getTabindex = function getTabindex(node, isScope) {
153
143
  return 0;
154
144
  }
155
145
  }
156
-
157
146
  return node.tabIndex;
158
147
  };
159
-
160
148
  var sortOrderedTabbables = function sortOrderedTabbables(a, b) {
161
149
  return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;
162
150
  };
163
-
164
151
  var isInput = function isInput(node) {
165
152
  return node.tagName === 'INPUT';
166
153
  };
167
-
168
154
  var isHiddenInput = function isHiddenInput(node) {
169
155
  return isInput(node) && node.type === 'hidden';
170
156
  };
171
-
172
157
  var isDetailsWithSummary = function isDetailsWithSummary(node) {
173
158
  var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {
174
159
  return child.tagName === 'SUMMARY';
175
160
  });
176
161
  return r;
177
162
  };
178
-
179
163
  var getCheckedRadio = function getCheckedRadio(nodes, form) {
180
164
  for (var i = 0; i < nodes.length; i++) {
181
165
  if (nodes[i].checked && nodes[i].form === form) {
@@ -183,20 +167,15 @@ var getCheckedRadio = function getCheckedRadio(nodes, form) {
183
167
  }
184
168
  }
185
169
  };
186
-
187
170
  var isTabbableRadio = function isTabbableRadio(node) {
188
171
  if (!node.name) {
189
172
  return true;
190
173
  }
191
-
192
174
  var radioScope = node.form || getRootNode(node);
193
-
194
175
  var queryRadios = function queryRadios(name) {
195
176
  return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]');
196
177
  };
197
-
198
178
  var radioSet;
199
-
200
179
  if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {
201
180
  radioSet = queryRadios(window.CSS.escape(node.name));
202
181
  } else {
@@ -208,31 +187,59 @@ var isTabbableRadio = function isTabbableRadio(node) {
208
187
  return false;
209
188
  }
210
189
  }
211
-
212
190
  var checked = getCheckedRadio(radioSet, node.form);
213
191
  return !checked || checked === node;
214
192
  };
215
-
216
193
  var isRadio = function isRadio(node) {
217
194
  return isInput(node) && node.type === 'radio';
218
195
  };
219
-
220
196
  var isNonTabbableRadio = function isNonTabbableRadio(node) {
221
197
  return isRadio(node) && !isTabbableRadio(node);
222
198
  };
223
199
 
200
+ // determines if a node is ultimately attached to the window's document
201
+ var isNodeAttached = function isNodeAttached(node) {
202
+ var _nodeRootHost;
203
+ // The root node is the shadow root if the node is in a shadow DOM; some document otherwise
204
+ // (but NOT _the_ document; see second 'If' comment below for more).
205
+ // If rootNode is shadow root, it'll have a host, which is the element to which the shadow
206
+ // is attached, and the one we need to check if it's in the document or not (because the
207
+ // shadow, and all nodes it contains, is never considered in the document since shadows
208
+ // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,
209
+ // is hidden, or is not in the document itself but is detached, it will affect the shadow's
210
+ // visibility, including all the nodes it contains). The host could be any normal node,
211
+ // or a custom element (i.e. web component). Either way, that's the one that is considered
212
+ // part of the document, not the shadow root, nor any of its children (i.e. the node being
213
+ // tested).
214
+ // To further complicate things, we have to look all the way up until we find a shadow HOST
215
+ // that is attached (or find none) because the node might be in nested shadows...
216
+ // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the
217
+ // document (per the docs) and while it's a Document-type object, that document does not
218
+ // appear to be the same as the node's `ownerDocument` for some reason, so it's safer
219
+ // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,
220
+ // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when
221
+ // node is actually detached.
222
+ var nodeRootHost = getRootNode(node).host;
223
+ var attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && _nodeRootHost.ownerDocument.contains(nodeRootHost) || node.ownerDocument.contains(node));
224
+ while (!attached && nodeRootHost) {
225
+ var _nodeRootHost2;
226
+ // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,
227
+ // which means we need to get the host's host and check if that parent host is contained
228
+ // in (i.e. attached to) the document
229
+ nodeRootHost = getRootNode(nodeRootHost).host;
230
+ attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && _nodeRootHost2.ownerDocument.contains(nodeRootHost));
231
+ }
232
+ return attached;
233
+ };
224
234
  var isZeroArea = function isZeroArea(node) {
225
235
  var _node$getBoundingClie = node.getBoundingClientRect(),
226
- width = _node$getBoundingClie.width,
227
- height = _node$getBoundingClie.height;
228
-
236
+ width = _node$getBoundingClie.width,
237
+ height = _node$getBoundingClie.height;
229
238
  return width === 0 && height === 0;
230
239
  };
231
-
232
240
  var isHidden = function isHidden(node, _ref) {
233
241
  var displayCheck = _ref.displayCheck,
234
- getShadowRoot = _ref.getShadowRoot;
235
-
242
+ getShadowRoot = _ref.getShadowRoot;
236
243
  // NOTE: visibility will be `undefined` if node is detached from the document
237
244
  // (see notes about this further down), which means we will consider it visible
238
245
  // (this is legacy behavior from a very long way back)
@@ -241,44 +248,19 @@ var isHidden = function isHidden(node, _ref) {
241
248
  if (getComputedStyle(node).visibility === 'hidden') {
242
249
  return true;
243
250
  }
244
-
245
251
  var isDirectSummary = matches.call(node, 'details>summary:first-of-type');
246
252
  var nodeUnderDetails = isDirectSummary ? node.parentElement : node;
247
-
248
253
  if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {
249
254
  return true;
250
- } // The root node is the shadow root if the node is in a shadow DOM; some document otherwise
251
- // (but NOT _the_ document; see second 'If' comment below for more).
252
- // If rootNode is shadow root, it'll have a host, which is the element to which the shadow
253
- // is attached, and the one we need to check if it's in the document or not (because the
254
- // shadow, and all nodes it contains, is never considered in the document since shadows
255
- // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,
256
- // is hidden, or is not in the document itself but is detached, it will affect the shadow's
257
- // visibility, including all the nodes it contains). The host could be any normal node,
258
- // or a custom element (i.e. web component). Either way, that's the one that is considered
259
- // part of the document, not the shadow root, nor any of its children (i.e. the node being
260
- // tested).
261
- // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the
262
- // document (per the docs) and while it's a Document-type object, that document does not
263
- // appear to be the same as the node's `ownerDocument` for some reason, so it's safer
264
- // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,
265
- // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when
266
- // node is actually detached.
267
-
268
-
269
- var nodeRootHost = getRootNode(node).host;
270
- var nodeIsAttached = (nodeRootHost === null || nodeRootHost === void 0 ? void 0 : nodeRootHost.ownerDocument.contains(nodeRootHost)) || node.ownerDocument.contains(node);
271
-
272
- if (!displayCheck || displayCheck === 'full') {
255
+ }
256
+ if (!displayCheck || displayCheck === 'full' || displayCheck === 'legacy-full') {
273
257
  if (typeof getShadowRoot === 'function') {
274
258
  // figure out if we should consider the node to be in an undisclosed shadow and use the
275
259
  // 'non-zero-area' fallback
276
260
  var originalNode = node;
277
-
278
261
  while (node) {
279
262
  var parentElement = node.parentElement;
280
263
  var rootNode = getRootNode(node);
281
-
282
264
  if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow
283
265
  ) {
284
266
  // node has an undisclosed shadow which means we can only treat it as a black box, so we
@@ -295,25 +277,27 @@ var isHidden = function isHidden(node, _ref) {
295
277
  node = parentElement;
296
278
  }
297
279
  }
298
-
299
280
  node = originalNode;
300
- } // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support
281
+ }
282
+ // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support
301
283
  // (i.e. it does not also presume that all nodes might have undisclosed shadows); or
302
284
  // it might be a falsy value, which means shadow DOM support is disabled
285
+
303
286
  // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)
304
287
  // now we can just test to see if it would normally be visible or not, provided it's
305
288
  // attached to the main document.
306
289
  // NOTE: We must consider case where node is inside a shadow DOM and given directly to
307
290
  // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.
308
291
 
309
-
310
- if (nodeIsAttached) {
292
+ if (isNodeAttached(node)) {
311
293
  // this works wherever the node is: if there's at least one client rect, it's
312
294
  // somehow displayed; it also covers the CSS 'display: contents' case where the
313
295
  // node itself is hidden in place of its contents; and there's no need to search
314
296
  // up the hierarchy either
315
297
  return !node.getClientRects().length;
316
- } // Else, the node isn't attached to the document, which means the `getClientRects()`
298
+ }
299
+
300
+ // Else, the node isn't attached to the document, which means the `getClientRects()`
317
301
  // API will __always__ return zero rects (this can happen, for example, if React
318
302
  // is used to render nodes onto a detached tree, as confirmed in this thread:
319
303
  // https://github.com/facebook/react/issues/9117#issuecomment-284228870)
@@ -326,7 +310,13 @@ var isHidden = function isHidden(node, _ref) {
326
310
  // APIs on nodes in detached containers has actually implicitly used tabbable in what
327
311
  // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck="none"` mode -- essentially
328
312
  // considering __everything__ to be visible because of the innability to determine styles.
329
-
313
+ //
314
+ // v6.0.0: As of this major release, the default 'full' option __no longer treats detached
315
+ // nodes as visible with the 'none' fallback.__
316
+ if (displayCheck !== 'legacy-full') {
317
+ return true; // hidden
318
+ }
319
+ // else, fallback to 'none' mode and consider the node visible
330
320
  } else if (displayCheck === 'non-zero-area') {
331
321
  // NOTE: Even though this tests that the node's client rect is non-zero to determine
332
322
  // whether it's displayed, and that a detached node will __always__ have a zero-area
@@ -334,88 +324,79 @@ var isHidden = function isHidden(node, _ref) {
334
324
  // this mode, we do want to consider nodes that have a zero area to be hidden at all
335
325
  // times, and that includes attached or not.
336
326
  return isZeroArea(node);
337
- } // visible, as far as we can tell, or per current `displayCheck` mode
338
-
327
+ }
339
328
 
329
+ // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume
330
+ // it's visible
340
331
  return false;
341
- }; // form fields (nested) inside a disabled fieldset are not focusable/tabbable
332
+ };
333
+
334
+ // form fields (nested) inside a disabled fieldset are not focusable/tabbable
342
335
  // unless they are in the _first_ <legend> element of the top-most disabled
343
336
  // fieldset
344
-
345
-
346
337
  var isDisabledFromFieldset = function isDisabledFromFieldset(node) {
347
338
  if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {
348
- var parentNode = node.parentElement; // check if `node` is contained in a disabled <fieldset>
349
-
339
+ var parentNode = node.parentElement;
340
+ // check if `node` is contained in a disabled <fieldset>
350
341
  while (parentNode) {
351
342
  if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {
352
343
  // look for the first <legend> among the children of the disabled <fieldset>
353
344
  for (var i = 0; i < parentNode.children.length; i++) {
354
- var child = parentNode.children.item(i); // when the first <legend> (in document order) is found
355
-
345
+ var child = parentNode.children.item(i);
346
+ // when the first <legend> (in document order) is found
356
347
  if (child.tagName === 'LEGEND') {
357
348
  // if its parent <fieldset> is not nested in another disabled <fieldset>,
358
349
  // return whether `node` is a descendant of its first <legend>
359
350
  return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);
360
351
  }
361
- } // the disabled <fieldset> containing `node` has no <legend>
362
-
363
-
352
+ }
353
+ // the disabled <fieldset> containing `node` has no <legend>
364
354
  return true;
365
355
  }
366
-
367
356
  parentNode = parentNode.parentElement;
368
357
  }
369
- } // else, node's tabbable/focusable state should not be affected by a fieldset's
370
- // enabled/disabled state
371
-
358
+ }
372
359
 
360
+ // else, node's tabbable/focusable state should not be affected by a fieldset's
361
+ // enabled/disabled state
373
362
  return false;
374
363
  };
375
-
376
364
  var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {
377
- if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus
365
+ if (node.disabled || isHiddenInput(node) || isHidden(node, options) ||
366
+ // For a details element with a summary, the summary element gets the focus
378
367
  isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {
379
368
  return false;
380
369
  }
381
-
382
370
  return true;
383
371
  };
384
-
385
372
  var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {
386
373
  if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {
387
374
  return false;
388
375
  }
389
-
390
376
  return true;
391
377
  };
392
-
393
378
  var isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {
394
379
  var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);
395
-
396
380
  if (isNaN(tabIndex) || tabIndex >= 0) {
397
381
  return true;
398
- } // If a custom element has an explicit negative tabindex,
382
+ }
383
+ // If a custom element has an explicit negative tabindex,
399
384
  // browsers will not allow tab targeting said element's children.
400
-
401
-
402
385
  return false;
403
386
  };
387
+
404
388
  /**
405
- * @param {Array.<Element|CandidatesScope>} candidates
389
+ * @param {Array.<Element|CandidateScope>} candidates
406
390
  * @returns Element[]
407
391
  */
408
-
409
-
410
392
  var sortByOrder = function sortByOrder(candidates) {
411
393
  var regularTabbables = [];
412
394
  var orderedTabbables = [];
413
395
  candidates.forEach(function (item, i) {
414
- var isScope = !!item.scope;
415
- var element = isScope ? item.scope : item;
396
+ var isScope = !!item.scopeParent;
397
+ var element = isScope ? item.scopeParent : item;
416
398
  var candidateTabindex = getTabindex(element, isScope);
417
399
  var elements = isScope ? sortByOrder(item.candidates) : element;
418
-
419
400
  if (candidateTabindex === 0) {
420
401
  isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);
421
402
  } else {
@@ -433,11 +414,9 @@ var sortByOrder = function sortByOrder(candidates) {
433
414
  return acc;
434
415
  }, []).concat(regularTabbables);
435
416
  };
436
-
437
417
  var tabbable = function tabbable(el, options) {
438
418
  options = options || {};
439
419
  var candidates;
440
-
441
420
  if (options.getShadowRoot) {
442
421
  candidates = getCandidatesIteratively([el], options.includeContainer, {
443
422
  filter: isNodeMatchingSelectorTabbable.bind(null, options),
@@ -448,66 +427,65 @@ var tabbable = function tabbable(el, options) {
448
427
  } else {
449
428
  candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));
450
429
  }
451
-
452
430
  return sortByOrder(candidates);
453
431
  };
454
432
 
455
- let key = 0;
456
- /**
457
- * Trap the focus inside a specific container by prepending/appending two focus trap
458
- * input boxes who return the focus into the container.
459
- *
460
- * @param props active: activate or deactivate the focus trap
461
- * @param children Child nodes
462
- * @returns
463
- */
464
- const FocusTrap = (props, children) => {
465
- var _a;
466
- // Default value for active is true
467
- const active = (_a = props.active) !== null && _a !== void 0 ? _a : false;
468
- const handleFocusIn = (event, mode) => {
469
- if (!children.length) {
470
- return;
471
- }
472
- // Try to get a list of tabbable elements
473
- const containerIndex = mode === 'first' ? 0 : children.length - 1;
474
- const container = children[containerIndex].$elm$;
475
- const focusable = tabbable(container);
476
- if (!focusable.length) {
477
- return;
478
- }
479
- // We can trap the focus, cancel the event
480
- event.preventDefault();
481
- event.stopPropagation();
482
- // Select the appropriate element from the list
483
- const focusIndex = mode === 'first' ? 0 : focusable.length - 1;
484
- let focusElement = focusable[focusIndex];
485
- focusElement.focus();
486
- };
487
- key++;
488
- return [
489
- h("input", { type: "text", "aria-hidden": "true", class: "visually-hidden", key: `focus-trap-before-${key}`, onFocusin: e => active && handleFocusIn(e, 'last') }),
490
- children,
491
- h("input", { type: "text", "aria-hidden": "true", class: "visually-hidden", key: `focus-trap-after-${key}`, onFocusin: e => active && handleFocusIn(e, 'first') }),
492
- ];
433
+ let key = 0;
434
+ /**
435
+ * Trap the focus inside a specific container by prepending/appending two focus trap
436
+ * input boxes who return the focus into the container.
437
+ *
438
+ * @param props active: activate or deactivate the focus trap
439
+ * @param children Child nodes
440
+ * @returns
441
+ */
442
+ const FocusTrap = (props, children) => {
443
+ var _a;
444
+ // Default value for active is true
445
+ const active = (_a = props.active) !== null && _a !== void 0 ? _a : false;
446
+ const handleFocusIn = (event, mode) => {
447
+ if (!children.length) {
448
+ return;
449
+ }
450
+ // Try to get a list of tabbable elements
451
+ const containerIndex = mode === 'first' ? 0 : children.length - 1;
452
+ const container = children[containerIndex].$elm$;
453
+ const focusable = tabbable(container);
454
+ if (!focusable.length) {
455
+ return;
456
+ }
457
+ // We can trap the focus, cancel the event
458
+ event.preventDefault();
459
+ event.stopPropagation();
460
+ // Select the appropriate element from the list
461
+ const focusIndex = mode === 'first' ? 0 : focusable.length - 1;
462
+ let focusElement = focusable[focusIndex];
463
+ focusElement.focus();
464
+ };
465
+ key++;
466
+ return [
467
+ h("input", { type: "text", "aria-hidden": "true", class: "visually-hidden", key: `focus-trap-before-${key}`, onFocusin: e => active && handleFocusIn(e, 'last') }),
468
+ children,
469
+ h("input", { type: "text", "aria-hidden": "true", class: "visually-hidden", key: `focus-trap-after-${key}`, onFocusin: e => active && handleFocusIn(e, 'first') }),
470
+ ];
493
471
  };
494
472
 
495
- /**
496
- * Overlay implementation with focus trap according to
497
- * https://www.accessibility-developer-guide.com/examples/widgets/dialog/#modal-dialog
498
- *
499
- * @param props
500
- * @returns
501
- */
502
- const OverlayComponent = (props) => (h("div", { class: "overlay", onClick: () => props.onClick(), onKeyDown: e => props.onKeyDown !== undefined && props.onKeyDown(e), ref: e => e !== undefined && props.overlayRef(e) },
503
- h("div", { class: "container", role: "dialog" },
504
- h(FocusTrap, null,
505
- h("div", { class: "overlay-container", tabindex: "-1" /* For initial focus */, role: "document", onClick: e => e.stopPropagation() },
506
- h("button", { class: `overlay-close btn-blank d-inline-flex align-items-center nav-link ${props.overlay.id}`, onClick: () => props.onClick() },
507
- h("span", { class: "visually-hidden" }, props.closeButtonText),
508
- h(SvgIcon, { name: "pi-close" })),
509
- h("iframe", { src: props.overlay.target, frameborder: "0", class: "frame", ref: e => e !== undefined && props.iFrameRef(e) }))),
510
- h("div", { class: "loader-wrapper" },
473
+ /**
474
+ * Overlay implementation with focus trap according to
475
+ * https://www.accessibility-developer-guide.com/examples/widgets/dialog/#modal-dialog
476
+ *
477
+ * @param props
478
+ * @returns
479
+ */
480
+ const OverlayComponent = (props) => (h("div", { class: "overlay", onClick: () => props.onClick(), onKeyDown: e => props.onKeyDown !== undefined && props.onKeyDown(e), ref: e => e !== undefined && props.overlayRef(e) },
481
+ h("div", { class: "container", role: "dialog" },
482
+ h(FocusTrap, null,
483
+ h("div", { class: "overlay-container", tabindex: "-1" /* For initial focus */, role: "document", onClick: e => e.stopPropagation() },
484
+ h("button", { class: `overlay-close btn-blank d-inline-flex align-items-center nav-link ${props.overlay.id}`, onClick: () => props.onClick() },
485
+ h("span", { class: "visually-hidden" }, props.closeButtonText),
486
+ h(SvgIcon, { name: "pi-close" })),
487
+ h("iframe", { src: props.overlay.target, frameborder: "0", class: "frame", ref: e => e !== undefined && props.iFrameRef(e) }))),
488
+ h("div", { class: "loader-wrapper" },
511
489
  h("div", { class: "loader" })))));
512
490
 
513
491
  var iframeResizer$2 = createCommonjsModule(function (module) {
@@ -3248,235 +3226,235 @@ var js = {
3248
3226
 
3249
3227
  var iframeResizer = js;
3250
3228
 
3251
- const MiddleLinks = (props) => {
3252
- return props.items.slice(1, -1).map(item => (h("li", { key: item.url },
3253
- h("a", { href: item.url, class: "nav-link", tabindex: props.focusable === false ? '-1' : undefined },
3254
- h("span", null, item.text)),
3255
- props.icons ? h(SvgIcon, { name: "pi-arrow-down", classNames: "rotate-270" }) : null)));
3229
+ const MiddleLinks = (props) => {
3230
+ return props.items.slice(1, -1).map(item => (h("li", { key: item.url },
3231
+ h("a", { href: item.url, class: "nav-link", tabindex: props.focusable === false ? '-1' : undefined },
3232
+ h("span", null, item.text)),
3233
+ props.icons ? h(SvgIcon, { name: "pi-arrow-down", classNames: "rotate-270" }) : null)));
3256
3234
  };
3257
3235
 
3258
- const MiddleDropdown = (props) => {
3259
- return (h("div", { class: "middle-dropdown-container" },
3260
- h("button", { class: "middle-dropdown-button btn btn-blank", type: "button", onClick: event => props.clickHandler(event), tabindex: props.focusable === false ? '-1' : undefined },
3261
- h("span", { class: "visually-hidden" }, translate('Open menu')),
3262
- h("span", { "aria-hidden": "true" }, "...")),
3263
- h(SvgIcon, { name: "pi-arrow-down", classNames: "rotate-270" }),
3264
- props.dropdownOpen ? (h("nav", { class: "middle-dropdown" },
3265
- h("ul", { class: "no-list" },
3266
- h(MiddleLinks, { items: props.items, icons: false, focusable: props.focusable })))) : null));
3236
+ const MiddleDropdown = (props) => {
3237
+ return (h("div", { class: "middle-dropdown-container" },
3238
+ h("button", { class: "middle-dropdown-button btn btn-blank", type: "button", onClick: event => props.clickHandler(event), tabindex: props.focusable === false ? '-1' : undefined },
3239
+ h("span", { class: "visually-hidden" }, translate('Open menu')),
3240
+ h("span", { "aria-hidden": "true" }, "...")),
3241
+ h(SvgIcon, { name: "pi-arrow-down", classNames: "rotate-270" }),
3242
+ props.dropdownOpen ? (h("nav", { class: "middle-dropdown" },
3243
+ h("ul", { class: "no-list" },
3244
+ h(MiddleLinks, { items: props.items, icons: false, focusable: props.focusable })))) : null));
3267
3245
  };
3268
3246
 
3269
- const BreadcrumbList = (props) => {
3270
- var _a;
3271
- const homeItem = props.items[0];
3272
- const lastItem = props.items[props.items.length - 1];
3273
- return (h("ol", { class: "no-list breadcrumbs-list" },
3274
- h("li", null,
3275
- h("a", { class: "home-link nav-link", href: homeItem.url, tabindex: props.focusable === false ? '-1' : undefined },
3276
- h("span", { class: "visually-hidden" }, homeItem.text),
3277
- h(SvgIcon, { name: "pi-home" })),
3278
- h(SvgIcon, { name: "pi-arrow-down", classNames: "rotate-270" })),
3279
- props.isConcatenated ? (h("li", null,
3280
- h(MiddleDropdown, { items: props.items, dropdownOpen: (_a = props.dropdownOpen) !== null && _a !== void 0 ? _a : false, clickHandler: e => props.clickHandler(e), focusable: props.focusable }))) : (h(MiddleLinks, { items: props.items, icons: true, focusable: props.focusable })),
3281
- h("li", null,
3282
- h("a", { class: "last-link nav-link", href: lastItem.url, tabindex: props.focusable === false ? '-1' : undefined, ref: el => (props.lastItemRef !== undefined ? props.lastItemRef(el) : null) }, lastItem.text))));
3247
+ const BreadcrumbList = (props) => {
3248
+ var _a;
3249
+ const homeItem = props.items[0];
3250
+ const lastItem = props.items[props.items.length - 1];
3251
+ return (h("ol", { class: "no-list breadcrumbs-list" },
3252
+ h("li", null,
3253
+ h("a", { class: "home-link nav-link", href: homeItem.url, tabindex: props.focusable === false ? '-1' : undefined },
3254
+ h("span", { class: "visually-hidden" }, homeItem.text),
3255
+ h(SvgIcon, { name: "pi-home" })),
3256
+ h(SvgIcon, { name: "pi-arrow-down", classNames: "rotate-270" })),
3257
+ props.isConcatenated ? (h("li", null,
3258
+ h(MiddleDropdown, { items: props.items, dropdownOpen: (_a = props.dropdownOpen) !== null && _a !== void 0 ? _a : false, clickHandler: e => props.clickHandler(e), focusable: props.focusable }))) : (h(MiddleLinks, { items: props.items, icons: true, focusable: props.focusable })),
3259
+ h("li", null,
3260
+ h("a", { class: "last-link nav-link", href: lastItem.url, tabindex: props.focusable === false ? '-1' : undefined, ref: el => (props.lastItemRef !== undefined ? props.lastItemRef(el) : null) }, lastItem.text))));
3283
3261
  };
3284
3262
 
3285
3263
  const postInternetBreadcrumbsCss = "/*!\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 */.btn-close{-webkit-box-sizing:content-box;box-sizing:content-box;width:1.5rem;height:1.5rem;padding:1rem 1rem;color:#000;background:transparent url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath opacity='1' fill='%23000000' d='M16.267 16.667l6.667-6.533-0.933-1.067-6.667 6.667-6.667-6.667-0.933 1.067 6.667 6.533-6.667 6.667 1.067 0.933 6.533-6.667 6.667 6.667 0.933-1.067z'%3E%3C/path%3E%3C/svg%3E\") center/1.5rem auto no-repeat;border:0;border-radius:3px;opacity:0.5}.btn-close:hover{color:#000;text-decoration:none;opacity:0.75}.btn-close:focus{outline:0;-webkit-box-shadow:0 0 0 0.125rem rgba(51, 51, 51, 0.25);box-shadow:0 0 0 0.125rem rgba(51, 51, 51, 0.25);opacity:1}.btn-close:disabled,.btn-close.disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.25}.btn-close-white{-webkit-filter:invert(1) grayscale(100%) brightness(200%);filter:invert(1) grayscale(100%) brightness(200%)}.btn-close{height:unset;min-height:1.5rem}@media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black){.btn-close{opacity:1;background:transparent url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath opacity='1' fill='%23ffffff' d='M16.267 16.667l6.667-6.533-0.933-1.067-6.667 6.667-6.667-6.667-0.933 1.067 6.667 6.533-6.667 6.667 1.067 0.933 6.533-6.667 6.667 6.667 0.933-1.067z'%3E%3C/path%3E%3C/svg%3E\") center/1.5rem auto no-repeat}}.btn-close:focus{outline:2px solid var(--post-contrast-color);-webkit-box-shadow:none;box-shadow:none}.btn-close:focus:not(:focus-visible){outline:0}@media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black){.btn-close-white{-webkit-filter:none;filter:none}}.btn-default,.btn-secondary{border:2px solid rgba(var(--post-contrast-color-rgb), 0.2)}.btn-default:focus,.btn-secondary:focus,.btn-default:not(:disabled):hover,.btn-secondary:not(:disabled):hover,.pretend-hover.btn-default,.pretend-hover.btn-secondary{border-color:var(--post-contrast-color);color:var(--post-contrast-color)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-default,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-secondary{border-color:var(--post-contrast-color)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-default:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-secondary:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-default:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-secondary:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .pretend-hover.btn-default,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .pretend-hover.btn-secondary{border-color:rgba(var(--post-contrast-color-rgb), 0.4)}.btn-default:disabled,.btn-secondary:disabled{border-color:rgba(var(--post-contrast-color-rgb), 0.4);color:rgba(var(--post-contrast-color-rgb), 0.6)}.btn{min-height:3rem;padding:0 2rem;font-size:1rem;gap:1rem;outline:none;outline-offset:2px;display:-ms-inline-flexbox;display:inline-flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;overflow:hidden;-webkit-transition:opacity 250ms, border-color 250ms, background-color 250ms, color 250ms;transition:opacity 250ms, border-color 250ms, background-color 250ms, color 250ms;border-width:2px;border-style:solid;border-radius:3px;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;color:var(--post-contrast-color);font-family:inherit;font-weight:400;line-height:inherit;text-decoration:none !important;white-space:nowrap}.btn>.pi{width:1.25rem;height:1.25rem}.btn:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.btn-primary{border-color:transparent;background-color:rgba(var(--post-contrast-color-rgb), 0.8);color:var(--post-contrast-color-inverted)}.btn-primary:focus,.btn-primary:not(:disabled):hover,.btn-primary.pretend-hover{background-color:var(--post-contrast-color);color:var(--post-contrast-color-inverted)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary{background-color:var(--post-contrast-color)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary:focus,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary:not(:disabled):hover,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary.pretend-hover{background-color:rgba(var(--post-contrast-color-rgb), 0.8)}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-primary .pi{-webkit-filter:invert(0);filter:invert(0)}@media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black){.btn-primary{border-color:var(--post-contrast-color);background-color:ButtonFace}.btn-primary:not(:disabled,.disabled):hover,.btn-primary:not(:disabled,.disabled):focus-visible{border-color:highlight}.btn-primary .pi{-webkit-filter:invert(1) !important;filter:invert(1) !important}}.btn-primary:disabled{background-color:rgba(var(--post-contrast-color-rgb), 0.4)}.btn-primary .pi{-webkit-filter:invert(1);filter:invert(1);forced-color-adjust:none}:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-default .pi,:is(.bg-dark,.bg-primary,.bg-black,.bg-success,.bg-danger,.bg-nightblue,.bg-nightblue-bright,.bg-petrol,.bg-petrol-bright,.bg-coral,.bg-coral-bright,.bg-olive,.bg-purple,.bg-purple-bright,.bg-aubergine,.bg-aubergine-bright) .btn-secondary .pi{-webkit-filter:invert(1);filter:invert(1)}.btn-link,.btn-tertiary{border:0;padding-right:0.375rem;padding-left:0.375rem}.btn-link:focus,.btn-link:not(:disabled):hover,.btn-link.pretend-hover,.btn-tertiary:focus,.btn-tertiary:not(:disabled):hover,.btn-tertiary.pretend-hover{color:rgba(var(--post-contrast-color-rgb), 0.8)}.btn-link:disabled,.btn-tertiary:disabled{color:rgba(var(--post-contrast-color-rgb), 0.6)}@media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black){.btn-link,.btn-tertiary{color:linktext;text-decoration:underline !important}}.btn-icon{min-width:3rem;padding-right:0.75rem;padding-left:0.75rem}.btn-icon.btn-sm{min-width:2rem;padding-right:0.375rem;padding-left:0.375rem}.btn-icon.btn-rg{min-width:2.5rem;padding-right:0.5625rem;padding-left:0.5625rem}.btn-icon.btn-lg{min-width:3.5rem;padding-right:0.875rem;padding-left:0.875rem}.btn-animated:not(.btn-link,.btn-tertiary)::after{content:\"\";position:absolute;right:1.25rem;width:0.625em;height:0.625em;-webkit-transform:rotateZ(315deg) translate(-2px, -2px);transform:rotateZ(315deg) translate(-2px, -2px);-webkit-transform-origin:center center;transform-origin:center center;-webkit-transition:opacity 250ms, -webkit-transform 250ms;transition:opacity 250ms, -webkit-transform 250ms;transition:opacity 250ms, transform 250ms;transition:opacity 250ms, transform 250ms, -webkit-transform 250ms;border-right:2px solid currentColor;border-bottom:2px solid currentColor;opacity:0}.btn-animated:not(.btn-link,.btn-tertiary).btn-sm::after{right:0.5rem}.btn-animated:not(.btn-link,.btn-tertiary).btn-rg::after{right:0.875rem}.btn-animated:not(.btn-link,.btn-tertiary).btn-lg::after{right:1.5rem}.btn-animated:not(.btn-link,.btn-tertiary)>span{-webkit-transition:-webkit-transform 250ms;transition:-webkit-transform 250ms;transition:transform 250ms;transition:transform 250ms, -webkit-transform 250ms}@media (prefers-reduced-motion: no-preference){.btn-animated:not(.btn-link,.btn-tertiary):focus>span,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover>span,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover>span{-webkit-transform:translateX(-0.75rem);transform:translateX(-0.75rem)}.btn-animated:not(.btn-link,.btn-tertiary):focus.btn-sm>span,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover.btn-sm>span,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover.btn-sm>span{-webkit-transform:translateX(-0.5rem);transform:translateX(-0.5rem)}.btn-animated:not(.btn-link,.btn-tertiary):focus.btn-rg>span,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover.btn-rg>span,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover.btn-rg>span{-webkit-transform:translateX(-0.625rem);transform:translateX(-0.625rem)}.btn-animated:not(.btn-link,.btn-tertiary):focus.btn-lg>span,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover.btn-lg>span,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover.btn-lg>span{-webkit-transform:translateX(-1rem);transform:translateX(-1rem)}.btn-animated:not(.btn-link,.btn-tertiary):focus::after,.btn-animated:not(.btn-link,.btn-tertiary):not(:disabled):hover::after,.btn-animated:not(.btn-link,.btn-tertiary).pretend-hover::after{-webkit-transform:rotateZ(315deg) translate(0, 0);transform:rotateZ(315deg) translate(0, 0);opacity:1}.btn-animated:not(.btn-link,.btn-tertiary)>span{-webkit-transform:translateX(0);transform:translateX(0)}}.btn-sm{min-height:2rem;padding:0 1rem;font-size:0.8125rem;gap:0.5rem}.btn-sm>.pi{width:1rem;height:1rem}.btn-rg{min-height:2.5rem;padding:0 1.5rem;font-size:1rem;gap:0.75rem}.btn-rg>.pi{width:1.125rem;height:1.125rem}.btn-lg{min-height:3.5rem;padding:0 2.5rem;font-size:1.0625rem;gap:1.25rem}.btn-lg>.pi{width:1.5rem;height:1.5rem}.btn-nightblue{border-color:transparent;background-color:#004976;color:#fff}.btn-nightblue:focus,.btn-nightblue:not(:disabled):hover,.btn-nightblue.pretend-hover{background-color:#002943}.btn-nightblue-bright{border-color:transparent;background-color:#0076a8;color:#fff}.btn-nightblue-bright:focus,.btn-nightblue-bright:not(:disabled):hover,.btn-nightblue-bright.pretend-hover{background-color:#005275}.btn-petrol{border-color:transparent;background-color:#006d68;color:#fff}.btn-petrol:focus,.btn-petrol:not(:disabled):hover,.btn-petrol.pretend-hover{background-color:#003a37}.btn-petrol-bright{border-color:transparent;background-color:#00968f;color:#fff}.btn-petrol-bright:focus,.btn-petrol-bright:not(:disabled):hover,.btn-petrol-bright.pretend-hover{background-color:#00635e}.btn-coral{border-color:transparent;background-color:#9e2a2f;color:#fff}.btn-coral:focus,.btn-coral:not(:disabled):hover,.btn-coral.pretend-hover{background-color:#761f23}.btn-coral-bright{border-color:transparent;background-color:#e03c31;color:#fff}.btn-coral-bright:focus,.btn-coral-bright:not(:disabled):hover,.btn-coral-bright.pretend-hover{background-color:#c1271d}.btn-olive{border-color:transparent;background-color:#716135;color:#fff}.btn-olive:focus,.btn-olive:not(:disabled):hover,.btn-olive.pretend-hover{background-color:#4e4325}.btn-olive-bright{border-color:transparent;background-color:#aa9d2e}.btn-olive-bright:focus,.btn-olive-bright:not(:disabled):hover,.btn-olive-bright.pretend-hover{background-color:#827823}.btn-purple{border-color:transparent;background-color:#80276c;color:#fff}.btn-purple:focus,.btn-purple:not(:disabled):hover,.btn-purple.pretend-hover{background-color:#591b4b}.btn-purple-bright{border-color:transparent;background-color:#c5299b;color:#fff}.btn-purple-bright:focus,.btn-purple-bright:not(:disabled):hover,.btn-purple-bright.pretend-hover{background-color:#9b207a}.btn-aubergine{border-color:transparent;background-color:#523178;color:#fff}.btn-aubergine:focus,.btn-aubergine:not(:disabled):hover,.btn-aubergine.pretend-hover{background-color:#392254}.btn-aubergine-bright{border-color:transparent;background-color:#7566a0;color:#fff}.btn-aubergine-bright:focus,.btn-aubergine-bright:not(:disabled):hover,.btn-aubergine-bright.pretend-hover{background-color:#5e5182}.btn-success{border-color:transparent;background-color:#2c911c;color:#fff}.btn-success:focus,.btn-success:not(:disabled):hover,.btn-success.pretend-hover{background-color:#1f6614}.btn-info{border-color:transparent;background-color:#fc0}.btn-info:focus,.btn-info:not(:disabled):hover,.btn-info.pretend-hover{background-color:#cca300}.btn-warning{border-color:transparent;background-color:#f49e00}.btn-warning:focus,.btn-warning:not(:disabled):hover,.btn-warning.pretend-hover{background-color:#c17d00}.btn-danger{border-color:transparent;background-color:#a51728;color:#fff}.btn-danger:focus,.btn-danger:not(:disabled):hover,.btn-danger.pretend-hover{background-color:#78111d}.row{--bs-gutter-x:30px;--bs-gutter-y:0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-0.5 * var(--bs-gutter-x));margin-left:calc(-0.5 * var(--bs-gutter-x))}.row>*{-ms-flex-negative:0;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * 0.5);padding-left:calc(var(--bs-gutter-x) * 0.5);margin-top:var(--bs-gutter-y)}.col{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width: 400px){.col-sm{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-sm-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-sm-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-sm-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-sm-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-sm-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-sm-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width: 600px){.col-rg{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-rg-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-rg-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-rg-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-rg-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-rg-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-rg-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-rg-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-rg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-rg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-rg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-rg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-rg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-rg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-rg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-rg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-rg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-rg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-rg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-rg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-rg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-rg-0{margin-left:0}.offset-rg-1{margin-left:8.33333333%}.offset-rg-2{margin-left:16.66666667%}.offset-rg-3{margin-left:25%}.offset-rg-4{margin-left:33.33333333%}.offset-rg-5{margin-left:41.66666667%}.offset-rg-6{margin-left:50%}.offset-rg-7{margin-left:58.33333333%}.offset-rg-8{margin-left:66.66666667%}.offset-rg-9{margin-left:75%}.offset-rg-10{margin-left:83.33333333%}.offset-rg-11{margin-left:91.66666667%}.g-rg-0,.gx-rg-0{--bs-gutter-x:0}.g-rg-0,.gy-rg-0{--bs-gutter-y:0}.g-rg-1,.gx-rg-1{--bs-gutter-x:0.25rem}.g-rg-1,.gy-rg-1{--bs-gutter-y:0.25rem}.g-rg-2,.gx-rg-2{--bs-gutter-x:0.5rem}.g-rg-2,.gy-rg-2{--bs-gutter-y:0.5rem}.g-rg-3,.gx-rg-3{--bs-gutter-x:1rem}.g-rg-3,.gy-rg-3{--bs-gutter-y:1rem}.g-rg-4,.gx-rg-4{--bs-gutter-x:1.5rem}.g-rg-4,.gy-rg-4{--bs-gutter-y:1.5rem}.g-rg-5,.gx-rg-5{--bs-gutter-x:3rem}.g-rg-5,.gy-rg-5{--bs-gutter-y:3rem}}@media (min-width: 780px){.col-md{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-md-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-md-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-md-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-md-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-md-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-md-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width: 1024px){.col-lg{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-lg-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-lg-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-lg-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-lg-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-lg-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-lg-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width: 1280px){.col-xl{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xl-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-xl-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-xl-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-xl-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-xl-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-xl-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width: 1441px){.col-xxl{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xxl-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-xxl-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-xxl-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-xxl-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-xxl-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-xxl-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xxl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-xxl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-xxl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-xxl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-xxl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-xxl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-xxl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-xxl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-xxl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-xxl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-xxl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-xxl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.container,.container-fluid,.container-xs{width:100%;padding-right:var(--bs-gutter-x, 15px);padding-left:var(--bs-gutter-x, 15px);margin-right:auto;margin-left:auto}.container{max-width:1440px}.vertical-gutters{margin-bottom:-30px}.vertical-gutters>.col,.vertical-gutters>[class*=col-]{padding-bottom:30px}.row.border-gutters{margin-right:-1px;margin-bottom:-1px;margin-left:0}.row.border-gutters>.col,.row.border-gutters>[class*=col-]{padding-right:1px;padding-bottom:1px;padding-left:0}.container{padding-right:12px;padding-left:12px}.container-reset{margin-right:-12px;margin-left:-12px}.container-reset-left{margin-left:-12px}.container-reset-right{margin-right:-12px}@media (max-width: 399.98px){.container-fluid-xs{padding-right:1rem;padding-left:1rem}}@media (min-width: 400px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 400px){.container-reset{margin-right:-16px;margin-left:-16px}}@media (min-width: 400px){.container-reset-left{margin-left:-16px}}@media (min-width: 400px){.container-reset-right{margin-right:-16px}}@media (min-width: 400px) and (max-width: 599.98px){.container-fluid-sm{padding-right:1rem;padding-left:1rem}}@media (min-width: 600px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 600px){.container-reset{margin-right:-32px;margin-left:-32px}}@media (min-width: 600px){.container-reset-left{margin-left:-32px}}@media (min-width: 600px){.container-reset-right{margin-right:-32px}}@media (min-width: 600px) and (max-width: 779.98px){.container-fluid-rg{padding-right:1rem;padding-left:1rem}}@media (min-width: 780px) and (max-width: 1023.98px){.container-fluid-md{padding-right:1rem;padding-left:1rem}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}@media (min-width: 1024px){.container-reset{margin-right:-40px;margin-left:-40px}}@media (min-width: 1024px){.container-reset-left{margin-left:-40px}}@media (min-width: 1024px){.container-reset-right{margin-right:-40px}}@media (min-width: 1024px) and (max-width: 1279.98px){.container-fluid-lg{padding-right:1rem;padding-left:1rem}}@media (min-width: 1280px){.container{padding-right:128px;padding-left:128px}}@media (min-width: 1280px){.container-reset{margin-right:-128px;margin-left:-128px}}@media (min-width: 1280px){.container-reset-left{margin-left:-128px}}@media (min-width: 1280px){.container-reset-right{margin-right:-128px}}@media (min-width: 1280px) and (max-width: 1440.98px){.container-fluid-xl{padding-right:1rem;padding-left:1rem}}@media (min-width: 1441px){.container-fluid-xxl{padding-right:1rem;padding-left:1rem}}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:0.75rem;background-color:#cccccc;border-radius:3px}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#333333;-webkit-transition:width 0.6s ease;transition:width 0.6s ease}@media (prefers-reduced-motion: reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-bg{position:absolute;z-index:990;top:0;left:0;width:100%;height:100%}.loading-modal{display:-ms-inline-flexbox;display:inline-flex;position:absolute;z-index:990;top:0;right:0;bottom:0;left:0}.loader{width:3.5rem;height:3.5rem;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite;border:6px solid #fc0;border-radius:50%;border-right-color:transparent;border-bottom-color:#e6e6e6}.loader.loader-sm{width:2rem;height:2rem;border-width:0.25rem}.loader.loader-xs{width:0.75rem;height:0.75rem;border-width:2px}@media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black){.loader{border-color:Highlight;border-bottom-color:CanvasText;border-right-color:Canvas}@supports (forced-color-adjust: none){.loader{forced-color-adjust:none;border-right-color:transparent}}}@font-face{font-display:swap;font-family:\"Frutiger Neue For Post\";font-weight:700;src:url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff2\") format(\"woff2\"), url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff\") format(\"woff\")}@font-face{font-display:swap;font-family:\"Frutiger Neue For Post\";font-weight:400;src:url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff2\") format(\"woff2\"), url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff\") format(\"woff\")}@font-face{font-display:swap;font-family:\"Frutiger Neue For Post\";font-weight:300;src:url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff2\") format(\"woff2\"), url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff\") format(\"woff\")}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:\"Frutiger Neue For Post\", system-ui, sans-serif}button{font:inherit;padding:0}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:white}}.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}.btn-blank{background-color:transparent;border:none;border-radius:0;padding:0}.nav-link{text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.nav-link:hover,.nav-link:focus{color:black}.nav-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.nav-link>span{-ms-flex-negative:1;flex-shrink:1}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width: -0.02px){.hidden-xs{display:none}}@media (max-width: 399.98px){.hidden-sm{display:none}}@media (max-width: 599.98px){.hidden-rg{display:none}}@media (max-width: 779.98px){.hidden-md{display:none}}@media (max-width: 1023.98px){.hidden-lg{display:none}}@media (max-width: 1279.98px){.hidden-xl{display:none}}@media (max-width: 1440.98px){.hidden-xxl{display:none}}:host{display:block;position:relative}.breadcrumbs{font-size:1rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;gap:1rem}@media (max-width: 599.98px){.breadcrumbs{font-size:0.875rem}}.breadcrumbs-nav{white-space:nowrap;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1;min-width:0}.breadcrumbs-list,.nav-link{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.breadcrumbs-list li{display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}.breadcrumbs-list li:last-child{-ms-flex-negative:2;flex-shrink:2;min-width:0;overflow:hidden;text-overflow:ellipsis}.breadcrumbs-list li:last-child a{border:2px solid transparent;outline-offset:0}.breadcrumbs-list svg{margin-left:0 !important;width:1.5em;height:1.5em;color:rgba(0, 0, 0, 0.6)}.breadcrumb-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;gap:1rem;-ms-flex-negative:0;flex-shrink:0}.breadcrumb-buttons .btn{cursor:pointer;gap:0.5rem;font-size:inherit}.breadcrumb-buttons .btn.btn-secondary>svg{width:1.5rem;height:1.5rem;margin:0}@media (min-width: 1024px){.breadcrumb-buttons .btn span{position:static;width:auto;height:auto;margin:auto;overflow:visible;clip:auto;visibility:visible}}.nav-link{gap:0;color:rgba(0, 0, 0, 0.6);font-weight:400}.middle-dropdown-container{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.middle-dropdown{position:absolute;top:100%;left:0;background:white;border:1px solid #e6e6e6;padding:0.5rem 0;z-index:1}.middle-dropdown .nav-link{padding:0.5rem 1rem;-webkit-transition:color 200ms;transition:color 200ms}.middle-dropdown .nav-link:hover{background-color:#e6e6e6}.middle-dropdown-button{cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.25rem;font-size:inherit;color:inherit}.middle-dropdown-button span{margin:0}.middle-dropdown-button svg{margin:0;-ms-flex-negative:0;flex-shrink:0;width:1.4em;height:1.4em}.overlay{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0, 0, 0, 0.6);z-index:calc(var(--header-z-index, 10) + 1);opacity:0;visibility:hidden;-webkit-transition:opacity 500ms, visibility 0s 500ms;transition:opacity 500ms, visibility 0s 500ms}.overlay.open{visibility:visible;opacity:1;-webkit-transition:opacity 500ms, visibility 0s 0s;transition:opacity 500ms, visibility 0s 0s}.overlay-container{position:relative;background:white;-webkit-box-shadow:0 0 40px rgba(0, 0, 0, 0.6);box-shadow:0 0 40px rgba(0, 0, 0, 0.6);visibility:hidden;-webkit-transform:translateY(3rem);transform:translateY(3rem);opacity:0;-webkit-transition:opacity 500ms, -webkit-transform 500ms;transition:opacity 500ms, -webkit-transform 500ms;transition:transform 500ms, opacity 500ms;transition:transform 500ms, opacity 500ms, -webkit-transform 500ms}iframe{display:block;width:1px;min-width:100%;overflow:auto;max-height:80vh}.overlay-close{position:absolute;top:1rem;right:1rem;cursor:pointer;padding:0.5rem;color:rgba(0, 0, 0, 0.8)}.overlay-close:hover,.overlay-close:focus{color:black}.overlay-close.phone{color:white}.overlay-close.phone:hover,.overlay-close.phone:focus{color:rgba(255, 255, 255, 0.8)}@media (min-width: 600px){.overlay-close span{position:static;width:auto;height:auto;margin:auto;overflow:visible;clip:auto;visibility:visible}}.loader-wrapper{position:absolute;display:grid;place-items:center;width:100%;height:100%;top:0;left:0}.loaded~.loader-wrapper{display:none}.hidden-control-breadcrumbs{position:absolute;top:100%;width:0;overflow:hidden;display:-ms-flexbox;display:flex;pointer-events:none}.hidden-control-breadcrumbs .breadcrumbs-nav{-ms-flex-negative:0;flex-shrink:0}.hidden-control-breadcrumbs .breadcrumbs-list li{-ms-flex-negative:0;flex-shrink:0}.visually-hidden{visibility:hidden}";
3286
3264
 
3287
- const PostInternetBreadcrumbs = class {
3288
- constructor(hostRef) {
3289
- registerInstance(this, hostRef);
3290
- this.customItems = undefined;
3291
- this.customBreadcrumbItems = undefined;
3292
- this.overlayVisible = undefined;
3293
- this.isConcatenated = undefined;
3294
- this.dropdownOpen = false;
3295
- this.refsReady = false;
3296
- }
3297
- connectedCallback() {
3298
- this.debouncedResize = debounce(200, this.handleResize.bind(this));
3299
- window.addEventListener('resize', this.debouncedResize, { passive: true });
3300
- }
3301
- disconnectedCallback() {
3302
- window.removeEventListener('resize', this.debouncedResize);
3303
- window.removeEventListener('click', this.handleWindowClick);
3304
- clearAllBodyScrollLocks();
3305
- }
3306
- async componentWillLoad() {
3307
- // Wait for the config to arrive, then render the header
3308
- try {
3309
- this.customBreadcrumbItems =
3310
- typeof this.customItems === 'string' ? JSON.parse(this.customItems) : this.customItems;
3311
- }
3312
- catch (error) {
3313
- console.error(error);
3314
- }
3315
- }
3316
- componentDidLoad() {
3317
- // Initially check if breadcrumb items are concatenated
3318
- window.requestAnimationFrame(() => {
3319
- this.handleResize();
3320
- });
3321
- }
3322
- handleCustomConfigChage(newValue) {
3323
- try {
3324
- this.customBreadcrumbItems = typeof newValue === 'string' ? JSON.parse(newValue) : newValue;
3325
- }
3326
- catch (error) {
3327
- console.error(error);
3328
- }
3329
- }
3330
- handleResize() {
3331
- // Catch and exclude vertical resize events, e.g. scrolling in iPhone
3332
- if (window.innerWidth === this.lastWindowWidth) {
3333
- return;
3334
- }
3335
- this.lastWindowWidth = window.innerWidth;
3336
- this.checkConcatenation();
3337
- }
3338
- checkConcatenation() {
3339
- if (this.controlNavRef && this.visibleNavRef) {
3340
- this.refsReady = true;
3341
- // Delay the check
3342
- window.requestAnimationFrame(() => {
3343
- if (this.controlNavRef && this.visibleNavRef) {
3344
- this.isConcatenated = this.controlNavRef.clientWidth > this.visibleNavRef.clientWidth;
3345
- }
3346
- });
3347
- }
3348
- }
3349
- toggleOverlay(overlay, force) {
3350
- var _a;
3351
- const newVisibility = force !== null && force !== void 0 ? force : !this.overlayVisible;
3352
- if (newVisibility) {
3353
- // Will trigger overlayRef() once the HTLM is rendered
3354
- this.overlayVisible = newVisibility;
3355
- this.currentOverlay = overlay;
3356
- this.setBodyScroll(overlay);
3357
- }
3358
- else {
3359
- const activeToggler = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.breadcrumb-buttons [aria-expanded="true"]');
3360
- if (this.openAnimation && this.loadedAnimation) {
3361
- this.openAnimation.reverse();
3362
- this.loadedAnimation.reverse();
3363
- // Delay hiding overlay until after the animation finishes
3364
- Promise.all([this.openAnimation.finished, this.loadedAnimation.finished]).then(() => {
3365
- if (activeToggler) {
3366
- activeToggler.focus();
3367
- }
3368
- this.overlayVisible = newVisibility;
3369
- this.setBodyScroll(overlay);
3370
- });
3371
- }
3372
- }
3373
- }
3374
- /**
3375
- * Disable or re-enable body scrolling, depending on whether overlay is visible or not
3376
- */
3377
- setBodyScroll(overlay) {
3378
- if (this.overlayVisible) {
3379
- disableBodyScroll(overlay, { reserveScrollBarGap: true });
3380
- }
3381
- else {
3382
- enableBodyScroll(overlay);
3383
- }
3384
- }
3385
- toggleDropdown(force) {
3386
- this.dropdownOpen = force !== null && force !== void 0 ? force : !this.dropdownOpen;
3387
- if (this.dropdownOpen) {
3388
- requestAnimationFrame(() => {
3389
- document.addEventListener('click', this.handleWindowClick.bind(this), { once: true });
3390
- });
3391
- }
3392
- }
3393
- handleWindowClick() {
3394
- this.toggleDropdown(false);
3395
- }
3396
- registerIFrameResizer(iFrame) {
3397
- if (!iFrame) {
3398
- return;
3399
- }
3400
- iFrame.addEventListener('load', () => {
3401
- var _a, _b, _c;
3402
- iframeResizer.iframeResizer({
3403
- heightCalculationMethod: 'taggedElement',
3404
- scrolling: true,
3405
- checkOrigin: false,
3406
- }, iFrame);
3407
- const duration = prefersReducedMotion ? 0 : 300;
3408
- this.loadedAnimation = (_a = iFrame.parentElement) === null || _a === void 0 ? void 0 : _a.animate([{ opacity: 1, visibility: 'visible', transform: 'translateY(0px)' }], { duration, fill: 'forwards' });
3409
- (_b = iFrame.parentElement) === null || _b === void 0 ? void 0 : _b.classList.add('loaded');
3410
- (_c = this.loadedAnimation) === null || _c === void 0 ? void 0 : _c.finished.then(() => {
3411
- var _a;
3412
- (_a = iFrame.parentElement) === null || _a === void 0 ? void 0 : _a.focus();
3413
- });
3414
- });
3415
- }
3416
- /**
3417
- * Reference function for the overlay element got called. It is either null (overlay closed)
3418
- * or contains the overlay element as parameter.
3419
- * @param e Overlay element or null
3420
- * @returns void
3421
- */
3422
- overlayRef(e) {
3423
- if (!e) {
3424
- return;
3425
- }
3426
- const duration = prefersReducedMotion ? 0 : 500;
3427
- this.openAnimation = e.animate([{ opacity: 1, visibility: 'visible' }], {
3428
- duration,
3429
- fill: 'forwards',
3430
- });
3431
- }
3432
- handleKeyDown(event) {
3433
- if (event.key.toLowerCase() === 'escape') {
3434
- this.toggleOverlay(this.currentOverlay, false);
3435
- }
3436
- }
3437
- handleToggleDropdown() {
3438
- this.toggleDropdown();
3439
- }
3440
- handleToggleOverlay() {
3441
- this.toggleOverlay(this.currentOverlay, false);
3442
- }
3443
- handleControlNavRef(element) {
3444
- this.controlNavRef = element;
3445
- this.checkConcatenation();
3446
- }
3447
- handleVisibleNavRef(element) {
3448
- this.visibleNavRef = element;
3449
- this.checkConcatenation();
3450
- }
3451
- render() {
3452
- // There is something wrong entirely
3453
- if (!state) {
3454
- console.warn(`Internet Breadcrumbs: Could not load config. Please make sure that you included the <swisspost-internet-header></swisspost-internet-header> component.`);
3455
- return null;
3456
- }
3457
- // Config is not loaded yet
3458
- if (!state.localizedConfig) {
3459
- return null;
3460
- }
3461
- // Config has loaded but there is no breadcrumbs config
3462
- if (!state.localizedConfig.breadcrumb) {
3463
- console.warn(`Internet Header: Current project "${state.projectId}" does not include a breadcrumb config. The breadcrumbs will not be rendered. Remove `, document.querySelector('swisspost-internet-breadcrumbs'), `from your markup or configure the breadcrumbs in your portal config to stop seeing this warning.`);
3464
- return null;
3465
- }
3466
- const breadcrumbConfig = state.localizedConfig.breadcrumb;
3467
- const items = this.customBreadcrumbItems !== undefined
3468
- ? [...breadcrumbConfig.items, ...this.customBreadcrumbItems]
3469
- : breadcrumbConfig.items;
3470
- return (h(Host, null, h(SvgSprite, null), h("div", { class: "breadcrumbs" }, h("div", { class: "hidden-control-breadcrumbs", "aria-hidden": "true", tabindex: "-1" }, h("nav", { class: "breadcrumbs-nav", ref: e => e !== undefined && this.handleControlNavRef(e) }, h(BreadcrumbList, { items: items, focusable: false, clickHandler: () => { } }))), h("h2", { class: "visually-hidden" }, breadcrumbConfig.a11yLabel), h("nav", { ref: e => e !== undefined && this.handleVisibleNavRef(e), class: {
3471
- 'breadcrumbs-nav': true,
3472
- 'visually-hidden': !this.refsReady,
3473
- } }, h(BreadcrumbList, { items: items, dropdownOpen: this.dropdownOpen, isConcatenated: this.isConcatenated, clickHandler: () => this.handleToggleDropdown() })), h("div", { class: "breadcrumb-buttons" }, breadcrumbConfig.buttons.map(button => (h("button", { class: "btn btn-secondary btn-icon", key: button.text, "aria-expanded": `${!!this.overlayVisible && this.currentOverlay === button.overlay}`, onClick: () => this.toggleOverlay(button.overlay, true) }, h(SvgIcon, { name: button.svgIcon.name }), h("span", { class: "visually-hidden" }, button.text))))), this.overlayVisible && (h(OverlayComponent, { overlayRef: e => e !== undefined && this.overlayRef(e), iFrameRef: e => e !== undefined && this.registerIFrameResizer(e), overlay: this.currentOverlay, onClick: () => this.handleToggleOverlay(), onKeyDown: (e) => this.handleKeyDown(e), closeButtonText: state.localizedConfig.header.translations.closeButtonText }))), h("slot", null)));
3474
- }
3475
- get host() { return getElement(this); }
3476
- static get watchers() { return {
3477
- "customItems": ["handleCustomConfigChage"]
3478
- }; }
3479
- };
3265
+ const PostInternetBreadcrumbs = class {
3266
+ constructor(hostRef) {
3267
+ registerInstance(this, hostRef);
3268
+ this.customItems = undefined;
3269
+ this.customBreadcrumbItems = undefined;
3270
+ this.overlayVisible = undefined;
3271
+ this.isConcatenated = undefined;
3272
+ this.dropdownOpen = false;
3273
+ this.refsReady = false;
3274
+ }
3275
+ connectedCallback() {
3276
+ this.debouncedResize = debounce(200, this.handleResize.bind(this));
3277
+ window.addEventListener('resize', this.debouncedResize, { passive: true });
3278
+ }
3279
+ disconnectedCallback() {
3280
+ window.removeEventListener('resize', this.debouncedResize);
3281
+ window.removeEventListener('click', this.handleWindowClick);
3282
+ clearAllBodyScrollLocks();
3283
+ }
3284
+ async componentWillLoad() {
3285
+ // Wait for the config to arrive, then render the header
3286
+ try {
3287
+ this.customBreadcrumbItems =
3288
+ typeof this.customItems === 'string' ? JSON.parse(this.customItems) : this.customItems;
3289
+ }
3290
+ catch (error) {
3291
+ console.error(error);
3292
+ }
3293
+ }
3294
+ componentDidLoad() {
3295
+ // Initially check if breadcrumb items are concatenated
3296
+ window.requestAnimationFrame(() => {
3297
+ this.handleResize();
3298
+ });
3299
+ }
3300
+ handleCustomConfigChage(newValue) {
3301
+ try {
3302
+ this.customBreadcrumbItems = typeof newValue === 'string' ? JSON.parse(newValue) : newValue;
3303
+ }
3304
+ catch (error) {
3305
+ console.error(error);
3306
+ }
3307
+ }
3308
+ handleResize() {
3309
+ // Catch and exclude vertical resize events, e.g. scrolling in iPhone
3310
+ if (window.innerWidth === this.lastWindowWidth) {
3311
+ return;
3312
+ }
3313
+ this.lastWindowWidth = window.innerWidth;
3314
+ this.checkConcatenation();
3315
+ }
3316
+ checkConcatenation() {
3317
+ if (this.controlNavRef && this.visibleNavRef) {
3318
+ this.refsReady = true;
3319
+ // Delay the check
3320
+ window.requestAnimationFrame(() => {
3321
+ if (this.controlNavRef && this.visibleNavRef) {
3322
+ this.isConcatenated = this.controlNavRef.clientWidth > this.visibleNavRef.clientWidth;
3323
+ }
3324
+ });
3325
+ }
3326
+ }
3327
+ toggleOverlay(overlay, force) {
3328
+ var _a;
3329
+ const newVisibility = force !== null && force !== void 0 ? force : !this.overlayVisible;
3330
+ if (newVisibility) {
3331
+ // Will trigger overlayRef() once the HTLM is rendered
3332
+ this.overlayVisible = newVisibility;
3333
+ this.currentOverlay = overlay;
3334
+ this.setBodyScroll(overlay);
3335
+ }
3336
+ else {
3337
+ const activeToggler = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.breadcrumb-buttons [aria-expanded="true"]');
3338
+ if (this.openAnimation && this.loadedAnimation) {
3339
+ this.openAnimation.reverse();
3340
+ this.loadedAnimation.reverse();
3341
+ // Delay hiding overlay until after the animation finishes
3342
+ Promise.all([this.openAnimation.finished, this.loadedAnimation.finished]).then(() => {
3343
+ if (activeToggler) {
3344
+ activeToggler.focus();
3345
+ }
3346
+ this.overlayVisible = newVisibility;
3347
+ this.setBodyScroll(overlay);
3348
+ });
3349
+ }
3350
+ }
3351
+ }
3352
+ /**
3353
+ * Disable or re-enable body scrolling, depending on whether overlay is visible or not
3354
+ */
3355
+ setBodyScroll(overlay) {
3356
+ if (this.overlayVisible) {
3357
+ disableBodyScroll(overlay, { reserveScrollBarGap: true });
3358
+ }
3359
+ else {
3360
+ enableBodyScroll(overlay);
3361
+ }
3362
+ }
3363
+ toggleDropdown(force) {
3364
+ this.dropdownOpen = force !== null && force !== void 0 ? force : !this.dropdownOpen;
3365
+ if (this.dropdownOpen) {
3366
+ requestAnimationFrame(() => {
3367
+ document.addEventListener('click', this.handleWindowClick.bind(this), { once: true });
3368
+ });
3369
+ }
3370
+ }
3371
+ handleWindowClick() {
3372
+ this.toggleDropdown(false);
3373
+ }
3374
+ registerIFrameResizer(iFrame) {
3375
+ if (!iFrame) {
3376
+ return;
3377
+ }
3378
+ iFrame.addEventListener('load', () => {
3379
+ var _a, _b, _c;
3380
+ iframeResizer.iframeResizer({
3381
+ heightCalculationMethod: 'taggedElement',
3382
+ scrolling: true,
3383
+ checkOrigin: false,
3384
+ }, iFrame);
3385
+ const duration = prefersReducedMotion ? 0 : 300;
3386
+ this.loadedAnimation = (_a = iFrame.parentElement) === null || _a === void 0 ? void 0 : _a.animate([{ opacity: 1, visibility: 'visible', transform: 'translateY(0px)' }], { duration, fill: 'forwards' });
3387
+ (_b = iFrame.parentElement) === null || _b === void 0 ? void 0 : _b.classList.add('loaded');
3388
+ (_c = this.loadedAnimation) === null || _c === void 0 ? void 0 : _c.finished.then(() => {
3389
+ var _a;
3390
+ (_a = iFrame.parentElement) === null || _a === void 0 ? void 0 : _a.focus();
3391
+ });
3392
+ });
3393
+ }
3394
+ /**
3395
+ * Reference function for the overlay element got called. It is either null (overlay closed)
3396
+ * or contains the overlay element as parameter.
3397
+ * @param e Overlay element or null
3398
+ * @returns void
3399
+ */
3400
+ overlayRef(e) {
3401
+ if (!e) {
3402
+ return;
3403
+ }
3404
+ const duration = prefersReducedMotion ? 0 : 500;
3405
+ this.openAnimation = e.animate([{ opacity: 1, visibility: 'visible' }], {
3406
+ duration,
3407
+ fill: 'forwards',
3408
+ });
3409
+ }
3410
+ handleKeyDown(event) {
3411
+ if (event.key.toLowerCase() === 'escape') {
3412
+ this.toggleOverlay(this.currentOverlay, false);
3413
+ }
3414
+ }
3415
+ handleToggleDropdown() {
3416
+ this.toggleDropdown();
3417
+ }
3418
+ handleToggleOverlay() {
3419
+ this.toggleOverlay(this.currentOverlay, false);
3420
+ }
3421
+ handleControlNavRef(element) {
3422
+ this.controlNavRef = element;
3423
+ this.checkConcatenation();
3424
+ }
3425
+ handleVisibleNavRef(element) {
3426
+ this.visibleNavRef = element;
3427
+ this.checkConcatenation();
3428
+ }
3429
+ render() {
3430
+ // There is something wrong entirely
3431
+ if (!state) {
3432
+ console.warn(`Internet Breadcrumbs: Could not load config. Please make sure that you included the <swisspost-internet-header></swisspost-internet-header> component.`);
3433
+ return null;
3434
+ }
3435
+ // Config is not loaded yet
3436
+ if (!state.localizedConfig) {
3437
+ return null;
3438
+ }
3439
+ // Config has loaded but there is no breadcrumbs config
3440
+ if (!state.localizedConfig.breadcrumb) {
3441
+ console.warn(`Internet Header: Current project "${state.projectId}" does not include a breadcrumb config. The breadcrumbs will not be rendered. Remove `, document.querySelector('swisspost-internet-breadcrumbs'), `from your markup or configure the breadcrumbs in your portal config to stop seeing this warning.`);
3442
+ return null;
3443
+ }
3444
+ const breadcrumbConfig = state.localizedConfig.breadcrumb;
3445
+ const items = this.customBreadcrumbItems !== undefined
3446
+ ? [...breadcrumbConfig.items, ...this.customBreadcrumbItems]
3447
+ : breadcrumbConfig.items;
3448
+ return (h(Host, null, h(SvgSprite, null), h("div", { class: "breadcrumbs" }, h("div", { class: "hidden-control-breadcrumbs", "aria-hidden": "true", tabindex: "-1" }, h("nav", { class: "breadcrumbs-nav", ref: e => e !== undefined && this.handleControlNavRef(e) }, h(BreadcrumbList, { items: items, focusable: false, clickHandler: () => { } }))), h("h2", { class: "visually-hidden" }, breadcrumbConfig.a11yLabel), h("nav", { ref: e => e !== undefined && this.handleVisibleNavRef(e), class: {
3449
+ 'breadcrumbs-nav': true,
3450
+ 'visually-hidden': !this.refsReady,
3451
+ } }, h(BreadcrumbList, { items: items, dropdownOpen: this.dropdownOpen, isConcatenated: this.isConcatenated, clickHandler: () => this.handleToggleDropdown() })), h("div", { class: "breadcrumb-buttons" }, breadcrumbConfig.buttons.map(button => (h("button", { class: "btn btn-secondary btn-icon", key: button.text, "aria-expanded": `${!!this.overlayVisible && this.currentOverlay === button.overlay}`, onClick: () => this.toggleOverlay(button.overlay, true) }, h(SvgIcon, { name: button.svgIcon.name }), h("span", { class: "visually-hidden" }, button.text))))), this.overlayVisible && (h(OverlayComponent, { overlayRef: e => e !== undefined && this.overlayRef(e), iFrameRef: e => e !== undefined && this.registerIFrameResizer(e), overlay: this.currentOverlay, onClick: () => this.handleToggleOverlay(), onKeyDown: (e) => this.handleKeyDown(e), closeButtonText: state.localizedConfig.header.translations.closeButtonText }))), h("slot", null)));
3452
+ }
3453
+ get host() { return getElement(this); }
3454
+ static get watchers() { return {
3455
+ "customItems": ["handleCustomConfigChage"]
3456
+ }; }
3457
+ };
3480
3458
  PostInternetBreadcrumbs.style = postInternetBreadcrumbsCss;
3481
3459
 
3482
3460
  export { PostInternetBreadcrumbs as swisspost_internet_breadcrumbs };