@postnord/pn-marketweb-components 4.2.4 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) 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/pn-versa-card.cjs.entry.js +1 -1
  63. package/cjs/pn-versa-card.cjs.entry.js.map +1 -1
  64. package/cjs/translations-9510f11c.js +198 -0
  65. package/cjs/translations-9510f11c.js.map +1 -0
  66. package/collection/collection-manifest.json +5 -0
  67. package/collection/components/cards/pn-versa-card/pn-versa-card.css +27 -2
  68. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-main-row.css +204 -0
  69. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-main-row.js +658 -0
  70. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-main-row.js.map +1 -0
  71. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-skeleton-loader.css +217 -0
  72. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-skeleton-loader.js +20 -0
  73. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-skeleton-loader.js.map +1 -0
  74. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-top-row.css +115 -0
  75. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-top-row.js +520 -0
  76. package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-top-row.js.map +1 -0
  77. package/collection/components/layout-components/pn-marketweb-header/components/shared/pn-marketweb-header-shared.js +37 -0
  78. package/collection/components/layout-components/pn-marketweb-header/components/shared/pn-marketweb-header-shared.js.map +1 -0
  79. package/collection/components/layout-components/pn-marketweb-header/mapper/pn-marketweb-header.mapper.js +109 -0
  80. package/collection/components/layout-components/pn-marketweb-header/mapper/pn-marketweb-header.mapper.js.map +1 -0
  81. package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.css +225 -0
  82. package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.js +916 -0
  83. package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.js.map +1 -0
  84. package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.js +638 -0
  85. package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.js.map +1 -0
  86. package/collection/components/layout-components/pn-marketweb-header/services/pn-marketweb-header.service.js +180 -0
  87. package/collection/components/layout-components/pn-marketweb-header/services/pn-marketweb-header.service.js.map +1 -0
  88. package/collection/components/layout-components/pn-marketweb-header/types/pn-marketweb-header.types.js +2 -0
  89. package/collection/components/layout-components/pn-marketweb-header/types/pn-marketweb-header.types.js.map +1 -0
  90. package/collection/components/layout-components/pn-marketweb-header/utils/header-i18n.js +37 -0
  91. package/collection/components/layout-components/pn-marketweb-header/utils/header-i18n.js.map +1 -0
  92. package/collection/components/layout-components/pn-marketweb-header/utils/header-language.js +46 -0
  93. package/collection/components/layout-components/pn-marketweb-header/utils/header-language.js.map +1 -0
  94. package/collection/components/layout-components/pn-marketweb-header/utils/header-menu.js +36 -0
  95. package/collection/components/layout-components/pn-marketweb-header/utils/header-menu.js.map +1 -0
  96. package/collection/components/layout-components/pn-marketweb-header/utils/header-theme.js +48 -0
  97. package/collection/components/layout-components/pn-marketweb-header/utils/header-theme.js.map +1 -0
  98. package/collection/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.js +101 -0
  99. package/collection/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.js.map +1 -0
  100. package/collection/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.storage.js +63 -0
  101. package/collection/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.storage.js.map +1 -0
  102. package/collection/components/layout-components/pn-marketweb-header/utils/header-url.js +91 -0
  103. package/collection/components/layout-components/pn-marketweb-header/utils/header-url.js.map +1 -0
  104. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-button.js +1 -1
  105. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-linklist.css +34 -12
  106. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-mypage-button.js +1 -1
  107. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-profileselection.css +36 -15
  108. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.css +27 -13
  109. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.js +29 -4
  110. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.js.map +1 -1
  111. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-types.js.map +1 -1
  112. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-unified-login.js +1 -1
  113. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.js +4 -4
  114. package/collection/components/media/pn-media-block/pn-media-block.js +1 -1
  115. package/collection/components/minor/pn-app-banner/pn-app-banner.js +1 -1
  116. package/collection/components/minor/pn-marketweb-icon/pn-marketweb-icon.js +1 -1
  117. package/collection/components/minor/pn-swan/pn-swan.js +1 -1
  118. package/collection/components/minor/pn-titletag/pn-titletag.js +1 -1
  119. package/collection/components/navigation/pn-language-selector/pn-language-selector-option.css +25 -12
  120. package/collection/components/navigation/pn-language-selector/pn-language-selector-option.js +1 -1
  121. package/collection/components/navigation/pn-language-selector/pn-language-selector.css +17 -5
  122. package/collection/components/navigation/pn-language-selector/pn-language-selector.js +22 -3
  123. package/collection/components/navigation/pn-language-selector/pn-language-selector.js.map +1 -1
  124. package/collection/components/navigation/pn-mainnav/pn-mainnav-level.css +37 -17
  125. package/collection/components/navigation/pn-mainnav/pn-mainnav-level.js +2 -2
  126. package/collection/components/navigation/pn-mainnav/pn-mainnav-link.css +81 -33
  127. package/collection/components/navigation/pn-mainnav/pn-mainnav-link.js +1 -1
  128. package/collection/components/navigation/pn-mainnav/pn-mainnav-list.css +12 -2
  129. package/collection/components/navigation/pn-mainnav/pn-mainnav-list.js +1 -1
  130. package/collection/components/navigation/pn-mainnav/pn-mainnav.css +35 -22
  131. package/collection/components/navigation/pn-mainnav/pn-mainnav.js +1 -1
  132. package/collection/components/navigation/pn-marketweb-header-toggle/pn-marketweb-header-toggle.css +80 -0
  133. package/collection/components/navigation/pn-marketweb-header-toggle/pn-marketweb-header-toggle.js +147 -0
  134. package/collection/components/navigation/pn-marketweb-header-toggle/pn-marketweb-header-toggle.js.map +1 -0
  135. package/collection/components/navigation/pn-sidenav/pn-sidenav-level.js +1 -1
  136. package/collection/components/navigation/pn-sidenav/pn-sidenav-link.js +1 -1
  137. package/collection/components/navigation/pn-sidenav/pn-sidenav-togglebutton.js +1 -1
  138. package/collection/components/navigation/pn-sidenav/pn-sidenav.js +1 -1
  139. package/collection/components/navigation/pn-site-footer/pn-site-footer-col.js +1 -1
  140. package/collection/components/navigation/pn-site-footer/pn-site-footer.js +1 -1
  141. package/collection/components/navigation/pn-site-selector/pn-site-selector-item.css +16 -12
  142. package/collection/components/navigation/pn-site-selector/pn-site-selector-item.js +1 -1
  143. package/collection/components/navigation/pn-site-selector/pn-site-selector.css +15 -0
  144. package/collection/components/navigation/pn-site-selector/pn-site-selector.js +22 -3
  145. package/collection/components/navigation/pn-site-selector/pn-site-selector.js.map +1 -1
  146. package/collection/components/profile/pn-customernumber-selector/pn-customernumber-selector-option.js +1 -1
  147. package/collection/components/profile/pn-customernumber-selector/pn-customernumber-selector.js +1 -1
  148. package/collection/components/profile/pn-profile-modal/pn-profile-modal-customernumber.js +1 -1
  149. package/collection/components/profile/pn-profile-modal/pn-profile-modal-profile.js +2 -2
  150. package/collection/components/profile/pn-profile-modal/pn-profile-modal-type.js +1 -1
  151. package/collection/components/profile/pn-profile-modal/pn-profile-modal.js +1 -1
  152. package/collection/components/profile/pn-profile-selector/pn-profile-selector-option.js +1 -1
  153. package/collection/components/profile/pn-profile-selector/pn-profile-selector.js +1 -1
  154. package/collection/components/utilities/pn-breakpoints/pn-breakpoints.js +1 -1
  155. package/collection/components/widgets/pn-chat/pn-chat-message/pn-chat-message.js +1 -1
  156. package/collection/components/widgets/pn-chat/pn-chat.js +2 -2
  157. package/collection/components/widgets/pn-find-price/pn-find-price-result.js +1 -1
  158. package/collection/components/widgets/pn-find-price/pn-find-price.js +2 -2
  159. package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price-result.js +1 -1
  160. package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price.js +1 -1
  161. package/collection/components/widgets/pn-hero-block-international/pn-hero-block-international.js +1 -1
  162. package/collection/components/widgets/pn-level-up/pn-level-up-modal/pn-level-up-modal.js +1 -1
  163. package/collection/components/widgets/pn-level-up/pn-level-up.js +2 -2
  164. package/collection/components/widgets/pn-link-list/pn-link-list.js +1 -1
  165. package/collection/components/widgets/pn-marketweb-carousel/pn-marketweb-carousel.js +1 -1
  166. package/collection/components/widgets/pn-marketweb-table/pn-marketweb-table.js +1 -1
  167. package/collection/components/widgets/pn-pex-pricefinder/pn-pex-pricefinder.js +1 -1
  168. package/collection/components/widgets/pn-product-card/pn-product-card.js +1 -1
  169. package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist-result.js +1 -1
  170. package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist.js +2 -2
  171. package/collection/components/widgets/pn-product-tile/pn-product-tile-info.js +1 -1
  172. package/collection/components/widgets/pn-product-tile/pn-product-tile.js +1 -1
  173. package/collection/components/widgets/pn-proxio-findprice/pn-proxio-findprice-result.js +1 -1
  174. package/collection/components/widgets/pn-proxio-findprice/pn-proxio-findprice.js +3 -3
  175. package/collection/components/widgets/pn-proxio-pricegroup/pn-proxio-pricegroup.js +1 -1
  176. package/collection/components/widgets/pn-proxio-productcard/pn-proxio-productcard-description.js +1 -1
  177. package/collection/components/widgets/pn-proxio-productcard/pn-proxio-productcard-information.js +1 -1
  178. package/collection/components/widgets/pn-proxio-productcard/pn-proxio-productcard.js +1 -1
  179. package/collection/components/widgets/pn-qr-code-generator/pn-qr-code-generator.js +1 -1
  180. package/collection/components/widgets/pn-usp-promoter/pn-usp-promoter.js +1 -1
  181. package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.constants.js +105 -0
  182. package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.constants.js.map +1 -0
  183. package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.service.js +166 -0
  184. package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.service.js.map +1 -0
  185. package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.types.js +2 -0
  186. package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.types.js.map +1 -0
  187. package/components/pn-app-banner.js +1 -1
  188. package/components/pn-breakpoints.js +1 -1
  189. package/components/pn-chat-message2.js +1 -1
  190. package/components/pn-chat.js +2 -2
  191. package/components/pn-customernumber-selector-option.js +1 -1
  192. package/components/pn-customernumber-selector.js +1 -1
  193. package/components/pn-find-price-result2.js +1 -1
  194. package/components/pn-find-price.js +2 -2
  195. package/components/pn-find-service-and-price-result2.js +1 -1
  196. package/components/pn-find-service-and-price.js +1 -1
  197. package/components/pn-hero-block-international.js +1 -1
  198. package/components/pn-language-selector-option2.js +2 -2
  199. package/components/pn-language-selector-option2.js.map +1 -1
  200. package/components/pn-language-selector2.js +4 -2
  201. package/components/pn-language-selector2.js.map +1 -1
  202. package/components/pn-level-up-modal2.js +1 -1
  203. package/components/pn-level-up.js +2 -2
  204. package/components/pn-link-list.js +1 -1
  205. package/components/pn-mainnav-level2.js +3 -3
  206. package/components/pn-mainnav-level2.js.map +1 -1
  207. package/components/pn-mainnav-link2.js +2 -2
  208. package/components/pn-mainnav-link2.js.map +1 -1
  209. package/components/pn-mainnav-list2.js +2 -2
  210. package/components/pn-mainnav-list2.js.map +1 -1
  211. package/components/pn-mainnav2.js +2 -2
  212. package/components/pn-mainnav2.js.map +1 -1
  213. package/components/pn-marketweb-carousel2.js +1 -1
  214. package/components/pn-marketweb-header-main-row.d.ts +11 -0
  215. package/components/pn-marketweb-header-main-row.js +8 -0
  216. package/components/pn-marketweb-header-main-row.js.map +1 -0
  217. package/components/pn-marketweb-header-main-row2.js +281 -0
  218. package/components/pn-marketweb-header-main-row2.js.map +1 -0
  219. package/components/pn-marketweb-header-shared.js +192 -0
  220. package/components/pn-marketweb-header-shared.js.map +1 -0
  221. package/components/pn-marketweb-header-skeleton-loader.d.ts +11 -0
  222. package/components/pn-marketweb-header-skeleton-loader.js +37 -0
  223. package/components/pn-marketweb-header-skeleton-loader.js.map +1 -0
  224. package/components/pn-marketweb-header-toggle.d.ts +11 -0
  225. package/components/pn-marketweb-header-toggle.js +8 -0
  226. package/components/pn-marketweb-header-toggle.js.map +1 -0
  227. package/components/pn-marketweb-header-toggle2.js +61 -0
  228. package/components/pn-marketweb-header-toggle2.js.map +1 -0
  229. package/components/pn-marketweb-header-top-row.d.ts +11 -0
  230. package/components/pn-marketweb-header-top-row.js +8 -0
  231. package/components/pn-marketweb-header-top-row.js.map +1 -0
  232. package/components/pn-marketweb-header-top-row2.js +238 -0
  233. package/components/pn-marketweb-header-top-row2.js.map +1 -0
  234. package/components/pn-marketweb-header.d.ts +11 -0
  235. package/components/pn-marketweb-header.js +1206 -0
  236. package/components/pn-marketweb-header.js.map +1 -0
  237. package/components/pn-marketweb-icon.js +1 -1
  238. package/components/pn-marketweb-siteheader-login-button2.js +1 -1
  239. package/components/pn-marketweb-siteheader-login-linklist2.js +1 -1
  240. package/components/pn-marketweb-siteheader-login-linklist2.js.map +1 -1
  241. package/components/pn-marketweb-siteheader-login-mypage-button.js +1 -1
  242. package/components/pn-marketweb-siteheader-login-profileselection2.js +1 -1
  243. package/components/pn-marketweb-siteheader-login-profileselection2.js.map +1 -1
  244. package/components/pn-marketweb-siteheader-login2.js +4 -2
  245. package/components/pn-marketweb-siteheader-login2.js.map +1 -1
  246. package/components/pn-marketweb-siteheader-unified-login2.js +1 -1
  247. package/components/pn-marketweb-siteheader.js +5 -197
  248. package/components/pn-marketweb-siteheader.js.map +1 -1
  249. package/components/pn-marketweb-table.js +1 -1
  250. package/components/pn-media-block.js +1 -1
  251. package/components/pn-pex-pricefinder.js +1 -1
  252. package/components/pn-product-card2.js +1 -1
  253. package/components/pn-product-pricelist-result.js +1 -1
  254. package/components/pn-product-pricelist.js +2 -2
  255. package/components/pn-product-tile-info2.js +1 -1
  256. package/components/pn-product-tile.js +1 -1
  257. package/components/pn-profile-modal-customernumber.js +1 -1
  258. package/components/pn-profile-modal-profile.js +2 -2
  259. package/components/pn-profile-modal-type.js +1 -1
  260. package/components/pn-profile-modal.js +1 -1
  261. package/components/pn-profile-selector-option.js +1 -1
  262. package/components/pn-profile-selector.js +1 -1
  263. package/components/pn-proxio-findprice-result2.js +2 -2
  264. package/components/pn-proxio-findprice.js +3 -3
  265. package/components/pn-proxio-pricegroup.js +2 -2
  266. package/components/pn-proxio-productcard-description2.js +1 -1
  267. package/components/pn-proxio-productcard-information2.js +1 -1
  268. package/components/pn-proxio-productcard2.js +1 -1
  269. package/components/pn-qr-code-generator2.js +1 -1
  270. package/components/pn-sidenav-level.js +1 -1
  271. package/components/pn-sidenav-link.js +1 -1
  272. package/components/pn-sidenav-togglebutton.js +1 -1
  273. package/components/pn-sidenav.js +1 -1
  274. package/components/pn-site-footer-col2.js +1 -1
  275. package/components/pn-site-footer2.js +1 -1
  276. package/components/pn-site-selector-item2.js +2 -2
  277. package/components/pn-site-selector-item2.js.map +1 -1
  278. package/components/pn-site-selector2.js +4 -2
  279. package/components/pn-site-selector2.js.map +1 -1
  280. package/components/pn-swan2.js +1 -1
  281. package/components/pn-titletag2.js +1 -1
  282. package/components/pn-usp-promoter.js +1 -1
  283. package/components/pn-versa-card.js +1 -1
  284. package/components/pn-versa-card.js.map +1 -1
  285. package/components/translations.js +189 -14
  286. package/components/translations.js.map +1 -1
  287. package/components/translations2.js +21 -0
  288. package/components/translations2.js.map +1 -0
  289. package/esm/header-theme-d09b64c7.js +234 -0
  290. package/esm/header-theme-d09b64c7.js.map +1 -0
  291. package/esm/index-c0a4d8bd.js +24 -16
  292. package/esm/loader.js +1 -1
  293. package/esm/pn-app-banner.entry.js +1 -1
  294. package/esm/pn-breakpoints.entry.js +1 -1
  295. package/esm/pn-chat-message_2.entry.js +2 -2
  296. package/esm/pn-chat.entry.js +2 -2
  297. package/esm/pn-customernumber-selector-option.entry.js +1 -1
  298. package/esm/pn-customernumber-selector.entry.js +1 -1
  299. package/esm/pn-find-price-result.entry.js +1 -1
  300. package/esm/pn-find-price.entry.js +2 -2
  301. package/esm/pn-find-service-and-price-result.entry.js +1 -1
  302. package/esm/pn-find-service-and-price.entry.js +1 -1
  303. package/esm/pn-hero-block-international.entry.js +1 -1
  304. package/esm/{pn-language-selector_9.entry.js → pn-language-selector_13.entry.js} +381 -22
  305. package/esm/pn-language-selector_13.entry.js.map +1 -0
  306. package/esm/pn-level-up-modal.entry.js +1 -1
  307. package/esm/pn-level-up.entry.js +2 -2
  308. package/esm/pn-link-list.entry.js +1 -1
  309. package/esm/pn-market-web-components.js +1 -1
  310. package/esm/pn-marketweb-header-main-row_2.entry.js +217 -0
  311. package/esm/pn-marketweb-header-main-row_2.entry.js.map +1 -0
  312. package/esm/pn-marketweb-header-skeleton-loader.entry.js +19 -0
  313. package/esm/pn-marketweb-header-skeleton-loader.entry.js.map +1 -0
  314. package/esm/pn-marketweb-header-toggle.entry.js +42 -0
  315. package/esm/pn-marketweb-header-toggle.entry.js.map +1 -0
  316. package/esm/pn-marketweb-header.entry.js +1039 -0
  317. package/esm/pn-marketweb-header.entry.js.map +1 -0
  318. package/esm/pn-marketweb-icon.entry.js +1 -1
  319. package/esm/{pn-marketweb-siteheader-login-linklist.entry.js → pn-marketweb-siteheader-login-button_2.entry.js} +44 -3
  320. package/esm/pn-marketweb-siteheader-login-button_2.entry.js.map +1 -0
  321. package/esm/pn-marketweb-siteheader-login-mypage-button.entry.js +1 -1
  322. package/esm/pn-marketweb-siteheader.entry.js +5 -197
  323. package/esm/pn-marketweb-siteheader.entry.js.map +1 -1
  324. package/esm/pn-marketweb-table.entry.js +1 -1
  325. package/esm/pn-media-block.entry.js +1 -1
  326. package/esm/pn-pex-pricefinder.entry.js +1 -1
  327. package/esm/pn-product-card_3.entry.js +1 -1
  328. package/esm/pn-product-pricelist-result.entry.js +1 -1
  329. package/esm/pn-product-pricelist.entry.js +2 -2
  330. package/esm/pn-product-tile-info_2.entry.js +1 -1
  331. package/esm/pn-product-tile.entry.js +1 -1
  332. package/esm/pn-profile-modal-customernumber.entry.js +1 -1
  333. package/esm/pn-profile-modal-profile.entry.js +2 -2
  334. package/esm/pn-profile-modal-type.entry.js +1 -1
  335. package/esm/pn-profile-modal.entry.js +1 -1
  336. package/esm/pn-profile-selector-option.entry.js +1 -1
  337. package/esm/pn-profile-selector.entry.js +1 -1
  338. package/esm/pn-proxio-findprice-result.entry.js +1 -1
  339. package/esm/pn-proxio-findprice.entry.js +3 -3
  340. package/esm/pn-proxio-pricegroup.entry.js +1 -1
  341. package/esm/pn-proxio-productcard_4.entry.js +3 -3
  342. package/esm/pn-qr-code-generator.entry.js +1 -1
  343. package/esm/pn-sidenav-level.entry.js +1 -1
  344. package/esm/pn-sidenav-link.entry.js +1 -1
  345. package/esm/pn-sidenav-togglebutton.entry.js +1 -1
  346. package/esm/pn-sidenav.entry.js +1 -1
  347. package/esm/pn-site-footer_3.entry.js +3 -3
  348. package/esm/pn-titletag.entry.js +1 -1
  349. package/esm/pn-usp-promoter.entry.js +1 -1
  350. package/esm/pn-versa-card.entry.js +1 -1
  351. package/esm/pn-versa-card.entry.js.map +1 -1
  352. package/esm/translations-d2f5804e.js +196 -0
  353. package/esm/translations-d2f5804e.js.map +1 -0
  354. package/package.json +1 -1
  355. package/pn-market-web-components/{p-4a164ef8.entry.js → p-03728b0b.entry.js} +2 -2
  356. package/pn-market-web-components/p-04f51418.js +2 -0
  357. package/pn-market-web-components/p-04f51418.js.map +1 -0
  358. package/pn-market-web-components/{p-e43a36e0.entry.js → p-067c1c2f.entry.js} +2 -2
  359. package/pn-market-web-components/p-16570ed2.entry.js +2 -0
  360. package/pn-market-web-components/p-16570ed2.entry.js.map +1 -0
  361. package/pn-market-web-components/{p-2616cdc1.entry.js → p-191c8cfc.entry.js} +2 -2
  362. package/pn-market-web-components/{p-ca003c1f.entry.js → p-1a91c313.entry.js} +2 -2
  363. package/pn-market-web-components/{p-ab1e3dc2.entry.js → p-1f8304be.entry.js} +2 -2
  364. package/pn-market-web-components/{p-a3f601cb.entry.js → p-24ffac0a.entry.js} +2 -2
  365. package/pn-market-web-components/p-3239c36b.entry.js +2 -0
  366. package/pn-market-web-components/p-3239c36b.entry.js.map +1 -0
  367. package/pn-market-web-components/{p-12cafd55.entry.js → p-3aa74418.entry.js} +2 -2
  368. package/pn-market-web-components/p-3d27faee.entry.js +2 -0
  369. package/pn-market-web-components/{p-9d0ca27b.entry.js.map → p-3d27faee.entry.js.map} +1 -1
  370. package/pn-market-web-components/p-3e25f431.entry.js +2 -0
  371. package/pn-market-web-components/p-3e25f431.entry.js.map +1 -0
  372. package/pn-market-web-components/{p-64f6691d.entry.js → p-42da7c5f.entry.js} +2 -2
  373. package/pn-market-web-components/{p-f0d423d0.entry.js → p-43748ca2.entry.js} +2 -2
  374. package/pn-market-web-components/{p-1c644b91.entry.js → p-466958a8.entry.js} +2 -2
  375. package/pn-market-web-components/{p-150da889.entry.js → p-4ab53d5d.entry.js} +2 -2
  376. package/pn-market-web-components/{p-118fe47d.entry.js → p-4d595345.entry.js} +2 -2
  377. package/pn-market-web-components/{p-0f6f715b.entry.js → p-4dac1980.entry.js} +2 -2
  378. package/pn-market-web-components/{p-a13f1f73.entry.js → p-4fcce83d.entry.js} +2 -2
  379. package/pn-market-web-components/{p-89fbca3b.entry.js → p-5a51d0b0.entry.js} +2 -2
  380. package/pn-market-web-components/{p-f4d2d0d3.entry.js → p-61346425.entry.js} +2 -2
  381. package/pn-market-web-components/{p-6e693269.entry.js → p-6b557670.entry.js} +2 -2
  382. package/pn-market-web-components/{p-e6d6a752.entry.js → p-70a71854.entry.js} +2 -2
  383. package/pn-market-web-components/p-75311d67.js +2 -0
  384. package/pn-market-web-components/p-75311d67.js.map +1 -0
  385. package/pn-market-web-components/p-756d8d95.entry.js +2 -0
  386. package/pn-market-web-components/p-756d8d95.entry.js.map +1 -0
  387. package/pn-market-web-components/{p-c0315c45.entry.js → p-76fb0c21.entry.js} +2 -2
  388. package/pn-market-web-components/{p-b2b2bae0.entry.js → p-81210644.entry.js} +2 -2
  389. package/pn-market-web-components/p-81e4d75b.entry.js +2 -0
  390. package/pn-market-web-components/p-81e4d75b.entry.js.map +1 -0
  391. package/pn-market-web-components/{p-d0f27361.entry.js → p-8382794b.entry.js} +2 -2
  392. package/pn-market-web-components/{p-8f25176b.entry.js → p-8519e39e.entry.js} +2 -2
  393. package/pn-market-web-components/p-8c26c1f2.entry.js +2 -0
  394. package/pn-market-web-components/p-8c26c1f2.entry.js.map +1 -0
  395. package/pn-market-web-components/{p-461c8792.entry.js → p-92b6477c.entry.js} +2 -2
  396. package/pn-market-web-components/{p-0d4d9d90.entry.js → p-9eab8192.entry.js} +2 -2
  397. package/pn-market-web-components/{p-40e632cc.entry.js → p-a3beee11.entry.js} +2 -2
  398. package/pn-market-web-components/{p-01fbf1ce.entry.js → p-a6935dc2.entry.js} +2 -2
  399. package/pn-market-web-components/{p-af646091.entry.js → p-a6dd3e4f.entry.js} +2 -2
  400. package/pn-market-web-components/{p-6d77e747.entry.js → p-af89c95a.entry.js} +2 -2
  401. package/pn-market-web-components/p-b318ff19.entry.js +2 -0
  402. package/pn-market-web-components/{p-0700cb4c.entry.js.map → p-b318ff19.entry.js.map} +1 -1
  403. package/pn-market-web-components/{p-c89f3d6b.entry.js → p-ba14b0ef.entry.js} +2 -2
  404. package/pn-market-web-components/{p-c7965104.entry.js → p-ba680948.entry.js} +2 -2
  405. package/pn-market-web-components/{p-11c6e458.entry.js → p-ba75bfdb.entry.js} +2 -2
  406. package/pn-market-web-components/{p-4149e715.entry.js → p-c186ec41.entry.js} +2 -2
  407. package/pn-market-web-components/{p-66c0c8dc.entry.js → p-c38707f9.entry.js} +2 -2
  408. package/pn-market-web-components/{p-671a8129.entry.js → p-c89cdd5a.entry.js} +2 -2
  409. package/pn-market-web-components/{p-4d848e18.entry.js → p-e8cd1608.entry.js} +2 -2
  410. package/pn-market-web-components/{p-4517a3d4.entry.js → p-ef090656.entry.js} +2 -2
  411. package/pn-market-web-components/p-f23ed5d2.entry.js +2 -0
  412. package/pn-market-web-components/p-f23ed5d2.entry.js.map +1 -0
  413. package/pn-market-web-components/{p-bd8ec517.entry.js → p-f3b4c13d.entry.js} +2 -2
  414. package/pn-market-web-components/{p-ff38b9a5.entry.js → p-f710445f.entry.js} +2 -2
  415. package/pn-market-web-components/{p-2e585ed5.entry.js → p-fcefe4a4.entry.js} +2 -2
  416. package/pn-market-web-components/p-fded22b7.entry.js +2 -0
  417. package/pn-market-web-components/p-fded22b7.entry.js.map +1 -0
  418. package/pn-market-web-components/{p-32bd2ff8.entry.js → p-ff6118f8.entry.js} +2 -2
  419. package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
  420. package/pn-market-web-components/pn-market-web-components.esm.js.map +1 -1
  421. package/types/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-main-row.d.ts +40 -0
  422. package/types/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-skeleton-loader.d.ts +3 -0
  423. package/types/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-top-row.d.ts +30 -0
  424. package/types/components/layout-components/pn-marketweb-header/components/shared/pn-marketweb-header-shared.d.ts +48 -0
  425. package/types/components/layout-components/pn-marketweb-header/mapper/pn-marketweb-header.mapper.d.ts +34 -0
  426. package/types/components/layout-components/pn-marketweb-header/pn-marketweb-header.d.ts +121 -0
  427. package/types/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.d.ts +99 -0
  428. package/types/components/layout-components/pn-marketweb-header/services/pn-marketweb-header.service.d.ts +108 -0
  429. package/types/components/layout-components/pn-marketweb-header/types/pn-marketweb-header.types.d.ts +103 -0
  430. package/types/components/layout-components/pn-marketweb-header/utils/header-i18n.d.ts +16 -0
  431. package/types/components/layout-components/pn-marketweb-header/utils/header-language.d.ts +20 -0
  432. package/types/components/layout-components/pn-marketweb-header/utils/header-menu.d.ts +16 -0
  433. package/types/components/layout-components/pn-marketweb-header/utils/header-theme.d.ts +6 -0
  434. package/types/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.d.ts +49 -0
  435. package/types/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.storage.d.ts +25 -0
  436. package/types/components/layout-components/pn-marketweb-header/utils/header-url.d.ts +41 -0
  437. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.d.ts +2 -0
  438. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-types.d.ts +1 -0
  439. package/types/components/navigation/pn-language-selector/pn-language-selector.d.ts +1 -0
  440. package/types/components/navigation/pn-marketweb-header-toggle/pn-marketweb-header-toggle.d.ts +25 -0
  441. package/types/components/navigation/pn-site-selector/pn-site-selector.d.ts +1 -0
  442. package/types/components/widgets/pn-proxio-pricegroup/pn-proxio-pricegroup.d.ts +1 -1
  443. package/types/components.d.ts +532 -2
  444. package/types/services/pn-refined-marketweb-context/pn-refined-marketweb-context.constants.d.ts +7 -0
  445. package/types/services/pn-refined-marketweb-context/pn-refined-marketweb-context.service.d.ts +24 -0
  446. package/types/services/pn-refined-marketweb-context/pn-refined-marketweb-context.types.d.ts +16 -0
  447. package/umd/pn-marketweb-init.js +1 -1
  448. package/umd/pn-marketweb-salesforce.js +1 -1
  449. package/vscode-data.json +421 -0
  450. package/cjs/pn-language-selector_9.cjs.entry.js +0 -1156
  451. package/cjs/pn-language-selector_9.cjs.entry.js.map +0 -1
  452. package/cjs/pn-mainnav-link.cjs.entry.js +0 -45
  453. package/cjs/pn-mainnav-link.cjs.entry.js.map +0 -1
  454. package/cjs/pn-mainnav-store-13aaa243.js +0 -22
  455. package/cjs/pn-mainnav-store-13aaa243.js.map +0 -1
  456. package/cjs/pn-marketweb-siteheader-login-button_4.cjs.entry.js +0 -366
  457. package/cjs/pn-marketweb-siteheader-login-button_4.cjs.entry.js.map +0 -1
  458. package/cjs/pn-marketweb-siteheader-login-linklist.cjs.entry.js.map +0 -1
  459. package/esm/pn-language-selector_9.entry.js.map +0 -1
  460. package/esm/pn-mainnav-link.entry.js +0 -41
  461. package/esm/pn-mainnav-link.entry.js.map +0 -1
  462. package/esm/pn-mainnav-store-c98d831e.js +0 -19
  463. package/esm/pn-mainnav-store-c98d831e.js.map +0 -1
  464. package/esm/pn-marketweb-siteheader-login-button_4.entry.js +0 -359
  465. package/esm/pn-marketweb-siteheader-login-button_4.entry.js.map +0 -1
  466. package/esm/pn-marketweb-siteheader-login-linklist.entry.js.map +0 -1
  467. package/pn-market-web-components/p-022780ab.entry.js +0 -2
  468. package/pn-market-web-components/p-022780ab.entry.js.map +0 -1
  469. package/pn-market-web-components/p-0700cb4c.entry.js +0 -2
  470. package/pn-market-web-components/p-3c69298b.entry.js +0 -2
  471. package/pn-market-web-components/p-3c69298b.entry.js.map +0 -1
  472. package/pn-market-web-components/p-4bc6d49f.entry.js +0 -2
  473. package/pn-market-web-components/p-4bc6d49f.entry.js.map +0 -1
  474. package/pn-market-web-components/p-4c8bda8f.entry.js +0 -2
  475. package/pn-market-web-components/p-4c8bda8f.entry.js.map +0 -1
  476. package/pn-market-web-components/p-5090bb1d.entry.js +0 -2
  477. package/pn-market-web-components/p-5090bb1d.entry.js.map +0 -1
  478. package/pn-market-web-components/p-9d0ca27b.entry.js +0 -2
  479. package/pn-market-web-components/p-a30de538.entry.js +0 -2
  480. package/pn-market-web-components/p-a30de538.entry.js.map +0 -1
  481. package/pn-market-web-components/p-e3b2486a.js +0 -2
  482. package/pn-market-web-components/p-e3b2486a.js.map +0 -1
  483. /package/pn-market-web-components/{p-4a164ef8.entry.js.map → p-03728b0b.entry.js.map} +0 -0
  484. /package/pn-market-web-components/{p-e43a36e0.entry.js.map → p-067c1c2f.entry.js.map} +0 -0
  485. /package/pn-market-web-components/{p-2616cdc1.entry.js.map → p-191c8cfc.entry.js.map} +0 -0
  486. /package/pn-market-web-components/{p-ca003c1f.entry.js.map → p-1a91c313.entry.js.map} +0 -0
  487. /package/pn-market-web-components/{p-ab1e3dc2.entry.js.map → p-1f8304be.entry.js.map} +0 -0
  488. /package/pn-market-web-components/{p-a3f601cb.entry.js.map → p-24ffac0a.entry.js.map} +0 -0
  489. /package/pn-market-web-components/{p-12cafd55.entry.js.map → p-3aa74418.entry.js.map} +0 -0
  490. /package/pn-market-web-components/{p-64f6691d.entry.js.map → p-42da7c5f.entry.js.map} +0 -0
  491. /package/pn-market-web-components/{p-f0d423d0.entry.js.map → p-43748ca2.entry.js.map} +0 -0
  492. /package/pn-market-web-components/{p-1c644b91.entry.js.map → p-466958a8.entry.js.map} +0 -0
  493. /package/pn-market-web-components/{p-150da889.entry.js.map → p-4ab53d5d.entry.js.map} +0 -0
  494. /package/pn-market-web-components/{p-118fe47d.entry.js.map → p-4d595345.entry.js.map} +0 -0
  495. /package/pn-market-web-components/{p-0f6f715b.entry.js.map → p-4dac1980.entry.js.map} +0 -0
  496. /package/pn-market-web-components/{p-a13f1f73.entry.js.map → p-4fcce83d.entry.js.map} +0 -0
  497. /package/pn-market-web-components/{p-89fbca3b.entry.js.map → p-5a51d0b0.entry.js.map} +0 -0
  498. /package/pn-market-web-components/{p-f4d2d0d3.entry.js.map → p-61346425.entry.js.map} +0 -0
  499. /package/pn-market-web-components/{p-6e693269.entry.js.map → p-6b557670.entry.js.map} +0 -0
  500. /package/pn-market-web-components/{p-e6d6a752.entry.js.map → p-70a71854.entry.js.map} +0 -0
  501. /package/pn-market-web-components/{p-c0315c45.entry.js.map → p-76fb0c21.entry.js.map} +0 -0
  502. /package/pn-market-web-components/{p-b2b2bae0.entry.js.map → p-81210644.entry.js.map} +0 -0
  503. /package/pn-market-web-components/{p-d0f27361.entry.js.map → p-8382794b.entry.js.map} +0 -0
  504. /package/pn-market-web-components/{p-8f25176b.entry.js.map → p-8519e39e.entry.js.map} +0 -0
  505. /package/pn-market-web-components/{p-461c8792.entry.js.map → p-92b6477c.entry.js.map} +0 -0
  506. /package/pn-market-web-components/{p-0d4d9d90.entry.js.map → p-9eab8192.entry.js.map} +0 -0
  507. /package/pn-market-web-components/{p-40e632cc.entry.js.map → p-a3beee11.entry.js.map} +0 -0
  508. /package/pn-market-web-components/{p-01fbf1ce.entry.js.map → p-a6935dc2.entry.js.map} +0 -0
  509. /package/pn-market-web-components/{p-af646091.entry.js.map → p-a6dd3e4f.entry.js.map} +0 -0
  510. /package/pn-market-web-components/{p-6d77e747.entry.js.map → p-af89c95a.entry.js.map} +0 -0
  511. /package/pn-market-web-components/{p-c89f3d6b.entry.js.map → p-ba14b0ef.entry.js.map} +0 -0
  512. /package/pn-market-web-components/{p-c7965104.entry.js.map → p-ba680948.entry.js.map} +0 -0
  513. /package/pn-market-web-components/{p-11c6e458.entry.js.map → p-ba75bfdb.entry.js.map} +0 -0
  514. /package/pn-market-web-components/{p-4149e715.entry.js.map → p-c186ec41.entry.js.map} +0 -0
  515. /package/pn-market-web-components/{p-66c0c8dc.entry.js.map → p-c38707f9.entry.js.map} +0 -0
  516. /package/pn-market-web-components/{p-671a8129.entry.js.map → p-c89cdd5a.entry.js.map} +0 -0
  517. /package/pn-market-web-components/{p-4d848e18.entry.js.map → p-e8cd1608.entry.js.map} +0 -0
  518. /package/pn-market-web-components/{p-4517a3d4.entry.js.map → p-ef090656.entry.js.map} +0 -0
  519. /package/pn-market-web-components/{p-bd8ec517.entry.js.map → p-f3b4c13d.entry.js.map} +0 -0
  520. /package/pn-market-web-components/{p-ff38b9a5.entry.js.map → p-f710445f.entry.js.map} +0 -0
  521. /package/pn-market-web-components/{p-2e585ed5.entry.js.map → p-fcefe4a4.entry.js.map} +0 -0
  522. /package/pn-market-web-components/{p-32bd2ff8.entry.js.map → p-ff6118f8.entry.js.map} +0 -0
@@ -0,0 +1,48 @@
1
+ import type { SiteHeaderI18N } from '../../../pn-marketweb-siteheader/pn-marketweb-siteheader-types';
2
+ import type { HeaderMenuMode, HeaderViewModel } from '../../types/pn-marketweb-header.types';
3
+ import { HeaderAppearance } from '../../utils/header-theme';
4
+ export interface HeaderLogoRenderProps {
5
+ homePageLink?: string;
6
+ homeLabel: string;
7
+ }
8
+ export interface HeaderMenuToggleRenderProps {
9
+ vm: HeaderViewModel;
10
+ activeMenuMode: HeaderMenuMode;
11
+ navigateOnMenuToggle: boolean;
12
+ onMenuToggleChange: (e: CustomEvent<HeaderMenuMode>) => void;
13
+ }
14
+ export interface HeaderLoginRenderProps {
15
+ vm: HeaderViewModel;
16
+ hideLogin: boolean;
17
+ userToken: string;
18
+ userFullname: string;
19
+ userLoggedin: boolean;
20
+ endpoint?: string;
21
+ environment?: string;
22
+ i18n: SiteHeaderI18N;
23
+ showProfileSelection: boolean;
24
+ showUnifiedLogin: boolean;
25
+ checkUserLoggedInStateInterval: number;
26
+ useMarketwebLogin: boolean;
27
+ appearance: HeaderAppearance;
28
+ }
29
+ export interface HeaderLanguageSelectorRenderProps {
30
+ vm: HeaderViewModel;
31
+ hideLanguageSelector: boolean;
32
+ language?: string;
33
+ spaMode: boolean;
34
+ appearance: HeaderAppearance;
35
+ }
36
+ export interface HeaderSiteSelectorRenderProps {
37
+ vm: HeaderViewModel;
38
+ hideSiteSelector: boolean;
39
+ language?: string;
40
+ buttonText?: string;
41
+ appearance: HeaderAppearance;
42
+ adjustSiteSelectorUrl: (href: string) => string;
43
+ }
44
+ export declare function renderHeaderMenuSwitcher(props: HeaderMenuToggleRenderProps): any;
45
+ export declare function renderHeaderLogo(props: HeaderLogoRenderProps): any;
46
+ export declare function renderHeaderLogin(props: HeaderLoginRenderProps): any;
47
+ export declare function renderHeaderLanguageSelector(props: HeaderLanguageSelectorRenderProps): any;
48
+ export declare function renderHeaderSiteSelector(props: HeaderSiteSelectorRenderProps): any;
@@ -0,0 +1,34 @@
1
+ import { HeaderApiPayload, HeaderMapperOptions, HeaderViewModel } from '../types/pn-marketweb-header.types';
2
+ /**
3
+ * Maps backend header data into the internal renderable view model.
4
+ *
5
+ * This mapper is the normalization boundary between the backend header payload
6
+ * and the UI-facing header view model.
7
+ *
8
+ * Top-level menu interpretation:
9
+ * - all items except the last = switchable root menus
10
+ * - last item = shared/common root
11
+ *
12
+ * These semantics are inferred by position, not by stable backend identifiers.
13
+ *
14
+ * Responsibilities
15
+ * ----------------
16
+ * - normalize top-level backend payload sections
17
+ * - optionally adjust relative URLs against the site domain
18
+ * - detect whether the backend menu supports menu switching
19
+ * - preserve the raw normalized menu structure for the wrapper component
20
+ * - prepare a flat `menuItems` list for simpler rendering paths
21
+ *
22
+ * Important
23
+ * ---------
24
+ * - The switchable root items themselves are not intended to be rendered as
25
+ * visible main navigation entries
26
+ * - Visible navigation is derived from:
27
+ * - active root children
28
+ * - plus shared/common root children
29
+ * - If only a shared/common root exists, its children are rendered flat
30
+ * - The wrapper component may choose either:
31
+ * - `menuItems` for flat rendering
32
+ * - or `rawMenuItems` + menu helpers for grouped rendering
33
+ */
34
+ export declare function mapHeaderDataToViewModel(data: HeaderApiPayload, options: HeaderMapperOptions): HeaderViewModel;
@@ -0,0 +1,121 @@
1
+ import { EventEmitter } from '../../../stencil-public-runtime';
2
+ import type { EnvironmentName, MarketName } from '../../../services/pn-refined-marketweb-context/pn-refined-marketweb-context.types';
3
+ import { SiteHeaderI18N } from '../pn-marketweb-siteheader/pn-marketweb-siteheader-types';
4
+ import type { HeaderMenuMode, HeaderViewModel } from './types/pn-marketweb-header.types';
5
+ /**
6
+ * New marketweb header wrapper.
7
+ *
8
+ * Responsibilities:
9
+ * - resolve runtime context
10
+ * - fetch header data
11
+ * - map backend data into a renderable view model
12
+ * - render the layout using existing leaf/header components
13
+ * - owns the active menu mode when a switchable menu structure exists
14
+ */
15
+ export declare class PnMarketwebHeader {
16
+ hostElement: HTMLElement;
17
+ initialActiveMenuMode: HeaderMenuMode;
18
+ /** Optional menu theme labels, e.g. ['Business', 'Private']. passed in as a sting via cms */
19
+ menuThemes?: string;
20
+ /** Market to use for the header. Falls back to refined context resolution when omitted. */
21
+ market: MarketName | null;
22
+ /** Language to use for the header. Falls back to refined context resolution when omitted. */
23
+ language: string | null;
24
+ /** Environment to use for the header. Falls back to refined context resolution when omitted. */
25
+ environment: EnvironmentName | null;
26
+ /** Explicit endpoint override. When omitted it is resolved from market + environment. */
27
+ endpoint: string | null;
28
+ /** Current site id (guid), forwarded into the search component. */
29
+ siteid: string | null;
30
+ /** Current page id forwarded to the header backend endpoint. */
31
+ pageId: string;
32
+ /** Access token passed from backend. */
33
+ userToken: string;
34
+ /** User full name from backend. */
35
+ userFullname: string;
36
+ /** User logged in state from backend. */
37
+ userLoggedin: boolean;
38
+ /** Hides the site selector when true. */
39
+ hideSiteSelector: boolean;
40
+ /** Hides the generated home menu item when true. */
41
+ hideHomeMenuItem: boolean;
42
+ /** Hides the language selector when true. */
43
+ hideLanguageSelector: boolean;
44
+ /** Hides search when true. */
45
+ hideSearch: boolean;
46
+ /** Hides login when true. */
47
+ hideLogin: boolean;
48
+ /** Enables profile selection presentation in the login component. */
49
+ showProfileSelection: boolean;
50
+ /** Enables unified login presentation in the login component. */
51
+ showUnifiedLogin: boolean;
52
+ /** Adjust relative URLs against the site domain when true. */
53
+ siteDomainInUrls: boolean;
54
+ /** Autocomplete endpoint forwarded into the search view model. */
55
+ autocompleteEndpoint: string;
56
+ /** Whether session forwarding should be attempted after login state changes. */
57
+ sessionForward: boolean;
58
+ /** Enables cached requests in FetchHelper when true. */
59
+ cache: boolean;
60
+ /** Optional override for translated search placeholder text. */
61
+ searchPlaceholder: string;
62
+ /** When true, language selector options should not navigate directly by URL. */
63
+ spaMode: boolean;
64
+ /** Interval forwarded to the login component for login state checks. */
65
+ checkUserLoggedInStateInterval: number;
66
+ /** Enables marketweb login mode in the login component. */
67
+ useMarketwebLogin: boolean;
68
+ /** When true, changing menu mode navigates to the selected root href. */
69
+ navigateOnMenuToggle: boolean;
70
+ /** The mapped UI state used for rendering the header. */
71
+ vm: HeaderViewModel | null;
72
+ /** Current translations for the active language. */
73
+ i18n: SiteHeaderI18N;
74
+ /** Simple loading state for the wrapper. */
75
+ status: 'idle' | 'loading' | 'ready' | 'error';
76
+ /** Whether the main search should collapse to a compact version. */
77
+ minimizeSearch: boolean;
78
+ /** Internal login state used for special link handling. */
79
+ loggedIn: boolean;
80
+ /** Active menu mode when the backend structure supports menu switching. */
81
+ activeMenuMode: HeaderMenuMode;
82
+ /** Guard used to prevent watchers from reloading during initial setup. */
83
+ private isInitializing;
84
+ /** Cached raw backend payload so UI-only prop changes can remap without refetching. */
85
+ private rawHeaderData;
86
+ /** Main nav element reference used for overflow calculation. */
87
+ private mainNavEl?;
88
+ /** Emitted when the language changes. */
89
+ changeLanguage: EventEmitter<string>;
90
+ /** Emitted when the market changes. */
91
+ changeMarket: EventEmitter<MarketName>;
92
+ /** Shared helper for backend requests. */
93
+ private fetchHelper;
94
+ /** Service for context resolution and header-data fetching. */
95
+ private headerService;
96
+ private hasResolvedInitialMenuMode;
97
+ componentWillLoad(): Promise<void>;
98
+ onLanguageSelectorChange(e: CustomEvent<string>): void;
99
+ onLanguageChange(): Promise<void>;
100
+ onMarketChange(): Promise<void>;
101
+ onEnvironmentChange(): Promise<void>;
102
+ onEndpointChange(): Promise<void>;
103
+ onPageIdChange(): Promise<void>;
104
+ onPresentationInputChange(): void;
105
+ onLoginStateChange(e: CustomEvent<{
106
+ loggedIn?: boolean;
107
+ token?: string;
108
+ }>): void;
109
+ handleResize(): void;
110
+ private get menuThemeList();
111
+ private get logoUrl();
112
+ private loadHeader;
113
+ private remapViewModel;
114
+ private applyHeaderState;
115
+ private checkMenuOverflow;
116
+ private isUserLoggedIn;
117
+ private adjustSiteSelectorUrl;
118
+ private onMenuToggleChange;
119
+ private getVisibleMenuGroups;
120
+ render(): any;
121
+ }
@@ -0,0 +1,99 @@
1
+ import type { Meta, StoryObj } from '@storybook/web-components';
2
+ import type { HeaderApiEnvelope, HeaderMenuMode } from './types/pn-marketweb-header.types';
3
+ /**
4
+ * Story args for pn-marketweb-header.
5
+ *
6
+ * This story:
7
+ * - renders the real pn-marketweb-header
8
+ * - can optionally intercept its backend fetch call
9
+ * - returns a mocked backend envelope when mocking is enabled
10
+ * - lets the actual header component render and control its own menu switcher
11
+ */
12
+ interface StoryArgs {
13
+ market: string;
14
+ language: string;
15
+ initialActiveMenuMode: HeaderMenuMode;
16
+ menuThemes?: string;
17
+ environment: 'production' | 'preproduction' | 'integration' | 'localhost';
18
+ endpoint: string;
19
+ pageId: string;
20
+ siteid: string;
21
+ userToken: string;
22
+ userFullname: string;
23
+ userLoggedin: boolean;
24
+ hideSiteSelector: boolean;
25
+ hideHomeMenuItem: boolean;
26
+ hideLanguageSelector: boolean;
27
+ hideSearch: boolean;
28
+ hideLogin: boolean;
29
+ showProfileSelection: boolean;
30
+ showUnifiedLogin: boolean;
31
+ siteDomainInUrls: boolean;
32
+ autocompleteEndpoint: string;
33
+ sessionForward: boolean;
34
+ cache: boolean;
35
+ searchPlaceholder: string;
36
+ spaMode: boolean;
37
+ checkUserLoggedInStateInterval: number;
38
+ useMarketwebLogin: boolean;
39
+ navigateOnMenuToggle: boolean;
40
+ /**
41
+ * Mocked backend response envelope.
42
+ *
43
+ * This should match the real backend response shape.
44
+ */
45
+ mockedResponse: HeaderApiEnvelope;
46
+ /**
47
+ * When true, Storybook intercepts the header fetch and returns mockedResponse.
48
+ * When false, the real endpoint is used.
49
+ */
50
+ useMockedResponse: boolean;
51
+ }
52
+ declare const meta: Meta<StoryArgs>;
53
+ export default meta;
54
+ type Story = StoryObj<StoryArgs>;
55
+ /**
56
+ * Baseline story:
57
+ * - 2 switchable roots
58
+ * - 1 shared root
59
+ */
60
+ export declare const TwoModesWithShared: Story;
61
+ /**
62
+ * Verifies that more than 2 switchable roots are supported.
63
+ */
64
+ export declare const ThreeModesWithShared: Story;
65
+ /**
66
+ * Only one mode root + shared.
67
+ * The header should not render the menu switcher.
68
+ */
69
+ export declare const OneModeWithShared: Story;
70
+ /**
71
+ * Shared-only structure.
72
+ * Useful for verifying fallback rendering when no switchable roots exist.
73
+ */
74
+ export declare const SharedOnly: Story;
75
+ /**
76
+ * Same baseline structure, but start on the second mode.
77
+ */
78
+ export declare const StartOnSecondMode: Story;
79
+ /**
80
+ * Same baseline structure, but allow real navigation hrefs on mode change.
81
+ * Mostly useful for checking rendered links rather than interacting in Storybook.
82
+ */
83
+ export declare const NavigationEnabled: Story;
84
+ /**
85
+ * Smaller layout story while still using mocked data.
86
+ */
87
+ export declare const Minimal: Story;
88
+ /**
89
+ * Menu items contain nested sub-menu items.
90
+ */
91
+ export declare const NestedSubmenuItems: Story;
92
+ /**
93
+ * Uses the real local CMS instead of Storybook fetch mocking.
94
+ */
95
+ export declare const LocalCms: Story;
96
+ /**
97
+ * Uses the real integration CMS instead of Storybook fetch mocking. //FIXME: getting cors-safe data at the moment
98
+ */
99
+ export declare const IntegrationCms: Story;
@@ -0,0 +1,108 @@
1
+ import { FetchHelper } from '../../../../globals/FetchHelper';
2
+ import type { EnvironmentName, MarketName } from '../../../../services/pn-refined-marketweb-context/pn-refined-marketweb-context.types';
3
+ import type { SiteHeaderI18N } from '../../pn-marketweb-siteheader/pn-marketweb-siteheader-types';
4
+ import type { HeaderApiPayload, HeaderContext, HeaderMenuMode, HeaderViewModel } from '../types/pn-marketweb-header.types';
5
+ /**
6
+ * Input used when resolving/fetching/building header state.
7
+ */
8
+ export interface LoadHeaderStateInput {
9
+ market?: MarketName | null;
10
+ language?: string | null;
11
+ environment?: EnvironmentName | null;
12
+ endpoint?: string | null;
13
+ pageId?: string;
14
+ cache?: boolean;
15
+ hideHomeMenuItem: boolean;
16
+ siteDomainInUrls: boolean;
17
+ autocompleteEndpoint: string;
18
+ searchPlaceholder: string;
19
+ }
20
+ /**
21
+ * Result returned from service orchestration methods.
22
+ */
23
+ export interface HeaderStateResult {
24
+ context: HeaderContext;
25
+ rawHeaderData: HeaderApiPayload | null;
26
+ vm: HeaderViewModel | null;
27
+ i18n: SiteHeaderI18N;
28
+ status: 'ready' | 'error';
29
+ /**
30
+ * The currently active menu mode used by the wrapper component.
31
+ *
32
+ * This is preserved by the service during remaps, but the effective initial
33
+ * value is resolved by the component layer.
34
+ */
35
+ activeMenuMode: HeaderMenuMode;
36
+ }
37
+ /**
38
+ * Service responsible for:
39
+ * - resolving the effective header context
40
+ * - building the fetch URL for the header endpoint
41
+ * - loading header data from the backend
42
+ * - mapping backend data into a renderable header state
43
+ *
44
+ * This service uses the refined context service as the source of truth
45
+ * for market/language/environment resolution.
46
+ */
47
+ export declare class PnMarketwebHeaderService {
48
+ private fetchHelper;
49
+ private href;
50
+ private doc;
51
+ /**
52
+ * Fixed backend path for loading header data.
53
+ * This is appended to the resolved endpoint domain.
54
+ */
55
+ private endpointPath;
56
+ constructor(fetchHelper: FetchHelper, href?: string, doc?: Document);
57
+ /**
58
+ * Resolves the effective header context.
59
+ *
60
+ * What it does:
61
+ * - uses the RefinedMarketWebContextService to resolve context from the current URL/document
62
+ * - lets explicit input values override resolved values when provided
63
+ * - resolves endpoint from environment + market when endpoint is not explicitly passed in
64
+ * - keeps pageId as part of the final header request context
65
+ */
66
+ private resolveContext;
67
+ /**
68
+ * Builds the final request URL used to fetch header JSON.
69
+ *
70
+ * What it does:
71
+ * - removes a trailing slash from the endpoint base if needed
72
+ * - appends the fixed header endpoint path
73
+ * - adds query parameters for market, language and current page
74
+ */
75
+ private buildFetchUrl;
76
+ /**
77
+ * Fetches header data from the backend.
78
+ *
79
+ * Returns null when required context is missing.
80
+ */
81
+ private fetchHeaderData;
82
+ /**
83
+ * Builds i18n for the current language + presentation overrides.
84
+ */
85
+ private resolveI18n;
86
+ /**
87
+ * Maps raw header data into the current UI view model.
88
+ */
89
+ private mapViewModel;
90
+ /**
91
+ * Resolves context, fetches backend data and builds the final header state.
92
+ */
93
+ loadHeaderState(input: LoadHeaderStateInput): Promise<HeaderStateResult>;
94
+ /**
95
+ * Rebuilds the UI state from already-fetched raw backend data.
96
+ * Use this when presentation-only inputs change and a refetch is not needed.
97
+ */
98
+ remapHeaderState(input: {
99
+ context: HeaderContext;
100
+ rawHeaderData: HeaderApiPayload | null;
101
+ language?: string | null;
102
+ hideHomeMenuItem: boolean;
103
+ siteDomainInUrls: boolean;
104
+ autocompleteEndpoint: string;
105
+ searchPlaceholder: string;
106
+ currentActiveMenuMode: HeaderMenuMode;
107
+ }): HeaderStateResult;
108
+ }
@@ -0,0 +1,103 @@
1
+ import { EnvironmentName, MarketName } from '../../../../services/pn-refined-marketweb-context/pn-refined-marketweb-context.types';
2
+ import { LanguageSelector, LanguageSelectorItem, LoginDialog, MenuItem, MenuSiteDefinition, SiteHeaderI18N, SiteHeaderSearch, SiteSelector } from '../../pn-marketweb-siteheader/pn-marketweb-siteheader-types';
3
+ export type HeaderMenuMode = number;
4
+ export interface HeaderMenuModeOption {
5
+ index: number;
6
+ label: string;
7
+ href?: string;
8
+ root: MenuItem;
9
+ }
10
+ export interface HeaderMenuStructure {
11
+ hasMenuSwitching: boolean;
12
+ modeRoots: MenuItem[];
13
+ menuModeOptions: HeaderMenuModeOption[];
14
+ sharedRoot: MenuItem | null;
15
+ sharedItems: MenuItem[];
16
+ }
17
+ export interface HeaderMenuGroups {
18
+ primaryItems: MenuItem[];
19
+ sharedItems: MenuItem[];
20
+ }
21
+ /**
22
+ * Resolved runtime context used when loading header data.
23
+ * These values may come from explicit props, URL parsing, or environment resolution.
24
+ */
25
+ export interface HeaderContext {
26
+ market: MarketName;
27
+ language: string;
28
+ environment: EnvironmentName;
29
+ endpoint: string;
30
+ pageId?: string;
31
+ }
32
+ export interface HeaderApiPayload {
33
+ sitedefinition: MenuSiteDefinition;
34
+ search: SiteHeaderSearch;
35
+ languageSelectorViewModel: LanguageSelector | null;
36
+ siteSelectorViewModel: SiteSelector | null;
37
+ loginViewModel: LoginDialog | null;
38
+ mainMenu: {
39
+ menuItems: MenuItem[];
40
+ };
41
+ }
42
+ /**
43
+ * The raw API response shape returned by /api/navigation/header.
44
+ * This stays close to the backend structure.
45
+ */
46
+ export interface HeaderApiEnvelope {
47
+ value: HeaderApiPayload;
48
+ formatters?: unknown[];
49
+ contentTypes?: unknown[];
50
+ declaredType?: unknown;
51
+ statusCode?: number;
52
+ }
53
+ export interface HeaderViewModel {
54
+ siteDefinition: MenuSiteDefinition | null;
55
+ menuItems: MenuItem[];
56
+ search: SiteHeaderSearch | null;
57
+ siteSelector: SiteSelector | null;
58
+ languageSelector: LanguageSelector | null;
59
+ languageOptions: LanguageSelectorItem[];
60
+ loginDialog: LoginDialog | null;
61
+ homePageLink: string;
62
+ /**
63
+ * Whether the fetched structure supports switching between multiple top-level menu roots.
64
+ *
65
+ * When true:
66
+ * - all top-level menu items except the last are treated as switchable roots
67
+ * - the last top-level item is treated as the shared/common root
68
+ */
69
+ hasMenuSwitching: boolean;
70
+ /**
71
+ * Visible labels for the toggle component.
72
+ */
73
+ menuModeOptions: HeaderMenuModeOption[];
74
+ /**
75
+ * Default active menu mode index.
76
+ *
77
+ * This index refers to `menuModeOptions` and the corresponding switchable
78
+ * top-level root menu.
79
+ */
80
+ defaultMenuMode: number;
81
+ /**
82
+ * Original normalized top-level menu structure from the backend.
83
+ *
84
+ * Semantics:
85
+ * - all items except the last are switchable root menus
86
+ * - the last item is the shared/common root
87
+ *
88
+ * This is preserved so the wrapper can rebuild visible menu items when the
89
+ * active menu mode changes.
90
+ */
91
+ rawMenuItems: MenuItem[];
92
+ }
93
+ /**
94
+ * Options used when mapping raw API data into a renderable view model.
95
+ * These mostly come from component props or derived i18n values.
96
+ */
97
+ export interface HeaderMapperOptions {
98
+ language: string;
99
+ hideHomeMenuItem: boolean;
100
+ siteDomainInUrls: boolean;
101
+ autocompleteEndpoint?: string;
102
+ i18n: SiteHeaderI18N;
103
+ }
@@ -0,0 +1,16 @@
1
+ import { SiteHeaderI18N } from '../../pn-marketweb-siteheader/pn-marketweb-siteheader-types';
2
+ /**
3
+ * Safe fallback i18n object used before translations have been resolved,
4
+ * or if a language is missing from the translation table.
5
+ */
6
+ export declare const defaultHeaderI18n: SiteHeaderI18N;
7
+ /**
8
+ * Resolves the i18n object for the current language and applies overrides.
9
+ *
10
+ * What it does:
11
+ * - Looks up translation values for the selected language
12
+ * - Falls back to a safe default object if the language is missing
13
+ * - Allows the search placeholder to be overridden by a prop
14
+ * - Ensures "home" always has a non-empty fallback value
15
+ */
16
+ export declare function resolveHeaderTranslations(language?: string, searchPlaceholder?: string): SiteHeaderI18N;
@@ -0,0 +1,20 @@
1
+ import { LanguageSelector, LanguageSelectorItem, MenuSiteDefinition } from '../../pn-marketweb-siteheader/pn-marketweb-siteheader-types';
2
+ /**
3
+ * Builds the list of language options that should actually be shown.
4
+ *
5
+ * What it does:
6
+ * - Reads the backend-provided language selector model
7
+ * - Checks page <link rel="alternate" hreflang="..."> tags
8
+ * - If hreflang tags exist, only languages with matching tags are shown
9
+ * - If no hreflang tags exist, all backend-provided languages are shown
10
+ */
11
+ export declare function getLanguageOptions(languageSelector: LanguageSelector | null): LanguageSelectorItem[];
12
+ /**
13
+ * Resolves the URL for a given language option.
14
+ *
15
+ * What it does:
16
+ * - Returns null in SPA mode so language switching can be handled by events only
17
+ * - Uses an existing hreflang alternate URL if one exists in the document
18
+ * - Otherwise falls back to generating a language URL from the site definition
19
+ */
20
+ export declare function getLanguageVersionUrl(item: LanguageSelectorItem, siteDefinition: MenuSiteDefinition | null, spaMode: boolean): string | null;
@@ -0,0 +1,16 @@
1
+ import { MenuItem, PromotedMenuItem, SiteHeaderI18N } from '../../pn-marketweb-siteheader/pn-marketweb-siteheader-types';
2
+ /**
3
+ * Adds a Home item at the beginning of the main menu when needed.
4
+ *
5
+ * What it does:
6
+ * - Returns the input untouched when hideHomeMenuItem is true
7
+ * - Avoids adding a duplicate Home item if one already exists first in the list
8
+ * - Otherwise prepends a synthetic Home item using the translated label
9
+ */
10
+ export declare function prependHomeMenuItem(items: MenuItem[], i18n: SiteHeaderI18N, homeUrl: string, hideHomeMenuItem: boolean): MenuItem[];
11
+ /**
12
+ * Creates a stable-ish tracking id for promoted menu items.
13
+ *
14
+ * This mirrors the old wrapper behavior and is used when rendering promoted links.
15
+ */
16
+ export declare function promotedItemId(item: PromotedMenuItem): string;
@@ -0,0 +1,6 @@
1
+ import type { HeaderMenuModeOption } from '../types/pn-marketweb-header.types';
2
+ export type HeaderTheme = 'business' | 'private';
3
+ export type HeaderAppearance = 'light' | 'dark';
4
+ export declare function normalizeHeaderTheme(theme: HeaderTheme): HeaderTheme;
5
+ export declare function getAppearanceForTheme(theme: HeaderTheme): HeaderAppearance;
6
+ export declare function resolveHeaderMenuThemes(menuThemes: string | undefined, menuModeOptions: HeaderMenuModeOption[] | undefined): HeaderTheme[];
@@ -0,0 +1,49 @@
1
+ import type { MenuItem } from '../../pn-marketweb-siteheader/pn-marketweb-siteheader-types';
2
+ import type { HeaderMenuGroups, HeaderMenuMode, HeaderMenuStructure } from '../types/pn-marketweb-header.types';
3
+ /**
4
+ * Header menu mode utilities.
5
+ *
6
+ * Purpose
7
+ * -------
8
+ * Interprets the backend top-level menu structure used for header menu
9
+ * switching.
10
+ *
11
+ * Expected top-level order:
12
+ * - all items except the last = switchable root menus
13
+ * - last item = shared/common root
14
+ *
15
+ * Responsibilities
16
+ * ----------------
17
+ * - extract a structured representation of the switchable menu roots
18
+ * - resolve the active root for a selected mode
19
+ * - return grouped or flat visible items for rendering
20
+ */
21
+ export declare function extractToggleableMenuStructure(menuItems: MenuItem[]): HeaderMenuStructure;
22
+ /**
23
+ * Returns the active root item for the selected mode.
24
+ *
25
+ * Falls back to the first available mode root when the requested mode
26
+ * is out of bounds.
27
+ */
28
+ export declare function getToggleRootForMode(structure: HeaderMenuStructure, mode: HeaderMenuMode): MenuItem | null;
29
+ /**
30
+ * Returns the active root item for the selected mode directly from raw menu items.
31
+ */
32
+ export declare function getToggleRootForMenuItems(menuItems: MenuItem[], mode: HeaderMenuMode): MenuItem | null;
33
+ /**
34
+ * Returns grouped visible items for rendering.
35
+ *
36
+ * - primaryItems = children of the active root
37
+ * - sharedItems = children of the shared/common root
38
+ */
39
+ export declare function getMenuGroupsForMode(structure: HeaderMenuStructure, mode: HeaderMenuMode): HeaderMenuGroups;
40
+ /**
41
+ * Returns grouped visible items directly from raw menu items.
42
+ */
43
+ export declare function getVisibleMenuGroupsForMode(menuItems: MenuItem[], mode: HeaderMenuMode): HeaderMenuGroups;
44
+ /**
45
+ * Builds a flat list of visible menu items for the selected mode.
46
+ *
47
+ * Useful for render paths that do not need grouped rendering.
48
+ */
49
+ export declare function buildMenuItemsForMode(structure: HeaderMenuStructure, mode: HeaderMenuMode): MenuItem[];
@@ -0,0 +1,25 @@
1
+ import type { HeaderMenuMode } from '../types/pn-marketweb-header.types';
2
+ /**
3
+ * Returns the previously selected menu mode from localStorage.
4
+ *
5
+ * Returns null if:
6
+ * - nothing is stored
7
+ * - value is invalid
8
+ * - storage is unavailable
9
+ */
10
+ export declare function getStoredHeaderMenuMode(): HeaderMenuMode | null;
11
+ /**
12
+ * Persists the selected menu mode in localStorage.
13
+ *
14
+ * Storage failures are intentionally ignored.
15
+ */
16
+ export declare function storeHeaderMenuMode(mode: HeaderMenuMode): void;
17
+ /**
18
+ * Resolves the effective initial menu mode.
19
+ *
20
+ * Priority:
21
+ * 1. Stored user preference
22
+ * 2. Server-provided initial mode
23
+ * 3. Fallback to first mode (index 0)
24
+ */
25
+ export declare function resolveInitialHeaderMenuMode(hasMenuSwitching: boolean, initialActiveMenuMode?: HeaderMenuMode | null): HeaderMenuMode;