@swisspost/internet-header 1.8.3 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/dist/cjs/{klp-widget.controller-d86525e1.js → klp-widget.controller-8e2198a2.js} +8 -8
  2. package/dist/cjs/klp-widget.controller-8e2198a2.js.map +1 -0
  3. package/dist/cjs/{language.service-516d1809.js → language.service-9334ca5d.js} +7 -2
  4. package/dist/cjs/language.service-9334ca5d.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/post-klp-login-widget.cjs.entry.js +3 -3
  7. package/dist/cjs/post-klp-login-widget.cjs.entry.js.map +1 -1
  8. package/dist/cjs/post-language-switch.cjs.entry.js +3 -3
  9. package/dist/cjs/post-language-switch.cjs.entry.js.map +1 -1
  10. package/dist/cjs/post-logo.cjs.entry.js +2 -29
  11. package/dist/cjs/post-logo.cjs.entry.js.map +1 -1
  12. package/dist/cjs/post-main-navigation.cjs.entry.js +3 -3
  13. package/dist/cjs/post-main-navigation.cjs.entry.js.map +1 -1
  14. package/dist/cjs/post-meta-navigation.cjs.entry.js +2 -2
  15. package/dist/cjs/post-meta-navigation.cjs.entry.js.map +1 -1
  16. package/dist/cjs/post-search.cjs.entry.js +2 -2
  17. package/dist/cjs/post-search.cjs.entry.js.map +1 -1
  18. package/dist/cjs/post-skiplinks.cjs.entry.js +2 -2
  19. package/dist/cjs/{store-915e0360.js → store-b99affc1.js} +2 -1
  20. package/dist/cjs/store-b99affc1.js.map +1 -0
  21. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +3 -3
  22. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js.map +1 -1
  23. package/dist/cjs/swisspost-internet-footer.cjs.entry.js +20 -5
  24. package/dist/cjs/swisspost-internet-footer.cjs.entry.js.map +1 -1
  25. package/dist/cjs/swisspost-internet-header.cjs.entry.js +73 -20
  26. package/dist/cjs/swisspost-internet-header.cjs.entry.js.map +1 -1
  27. package/dist/cjs/swisspost-internet-header.cjs.js +1 -1
  28. package/dist/collection/assets/config/test-configuration.json +12 -12
  29. package/dist/collection/assets/i18n/translations.js +5 -0
  30. package/dist/collection/assets/i18n/translations.js.map +1 -1
  31. package/dist/collection/assets/js/klp-login-widget.js +7 -7
  32. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.css +61 -126
  33. package/dist/collection/components/post-internet-footer/post-internet-footer.css +26 -22
  34. package/dist/collection/components/post-internet-footer/post-internet-footer.js +20 -4
  35. package/dist/collection/components/post-internet-footer/post-internet-footer.js.map +1 -1
  36. package/dist/collection/components/post-internet-header/logo-animation/logo-animation.js +46 -0
  37. package/dist/collection/components/post-internet-header/logo-animation/logo-animation.js.map +1 -0
  38. package/dist/collection/components/post-internet-header/post-internet-header.css +27 -2
  39. package/dist/collection/components/post-internet-header/post-internet-header.js +13 -1
  40. package/dist/collection/components/post-internet-header/post-internet-header.js.map +1 -1
  41. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.css +23 -22
  42. package/dist/collection/components/post-language-switch/post-language-switch.css +5 -3
  43. package/dist/collection/components/post-logo/post-logo.css +6 -4
  44. package/dist/collection/components/post-logo/post-logo.js +0 -34
  45. package/dist/collection/components/post-logo/post-logo.js.map +1 -1
  46. package/dist/collection/components/post-main-navigation/post-main-navigation.css +6 -2
  47. package/dist/collection/components/post-meta-navigation/post-meta-navigation.css +15 -3
  48. package/dist/collection/components/post-search/post-search.css +6 -2
  49. package/dist/collection/data/store.js +1 -0
  50. package/dist/collection/data/store.js.map +1 -1
  51. package/dist/components/klp-widget.controller.js +7 -7
  52. package/dist/components/klp-widget.controller.js.map +1 -1
  53. package/dist/components/language.service.js +5 -0
  54. package/dist/components/language.service.js.map +1 -1
  55. package/dist/components/post-klp-login-widget2.js +1 -1
  56. package/dist/components/post-klp-login-widget2.js.map +1 -1
  57. package/dist/components/post-language-switch2.js +1 -1
  58. package/dist/components/post-language-switch2.js.map +1 -1
  59. package/dist/components/post-logo2.js +2 -31
  60. package/dist/components/post-logo2.js.map +1 -1
  61. package/dist/components/post-main-navigation2.js +1 -1
  62. package/dist/components/post-main-navigation2.js.map +1 -1
  63. package/dist/components/post-meta-navigation2.js +1 -1
  64. package/dist/components/post-meta-navigation2.js.map +1 -1
  65. package/dist/components/post-search2.js +1 -1
  66. package/dist/components/post-search2.js.map +1 -1
  67. package/dist/components/store.js +1 -0
  68. package/dist/components/store.js.map +1 -1
  69. package/dist/components/swisspost-internet-breadcrumbs.js +1 -1
  70. package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -1
  71. package/dist/components/swisspost-internet-footer.js +21 -5
  72. package/dist/components/swisspost-internet-footer.js.map +1 -1
  73. package/dist/components/swisspost-internet-header.js +65 -12
  74. package/dist/components/swisspost-internet-header.js.map +1 -1
  75. package/dist/esm/{klp-widget.controller-91f5dd0b.js → klp-widget.controller-e9029567.js} +8 -8
  76. package/dist/esm/klp-widget.controller-e9029567.js.map +1 -0
  77. package/dist/esm/{language.service-faf591b3.js → language.service-bd0f3b6f.js} +7 -2
  78. package/dist/esm/language.service-bd0f3b6f.js.map +1 -0
  79. package/dist/esm/loader.js +1 -1
  80. package/dist/esm/post-klp-login-widget.entry.js +3 -3
  81. package/dist/esm/post-klp-login-widget.entry.js.map +1 -1
  82. package/dist/esm/post-language-switch.entry.js +3 -3
  83. package/dist/esm/post-language-switch.entry.js.map +1 -1
  84. package/dist/esm/post-logo.entry.js +2 -29
  85. package/dist/esm/post-logo.entry.js.map +1 -1
  86. package/dist/esm/post-main-navigation.entry.js +3 -3
  87. package/dist/esm/post-main-navigation.entry.js.map +1 -1
  88. package/dist/esm/post-meta-navigation.entry.js +2 -2
  89. package/dist/esm/post-meta-navigation.entry.js.map +1 -1
  90. package/dist/esm/post-search.entry.js +2 -2
  91. package/dist/esm/post-search.entry.js.map +1 -1
  92. package/dist/esm/post-skiplinks.entry.js +2 -2
  93. package/dist/esm/{store-79377f91.js → store-44830922.js} +2 -1
  94. package/dist/esm/store-44830922.js.map +1 -0
  95. package/dist/esm/swisspost-internet-breadcrumbs.entry.js +3 -3
  96. package/dist/esm/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  97. package/dist/esm/swisspost-internet-footer.entry.js +20 -5
  98. package/dist/esm/swisspost-internet-footer.entry.js.map +1 -1
  99. package/dist/esm/swisspost-internet-header.entry.js +67 -14
  100. package/dist/esm/swisspost-internet-header.entry.js.map +1 -1
  101. package/dist/esm/swisspost-internet-header.js +1 -1
  102. package/dist/esm-es5/{klp-widget.controller-91f5dd0b.js → klp-widget.controller-e9029567.js} +2 -2
  103. package/dist/esm-es5/{klp-widget.controller-91f5dd0b.js.map → klp-widget.controller-e9029567.js.map} +1 -1
  104. package/dist/esm-es5/language.service-bd0f3b6f.js +2 -0
  105. package/dist/{swisspost-internet-header/p-3e6e0272.system.js.map → esm-es5/language.service-bd0f3b6f.js.map} +1 -1
  106. package/dist/esm-es5/loader.js +1 -1
  107. package/dist/esm-es5/loader.js.map +1 -1
  108. package/dist/esm-es5/post-klp-login-widget.entry.js +1 -1
  109. package/dist/esm-es5/post-klp-login-widget.entry.js.map +1 -1
  110. package/dist/esm-es5/post-language-switch.entry.js +1 -1
  111. package/dist/esm-es5/post-language-switch.entry.js.map +1 -1
  112. package/dist/esm-es5/post-logo.entry.js +1 -1
  113. package/dist/esm-es5/post-logo.entry.js.map +1 -1
  114. package/dist/esm-es5/post-main-navigation.entry.js +1 -1
  115. package/dist/esm-es5/post-main-navigation.entry.js.map +1 -1
  116. package/dist/esm-es5/post-meta-navigation.entry.js +1 -1
  117. package/dist/esm-es5/post-meta-navigation.entry.js.map +1 -1
  118. package/dist/esm-es5/post-search.entry.js +1 -1
  119. package/dist/esm-es5/post-search.entry.js.map +1 -1
  120. package/dist/esm-es5/post-skiplinks.entry.js +1 -1
  121. package/dist/esm-es5/{store-79377f91.js → store-44830922.js} +2 -2
  122. package/dist/esm-es5/store-44830922.js.map +1 -0
  123. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +2 -2
  124. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  125. package/dist/esm-es5/swisspost-internet-footer.entry.js +1 -1
  126. package/dist/esm-es5/swisspost-internet-footer.entry.js.map +1 -1
  127. package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
  128. package/dist/esm-es5/swisspost-internet-header.entry.js.map +1 -1
  129. package/dist/esm-es5/swisspost-internet-header.js +1 -1
  130. package/dist/esm-es5/swisspost-internet-header.js.map +1 -1
  131. package/dist/swisspost-internet-header/assets/config/test-configuration.json +12 -12
  132. package/dist/swisspost-internet-header/p-06d32a28.entry.js +7 -0
  133. package/dist/swisspost-internet-header/{p-1055564a.entry.js.map → p-06d32a28.entry.js.map} +1 -1
  134. package/dist/swisspost-internet-header/p-0dd2de97.entry.js +2 -0
  135. package/dist/swisspost-internet-header/p-0dd2de97.entry.js.map +1 -0
  136. package/dist/swisspost-internet-header/p-131078ce.system.entry.js +2 -0
  137. package/dist/swisspost-internet-header/p-131078ce.system.entry.js.map +1 -0
  138. package/dist/swisspost-internet-header/p-1ec4e0ee.system.js +2 -0
  139. package/dist/swisspost-internet-header/p-1ec4e0ee.system.js.map +1 -0
  140. package/dist/swisspost-internet-header/p-273fd39b.entry.js +2 -0
  141. package/dist/swisspost-internet-header/{p-bab5139b.entry.js.map → p-273fd39b.entry.js.map} +1 -1
  142. package/dist/swisspost-internet-header/p-3c8504b4.system.entry.js +2 -0
  143. package/dist/swisspost-internet-header/p-3c8504b4.system.entry.js.map +1 -0
  144. package/dist/swisspost-internet-header/p-4099b274.system.js +2 -0
  145. package/dist/swisspost-internet-header/p-4099b274.system.js.map +1 -0
  146. package/dist/swisspost-internet-header/{p-8eb05d18.js → p-459c3983.js} +2 -2
  147. package/dist/swisspost-internet-header/p-459c3983.js.map +1 -0
  148. package/dist/swisspost-internet-header/p-51c15273.entry.js +2 -0
  149. package/dist/swisspost-internet-header/p-51c15273.entry.js.map +1 -0
  150. package/dist/swisspost-internet-header/p-5b233b42.entry.js +2 -0
  151. package/dist/swisspost-internet-header/{p-df51fa24.entry.js.map → p-5b233b42.entry.js.map} +1 -1
  152. package/dist/swisspost-internet-header/p-5d893017.system.js +1 -1
  153. package/dist/swisspost-internet-header/p-5d893017.system.js.map +1 -1
  154. package/dist/swisspost-internet-header/{p-24aba4ed.system.js → p-6426cae8.system.js} +2 -2
  155. package/dist/swisspost-internet-header/{p-24aba4ed.system.js.map → p-6426cae8.system.js.map} +1 -1
  156. package/dist/swisspost-internet-header/p-6bb07a80.entry.js +2 -0
  157. package/dist/swisspost-internet-header/p-6bb07a80.entry.js.map +1 -0
  158. package/dist/swisspost-internet-header/{p-bedb8e58.system.entry.js → p-6f69aff4.system.entry.js} +2 -2
  159. package/dist/swisspost-internet-header/p-7bed0797.js +2 -0
  160. package/dist/swisspost-internet-header/p-7bed0797.js.map +1 -0
  161. package/dist/swisspost-internet-header/p-811b9615.entry.js +2 -0
  162. package/dist/swisspost-internet-header/{p-4ae35141.entry.js.map → p-811b9615.entry.js.map} +1 -1
  163. package/dist/swisspost-internet-header/p-84f78f40.system.entry.js +2 -0
  164. package/dist/swisspost-internet-header/{p-b8ea3c0a.system.entry.js.map → p-84f78f40.system.entry.js.map} +1 -1
  165. package/dist/swisspost-internet-header/{p-77f72b8d.js → p-8ad474a9.js} +2 -2
  166. package/dist/swisspost-internet-header/{p-77f72b8d.js.map → p-8ad474a9.js.map} +1 -1
  167. package/dist/swisspost-internet-header/p-97c90e22.system.entry.js +7 -0
  168. package/dist/swisspost-internet-header/{p-b7d03cb1.system.entry.js.map → p-97c90e22.system.entry.js.map} +1 -1
  169. package/dist/swisspost-internet-header/p-9ab24fb3.entry.js +2 -0
  170. package/dist/swisspost-internet-header/p-9ab24fb3.entry.js.map +1 -0
  171. package/dist/swisspost-internet-header/{p-ed043df2.entry.js → p-9ec1f474.entry.js} +2 -2
  172. package/dist/swisspost-internet-header/p-a366648c.system.entry.js +2 -0
  173. package/dist/swisspost-internet-header/{p-eccdad3c.system.entry.js.map → p-a366648c.system.entry.js.map} +1 -1
  174. package/dist/swisspost-internet-header/p-b33e74a6.entry.js +2 -0
  175. package/dist/swisspost-internet-header/p-b33e74a6.entry.js.map +1 -0
  176. package/dist/swisspost-internet-header/p-d6a99399.system.entry.js +2 -0
  177. package/dist/swisspost-internet-header/p-d6a99399.system.entry.js.map +1 -0
  178. package/dist/swisspost-internet-header/p-e1fa55e3.system.entry.js +2 -0
  179. package/dist/swisspost-internet-header/{p-4bd302a5.system.entry.js.map → p-e1fa55e3.system.entry.js.map} +1 -1
  180. package/dist/swisspost-internet-header/p-e2df6e93.system.entry.js +2 -0
  181. package/dist/swisspost-internet-header/p-e2df6e93.system.entry.js.map +1 -0
  182. package/dist/swisspost-internet-header/p-fed8d74d.system.entry.js +2 -0
  183. package/dist/swisspost-internet-header/p-fed8d74d.system.entry.js.map +1 -0
  184. package/dist/swisspost-internet-header/swisspost-internet-header.css +3 -1
  185. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
  186. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js.map +1 -1
  187. package/dist/types/assets/i18n/translations.d.ts +5 -0
  188. package/dist/types/components/post-internet-footer/post-internet-footer.d.ts +3 -0
  189. package/dist/types/components/post-internet-header/logo-animation/logo-animation.d.ts +1 -0
  190. package/dist/types/components/post-internet-header/post-internet-header.d.ts +4 -1
  191. package/dist/types/components/post-logo/post-logo.d.ts +0 -7
  192. package/dist/types/data/store.d.ts +2 -0
  193. package/dist/types/services/language.service.d.ts +5 -0
  194. package/package.json +8 -8
  195. package/dist/cjs/klp-widget.controller-d86525e1.js.map +0 -1
  196. package/dist/cjs/language.service-516d1809.js.map +0 -1
  197. package/dist/cjs/store-915e0360.js.map +0 -1
  198. package/dist/collection/services/config.service.spec.js +0 -274
  199. package/dist/collection/services/config.service.spec.js.map +0 -1
  200. package/dist/collection/services/route.service.spec.js +0 -109
  201. package/dist/collection/services/route.service.spec.js.map +0 -1
  202. package/dist/collection/services/search/search.service.spec.js +0 -49
  203. package/dist/collection/services/search/search.service.spec.js.map +0 -1
  204. package/dist/collection/tests/setup-tests.js +0 -14
  205. package/dist/collection/tests/setup-tests.js.map +0 -1
  206. package/dist/collection/utils/utils.spec.js +0 -11
  207. package/dist/collection/utils/utils.spec.js.map +0 -1
  208. package/dist/esm/klp-widget.controller-91f5dd0b.js.map +0 -1
  209. package/dist/esm/language.service-faf591b3.js.map +0 -1
  210. package/dist/esm/store-79377f91.js.map +0 -1
  211. package/dist/esm-es5/language.service-faf591b3.js +0 -2
  212. package/dist/esm-es5/language.service-faf591b3.js.map +0 -1
  213. package/dist/esm-es5/store-79377f91.js.map +0 -1
  214. package/dist/swisspost-internet-header/p-011353de.entry.js +0 -2
  215. package/dist/swisspost-internet-header/p-011353de.entry.js.map +0 -1
  216. package/dist/swisspost-internet-header/p-1055564a.entry.js +0 -7
  217. package/dist/swisspost-internet-header/p-30669cd6.entry.js +0 -2
  218. package/dist/swisspost-internet-header/p-30669cd6.entry.js.map +0 -1
  219. package/dist/swisspost-internet-header/p-36d624d3.entry.js +0 -2
  220. package/dist/swisspost-internet-header/p-36d624d3.entry.js.map +0 -1
  221. package/dist/swisspost-internet-header/p-3e6e0272.system.js +0 -2
  222. package/dist/swisspost-internet-header/p-41e08c10.system.entry.js +0 -2
  223. package/dist/swisspost-internet-header/p-41e08c10.system.entry.js.map +0 -1
  224. package/dist/swisspost-internet-header/p-4ae35141.entry.js +0 -2
  225. package/dist/swisspost-internet-header/p-4bd302a5.system.entry.js +0 -2
  226. package/dist/swisspost-internet-header/p-541c204b.entry.js +0 -2
  227. package/dist/swisspost-internet-header/p-541c204b.entry.js.map +0 -1
  228. package/dist/swisspost-internet-header/p-8d12fe0c.system.entry.js +0 -2
  229. package/dist/swisspost-internet-header/p-8d12fe0c.system.entry.js.map +0 -1
  230. package/dist/swisspost-internet-header/p-8d5f4d78.entry.js +0 -2
  231. package/dist/swisspost-internet-header/p-8d5f4d78.entry.js.map +0 -1
  232. package/dist/swisspost-internet-header/p-8eb05d18.js.map +0 -1
  233. package/dist/swisspost-internet-header/p-a02140c3.system.entry.js +0 -2
  234. package/dist/swisspost-internet-header/p-a02140c3.system.entry.js.map +0 -1
  235. package/dist/swisspost-internet-header/p-b6f237a1.system.entry.js +0 -2
  236. package/dist/swisspost-internet-header/p-b6f237a1.system.entry.js.map +0 -1
  237. package/dist/swisspost-internet-header/p-b7d03cb1.system.entry.js +0 -7
  238. package/dist/swisspost-internet-header/p-b8ea3c0a.system.entry.js +0 -2
  239. package/dist/swisspost-internet-header/p-bab5139b.entry.js +0 -2
  240. package/dist/swisspost-internet-header/p-df51fa24.entry.js +0 -2
  241. package/dist/swisspost-internet-header/p-e057071d.js +0 -2
  242. package/dist/swisspost-internet-header/p-e057071d.js.map +0 -1
  243. package/dist/swisspost-internet-header/p-eccdad3c.system.entry.js +0 -2
  244. package/dist/swisspost-internet-header/p-f445483f.system.entry.js +0 -2
  245. package/dist/swisspost-internet-header/p-f445483f.system.entry.js.map +0 -1
  246. package/dist/swisspost-internet-header/p-fa230c6b.system.js +0 -2
  247. package/dist/swisspost-internet-header/p-fa230c6b.system.js.map +0 -1
  248. package/dist/types/tests/setup-tests.d.ts +0 -0
  249. /package/dist/swisspost-internet-header/{p-bedb8e58.system.entry.js.map → p-6f69aff4.system.entry.js.map} +0 -0
  250. /package/dist/swisspost-internet-header/{p-ed043df2.entry.js.map → p-9ec1f474.entry.js.map} +0 -0
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Colors used by the post style guide
3
+ */
4
+ /**
5
+ * Maps. Allow maps to have custom colors from the project
6
+ * by always merging into a default empty map
7
+ */
1
8
  /**
2
9
  * Colors used by the post style guide
3
10
  */
@@ -14,117 +21,15 @@
14
21
  * will be available as sass-variables
15
22
  * but should not be used.
16
23
  */
17
- /**
18
- * Colors used by the post style guide
19
- */
20
- /**
21
- * Maps. Allow maps to have custom colors from the project
22
- * by always merging into a default empty map
23
- */
24
24
  /*!
25
- * Bootstrap Utilities v5.1.3 (https://getbootstrap.com/)
26
- * Copyright 2011-2021 The Bootstrap Authors
27
- * Copyright 2011-2021 Twitter, Inc.
28
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
29
-
30
- * The MIT License (MIT)
31
-
32
- * Copyright (c) 2011-2020 Twitter, Inc.
33
- * Copyright (c) 2011-2020 The Bootstrap Authors
34
-
35
- * Permission is hereby granted, free of charge, to any person obtaining a copy
36
- * of this software and associated documentation files (the "Software"), to deal
37
- * in the Software without restriction, including without limitation the rights
38
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
39
- * copies of the Software, and to permit persons to whom the Software is
40
- * furnished to do so, subject to the following conditions:
41
-
42
- * The above copyright notice and this permission notice shall be included in
43
- * all copies or substantial portions of the Software.
44
-
45
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
46
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
47
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
48
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
49
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
50
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
51
- * THE SOFTWARE.
25
+ * Copyright 2021 by Swiss Post, Information Technology
52
26
  */
53
- .btn-close {
54
- --bs-btn-close-color: #000;
55
- --bs-btn-close-bg: url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath opacity='1' fill='%23000000' d='m16.267 16.667 6.667-6.533-.933-1.067-6.667 6.667-6.667-6.667-.933 1.067 6.667 6.533-6.667 6.667 1.067.933 6.533-6.667 6.667 6.667.933-1.067z'/%3E%3C/g%3E%3C/svg%3E");
56
- --bs-btn-close-opacity: 0.5;
57
- --bs-btn-close-hover-opacity: 0.75;
58
- --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(51, 51, 51, 0.25);
59
- --bs-btn-close-focus-opacity: 1;
60
- --bs-btn-close-disabled-opacity: 0.25;
61
- --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);
62
- box-sizing: content-box;
63
- width: 1.5rem;
64
- height: 1.5rem;
65
- padding: 1rem 1rem;
66
- color: var(--bs-btn-close-color);
67
- background: transparent var(--bs-btn-close-bg) center/1.5rem auto no-repeat;
68
- border: 0;
69
- border-radius: 3px;
70
- opacity: var(--bs-btn-close-opacity);
71
- }
72
- .btn-close:hover {
73
- color: var(--bs-btn-close-color);
74
- text-decoration: none;
75
- opacity: var(--bs-btn-close-hover-opacity);
76
- }
77
- .btn-close:focus {
78
- outline: 0;
79
- box-shadow: var(--bs-btn-close-focus-shadow);
80
- opacity: var(--bs-btn-close-focus-opacity);
81
- }
82
- .btn-close:disabled, .btn-close.disabled {
83
- pointer-events: none;
84
- user-select: none;
85
- opacity: var(--bs-btn-close-disabled-opacity);
86
- }
87
-
88
- .btn-close-white {
89
- filter: var(--bs-btn-close-white-filter);
90
- }
91
-
92
- [data-bs-theme=dark] .btn-close {
93
- filter: var(--bs-btn-close-white-filter);
94
- }
95
-
96
- .btn-close {
97
- height: unset;
98
- min-height: 1.5rem;
99
- }
100
- @media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black) {
101
- .btn-close {
102
- opacity: 1;
103
- background: transparent url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath opacity='1' fill='%23ffffff' d='m16.267 16.667 6.667-6.533-.933-1.067-6.667 6.667-6.667-6.667-.933 1.067 6.667 6.533-6.667 6.667 1.067.933 6.533-6.667 6.667 6.667.933-1.067z'/%3E%3C/g%3E%3C/svg%3E") center/1.5rem auto no-repeat;
104
- }
105
- }
106
- .btn-close:focus {
107
- outline: 2px solid var(--post-contrast-color);
108
- box-shadow: none;
109
- }
110
- .btn-close:focus:not(:focus-visible) {
111
- outline: 0;
112
- }
113
-
114
- @media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black) {
115
- .btn-close-white {
116
- filter: none;
117
- }
118
- }
119
-
120
27
  /**
121
28
  * Generate responsive size properties for things like height, width, margin, padding, etc.
122
29
  * @param $curve-size One of the curve sizes predefined at https://www.experience-hub.ch/document/2307#/grundlagen-web/abstaende
123
30
  * @param $property Property key (height, width, padding, margin, top, etc.)
124
31
  * @param $template Value template string used for shorthand declarations like padding ("$value auto" = padding: 1rem auto)
125
32
  */
126
- /* stylelint-disable */
127
- /* stylelint-enable */
128
33
  .btn-default,
129
34
  .btn-secondary {
130
35
  border: 2px solid var(--post-gray-60);
@@ -169,7 +74,7 @@
169
74
  .btn {
170
75
  min-height: 3rem;
171
76
  font-size: 1rem;
172
- gap: 1rem;
77
+ gap: 0.625rem;
173
78
  outline: none;
174
79
  outline-offset: 2px;
175
80
  /* Compatibility with button-group */
@@ -182,7 +87,7 @@
182
87
  transition: opacity 250ms, border-color 250ms, background-color 250ms, color 250ms;
183
88
  border-width: 2px;
184
89
  border-style: solid;
185
- border-radius: 3px;
90
+ border-radius: 4px;
186
91
  background-color: transparent;
187
92
  box-shadow: none;
188
93
  color: var(--post-gray-80);
@@ -192,7 +97,7 @@
192
97
  white-space: nowrap;
193
98
  }
194
99
  .btn:where(:not(.btn-link, .btn-tertiary)) {
195
- padding: 0 2rem;
100
+ padding: 0 1rem;
196
101
  }
197
102
  .btn > .pi {
198
103
  width: 1.25rem;
@@ -278,14 +183,14 @@
278
183
  }
279
184
  .btn-icon.btn-lg {
280
185
  min-width: 3.5rem;
281
- padding-right: 0.875rem;
282
- padding-left: 0.875rem;
186
+ padding-right: 0.9375rem;
187
+ padding-left: 0.9375rem;
283
188
  }
284
189
 
285
190
  .btn-animated:not(.btn-link, .btn-tertiary)::after {
286
191
  content: "";
287
192
  position: absolute;
288
- right: 1.25rem;
193
+ right: 0.5rem;
289
194
  width: 0.625em;
290
195
  height: 0.625em;
291
196
  transform: rotateZ(315deg) translate(-2px, -2px);
@@ -296,29 +201,29 @@
296
201
  opacity: 0;
297
202
  }
298
203
  .btn-animated:not(.btn-link, .btn-tertiary).btn-sm::after {
299
- right: 0.5rem;
204
+ right: 0.25rem;
300
205
  }
301
206
  .btn-animated:not(.btn-link, .btn-tertiary).btn-rg::after {
302
- right: 0.875rem;
207
+ right: 0.375rem;
303
208
  }
304
209
  .btn-animated:not(.btn-link, .btn-tertiary).btn-lg::after {
305
- right: 1.5rem;
210
+ right: 0.625rem;
306
211
  }
307
212
  .btn-animated:not(.btn-link, .btn-tertiary) > span {
308
213
  transition: transform 250ms;
309
214
  }
310
215
  @media (prefers-reduced-motion: no-preference) {
311
216
  .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 {
312
- transform: translateX(-0.75rem);
217
+ transform: translateX(-0.5rem);
313
218
  }
314
219
  .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 {
315
220
  transform: translateX(-0.5rem);
316
221
  }
317
222
  .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 {
318
- transform: translateX(-0.625rem);
223
+ transform: translateX(-0.5rem);
319
224
  }
320
225
  .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 {
321
- transform: translateX(-1rem);
226
+ transform: translateX(-0.5rem);
322
227
  }
323
228
  .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 {
324
229
  transform: rotateZ(315deg) translate(0, 0);
@@ -332,10 +237,10 @@
332
237
  .btn-sm {
333
238
  min-height: 2rem;
334
239
  font-size: 0.75rem;
335
- gap: 0.5rem;
240
+ gap: 0.375rem;
336
241
  }
337
242
  .btn-sm:where(:not(.btn-link, .btn-tertiary)) {
338
- padding: 0 1rem;
243
+ padding: 0 0.75rem;
339
244
  }
340
245
  .btn-sm > .pi {
341
246
  width: 1rem;
@@ -345,10 +250,10 @@
345
250
  .btn-rg {
346
251
  min-height: 2.5rem;
347
252
  font-size: 0.875rem;
348
- gap: 0.75rem;
253
+ gap: 0.5rem;
349
254
  }
350
255
  .btn-rg:where(:not(.btn-link, .btn-tertiary)) {
351
- padding: 0 1.5rem;
256
+ padding: 0 0.875rem;
352
257
  }
353
258
  .btn-rg > .pi {
354
259
  width: 1.125rem;
@@ -358,14 +263,14 @@
358
263
  .btn-lg {
359
264
  min-height: 3.5rem;
360
265
  font-size: 1.125rem;
361
- gap: 1.25rem;
266
+ gap: 0.75rem;
362
267
  }
363
268
  .btn-lg:where(:not(.btn-link, .btn-tertiary)) {
364
- padding: 0 2.5rem;
269
+ padding: 0 1.125rem;
365
270
  }
366
271
  .btn-lg > .pi {
367
- width: 1.5rem;
368
- height: 1.5rem;
272
+ width: 1.375rem;
273
+ height: 1.375rem;
369
274
  }
370
275
 
371
276
  .btn-nightblue {
@@ -528,6 +433,35 @@
528
433
  color: #fff;
529
434
  }
530
435
 
436
+ /*!
437
+ * Bootstrap Utilities v5.1.3 (https://getbootstrap.com/)
438
+ * Copyright 2011-2021 The Bootstrap Authors
439
+ * Copyright 2011-2021 Twitter, Inc.
440
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
441
+
442
+ * The MIT License (MIT)
443
+
444
+ * Copyright (c) 2011-2020 Twitter, Inc.
445
+ * Copyright (c) 2011-2020 The Bootstrap Authors
446
+
447
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
448
+ * of this software and associated documentation files (the "Software"), to deal
449
+ * in the Software without restriction, including without limitation the rights
450
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
451
+ * copies of the Software, and to permit persons to whom the Software is
452
+ * furnished to do so, subject to the following conditions:
453
+
454
+ * The above copyright notice and this permission notice shall be included in
455
+ * all copies or substantial portions of the Software.
456
+
457
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
458
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
459
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
460
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
461
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
462
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
463
+ * THE SOFTWARE.
464
+ */
531
465
  :root {
532
466
  --bs-breakpoint-xs: 0;
533
467
  --bs-breakpoint-sm: 400px;
@@ -1995,7 +1929,7 @@
1995
1929
  --bs-progress-height: 1rem;
1996
1930
  --bs-progress-font-size: 0.75rem;
1997
1931
  --bs-progress-bg: hsl(0, 0%, 80%);
1998
- --bs-progress-border-radius: 3px;
1932
+ --bs-progress-border-radius: 4px;
1999
1933
  --bs-progress-box-shadow: inset 0 0.1rem 0.1rem rgba(0, 0, 0, 0.1);
2000
1934
  --bs-progress-bar-color: #fff;
2001
1935
  --bs-progress-bar-bg: hsl(0, 0%, 20%);
@@ -2175,6 +2109,7 @@
2175
2109
  box-shadow: none;
2176
2110
  border: 0;
2177
2111
  margin: 0;
2112
+ cursor: pointer;
2178
2113
  display: flex;
2179
2114
  align-items: center;
2180
2115
  gap: 0.5rem;
@@ -2223,7 +2158,7 @@ button {
2223
2158
 
2224
2159
  a,
2225
2160
  button {
2226
- border-radius: 3px;
2161
+ border-radius: 4px;
2227
2162
  outline: none;
2228
2163
  outline-offset: 2px;
2229
2164
  /* Compatibility with button-group */
@@ -2231,7 +2166,7 @@ button {
2231
2166
  a:is(:focus-visible, :focus-within, .pretend-focus),
2232
2167
  button:is(:focus-visible, :focus-within, .pretend-focus) {
2233
2168
  outline: 2px solid var(--post-contrast-color);
2234
- border-radius: 3px;
2169
+ border-radius: 4px;
2235
2170
  }
2236
2171
 
2237
2172
  img,
@@ -1507,6 +1507,9 @@
1507
1507
  }
1508
1508
  }
1509
1509
 
1510
+ /*!
1511
+ * Copyright 2021 by Swiss Post, Information Technology
1512
+ */
1510
1513
  /**
1511
1514
  * Generate responsive size properties for things like height, width, margin, padding, etc.
1512
1515
  * @param $curve-size One of the curve sizes predefined at https://www.experience-hub.ch/document/2307#/grundlagen-web/abstaende
@@ -1557,7 +1560,7 @@
1557
1560
  .btn {
1558
1561
  min-height: 3rem;
1559
1562
  font-size: 1rem;
1560
- gap: 1rem;
1563
+ gap: 0.625rem;
1561
1564
  outline: none;
1562
1565
  outline-offset: 2px;
1563
1566
  /* Compatibility with button-group */
@@ -1570,7 +1573,7 @@
1570
1573
  transition: opacity 250ms, border-color 250ms, background-color 250ms, color 250ms;
1571
1574
  border-width: 2px;
1572
1575
  border-style: solid;
1573
- border-radius: 3px;
1576
+ border-radius: 4px;
1574
1577
  background-color: transparent;
1575
1578
  box-shadow: none;
1576
1579
  color: var(--post-gray-80);
@@ -1580,7 +1583,7 @@
1580
1583
  white-space: nowrap;
1581
1584
  }
1582
1585
  .btn:where(:not(.btn-link, .btn-tertiary)) {
1583
- padding: 0 2rem;
1586
+ padding: 0 1rem;
1584
1587
  }
1585
1588
  .btn > .pi {
1586
1589
  width: 1.25rem;
@@ -1666,14 +1669,14 @@
1666
1669
  }
1667
1670
  .btn-icon.btn-lg {
1668
1671
  min-width: 3.5rem;
1669
- padding-right: 0.875rem;
1670
- padding-left: 0.875rem;
1672
+ padding-right: 0.9375rem;
1673
+ padding-left: 0.9375rem;
1671
1674
  }
1672
1675
 
1673
1676
  .btn-animated:not(.btn-link, .btn-tertiary)::after {
1674
1677
  content: "";
1675
1678
  position: absolute;
1676
- right: 1.25rem;
1679
+ right: 0.5rem;
1677
1680
  width: 0.625em;
1678
1681
  height: 0.625em;
1679
1682
  transform: rotateZ(315deg) translate(-2px, -2px);
@@ -1684,29 +1687,29 @@
1684
1687
  opacity: 0;
1685
1688
  }
1686
1689
  .btn-animated:not(.btn-link, .btn-tertiary).btn-sm::after {
1687
- right: 0.5rem;
1690
+ right: 0.25rem;
1688
1691
  }
1689
1692
  .btn-animated:not(.btn-link, .btn-tertiary).btn-rg::after {
1690
- right: 0.875rem;
1693
+ right: 0.375rem;
1691
1694
  }
1692
1695
  .btn-animated:not(.btn-link, .btn-tertiary).btn-lg::after {
1693
- right: 1.5rem;
1696
+ right: 0.625rem;
1694
1697
  }
1695
1698
  .btn-animated:not(.btn-link, .btn-tertiary) > span {
1696
1699
  transition: transform 250ms;
1697
1700
  }
1698
1701
  @media (prefers-reduced-motion: no-preference) {
1699
1702
  .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 {
1700
- transform: translateX(-0.75rem);
1703
+ transform: translateX(-0.5rem);
1701
1704
  }
1702
1705
  .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 {
1703
1706
  transform: translateX(-0.5rem);
1704
1707
  }
1705
1708
  .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 {
1706
- transform: translateX(-0.625rem);
1709
+ transform: translateX(-0.5rem);
1707
1710
  }
1708
1711
  .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 {
1709
- transform: translateX(-1rem);
1712
+ transform: translateX(-0.5rem);
1710
1713
  }
1711
1714
  .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 {
1712
1715
  transform: rotateZ(315deg) translate(0, 0);
@@ -1720,10 +1723,10 @@
1720
1723
  .btn-sm {
1721
1724
  min-height: 2rem;
1722
1725
  font-size: 0.75rem;
1723
- gap: 0.5rem;
1726
+ gap: 0.375rem;
1724
1727
  }
1725
1728
  .btn-sm:where(:not(.btn-link, .btn-tertiary)) {
1726
- padding: 0 1rem;
1729
+ padding: 0 0.75rem;
1727
1730
  }
1728
1731
  .btn-sm > .pi {
1729
1732
  width: 1rem;
@@ -1733,10 +1736,10 @@
1733
1736
  .btn-rg {
1734
1737
  min-height: 2.5rem;
1735
1738
  font-size: 0.875rem;
1736
- gap: 0.75rem;
1739
+ gap: 0.5rem;
1737
1740
  }
1738
1741
  .btn-rg:where(:not(.btn-link, .btn-tertiary)) {
1739
- padding: 0 1.5rem;
1742
+ padding: 0 0.875rem;
1740
1743
  }
1741
1744
  .btn-rg > .pi {
1742
1745
  width: 1.125rem;
@@ -1746,14 +1749,14 @@
1746
1749
  .btn-lg {
1747
1750
  min-height: 3.5rem;
1748
1751
  font-size: 1.125rem;
1749
- gap: 1.25rem;
1752
+ gap: 0.75rem;
1750
1753
  }
1751
1754
  .btn-lg:where(:not(.btn-link, .btn-tertiary)) {
1752
- padding: 0 2.5rem;
1755
+ padding: 0 1.125rem;
1753
1756
  }
1754
1757
  .btn-lg > .pi {
1755
- width: 1.5rem;
1756
- height: 1.5rem;
1758
+ width: 1.375rem;
1759
+ height: 1.375rem;
1757
1760
  }
1758
1761
 
1759
1762
  .btn-nightblue {
@@ -1984,6 +1987,7 @@
1984
1987
  box-shadow: none;
1985
1988
  border: 0;
1986
1989
  margin: 0;
1990
+ cursor: pointer;
1987
1991
  display: flex;
1988
1992
  align-items: center;
1989
1993
  gap: 0.5rem;
@@ -2032,7 +2036,7 @@ button {
2032
2036
 
2033
2037
  a,
2034
2038
  button {
2035
- border-radius: 3px;
2039
+ border-radius: 4px;
2036
2040
  outline: none;
2037
2041
  outline-offset: 2px;
2038
2042
  /* Compatibility with button-group */
@@ -2040,7 +2044,7 @@ button {
2040
2044
  a:is(:focus-visible, :focus-within, .pretend-focus),
2041
2045
  button:is(:focus-visible, :focus-within, .pretend-focus) {
2042
2046
  outline: 2px solid var(--post-contrast-color);
2043
- border-radius: 3px;
2047
+ border-radius: 4px;
2044
2048
  }
2045
2049
 
2046
2050
  img,
@@ -5,10 +5,13 @@ import { PostFooterBlockCustom } from './components/post-footer-block-custom.com
5
5
  import { PostFooterBlockList } from './components/post-footer-block-list.component';
6
6
  import { PostFooterBlockAddress } from './components/post-footer-block-address.component';
7
7
  import { PostFooterBlockContact } from './components/post-footer-block-contact.component';
8
+ import { translate } from '../../services/language.service';
8
9
  export class PostInternetFooter {
9
10
  constructor() {
10
11
  this.liveSupportEnabled = false;
12
+ this.cookieSettingsEnabled = false;
11
13
  this.liveSupportEnabled = this.unbluEnabled();
14
+ this.cookieSettingsEnabled = this.ucUIEnabled();
12
15
  /**
13
16
  * If the unblu script is not available, wait 5 seconds for it to load.
14
17
  * If it's still not there after 5 seconds, abandon efforts and don't
@@ -18,10 +21,15 @@ export class PostInternetFooter {
18
21
  let intervalId;
19
22
  let runs = 0;
20
23
  const checker = () => {
21
- const isEnabled = this.unbluEnabled();
22
- if (isEnabled) {
24
+ const unbluEnabled = this.unbluEnabled();
25
+ const ucUIEnabled = this.ucUIEnabled();
26
+ const isEnabled = unbluEnabled && ucUIEnabled;
27
+ if (unbluEnabled) {
23
28
  this.liveSupportEnabled = true;
24
29
  }
30
+ if (ucUIEnabled) {
31
+ this.cookieSettingsEnabled = true;
32
+ }
25
33
  if (isEnabled || runs >= 5) {
26
34
  window.clearInterval(intervalId);
27
35
  }
@@ -37,6 +45,13 @@ export class PostInternetFooter {
37
45
  unbluEnabled() {
38
46
  return typeof window['unbluLSLoad'] === 'function';
39
47
  }
48
+ ucUIEnabled() {
49
+ return (typeof window['UC_UI'] === 'object' &&
50
+ typeof window['UC_UI']['showSecondLayer'] === 'function');
51
+ }
52
+ handleCookieSettingsClick() {
53
+ window['UC_UI']['showSecondLayer']();
54
+ }
40
55
  render() {
41
56
  var _a;
42
57
  // There is something wrong entirely
@@ -63,7 +78,7 @@ export class PostInternetFooter {
63
78
  .filter(block => block.columnType === 'address')
64
79
  .map(block => (h(PostFooterBlockAddress, { key: block.title, block: block })))), h("div", { class: "copyright container" }, h("span", { class: "bold" }, footerConfig.entry.text), h("ul", { class: "no-list footer-meta-links" }, footerConfig.links
65
80
  ? footerConfig.links.map(link => (h("li", { key: link.url }, h("a", { class: "nav-link", href: link.url, target: link.target }, link.text))))
66
- : null)))));
81
+ : null, this.cookieSettingsEnabled && (h("li", null, h("button", { class: "nav-link cookie-settings", onClick: this.handleCookieSettingsClick }, translate('Cookie Settings')))))))));
67
82
  }
68
83
  static get is() { return "swisspost-internet-footer"; }
69
84
  static get encapsulation() { return "shadow"; }
@@ -79,7 +94,8 @@ export class PostInternetFooter {
79
94
  }
80
95
  static get states() {
81
96
  return {
82
- "liveSupportEnabled": {}
97
+ "liveSupportEnabled": {},
98
+ "cookieSettingsEnabled": {}
83
99
  };
84
100
  }
85
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"post-internet-footer.js","sourceRoot":"","sources":["../../../../src/components/post-internet-footer/post-internet-footer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, State } from '@stencil/core';\nimport { state } from '../../data/store';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { PostFooterBlockCustom } from './components/post-footer-block-custom.component';\nimport { PostFooterBlockList } from './components/post-footer-block-list.component';\nimport { PostFooterBlockAddress } from './components/post-footer-block-address.component';\nimport { PostFooterBlockContact } from './components/post-footer-block-contact.component';\n\n@Component({\n tag: 'swisspost-internet-footer',\n styleUrl: 'post-internet-footer.scss',\n shadow: true,\n})\nexport class PostInternetFooter {\n @State() liveSupportEnabled = false;\n\n constructor() {\n this.liveSupportEnabled = this.unbluEnabled();\n\n /**\n * If the unblu script is not available, wait 5 seconds for it to load.\n * If it's still not there after 5 seconds, abandon efforts and don't\n * show the live support button.\n */\n if (!this.liveSupportEnabled) {\n let intervalId: number;\n let runs = 0;\n\n const checker = () => {\n const isEnabled = this.unbluEnabled();\n if (isEnabled) {\n this.liveSupportEnabled = true;\n }\n if (isEnabled || runs >= 5) {\n window.clearInterval(intervalId);\n }\n runs++;\n };\n\n intervalId = window.setInterval(checker, 1000);\n }\n }\n\n /**\n * Check if the unblu live support script is loaded\n * @returns Boolean\n */\n private unbluEnabled(): boolean {\n return typeof window['unbluLSLoad'] === 'function';\n }\n\n render() {\n // There is something wrong entirely\n if (!state) {\n console.warn(\n `Internet Footer: Could not load config. Please make sure that you included the <swisspost-internet-header></swisspost-internet-header> component.`,\n );\n return null;\n }\n\n // Config has not loaded yet\n if (!state.localizedConfig) {\n return null;\n }\n\n // There's no footer config\n if (!state.localizedConfig.footer) {\n console.warn(\n `Internet Footer: Current project \"${state.projectId}\" does not include a footer config. The footer will not be rendered. Remove `,\n document.querySelector('swisspost-internet-footer'),\n `from your markup or configure the footer in your portal config to stop seeing this warning.`,\n );\n return null;\n }\n\n const footerConfig = state.localizedConfig.footer;\n const customFooterConfig = state.localizedCustomConfig?.footer;\n\n return (\n <Host>\n <SvgSprite />\n <footer class=\"post-internet-footer light font-curve-regular\">\n <h2 class=\"visually-hidden\">{footerConfig.title}</h2>\n {customFooterConfig?.block && <PostFooterBlockCustom block={customFooterConfig?.block} />}\n <div class=\"footer-container container\">\n {footerConfig.block\n .filter(block => block.columnType === 'list')\n .map(block => (\n <PostFooterBlockList key={block.title} block={block} />\n ))}\n {footerConfig.block\n .filter(block => block.columnType === 'contact')\n .map(block => (\n <PostFooterBlockContact\n key={block.title}\n block={block}\n liveSupportEnabled={this.liveSupportEnabled}\n />\n ))}\n {footerConfig.block\n .filter(block => block.columnType === 'address')\n .map(block => (\n <PostFooterBlockAddress key={block.title} block={block} />\n ))}\n </div>\n <div class=\"copyright container\">\n <span class=\"bold\">{footerConfig.entry.text}</span>\n <ul class=\"no-list footer-meta-links\">\n {footerConfig.links\n ? footerConfig.links.map(link => (\n <li key={link.url}>\n <a class=\"nav-link\" href={link.url} target={link.target}>\n {link.text}\n </a>\n </li>\n ))\n : null}\n </ul>\n </div>\n </footer>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"post-internet-footer.js","sourceRoot":"","sources":["../../../../src/components/post-internet-footer/post-internet-footer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, State } from '@stencil/core';\nimport { state } from '../../data/store';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { PostFooterBlockCustom } from './components/post-footer-block-custom.component';\nimport { PostFooterBlockList } from './components/post-footer-block-list.component';\nimport { PostFooterBlockAddress } from './components/post-footer-block-address.component';\nimport { PostFooterBlockContact } from './components/post-footer-block-contact.component';\nimport { translate } from '../../services/language.service';\n\n@Component({\n tag: 'swisspost-internet-footer',\n styleUrl: 'post-internet-footer.scss',\n shadow: true,\n})\nexport class PostInternetFooter {\n @State() liveSupportEnabled = false;\n @State() cookieSettingsEnabled = false;\n\n constructor() {\n this.liveSupportEnabled = this.unbluEnabled();\n this.cookieSettingsEnabled = this.ucUIEnabled();\n\n /**\n * If the unblu script is not available, wait 5 seconds for it to load.\n * If it's still not there after 5 seconds, abandon efforts and don't\n * show the live support button.\n */\n if (!this.liveSupportEnabled) {\n let intervalId: number;\n let runs = 0;\n\n const checker = () => {\n const unbluEnabled = this.unbluEnabled();\n const ucUIEnabled = this.ucUIEnabled();\n const isEnabled = unbluEnabled && ucUIEnabled;\n if (unbluEnabled) {\n this.liveSupportEnabled = true;\n }\n if (ucUIEnabled) {\n this.cookieSettingsEnabled = true;\n }\n if (isEnabled || runs >= 5) {\n window.clearInterval(intervalId);\n }\n runs++;\n };\n\n intervalId = window.setInterval(checker, 1000);\n }\n }\n\n /**\n * Check if the unblu live support script is loaded\n * @returns Boolean\n */\n private unbluEnabled(): boolean {\n return typeof window['unbluLSLoad'] === 'function';\n }\n\n private ucUIEnabled(): boolean {\n return (\n typeof window['UC_UI'] === 'object' &&\n typeof window['UC_UI']['showSecondLayer'] === 'function'\n );\n }\n\n private handleCookieSettingsClick() {\n window['UC_UI']['showSecondLayer']();\n }\n\n render() {\n // There is something wrong entirely\n if (!state) {\n console.warn(\n `Internet Footer: Could not load config. Please make sure that you included the <swisspost-internet-header></swisspost-internet-header> component.`,\n );\n return null;\n }\n\n // Config has not loaded yet\n if (!state.localizedConfig) {\n return null;\n }\n\n // There's no footer config\n if (!state.localizedConfig.footer) {\n console.warn(\n `Internet Footer: Current project \"${state.projectId}\" does not include a footer config. The footer will not be rendered. Remove `,\n document.querySelector('swisspost-internet-footer'),\n `from your markup or configure the footer in your portal config to stop seeing this warning.`,\n );\n return null;\n }\n\n const footerConfig = state.localizedConfig.footer;\n const customFooterConfig = state.localizedCustomConfig?.footer;\n\n return (\n <Host>\n <SvgSprite />\n <footer class=\"post-internet-footer light font-curve-regular\">\n <h2 class=\"visually-hidden\">{footerConfig.title}</h2>\n {customFooterConfig?.block && <PostFooterBlockCustom block={customFooterConfig?.block} />}\n <div class=\"footer-container container\">\n {footerConfig.block\n .filter(block => block.columnType === 'list')\n .map(block => (\n <PostFooterBlockList key={block.title} block={block} />\n ))}\n {footerConfig.block\n .filter(block => block.columnType === 'contact')\n .map(block => (\n <PostFooterBlockContact\n key={block.title}\n block={block}\n liveSupportEnabled={this.liveSupportEnabled}\n />\n ))}\n {footerConfig.block\n .filter(block => block.columnType === 'address')\n .map(block => (\n <PostFooterBlockAddress key={block.title} block={block} />\n ))}\n </div>\n <div class=\"copyright container\">\n <span class=\"bold\">{footerConfig.entry.text}</span>\n <ul class=\"no-list footer-meta-links\">\n {footerConfig.links\n ? footerConfig.links.map(link => (\n <li key={link.url}>\n <a class=\"nav-link\" href={link.url} target={link.target}>\n {link.text}\n </a>\n </li>\n ))\n : null}\n {this.cookieSettingsEnabled && (\n <li>\n <button class=\"nav-link cookie-settings\" onClick={this.handleCookieSettingsClick}>\n {translate('Cookie Settings')}\n </button>\n </li>\n )}\n </ul>\n </div>\n </footer>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,46 @@
1
+ import { debounce } from 'throttle-debounce';
2
+ import { state } from '../../../data/store';
3
+ export const registerLogoAnimationObserver = (target, headerRef) => {
4
+ /**
5
+ * Set intersection ratio as CSS custom property
6
+ */
7
+ const handleScroll = () => {
8
+ const fullStickyness = state.stickyness === 'full';
9
+ let scale = 1;
10
+ // Minus 1px border at the bottom that the logo is not covering
11
+ const adjustedHeaderHeight = headerRef.clientHeight - 1;
12
+ const scrollY = fullStickyness ? 0 : window.scrollY;
13
+ // If meta navigation is not visible (mobile, not configured), scale should just be 1
14
+ if (target.clientHeight > 0) {
15
+ scale = Math.max((adjustedHeaderHeight - Math.max(scrollY, 0)) /
16
+ (adjustedHeaderHeight - target.clientHeight), 1);
17
+ }
18
+ headerRef.style.setProperty('--logo-scale', scale.toString());
19
+ };
20
+ const debounced = debounce(150, handleScroll);
21
+ /**
22
+ * Observe the meta navigation in order to not track scroll events throughout the whole page.
23
+ * This ensures that the scroll listener is only active while the meta navigation is visible.
24
+ */
25
+ const observer = new IntersectionObserver(entries => {
26
+ entries.forEach(entry => {
27
+ if (entry.isIntersecting && entry.intersectionRatio > 0) {
28
+ window.addEventListener('scroll', handleScroll, { passive: true });
29
+ window.addEventListener('resize', debounced);
30
+ // Ensure callback is called at least once in case main thread is too busy while scrolling up
31
+ window.requestAnimationFrame(handleScroll);
32
+ }
33
+ else {
34
+ window.removeEventListener('scroll', handleScroll);
35
+ window.removeEventListener('resize', debounced);
36
+ window.requestAnimationFrame(handleScroll);
37
+ }
38
+ });
39
+ }, {
40
+ // Fires when element leaves viewport (0) and when it just about enters it (0.001)
41
+ threshold: [0, 0.001],
42
+ });
43
+ observer.observe(target);
44
+ return handleScroll;
45
+ };
46
+ //# sourceMappingURL=logo-animation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logo-animation.js","sourceRoot":"","sources":["../../../../../src/components/post-internet-header/logo-animation/logo-animation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,MAAmB,EACnB,SAA6C,EAC7C,EAAE;EACF;;KAEG;EACH,MAAM,YAAY,GAAG,GAAG,EAAE;IACxB,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC;IACnD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,+DAA+D;IAC/D,MAAM,oBAAoB,GAAG,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IAEpD,qFAAqF;IACrF,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE;MAC3B,KAAK,GAAG,IAAI,CAAC,GAAG,CACd,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC,oBAAoB,GAAG,MAAM,CAAC,YAAY,CAAC,EAC9C,CAAC,CACF,CAAC;KACH;IACD,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;EAChE,CAAC,CAAC;EAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;EAE9C;;;KAGG;EACH,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;MACtB,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAAE;QACvD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE7C,6FAA6F;QAC7F,MAAM,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;OAC5C;WAAM;QACL,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAChD,MAAM,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;OAC5C;IACH,CAAC,CAAC,CAAC;EACL,CAAC,EACD;IACE,kFAAkF;IAClF,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;GACtB,CACF,CAAC;EACF,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;EAEzB,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC","sourcesContent":["import { debounce } from 'throttle-debounce';\nimport { state } from '../../../data/store';\n\nexport const registerLogoAnimationObserver = (\n target: HTMLElement,\n headerRef: HTMLSwisspostInternetHeaderElement,\n) => {\n /**\n * Set intersection ratio as CSS custom property\n */\n const handleScroll = () => {\n const fullStickyness = state.stickyness === 'full';\n let scale = 1;\n // Minus 1px border at the bottom that the logo is not covering\n const adjustedHeaderHeight = headerRef.clientHeight - 1;\n const scrollY = fullStickyness ? 0 : window.scrollY;\n\n // If meta navigation is not visible (mobile, not configured), scale should just be 1\n if (target.clientHeight > 0) {\n scale = Math.max(\n (adjustedHeaderHeight - Math.max(scrollY, 0)) /\n (adjustedHeaderHeight - target.clientHeight),\n 1,\n );\n }\n headerRef.style.setProperty('--logo-scale', scale.toString());\n };\n\n const debounced = debounce(150, handleScroll);\n\n /**\n * Observe the meta navigation in order to not track scroll events throughout the whole page.\n * This ensures that the scroll listener is only active while the meta navigation is visible.\n */\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting && entry.intersectionRatio > 0) {\n window.addEventListener('scroll', handleScroll, { passive: true });\n window.addEventListener('resize', debounced);\n\n // Ensure callback is called at least once in case main thread is too busy while scrolling up\n window.requestAnimationFrame(handleScroll);\n } else {\n window.removeEventListener('scroll', handleScroll);\n window.removeEventListener('resize', debounced);\n window.requestAnimationFrame(handleScroll);\n }\n });\n },\n {\n // Fires when element leaves viewport (0) and when it just about enters it (0.001)\n threshold: [0, 0.001],\n },\n );\n observer.observe(target);\n\n return handleScroll;\n};\n"]}