@swisspost/internet-header 1.5.5 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/dist/cjs/{index-aff25ac1.js → index-333f9e15.js} +1 -1
  2. package/dist/cjs/{index-aff25ac1.js.map → index-333f9e15.js.map} +1 -1
  3. package/dist/cjs/{klp-widget.controller-d8941c4e.js → klp-widget.controller-5d5afa10.js} +32 -60
  4. package/dist/cjs/klp-widget.controller-5d5afa10.js.map +1 -0
  5. package/dist/cjs/{language.service-167d5a9c.js → language.service-a3d9e957.js} +2 -2
  6. package/dist/cjs/{language.service-167d5a9c.js.map → language.service-a3d9e957.js.map} +1 -1
  7. package/dist/cjs/loader.cjs.js +2 -2
  8. package/dist/cjs/loader.cjs.js.map +1 -1
  9. package/dist/cjs/post-klp-login-widget.cjs.entry.js +5 -5
  10. package/dist/cjs/post-klp-login-widget.cjs.entry.js.map +1 -1
  11. package/dist/cjs/post-language-switch.cjs.entry.js +6 -6
  12. package/dist/cjs/post-language-switch.cjs.entry.js.map +1 -1
  13. package/dist/cjs/post-logo.cjs.entry.js +2 -2
  14. package/dist/cjs/post-main-navigation.cjs.entry.js +5 -5
  15. package/dist/cjs/post-main-navigation.cjs.entry.js.map +1 -1
  16. package/dist/cjs/post-meta-navigation.cjs.entry.js +2 -2
  17. package/dist/cjs/post-search.cjs.entry.js +17 -55
  18. package/dist/cjs/post-search.cjs.entry.js.map +1 -1
  19. package/dist/cjs/post-skiplinks.cjs.entry.js +4 -4
  20. package/dist/cjs/{store-b0284e36.js → store-89411b58.js} +2 -2
  21. package/dist/cjs/{store-b0284e36.js.map → store-89411b58.js.map} +1 -1
  22. package/dist/cjs/{svg-icon.component-715db679.js → svg-icon.component-4f6cd874.js} +2 -2
  23. package/dist/cjs/{svg-icon.component-715db679.js.map → svg-icon.component-4f6cd874.js.map} +1 -1
  24. package/dist/cjs/{svg-sprite.component-22680222.js → svg-sprite.component-4c755fd2.js} +2 -2
  25. package/dist/cjs/{svg-sprite.component-22680222.js.map → svg-sprite.component-4c755fd2.js.map} +1 -1
  26. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +10 -1315
  27. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js.map +1 -1
  28. package/dist/cjs/swisspost-internet-footer.cjs.entry.js +4 -4
  29. package/dist/cjs/swisspost-internet-footer.cjs.entry.js.map +1 -1
  30. package/dist/cjs/swisspost-internet-header.cjs.entry.js +51 -35
  31. package/dist/cjs/swisspost-internet-header.cjs.entry.js.map +1 -1
  32. package/dist/cjs/swisspost-internet-header.cjs.js +2 -2
  33. package/dist/cjs/swisspost-internet-header.cjs.js.map +1 -1
  34. package/dist/collection/collection-manifest.json +1 -1
  35. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.css +98 -353
  36. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js +1 -1
  37. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js.map +1 -1
  38. package/dist/collection/components/post-internet-footer/post-internet-footer.css +86 -349
  39. package/dist/collection/components/post-internet-header/post-internet-header.css +5 -10
  40. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.css +6 -7
  41. package/dist/collection/components/post-language-switch/post-language-switch.css +3 -3
  42. package/dist/collection/components/post-main-navigation/post-main-navigation.css +7 -10
  43. package/dist/collection/components/post-search/post-search.css +235 -471
  44. package/dist/collection/components/post-search/post-search.js +2 -2
  45. package/dist/collection/components/post-search/post-search.js.map +1 -1
  46. package/dist/collection/services/config.service.js +25 -8
  47. package/dist/collection/services/config.service.js.map +1 -1
  48. package/dist/collection/services/search/places.service.js +8 -34
  49. package/dist/collection/services/search/places.service.js.map +1 -1
  50. package/dist/collection/services/search/search.service.js +1 -1
  51. package/dist/collection/services/search/search.service.js.map +1 -1
  52. package/dist/collection/utils/highlighted.component.js +2 -2
  53. package/dist/collection/utils/highlighted.component.js.map +1 -1
  54. package/dist/components/klp-widget.controller.js +31 -59
  55. package/dist/components/klp-widget.controller.js.map +1 -1
  56. package/dist/components/post-klp-login-widget2.js +1 -1
  57. package/dist/components/post-klp-login-widget2.js.map +1 -1
  58. package/dist/components/post-language-switch2.js +1 -1
  59. package/dist/components/post-language-switch2.js.map +1 -1
  60. package/dist/components/post-main-navigation2.js +1 -1
  61. package/dist/components/post-main-navigation2.js.map +1 -1
  62. package/dist/components/post-search2.js +13 -51
  63. package/dist/components/post-search2.js.map +1 -1
  64. package/dist/components/store.js.map +1 -1
  65. package/dist/components/swisspost-internet-breadcrumbs.js +5 -1310
  66. package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -1
  67. package/dist/components/swisspost-internet-footer.js +1 -1
  68. package/dist/components/swisspost-internet-footer.js.map +1 -1
  69. package/dist/components/swisspost-internet-header.js +46 -30
  70. package/dist/components/swisspost-internet-header.js.map +1 -1
  71. package/dist/esm/{index-9351b1b6.js → index-447227c7.js} +1 -1
  72. package/dist/esm/{index-9351b1b6.js.map → index-447227c7.js.map} +1 -1
  73. package/dist/esm/{klp-widget.controller-55366e6a.js → klp-widget.controller-9f7e3c54.js} +32 -60
  74. package/dist/esm/klp-widget.controller-9f7e3c54.js.map +1 -0
  75. package/dist/esm/{language.service-7aefe1c5.js → language.service-3e2fe7e8.js} +2 -2
  76. package/dist/esm/{language.service-7aefe1c5.js.map → language.service-3e2fe7e8.js.map} +1 -1
  77. package/dist/esm/loader.js +3 -3
  78. package/dist/esm/loader.js.map +1 -1
  79. package/dist/esm/post-klp-login-widget.entry.js +5 -5
  80. package/dist/esm/post-klp-login-widget.entry.js.map +1 -1
  81. package/dist/esm/post-language-switch.entry.js +6 -6
  82. package/dist/esm/post-language-switch.entry.js.map +1 -1
  83. package/dist/esm/post-logo.entry.js +2 -2
  84. package/dist/esm/post-main-navigation.entry.js +5 -5
  85. package/dist/esm/post-main-navigation.entry.js.map +1 -1
  86. package/dist/esm/post-meta-navigation.entry.js +2 -2
  87. package/dist/esm/post-search.entry.js +17 -55
  88. package/dist/esm/post-search.entry.js.map +1 -1
  89. package/dist/esm/post-skiplinks.entry.js +4 -4
  90. package/dist/esm/{store-f9ce3c4f.js → store-f0cb4f1a.js} +2 -2
  91. package/dist/esm/{store-f9ce3c4f.js.map → store-f0cb4f1a.js.map} +1 -1
  92. package/dist/esm/{svg-icon.component-cd0942cc.js → svg-icon.component-4ca05eb2.js} +2 -2
  93. package/dist/esm/{svg-icon.component-cd0942cc.js.map → svg-icon.component-4ca05eb2.js.map} +1 -1
  94. package/dist/esm/{svg-sprite.component-5ed9c3b8.js → svg-sprite.component-0394cd67.js} +2 -2
  95. package/dist/esm/{svg-sprite.component-5ed9c3b8.js.map → svg-sprite.component-0394cd67.js.map} +1 -1
  96. package/dist/esm/swisspost-internet-breadcrumbs.entry.js +10 -1315
  97. package/dist/esm/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  98. package/dist/esm/swisspost-internet-footer.entry.js +4 -4
  99. package/dist/esm/swisspost-internet-footer.entry.js.map +1 -1
  100. package/dist/esm/swisspost-internet-header.entry.js +51 -35
  101. package/dist/esm/swisspost-internet-header.entry.js.map +1 -1
  102. package/dist/esm/swisspost-internet-header.js +3 -3
  103. package/dist/esm/swisspost-internet-header.js.map +1 -1
  104. package/dist/esm-es5/{index-9351b1b6.js → index-447227c7.js} +1 -1
  105. package/dist/esm-es5/{index-9351b1b6.js.map → index-447227c7.js.map} +1 -1
  106. package/dist/esm-es5/klp-widget.controller-9f7e3c54.js +27 -0
  107. package/dist/esm-es5/klp-widget.controller-9f7e3c54.js.map +1 -0
  108. package/dist/esm-es5/{language.service-7aefe1c5.js → language.service-3e2fe7e8.js} +2 -2
  109. package/dist/esm-es5/loader.js +1 -1
  110. package/dist/esm-es5/loader.js.map +1 -1
  111. package/dist/esm-es5/post-klp-login-widget.entry.js +1 -1
  112. package/dist/esm-es5/post-klp-login-widget.entry.js.map +1 -1
  113. package/dist/esm-es5/post-language-switch.entry.js +1 -1
  114. package/dist/esm-es5/post-language-switch.entry.js.map +1 -1
  115. package/dist/esm-es5/post-logo.entry.js +1 -1
  116. package/dist/esm-es5/post-main-navigation.entry.js +1 -1
  117. package/dist/esm-es5/post-main-navigation.entry.js.map +1 -1
  118. package/dist/esm-es5/post-meta-navigation.entry.js +1 -1
  119. package/dist/esm-es5/post-search.entry.js +1 -1
  120. package/dist/esm-es5/post-search.entry.js.map +1 -1
  121. package/dist/esm-es5/post-skiplinks.entry.js +1 -1
  122. package/dist/esm-es5/{store-f9ce3c4f.js → store-f0cb4f1a.js} +2 -2
  123. package/dist/esm-es5/{store-f9ce3c4f.js.map → store-f0cb4f1a.js.map} +1 -1
  124. package/dist/esm-es5/{svg-icon.component-cd0942cc.js → svg-icon.component-4ca05eb2.js} +2 -2
  125. package/dist/esm-es5/{svg-sprite.component-5ed9c3b8.js → svg-sprite.component-0394cd67.js} +2 -2
  126. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +2 -2
  127. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  128. package/dist/esm-es5/swisspost-internet-footer.entry.js +1 -1
  129. package/dist/esm-es5/swisspost-internet-footer.entry.js.map +1 -1
  130. package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
  131. package/dist/esm-es5/swisspost-internet-header.entry.js.map +1 -1
  132. package/dist/esm-es5/swisspost-internet-header.js +1 -1
  133. package/dist/esm-es5/swisspost-internet-header.js.map +1 -1
  134. package/dist/swisspost-internet-header/p-137d0cb3.system.entry.js +2 -0
  135. package/dist/swisspost-internet-header/p-137d0cb3.system.entry.js.map +1 -0
  136. package/dist/swisspost-internet-header/p-1f28e7ef.entry.js +2 -0
  137. package/dist/swisspost-internet-header/p-1f28e7ef.entry.js.map +1 -0
  138. package/dist/swisspost-internet-header/p-2a402f35.system.entry.js +2 -0
  139. package/dist/swisspost-internet-header/p-2a402f35.system.entry.js.map +1 -0
  140. package/dist/swisspost-internet-header/{p-ab97ab9d.entry.js → p-2e5d2ce1.entry.js} +2 -2
  141. package/dist/swisspost-internet-header/{p-01b80755.system.entry.js → p-2fd19fc1.system.entry.js} +2 -2
  142. package/dist/swisspost-internet-header/{p-0739e499.system.js → p-4772446c.system.js} +2 -2
  143. package/dist/swisspost-internet-header/{p-b9569693.system.js → p-4c655e05.system.js} +2 -2
  144. package/dist/swisspost-internet-header/p-4c655e05.system.js.map +1 -0
  145. package/dist/swisspost-internet-header/{p-af58c52f.system.js → p-59a0d27b.system.js} +2 -2
  146. package/dist/swisspost-internet-header/p-5d2a1c2d.entry.js +2 -0
  147. package/dist/swisspost-internet-header/p-5d2a1c2d.entry.js.map +1 -0
  148. package/dist/swisspost-internet-header/p-69b7fbf4.entry.js +2 -0
  149. package/dist/swisspost-internet-header/{p-ab0ff9c7.entry.js.map → p-69b7fbf4.entry.js.map} +1 -1
  150. package/dist/swisspost-internet-header/p-7c9d0994.entry.js +2 -0
  151. package/dist/swisspost-internet-header/{p-91195287.entry.js.map → p-7c9d0994.entry.js.map} +1 -1
  152. package/dist/swisspost-internet-header/{p-89618eab.system.js → p-86c5610e.system.js} +2 -2
  153. package/dist/swisspost-internet-header/{p-633cde46.entry.js → p-8b840367.entry.js} +2 -2
  154. package/dist/swisspost-internet-header/{p-bd9d660b.system.js → p-9c5ef36c.system.js} +1 -1
  155. package/dist/swisspost-internet-header/{p-bd9d660b.system.js.map → p-9c5ef36c.system.js.map} +1 -1
  156. package/dist/swisspost-internet-header/{p-c90a1412.js → p-9e389f57.js} +2 -2
  157. package/dist/swisspost-internet-header/p-9fddc119.system.entry.js +2 -0
  158. package/dist/swisspost-internet-header/{p-c08318d1.system.entry.js.map → p-9fddc119.system.entry.js.map} +1 -1
  159. package/dist/swisspost-internet-header/p-ad7071ea.system.js +27 -0
  160. package/dist/swisspost-internet-header/p-ad7071ea.system.js.map +1 -0
  161. package/dist/swisspost-internet-header/p-ad9eb765.entry.js +2 -0
  162. package/dist/swisspost-internet-header/{p-b52015b1.entry.js.map → p-ad9eb765.entry.js.map} +1 -1
  163. package/dist/swisspost-internet-header/{p-99f181e3.entry.js → p-b1e20b23.entry.js} +2 -2
  164. package/dist/swisspost-internet-header/p-bc800d7f.system.entry.js +2 -0
  165. package/dist/swisspost-internet-header/{p-385ea6ec.system.entry.js.map → p-bc800d7f.system.entry.js.map} +1 -1
  166. package/dist/swisspost-internet-header/{p-9cf200bd.js → p-bf8fc7fa.js} +2 -2
  167. package/dist/swisspost-internet-header/p-ca5bfb68.entry.js +2 -0
  168. package/dist/swisspost-internet-header/{p-2bae3827.entry.js.map → p-ca5bfb68.entry.js.map} +1 -1
  169. package/dist/swisspost-internet-header/{p-5c0b352c.system.entry.js → p-cc23da7a.system.entry.js} +2 -2
  170. package/dist/swisspost-internet-header/{p-8927c282.system.entry.js → p-d7e49083.system.entry.js} +2 -2
  171. package/dist/swisspost-internet-header/{p-8927c282.system.entry.js.map → p-d7e49083.system.entry.js.map} +1 -1
  172. package/dist/swisspost-internet-header/p-d8a834ef.js +2 -0
  173. package/dist/swisspost-internet-header/{p-698793da.js.map → p-d8a834ef.js.map} +1 -1
  174. package/dist/swisspost-internet-header/p-e58de121.entry.js +7 -0
  175. package/dist/swisspost-internet-header/p-e58de121.entry.js.map +1 -0
  176. package/dist/swisspost-internet-header/p-e75e4c7e.system.entry.js +7 -0
  177. package/dist/swisspost-internet-header/p-e75e4c7e.system.entry.js.map +1 -0
  178. package/dist/swisspost-internet-header/p-e8d72284.js +2 -0
  179. package/dist/swisspost-internet-header/{p-61b09b9b.js → p-ebd5ee13.js} +1 -1
  180. package/dist/swisspost-internet-header/{p-61b09b9b.js.map → p-ebd5ee13.js.map} +1 -1
  181. package/dist/swisspost-internet-header/{p-0342245a.system.js → p-ed6c1eec.system.js} +2 -2
  182. package/dist/swisspost-internet-header/{p-0342245a.system.js.map → p-ed6c1eec.system.js.map} +1 -1
  183. package/dist/swisspost-internet-header/p-f052a22f.system.entry.js +2 -0
  184. package/dist/swisspost-internet-header/{p-60f3d251.system.entry.js.map → p-f052a22f.system.entry.js.map} +1 -1
  185. package/dist/swisspost-internet-header/{p-3b6966e6.system.entry.js → p-f5c099b1.system.entry.js} +2 -2
  186. package/dist/swisspost-internet-header/p-fefa1082.js +27 -0
  187. package/dist/swisspost-internet-header/p-fefa1082.js.map +1 -0
  188. package/dist/swisspost-internet-header/swisspost-internet-header.css +1 -1
  189. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
  190. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js.map +1 -1
  191. package/dist/swisspost-internet-header/swisspost-internet-header.js +1 -1
  192. package/package.json +20 -21
  193. package/dist/cjs/klp-widget.controller-d8941c4e.js.map +0 -1
  194. package/dist/esm/klp-widget.controller-55366e6a.js.map +0 -1
  195. package/dist/esm-es5/klp-widget.controller-55366e6a.js +0 -27
  196. package/dist/esm-es5/klp-widget.controller-55366e6a.js.map +0 -1
  197. package/dist/swisspost-internet-header/p-118dc1da.system.entry.js +0 -2
  198. package/dist/swisspost-internet-header/p-118dc1da.system.entry.js.map +0 -1
  199. package/dist/swisspost-internet-header/p-2bae3827.entry.js +0 -2
  200. package/dist/swisspost-internet-header/p-3563d113.js +0 -2
  201. package/dist/swisspost-internet-header/p-385ea6ec.system.entry.js +0 -2
  202. package/dist/swisspost-internet-header/p-3c3d02ba.entry.js +0 -2
  203. package/dist/swisspost-internet-header/p-3c3d02ba.entry.js.map +0 -1
  204. package/dist/swisspost-internet-header/p-3ce9b132.system.entry.js +0 -7
  205. package/dist/swisspost-internet-header/p-3ce9b132.system.entry.js.map +0 -1
  206. package/dist/swisspost-internet-header/p-42695801.system.js +0 -27
  207. package/dist/swisspost-internet-header/p-42695801.system.js.map +0 -1
  208. package/dist/swisspost-internet-header/p-57d1ff07.entry.js +0 -7
  209. package/dist/swisspost-internet-header/p-57d1ff07.entry.js.map +0 -1
  210. package/dist/swisspost-internet-header/p-60f3d251.system.entry.js +0 -2
  211. package/dist/swisspost-internet-header/p-698793da.js +0 -2
  212. package/dist/swisspost-internet-header/p-91195287.entry.js +0 -2
  213. package/dist/swisspost-internet-header/p-ab0ff9c7.entry.js +0 -2
  214. package/dist/swisspost-internet-header/p-b52015b1.entry.js +0 -2
  215. package/dist/swisspost-internet-header/p-b9569693.system.js.map +0 -1
  216. package/dist/swisspost-internet-header/p-c08318d1.system.entry.js +0 -2
  217. package/dist/swisspost-internet-header/p-c5dcb0f5.entry.js +0 -2
  218. package/dist/swisspost-internet-header/p-c5dcb0f5.entry.js.map +0 -1
  219. package/dist/swisspost-internet-header/p-ed24b372.js +0 -27
  220. package/dist/swisspost-internet-header/p-ed24b372.js.map +0 -1
  221. package/dist/swisspost-internet-header/p-fb73f557.system.entry.js +0 -2
  222. package/dist/swisspost-internet-header/p-fb73f557.system.entry.js.map +0 -1
  223. /package/dist/esm-es5/{language.service-7aefe1c5.js.map → language.service-3e2fe7e8.js.map} +0 -0
  224. /package/dist/esm-es5/{svg-icon.component-cd0942cc.js.map → svg-icon.component-4ca05eb2.js.map} +0 -0
  225. /package/dist/esm-es5/{svg-sprite.component-5ed9c3b8.js.map → svg-sprite.component-0394cd67.js.map} +0 -0
  226. /package/dist/swisspost-internet-header/{p-ab97ab9d.entry.js.map → p-2e5d2ce1.entry.js.map} +0 -0
  227. /package/dist/swisspost-internet-header/{p-01b80755.system.entry.js.map → p-2fd19fc1.system.entry.js.map} +0 -0
  228. /package/dist/swisspost-internet-header/{p-0739e499.system.js.map → p-4772446c.system.js.map} +0 -0
  229. /package/dist/swisspost-internet-header/{p-af58c52f.system.js.map → p-59a0d27b.system.js.map} +0 -0
  230. /package/dist/swisspost-internet-header/{p-89618eab.system.js.map → p-86c5610e.system.js.map} +0 -0
  231. /package/dist/swisspost-internet-header/{p-633cde46.entry.js.map → p-8b840367.entry.js.map} +0 -0
  232. /package/dist/swisspost-internet-header/{p-c90a1412.js.map → p-9e389f57.js.map} +0 -0
  233. /package/dist/swisspost-internet-header/{p-99f181e3.entry.js.map → p-b1e20b23.entry.js.map} +0 -0
  234. /package/dist/swisspost-internet-header/{p-9cf200bd.js.map → p-bf8fc7fa.js.map} +0 -0
  235. /package/dist/swisspost-internet-header/{p-5c0b352c.system.entry.js.map → p-cc23da7a.system.entry.js.map} +0 -0
  236. /package/dist/swisspost-internet-header/{p-3563d113.js.map → p-e8d72284.js.map} +0 -0
  237. /package/dist/swisspost-internet-header/{p-3b6966e6.system.entry.js.map → p-f5c099b1.system.entry.js.map} +0 -0
@@ -4,7 +4,7 @@ import { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from 'bo
4
4
  import { SvgIcon } from '../../utils/svg-icon.component';
5
5
  import { state } from '../../data/store';
6
6
  import { OverlayComponent } from './components/overlay.component';
7
- import { iframeResizer } from 'iframe-resizer';
7
+ import iframeResizer from 'iframe-resizer/js/iframeResizer';
8
8
  import { SvgSprite } from '../../utils/svg-sprite.component';
9
9
  import { BreadcrumbList } from './components/breadcrumb-list.component';
10
10
  import { prefersReducedMotion } from '../../utils/utils';
@@ -1 +1 @@
1
- {"version":3,"file":"post-internet-breadcrumbs.js","sourceRoot":"","sources":["../../../../src/components/post-internet-breadcrumbs/post-internet-breadcrumbs.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, State, Element, Watch } from '@stencil/core';\nimport { debounce } from 'throttle-debounce';\nimport { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { state } from '../../data/store';\nimport { OverlayComponent } from './components/overlay.component';\nimport { iframeResizer } from 'iframe-resizer';\nimport { IBreadcrumbOverlay, IBreadcrumbItem } from '../../models/breadcrumbs.model';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { BreadcrumbList } from './components/breadcrumb-list.component';\nimport { prefersReducedMotion } from '../../utils/utils';\n\n@Component({\n tag: 'swisspost-internet-breadcrumbs',\n styleUrl: 'post-internet-breadcrumbs.scss',\n shadow: true,\n})\nexport class PostInternetBreadcrumbs {\n @Prop() customItems?: string | IBreadcrumbItem[];\n @State() customBreadcrumbItems?: IBreadcrumbItem[];\n @State() overlayVisible: boolean;\n @State() isConcatenated: boolean; // Don't set an initial value, this has to be calculated first, otherwise reactivity problems ensue\n @State() dropdownOpen: boolean = false;\n @State() refsReady: boolean = false;\n @Element() host: Element;\n\n private controlNavRef?: HTMLElement;\n private visibleNavRef?: HTMLElement;\n private currentOverlay: IBreadcrumbOverlay;\n private debouncedResize: debounce<() => void>;\n private lastWindowWidth: number;\n private openAnimation: Animation;\n private loadedAnimation: Animation | undefined;\n\n connectedCallback() {\n this.debouncedResize = debounce(200, this.handleResize.bind(this));\n window.addEventListener('resize', this.debouncedResize, { passive: true });\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.debouncedResize);\n window.removeEventListener('click', this.handleWindowClick);\n clearAllBodyScrollLocks();\n }\n\n async componentWillLoad() {\n // Wait for the config to arrive, then render the header\n try {\n this.customBreadcrumbItems =\n typeof this.customItems === 'string' ? JSON.parse(this.customItems) : this.customItems;\n } catch (error) {\n console.error(error);\n }\n }\n\n componentDidLoad() {\n // Initially check if breadcrumb items are concatenated\n window.requestAnimationFrame(() => {\n this.handleResize();\n });\n }\n\n @Watch('customItems')\n handleCustomConfigChage(newValue: string | IBreadcrumbItem[]) {\n try {\n this.customBreadcrumbItems = typeof newValue === 'string' ? JSON.parse(newValue) : newValue;\n } catch (error) {\n console.error(error);\n }\n }\n\n handleResize() {\n // Catch and exclude vertical resize events, e.g. scrolling in iPhone\n if (window.innerWidth === this.lastWindowWidth) {\n return;\n }\n this.lastWindowWidth = window.innerWidth;\n this.checkConcatenation();\n }\n\n checkConcatenation() {\n if (this.controlNavRef && this.visibleNavRef) {\n this.refsReady = true;\n\n // Delay the check\n window.requestAnimationFrame(() => {\n if (this.controlNavRef && this.visibleNavRef) {\n this.isConcatenated = this.controlNavRef.clientWidth > this.visibleNavRef.clientWidth;\n }\n });\n }\n }\n\n toggleOverlay(overlay: IBreadcrumbOverlay, force?: boolean) {\n const newVisibility = force ?? !this.overlayVisible;\n\n if (newVisibility) {\n // Will trigger overlayRef() once the HTLM is rendered\n this.overlayVisible = newVisibility;\n this.currentOverlay = overlay;\n this.setBodyScroll(overlay);\n } else {\n const activeToggler = this.host.shadowRoot?.querySelector<HTMLElement>(\n '.breadcrumb-buttons [aria-expanded=\"true\"]',\n );\n\n if (this.openAnimation && this.loadedAnimation) {\n this.openAnimation.reverse();\n this.loadedAnimation.reverse();\n\n // Delay hiding overlay until after the animation finishes\n Promise.all([this.openAnimation.finished, this.loadedAnimation.finished]).then(() => {\n if (activeToggler) {\n activeToggler.focus();\n }\n this.overlayVisible = newVisibility;\n this.setBodyScroll(overlay);\n });\n }\n }\n }\n\n /**\n * Disable or re-enable body scrolling, depending on whether overlay is visible or not\n */\n setBodyScroll(overlay: IBreadcrumbOverlay) {\n if (this.overlayVisible) {\n disableBodyScroll(overlay, { reserveScrollBarGap: true });\n } else {\n enableBodyScroll(overlay);\n }\n }\n\n toggleDropdown(force?: boolean) {\n this.dropdownOpen = force ?? !this.dropdownOpen;\n\n if (this.dropdownOpen) {\n requestAnimationFrame(() => {\n document.addEventListener('click', this.handleWindowClick.bind(this), { once: true });\n });\n }\n }\n\n handleWindowClick() {\n this.toggleDropdown(false);\n }\n\n registerIFrameResizer(iFrame: HTMLIFrameElement) {\n if (!iFrame) {\n return;\n }\n\n iFrame.addEventListener('load', () => {\n iframeResizer(\n {\n heightCalculationMethod: 'taggedElement',\n scrolling: true,\n checkOrigin: false,\n },\n iFrame,\n );\n const duration = prefersReducedMotion ? 0 : 300;\n this.loadedAnimation = iFrame.parentElement?.animate(\n [{ opacity: 1, visibility: 'visible', transform: 'translateY(0px)' }],\n { duration, fill: 'forwards' },\n );\n iFrame.parentElement?.classList.add('loaded');\n this.loadedAnimation?.finished.then(() => {\n iFrame.parentElement?.focus();\n });\n });\n }\n\n /**\n * Reference function for the overlay element got called. It is either null (overlay closed)\n * or contains the overlay element as parameter.\n * @param e Overlay element or null\n * @returns void\n */\n overlayRef(e: HTMLElement | undefined) {\n if (!e) {\n return;\n }\n\n const duration = prefersReducedMotion ? 0 : 500;\n this.openAnimation = e.animate([{ opacity: 1, visibility: 'visible' }], {\n duration,\n fill: 'forwards',\n });\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (event.key.toLowerCase() === 'escape') {\n this.toggleOverlay(this.currentOverlay, false);\n }\n }\n\n private handleToggleDropdown() {\n this.toggleDropdown();\n }\n\n private handleToggleOverlay() {\n this.toggleOverlay(this.currentOverlay, false);\n }\n\n private handleControlNavRef(element: HTMLElement) {\n this.controlNavRef = element;\n this.checkConcatenation();\n }\n\n private handleVisibleNavRef(element: HTMLElement) {\n this.visibleNavRef = element;\n this.checkConcatenation();\n }\n\n render() {\n // There is something wrong entirely\n if (!state) {\n console.warn(\n `Internet Breadcrumbs: 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 is not loaded yet\n if (!state.localizedConfig) {\n return null;\n }\n\n // Config has loaded but there is no breadcrumbs config\n if (!state.localizedConfig.breadcrumb) {\n console.warn(\n `Internet Header: Current project \"${state.projectId}\" does not include a breadcrumb config. The breadcrumbs will not be rendered. Remove `,\n document.querySelector('swisspost-internet-breadcrumbs'),\n `from your markup or configure the breadcrumbs in your portal config to stop seeing this warning.`,\n );\n return null;\n }\n\n const breadcrumbConfig = state.localizedConfig.breadcrumb;\n const items =\n this.customBreadcrumbItems !== undefined\n ? [...breadcrumbConfig.items, ...this.customBreadcrumbItems]\n : breadcrumbConfig.items;\n\n return (\n <Host>\n <SvgSprite />\n <div class=\"breadcrumbs\">\n <div class=\"hidden-control-breadcrumbs\" aria-hidden=\"true\" tabindex=\"-1\">\n <nav class=\"breadcrumbs-nav\" ref={e => e !== undefined && this.handleControlNavRef(e)}>\n <BreadcrumbList\n items={items}\n focusable={false}\n clickHandler={() => {}}\n ></BreadcrumbList>\n </nav>\n </div>\n <h2 class=\"visually-hidden\">{breadcrumbConfig.a11yLabel}</h2>\n <nav\n ref={e => e !== undefined && this.handleVisibleNavRef(e)}\n class={{\n 'breadcrumbs-nav': true,\n 'visually-hidden': !this.refsReady,\n }}\n >\n <BreadcrumbList\n items={items}\n dropdownOpen={this.dropdownOpen}\n isConcatenated={this.isConcatenated}\n clickHandler={() => this.handleToggleDropdown()}\n ></BreadcrumbList>\n </nav>\n <div class=\"breadcrumb-buttons\">\n {breadcrumbConfig.buttons.map(button => (\n <button\n class=\"btn btn-secondary btn-icon\"\n key={button.text}\n aria-expanded={`${!!this.overlayVisible && this.currentOverlay === button.overlay}`}\n onClick={() => this.toggleOverlay(button.overlay, true)}\n >\n <SvgIcon name={button.svgIcon.name}></SvgIcon>\n <span class=\"visually-hidden\">{button.text}</span>\n </button>\n ))}\n </div>\n {this.overlayVisible && (\n <OverlayComponent\n overlayRef={e => e !== undefined && this.overlayRef(e)}\n iFrameRef={e => e !== undefined && this.registerIFrameResizer(e)}\n overlay={this.currentOverlay}\n onClick={() => this.handleToggleOverlay()}\n onKeyDown={(e: KeyboardEvent) => this.handleKeyDown(e)}\n closeButtonText={state.localizedConfig.header.translations.closeButtonText}\n ></OverlayComponent>\n )}\n </div>\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"post-internet-breadcrumbs.js","sourceRoot":"","sources":["../../../../src/components/post-internet-breadcrumbs/post-internet-breadcrumbs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,aAAa,MAAM,iCAAiC,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAOzD,MAAM,OAAO,uBAAuB;;;;;;wBAKD,KAAK;qBACR,KAAK;;EAWnC,iBAAiB;IACf,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;EAC7E,CAAC;EAED,oBAAoB;IAClB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3D,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5D,uBAAuB,EAAE,CAAC;EAC5B,CAAC;EAED,KAAK,CAAC,iBAAiB;IACrB,wDAAwD;IACxD,IAAI;MACF,IAAI,CAAC,qBAAqB;QACxB,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;KAC1F;IAAC,OAAO,KAAK,EAAE;MACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACtB;EACH,CAAC;EAED,gBAAgB;IACd,uDAAuD;IACvD,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;MAChC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;EACL,CAAC;EAGD,uBAAuB,CAAC,QAAoC;IAC1D,IAAI;MACF,IAAI,CAAC,qBAAqB,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;KAC7F;IAAC,OAAO,KAAK,EAAE;MACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACtB;EACH,CAAC;EAED,YAAY;IACV,qEAAqE;IACrE,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,eAAe,EAAE;MAC9C,OAAO;KACR;IACD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC;IACzC,IAAI,CAAC,kBAAkB,EAAE,CAAC;EAC5B,CAAC;EAED,kBAAkB;IAChB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE;MAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;MAEtB,kBAAkB;MAClB,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;QAChC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE;UAC5C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;SACvF;MACH,CAAC,CAAC,CAAC;KACJ;EACH,CAAC;EAED,aAAa,CAAC,OAA2B,EAAE,KAAe;;IACxD,MAAM,aAAa,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IAEpD,IAAI,aAAa,EAAE;MACjB,sDAAsD;MACtD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;MACpC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;MAC9B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC7B;SAAM;MACL,MAAM,aAAa,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,aAAa,CACvD,4CAA4C,CAC7C,CAAC;MAEF,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,EAAE;QAC9C,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAE/B,0DAA0D;QAC1D,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;UAClF,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,KAAK,EAAE,CAAC;WACvB;UACD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;UACpC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;OACJ;KACF;EACH,CAAC;EAED;;KAEG;EACH,aAAa,CAAC,OAA2B;IACvC,IAAI,IAAI,CAAC,cAAc,EAAE;MACvB,iBAAiB,CAAC,OAAO,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;KAC3D;SAAM;MACL,gBAAgB,CAAC,OAAO,CAAC,CAAC;KAC3B;EACH,CAAC;EAED,cAAc,CAAC,KAAe;IAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAEhD,IAAI,IAAI,CAAC,YAAY,EAAE;MACrB,qBAAqB,CAAC,GAAG,EAAE;QACzB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;MACxF,CAAC,CAAC,CAAC;KACJ;EACH,CAAC;EAED,iBAAiB;IACf,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;EAC7B,CAAC;EAED,qBAAqB,CAAC,MAAyB;IAC7C,IAAI,CAAC,MAAM,EAAE;MACX,OAAO;KACR;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;;MACnC,aAAa,CACX;QACE,uBAAuB,EAAE,eAAe;QACxC,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,KAAK;OACnB,EACD,MAAM,CACP,CAAC;MACF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;MAChD,IAAI,CAAC,eAAe,GAAG,MAAA,MAAM,CAAC,aAAa,0CAAE,OAAO,CAClD,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,EACrE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAC/B,CAAC;MACF,MAAA,MAAM,CAAC,aAAa,0CAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;MAC9C,MAAA,IAAI,CAAC,eAAe,0CAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;;QACvC,MAAA,MAAM,CAAC,aAAa,0CAAE,KAAK,EAAE,CAAC;MAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;EACL,CAAC;EAED;;;;;KAKG;EACH,UAAU,CAAC,CAA0B;IACnC,IAAI,CAAC,CAAC,EAAE;MACN,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAChD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;MACtE,QAAQ;MACR,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;EACL,CAAC;EAEO,aAAa,CAAC,KAAoB;IACxC,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;MACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;KAChD;EACH,CAAC;EAEO,oBAAoB;IAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;EACxB,CAAC;EAEO,mBAAmB;IACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;EACjD,CAAC;EAEO,mBAAmB,CAAC,OAAoB;IAC9C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;IAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;EAC5B,CAAC;EAEO,mBAAmB,CAAC,OAAoB;IAC9C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;IAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;EAC5B,CAAC;EAED,MAAM;IACJ,oCAAoC;IACpC,IAAI,CAAC,KAAK,EAAE;MACV,OAAO,CAAC,IAAI,CACV,wJAAwJ,CACzJ,CAAC;MACF,OAAO,IAAI,CAAC;KACb;IAED,2BAA2B;IAC3B,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;MAC1B,OAAO,IAAI,CAAC;KACb;IAED,uDAAuD;IACvD,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,EAAE;MACrC,OAAO,CAAC,IAAI,CACV,qCAAqC,KAAK,CAAC,SAAS,uFAAuF,EAC3I,QAAQ,CAAC,aAAa,CAAC,gCAAgC,CAAC,EACxD,kGAAkG,CACnG,CAAC;MACF,OAAO,IAAI,CAAC;KACb;IAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC;IAC1D,MAAM,KAAK,GACT,IAAI,CAAC,qBAAqB,KAAK,SAAS;MACtC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;MAC5D,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC;IAE7B,OAAO,CACL,EAAC,IAAI;MACH,EAAC,SAAS,OAAG;MACb,WAAK,KAAK,EAAC,aAAa;QACtB,WAAK,KAAK,EAAC,4BAA4B,iBAAa,MAAM,EAAC,QAAQ,EAAC,IAAI;UACtE,WAAK,KAAK,EAAC,iBAAiB,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACnF,EAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,KAAK,EAChB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC,GACN,CACd,CACF;QACN,UAAI,KAAK,EAAC,iBAAiB,IAAE,gBAAgB,CAAC,SAAS,CAAM;QAC7D,WACE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EACxD,KAAK,EAAE;YACL,iBAAiB,EAAE,IAAI;YACvB,iBAAiB,EAAE,CAAC,IAAI,CAAC,SAAS;WACnC;UAED,EAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAC/B,CACd;QACN,WAAK,KAAK,EAAC,oBAAoB,IAC5B,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CACtC,cACE,KAAK,EAAC,4BAA4B,EAClC,GAAG,EAAE,MAAM,CAAC,IAAI,mBACD,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,OAAO,EAAE,EACnF,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;UAEvD,EAAC,OAAO,IAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,GAAY;UAC9C,YAAM,KAAK,EAAC,iBAAiB,IAAE,MAAM,CAAC,IAAI,CAAQ,CAC3C,CACV,CAAC,CACE;QACL,IAAI,CAAC,cAAc,IAAI,CACtB,EAAC,gBAAgB,IACf,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EACtD,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAChE,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,EACzC,SAAS,EAAE,CAAC,CAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EACtD,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,GACxD,CACrB,CACG;MACN,eAAa,CACR,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop, State, Element, Watch } from '@stencil/core';\nimport { debounce } from 'throttle-debounce';\nimport { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock';\nimport { SvgIcon } from '../../utils/svg-icon.component';\nimport { state } from '../../data/store';\nimport { OverlayComponent } from './components/overlay.component';\nimport iframeResizer from 'iframe-resizer/js/iframeResizer';\nimport { IBreadcrumbOverlay, IBreadcrumbItem } from '../../models/breadcrumbs.model';\nimport { SvgSprite } from '../../utils/svg-sprite.component';\nimport { BreadcrumbList } from './components/breadcrumb-list.component';\nimport { prefersReducedMotion } from '../../utils/utils';\n\n@Component({\n tag: 'swisspost-internet-breadcrumbs',\n styleUrl: 'post-internet-breadcrumbs.scss',\n shadow: true,\n})\nexport class PostInternetBreadcrumbs {\n @Prop() customItems?: string | IBreadcrumbItem[];\n @State() customBreadcrumbItems?: IBreadcrumbItem[];\n @State() overlayVisible: boolean;\n @State() isConcatenated: boolean; // Don't set an initial value, this has to be calculated first, otherwise reactivity problems ensue\n @State() dropdownOpen: boolean = false;\n @State() refsReady: boolean = false;\n @Element() host: Element;\n\n private controlNavRef?: HTMLElement;\n private visibleNavRef?: HTMLElement;\n private currentOverlay: IBreadcrumbOverlay;\n private debouncedResize: debounce<() => void>;\n private lastWindowWidth: number;\n private openAnimation: Animation;\n private loadedAnimation: Animation | undefined;\n\n connectedCallback() {\n this.debouncedResize = debounce(200, this.handleResize.bind(this));\n window.addEventListener('resize', this.debouncedResize, { passive: true });\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.debouncedResize);\n window.removeEventListener('click', this.handleWindowClick);\n clearAllBodyScrollLocks();\n }\n\n async componentWillLoad() {\n // Wait for the config to arrive, then render the header\n try {\n this.customBreadcrumbItems =\n typeof this.customItems === 'string' ? JSON.parse(this.customItems) : this.customItems;\n } catch (error) {\n console.error(error);\n }\n }\n\n componentDidLoad() {\n // Initially check if breadcrumb items are concatenated\n window.requestAnimationFrame(() => {\n this.handleResize();\n });\n }\n\n @Watch('customItems')\n handleCustomConfigChage(newValue: string | IBreadcrumbItem[]) {\n try {\n this.customBreadcrumbItems = typeof newValue === 'string' ? JSON.parse(newValue) : newValue;\n } catch (error) {\n console.error(error);\n }\n }\n\n handleResize() {\n // Catch and exclude vertical resize events, e.g. scrolling in iPhone\n if (window.innerWidth === this.lastWindowWidth) {\n return;\n }\n this.lastWindowWidth = window.innerWidth;\n this.checkConcatenation();\n }\n\n checkConcatenation() {\n if (this.controlNavRef && this.visibleNavRef) {\n this.refsReady = true;\n\n // Delay the check\n window.requestAnimationFrame(() => {\n if (this.controlNavRef && this.visibleNavRef) {\n this.isConcatenated = this.controlNavRef.clientWidth > this.visibleNavRef.clientWidth;\n }\n });\n }\n }\n\n toggleOverlay(overlay: IBreadcrumbOverlay, force?: boolean) {\n const newVisibility = force ?? !this.overlayVisible;\n\n if (newVisibility) {\n // Will trigger overlayRef() once the HTLM is rendered\n this.overlayVisible = newVisibility;\n this.currentOverlay = overlay;\n this.setBodyScroll(overlay);\n } else {\n const activeToggler = this.host.shadowRoot?.querySelector<HTMLElement>(\n '.breadcrumb-buttons [aria-expanded=\"true\"]',\n );\n\n if (this.openAnimation && this.loadedAnimation) {\n this.openAnimation.reverse();\n this.loadedAnimation.reverse();\n\n // Delay hiding overlay until after the animation finishes\n Promise.all([this.openAnimation.finished, this.loadedAnimation.finished]).then(() => {\n if (activeToggler) {\n activeToggler.focus();\n }\n this.overlayVisible = newVisibility;\n this.setBodyScroll(overlay);\n });\n }\n }\n }\n\n /**\n * Disable or re-enable body scrolling, depending on whether overlay is visible or not\n */\n setBodyScroll(overlay: IBreadcrumbOverlay) {\n if (this.overlayVisible) {\n disableBodyScroll(overlay, { reserveScrollBarGap: true });\n } else {\n enableBodyScroll(overlay);\n }\n }\n\n toggleDropdown(force?: boolean) {\n this.dropdownOpen = force ?? !this.dropdownOpen;\n\n if (this.dropdownOpen) {\n requestAnimationFrame(() => {\n document.addEventListener('click', this.handleWindowClick.bind(this), { once: true });\n });\n }\n }\n\n handleWindowClick() {\n this.toggleDropdown(false);\n }\n\n registerIFrameResizer(iFrame: HTMLIFrameElement) {\n if (!iFrame) {\n return;\n }\n\n iFrame.addEventListener('load', () => {\n iframeResizer(\n {\n heightCalculationMethod: 'taggedElement',\n scrolling: true,\n checkOrigin: false,\n },\n iFrame,\n );\n const duration = prefersReducedMotion ? 0 : 300;\n this.loadedAnimation = iFrame.parentElement?.animate(\n [{ opacity: 1, visibility: 'visible', transform: 'translateY(0px)' }],\n { duration, fill: 'forwards' },\n );\n iFrame.parentElement?.classList.add('loaded');\n this.loadedAnimation?.finished.then(() => {\n iFrame.parentElement?.focus();\n });\n });\n }\n\n /**\n * Reference function for the overlay element got called. It is either null (overlay closed)\n * or contains the overlay element as parameter.\n * @param e Overlay element or null\n * @returns void\n */\n overlayRef(e: HTMLElement | undefined) {\n if (!e) {\n return;\n }\n\n const duration = prefersReducedMotion ? 0 : 500;\n this.openAnimation = e.animate([{ opacity: 1, visibility: 'visible' }], {\n duration,\n fill: 'forwards',\n });\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (event.key.toLowerCase() === 'escape') {\n this.toggleOverlay(this.currentOverlay, false);\n }\n }\n\n private handleToggleDropdown() {\n this.toggleDropdown();\n }\n\n private handleToggleOverlay() {\n this.toggleOverlay(this.currentOverlay, false);\n }\n\n private handleControlNavRef(element: HTMLElement) {\n this.controlNavRef = element;\n this.checkConcatenation();\n }\n\n private handleVisibleNavRef(element: HTMLElement) {\n this.visibleNavRef = element;\n this.checkConcatenation();\n }\n\n render() {\n // There is something wrong entirely\n if (!state) {\n console.warn(\n `Internet Breadcrumbs: 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 is not loaded yet\n if (!state.localizedConfig) {\n return null;\n }\n\n // Config has loaded but there is no breadcrumbs config\n if (!state.localizedConfig.breadcrumb) {\n console.warn(\n `Internet Header: Current project \"${state.projectId}\" does not include a breadcrumb config. The breadcrumbs will not be rendered. Remove `,\n document.querySelector('swisspost-internet-breadcrumbs'),\n `from your markup or configure the breadcrumbs in your portal config to stop seeing this warning.`,\n );\n return null;\n }\n\n const breadcrumbConfig = state.localizedConfig.breadcrumb;\n const items =\n this.customBreadcrumbItems !== undefined\n ? [...breadcrumbConfig.items, ...this.customBreadcrumbItems]\n : breadcrumbConfig.items;\n\n return (\n <Host>\n <SvgSprite />\n <div class=\"breadcrumbs\">\n <div class=\"hidden-control-breadcrumbs\" aria-hidden=\"true\" tabindex=\"-1\">\n <nav class=\"breadcrumbs-nav\" ref={e => e !== undefined && this.handleControlNavRef(e)}>\n <BreadcrumbList\n items={items}\n focusable={false}\n clickHandler={() => {}}\n ></BreadcrumbList>\n </nav>\n </div>\n <h2 class=\"visually-hidden\">{breadcrumbConfig.a11yLabel}</h2>\n <nav\n ref={e => e !== undefined && this.handleVisibleNavRef(e)}\n class={{\n 'breadcrumbs-nav': true,\n 'visually-hidden': !this.refsReady,\n }}\n >\n <BreadcrumbList\n items={items}\n dropdownOpen={this.dropdownOpen}\n isConcatenated={this.isConcatenated}\n clickHandler={() => this.handleToggleDropdown()}\n ></BreadcrumbList>\n </nav>\n <div class=\"breadcrumb-buttons\">\n {breadcrumbConfig.buttons.map(button => (\n <button\n class=\"btn btn-secondary btn-icon\"\n key={button.text}\n aria-expanded={`${!!this.overlayVisible && this.currentOverlay === button.overlay}`}\n onClick={() => this.toggleOverlay(button.overlay, true)}\n >\n <SvgIcon name={button.svgIcon.name}></SvgIcon>\n <span class=\"visually-hidden\">{button.text}</span>\n </button>\n ))}\n </div>\n {this.overlayVisible && (\n <OverlayComponent\n overlayRef={e => e !== undefined && this.overlayRef(e)}\n iFrameRef={e => e !== undefined && this.registerIFrameResizer(e)}\n overlay={this.currentOverlay}\n onClick={() => this.handleToggleOverlay()}\n onKeyDown={(e: KeyboardEvent) => this.handleKeyDown(e)}\n closeButtonText={state.localizedConfig.header.translations.closeButtonText}\n ></OverlayComponent>\n )}\n </div>\n <slot></slot>\n </Host>\n );\n }\n}\n"]}