@postnord/pn-marketweb-components 4.2.5 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. package/cjs/header-theme-a250bf67.js +245 -0
  2. package/cjs/header-theme-a250bf67.js.map +1 -0
  3. package/cjs/index-9a9efa1c.js +24 -16
  4. package/cjs/loader.cjs.js +1 -1
  5. package/cjs/pn-app-banner.cjs.entry.js +1 -1
  6. package/cjs/pn-breakpoints.cjs.entry.js +1 -1
  7. package/cjs/pn-chat-message_2.cjs.entry.js +2 -2
  8. package/cjs/pn-chat.cjs.entry.js +2 -2
  9. package/cjs/pn-customernumber-selector-option.cjs.entry.js +1 -1
  10. package/cjs/pn-customernumber-selector.cjs.entry.js +1 -1
  11. package/cjs/pn-find-price-result.cjs.entry.js +1 -1
  12. package/cjs/pn-find-price.cjs.entry.js +2 -2
  13. package/cjs/pn-find-service-and-price-result.cjs.entry.js +1 -1
  14. package/cjs/pn-find-service-and-price.cjs.entry.js +1 -1
  15. package/cjs/pn-hero-block-international.cjs.entry.js +1 -1
  16. package/cjs/pn-language-selector_13.cjs.entry.js +1519 -0
  17. package/cjs/pn-language-selector_13.cjs.entry.js.map +1 -0
  18. package/cjs/pn-level-up-modal.cjs.entry.js +1 -1
  19. package/cjs/pn-level-up.cjs.entry.js +2 -2
  20. package/cjs/pn-link-list.cjs.entry.js +1 -1
  21. package/cjs/pn-market-web-components.cjs.js +1 -1
  22. package/cjs/pn-marketweb-header-main-row_2.cjs.entry.js +222 -0
  23. package/cjs/pn-marketweb-header-main-row_2.cjs.entry.js.map +1 -0
  24. package/cjs/pn-marketweb-header-skeleton-loader.cjs.entry.js +23 -0
  25. package/cjs/pn-marketweb-header-skeleton-loader.cjs.entry.js.map +1 -0
  26. package/cjs/pn-marketweb-header-toggle.cjs.entry.js +46 -0
  27. package/cjs/pn-marketweb-header-toggle.cjs.entry.js.map +1 -0
  28. package/cjs/pn-marketweb-header.cjs.entry.js +1043 -0
  29. package/cjs/pn-marketweb-header.cjs.entry.js.map +1 -0
  30. package/cjs/pn-marketweb-icon.cjs.entry.js +1 -1
  31. package/cjs/{pn-marketweb-siteheader-login-linklist.cjs.entry.js → pn-marketweb-siteheader-login-button_2.cjs.entry.js} +44 -2
  32. package/cjs/pn-marketweb-siteheader-login-button_2.cjs.entry.js.map +1 -0
  33. package/cjs/pn-marketweb-siteheader-login-mypage-button.cjs.entry.js +1 -1
  34. package/cjs/pn-marketweb-siteheader.cjs.entry.js +7 -199
  35. package/cjs/pn-marketweb-siteheader.cjs.entry.js.map +1 -1
  36. package/cjs/pn-marketweb-table.cjs.entry.js +1 -1
  37. package/cjs/pn-media-block.cjs.entry.js +1 -1
  38. package/cjs/pn-pex-pricefinder.cjs.entry.js +1 -1
  39. package/cjs/pn-product-card_3.cjs.entry.js +1 -1
  40. package/cjs/pn-product-pricelist-result.cjs.entry.js +1 -1
  41. package/cjs/pn-product-pricelist.cjs.entry.js +2 -2
  42. package/cjs/pn-product-tile-info_2.cjs.entry.js +1 -1
  43. package/cjs/pn-product-tile.cjs.entry.js +1 -1
  44. package/cjs/pn-profile-modal-customernumber.cjs.entry.js +1 -1
  45. package/cjs/pn-profile-modal-profile.cjs.entry.js +2 -2
  46. package/cjs/pn-profile-modal-type.cjs.entry.js +1 -1
  47. package/cjs/pn-profile-modal.cjs.entry.js +1 -1
  48. package/cjs/pn-profile-selector-option.cjs.entry.js +1 -1
  49. package/cjs/pn-profile-selector.cjs.entry.js +1 -1
  50. package/cjs/pn-proxio-findprice-result.cjs.entry.js +1 -1
  51. package/cjs/pn-proxio-findprice.cjs.entry.js +3 -3
  52. package/cjs/pn-proxio-pricegroup.cjs.entry.js +1 -1
  53. package/cjs/pn-proxio-productcard_4.cjs.entry.js +3 -3
  54. package/cjs/pn-qr-code-generator.cjs.entry.js +1 -1
  55. package/cjs/pn-sidenav-level.cjs.entry.js +1 -1
  56. package/cjs/pn-sidenav-link.cjs.entry.js +1 -1
  57. package/cjs/pn-sidenav-togglebutton.cjs.entry.js +1 -1
  58. package/cjs/pn-sidenav.cjs.entry.js +1 -1
  59. package/cjs/pn-site-footer_3.cjs.entry.js +3 -3
  60. package/cjs/pn-titletag.cjs.entry.js +1 -1
  61. package/cjs/pn-usp-promoter.cjs.entry.js +1 -1
  62. package/cjs/translations-9510f11c.js +198 -0
  63. package/cjs/translations-9510f11c.js.map +1 -0
  64. package/collection/collection-manifest.json +5 -0
  65. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-main-row.css +204 -0
  66. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-main-row.js +658 -0
  67. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-main-row.js.map +1 -0
  68. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-skeleton-loader.css +217 -0
  69. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-skeleton-loader.js +20 -0
  70. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-skeleton-loader.js.map +1 -0
  71. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-top-row.css +115 -0
  72. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-top-row.js +520 -0
  73. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-top-row.js.map +1 -0
  74. package/collection/components/layout-components/pn-marketweb-header/components/shared/pn-marketweb-header-shared.js +37 -0
  75. package/collection/components/layout-components/pn-marketweb-header/components/shared/pn-marketweb-header-shared.js.map +1 -0
  76. package/collection/components/layout-components/pn-marketweb-header/mapper/pn-marketweb-header.mapper.js +109 -0
  77. package/collection/components/layout-components/pn-marketweb-header/mapper/pn-marketweb-header.mapper.js.map +1 -0
  78. package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.css +225 -0
  79. package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.js +916 -0
  80. package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.js.map +1 -0
  81. package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.js +638 -0
  82. package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.js.map +1 -0
  83. package/collection/components/layout-components/pn-marketweb-header/services/pn-marketweb-header.service.js +180 -0
  84. package/collection/components/layout-components/pn-marketweb-header/services/pn-marketweb-header.service.js.map +1 -0
  85. package/collection/components/layout-components/pn-marketweb-header/types/pn-marketweb-header.types.js +2 -0
  86. package/collection/components/layout-components/pn-marketweb-header/types/pn-marketweb-header.types.js.map +1 -0
  87. package/collection/components/layout-components/pn-marketweb-header/utils/header-i18n.js +37 -0
  88. package/collection/components/layout-components/pn-marketweb-header/utils/header-i18n.js.map +1 -0
  89. package/collection/components/layout-components/pn-marketweb-header/utils/header-language.js +46 -0
  90. package/collection/components/layout-components/pn-marketweb-header/utils/header-language.js.map +1 -0
  91. package/collection/components/layout-components/pn-marketweb-header/utils/header-menu.js +36 -0
  92. package/collection/components/layout-components/pn-marketweb-header/utils/header-menu.js.map +1 -0
  93. package/collection/components/layout-components/pn-marketweb-header/utils/header-theme.js +48 -0
  94. package/collection/components/layout-components/pn-marketweb-header/utils/header-theme.js.map +1 -0
  95. package/collection/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.js +101 -0
  96. package/collection/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.js.map +1 -0
  97. package/collection/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.storage.js +63 -0
  98. package/collection/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.storage.js.map +1 -0
  99. package/collection/components/layout-components/pn-marketweb-header/utils/header-url.js +91 -0
  100. package/collection/components/layout-components/pn-marketweb-header/utils/header-url.js.map +1 -0
  101. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-button.js +1 -1
  102. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-linklist.css +34 -12
  103. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-mypage-button.js +1 -1
  104. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-profileselection.css +36 -15
  105. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.css +27 -13
  106. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.js +29 -4
  107. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.js.map +1 -1
  108. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-types.js.map +1 -1
  109. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-unified-login.js +1 -1
  110. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.js +4 -4
  111. package/collection/components/media/pn-media-block/pn-media-block.js +1 -1
  112. package/collection/components/minor/pn-app-banner/pn-app-banner.js +1 -1
  113. package/collection/components/minor/pn-marketweb-icon/pn-marketweb-icon.js +1 -1
  114. package/collection/components/minor/pn-swan/pn-swan.js +1 -1
  115. package/collection/components/minor/pn-titletag/pn-titletag.js +1 -1
  116. package/collection/components/navigation/pn-language-selector/pn-language-selector-option.css +25 -12
  117. package/collection/components/navigation/pn-language-selector/pn-language-selector-option.js +1 -1
  118. package/collection/components/navigation/pn-language-selector/pn-language-selector.css +17 -5
  119. package/collection/components/navigation/pn-language-selector/pn-language-selector.js +22 -3
  120. package/collection/components/navigation/pn-language-selector/pn-language-selector.js.map +1 -1
  121. package/collection/components/navigation/pn-mainnav/pn-mainnav-level.css +37 -17
  122. package/collection/components/navigation/pn-mainnav/pn-mainnav-level.js +2 -2
  123. package/collection/components/navigation/pn-mainnav/pn-mainnav-link.css +81 -33
  124. package/collection/components/navigation/pn-mainnav/pn-mainnav-link.js +1 -1
  125. package/collection/components/navigation/pn-mainnav/pn-mainnav-list.css +12 -2
  126. package/collection/components/navigation/pn-mainnav/pn-mainnav-list.js +1 -1
  127. package/collection/components/navigation/pn-mainnav/pn-mainnav.css +35 -22
  128. package/collection/components/navigation/pn-mainnav/pn-mainnav.js +1 -1
  129. package/collection/components/navigation/pn-marketweb-header-toggle/pn-marketweb-header-toggle.css +80 -0
  130. package/collection/components/navigation/pn-marketweb-header-toggle/pn-marketweb-header-toggle.js +147 -0
  131. package/collection/components/navigation/pn-marketweb-header-toggle/pn-marketweb-header-toggle.js.map +1 -0
  132. package/collection/components/navigation/pn-sidenav/pn-sidenav-level.js +1 -1
  133. package/collection/components/navigation/pn-sidenav/pn-sidenav-link.js +1 -1
  134. package/collection/components/navigation/pn-sidenav/pn-sidenav-togglebutton.js +1 -1
  135. package/collection/components/navigation/pn-sidenav/pn-sidenav.js +1 -1
  136. package/collection/components/navigation/pn-site-footer/pn-site-footer-col.js +1 -1
  137. package/collection/components/navigation/pn-site-footer/pn-site-footer.js +1 -1
  138. package/collection/components/navigation/pn-site-selector/pn-site-selector-item.css +16 -12
  139. package/collection/components/navigation/pn-site-selector/pn-site-selector-item.js +1 -1
  140. package/collection/components/navigation/pn-site-selector/pn-site-selector.css +15 -0
  141. package/collection/components/navigation/pn-site-selector/pn-site-selector.js +22 -3
  142. package/collection/components/navigation/pn-site-selector/pn-site-selector.js.map +1 -1
  143. package/collection/components/profile/pn-customernumber-selector/pn-customernumber-selector-option.js +1 -1
  144. package/collection/components/profile/pn-customernumber-selector/pn-customernumber-selector.js +1 -1
  145. package/collection/components/profile/pn-profile-modal/pn-profile-modal-customernumber.js +1 -1
  146. package/collection/components/profile/pn-profile-modal/pn-profile-modal-profile.js +2 -2
  147. package/collection/components/profile/pn-profile-modal/pn-profile-modal-type.js +1 -1
  148. package/collection/components/profile/pn-profile-modal/pn-profile-modal.js +1 -1
  149. package/collection/components/profile/pn-profile-selector/pn-profile-selector-option.js +1 -1
  150. package/collection/components/profile/pn-profile-selector/pn-profile-selector.js +1 -1
  151. package/collection/components/utilities/pn-breakpoints/pn-breakpoints.js +1 -1
  152. package/collection/components/widgets/pn-chat/pn-chat-message/pn-chat-message.js +1 -1
  153. package/collection/components/widgets/pn-chat/pn-chat.js +2 -2
  154. package/collection/components/widgets/pn-find-price/pn-find-price-result.js +1 -1
  155. package/collection/components/widgets/pn-find-price/pn-find-price.js +2 -2
  156. package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price-result.js +1 -1
  157. package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price.js +1 -1
  158. package/collection/components/widgets/pn-hero-block-international/pn-hero-block-international.js +1 -1
  159. package/collection/components/widgets/pn-level-up/pn-level-up-modal/pn-level-up-modal.js +1 -1
  160. package/collection/components/widgets/pn-level-up/pn-level-up.js +2 -2
  161. package/collection/components/widgets/pn-link-list/pn-link-list.js +1 -1
  162. package/collection/components/widgets/pn-marketweb-carousel/pn-marketweb-carousel.js +1 -1
  163. package/collection/components/widgets/pn-marketweb-table/pn-marketweb-table.js +1 -1
  164. package/collection/components/widgets/pn-pex-pricefinder/pn-pex-pricefinder.js +1 -1
  165. package/collection/components/widgets/pn-product-card/pn-product-card.js +1 -1
  166. package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist-result.js +1 -1
  167. package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist.js +2 -2
  168. package/collection/components/widgets/pn-product-tile/pn-product-tile-info.js +1 -1
  169. package/collection/components/widgets/pn-product-tile/pn-product-tile.js +1 -1
  170. package/collection/components/widgets/pn-proxio-findprice/pn-proxio-findprice-result.js +1 -1
  171. package/collection/components/widgets/pn-proxio-findprice/pn-proxio-findprice.js +3 -3
  172. package/collection/components/widgets/pn-proxio-pricegroup/pn-proxio-pricegroup.js +1 -1
  173. package/collection/components/widgets/pn-proxio-productcard/pn-proxio-productcard-description.js +1 -1
  174. package/collection/components/widgets/pn-proxio-productcard/pn-proxio-productcard-information.js +1 -1
  175. package/collection/components/widgets/pn-proxio-productcard/pn-proxio-productcard.js +1 -1
  176. package/collection/components/widgets/pn-qr-code-generator/pn-qr-code-generator.js +1 -1
  177. package/collection/components/widgets/pn-usp-promoter/pn-usp-promoter.js +1 -1
  178. package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.constants.js +105 -0
  179. package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.constants.js.map +1 -0
  180. package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.service.js +166 -0
  181. package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.service.js.map +1 -0
  182. package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.types.js +2 -0
  183. package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.types.js.map +1 -0
  184. package/components/pn-app-banner.js +1 -1
  185. package/components/pn-breakpoints.js +1 -1
  186. package/components/pn-chat-message2.js +1 -1
  187. package/components/pn-chat.js +2 -2
  188. package/components/pn-customernumber-selector-option.js +1 -1
  189. package/components/pn-customernumber-selector.js +1 -1
  190. package/components/pn-find-price-result2.js +1 -1
  191. package/components/pn-find-price.js +2 -2
  192. package/components/pn-find-service-and-price-result2.js +1 -1
  193. package/components/pn-find-service-and-price.js +1 -1
  194. package/components/pn-hero-block-international.js +1 -1
  195. package/components/pn-language-selector-option2.js +2 -2
  196. package/components/pn-language-selector-option2.js.map +1 -1
  197. package/components/pn-language-selector2.js +4 -2
  198. package/components/pn-language-selector2.js.map +1 -1
  199. package/components/pn-level-up-modal2.js +1 -1
  200. package/components/pn-level-up.js +2 -2
  201. package/components/pn-link-list.js +1 -1
  202. package/components/pn-mainnav-level2.js +3 -3
  203. package/components/pn-mainnav-level2.js.map +1 -1
  204. package/components/pn-mainnav-link2.js +2 -2
  205. package/components/pn-mainnav-link2.js.map +1 -1
  206. package/components/pn-mainnav-list2.js +2 -2
  207. package/components/pn-mainnav-list2.js.map +1 -1
  208. package/components/pn-mainnav2.js +2 -2
  209. package/components/pn-mainnav2.js.map +1 -1
  210. package/components/pn-marketweb-carousel2.js +1 -1
  211. package/components/pn-marketweb-header-main-row.d.ts +11 -0
  212. package/components/pn-marketweb-header-main-row.js +8 -0
  213. package/components/pn-marketweb-header-main-row.js.map +1 -0
  214. package/components/pn-marketweb-header-main-row2.js +281 -0
  215. package/components/pn-marketweb-header-main-row2.js.map +1 -0
  216. package/components/pn-marketweb-header-shared.js +192 -0
  217. package/components/pn-marketweb-header-shared.js.map +1 -0
  218. package/components/pn-marketweb-header-skeleton-loader.d.ts +11 -0
  219. package/components/pn-marketweb-header-skeleton-loader.js +37 -0
  220. package/components/pn-marketweb-header-skeleton-loader.js.map +1 -0
  221. package/components/pn-marketweb-header-toggle.d.ts +11 -0
  222. package/components/pn-marketweb-header-toggle.js +8 -0
  223. package/components/pn-marketweb-header-toggle.js.map +1 -0
  224. package/components/pn-marketweb-header-toggle2.js +61 -0
  225. package/components/pn-marketweb-header-toggle2.js.map +1 -0
  226. package/components/pn-marketweb-header-top-row.d.ts +11 -0
  227. package/components/pn-marketweb-header-top-row.js +8 -0
  228. package/components/pn-marketweb-header-top-row.js.map +1 -0
  229. package/components/pn-marketweb-header-top-row2.js +238 -0
  230. package/components/pn-marketweb-header-top-row2.js.map +1 -0
  231. package/components/pn-marketweb-header.d.ts +11 -0
  232. package/components/pn-marketweb-header.js +1206 -0
  233. package/components/pn-marketweb-header.js.map +1 -0
  234. package/components/pn-marketweb-icon.js +1 -1
  235. package/components/pn-marketweb-siteheader-login-button2.js +1 -1
  236. package/components/pn-marketweb-siteheader-login-linklist2.js +1 -1
  237. package/components/pn-marketweb-siteheader-login-linklist2.js.map +1 -1
  238. package/components/pn-marketweb-siteheader-login-mypage-button.js +1 -1
  239. package/components/pn-marketweb-siteheader-login-profileselection2.js +1 -1
  240. package/components/pn-marketweb-siteheader-login-profileselection2.js.map +1 -1
  241. package/components/pn-marketweb-siteheader-login2.js +4 -2
  242. package/components/pn-marketweb-siteheader-login2.js.map +1 -1
  243. package/components/pn-marketweb-siteheader-unified-login2.js +1 -1
  244. package/components/pn-marketweb-siteheader.js +5 -197
  245. package/components/pn-marketweb-siteheader.js.map +1 -1
  246. package/components/pn-marketweb-table.js +1 -1
  247. package/components/pn-media-block.js +1 -1
  248. package/components/pn-pex-pricefinder.js +1 -1
  249. package/components/pn-product-card2.js +1 -1
  250. package/components/pn-product-pricelist-result.js +1 -1
  251. package/components/pn-product-pricelist.js +2 -2
  252. package/components/pn-product-tile-info2.js +1 -1
  253. package/components/pn-product-tile.js +1 -1
  254. package/components/pn-profile-modal-customernumber.js +1 -1
  255. package/components/pn-profile-modal-profile.js +2 -2
  256. package/components/pn-profile-modal-type.js +1 -1
  257. package/components/pn-profile-modal.js +1 -1
  258. package/components/pn-profile-selector-option.js +1 -1
  259. package/components/pn-profile-selector.js +1 -1
  260. package/components/pn-proxio-findprice-result2.js +2 -2
  261. package/components/pn-proxio-findprice.js +3 -3
  262. package/components/pn-proxio-pricegroup.js +2 -2
  263. package/components/pn-proxio-productcard-description2.js +1 -1
  264. package/components/pn-proxio-productcard-information2.js +1 -1
  265. package/components/pn-proxio-productcard2.js +1 -1
  266. package/components/pn-qr-code-generator2.js +1 -1
  267. package/components/pn-sidenav-level.js +1 -1
  268. package/components/pn-sidenav-link.js +1 -1
  269. package/components/pn-sidenav-togglebutton.js +1 -1
  270. package/components/pn-sidenav.js +1 -1
  271. package/components/pn-site-footer-col2.js +1 -1
  272. package/components/pn-site-footer2.js +1 -1
  273. package/components/pn-site-selector-item2.js +2 -2
  274. package/components/pn-site-selector-item2.js.map +1 -1
  275. package/components/pn-site-selector2.js +4 -2
  276. package/components/pn-site-selector2.js.map +1 -1
  277. package/components/pn-swan2.js +1 -1
  278. package/components/pn-titletag2.js +1 -1
  279. package/components/pn-usp-promoter.js +1 -1
  280. package/components/translations.js +189 -14
  281. package/components/translations.js.map +1 -1
  282. package/components/translations2.js +21 -0
  283. package/components/translations2.js.map +1 -0
  284. package/esm/header-theme-d09b64c7.js +234 -0
  285. package/esm/header-theme-d09b64c7.js.map +1 -0
  286. package/esm/index-c0a4d8bd.js +24 -16
  287. package/esm/loader.js +1 -1
  288. package/esm/pn-app-banner.entry.js +1 -1
  289. package/esm/pn-breakpoints.entry.js +1 -1
  290. package/esm/pn-chat-message_2.entry.js +2 -2
  291. package/esm/pn-chat.entry.js +2 -2
  292. package/esm/pn-customernumber-selector-option.entry.js +1 -1
  293. package/esm/pn-customernumber-selector.entry.js +1 -1
  294. package/esm/pn-find-price-result.entry.js +1 -1
  295. package/esm/pn-find-price.entry.js +2 -2
  296. package/esm/pn-find-service-and-price-result.entry.js +1 -1
  297. package/esm/pn-find-service-and-price.entry.js +1 -1
  298. package/esm/pn-hero-block-international.entry.js +1 -1
  299. package/esm/{pn-language-selector_9.entry.js → pn-language-selector_13.entry.js} +381 -22
  300. package/esm/pn-language-selector_13.entry.js.map +1 -0
  301. package/esm/pn-level-up-modal.entry.js +1 -1
  302. package/esm/pn-level-up.entry.js +2 -2
  303. package/esm/pn-link-list.entry.js +1 -1
  304. package/esm/pn-market-web-components.js +1 -1
  305. package/esm/pn-marketweb-header-main-row_2.entry.js +217 -0
  306. package/esm/pn-marketweb-header-main-row_2.entry.js.map +1 -0
  307. package/esm/pn-marketweb-header-skeleton-loader.entry.js +19 -0
  308. package/esm/pn-marketweb-header-skeleton-loader.entry.js.map +1 -0
  309. package/esm/pn-marketweb-header-toggle.entry.js +42 -0
  310. package/esm/pn-marketweb-header-toggle.entry.js.map +1 -0
  311. package/esm/pn-marketweb-header.entry.js +1039 -0
  312. package/esm/pn-marketweb-header.entry.js.map +1 -0
  313. package/esm/pn-marketweb-icon.entry.js +1 -1
  314. package/esm/{pn-marketweb-siteheader-login-linklist.entry.js → pn-marketweb-siteheader-login-button_2.entry.js} +44 -3
  315. package/esm/pn-marketweb-siteheader-login-button_2.entry.js.map +1 -0
  316. package/esm/pn-marketweb-siteheader-login-mypage-button.entry.js +1 -1
  317. package/esm/pn-marketweb-siteheader.entry.js +5 -197
  318. package/esm/pn-marketweb-siteheader.entry.js.map +1 -1
  319. package/esm/pn-marketweb-table.entry.js +1 -1
  320. package/esm/pn-media-block.entry.js +1 -1
  321. package/esm/pn-pex-pricefinder.entry.js +1 -1
  322. package/esm/pn-product-card_3.entry.js +1 -1
  323. package/esm/pn-product-pricelist-result.entry.js +1 -1
  324. package/esm/pn-product-pricelist.entry.js +2 -2
  325. package/esm/pn-product-tile-info_2.entry.js +1 -1
  326. package/esm/pn-product-tile.entry.js +1 -1
  327. package/esm/pn-profile-modal-customernumber.entry.js +1 -1
  328. package/esm/pn-profile-modal-profile.entry.js +2 -2
  329. package/esm/pn-profile-modal-type.entry.js +1 -1
  330. package/esm/pn-profile-modal.entry.js +1 -1
  331. package/esm/pn-profile-selector-option.entry.js +1 -1
  332. package/esm/pn-profile-selector.entry.js +1 -1
  333. package/esm/pn-proxio-findprice-result.entry.js +1 -1
  334. package/esm/pn-proxio-findprice.entry.js +3 -3
  335. package/esm/pn-proxio-pricegroup.entry.js +1 -1
  336. package/esm/pn-proxio-productcard_4.entry.js +3 -3
  337. package/esm/pn-qr-code-generator.entry.js +1 -1
  338. package/esm/pn-sidenav-level.entry.js +1 -1
  339. package/esm/pn-sidenav-link.entry.js +1 -1
  340. package/esm/pn-sidenav-togglebutton.entry.js +1 -1
  341. package/esm/pn-sidenav.entry.js +1 -1
  342. package/esm/pn-site-footer_3.entry.js +3 -3
  343. package/esm/pn-titletag.entry.js +1 -1
  344. package/esm/pn-usp-promoter.entry.js +1 -1
  345. package/esm/translations-d2f5804e.js +196 -0
  346. package/esm/translations-d2f5804e.js.map +1 -0
  347. package/package.json +13 -6
  348. package/pn-market-web-components/{p-4a164ef8.entry.js → p-03728b0b.entry.js} +2 -2
  349. package/pn-market-web-components/p-04f51418.js +2 -0
  350. package/pn-market-web-components/p-04f51418.js.map +1 -0
  351. package/pn-market-web-components/{p-e43a36e0.entry.js → p-067c1c2f.entry.js} +2 -2
  352. package/pn-market-web-components/{p-2616cdc1.entry.js → p-191c8cfc.entry.js} +2 -2
  353. package/pn-market-web-components/{p-ca003c1f.entry.js → p-1a91c313.entry.js} +2 -2
  354. package/pn-market-web-components/{p-ab1e3dc2.entry.js → p-1f8304be.entry.js} +2 -2
  355. package/pn-market-web-components/{p-a3f601cb.entry.js → p-24ffac0a.entry.js} +2 -2
  356. package/pn-market-web-components/p-3239c36b.entry.js +2 -0
  357. package/pn-market-web-components/p-3239c36b.entry.js.map +1 -0
  358. package/pn-market-web-components/{p-12cafd55.entry.js → p-3aa74418.entry.js} +2 -2
  359. package/pn-market-web-components/p-3d27faee.entry.js +2 -0
  360. package/pn-market-web-components/{p-9d0ca27b.entry.js.map → p-3d27faee.entry.js.map} +1 -1
  361. package/pn-market-web-components/p-3e25f431.entry.js +2 -0
  362. package/pn-market-web-components/p-3e25f431.entry.js.map +1 -0
  363. package/pn-market-web-components/{p-64f6691d.entry.js → p-42da7c5f.entry.js} +2 -2
  364. package/pn-market-web-components/{p-f0d423d0.entry.js → p-43748ca2.entry.js} +2 -2
  365. package/pn-market-web-components/{p-1c644b91.entry.js → p-466958a8.entry.js} +2 -2
  366. package/pn-market-web-components/{p-150da889.entry.js → p-4ab53d5d.entry.js} +2 -2
  367. package/pn-market-web-components/{p-118fe47d.entry.js → p-4d595345.entry.js} +2 -2
  368. package/pn-market-web-components/{p-0f6f715b.entry.js → p-4dac1980.entry.js} +2 -2
  369. package/pn-market-web-components/{p-a13f1f73.entry.js → p-4fcce83d.entry.js} +2 -2
  370. package/pn-market-web-components/{p-89fbca3b.entry.js → p-5a51d0b0.entry.js} +2 -2
  371. package/pn-market-web-components/{p-f4d2d0d3.entry.js → p-61346425.entry.js} +2 -2
  372. package/pn-market-web-components/{p-6e693269.entry.js → p-6b557670.entry.js} +2 -2
  373. package/pn-market-web-components/{p-e6d6a752.entry.js → p-70a71854.entry.js} +2 -2
  374. package/pn-market-web-components/p-75311d67.js +2 -0
  375. package/pn-market-web-components/p-75311d67.js.map +1 -0
  376. package/pn-market-web-components/p-756d8d95.entry.js +2 -0
  377. package/pn-market-web-components/p-756d8d95.entry.js.map +1 -0
  378. package/pn-market-web-components/{p-c0315c45.entry.js → p-76fb0c21.entry.js} +2 -2
  379. package/pn-market-web-components/{p-b2b2bae0.entry.js → p-81210644.entry.js} +2 -2
  380. package/pn-market-web-components/p-81e4d75b.entry.js +2 -0
  381. package/pn-market-web-components/p-81e4d75b.entry.js.map +1 -0
  382. package/pn-market-web-components/{p-d0f27361.entry.js → p-8382794b.entry.js} +2 -2
  383. package/pn-market-web-components/{p-8f25176b.entry.js → p-8519e39e.entry.js} +2 -2
  384. package/pn-market-web-components/p-8c26c1f2.entry.js +2 -0
  385. package/pn-market-web-components/p-8c26c1f2.entry.js.map +1 -0
  386. package/pn-market-web-components/{p-461c8792.entry.js → p-92b6477c.entry.js} +2 -2
  387. package/pn-market-web-components/{p-0d4d9d90.entry.js → p-9eab8192.entry.js} +2 -2
  388. package/pn-market-web-components/{p-40e632cc.entry.js → p-a3beee11.entry.js} +2 -2
  389. package/pn-market-web-components/{p-01fbf1ce.entry.js → p-a6935dc2.entry.js} +2 -2
  390. package/pn-market-web-components/{p-af646091.entry.js → p-a6dd3e4f.entry.js} +2 -2
  391. package/pn-market-web-components/{p-6d77e747.entry.js → p-af89c95a.entry.js} +2 -2
  392. package/pn-market-web-components/p-b318ff19.entry.js +2 -0
  393. package/pn-market-web-components/{p-0700cb4c.entry.js.map → p-b318ff19.entry.js.map} +1 -1
  394. package/pn-market-web-components/{p-c89f3d6b.entry.js → p-ba14b0ef.entry.js} +2 -2
  395. package/pn-market-web-components/{p-c7965104.entry.js → p-ba680948.entry.js} +2 -2
  396. package/pn-market-web-components/{p-11c6e458.entry.js → p-ba75bfdb.entry.js} +2 -2
  397. package/pn-market-web-components/{p-4149e715.entry.js → p-c186ec41.entry.js} +2 -2
  398. package/pn-market-web-components/{p-66c0c8dc.entry.js → p-c38707f9.entry.js} +2 -2
  399. package/pn-market-web-components/{p-671a8129.entry.js → p-c89cdd5a.entry.js} +2 -2
  400. package/pn-market-web-components/{p-4d848e18.entry.js → p-e8cd1608.entry.js} +2 -2
  401. package/pn-market-web-components/{p-4517a3d4.entry.js → p-ef090656.entry.js} +2 -2
  402. package/pn-market-web-components/p-f23ed5d2.entry.js +2 -0
  403. package/pn-market-web-components/p-f23ed5d2.entry.js.map +1 -0
  404. package/pn-market-web-components/{p-bd8ec517.entry.js → p-f3b4c13d.entry.js} +2 -2
  405. package/pn-market-web-components/{p-ff38b9a5.entry.js → p-f710445f.entry.js} +2 -2
  406. package/pn-market-web-components/{p-2e585ed5.entry.js → p-fcefe4a4.entry.js} +2 -2
  407. package/pn-market-web-components/p-fded22b7.entry.js +2 -0
  408. package/pn-market-web-components/p-fded22b7.entry.js.map +1 -0
  409. package/pn-market-web-components/{p-32bd2ff8.entry.js → p-ff6118f8.entry.js} +2 -2
  410. package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
  411. package/pn-market-web-components/pn-market-web-components.esm.js.map +1 -1
  412. package/types/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-main-row.d.ts +40 -0
  413. package/types/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-skeleton-loader.d.ts +3 -0
  414. package/types/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-top-row.d.ts +30 -0
  415. package/types/components/layout-components/pn-marketweb-header/components/shared/pn-marketweb-header-shared.d.ts +48 -0
  416. package/types/components/layout-components/pn-marketweb-header/mapper/pn-marketweb-header.mapper.d.ts +34 -0
  417. package/types/components/layout-components/pn-marketweb-header/pn-marketweb-header.d.ts +121 -0
  418. package/types/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.d.ts +99 -0
  419. package/types/components/layout-components/pn-marketweb-header/services/pn-marketweb-header.service.d.ts +108 -0
  420. package/types/components/layout-components/pn-marketweb-header/types/pn-marketweb-header.types.d.ts +103 -0
  421. package/types/components/layout-components/pn-marketweb-header/utils/header-i18n.d.ts +16 -0
  422. package/types/components/layout-components/pn-marketweb-header/utils/header-language.d.ts +20 -0
  423. package/types/components/layout-components/pn-marketweb-header/utils/header-menu.d.ts +16 -0
  424. package/types/components/layout-components/pn-marketweb-header/utils/header-theme.d.ts +6 -0
  425. package/types/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.d.ts +49 -0
  426. package/types/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.storage.d.ts +25 -0
  427. package/types/components/layout-components/pn-marketweb-header/utils/header-url.d.ts +41 -0
  428. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.d.ts +2 -0
  429. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-types.d.ts +1 -0
  430. package/types/components/navigation/pn-language-selector/pn-language-selector.d.ts +1 -0
  431. package/types/components/navigation/pn-marketweb-header-toggle/pn-marketweb-header-toggle.d.ts +25 -0
  432. package/types/components/navigation/pn-site-selector/pn-site-selector.d.ts +1 -0
  433. package/types/components/widgets/pn-proxio-pricegroup/pn-proxio-pricegroup.d.ts +1 -1
  434. package/types/components.d.ts +532 -2
  435. package/types/services/pn-refined-marketweb-context/pn-refined-marketweb-context.constants.d.ts +7 -0
  436. package/types/services/pn-refined-marketweb-context/pn-refined-marketweb-context.service.d.ts +24 -0
  437. package/types/services/pn-refined-marketweb-context/pn-refined-marketweb-context.types.d.ts +16 -0
  438. package/umd/pn-marketweb-init.js +1 -1
  439. package/umd/pn-marketweb-salesforce.js +1 -1
  440. package/vscode-data.json +421 -0
  441. package/cjs/pn-language-selector_9.cjs.entry.js +0 -1156
  442. package/cjs/pn-language-selector_9.cjs.entry.js.map +0 -1
  443. package/cjs/pn-mainnav-link.cjs.entry.js +0 -45
  444. package/cjs/pn-mainnav-link.cjs.entry.js.map +0 -1
  445. package/cjs/pn-mainnav-store-13aaa243.js +0 -22
  446. package/cjs/pn-mainnav-store-13aaa243.js.map +0 -1
  447. package/cjs/pn-marketweb-siteheader-login-button_4.cjs.entry.js +0 -366
  448. package/cjs/pn-marketweb-siteheader-login-button_4.cjs.entry.js.map +0 -1
  449. package/cjs/pn-marketweb-siteheader-login-linklist.cjs.entry.js.map +0 -1
  450. package/esm/pn-language-selector_9.entry.js.map +0 -1
  451. package/esm/pn-mainnav-link.entry.js +0 -41
  452. package/esm/pn-mainnav-link.entry.js.map +0 -1
  453. package/esm/pn-mainnav-store-c98d831e.js +0 -19
  454. package/esm/pn-mainnav-store-c98d831e.js.map +0 -1
  455. package/esm/pn-marketweb-siteheader-login-button_4.entry.js +0 -359
  456. package/esm/pn-marketweb-siteheader-login-button_4.entry.js.map +0 -1
  457. package/esm/pn-marketweb-siteheader-login-linklist.entry.js.map +0 -1
  458. package/pn-market-web-components/p-022780ab.entry.js +0 -2
  459. package/pn-market-web-components/p-022780ab.entry.js.map +0 -1
  460. package/pn-market-web-components/p-0700cb4c.entry.js +0 -2
  461. package/pn-market-web-components/p-4bc6d49f.entry.js +0 -2
  462. package/pn-market-web-components/p-4bc6d49f.entry.js.map +0 -1
  463. package/pn-market-web-components/p-4c8bda8f.entry.js +0 -2
  464. package/pn-market-web-components/p-4c8bda8f.entry.js.map +0 -1
  465. package/pn-market-web-components/p-5090bb1d.entry.js +0 -2
  466. package/pn-market-web-components/p-5090bb1d.entry.js.map +0 -1
  467. package/pn-market-web-components/p-9d0ca27b.entry.js +0 -2
  468. package/pn-market-web-components/p-a30de538.entry.js +0 -2
  469. package/pn-market-web-components/p-a30de538.entry.js.map +0 -1
  470. package/pn-market-web-components/p-e3b2486a.js +0 -2
  471. package/pn-market-web-components/p-e3b2486a.js.map +0 -1
  472. /package/pn-market-web-components/{p-4a164ef8.entry.js.map → p-03728b0b.entry.js.map} +0 -0
  473. /package/pn-market-web-components/{p-e43a36e0.entry.js.map → p-067c1c2f.entry.js.map} +0 -0
  474. /package/pn-market-web-components/{p-2616cdc1.entry.js.map → p-191c8cfc.entry.js.map} +0 -0
  475. /package/pn-market-web-components/{p-ca003c1f.entry.js.map → p-1a91c313.entry.js.map} +0 -0
  476. /package/pn-market-web-components/{p-ab1e3dc2.entry.js.map → p-1f8304be.entry.js.map} +0 -0
  477. /package/pn-market-web-components/{p-a3f601cb.entry.js.map → p-24ffac0a.entry.js.map} +0 -0
  478. /package/pn-market-web-components/{p-12cafd55.entry.js.map → p-3aa74418.entry.js.map} +0 -0
  479. /package/pn-market-web-components/{p-64f6691d.entry.js.map → p-42da7c5f.entry.js.map} +0 -0
  480. /package/pn-market-web-components/{p-f0d423d0.entry.js.map → p-43748ca2.entry.js.map} +0 -0
  481. /package/pn-market-web-components/{p-1c644b91.entry.js.map → p-466958a8.entry.js.map} +0 -0
  482. /package/pn-market-web-components/{p-150da889.entry.js.map → p-4ab53d5d.entry.js.map} +0 -0
  483. /package/pn-market-web-components/{p-118fe47d.entry.js.map → p-4d595345.entry.js.map} +0 -0
  484. /package/pn-market-web-components/{p-0f6f715b.entry.js.map → p-4dac1980.entry.js.map} +0 -0
  485. /package/pn-market-web-components/{p-a13f1f73.entry.js.map → p-4fcce83d.entry.js.map} +0 -0
  486. /package/pn-market-web-components/{p-89fbca3b.entry.js.map → p-5a51d0b0.entry.js.map} +0 -0
  487. /package/pn-market-web-components/{p-f4d2d0d3.entry.js.map → p-61346425.entry.js.map} +0 -0
  488. /package/pn-market-web-components/{p-6e693269.entry.js.map → p-6b557670.entry.js.map} +0 -0
  489. /package/pn-market-web-components/{p-e6d6a752.entry.js.map → p-70a71854.entry.js.map} +0 -0
  490. /package/pn-market-web-components/{p-c0315c45.entry.js.map → p-76fb0c21.entry.js.map} +0 -0
  491. /package/pn-market-web-components/{p-b2b2bae0.entry.js.map → p-81210644.entry.js.map} +0 -0
  492. /package/pn-market-web-components/{p-d0f27361.entry.js.map → p-8382794b.entry.js.map} +0 -0
  493. /package/pn-market-web-components/{p-8f25176b.entry.js.map → p-8519e39e.entry.js.map} +0 -0
  494. /package/pn-market-web-components/{p-461c8792.entry.js.map → p-92b6477c.entry.js.map} +0 -0
  495. /package/pn-market-web-components/{p-0d4d9d90.entry.js.map → p-9eab8192.entry.js.map} +0 -0
  496. /package/pn-market-web-components/{p-40e632cc.entry.js.map → p-a3beee11.entry.js.map} +0 -0
  497. /package/pn-market-web-components/{p-01fbf1ce.entry.js.map → p-a6935dc2.entry.js.map} +0 -0
  498. /package/pn-market-web-components/{p-af646091.entry.js.map → p-a6dd3e4f.entry.js.map} +0 -0
  499. /package/pn-market-web-components/{p-6d77e747.entry.js.map → p-af89c95a.entry.js.map} +0 -0
  500. /package/pn-market-web-components/{p-c89f3d6b.entry.js.map → p-ba14b0ef.entry.js.map} +0 -0
  501. /package/pn-market-web-components/{p-c7965104.entry.js.map → p-ba680948.entry.js.map} +0 -0
  502. /package/pn-market-web-components/{p-11c6e458.entry.js.map → p-ba75bfdb.entry.js.map} +0 -0
  503. /package/pn-market-web-components/{p-4149e715.entry.js.map → p-c186ec41.entry.js.map} +0 -0
  504. /package/pn-market-web-components/{p-66c0c8dc.entry.js.map → p-c38707f9.entry.js.map} +0 -0
  505. /package/pn-market-web-components/{p-671a8129.entry.js.map → p-c89cdd5a.entry.js.map} +0 -0
  506. /package/pn-market-web-components/{p-4d848e18.entry.js.map → p-e8cd1608.entry.js.map} +0 -0
  507. /package/pn-market-web-components/{p-4517a3d4.entry.js.map → p-ef090656.entry.js.map} +0 -0
  508. /package/pn-market-web-components/{p-bd8ec517.entry.js.map → p-f3b4c13d.entry.js.map} +0 -0
  509. /package/pn-market-web-components/{p-ff38b9a5.entry.js.map → p-f710445f.entry.js.map} +0 -0
  510. /package/pn-market-web-components/{p-2e585ed5.entry.js.map → p-fcefe4a4.entry.js.map} +0 -0
  511. /package/pn-market-web-components/{p-32bd2ff8.entry.js.map → p-ff6118f8.entry.js.map} +0 -0
@@ -0,0 +1,1206 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host, Fragment } from '@stencil/core/internal/client';
2
+ import { F as FetchHelper } from './FetchHelper.js';
3
+ import { s as state, d as defineCustomElement$8 } from './pn-marketweb-siteheader-login-linklist2.js';
4
+ import { e as extractToggleableMenuStructure, g as getLanguageOptions, b as buildMenuItemsForMode, a as getToggleRootForMenuItems, c as getVisibleMenuGroupsForMode } from './pn-marketweb-header-shared.js';
5
+ import { p as prependHomeMenuItem, d as defineCustomElement$d } from './pn-marketweb-header-main-row2.js';
6
+ import { t as translations } from './translations.js';
7
+ import { r as resolveHeaderMenuThemes, d as defineCustomElement$b } from './pn-marketweb-header-top-row2.js';
8
+ import { d as defineCustomElement$j } from './pn-language-selector2.js';
9
+ import { d as defineCustomElement$i } from './pn-language-selector-option2.js';
10
+ import { d as defineCustomElement$h } from './pn-mainnav2.js';
11
+ import { d as defineCustomElement$g } from './pn-mainnav-level2.js';
12
+ import { d as defineCustomElement$f } from './pn-mainnav-link2.js';
13
+ import { d as defineCustomElement$e } from './pn-mainnav-list2.js';
14
+ import { d as defineCustomElement$c } from './pn-marketweb-header-toggle2.js';
15
+ import { d as defineCustomElement$a } from './pn-marketweb-siteheader-login2.js';
16
+ import { d as defineCustomElement$9 } from './pn-marketweb-siteheader-login-button2.js';
17
+ import { d as defineCustomElement$7 } from './pn-marketweb-siteheader-login-links2.js';
18
+ import { d as defineCustomElement$6 } from './pn-marketweb-siteheader-login-profileselection2.js';
19
+ import { d as defineCustomElement$5 } from './pn-marketweb-siteheader-search2.js';
20
+ import { d as defineCustomElement$4 } from './pn-marketweb-siteheader-unified-login2.js';
21
+ import { d as defineCustomElement$3 } from './pn-site-selector2.js';
22
+ import { d as defineCustomElement$2 } from './pn-site-selector-item2.js';
23
+
24
+ const ALLOWED_LANGUAGES = [
25
+ 'sv',
26
+ 'da',
27
+ 'fi',
28
+ 'no',
29
+ 'en',
30
+ 'de',
31
+ 'zh',
32
+ 'fr',
33
+ 'es',
34
+ 'it',
35
+ 'nl',
36
+ ];
37
+ const ALLOWED_MARKETS = [
38
+ 'se',
39
+ 'dk',
40
+ 'fi',
41
+ 'no',
42
+ 'com',
43
+ 'de',
44
+ 'tpl',
45
+ 'group',
46
+ ];
47
+ const WWW_MARKETS = [
48
+ 'se',
49
+ 'dk',
50
+ 'fi',
51
+ 'no',
52
+ 'de',
53
+ 'com',
54
+ ];
55
+ const DEVELOPMENT_DOMAINS = [
56
+ 'localhost',
57
+ '.local',
58
+ 'local.',
59
+ '.dev',
60
+ 'dev.',
61
+ ];
62
+ const MARKETS = {
63
+ se: {
64
+ fallbackLanguage: 'sv',
65
+ integration: 'se-inte.postnord.com',
66
+ preproduction: 'se-prep.postnord.com',
67
+ production: 'se-prod.postnord.com',
68
+ live: 'www.postnord.se',
69
+ },
70
+ dk: {
71
+ fallbackLanguage: 'da',
72
+ integration: 'dk-inte.postnord.com',
73
+ preproduction: 'dk-prep.postnord.com',
74
+ production: 'dk-prod.postnord.com',
75
+ live: 'www.postnord.dk',
76
+ },
77
+ fi: {
78
+ fallbackLanguage: 'fi',
79
+ integration: 'fi-inte.postnord.com',
80
+ preproduction: 'fi-prep.postnord.com',
81
+ production: 'fi-prod.postnord.com',
82
+ live: 'www.postnord.fi',
83
+ },
84
+ no: {
85
+ fallbackLanguage: 'no',
86
+ integration: 'no-inte.postnord.com',
87
+ preproduction: 'no-prep.postnord.com',
88
+ production: 'no-prod.postnord.com',
89
+ live: 'www.postnord.no',
90
+ },
91
+ com: {
92
+ fallbackLanguage: 'en',
93
+ integration: 'com-inte.postnord.com',
94
+ preproduction: 'com-prep.postnord.com',
95
+ production: 'com-prod.postnord.com',
96
+ live: 'www.postnord.com',
97
+ },
98
+ de: {
99
+ fallbackLanguage: 'en',
100
+ integration: 'de-inte.postnord.com',
101
+ preproduction: 'de-prep.postnord.com',
102
+ production: 'de-prod.postnord.com',
103
+ live: 'www.postnord.de',
104
+ },
105
+ tpl: {
106
+ fallbackLanguage: 'sv',
107
+ integration: 'tpl-inte.postnord.com',
108
+ preproduction: 'tpl-prep.postnord.com',
109
+ production: 'tpl-prod.postnord.com',
110
+ live: 'www.tpl.postnord.com',
111
+ },
112
+ group: {
113
+ fallbackLanguage: 'en',
114
+ integration: 'group-inte.postnord.com',
115
+ preproduction: 'group-prep.postnord.com',
116
+ production: 'group-prod.postnord.com',
117
+ live: 'group.postnord.com',
118
+ },
119
+ };
120
+ const ENVIRONMENT_ALIASES = {
121
+ integration: 'integration',
122
+ inte: 'integration',
123
+ preproduction: 'preproduction',
124
+ prep: 'preproduction',
125
+ production: 'production',
126
+ prod: 'production',
127
+ };
128
+
129
+ class RefinedMarketWebContextService {
130
+ href;
131
+ doc;
132
+ constructor(options) {
133
+ this.href = options?.href ?? window.location.href;
134
+ this.doc = options?.doc ?? document;
135
+ }
136
+ resolve() {
137
+ const url = new URL(this.href);
138
+ const market = this.resolveMarket(url);
139
+ const environment = this.resolveEnvironment(url);
140
+ const language = this.resolveLanguage(market);
141
+ return {
142
+ market,
143
+ environment,
144
+ language,
145
+ };
146
+ }
147
+ getMarket() {
148
+ return this.resolve().market;
149
+ }
150
+ getEnvironmentName() {
151
+ return this.resolve().environment;
152
+ }
153
+ getLanguage() {
154
+ return this.resolve().language;
155
+ }
156
+ isDevEnvironment() {
157
+ const hostname = new URL(this.href).hostname.toLowerCase();
158
+ return DEVELOPMENT_DOMAINS.some(fragment => hostname.includes(fragment));
159
+ }
160
+ getEndpoint(environment, market) {
161
+ if (environment === 'localhost') {
162
+ return '';
163
+ }
164
+ const currentHostname = new URL(this.href).hostname.toLowerCase();
165
+ const config = MARKETS[market];
166
+ if (environment === 'production' && currentHostname === config.live.toLowerCase()) {
167
+ return `https://${config.live}`;
168
+ }
169
+ if (environment !== 'production' && currentHostname === config[environment].toLowerCase()) {
170
+ return `https://${config[environment]}`;
171
+ }
172
+ if (environment === 'production') {
173
+ if (WWW_MARKETS.includes(market)) {
174
+ return `https://${config.live}`;
175
+ }
176
+ if (market === 'tpl') {
177
+ return 'https://www.tpl.postnord.com';
178
+ }
179
+ return `https://${config.live}`;
180
+ }
181
+ return `https://${config[environment]}`;
182
+ }
183
+ resolveEnvironment(url) {
184
+ const hostname = url.hostname.toLowerCase();
185
+ const matchedAlias = Object.keys(ENVIRONMENT_ALIASES).find(alias => hostname.includes(`-${alias}`));
186
+ if (matchedAlias) {
187
+ return ENVIRONMENT_ALIASES[matchedAlias];
188
+ }
189
+ const isKnownLiveHost = Object.values(MARKETS).some(config => config.live.toLowerCase() === hostname);
190
+ if (isKnownLiveHost || hostname.includes('www.')) {
191
+ return 'production';
192
+ }
193
+ return 'integration';
194
+ }
195
+ resolveMarket(url) {
196
+ const hostname = url.hostname.toLowerCase();
197
+ const fromLiveDomain = this.resolveMarketFromLiveDomain(hostname);
198
+ if (fromLiveDomain)
199
+ return fromLiveDomain;
200
+ const fromEnvironmentHost = this.resolveMarketFromEnvironmentHost(hostname);
201
+ if (fromEnvironmentHost)
202
+ return fromEnvironmentHost;
203
+ const fromPostnordSubdomain = this.resolveMarketFromPostnordSubdomain(hostname);
204
+ if (fromPostnordSubdomain)
205
+ return fromPostnordSubdomain;
206
+ if (this.isDevEnvironment()) {
207
+ const fromDevUrl = this.resolveMarketFromDevelopmentUrl(url);
208
+ if (fromDevUrl)
209
+ return fromDevUrl;
210
+ }
211
+ return 'se';
212
+ }
213
+ resolveLanguage(market) {
214
+ const candidates = [
215
+ this.doc?.documentElement?.getAttribute('lang'),
216
+ this.doc?.querySelector('meta[http-equiv="content-language"]')?.getAttribute('content'),
217
+ this.doc?.querySelector('meta[property="og:locale"]')?.getAttribute('content'),
218
+ this.doc?.querySelector('[lang]')?.getAttribute('lang'),
219
+ ];
220
+ for (const candidate of candidates) {
221
+ const normalized = this.normalizeLanguage(candidate);
222
+ if (normalized) {
223
+ return normalized;
224
+ }
225
+ }
226
+ return MARKETS[market].fallbackLanguage;
227
+ }
228
+ normalizeLanguage(value) {
229
+ if (!value) {
230
+ return undefined;
231
+ }
232
+ const normalized = value.trim().toLowerCase().split(/[-_]/)[0];
233
+ return ALLOWED_LANGUAGES.includes(normalized)
234
+ ? normalized
235
+ : undefined;
236
+ }
237
+ resolveMarketFromLiveDomain(hostname) {
238
+ const matched = Object.entries(MARKETS).find(([, config]) => config.live.toLowerCase() === hostname);
239
+ return matched?.[0];
240
+ }
241
+ resolveMarketFromEnvironmentHost(hostname) {
242
+ const matched = Object.entries(MARKETS).find(([, config]) => [config.integration, config.preproduction, config.production].some(envHost => envHost.toLowerCase() === hostname));
243
+ return matched?.[0];
244
+ }
245
+ resolveMarketFromPostnordSubdomain(hostname) {
246
+ if (hostname.includes('www')) {
247
+ return undefined;
248
+ }
249
+ if (!hostname.includes('.postnord.')) {
250
+ return undefined;
251
+ }
252
+ const postnordIndex = hostname.indexOf('.postnord.');
253
+ const beforePostnord = hostname.substring(0, postnordIndex);
254
+ const parts = beforePostnord.split('.').filter(Boolean);
255
+ if (parts.length === 0) {
256
+ return undefined;
257
+ }
258
+ const closestSubdomain = parts[parts.length - 1];
259
+ return this.isMarketName(closestSubdomain) ? closestSubdomain : undefined;
260
+ }
261
+ resolveMarketFromDevelopmentUrl(url) {
262
+ const target = `${url.hostname}${url.pathname}`.toLowerCase();
263
+ const matchedMarket = ALLOWED_MARKETS.find(market => {
264
+ const patterns = [
265
+ `/${market}/`,
266
+ `/${market}`,
267
+ `.${market}.`,
268
+ `.${market}/`,
269
+ `${market}.`,
270
+ ];
271
+ return patterns.some(pattern => target.includes(pattern));
272
+ });
273
+ if (matchedMarket) {
274
+ return matchedMarket;
275
+ }
276
+ const matchedByFallbackLanguage = Object.entries(MARKETS).find(([, config]) => {
277
+ const language = config.fallbackLanguage.toLowerCase();
278
+ const patterns = [
279
+ `/${language}/`,
280
+ `/${language}`,
281
+ `.${language}.`,
282
+ `.${language}/`,
283
+ `${language}.`,
284
+ ];
285
+ return patterns.some(pattern => target.includes(pattern));
286
+ });
287
+ return matchedByFallbackLanguage?.[0];
288
+ }
289
+ isMarketName(value) {
290
+ return ALLOWED_MARKETS.includes(value);
291
+ }
292
+ }
293
+
294
+ /**
295
+ * Removes duplicated language segments from generated URLs.
296
+ *
297
+ * Example:
298
+ * /sv/sv/page -> /sv/page
299
+ *
300
+ * This protects against incorrectly concatenated site-domain-based URLs.
301
+ */
302
+ function removeDoubleLanguage(url, language) {
303
+ if (!language) {
304
+ return url;
305
+ }
306
+ const languageSegment = language.toLowerCase() + '/';
307
+ const doubleLanguageSegment = '/' + languageSegment + languageSegment;
308
+ if (url.includes(doubleLanguageSegment)) {
309
+ return url.replace(doubleLanguageSegment, '/' + languageSegment);
310
+ }
311
+ return url;
312
+ }
313
+ /**
314
+ * Resolves a menu/login href to an absolute site-relative URL when needed.
315
+ *
316
+ * What it does:
317
+ * - Leaves fully-qualified http/https URLs unchanged
318
+ * - Prefixes relative URLs with the current site definition domain
319
+ * - Cleans up accidental double language segments
320
+ */
321
+ function adjustHref(href, siteDefinition, language) {
322
+ if (!href) {
323
+ return href;
324
+ }
325
+ if (href.indexOf('http') === 0) {
326
+ return href;
327
+ }
328
+ const siteUrl = siteDefinition?.url ?? '';
329
+ const domainUrl = siteUrl.lastIndexOf('/') === siteUrl.length - 1
330
+ ? siteUrl.substring(0, siteUrl.length - 1)
331
+ : siteUrl;
332
+ return removeDoubleLanguage(domainUrl + href, language);
333
+ }
334
+ /**
335
+ * Recursively adjusts a menu item and all child menu items so that
336
+ * relative URLs become site-domain-aware absolute URLs.
337
+ *
338
+ * This returns a new object rather than mutating the original API item.
339
+ */
340
+ function adjustMenuItemUrls(item, siteDefinition, language) {
341
+ return {
342
+ ...item,
343
+ href: adjustHref(item.href, siteDefinition, language),
344
+ children: (item.children ?? []).map(child => adjustMenuItemUrls(child, siteDefinition, language)),
345
+ };
346
+ }
347
+ /**
348
+ * Adjusts login dialog links so that relative URLs are resolved against
349
+ * the active site domain.
350
+ *
351
+ * This is used when siteDomainInUrls is enabled.
352
+ */
353
+ function adjustLoginDialogUrls(loginDialog, siteDefinition, language) {
354
+ if (!loginDialog) {
355
+ return null;
356
+ }
357
+ return {
358
+ ...loginDialog,
359
+ loggedInLinks: (loginDialog.loggedInLinks ?? []).map(item => ({
360
+ ...item,
361
+ href: adjustHref(item.href, siteDefinition, language),
362
+ })),
363
+ loginMenuLinks: (loginDialog.loginMenuLinks ?? []).map(item => ({
364
+ ...item,
365
+ href: adjustHref(item.href, siteDefinition, language),
366
+ })),
367
+ };
368
+ }
369
+ /**
370
+ * Navigates to the provided href when available.
371
+ */
372
+ function navigateToHref(href) {
373
+ if (!href) {
374
+ return;
375
+ }
376
+ window.location.href = href;
377
+ }
378
+ /**
379
+ * Navigates to a menu item's href when available.
380
+ */
381
+ function navigateToMenuItem(item) {
382
+ navigateToHref(item?.href);
383
+ }
384
+
385
+ /**
386
+ * Maps backend header data into the internal renderable view model.
387
+ *
388
+ * This mapper is the normalization boundary between the backend header payload
389
+ * and the UI-facing header view model.
390
+ *
391
+ * Top-level menu interpretation:
392
+ * - all items except the last = switchable root menus
393
+ * - last item = shared/common root
394
+ *
395
+ * These semantics are inferred by position, not by stable backend identifiers.
396
+ *
397
+ * Responsibilities
398
+ * ----------------
399
+ * - normalize top-level backend payload sections
400
+ * - optionally adjust relative URLs against the site domain
401
+ * - detect whether the backend menu supports menu switching
402
+ * - preserve the raw normalized menu structure for the wrapper component
403
+ * - prepare a flat `menuItems` list for simpler rendering paths
404
+ *
405
+ * Important
406
+ * ---------
407
+ * - The switchable root items themselves are not intended to be rendered as
408
+ * visible main navigation entries
409
+ * - Visible navigation is derived from:
410
+ * - active root children
411
+ * - plus shared/common root children
412
+ * - If only a shared/common root exists, its children are rendered flat
413
+ * - The wrapper component may choose either:
414
+ * - `menuItems` for flat rendering
415
+ * - or `rawMenuItems` + menu helpers for grouped rendering
416
+ */
417
+ function mapHeaderDataToViewModel(data, options) {
418
+ if (!data || typeof data !== 'object') {
419
+ return {
420
+ siteDefinition: null,
421
+ menuItems: [],
422
+ search: null,
423
+ siteSelector: null,
424
+ languageSelector: null,
425
+ languageOptions: [],
426
+ loginDialog: null,
427
+ homePageLink: '/',
428
+ hasMenuSwitching: false,
429
+ menuModeOptions: [],
430
+ defaultMenuMode: 0,
431
+ rawMenuItems: [],
432
+ };
433
+ }
434
+ const siteDefinition = data.sitedefinition ?? null;
435
+ /**
436
+ * Keep a normalized copy of the backend menu structure.
437
+ *
438
+ * This raw structure is preserved because the wrapper component may need the
439
+ * original top-level roots in order to:
440
+ * - switch active menu mode
441
+ * - render grouped navigation
442
+ * - resolve mode navigation targets
443
+ *
444
+ * Top-level semantics are positional:
445
+ * - all items except the last = switchable root menus
446
+ * - last item = shared/common root
447
+ */
448
+ const rawMenuItems = (data.mainMenu?.menuItems ?? []).map(item => options.siteDomainInUrls
449
+ ? adjustMenuItemUrls(item, siteDefinition, options.language)
450
+ : { ...item });
451
+ const toggleStructure = extractToggleableMenuStructure(rawMenuItems);
452
+ /**
453
+ * `menuItems` is kept as a flat convenience list for render paths that do
454
+ * not need to reason about root menus explicitly.
455
+ *
456
+ * This flat list contains:
457
+ * - active-mode primary items when switchable roots exist
458
+ * - plus shared/common items
459
+ *
460
+ * If only a shared/common root exists, its children are rendered flat.
461
+ */
462
+ let menuItems = buildMenuItemsForMode(toggleStructure, 0);
463
+ menuItems = prependHomeMenuItem(menuItems, options.i18n, siteDefinition?.url ?? '/', options.hideHomeMenuItem);
464
+ const search = {
465
+ ...(data.search ?? {}),
466
+ AutocompleteEndpoint: options.autocompleteEndpoint ?? '',
467
+ };
468
+ const siteSelector = data.siteSelectorViewModel ?? null;
469
+ const languageSelector = data.languageSelectorViewModel ?? null;
470
+ const languageOptions = getLanguageOptions(languageSelector);
471
+ const loginDialog = options.siteDomainInUrls
472
+ ? adjustLoginDialogUrls(data.loginViewModel ?? null, siteDefinition, options.language)
473
+ : data.loginViewModel ?? null;
474
+ return {
475
+ siteDefinition,
476
+ menuItems,
477
+ search,
478
+ siteSelector,
479
+ languageSelector,
480
+ languageOptions,
481
+ loginDialog,
482
+ homePageLink: siteDefinition?.url ?? document.location.hostname,
483
+ hasMenuSwitching: toggleStructure.hasMenuSwitching,
484
+ menuModeOptions: toggleStructure.menuModeOptions,
485
+ defaultMenuMode: 0,
486
+ rawMenuItems,
487
+ };
488
+ }
489
+
490
+ /**
491
+ * Safe fallback i18n object used before translations have been resolved,
492
+ * or if a language is missing from the translation table.
493
+ */
494
+ const defaultHeaderI18n = {
495
+ searchlabel: '',
496
+ searchplaceholder: '',
497
+ searchbuttontext: '',
498
+ menuHomeButton: '',
499
+ menuGoBackButton: '',
500
+ mainMenuButton: '',
501
+ menuStartButton: '',
502
+ profileSelectionFlyoutHeading: '',
503
+ unifiedLoginButton: '',
504
+ unifiedMyPagesButton: '',
505
+ home: 'Home',
506
+ };
507
+ /**
508
+ * Resolves the i18n object for the current language and applies overrides.
509
+ *
510
+ * What it does:
511
+ * - Looks up translation values for the selected language
512
+ * - Falls back to a safe default object if the language is missing
513
+ * - Allows the search placeholder to be overridden by a prop
514
+ * - Ensures "home" always has a non-empty fallback value
515
+ */
516
+ function resolveHeaderTranslations(language, searchPlaceholder) {
517
+ const resolved = (language && translations[language]) ? translations[language] : defaultHeaderI18n;
518
+ return {
519
+ ...defaultHeaderI18n,
520
+ ...resolved,
521
+ searchplaceholder: searchPlaceholder || resolved.searchplaceholder || '',
522
+ home: resolved.home && resolved.home.trim() !== '' ? resolved.home : 'Home',
523
+ };
524
+ }
525
+
526
+ /**
527
+ * Service responsible for:
528
+ * - resolving the effective header context
529
+ * - building the fetch URL for the header endpoint
530
+ * - loading header data from the backend
531
+ * - mapping backend data into a renderable header state
532
+ *
533
+ * This service uses the refined context service as the source of truth
534
+ * for market/language/environment resolution.
535
+ */
536
+ class PnMarketwebHeaderService {
537
+ fetchHelper;
538
+ href;
539
+ doc;
540
+ /**
541
+ * Fixed backend path for loading header data.
542
+ * This is appended to the resolved endpoint domain.
543
+ */
544
+ endpointPath = '/api/navigation/toggle-header';
545
+ constructor(fetchHelper, href = window.location.href, doc = document) {
546
+ this.fetchHelper = fetchHelper;
547
+ this.href = href;
548
+ this.doc = doc;
549
+ }
550
+ /**
551
+ * Resolves the effective header context.
552
+ *
553
+ * What it does:
554
+ * - uses the RefinedMarketWebContextService to resolve context from the current URL/document
555
+ * - lets explicit input values override resolved values when provided
556
+ * - resolves endpoint from environment + market when endpoint is not explicitly passed in
557
+ * - keeps pageId as part of the final header request context
558
+ */
559
+ async resolveContext(input) {
560
+ const contextService = new RefinedMarketWebContextService({
561
+ href: this.href,
562
+ doc: this.doc,
563
+ });
564
+ const resolvedContext = contextService.resolve();
565
+ const market = input.market ?? resolvedContext.market;
566
+ const language = input.language ?? resolvedContext.language;
567
+ const environment = input.environment ?? resolvedContext.environment;
568
+ const endpoint = input.endpoint && input.endpoint.trim() !== ''
569
+ ? input.endpoint
570
+ : contextService.getEndpoint(environment, market);
571
+ return {
572
+ market,
573
+ language,
574
+ environment,
575
+ endpoint,
576
+ pageId: input.pageId ?? '',
577
+ };
578
+ }
579
+ /**
580
+ * Builds the final request URL used to fetch header JSON.
581
+ *
582
+ * What it does:
583
+ * - removes a trailing slash from the endpoint base if needed
584
+ * - appends the fixed header endpoint path
585
+ * - adds query parameters for market, language and current page
586
+ */
587
+ buildFetchUrl(context) {
588
+ const endpointBase = context.endpoint.lastIndexOf('/') === context.endpoint.length - 1
589
+ ? context.endpoint.substring(0, context.endpoint.length - 1)
590
+ : context.endpoint;
591
+ return `${endpointBase}${this.endpointPath}?market=${context.market}&language=${context.language}&currentPage=${context.pageId ?? ''}`;
592
+ }
593
+ /**
594
+ * Fetches header data from the backend.
595
+ *
596
+ * Returns null when required context is missing.
597
+ */
598
+ async fetchHeaderData(context, cache = false) {
599
+ if (!context.market || !context.language || context.endpoint == null) {
600
+ return null;
601
+ }
602
+ const fetchUrl = this.buildFetchUrl(context);
603
+ const response = await this.fetchHelper.fetchJson(fetchUrl, { mode: 'cors' }, cache);
604
+ if (!response) {
605
+ return null;
606
+ }
607
+ return 'value' in response ? response.value : response;
608
+ }
609
+ /**
610
+ * Builds i18n for the current language + presentation overrides.
611
+ */
612
+ resolveI18n(language, searchPlaceholder = '') {
613
+ if (!language) {
614
+ return defaultHeaderI18n;
615
+ }
616
+ return resolveHeaderTranslations(language, searchPlaceholder);
617
+ }
618
+ /**
619
+ * Maps raw header data into the current UI view model.
620
+ */
621
+ mapViewModel(rawHeaderData, input) {
622
+ return mapHeaderDataToViewModel(rawHeaderData, {
623
+ language: input.language ?? undefined,
624
+ hideHomeMenuItem: input.hideHomeMenuItem,
625
+ siteDomainInUrls: input.siteDomainInUrls,
626
+ autocompleteEndpoint: input.autocompleteEndpoint,
627
+ i18n: input.i18n,
628
+ });
629
+ }
630
+ /**
631
+ * Resolves context, fetches backend data and builds the final header state.
632
+ */
633
+ async loadHeaderState(input) {
634
+ const context = await this.resolveContext({
635
+ market: input.market,
636
+ language: input.language,
637
+ environment: input.environment,
638
+ endpoint: input.endpoint,
639
+ pageId: input.pageId,
640
+ });
641
+ const i18n = this.resolveI18n(context.language, input.searchPlaceholder);
642
+ const rawHeaderData = await this.fetchHeaderData(context, input.cache ?? false);
643
+ if (!rawHeaderData) {
644
+ return {
645
+ context,
646
+ rawHeaderData: null,
647
+ vm: null,
648
+ i18n,
649
+ status: 'error',
650
+ activeMenuMode: 0, /* default to first mode */
651
+ };
652
+ }
653
+ const vm = this.mapViewModel(rawHeaderData, {
654
+ language: context.language,
655
+ hideHomeMenuItem: input.hideHomeMenuItem,
656
+ siteDomainInUrls: input.siteDomainInUrls,
657
+ autocompleteEndpoint: input.autocompleteEndpoint,
658
+ i18n,
659
+ });
660
+ return {
661
+ context,
662
+ rawHeaderData,
663
+ vm,
664
+ i18n,
665
+ status: 'ready',
666
+ activeMenuMode: vm.defaultMenuMode
667
+ };
668
+ }
669
+ /**
670
+ * Rebuilds the UI state from already-fetched raw backend data.
671
+ * Use this when presentation-only inputs change and a refetch is not needed.
672
+ */
673
+ remapHeaderState(input) {
674
+ const i18n = this.resolveI18n(input.language ?? input.context.language, input.searchPlaceholder);
675
+ if (!input.rawHeaderData) {
676
+ return {
677
+ context: input.context,
678
+ rawHeaderData: null,
679
+ vm: null,
680
+ i18n,
681
+ status: 'error',
682
+ activeMenuMode: input.currentActiveMenuMode,
683
+ };
684
+ }
685
+ const vm = this.mapViewModel(input.rawHeaderData, {
686
+ language: input.language ?? input.context.language,
687
+ hideHomeMenuItem: input.hideHomeMenuItem,
688
+ siteDomainInUrls: input.siteDomainInUrls,
689
+ autocompleteEndpoint: input.autocompleteEndpoint,
690
+ i18n,
691
+ });
692
+ return {
693
+ context: input.context,
694
+ rawHeaderData: input.rawHeaderData,
695
+ vm,
696
+ i18n,
697
+ status: 'ready',
698
+ activeMenuMode: input.currentActiveMenuMode,
699
+ };
700
+ }
701
+ }
702
+
703
+ const STORAGE_KEY = 'pn-marketweb-header:menu-mode';
704
+ /**
705
+ * Returns the previously selected menu mode from localStorage.
706
+ *
707
+ * Returns null if:
708
+ * - nothing is stored
709
+ * - value is invalid
710
+ * - storage is unavailable
711
+ */
712
+ function getStoredHeaderMenuMode() {
713
+ if (typeof window === 'undefined') {
714
+ return null;
715
+ }
716
+ try {
717
+ const value = window.localStorage.getItem(STORAGE_KEY);
718
+ if (value == null) {
719
+ return null;
720
+ }
721
+ const parsed = Number(value);
722
+ if (Number.isInteger(parsed) && parsed >= 0) {
723
+ return parsed;
724
+ }
725
+ }
726
+ catch {
727
+ // intentionally ignored
728
+ }
729
+ return null;
730
+ }
731
+ /**
732
+ * Persists the selected menu mode in localStorage.
733
+ *
734
+ * Storage failures are intentionally ignored.
735
+ */
736
+ function storeHeaderMenuMode(mode) {
737
+ if (typeof window === 'undefined') {
738
+ return;
739
+ }
740
+ try {
741
+ window.localStorage.setItem(STORAGE_KEY, String(mode));
742
+ }
743
+ catch {
744
+ // intentionally ignored
745
+ }
746
+ }
747
+ /**
748
+ * Resolves the effective initial menu mode.
749
+ *
750
+ * Priority:
751
+ * 1. Stored user preference
752
+ * 2. Server-provided initial mode
753
+ * 3. Fallback to first mode (index 0)
754
+ */
755
+ function resolveInitialHeaderMenuMode(hasMenuSwitching, initialActiveMenuMode) {
756
+ if (!hasMenuSwitching) {
757
+ return 0;
758
+ }
759
+ const storedMode = getStoredHeaderMenuMode();
760
+ if (typeof storedMode === 'number') {
761
+ return storedMode;
762
+ }
763
+ return initialActiveMenuMode ?? 0;
764
+ }
765
+
766
+ const pnMarketwebHeaderCss = "pn-button-dropdown .pn-button-dropdown>pn-button>.pn-button{min-height:initial}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}@media screen and (max-width: 767px){.sr-only-mobile{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}}pn-marketweb-header{display:block;background-color:var(--siteheader-bg, #ffffff);color:var(--siteheader-text-color, #000000);--siteheader-bg:#ffffff;--siteheader-text-color:#000000;--siteheader-shadow:0 0.06rem 0.18rem rgba(0, 0, 0, 0.1), 0 0.32rem 0.72rem rgba(0, 0, 0, 0.13);--siteheader-row-border-color:#f3f2f2;--siteheader-row-padding-inline:1.6rem;--siteheader-row-min-height:2em;--siteheader-row-main-min-height:5.6rem;--siteheader-top-row-bg:transparent;--siteheader-top-row-border-color:#f3f2f2;--siteheader-top-text-color:#000000;--siteheader-top-link-color:#000000;--siteheader-top-icon-fill:currentColor;--siteheader-main-row-bg-mobile:#ffffff;--siteheader-main-row-bg-tablet:#ffffff;--siteheader-logo-color:#00a0d6;--siteheader-mainnav-top-position-mobile:3.5em;--siteheader-mainnav-link-hover-effect-color:#e0f8ff;--siteheader-button-font-weight:400;--siteheader-button-padding:0.5rem;--siteheader-button-radius:0.8rem;--siteheader-button-hover-bg:#e0f8ff;--siteheader-button-hover-text-color:#000000;--siteheader-toggle-color:#005d92;--siteheader-toggle-hover-color:#000000;--siteheader-toggle-active-color:#000000;--siteheader-toggle-active-underline-color:#00a0d6;--siteheader-mainnav-divider-color:#d3cecb;--siteheader-search-max-width:30rem;--siteheader-search-min-width:23.3rem;--siteheader-search-input-bg:#ffffff;--siteheader-search-input-color:#000000;--siteheader-search-placeholder-color:#000000;--siteheader-search-button-bg:#ffffff;--siteheader-search-icon-fill:currentColor}body[data-siteheader-menuopen=true]{max-height:100vh;overflow:hidden}@media screen and (min-width: 1024px){body[data-siteheader-menuopen=true]{max-height:initial;overflow:initial}}pn-marketweb-header header{position:relative;z-index:1000;display:flex;flex-direction:column;background-color:var(--siteheader-bg, #ffffff);color:var(--siteheader-text-color, #000000);box-shadow:var(--siteheader-shadow, 0 0.06rem 0.18rem rgba(0, 0, 0, 0.1), 0 0.32rem 0.72rem rgba(0, 0, 0, 0.13))}pn-marketweb-header .siteheader-row{display:flex;flex-flow:row;align-items:center;width:100%;min-height:var(--siteheader-row-min-height, 2em);padding-inline:var(--siteheader-row-padding-inline, 1.6rem)}pn-marketweb-header .siteheader-row:not(:last-child){border-bottom:0.1rem solid var(--siteheader-row-border-color, #f3f2f2)}pn-marketweb-header .siteheader-row-top{display:none}pn-marketweb-header .siteheader-row-main{display:flex;flex-direction:row;align-items:center;justify-content:space-between;max-width:100%;min-height:var(--siteheader-row-main-min-height, 5.6rem);padding-inline:var(--siteheader-row-padding-inline, 1.6rem);overflow:visible}pn-marketweb-header .siteheader-logocontainer{display:flex;align-items:center;z-index:1}pn-marketweb-header .siteheader-logolink{display:flex;align-items:center;height:100%;max-height:6.4rem}pn-marketweb-header .siteheader-logolink:hover,pn-marketweb-header .siteheader-logolink:focus,pn-marketweb-header .siteheader-logolink:active{box-shadow:none;text-decoration:none}pn-marketweb-header .siteheader-logo{display:block;color:var(--siteheader-logo-color)}pn-marketweb-header .siteheader-row>pn-marketweb-siteheader-search{display:none}pn-marketweb-header pn-spinner{display:none}pn-marketweb-header pn-button-dropdown:not(.hydrated) .pn-button-dropdown-container{display:none}pn-marketweb-header .siteheader-row pn-button button:hover{color:var(--siteheader-button-hover-text-color, #000000)}pn-marketweb-header .siteheader-row pn-button button:hover .pn-button-bg,pn-marketweb-header .siteheader-row pn-button button:hover .pn-button-bg::after{background-color:var(--siteheader-button-hover-bg, #e0f8ff)}pn-marketweb-header pn-button button{font-weight:var(--siteheader-button-font-weight, 400) !important;padding:var(--siteheader-button-padding, 0.5rem) !important}pn-marketweb-header pn-button button .pn-button-bg::after{border-radius:var(--siteheader-button-radius, 0.8rem) !important}@media screen and (min-width: 769px){pn-marketweb-header{--siteheader-row-min-height:3.2em;--siteheader-row-main-min-height:3.2em}pn-marketweb-header .siteheader-row{justify-content:space-between}pn-marketweb-header .siteheader-row-top{display:flex}pn-marketweb-header .siteheader-row>pn-marketweb-siteheader-search{display:block;width:100%;min-width:var(--siteheader-search-min-width, 23.3rem);max-width:var(--siteheader-search-max-width, 30rem)}}@media screen and (min-width: 1024px){pn-marketweb-header .siteheader-row-main{margin-top:auto;overflow:visible}}pn-marketweb-header[data-theme=business]{--siteheader-bg:#0d234b;--siteheader-text-color:#ffffff;--siteheader-row-border-color:#0d234b;--siteheader-top-row-bg:#0d234b;--siteheader-top-row-border-color:#0d234b;--siteheader-top-text-color:#ffffff;--siteheader-top-link-color:#ffffff;--siteheader-top-icon-fill:#ffffff;--siteheader-main-row-bg-mobile:#0d234b;--siteheader-main-row-bg-tablet:#ffffff;--siteheader-button-hover-bg:#ffffff;--siteheader-button-hover-text-color:#000000;--siteheader-logo-color:#00a0d6;--siteheader-cart-countindicator-color:#000000;--siteheader-cart-icon-color:#ffffff;--siteheader-cart-countindicator-background:#ffffff;--siteheader-cart-link-color:#ffffff;--siteheader-toggle-color:#ffffff;--siteheader-toggle-hover-color:#ffffff;--siteheader-toggle-active-color:#ffffff;--siteheader-toggle-active-underline-color:#ffffff;--siteheader-search-input-bg:#ffffff;--siteheader-search-input-color:#0d234b;--siteheader-search-placeholder-color:#0d234b;--siteheader-search-button-bg:#ffffff;--siteheader-search-icon-fill:#0d234b;--siteheader-mainnav-list-heading-color:#000000;--siteheader-mainnav-link-hover-effect-color:#0d234b;--siteheader-mainnav-link-active-effect-color:#0d234b;--siteheader-mainnav-level-2-border-top-left-radius-desktop:0;--siteheader-mainnav-level-2-border-top-right-radius-desktop:0;--siteheader-mainnav-link-active-desktop-color:#0d234b;--siteheader-mainnav-link-level1-indicator-color:#0d234b;--siteheader-mainnav-link-level1-indicator-active-color:#0d234b;--siteheader-mainnav-link-level1-border-bottom:0.1rem solid #e9e6e5;--siteheader-mainnav-link-level2-border-bottom:0.1rem solid #e9e6e5;--siteheader-login-profileselection-heading-color:#000000;--siteheader-login-profileselection-user-name-color:#000000;--siteheader-login-profileselection-description-color:#5e554a;--siteheader-login-profileselection-divider-background:#005d92;--siteheader-login-profileselection-profileoption-link-background:#ffffff;--siteheader-login-linklist-heading-color:#000000}";
767
+ const PnMarketwebHeaderStyle0 = pnMarketwebHeaderCss;
768
+
769
+ const PnMarketwebHeader$1 = /*@__PURE__*/ proxyCustomElement(class PnMarketwebHeader extends HTMLElement {
770
+ constructor() {
771
+ super();
772
+ this.__registerHost();
773
+ this.changeLanguage = createEvent(this, "changeLanguage", 7);
774
+ this.changeMarket = createEvent(this, "changeMarket", 7);
775
+ this.initialActiveMenuMode = 0;
776
+ this.menuThemes = undefined;
777
+ this.market = null;
778
+ this.language = null;
779
+ this.environment = null;
780
+ this.endpoint = null;
781
+ this.siteid = null;
782
+ this.pageId = '';
783
+ this.userToken = '';
784
+ this.userFullname = '';
785
+ this.userLoggedin = false;
786
+ this.hideSiteSelector = false;
787
+ this.hideHomeMenuItem = false;
788
+ this.hideLanguageSelector = false;
789
+ this.hideSearch = false;
790
+ this.hideLogin = false;
791
+ this.showProfileSelection = false;
792
+ this.showUnifiedLogin = false;
793
+ this.siteDomainInUrls = false;
794
+ this.autocompleteEndpoint = '';
795
+ this.sessionForward = false;
796
+ this.cache = false;
797
+ this.searchPlaceholder = '';
798
+ this.spaMode = false;
799
+ this.checkUserLoggedInStateInterval = 0;
800
+ this.useMarketwebLogin = false;
801
+ this.navigateOnMenuToggle = true;
802
+ this.vm = null;
803
+ this.i18n = defaultHeaderI18n;
804
+ this.status = 'loading';
805
+ this.minimizeSearch = false;
806
+ this.loggedIn = false;
807
+ this.activeMenuMode = 0;
808
+ }
809
+ get hostElement() { return this; }
810
+ /** Guard used to prevent watchers from reloading during initial setup. */
811
+ isInitializing = false;
812
+ /** Cached raw backend payload so UI-only prop changes can remap without refetching. */
813
+ rawHeaderData = null;
814
+ /** Main nav element reference used for overflow calculation. */
815
+ mainNavEl;
816
+ /** Emitted when the language changes. */
817
+ changeLanguage;
818
+ /** Emitted when the market changes. */
819
+ changeMarket;
820
+ /** Shared helper for backend requests. */
821
+ fetchHelper = new FetchHelper('marketweb-header');
822
+ /** Service for context resolution and header-data fetching. */
823
+ headerService = new PnMarketwebHeaderService(this.fetchHelper);
824
+ hasResolvedInitialMenuMode = false;
825
+ async componentWillLoad() {
826
+ await this.loadHeader();
827
+ }
828
+ onLanguageSelectorChange(e) {
829
+ this.language = e.detail;
830
+ window.dispatchEvent(new CustomEvent('marketweb-languagechange', { detail: this.language }));
831
+ }
832
+ async onLanguageChange() {
833
+ if (this.isInitializing || !this.language) {
834
+ return;
835
+ }
836
+ this.changeLanguage.emit(this.language);
837
+ await this.loadHeader();
838
+ }
839
+ async onMarketChange() {
840
+ if (this.isInitializing || !this.market) {
841
+ return;
842
+ }
843
+ this.changeMarket.emit(this.market);
844
+ await this.loadHeader();
845
+ }
846
+ async onEnvironmentChange() {
847
+ if (this.isInitializing || !this.environment) {
848
+ return;
849
+ }
850
+ await this.loadHeader();
851
+ }
852
+ async onEndpointChange() {
853
+ if (this.isInitializing) {
854
+ return;
855
+ }
856
+ await this.loadHeader();
857
+ }
858
+ async onPageIdChange() {
859
+ if (this.isInitializing) {
860
+ return;
861
+ }
862
+ await this.loadHeader();
863
+ }
864
+ onPresentationInputChange() {
865
+ if (this.isInitializing) {
866
+ return;
867
+ }
868
+ this.remapViewModel();
869
+ }
870
+ onLoginStateChange(e) {
871
+ if (typeof e.detail?.loggedIn === 'boolean') {
872
+ this.loggedIn = e.detail.loggedIn;
873
+ }
874
+ }
875
+ handleResize() {
876
+ requestAnimationFrame(() => {
877
+ this.checkMenuOverflow();
878
+ });
879
+ }
880
+ get menuThemeList() {
881
+ return resolveHeaderMenuThemes(this.menuThemes, this.vm?.menuModeOptions);
882
+ }
883
+ get logoUrl() {
884
+ return this.vm?.menuModeOptions?.[this.activeMenuMode]?.href ?? '/';
885
+ }
886
+ async loadHeader() {
887
+ this.status = 'loading';
888
+ this.isInitializing = true;
889
+ try {
890
+ const result = await this.headerService.loadHeaderState({
891
+ market: this.market,
892
+ language: this.language,
893
+ environment: this.environment,
894
+ endpoint: this.endpoint,
895
+ pageId: this.pageId,
896
+ cache: this.cache,
897
+ hideHomeMenuItem: this.hideHomeMenuItem,
898
+ siteDomainInUrls: this.siteDomainInUrls,
899
+ autocompleteEndpoint: this.autocompleteEndpoint,
900
+ searchPlaceholder: this.searchPlaceholder,
901
+ });
902
+ this.applyHeaderState(result);
903
+ requestAnimationFrame(() => {
904
+ this.checkMenuOverflow();
905
+ });
906
+ }
907
+ catch (error) {
908
+ console.error('[pn-marketweb-header] Failed to load header', error);
909
+ this.rawHeaderData = null;
910
+ this.vm = null;
911
+ this.status = 'error';
912
+ }
913
+ finally {
914
+ this.isInitializing = false;
915
+ }
916
+ }
917
+ remapViewModel() {
918
+ const context = {
919
+ market: this.market,
920
+ language: this.language,
921
+ environment: this.environment,
922
+ endpoint: this.endpoint,
923
+ pageId: this.pageId ?? '',
924
+ };
925
+ const result = this.headerService.remapHeaderState({
926
+ context,
927
+ rawHeaderData: this.rawHeaderData,
928
+ language: this.language,
929
+ hideHomeMenuItem: this.hideHomeMenuItem,
930
+ siteDomainInUrls: this.siteDomainInUrls,
931
+ autocompleteEndpoint: this.autocompleteEndpoint,
932
+ searchPlaceholder: this.searchPlaceholder,
933
+ currentActiveMenuMode: this.activeMenuMode,
934
+ });
935
+ this.applyHeaderState(result);
936
+ requestAnimationFrame(() => {
937
+ this.checkMenuOverflow();
938
+ });
939
+ }
940
+ applyHeaderState(result) {
941
+ this.market = result.context.market;
942
+ this.language = result.context.language;
943
+ this.environment = result.context.environment;
944
+ this.endpoint = result.context.endpoint;
945
+ this.rawHeaderData = result.rawHeaderData;
946
+ this.vm = result.vm;
947
+ this.i18n = result.i18n;
948
+ this.status = result.status;
949
+ if (!result.vm?.hasMenuSwitching) {
950
+ this.activeMenuMode = 0;
951
+ this.hasResolvedInitialMenuMode = false;
952
+ }
953
+ else if (!this.hasResolvedInitialMenuMode) {
954
+ this.activeMenuMode = resolveInitialHeaderMenuMode(true, this.initialActiveMenuMode);
955
+ this.hasResolvedInitialMenuMode = true;
956
+ }
957
+ if (state.loginManager && result.vm?.siteDefinition?.url) {
958
+ state.loginManager.setSiteUrl(result.vm.siteDefinition.url);
959
+ }
960
+ }
961
+ checkMenuOverflow() {
962
+ const mainNavEl = this.mainNavEl;
963
+ if (!mainNavEl) {
964
+ return;
965
+ }
966
+ const firstMenuLevel = mainNavEl.querySelector('pn-mainnav-level');
967
+ if (!firstMenuLevel) {
968
+ return;
969
+ }
970
+ const navContainer = firstMenuLevel.parentElement;
971
+ if (!navContainer) {
972
+ return;
973
+ }
974
+ const availableWidth = navContainer.clientWidth;
975
+ const requiredWidth = firstMenuLevel.scrollWidth;
976
+ this.minimizeSearch = requiredWidth > availableWidth;
977
+ }
978
+ isUserLoggedIn() {
979
+ return this.loggedIn || this.userLoggedin;
980
+ }
981
+ adjustSiteSelectorUrl(href) {
982
+ if (!this.isUserLoggedIn()) {
983
+ return href;
984
+ }
985
+ const loginDomains = ['portal.postnord.com'];
986
+ const matchedHref = loginDomains.some(domain => href.includes(domain));
987
+ if (!matchedHref) {
988
+ return href;
989
+ }
990
+ if (state.loginManager) {
991
+ return state.loginManager.getLoginUrl(href);
992
+ }
993
+ return href;
994
+ }
995
+ onMenuToggleChange = (e) => {
996
+ const nextMode = e.detail;
997
+ if (nextMode === this.activeMenuMode) {
998
+ return;
999
+ }
1000
+ this.activeMenuMode = nextMode;
1001
+ storeHeaderMenuMode(nextMode);
1002
+ if (!this.navigateOnMenuToggle || !this.vm?.rawMenuItems.length) {
1003
+ return;
1004
+ }
1005
+ const targetRoot = getToggleRootForMenuItems(this.vm.rawMenuItems, nextMode);
1006
+ navigateToMenuItem(targetRoot);
1007
+ };
1008
+ getVisibleMenuGroups(vm) {
1009
+ if (!vm.rawMenuItems.length) {
1010
+ return {
1011
+ primaryItems: vm.menuItems,
1012
+ sharedItems: [],
1013
+ };
1014
+ }
1015
+ const structure = extractToggleableMenuStructure(vm.rawMenuItems);
1016
+ if (structure.modeRoots.length === 0) {
1017
+ return {
1018
+ primaryItems: vm.menuItems,
1019
+ sharedItems: [],
1020
+ };
1021
+ }
1022
+ const groups = getVisibleMenuGroupsForMode(vm.rawMenuItems, this.activeMenuMode);
1023
+ return {
1024
+ primaryItems: prependHomeMenuItem(groups.primaryItems, this.i18n, vm.siteDefinition?.url ?? '/', this.hideHomeMenuItem),
1025
+ sharedItems: groups.sharedItems,
1026
+ };
1027
+ }
1028
+ render() {
1029
+ const vm = this.vm;
1030
+ const i18n = this.i18n;
1031
+ const activeTheme = this.menuThemeList[this.activeMenuMode] ?? 'private';
1032
+ const logoUrl = this.logoUrl;
1033
+ const menuGroups = vm
1034
+ ? this.getVisibleMenuGroups(vm)
1035
+ : { primaryItems: [], sharedItems: [] };
1036
+ return (h(Host, { key: '77b50a06702c9c8aee59392c7ebcf392d0e93ace', language: this.language ?? undefined, market: this.market ?? undefined, environment: this.environment ?? undefined, "data-status": this.status, "data-mode": this.activeMenuMode, "data-theme": activeTheme }, h("header", { key: 'f17a9126e62264bcbc596802394d8a0eb64809d7' }, vm && (h(Fragment, { key: 'e4d0c6cbb175bd545c37011e8a26040e293b5078' }, h("pn-marketweb-header-top-row", { key: 'f20e51e813cd52f09a223d860e04759f9d277183', vm: vm, i18n: i18n, language: this.language ?? undefined, siteid: this.siteid ?? undefined, endpoint: this.endpoint ?? undefined, environment: this.environment ?? undefined, userToken: this.userToken, userFullname: this.userFullname, userLoggedin: this.userLoggedin, hideSiteSelector: this.hideSiteSelector, hideLanguageSelector: this.hideLanguageSelector, hideSearch: this.hideSearch, hideLogin: this.hideLogin, showProfileSelection: this.showProfileSelection, showUnifiedLogin: this.showUnifiedLogin, spaMode: this.spaMode, checkUserLoggedInStateInterval: this.checkUserLoggedInStateInterval, useMarketwebLogin: this.useMarketwebLogin, activeMenuMode: this.activeMenuMode, theme: activeTheme, navigateOnMenuToggle: this.navigateOnMenuToggle, menuToggleChangeHandler: this.onMenuToggleChange, adjustSiteSelectorUrl: (href) => this.adjustSiteSelectorUrl(href), logoUrl: logoUrl }, h("slot", { key: 'c0025425b08f233bc8ef6c9db59c516b1c2c8d05', name: "header-top-left", slot: "header-top-left" }), h("slot", { key: '822354a2c86ca56f4a7e6926492a5202e82d0d2e', name: "header-top-right-start", slot: "header-top-right-start" }), h("slot", { key: '68364a475418c6bb6baba867f9b78bc2f7cd3c92', name: "toprightend", slot: "toprightend" })), h("slot", { key: 'e49bc7c21f51abb86b05e6a986163f6b8848c425', name: "siteheader-menu-top-button" }), h("pn-marketweb-header-main-row", { key: 'a56827628a3f649546881449479df0d7721da5b2', vm: vm, i18n: i18n, market: this.market ?? undefined, language: this.language ?? undefined, siteid: this.siteid ?? undefined, hideSearch: this.hideSearch, hideLogin: this.hideLogin, hideLanguageSelector: this.hideLanguageSelector, hideSiteSelector: this.hideSiteSelector, minimizeSearch: this.minimizeSearch, activeMenuMode: this.activeMenuMode, theme: activeTheme, navigateOnMenuToggle: this.navigateOnMenuToggle, primaryItems: menuGroups.primaryItems, sharedItems: menuGroups.sharedItems, showMenuDivider: menuGroups.primaryItems.length > 0 && menuGroups.sharedItems.length > 0, userToken: this.userToken, userFullname: this.userFullname, userLoggedin: this.userLoggedin, endpoint: this.endpoint ?? undefined, environment: this.environment ?? undefined, showProfileSelection: this.showProfileSelection, showUnifiedLogin: this.showUnifiedLogin, checkUserLoggedInStateInterval: this.checkUserLoggedInStateInterval, useMarketwebLogin: this.useMarketwebLogin, spaMode: this.spaMode, menuToggleChangeHandler: this.onMenuToggleChange, mainNavRefHandler: (el) => {
1037
+ this.mainNavEl = el;
1038
+ }, adjustSiteSelectorUrl: (href) => this.adjustSiteSelectorUrl(href), logoUrl: logoUrl }, h("slot", { key: '624d401daf67b3af80f3708d8321f541547f3225', name: "header-bottom-button", slot: "header-bottom-button" }), h("slot", { key: '5bf770f2882a239a3a45b511af696fc87bbf861d', name: "menu-footer-cta", slot: "menu-footer-cta" })))))));
1039
+ }
1040
+ static get watchers() { return {
1041
+ "language": ["onLanguageChange"],
1042
+ "market": ["onMarketChange"],
1043
+ "environment": ["onEnvironmentChange"],
1044
+ "endpoint": ["onEndpointChange"],
1045
+ "pageId": ["onPageIdChange"],
1046
+ "hideHomeMenuItem": ["onPresentationInputChange"],
1047
+ "siteDomainInUrls": ["onPresentationInputChange"],
1048
+ "autocompleteEndpoint": ["onPresentationInputChange"],
1049
+ "searchPlaceholder": ["onPresentationInputChange"]
1050
+ }; }
1051
+ static get style() { return PnMarketwebHeaderStyle0; }
1052
+ }, [4, "pn-marketweb-header", {
1053
+ "initialActiveMenuMode": [2, "initial-active-menu-mode"],
1054
+ "menuThemes": [1, "menu-themes"],
1055
+ "market": [1537],
1056
+ "language": [1537],
1057
+ "environment": [1537],
1058
+ "endpoint": [1],
1059
+ "siteid": [1],
1060
+ "pageId": [1, "page-id"],
1061
+ "userToken": [1, "user-token"],
1062
+ "userFullname": [1, "user-fullname"],
1063
+ "userLoggedin": [516, "user-loggedin"],
1064
+ "hideSiteSelector": [516, "hide-site-selector"],
1065
+ "hideHomeMenuItem": [516, "hide-home-menu-item"],
1066
+ "hideLanguageSelector": [516, "hide-language-selector"],
1067
+ "hideSearch": [516, "hide-search"],
1068
+ "hideLogin": [516, "hide-login"],
1069
+ "showProfileSelection": [516, "show-profile-selection"],
1070
+ "showUnifiedLogin": [4, "show-unified-login"],
1071
+ "siteDomainInUrls": [4, "site-domain-in-urls"],
1072
+ "autocompleteEndpoint": [1, "autocomplete-endpoint"],
1073
+ "sessionForward": [4, "session-forward"],
1074
+ "cache": [4],
1075
+ "searchPlaceholder": [1, "search-placeholder"],
1076
+ "spaMode": [4, "spa-mode"],
1077
+ "checkUserLoggedInStateInterval": [2, "check-user-logged-in-state-interval"],
1078
+ "useMarketwebLogin": [4, "use-marketweb-login"],
1079
+ "navigateOnMenuToggle": [4, "navigate-on-menu-toggle"],
1080
+ "vm": [32],
1081
+ "i18n": [32],
1082
+ "status": [32],
1083
+ "minimizeSearch": [32],
1084
+ "loggedIn": [32],
1085
+ "activeMenuMode": [32]
1086
+ }, [[0, "setLanguage", "onLanguageSelectorChange"], [0, "loginStateChange", "onLoginStateChange"], [9, "resize", "handleResize"]], {
1087
+ "language": ["onLanguageChange"],
1088
+ "market": ["onMarketChange"],
1089
+ "environment": ["onEnvironmentChange"],
1090
+ "endpoint": ["onEndpointChange"],
1091
+ "pageId": ["onPageIdChange"],
1092
+ "hideHomeMenuItem": ["onPresentationInputChange"],
1093
+ "siteDomainInUrls": ["onPresentationInputChange"],
1094
+ "autocompleteEndpoint": ["onPresentationInputChange"],
1095
+ "searchPlaceholder": ["onPresentationInputChange"]
1096
+ }]);
1097
+ function defineCustomElement$1() {
1098
+ if (typeof customElements === "undefined") {
1099
+ return;
1100
+ }
1101
+ const components = ["pn-marketweb-header", "pn-language-selector", "pn-language-selector-option", "pn-mainnav", "pn-mainnav-level", "pn-mainnav-link", "pn-mainnav-list", "pn-marketweb-header-main-row", "pn-marketweb-header-toggle", "pn-marketweb-header-top-row", "pn-marketweb-siteheader-login", "pn-marketweb-siteheader-login-button", "pn-marketweb-siteheader-login-linklist", "pn-marketweb-siteheader-login-links", "pn-marketweb-siteheader-login-profileselection", "pn-marketweb-siteheader-search", "pn-marketweb-siteheader-unified-login", "pn-site-selector", "pn-site-selector-item"];
1102
+ components.forEach(tagName => { switch (tagName) {
1103
+ case "pn-marketweb-header":
1104
+ if (!customElements.get(tagName)) {
1105
+ customElements.define(tagName, PnMarketwebHeader$1);
1106
+ }
1107
+ break;
1108
+ case "pn-language-selector":
1109
+ if (!customElements.get(tagName)) {
1110
+ defineCustomElement$j();
1111
+ }
1112
+ break;
1113
+ case "pn-language-selector-option":
1114
+ if (!customElements.get(tagName)) {
1115
+ defineCustomElement$i();
1116
+ }
1117
+ break;
1118
+ case "pn-mainnav":
1119
+ if (!customElements.get(tagName)) {
1120
+ defineCustomElement$h();
1121
+ }
1122
+ break;
1123
+ case "pn-mainnav-level":
1124
+ if (!customElements.get(tagName)) {
1125
+ defineCustomElement$g();
1126
+ }
1127
+ break;
1128
+ case "pn-mainnav-link":
1129
+ if (!customElements.get(tagName)) {
1130
+ defineCustomElement$f();
1131
+ }
1132
+ break;
1133
+ case "pn-mainnav-list":
1134
+ if (!customElements.get(tagName)) {
1135
+ defineCustomElement$e();
1136
+ }
1137
+ break;
1138
+ case "pn-marketweb-header-main-row":
1139
+ if (!customElements.get(tagName)) {
1140
+ defineCustomElement$d();
1141
+ }
1142
+ break;
1143
+ case "pn-marketweb-header-toggle":
1144
+ if (!customElements.get(tagName)) {
1145
+ defineCustomElement$c();
1146
+ }
1147
+ break;
1148
+ case "pn-marketweb-header-top-row":
1149
+ if (!customElements.get(tagName)) {
1150
+ defineCustomElement$b();
1151
+ }
1152
+ break;
1153
+ case "pn-marketweb-siteheader-login":
1154
+ if (!customElements.get(tagName)) {
1155
+ defineCustomElement$a();
1156
+ }
1157
+ break;
1158
+ case "pn-marketweb-siteheader-login-button":
1159
+ if (!customElements.get(tagName)) {
1160
+ defineCustomElement$9();
1161
+ }
1162
+ break;
1163
+ case "pn-marketweb-siteheader-login-linklist":
1164
+ if (!customElements.get(tagName)) {
1165
+ defineCustomElement$8();
1166
+ }
1167
+ break;
1168
+ case "pn-marketweb-siteheader-login-links":
1169
+ if (!customElements.get(tagName)) {
1170
+ defineCustomElement$7();
1171
+ }
1172
+ break;
1173
+ case "pn-marketweb-siteheader-login-profileselection":
1174
+ if (!customElements.get(tagName)) {
1175
+ defineCustomElement$6();
1176
+ }
1177
+ break;
1178
+ case "pn-marketweb-siteheader-search":
1179
+ if (!customElements.get(tagName)) {
1180
+ defineCustomElement$5();
1181
+ }
1182
+ break;
1183
+ case "pn-marketweb-siteheader-unified-login":
1184
+ if (!customElements.get(tagName)) {
1185
+ defineCustomElement$4();
1186
+ }
1187
+ break;
1188
+ case "pn-site-selector":
1189
+ if (!customElements.get(tagName)) {
1190
+ defineCustomElement$3();
1191
+ }
1192
+ break;
1193
+ case "pn-site-selector-item":
1194
+ if (!customElements.get(tagName)) {
1195
+ defineCustomElement$2();
1196
+ }
1197
+ break;
1198
+ } });
1199
+ }
1200
+
1201
+ const PnMarketwebHeader = PnMarketwebHeader$1;
1202
+ const defineCustomElement = defineCustomElement$1;
1203
+
1204
+ export { PnMarketwebHeader, defineCustomElement };
1205
+
1206
+ //# sourceMappingURL=pn-marketweb-header.js.map