@postnord/pn-marketweb-components 4.2.5 → 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 (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 +1 -1
  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 @@
1
+ {"file":"pn-marketweb-header.entry.cjs.js","mappings":"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","names":["extractToggleableMenuStructure","buildMenuItemsForMode","prependHomeMenuItem","getLanguageOptions","translations","FetchHelper","resolveHeaderMenuThemes","headerState","getToggleRootForMenuItems","getVisibleMenuGroupsForMode","h","Host","Fragment"],"sources":["src/services/pn-refined-marketweb-context/pn-refined-marketweb-context.constants.ts","src/services/pn-refined-marketweb-context/pn-refined-marketweb-context.service.ts","src/components/layout-components/pn-marketweb-header/utils/header-url.ts","src/components/layout-components/pn-marketweb-header/mapper/pn-marketweb-header.mapper.ts","src/components/layout-components/pn-marketweb-header/utils/header-i18n.ts","src/components/layout-components/pn-marketweb-header/services/pn-marketweb-header.service.ts","src/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.storage.ts","src/components/layout-components/pn-marketweb-header/pn-marketweb-header.scss?tag=pn-marketweb-header","src/components/layout-components/pn-marketweb-header/pn-marketweb-header.tsx"],"sourcesContent":["import type {\n EnvironmentName,\n MarketConfig,\n MarketName,\n} from './pn-refined-marketweb-context.types';\n\nexport const ALLOWED_LANGUAGES = [\n 'sv',\n 'da',\n 'fi',\n 'no',\n 'en',\n 'de',\n 'zh',\n 'fr',\n 'es',\n 'it',\n 'nl',\n] as const;\n\nexport const ALLOWED_MARKETS: MarketName[] = [\n 'se',\n 'dk',\n 'fi',\n 'no',\n 'com',\n 'de',\n 'tpl',\n 'group',\n];\n\nexport const WWW_MARKETS: MarketName[] = [\n 'se',\n 'dk',\n 'fi',\n 'no',\n 'de',\n 'com',\n];\n\nexport const DEVELOPMENT_DOMAINS = [\n 'localhost',\n '.local',\n 'local.',\n '.dev',\n 'dev.',\n] as const;\n\nexport const MARKETS: Record<MarketName, MarketConfig> = {\n se: {\n fallbackLanguage: 'sv',\n integration: 'se-inte.postnord.com',\n preproduction: 'se-prep.postnord.com',\n production: 'se-prod.postnord.com',\n live: 'www.postnord.se',\n },\n dk: {\n fallbackLanguage: 'da',\n integration: 'dk-inte.postnord.com',\n preproduction: 'dk-prep.postnord.com',\n production: 'dk-prod.postnord.com',\n live: 'www.postnord.dk',\n },\n fi: {\n fallbackLanguage: 'fi',\n integration: 'fi-inte.postnord.com',\n preproduction: 'fi-prep.postnord.com',\n production: 'fi-prod.postnord.com',\n live: 'www.postnord.fi',\n },\n no: {\n fallbackLanguage: 'no',\n integration: 'no-inte.postnord.com',\n preproduction: 'no-prep.postnord.com',\n production: 'no-prod.postnord.com',\n live: 'www.postnord.no',\n },\n com: {\n fallbackLanguage: 'en',\n integration: 'com-inte.postnord.com',\n preproduction: 'com-prep.postnord.com',\n production: 'com-prod.postnord.com',\n live: 'www.postnord.com',\n },\n de: {\n fallbackLanguage: 'en',\n integration: 'de-inte.postnord.com',\n preproduction: 'de-prep.postnord.com',\n production: 'de-prod.postnord.com',\n live: 'www.postnord.de',\n },\n tpl: {\n fallbackLanguage: 'sv',\n integration: 'tpl-inte.postnord.com',\n preproduction: 'tpl-prep.postnord.com',\n production: 'tpl-prod.postnord.com',\n live: 'www.tpl.postnord.com',\n },\n group: {\n fallbackLanguage: 'en',\n integration: 'group-inte.postnord.com',\n preproduction: 'group-prep.postnord.com',\n production: 'group-prod.postnord.com',\n live: 'group.postnord.com',\n },\n};\n\nexport const ENVIRONMENT_ALIASES: Record<string, EnvironmentName> = {\n integration: 'integration',\n inte: 'integration',\n preproduction: 'preproduction',\n prep: 'preproduction',\n production: 'production',\n prod: 'production',\n};","import {\n ALLOWED_LANGUAGES,\n ALLOWED_MARKETS,\n DEVELOPMENT_DOMAINS,\n ENVIRONMENT_ALIASES,\n MARKETS,\n WWW_MARKETS,\n} from './pn-refined-marketweb-context.constants';\nimport type {\n EnvironmentInput,\n EnvironmentName,\n MarketName,\n MarketWebContext,\n} from './pn-refined-marketweb-context.types';\n\nexport class RefinedMarketWebContextService {\n private readonly href: string;\n private readonly doc?: Document;\n\n constructor(options?: {\n href?: string;\n doc?: Document;\n }) {\n this.href = options?.href ?? window.location.href;\n this.doc = options?.doc ?? document;\n }\n\n resolve(): MarketWebContext {\n const url = new URL(this.href);\n const market = this.resolveMarket(url);\n const environment = this.resolveEnvironment(url);\n const language = this.resolveLanguage(market);\n\n return {\n market,\n environment,\n language,\n };\n }\n\n getMarket(): MarketName {\n return this.resolve().market;\n }\n\n getEnvironmentName(): EnvironmentName {\n return this.resolve().environment;\n }\n\n getLanguage(): string {\n return this.resolve().language;\n }\n\n isDevEnvironment(): boolean {\n const hostname = new URL(this.href).hostname.toLowerCase();\n return DEVELOPMENT_DOMAINS.some(fragment => hostname.includes(fragment));\n }\n\n getEndpoint(environment: EnvironmentInput, market: MarketName): string {\n if (environment === 'localhost') {\n return '';\n }\n\n const currentHostname = new URL(this.href).hostname.toLowerCase();\n const config = MARKETS[market];\n\n if (environment === 'production' && currentHostname === config.live.toLowerCase()) {\n return `https://${config.live}`;\n }\n\n if (environment !== 'production' && currentHostname === config[environment].toLowerCase()) {\n return `https://${config[environment]}`;\n }\n\n if (environment === 'production') {\n if (WWW_MARKETS.includes(market)) {\n return `https://${config.live}`;\n }\n\n if (market === 'tpl') {\n return 'https://www.tpl.postnord.com';\n }\n\n return `https://${config.live}`;\n }\n\n return `https://${config[environment]}`;\n }\n\n private resolveEnvironment(url: URL): EnvironmentName {\n const hostname = url.hostname.toLowerCase();\n\n const matchedAlias = Object.keys(ENVIRONMENT_ALIASES).find(alias =>\n hostname.includes(`-${alias}`)\n );\n\n if (matchedAlias) {\n return ENVIRONMENT_ALIASES[matchedAlias];\n }\n\n const isKnownLiveHost = Object.values(MARKETS).some(\n config => config.live.toLowerCase() === hostname\n );\n\n if (isKnownLiveHost || hostname.includes('www.')) {\n return 'production';\n }\n\n return 'integration';\n }\n\n private resolveMarket(url: URL): MarketName {\n const hostname = url.hostname.toLowerCase();\n\n const fromLiveDomain = this.resolveMarketFromLiveDomain(hostname);\n if (fromLiveDomain) return fromLiveDomain;\n\n const fromEnvironmentHost = this.resolveMarketFromEnvironmentHost(hostname);\n if (fromEnvironmentHost) return fromEnvironmentHost;\n\n const fromPostnordSubdomain = this.resolveMarketFromPostnordSubdomain(hostname);\n if (fromPostnordSubdomain) return fromPostnordSubdomain;\n\n if (this.isDevEnvironment()) {\n const fromDevUrl = this.resolveMarketFromDevelopmentUrl(url);\n if (fromDevUrl) return fromDevUrl;\n }\n\n return 'se';\n }\n\n private resolveLanguage(market: MarketName): string {\n const candidates = [\n this.doc?.documentElement?.getAttribute('lang'),\n this.doc?.querySelector('meta[http-equiv=\"content-language\"]')?.getAttribute('content'),\n this.doc?.querySelector('meta[property=\"og:locale\"]')?.getAttribute('content'),\n this.doc?.querySelector('[lang]')?.getAttribute('lang'),\n ];\n\n for (const candidate of candidates) {\n const normalized = this.normalizeLanguage(candidate);\n if (normalized) {\n return normalized;\n }\n }\n\n return MARKETS[market].fallbackLanguage;\n }\n\n private normalizeLanguage(value?: string | null): string | undefined {\n if (!value) {\n return undefined;\n }\n\n const normalized = value.trim().toLowerCase().split(/[-_]/)[0];\n\n return ALLOWED_LANGUAGES.includes(\n normalized as (typeof ALLOWED_LANGUAGES)[number]\n )\n ? normalized\n : undefined;\n }\n\n private resolveMarketFromLiveDomain(hostname: string): MarketName | undefined {\n const matched = Object.entries(MARKETS).find(\n ([, config]) => config.live.toLowerCase() === hostname\n );\n\n return matched?.[0] as MarketName | undefined;\n }\n\n private resolveMarketFromEnvironmentHost(hostname: string): MarketName | undefined {\n const matched = Object.entries(MARKETS).find(([, config]) =>\n [config.integration, config.preproduction, config.production].some(\n envHost => envHost.toLowerCase() === hostname\n )\n );\n\n return matched?.[0] as MarketName | undefined;\n }\n\n private resolveMarketFromPostnordSubdomain(hostname: string): MarketName | undefined {\n if (hostname.includes('www')) {\n return undefined;\n }\n\n if (!hostname.includes('.postnord.')) {\n return undefined;\n }\n\n const postnordIndex = hostname.indexOf('.postnord.');\n const beforePostnord = hostname.substring(0, postnordIndex);\n const parts = beforePostnord.split('.').filter(Boolean);\n\n if (parts.length === 0) {\n return undefined;\n }\n\n const closestSubdomain = parts[parts.length - 1];\n return this.isMarketName(closestSubdomain) ? closestSubdomain : undefined;\n }\n\n private resolveMarketFromDevelopmentUrl(url: URL): MarketName | undefined {\n const target = `${url.hostname}${url.pathname}`.toLowerCase();\n\n const matchedMarket = ALLOWED_MARKETS.find(market => {\n const patterns = [\n `/${market}/`,\n `/${market}`,\n `.${market}.`,\n `.${market}/`,\n `${market}.`,\n ];\n\n return patterns.some(pattern => target.includes(pattern));\n });\n\n if (matchedMarket) {\n return matchedMarket;\n }\n\n const matchedByFallbackLanguage = Object.entries(MARKETS).find(([, config]) => {\n const language = config.fallbackLanguage.toLowerCase();\n const patterns = [\n `/${language}/`,\n `/${language}`,\n `.${language}.`,\n `.${language}/`,\n `${language}.`,\n ];\n\n return patterns.some(pattern => target.includes(pattern));\n });\n\n return matchedByFallbackLanguage?.[0] as MarketName | undefined;\n }\n\n private isMarketName(value: string): value is MarketName {\n return ALLOWED_MARKETS.includes(value as MarketName);\n }\n}","import {\n LoginDialog,\n MenuItem,\n MenuSiteDefinition,\n} from '../../pn-marketweb-siteheader/pn-marketweb-siteheader-types';\n\n/**\n * Removes duplicated language segments from generated URLs.\n *\n * Example:\n * /sv/sv/page -> /sv/page\n *\n * This protects against incorrectly concatenated site-domain-based URLs.\n */\nexport function removeDoubleLanguage(url: string, language: string): string {\n if (!language) {\n return url;\n }\n\n const languageSegment = language.toLowerCase() + '/';\n const doubleLanguageSegment = '/' + languageSegment + languageSegment;\n\n if (url.includes(doubleLanguageSegment)) {\n return url.replace(doubleLanguageSegment, '/' + languageSegment);\n }\n\n return url;\n}\n\n/**\n * Resolves a menu/login href to an absolute site-relative URL when needed.\n *\n * What it does:\n * - Leaves fully-qualified http/https URLs unchanged\n * - Prefixes relative URLs with the current site definition domain\n * - Cleans up accidental double language segments\n */\nexport function adjustHref(href: string, siteDefinition: MenuSiteDefinition, language: string): string {\n if (!href) {\n return href;\n }\n\n if (href.indexOf('http') === 0) {\n return href;\n }\n\n const siteUrl = siteDefinition?.url ?? '';\n const domainUrl =\n siteUrl.lastIndexOf('/') === siteUrl.length - 1\n ? siteUrl.substring(0, siteUrl.length - 1)\n : siteUrl;\n\n return removeDoubleLanguage(domainUrl + href, language);\n}\n\n/**\n * Recursively adjusts a menu item and all child menu items so that\n * relative URLs become site-domain-aware absolute URLs.\n *\n * This returns a new object rather than mutating the original API item.\n */\nexport function adjustMenuItemUrls(\n item: MenuItem,\n siteDefinition: MenuSiteDefinition,\n language: string,\n): MenuItem {\n return {\n ...item,\n href: adjustHref(item.href, siteDefinition, language),\n children: (item.children ?? []).map(child => adjustMenuItemUrls(child, siteDefinition, language)),\n };\n}\n\n/**\n * Adjusts login dialog links so that relative URLs are resolved against\n * the active site domain.\n *\n * This is used when siteDomainInUrls is enabled.\n */\nexport function adjustLoginDialogUrls(\n loginDialog: LoginDialog | null,\n siteDefinition: MenuSiteDefinition,\n language: string,\n): LoginDialog | null {\n if (!loginDialog) {\n return null;\n }\n\n return {\n ...loginDialog,\n loggedInLinks: (loginDialog.loggedInLinks ?? []).map(item => ({\n ...item,\n href: adjustHref(item.href, siteDefinition, language),\n })),\n loginMenuLinks: (loginDialog.loginMenuLinks ?? []).map(item => ({\n ...item,\n href: adjustHref(item.href, siteDefinition, language),\n })),\n };\n}\n\n/**\n * Navigates to the provided href when available.\n */\nexport function navigateToHref(href?: string | null): void {\n if (!href) {\n return;\n }\n\n window.location.href = href;\n}\n\n/**\n * Navigates to a menu item's href when available.\n */\nexport function navigateToMenuItem(item: MenuItem | null): void {\n navigateToHref(item?.href);\n}","import {\n HeaderApiPayload,\n HeaderMapperOptions,\n HeaderViewModel,\n} from '../types/pn-marketweb-header.types';\nimport { getLanguageOptions } from '../utils/header-language';\nimport { prependHomeMenuItem } from '../utils/header-menu';\nimport {\n buildMenuItemsForMode,\n extractToggleableMenuStructure,\n} from '../utils/header-toggle-menu';\nimport {\n adjustLoginDialogUrls,\n adjustMenuItemUrls,\n} from '../utils/header-url';\n\n/**\n * Maps backend header data into the internal renderable view model.\n *\n * This mapper is the normalization boundary between the backend header payload\n * and the UI-facing header view model.\n *\n * Top-level menu interpretation:\n * - all items except the last = switchable root menus\n * - last item = shared/common root\n *\n * These semantics are inferred by position, not by stable backend identifiers.\n *\n * Responsibilities\n * ----------------\n * - normalize top-level backend payload sections\n * - optionally adjust relative URLs against the site domain\n * - detect whether the backend menu supports menu switching\n * - preserve the raw normalized menu structure for the wrapper component\n * - prepare a flat `menuItems` list for simpler rendering paths\n *\n * Important\n * ---------\n * - The switchable root items themselves are not intended to be rendered as\n * visible main navigation entries\n * - Visible navigation is derived from:\n * - active root children\n * - plus shared/common root children\n * - If only a shared/common root exists, its children are rendered flat\n * - The wrapper component may choose either:\n * - `menuItems` for flat rendering\n * - or `rawMenuItems` + menu helpers for grouped rendering\n */\nexport function mapHeaderDataToViewModel(\n data: HeaderApiPayload,\n options: HeaderMapperOptions,\n): HeaderViewModel {\n if (!data || typeof data !== 'object') {\n return {\n siteDefinition: null,\n menuItems: [],\n search: null,\n siteSelector: null,\n languageSelector: null,\n languageOptions: [],\n loginDialog: null,\n homePageLink: '/',\n hasMenuSwitching: false,\n menuModeOptions: [],\n defaultMenuMode: 0,\n rawMenuItems: [],\n };\n }\n\n const siteDefinition = data.sitedefinition ?? null;\n\n /**\n * Keep a normalized copy of the backend menu structure.\n *\n * This raw structure is preserved because the wrapper component may need the\n * original top-level roots in order to:\n * - switch active menu mode\n * - render grouped navigation\n * - resolve mode navigation targets\n *\n * Top-level semantics are positional:\n * - all items except the last = switchable root menus\n * - last item = shared/common root\n */\n const rawMenuItems = (data.mainMenu?.menuItems ?? []).map(item =>\n options.siteDomainInUrls\n ? adjustMenuItemUrls(item, siteDefinition, options.language)\n : { ...item },\n );\n\n const toggleStructure = extractToggleableMenuStructure(rawMenuItems);\n\n /**\n * `menuItems` is kept as a flat convenience list for render paths that do\n * not need to reason about root menus explicitly.\n *\n * This flat list contains:\n * - active-mode primary items when switchable roots exist\n * - plus shared/common items\n *\n * If only a shared/common root exists, its children are rendered flat.\n */\n let menuItems = buildMenuItemsForMode(toggleStructure, 0);\n\n menuItems = prependHomeMenuItem(\n menuItems,\n options.i18n,\n siteDefinition?.url ?? '/',\n options.hideHomeMenuItem,\n );\n\n const search = {\n ...(data.search ?? {}),\n AutocompleteEndpoint: options.autocompleteEndpoint ?? '',\n };\n\n const siteSelector = data.siteSelectorViewModel ?? null;\n const languageSelector = data.languageSelectorViewModel ?? null;\n const languageOptions = getLanguageOptions(languageSelector);\n\n const loginDialog = options.siteDomainInUrls\n ? adjustLoginDialogUrls(data.loginViewModel ?? null, siteDefinition, options.language)\n : data.loginViewModel ?? null;\n\n return {\n siteDefinition,\n menuItems,\n search,\n siteSelector,\n languageSelector,\n languageOptions,\n loginDialog,\n homePageLink: siteDefinition?.url ?? document.location.hostname,\n hasMenuSwitching: toggleStructure.hasMenuSwitching,\n menuModeOptions: toggleStructure.menuModeOptions,\n defaultMenuMode: 0,\n rawMenuItems,\n };\n}","import {\n SiteHeaderI18N,\n} from '../../pn-marketweb-siteheader/pn-marketweb-siteheader-types';\nimport { translations } from '../../pn-marketweb-siteheader/translations';\n\n/**\n * Safe fallback i18n object used before translations have been resolved,\n * or if a language is missing from the translation table.\n */\nexport const defaultHeaderI18n: SiteHeaderI18N = {\n searchlabel: '',\n searchplaceholder: '',\n searchbuttontext: '',\n menuHomeButton: '',\n menuGoBackButton: '',\n mainMenuButton: '',\n menuStartButton: '',\n profileSelectionFlyoutHeading: '',\n unifiedLoginButton: '',\n unifiedMyPagesButton: '',\n home: 'Home',\n};\n\n/**\n * Resolves the i18n object for the current language and applies overrides.\n *\n * What it does:\n * - Looks up translation values for the selected language\n * - Falls back to a safe default object if the language is missing\n * - Allows the search placeholder to be overridden by a prop\n * - Ensures \"home\" always has a non-empty fallback value\n */\nexport function resolveHeaderTranslations(language?: string, searchPlaceholder?: string): SiteHeaderI18N {\n const resolved = (language && translations[language]) ? translations[language] : defaultHeaderI18n;\n\n return {\n ...defaultHeaderI18n,\n ...resolved,\n searchplaceholder: searchPlaceholder || resolved.searchplaceholder || '',\n home: resolved.home && resolved.home.trim() !== '' ? resolved.home : 'Home',\n };\n}","import { FetchHelper } from '../../../../globals/FetchHelper';\nimport {\n RefinedMarketWebContextService,\n} from '../../../../services/pn-refined-marketweb-context/pn-refined-marketweb-context.service';\nimport type {\n EnvironmentName,\n MarketName,\n} from '../../../../services/pn-refined-marketweb-context/pn-refined-marketweb-context.types';\nimport type {\n SiteHeaderI18N,\n} from '../../pn-marketweb-siteheader/pn-marketweb-siteheader-types';\nimport { mapHeaderDataToViewModel } from '../mapper/pn-marketweb-header.mapper';\nimport type {\n HeaderApiEnvelope,\n HeaderApiPayload,\n HeaderContext,\n HeaderMenuMode,\n HeaderViewModel,\n} from '../types/pn-marketweb-header.types';\nimport {\n defaultHeaderI18n,\n resolveHeaderTranslations,\n} from '../utils/header-i18n';\n\n/**\n * Input used when resolving/fetching/building header state.\n */\nexport interface LoadHeaderStateInput {\n market?: MarketName | null;\n language?: string | null;\n environment?: EnvironmentName | null;\n endpoint?: string | null;\n pageId?: string;\n cache?: boolean;\n hideHomeMenuItem: boolean;\n siteDomainInUrls: boolean;\n autocompleteEndpoint: string;\n searchPlaceholder: string;\n}\n\n/**\n * Result returned from service orchestration methods.\n */\nexport interface HeaderStateResult {\n context: HeaderContext;\n rawHeaderData: HeaderApiPayload | null;\n vm: HeaderViewModel | null;\n i18n: SiteHeaderI18N;\n status: 'ready' | 'error';\n /**\n * The currently active menu mode used by the wrapper component.\n *\n * This is preserved by the service during remaps, but the effective initial\n * value is resolved by the component layer.\n */\n activeMenuMode: HeaderMenuMode;\n}\n\n/**\n * Service responsible for:\n * - resolving the effective header context\n * - building the fetch URL for the header endpoint\n * - loading header data from the backend\n * - mapping backend data into a renderable header state\n *\n * This service uses the refined context service as the source of truth\n * for market/language/environment resolution.\n */\nexport class PnMarketwebHeaderService {\n /**\n * Fixed backend path for loading header data.\n * This is appended to the resolved endpoint domain.\n */\n private endpointPath = '/api/navigation/toggle-header';\n\n constructor(\n private fetchHelper: FetchHelper,\n private href: string = window.location.href,\n private doc: Document = document,\n ) { }\n\n /**\n * Resolves the effective header context.\n *\n * What it does:\n * - uses the RefinedMarketWebContextService to resolve context from the current URL/document\n * - lets explicit input values override resolved values when provided\n * - resolves endpoint from environment + market when endpoint is not explicitly passed in\n * - keeps pageId as part of the final header request context\n */\n private async resolveContext(input: {\n market?: MarketName | null;\n language?: string | null;\n environment?: EnvironmentName | null;\n endpoint?: string | null;\n pageId?: string;\n }): Promise<HeaderContext> {\n const contextService = new RefinedMarketWebContextService({\n href: this.href,\n doc: this.doc,\n });\n\n const resolvedContext = contextService.resolve();\n\n const market = input.market ?? resolvedContext.market;\n const language = input.language ?? resolvedContext.language;\n const environment = input.environment ?? resolvedContext.environment;\n\n const endpoint =\n input.endpoint && input.endpoint.trim() !== ''\n ? input.endpoint\n : contextService.getEndpoint(environment, market);\n\n return {\n market,\n language,\n environment,\n endpoint,\n pageId: input.pageId ?? '',\n };\n }\n\n /**\n * Builds the final request URL used to fetch header JSON.\n *\n * What it does:\n * - removes a trailing slash from the endpoint base if needed\n * - appends the fixed header endpoint path\n * - adds query parameters for market, language and current page\n */\n private buildFetchUrl(context: HeaderContext): string {\n const endpointBase =\n context.endpoint.lastIndexOf('/') === context.endpoint.length - 1\n ? context.endpoint.substring(0, context.endpoint.length - 1)\n : context.endpoint;\n\n return `${endpointBase}${this.endpointPath}?market=${context.market}&language=${context.language}&currentPage=${context.pageId ?? ''}`;\n }\n\n /**\n * Fetches header data from the backend.\n *\n * Returns null when required context is missing.\n */\n private async fetchHeaderData(context: HeaderContext, cache = false): Promise<HeaderApiPayload | null> {\n if (!context.market || !context.language || context.endpoint == null) {\n return null;\n }\n\n const fetchUrl = this.buildFetchUrl(context);\n\n const response = await this.fetchHelper.fetchJson(\n fetchUrl,\n { mode: 'cors' },\n cache,\n ) as HeaderApiEnvelope | HeaderApiPayload | null;\n\n if (!response) {\n return null;\n }\n\n return 'value' in response ? response.value : response;\n }\n\n /**\n * Builds i18n for the current language + presentation overrides.\n */\n private resolveI18n(language?: string | null, searchPlaceholder = ''): SiteHeaderI18N {\n if (!language) {\n return defaultHeaderI18n;\n }\n\n return resolveHeaderTranslations(language, searchPlaceholder);\n }\n\n /**\n * Maps raw header data into the current UI view model.\n */\n private mapViewModel(\n rawHeaderData: HeaderApiPayload,\n input: {\n language?: string | null;\n hideHomeMenuItem: boolean;\n siteDomainInUrls: boolean;\n autocompleteEndpoint: string;\n i18n: SiteHeaderI18N;\n },\n ): HeaderViewModel {\n return mapHeaderDataToViewModel(rawHeaderData, {\n language: input.language ?? undefined,\n hideHomeMenuItem: input.hideHomeMenuItem,\n siteDomainInUrls: input.siteDomainInUrls,\n autocompleteEndpoint: input.autocompleteEndpoint,\n i18n: input.i18n,\n });\n }\n\n /**\n * Resolves context, fetches backend data and builds the final header state.\n */\n public async loadHeaderState(input: LoadHeaderStateInput): Promise<HeaderStateResult> {\n const context = await this.resolveContext({\n market: input.market,\n language: input.language,\n environment: input.environment,\n endpoint: input.endpoint,\n pageId: input.pageId,\n });\n\n const i18n = this.resolveI18n(context.language, input.searchPlaceholder);\n const rawHeaderData = await this.fetchHeaderData(context, input.cache ?? false);\n\n\n if (!rawHeaderData) {\n return {\n context,\n rawHeaderData: null,\n vm: null,\n i18n,\n status: 'error',\n activeMenuMode: 0, /* default to first mode */\n };\n }\n\n const vm = this.mapViewModel(rawHeaderData, {\n language: context.language,\n hideHomeMenuItem: input.hideHomeMenuItem,\n siteDomainInUrls: input.siteDomainInUrls,\n autocompleteEndpoint: input.autocompleteEndpoint,\n i18n,\n });\n\n return {\n context,\n rawHeaderData,\n vm,\n i18n,\n status: 'ready',\n activeMenuMode: vm.defaultMenuMode\n };\n }\n\n /**\n * Rebuilds the UI state from already-fetched raw backend data.\n * Use this when presentation-only inputs change and a refetch is not needed.\n */\n public remapHeaderState(input: {\n context: HeaderContext;\n rawHeaderData: HeaderApiPayload | null;\n language?: string | null;\n hideHomeMenuItem: boolean;\n siteDomainInUrls: boolean;\n autocompleteEndpoint: string;\n searchPlaceholder: string;\n currentActiveMenuMode: HeaderMenuMode;\n }): HeaderStateResult {\n const i18n = this.resolveI18n(input.language ?? input.context.language, input.searchPlaceholder);\n\n if (!input.rawHeaderData) {\n return {\n context: input.context,\n rawHeaderData: null,\n vm: null,\n i18n,\n status: 'error',\n activeMenuMode: input.currentActiveMenuMode,\n };\n }\n\n const vm = this.mapViewModel(input.rawHeaderData, {\n language: input.language ?? input.context.language,\n hideHomeMenuItem: input.hideHomeMenuItem,\n siteDomainInUrls: input.siteDomainInUrls,\n autocompleteEndpoint: input.autocompleteEndpoint,\n i18n,\n });\n\n return {\n context: input.context,\n rawHeaderData: input.rawHeaderData,\n vm,\n i18n,\n status: 'ready',\n activeMenuMode: input.currentActiveMenuMode,\n };\n }\n}","import type { HeaderMenuMode } from '../types/pn-marketweb-header.types';\n\nconst STORAGE_KEY = 'pn-marketweb-header:menu-mode';\n\n/**\n * Returns the previously selected menu mode from localStorage.\n *\n * Returns null if:\n * - nothing is stored\n * - value is invalid\n * - storage is unavailable\n */\nexport function getStoredHeaderMenuMode(): HeaderMenuMode | null {\n if (typeof window === 'undefined') {\n return null;\n }\n\n try {\n const value = window.localStorage.getItem(STORAGE_KEY);\n\n if (value == null) {\n return null;\n }\n\n const parsed = Number(value);\n if (Number.isInteger(parsed) && parsed >= 0) {\n return parsed;\n }\n } catch {\n // intentionally ignored\n }\n\n return null;\n}\n\n/**\n * Persists the selected menu mode in localStorage.\n *\n * Storage failures are intentionally ignored.\n */\nexport function storeHeaderMenuMode(mode: HeaderMenuMode): void {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n window.localStorage.setItem(STORAGE_KEY, String(mode));\n } catch {\n // intentionally ignored\n }\n}\n\n/**\n * Resolves the effective initial menu mode.\n *\n * Priority:\n * 1. Stored user preference\n * 2. Server-provided initial mode\n * 3. Fallback to first mode (index 0)\n */\nexport function resolveInitialHeaderMenuMode(\n hasMenuSwitching: boolean,\n initialActiveMenuMode?: HeaderMenuMode | null,\n): HeaderMenuMode {\n if (!hasMenuSwitching) {\n return 0;\n }\n\n const storedMode = getStoredHeaderMenuMode();\n if (typeof storedMode === 'number') {\n return storedMode;\n }\n\n return initialActiveMenuMode ?? 0;\n}","@import \"../../../globals/main.scss\";\n@import \"./../pn-marketweb-siteheader/pn-marketweb-siteheader-common.scss\";\n\n// -----------------------------------------------------------------------------\n// Internal layout constants\n// -----------------------------------------------------------------------------\n$siteheader-breakpoint-tablet: 769px;\n$siteheader-breakpoint-desktop: 1024px;\n\n$siteheader-z-header: 1000;\n$siteheader-z-logo: 1;\n\n$siteheader-row-padding-inline: 1.6rem;\n\n$siteheader-row-min-height-mobile: 2em;\n$siteheader-row-min-height-tablet: 3.2em;\n$siteheader-row-main-min-height-mobile: 5.6rem;\n$siteheader-row-main-min-height-tablet: 3.2em;\n\n$siteheader-logo-link-max-height: 6.4rem;\n\n$siteheader-search-max-width: 30rem;\n$siteheader-search-min-width: 23.3rem;\n\n$siteheader-border-width: 0.1rem;\n$siteheader-border-radius: 0.8rem;\n\n// -----------------------------------------------------------------------------\n// Root tokens\n// -----------------------------------------------------------------------------\npn-marketweb-header {\n display: block;\n background-color: var(--siteheader-bg, #{$white});\n color: var(--siteheader-text-color, #{$black});\n\n // shell\n --siteheader-bg: #{$white};\n --siteheader-text-color: #{$black};\n --siteheader-shadow: #{$siteheader-shadow-elevation8}; \n --siteheader-row-border-color: #{$gray50};\n --siteheader-row-padding-inline: #{$siteheader-row-padding-inline};\n --siteheader-row-min-height: #{$siteheader-row-min-height-mobile};\n --siteheader-row-main-min-height: #{$siteheader-row-main-min-height-mobile};\n\n // row surfaces\n --siteheader-top-row-bg: transparent;\n --siteheader-top-row-border-color: #{$gray50};\n --siteheader-top-text-color: #{$black};\n --siteheader-top-link-color: #{$black};\n --siteheader-top-icon-fill: currentColor;\n\n --siteheader-main-row-bg-mobile: #{$white};\n --siteheader-main-row-bg-tablet: #{$white};\n\n //siteheader logo\n --siteheader-logo-color: #{$blue400};\n\n //mainnav\n --siteheader-mainnav-top-position-mobile:3.5em;\n\n // menulinks\n --siteheader-mainnav-link-hover-effect-color: #{$blue50};\n\n // third-party button/dropdown hooks\n --siteheader-button-font-weight: 400;\n --siteheader-button-padding: 0.5rem;\n --siteheader-button-radius: #{$siteheader-border-radius};\n --siteheader-button-hover-bg: #{$blue50};\n --siteheader-button-hover-text-color: #{$black};\n\n // new-header-only toggle hooks\n --siteheader-toggle-color: #{$blue700};\n --siteheader-toggle-hover-color: #{$black};\n --siteheader-toggle-active-color: #{$black};\n --siteheader-toggle-active-underline-color: #{$blue400};\n\n // shared child hooks\n --siteheader-mainnav-divider-color: #{$gray200};\n\n // search hooks\n --siteheader-search-max-width: #{$siteheader-search-max-width};\n --siteheader-search-min-width: #{$siteheader-search-min-width};\n --siteheader-search-input-bg: #{$white};\n --siteheader-search-input-color: #{$black};\n --siteheader-search-placeholder-color: #{$black};\n --siteheader-search-button-bg: #{$white};\n --siteheader-search-icon-fill: currentColor; \n}\n\n// -----------------------------------------------------------------------------\n// Global page state\n// -----------------------------------------------------------------------------\nbody[data-siteheader-menuopen=\"true\"] {\n max-height: 100vh;\n overflow: hidden;\n}\n\n@media screen and (min-width: $siteheader-breakpoint-desktop) {\n body[data-siteheader-menuopen=\"true\"] {\n max-height: initial;\n overflow: initial;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Parent structure\n// -----------------------------------------------------------------------------\npn-marketweb-header {\n header {\n position: relative;\n z-index: $siteheader-z-header;\n display: flex;\n flex-direction: column;\n background-color: var(--siteheader-bg, #{$white});\n color: var(--siteheader-text-color, #{$black});\n box-shadow: var(--siteheader-shadow, #{$siteheader-shadow-elevation8});\n }\n\n .siteheader-row {\n display: flex;\n flex-flow: row;\n align-items: center;\n width: 100%;\n min-height: var(--siteheader-row-min-height, #{$siteheader-row-min-height-mobile});\n padding-inline: var(--siteheader-row-padding-inline, #{$siteheader-row-padding-inline});\n\n &:not(:last-child) {\n border-bottom: $siteheader-border-width solid var(--siteheader-row-border-color, #{$gray50});\n }\n }\n\n .siteheader-row-top {\n display: none;\n }\n\n .siteheader-row-main {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n max-width: 100%;\n min-height: var(--siteheader-row-main-min-height, #{$siteheader-row-main-min-height-mobile});\n padding-inline: var(--siteheader-row-padding-inline, #{$siteheader-row-padding-inline});\n overflow: visible;\n }\n\n .siteheader-logocontainer {\n display: flex;\n align-items: center; \n z-index: $siteheader-z-logo;\n }\n\n .siteheader-logolink {\n display: flex;\n align-items: center;\n height: 100%;\n max-height: $siteheader-logo-link-max-height;\n\n &:hover,\n &:focus,\n &:active {\n box-shadow: none;\n text-decoration: none;\n }\n }\n\n .siteheader-logo {\n display: block;\n color:var(--siteheader-logo-color);\n }\n\n .siteheader-row>pn-marketweb-siteheader-search {\n display: none;\n }\n\n pn-spinner {\n display: none;\n }\n\n pn-button-dropdown:not(.hydrated) {\n .pn-button-dropdown-container {\n display: none;\n }\n }\n}\n\n// -----------------------------------------------------------------------------\n// Third-party component overrides\n// -----------------------------------------------------------------------------\npn-marketweb-header {\n .siteheader-row pn-button {\n button:hover {\n color: var(--siteheader-button-hover-text-color, #{$black});\n\n .pn-button-bg,\n .pn-button-bg::after {\n background-color: var(--siteheader-button-hover-bg, #{$blue50});\n }\n }\n }\n\n pn-button {\n button {\n font-weight: var(--siteheader-button-font-weight, 400) !important;\n padding: var(--siteheader-button-padding, 0.5rem) !important;\n\n .pn-button-bg::after {\n border-radius: var(--siteheader-button-radius, #{$siteheader-border-radius}) !important;\n }\n }\n }\n}\n\n// -----------------------------------------------------------------------------\n// Tablet and up\n// -----------------------------------------------------------------------------\n@media screen and (min-width: $siteheader-breakpoint-tablet) {\n pn-marketweb-header {\n --siteheader-row-min-height: #{$siteheader-row-min-height-tablet};\n --siteheader-row-main-min-height: #{$siteheader-row-main-min-height-tablet};\n\n .siteheader-row {\n justify-content: space-between;\n }\n\n .siteheader-row-top {\n display: flex;\n } \n\n .siteheader-row>pn-marketweb-siteheader-search {\n display: block;\n width: 100%;\n min-width: var(--siteheader-search-min-width, #{$siteheader-search-min-width});\n max-width: var(--siteheader-search-max-width, #{$siteheader-search-max-width});\n }\n }\n}\n\n// -----------------------------------------------------------------------------\n// Desktop\n// -----------------------------------------------------------------------------\n@media screen and (min-width: $siteheader-breakpoint-desktop) {\n pn-marketweb-header {\n .siteheader-row-main {\n margin-top: auto;\n overflow: visible;\n }\n }\n}\n\n// -----------------------------------------------------------------------------\n// Themes\n// -----------------------------------------------------------------------------\n\npn-marketweb-header[data-theme=\"business\"]{\n\n --siteheader-bg: #{$blue900};\n --siteheader-text-color: #{$white};\n --siteheader-row-border-color: #{$blue900};\n\n --siteheader-top-row-bg: #{$blue900};\n --siteheader-top-row-border-color: #{$blue900};\n --siteheader-top-text-color: #{$white};\n --siteheader-top-link-color: #{$white};\n --siteheader-top-icon-fill: #{$white};\n\n --siteheader-main-row-bg-mobile: #{$blue900};\n --siteheader-main-row-bg-tablet: #{$white};\n\n --siteheader-button-hover-bg: #{$white};\n --siteheader-button-hover-text-color: #{$black};\n\n //siteheader-logo\n --siteheader-logo-color: #{$blue400};\n\n //siteheader cart hooks ------------------------------------------------------ \n --siteheader-cart-countindicator-color: #{$black};\n --siteheader-cart-icon-color: #{$white};\n --siteheader-cart-countindicator-background: #{$white};\n --siteheader-cart-link-color:#{$white};\n\n //siteheader-toggle hooks------------------------------------------------------\n --siteheader-toggle-color: #{$white};\n --siteheader-toggle-hover-color: #{$white};\n --siteheader-toggle-active-color: #{$white};\n --siteheader-toggle-active-underline-color: #{$white};\n\n // search hooks----------------------------------------------------------------\n --siteheader-search-input-bg: #{$white};\n --siteheader-search-input-color: #{$blue900};\n --siteheader-search-placeholder-color: #{$blue900};\n --siteheader-search-button-bg: #{$white};\n --siteheader-search-icon-fill: #{$blue900};\n\n //mainnav list----------------------------------------------------------------\n --siteheader-mainnav-list-heading-color: #{$black};\n\n //mainnav links----------------------------------------------------------------\n --siteheader-mainnav-link-hover-effect-color: #{$blue900};\n --siteheader-mainnav-link-active-effect-color: #{$blue900};\n\n //mainnav-level----------------------------------------------------------------\n --siteheader-mainnav-level-2-border-top-left-radius-desktop: 0;\n --siteheader-mainnav-level-2-border-top-right-radius-desktop: 0;\n\n //mainnav-links---------------------------------------------------------------- \n // darker hover / active \n --siteheader-mainnav-link-active-desktop-color: #{$blue900};\n // stronger indicator\n --siteheader-mainnav-link-level1-indicator-color: #{$blue900};\n --siteheader-mainnav-link-level1-indicator-active-color: #{$blue900};\n\n // optional: slightly darker separators\n --siteheader-mainnav-link-level1-border-bottom: 0.1rem solid #{$gray100};\n --siteheader-mainnav-link-level2-border-bottom: 0.1rem solid #{$gray100};\n\n // ---------------------------------------------------------------------------\n // Profile selection (login dropdown)\n // ---------------------------------------------------------------------------\n --siteheader-login-profileselection-heading-color: #{$black};\n --siteheader-login-profileselection-user-name-color: #{$black};\n --siteheader-login-profileselection-description-color: #{$gray700};\n --siteheader-login-profileselection-divider-background: #{$blue700};\n --siteheader-login-profileselection-profileoption-link-background: #{$white};\n\n //siteheader-login-linklist---------------------------------------------------\n --siteheader-login-linklist-heading-color: #{$black};\n\n}","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Fragment,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\n\nimport { FetchHelper } from '../../../globals/FetchHelper';\nimport type {\n EnvironmentName,\n MarketName,\n} from '../../../services/pn-refined-marketweb-context/pn-refined-marketweb-context.types';\nimport {\n state as headerState,\n} from '../pn-marketweb-siteheader/pn-marketweb-siteheader-store';\nimport {\n MenuItem,\n SiteHeaderI18N,\n} from '../pn-marketweb-siteheader/pn-marketweb-siteheader-types';\nimport {\n HeaderStateResult,\n PnMarketwebHeaderService,\n} from './services/pn-marketweb-header.service';\nimport type {\n HeaderApiPayload,\n HeaderMenuMode,\n HeaderViewModel,\n} from './types/pn-marketweb-header.types';\nimport { defaultHeaderI18n } from './utils/header-i18n';\nimport { prependHomeMenuItem } from './utils/header-menu';\nimport {\n type HeaderTheme,\n resolveHeaderMenuThemes,\n} from './utils/header-theme';\nimport {\n extractToggleableMenuStructure,\n getToggleRootForMenuItems,\n getVisibleMenuGroupsForMode,\n} from './utils/header-toggle-menu';\nimport {\n resolveInitialHeaderMenuMode,\n storeHeaderMenuMode,\n} from './utils/header-toggle-menu.storage';\nimport { navigateToMenuItem } from './utils/header-url';\n\n/**\n * New marketweb header wrapper.\n *\n * Responsibilities:\n * - resolve runtime context\n * - fetch header data\n * - map backend data into a renderable view model\n * - render the layout using existing leaf/header components\n * - owns the active menu mode when a switchable menu structure exists\n */\n@Component({\n tag: 'pn-marketweb-header',\n styleUrl: 'pn-marketweb-header.scss',\n})\nexport class PnMarketwebHeader {\n @Element() hostElement: HTMLElement;\n\n @Prop() initialActiveMenuMode: HeaderMenuMode = 0;\n\n /** Optional menu theme labels, e.g. ['Business', 'Private']. passed in as a sting via cms */\n @Prop() menuThemes?: string;\n\n /** Market to use for the header. Falls back to refined context resolution when omitted. */\n @Prop({ mutable: true, reflect: true }) market: MarketName | null = null;\n\n /** Language to use for the header. Falls back to refined context resolution when omitted. */\n @Prop({ mutable: true, reflect: true }) language: string | null = null;\n\n /** Environment to use for the header. Falls back to refined context resolution when omitted. */\n @Prop({ mutable: true, reflect: true }) environment: EnvironmentName | null = null;\n\n /** Explicit endpoint override. When omitted it is resolved from market + environment. */\n @Prop() endpoint: string | null = null;\n\n /** Current site id (guid), forwarded into the search component. */\n @Prop() siteid: string | null = null;\n\n /** Current page id forwarded to the header backend endpoint. */\n @Prop() pageId: string = '';\n\n /** Access token passed from backend. */\n @Prop() userToken: string = '';\n\n /** User full name from backend. */\n @Prop() userFullname: string = '';\n\n /** User logged in state from backend. */\n @Prop({ reflect: true }) userLoggedin: boolean = false;\n\n /** Hides the site selector when true. */\n @Prop({ reflect: true }) hideSiteSelector: boolean = false;\n\n /** Hides the generated home menu item when true. */\n @Prop({ reflect: true }) hideHomeMenuItem: boolean = false;\n\n /** Hides the language selector when true. */\n @Prop({ reflect: true }) hideLanguageSelector: boolean = false;\n\n /** Hides search when true. */\n @Prop({ reflect: true }) hideSearch: boolean = false;\n\n /** Hides login when true. */\n @Prop({ reflect: true }) hideLogin: boolean = false;\n\n /** Enables profile selection presentation in the login component. */\n @Prop({ reflect: true }) showProfileSelection: boolean = false;\n\n /** Enables unified login presentation in the login component. */\n @Prop() showUnifiedLogin: boolean = false;\n\n /** Adjust relative URLs against the site domain when true. */\n @Prop() siteDomainInUrls: boolean = false;\n\n /** Autocomplete endpoint forwarded into the search view model. */\n @Prop() autocompleteEndpoint: string = '';\n\n /** Whether session forwarding should be attempted after login state changes. */\n @Prop() sessionForward: boolean = false;\n\n /** Enables cached requests in FetchHelper when true. */\n @Prop() cache: boolean = false;\n\n /** Optional override for translated search placeholder text. */\n @Prop() searchPlaceholder: string = '';\n\n /** When true, language selector options should not navigate directly by URL. */\n @Prop() spaMode: boolean = false;\n\n /** Interval forwarded to the login component for login state checks. */\n @Prop() checkUserLoggedInStateInterval: number = 0;\n\n /** Enables marketweb login mode in the login component. */\n @Prop() useMarketwebLogin: boolean = false;\n\n /** When true, changing menu mode navigates to the selected root href. */\n @Prop() navigateOnMenuToggle: boolean = true;\n\n /** The mapped UI state used for rendering the header. */\n @State() vm: HeaderViewModel | null = null;\n\n /** Current translations for the active language. */\n @State() i18n: SiteHeaderI18N = defaultHeaderI18n;\n\n /** Simple loading state for the wrapper. */\n @State() status: 'idle' | 'loading' | 'ready' | 'error' = 'loading';\n\n /** Whether the main search should collapse to a compact version. */\n @State() minimizeSearch: boolean = false;\n\n /** Internal login state used for special link handling. */\n @State() loggedIn: boolean = false;\n\n /** Active menu mode when the backend structure supports menu switching. */\n @State() activeMenuMode: HeaderMenuMode = 0;\n\n /** Guard used to prevent watchers from reloading during initial setup. */\n private isInitializing = false;\n\n /** Cached raw backend payload so UI-only prop changes can remap without refetching. */\n private rawHeaderData: HeaderApiPayload | null = null;\n\n /** Main nav element reference used for overflow calculation. */\n private mainNavEl?: HTMLElement;\n\n /** Emitted when the language changes. */\n @Event() changeLanguage: EventEmitter<string>;\n\n /** Emitted when the market changes. */\n @Event() changeMarket: EventEmitter<MarketName>;\n\n /** Shared helper for backend requests. */\n private fetchHelper = new FetchHelper('marketweb-header');\n\n /** Service for context resolution and header-data fetching. */\n private headerService = new PnMarketwebHeaderService(this.fetchHelper);\n\n private hasResolvedInitialMenuMode = false;\n\n async componentWillLoad() {\n await this.loadHeader();\n }\n\n @Listen('setLanguage')\n onLanguageSelectorChange(e: CustomEvent<string>) {\n this.language = e.detail;\n window.dispatchEvent(new CustomEvent('marketweb-languagechange', { detail: this.language }));\n }\n\n @Watch('language')\n async onLanguageChange() {\n if (this.isInitializing || !this.language) {\n return;\n }\n\n this.changeLanguage.emit(this.language);\n await this.loadHeader();\n }\n\n @Watch('market')\n async onMarketChange() {\n if (this.isInitializing || !this.market) {\n return;\n }\n\n this.changeMarket.emit(this.market);\n await this.loadHeader();\n }\n\n @Watch('environment')\n async onEnvironmentChange() {\n if (this.isInitializing || !this.environment) {\n return;\n }\n\n await this.loadHeader();\n }\n\n @Watch('endpoint')\n async onEndpointChange() {\n if (this.isInitializing) {\n return;\n }\n\n await this.loadHeader();\n }\n\n @Watch('pageId')\n async onPageIdChange() {\n if (this.isInitializing) {\n return;\n }\n\n await this.loadHeader();\n }\n\n @Watch('hideHomeMenuItem')\n @Watch('siteDomainInUrls')\n @Watch('autocompleteEndpoint')\n @Watch('searchPlaceholder')\n onPresentationInputChange() {\n if (this.isInitializing) {\n return;\n }\n\n this.remapViewModel();\n }\n\n @Listen('loginStateChange')\n onLoginStateChange(e: CustomEvent<{ loggedIn?: boolean; token?: string }>) {\n if (typeof e.detail?.loggedIn === 'boolean') {\n this.loggedIn = e.detail.loggedIn;\n }\n\n if (e.detail?.loggedIn && e.detail?.token && this.sessionForward) {\n try {\n // fetch('/api/userprofile/sync?token=' + e.detail.token);\n } catch {\n // ignored intentionally\n }\n }\n }\n\n @Listen('resize', { target: 'window' })\n handleResize() {\n requestAnimationFrame(() => {\n this.checkMenuOverflow();\n });\n }\n\n private get menuThemeList(): HeaderTheme[] {\n return resolveHeaderMenuThemes(\n this.menuThemes,\n this.vm?.menuModeOptions\n );\n }\n\n\n private get logoUrl(): string {\n return this.vm?.menuModeOptions?.[this.activeMenuMode]?.href ?? '/';\n }\n\n private async loadHeader() {\n this.status = 'loading';\n this.isInitializing = true;\n\n try {\n const result = await this.headerService.loadHeaderState({\n market: this.market,\n language: this.language,\n environment: this.environment,\n endpoint: this.endpoint,\n pageId: this.pageId,\n cache: this.cache,\n hideHomeMenuItem: this.hideHomeMenuItem,\n siteDomainInUrls: this.siteDomainInUrls,\n autocompleteEndpoint: this.autocompleteEndpoint,\n searchPlaceholder: this.searchPlaceholder,\n });\n\n this.applyHeaderState(result);\n\n requestAnimationFrame(() => {\n this.checkMenuOverflow();\n });\n } catch (error) {\n console.error('[pn-marketweb-header] Failed to load header', error);\n this.rawHeaderData = null;\n this.vm = null;\n this.status = 'error';\n } finally {\n this.isInitializing = false;\n }\n }\n\n private remapViewModel() {\n const context = {\n market: this.market,\n language: this.language,\n environment: this.environment,\n endpoint: this.endpoint,\n pageId: this.pageId ?? '',\n };\n\n const result = this.headerService.remapHeaderState({\n context,\n rawHeaderData: this.rawHeaderData,\n language: this.language,\n hideHomeMenuItem: this.hideHomeMenuItem,\n siteDomainInUrls: this.siteDomainInUrls,\n autocompleteEndpoint: this.autocompleteEndpoint,\n searchPlaceholder: this.searchPlaceholder,\n currentActiveMenuMode: this.activeMenuMode,\n });\n\n this.applyHeaderState(result);\n\n requestAnimationFrame(() => {\n this.checkMenuOverflow();\n });\n }\n\n private applyHeaderState(result: HeaderStateResult) {\n this.market = result.context.market;\n this.language = result.context.language;\n this.environment = result.context.environment;\n this.endpoint = result.context.endpoint;\n\n this.rawHeaderData = result.rawHeaderData;\n this.vm = result.vm;\n this.i18n = result.i18n;\n this.status = result.status;\n\n if (!result.vm?.hasMenuSwitching) {\n this.activeMenuMode = 0;\n this.hasResolvedInitialMenuMode = false;\n } else if (!this.hasResolvedInitialMenuMode) {\n this.activeMenuMode = resolveInitialHeaderMenuMode(\n true,\n this.initialActiveMenuMode,\n );\n this.hasResolvedInitialMenuMode = true;\n }\n\n if (headerState.loginManager && result.vm?.siteDefinition?.url) {\n headerState.loginManager.setSiteUrl(result.vm.siteDefinition.url);\n }\n }\n\n private checkMenuOverflow() {\n const mainNavEl = this.mainNavEl;\n if (!mainNavEl) {\n return;\n }\n\n const firstMenuLevel = mainNavEl.querySelector('pn-mainnav-level') as HTMLElement | null;\n if (!firstMenuLevel) {\n return;\n }\n\n const navContainer = firstMenuLevel.parentElement;\n if (!navContainer) {\n return;\n }\n\n const availableWidth = navContainer.clientWidth;\n const requiredWidth = firstMenuLevel.scrollWidth;\n\n this.minimizeSearch = requiredWidth > availableWidth;\n }\n\n private isUserLoggedIn() {\n return this.loggedIn || this.userLoggedin;\n }\n\n private adjustSiteSelectorUrl(href: string): string {\n if (!this.isUserLoggedIn()) {\n return href;\n }\n\n const loginDomains = ['portal.postnord.com'];\n const matchedHref = loginDomains.some(domain => href.includes(domain));\n\n if (!matchedHref) {\n return href;\n }\n\n if (headerState.loginManager) {\n return headerState.loginManager.getLoginUrl(href);\n }\n\n return href;\n }\n\n private onMenuToggleChange = (e: CustomEvent<HeaderMenuMode>) => {\n const nextMode = e.detail;\n\n if (nextMode === this.activeMenuMode) {\n return;\n }\n\n this.activeMenuMode = nextMode;\n storeHeaderMenuMode(nextMode);\n\n if (!this.navigateOnMenuToggle || !this.vm?.rawMenuItems.length) {\n return;\n }\n\n const targetRoot = getToggleRootForMenuItems(this.vm.rawMenuItems, nextMode);\n navigateToMenuItem(targetRoot);\n };\n\n private getVisibleMenuGroups(vm: HeaderViewModel): {\n primaryItems: MenuItem[];\n sharedItems: MenuItem[];\n } {\n if (!vm.rawMenuItems.length) {\n return {\n primaryItems: vm.menuItems,\n sharedItems: [],\n };\n }\n\n const structure = extractToggleableMenuStructure(vm.rawMenuItems);\n\n if (structure.modeRoots.length === 0) {\n return {\n primaryItems: vm.menuItems,\n sharedItems: [],\n };\n }\n\n const groups = getVisibleMenuGroupsForMode(vm.rawMenuItems, this.activeMenuMode);\n\n return {\n primaryItems: prependHomeMenuItem(\n groups.primaryItems,\n this.i18n,\n vm.siteDefinition?.url ?? '/',\n this.hideHomeMenuItem,\n ),\n sharedItems: groups.sharedItems,\n };\n }\n\n\n\n\n render() {\n const vm = this.vm;\n const i18n = this.i18n;\n\n const activeTheme: HeaderTheme =\n this.menuThemeList[this.activeMenuMode] ?? 'private';\n\n const logoUrl = this.logoUrl;\n\n const menuGroups = vm\n ? this.getVisibleMenuGroups(vm)\n : { primaryItems: [] as MenuItem[], sharedItems: [] as MenuItem[] };\n\n\n return (\n <Host\n language={this.language ?? undefined}\n market={this.market ?? undefined}\n environment={this.environment ?? undefined}\n data-status={this.status}\n data-mode={this.activeMenuMode}\n data-theme={activeTheme}\n >\n <header>\n {vm && (\n <Fragment>\n <pn-marketweb-header-top-row\n vm={vm}\n i18n={i18n}\n language={this.language ?? undefined}\n siteid={this.siteid ?? undefined}\n endpoint={this.endpoint ?? undefined}\n environment={this.environment ?? undefined}\n userToken={this.userToken}\n userFullname={this.userFullname}\n userLoggedin={this.userLoggedin}\n hideSiteSelector={this.hideSiteSelector}\n hideLanguageSelector={this.hideLanguageSelector}\n hideSearch={this.hideSearch}\n hideLogin={this.hideLogin}\n showProfileSelection={this.showProfileSelection}\n showUnifiedLogin={this.showUnifiedLogin}\n spaMode={this.spaMode}\n checkUserLoggedInStateInterval={this.checkUserLoggedInStateInterval}\n useMarketwebLogin={this.useMarketwebLogin}\n activeMenuMode={this.activeMenuMode}\n theme={activeTheme}\n navigateOnMenuToggle={this.navigateOnMenuToggle}\n menuToggleChangeHandler={this.onMenuToggleChange}\n adjustSiteSelectorUrl={(href: string) => this.adjustSiteSelectorUrl(href)}\n logoUrl={logoUrl}\n >\n <slot name=\"header-top-left\" slot=\"header-top-left\"></slot>\n <slot name=\"header-top-right-start\" slot=\"header-top-right-start\"></slot>\n <slot name=\"toprightend\" slot=\"toprightend\"></slot>\n </pn-marketweb-header-top-row>\n\n <slot name=\"siteheader-menu-top-button\"></slot>\n\n <pn-marketweb-header-main-row\n vm={vm}\n i18n={i18n}\n market={this.market ?? undefined}\n language={this.language ?? undefined}\n siteid={this.siteid ?? undefined}\n hideSearch={this.hideSearch}\n hideLogin={this.hideLogin}\n hideLanguageSelector={this.hideLanguageSelector}\n hideSiteSelector={this.hideSiteSelector}\n minimizeSearch={this.minimizeSearch}\n activeMenuMode={this.activeMenuMode}\n theme={activeTheme}\n navigateOnMenuToggle={this.navigateOnMenuToggle}\n primaryItems={menuGroups.primaryItems}\n sharedItems={menuGroups.sharedItems}\n showMenuDivider={menuGroups.primaryItems.length > 0 && menuGroups.sharedItems.length > 0}\n userToken={this.userToken}\n userFullname={this.userFullname}\n userLoggedin={this.userLoggedin}\n endpoint={this.endpoint ?? undefined}\n environment={this.environment ?? undefined}\n showProfileSelection={this.showProfileSelection}\n showUnifiedLogin={this.showUnifiedLogin}\n checkUserLoggedInStateInterval={this.checkUserLoggedInStateInterval}\n useMarketwebLogin={this.useMarketwebLogin}\n spaMode={this.spaMode}\n menuToggleChangeHandler={this.onMenuToggleChange}\n mainNavRefHandler={(el: HTMLElement | undefined) => {\n this.mainNavEl = el;\n }}\n adjustSiteSelectorUrl={(href: string) => this.adjustSiteSelectorUrl(href)}\n logoUrl={logoUrl}\n >\n <slot name=\"header-bottom-button\" slot=\"header-bottom-button\"></slot>\n <slot name=\"menu-footer-cta\" slot=\"menu-footer-cta\"></slot>\n </pn-marketweb-header-main-row>\n\n </Fragment>\n )}\n </header>\n </Host>\n );\n }\n}"],"version":3}
@@ -15,7 +15,7 @@ const PnmarketwebIcon = class {
15
15
  this.color = 'black';
16
16
  }
17
17
  render() {
18
- return (index.h(index.Host, { key: '1902cdd8bc0e26bb263bbd0335ef1105af51fa26' }, index.h("pn-icon", { key: 'cb3cdbf78ccf0c86d1f20baacaf6b717cd84a419', icon: this.symbol, color: this.color, small: this.small })));
18
+ return (index.h(index.Host, { key: '8b042e6f231d91df5e6a248b1478a867dd1c93b6' }, index.h("pn-icon", { key: '24b0baebd09c83f203418f05e2e442375b1ebb1b', icon: this.symbol, color: this.color, small: this.small })));
19
19
  }
20
20
  };
21
21
  PnmarketwebIcon.style = PnMarketwebIconStyle0;
@@ -10,7 +10,48 @@ require('./index-a8de2b09.js');
10
10
  const icon = '<svg class="pn-icon-svg" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M21.78 11.375a1 1 0 0 1 0 1.25l-4 5a1 1 0 1 1-1.56-1.25L18.92 13H7a1 1 0 1 1 0-2h11.92l-2.7-3.375a1 1 0 1 1 1.56-1.25zM11 3a3 3 0 0 1 3 3v2a1 1 0 1 1-2 0V6a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-2a1 1 0 1 1 2 0v2a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V6a3 3 0 0 1 3-3z" clip-rule="evenodd"/></svg>';
11
11
  const transfer = icon;
12
12
 
13
- const pnMarketwebSiteheaderLoginLinklistCss = "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-siteheader-login-linklist{display:flex;flex-direction:column}pn-marketweb-siteheader-login-linklist .pn-marketweb-siteheader-login-linklist-heading{font-weight:500;font-size:1.6rem;margin-bottom:2.4rem}pn-marketweb-siteheader-login-linklist strong{margin-bottom:2.4rem}pn-marketweb-siteheader-login-linklist ul{list-style-type:none;padding:0;margin:0}pn-marketweb-siteheader-login-linklist ul>li{margin-bottom:2.4rem}pn-marketweb-siteheader-login-linklist ul>li a:not(.pn-button){color:#005d92}pn-marketweb-siteheader-login-linklist ul>li a{text-decoration:none;font-size:1.6rem;line-height:1.5;font-weight:500}pn-marketweb-siteheader-login-linklist ul>li pn-icon{padding-left:0.8rem}pn-marketweb-siteheader-login-linklist ul>li pn-icon svg>path{fill:#005d92 !important}pn-marketweb-siteheader-login-linklist ul>li:hover a{color:#0d234b;text-decoration:underline}pn-marketweb-siteheader-login-linklist ul>li:hover pn-icon svg>path{fill:#0d234b !important}pn-marketweb-siteheader-login-linklist ul>li:last-of-type{margin-bottom:0}";
13
+ const getLoginUrl = (useMarketwebLogin, environment) => {
14
+ const environment_Production = "PRODUCTION";
15
+ const devAuthUrl = 'https://atportal.postnord.com/api/unified-login/backend/authorization?redirectionUrl=';
16
+ const prodAuthUrl = 'https://portal.postnord.com/api/unified-login/backend/authorization?redirectionUrl=';
17
+ const marketwebLoginUrl = '/login?returnUrl=';
18
+ if (useMarketwebLogin) {
19
+ return marketwebLoginUrl;
20
+ }
21
+ else if (environment.toUpperCase() !== environment_Production) {
22
+ return devAuthUrl;
23
+ }
24
+ else {
25
+ return prodAuthUrl;
26
+ }
27
+ };
28
+
29
+ const pnMarketwebSiteheaderLoginButtonCss = "";
30
+ const PnMarketwebSiteheaderLoginButtonStyle0 = pnMarketwebSiteheaderLoginButtonCss;
31
+
32
+ const PnMarketwebSiteheaderLoginButton = class {
33
+ constructor(hostRef) {
34
+ index.registerInstance(this, hostRef);
35
+ this.label = 'Log in';
36
+ this.useMarketwebLogin = false;
37
+ this.environment = 'local';
38
+ }
39
+ get hostElement() { return index.getElement(this); }
40
+ loginUrl;
41
+ componentWillLoad() {
42
+ this.loginUrl = getLoginUrl(this.useMarketwebLogin, this.environment);
43
+ }
44
+ nagivateToLoginUrl() {
45
+ const navigationUrl = `${this.loginUrl}${encodeURIComponent(window.location.href)}`;
46
+ return navigationUrl;
47
+ }
48
+ render() {
49
+ return (index.h(index.Host, { key: '0cffb1a2af16a85f88b3a5dbe992c65c2cfda95f' }, index.h("pn-button", { key: 'bc5fd64d3f2d12a253cd725cbbb710466fdca6ab', href: this.nagivateToLoginUrl() }, this.label)));
50
+ }
51
+ };
52
+ PnMarketwebSiteheaderLoginButton.style = PnMarketwebSiteheaderLoginButtonStyle0;
53
+
54
+ const pnMarketwebSiteheaderLoginLinklistCss = "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-siteheader-login-linklist{--login-linklist-heading-color:var(--siteheader-login-linklist-heading-color, inherit);--login-linklist-link-color:var(--siteheader-login-linklist-link-color, #005d92);--login-linklist-link-hover-color:var(--siteheader-login-linklist-link-hover-color, #0d234b);--login-linklist-button-link-color:var(--siteheader-login-linklist-button-link-color, #ffffff);--login-linklist-icon-color:var(--siteheader-login-linklist-icon-color, #005d92);--login-linklist-icon-hover-color:var(--siteheader-login-linklist-icon-hover-color, #0d234b)}pn-marketweb-siteheader-login-linklist{display:flex;flex-direction:column}.pn-marketweb-siteheader-login-linklist-heading{font-weight:500;font-size:1.6rem;margin-bottom:2.4rem;color:var(--login-linklist-heading-color)}pn-marketweb-siteheader-login-linklist strong{margin-bottom:2.4rem}pn-marketweb-siteheader-login-linklist ul{list-style-type:none;padding:0;margin:0}pn-marketweb-siteheader-login-linklist ul>li{margin-bottom:2.4rem}pn-marketweb-siteheader-login-linklist ul>li:last-of-type{margin-bottom:0}pn-marketweb-siteheader-login-linklist ul>li a{text-decoration:none;font-size:1.6rem;line-height:1.5;font-weight:500}pn-marketweb-siteheader-login-linklist ul>li a:hover{color:var(--login-linklist-button-link-color)}pn-marketweb-siteheader-login-linklist ul>li a:not(.pn-button){color:var(--login-linklist-link-color)}pn-marketweb-siteheader-login-linklist ul>li:hover a:not(.pn-button){color:var(--login-linklist-link-hover-color);text-decoration:underline}pn-marketweb-siteheader-login-linklist ul>li pn-icon{padding-left:0.8rem}pn-marketweb-siteheader-login-linklist ul>li pn-icon svg>path{fill:var(--login-linklist-icon-color) !important}pn-marketweb-siteheader-login-linklist ul>li:hover pn-icon svg>path{fill:var(--login-linklist-icon-hover-color) !important}";
14
55
  const PnMarketwebSiteheaderLoginLinklistStyle0 = pnMarketwebSiteheaderLoginLinklistCss;
15
56
 
16
57
  const PnMarketwebSiteheaderLoginLinklist = class {
@@ -87,6 +128,7 @@ const PnMarketwebSiteheaderLoginLinklist = class {
87
128
  };
88
129
  PnMarketwebSiteheaderLoginLinklist.style = PnMarketwebSiteheaderLoginLinklistStyle0;
89
130
 
131
+ exports.pn_marketweb_siteheader_login_button = PnMarketwebSiteheaderLoginButton;
90
132
  exports.pn_marketweb_siteheader_login_linklist = PnMarketwebSiteheaderLoginLinklist;
91
133
 
92
- //# sourceMappingURL=pn-marketweb-siteheader-login-linklist.cjs.entry.js.map
134
+ //# sourceMappingURL=pn-marketweb-siteheader-login-button_2.cjs.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"pn-marketweb-siteheader-login-button.pn-marketweb-siteheader-login-linklist.entry.cjs.js","mappings":"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","names":["h","Host","arrow_right","headerState"],"sources":["node_modules/pn-design-assets/pn-assets/icons/transfer.js","src/components/layout-components/pn-marketweb-siteheader/unifiedLoginHelper.ts","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-button.scss?tag=pn-marketweb-siteheader-login-button","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-button.tsx","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-linklist.scss?tag=pn-marketweb-siteheader-login-linklist","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-linklist.tsx"],"sourcesContent":["const icon = '<svg class=\"pn-icon-svg\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"#000\" fill-rule=\"evenodd\" d=\"M21.78 11.375a1 1 0 0 1 0 1.25l-4 5a1 1 0 1 1-1.56-1.25L18.92 13H7a1 1 0 1 1 0-2h11.92l-2.7-3.375a1 1 0 1 1 1.56-1.25zM11 3a3 3 0 0 1 3 3v2a1 1 0 1 1-2 0V6a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-2a1 1 0 1 1 2 0v2a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V6a3 3 0 0 1 3-3z\" clip-rule=\"evenodd\"/></svg>';\nexport const transfer = icon;\n","export const getLoginUrl = (useMarketwebLogin:boolean, environment:string) => {\n\nconst environment_Production = \"PRODUCTION\";\n\nconst devAuthUrl = 'https://atportal.postnord.com/api/unified-login/backend/authorization?redirectionUrl=';\nconst prodAuthUrl = 'https://portal.postnord.com/api/unified-login/backend/authorization?redirectionUrl=';\nconst marketwebLoginUrl = '/login?returnUrl=';\n\nif(useMarketwebLogin)\n {\n return marketwebLoginUrl;\n }\n else if (environment.toUpperCase() !== environment_Production) {\n return devAuthUrl;\n } else {\n return prodAuthUrl;\n } \n };\n","pn-marketweb-siteheader-login-button {\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core';\n\nimport { getLoginUrl } from './unifiedLoginHelper';\n\n@Component({\n tag: 'pn-marketweb-siteheader-login-button',\n styleUrl: 'pn-marketweb-siteheader-login-button.scss',\n})\nexport class PnMarketwebSiteheaderLoginButton {\n @Element() hostElement: HTMLElement;\n @Prop() label: string = 'Log in';\n @Prop() useMarketwebLogin: boolean = false;\n @Prop() environment: string = 'local';\n \n loginUrl: string;\n\n componentWillLoad() {\n this.loginUrl = getLoginUrl(this.useMarketwebLogin, this.environment);\n }\n\n nagivateToLoginUrl() {\n const navigationUrl = `${this.loginUrl}${encodeURIComponent(window.location.href)}`;\n return navigationUrl;\n }\n\n render() {\n return (\n <Host>\n <pn-button href={this.nagivateToLoginUrl()}>{this.label}</pn-button>\n </Host>\n );\n }\n}\n","@import '../../../globals/main.scss';\n@import './pn-marketweb-siteheader-common.scss';\n\n// -----------------------------------------------------------------------------\n// Internal layout / visual constants (SCSS only)\n// -----------------------------------------------------------------------------\n$login-linklist-heading-font-weight: 500;\n$login-linklist-heading-font-size: 1.6rem;\n$login-linklist-heading-margin-bottom: 2.4rem;\n\n$login-linklist-strong-margin-bottom: 2.4rem;\n\n$login-linklist-list-item-margin-bottom: 2.4rem;\n\n$login-linklist-link-font-size: 1.6rem;\n$login-linklist-link-line-height: 1.5;\n$login-linklist-link-font-weight: 500;\n\n$login-linklist-icon-padding-left: 0.8rem;\n\n// -----------------------------------------------------------------------------\n// Component token defaults (CSS vars - only real override surface)\n// -----------------------------------------------------------------------------\npn-marketweb-siteheader-login-linklist {\n --login-linklist-heading-color: var(--siteheader-login-linklist-heading-color, inherit);\n\n --login-linklist-link-color: var(--siteheader-login-linklist-link-color, #{$blue700});\n --login-linklist-link-hover-color: var(--siteheader-login-linklist-link-hover-color, #{$blue900});\n\n --login-linklist-button-link-color: var(--siteheader-login-linklist-button-link-color, #{$white});\n\n --login-linklist-icon-color: var(--siteheader-login-linklist-icon-color, #{$blue700});\n --login-linklist-icon-hover-color: var(--siteheader-login-linklist-icon-hover-color, #{$blue900});\n}\n\n// -----------------------------------------------------------------------------\n// Host shell / layout\n// -----------------------------------------------------------------------------\npn-marketweb-siteheader-login-linklist {\n display: flex;\n flex-direction: column;\n}\n\n// -----------------------------------------------------------------------------\n// Heading\n// -----------------------------------------------------------------------------\n.pn-marketweb-siteheader-login-linklist-heading {\n font-weight: $login-linklist-heading-font-weight;\n font-size: $login-linklist-heading-font-size;\n margin-bottom: $login-linklist-heading-margin-bottom;\n color: var(--login-linklist-heading-color);\n}\n\npn-marketweb-siteheader-login-linklist strong {\n margin-bottom: $login-linklist-strong-margin-bottom;\n}\n\n// -----------------------------------------------------------------------------\n// List structure\n// -----------------------------------------------------------------------------\npn-marketweb-siteheader-login-linklist ul {\n list-style-type: none;\n padding: 0;\n margin: 0;\n}\n\npn-marketweb-siteheader-login-linklist ul>li {\n margin-bottom: $login-linklist-list-item-margin-bottom;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Links\n// -----------------------------------------------------------------------------\npn-marketweb-siteheader-login-linklist ul>li a {\n text-decoration: none;\n font-size: $login-linklist-link-font-size;\n line-height: $login-linklist-link-line-height;\n font-weight: $login-linklist-link-font-weight;\n\n &:hover {\n color:var(--login-linklist-button-link-color);\n }\n}\n\npn-marketweb-siteheader-login-linklist ul>li a:not(.pn-button) {\n color: var(--login-linklist-link-color);\n}\n\npn-marketweb-siteheader-login-linklist ul>li:hover a:not(.pn-button) {\n color: var(--login-linklist-link-hover-color);\n text-decoration: underline;\n}\n\n// -----------------------------------------------------------------------------\n// Icons\n// -----------------------------------------------------------------------------\npn-marketweb-siteheader-login-linklist ul>li pn-icon {\n padding-left: $login-linklist-icon-padding-left;\n\n svg>path {\n fill: var(--login-linklist-icon-color) !important;\n }\n}\n\npn-marketweb-siteheader-login-linklist ul>li:hover pn-icon {\n svg>path {\n fill: var(--login-linklist-icon-hover-color) !important;\n }\n}","import { Component, Element, h, Host, Prop } from '@stencil/core';\n\nimport { state as headerState } from './pn-marketweb-siteheader-store';\nimport { LoginDialogLink } from './pn-marketweb-siteheader-types';\nimport { arrow_right, transfer } from 'pn-design-assets/pn-assets/icons.js';\n\n@Component({\n tag: 'pn-marketweb-siteheader-login-linklist',\n styleUrl: 'pn-marketweb-siteheader-login-linklist.scss',\n})\nexport class PnMarketwebSiteheaderLoginLinklist {\n @Element() hostElement: HTMLElement;\n\n @Prop() heading: string = null;\n @Prop() links: LoginDialogLink[] = [];\n @Prop() idNamespace: string = '';\n @Prop() showUnifiedLogin: boolean = false;\n\n componentWillLoad() {}\n\n uniqueId(text: string) {\n return 'loginlink-' + text.replace(/[^A-Za-z0-9.\\\\\\/]/gim, '') + '-' + this.idNamespace;\n }\n\n linkAppearanceAttributes(link) {\n let attributes = {};\n if (link.linkType) {\n switch (link.linkType) {\n case 'primary':\n attributes = {\n appearance: '',\n variant: '',\n };\n break;\n case 'secondary':\n attributes = {\n appearance: 'light',\n variant: 'outlined',\n };\n break;\n case 'regularlink':\n default:\n attributes = {\n appearance: 'light',\n variant: 'borderless',\n icon: arrow_right,\n };\n break;\n }\n return attributes;\n }\n if (!link.linkType) {\n attributes = {\n appearance: link.primaryLinkApperance ? 'dark' : 'light',\n };\n }\n return attributes;\n }\n\n renderListAsButtons(link) {\n return (\n <li>\n <pn-button\n href={link.href}\n id={this.uniqueId(link.linkText)}\n {...(link.openInNewWindow && { target: '_blank' })}\n {...this.linkAppearanceAttributes(link)}\n onClick={() => {\n if (link.isLogoutLink) {\n headerState.loginManager.clearUserData();\n }\n }}\n >\n {link.linkText}\n </pn-button>\n </li>\n );\n }\n\n renderListAsLinks(link) {\n return (\n <li>\n <a\n href={link.href}\n id={this.uniqueId(link.linkText)}\n {...(link.openInNewWindow && { target: '_blank' })}\n onClick={() => {\n if (link.isLogoutLink) {\n headerState.loginManager.clearUserData();\n }\n }}\n >\n {link.linkText}\n {link.isLogoutLink ? <pn-icon icon={transfer}></pn-icon> : <pn-icon icon={arrow_right}></pn-icon>}\n </a>\n </li>\n );\n }\n\n render() {\n if (!this.links || this.links.length === 0) {\n return;\n }\n return (\n <Host>\n {this.heading ? <p class=\"pn-marketweb-siteheader-login-linklist-heading\">{this.heading}</p> : null}\n <ul>\n {this.links.map(link => {\n {\n return this.showUnifiedLogin ? this.renderListAsLinks(link) : this.renderListAsButtons(link);\n }\n })}\n </ul>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -15,7 +15,7 @@ const PnMarketwebSiteheaderLoginMypageButton = class {
15
15
  }
16
16
  get hostElement() { return index.getElement(this); }
17
17
  render() {
18
- return (index.h(index.Host, { key: '35dc38e3b181c223a3b5325e8ad4408b078cf9c9' }, index.h("pn-button", { key: 'daeeac6b7da9a0ad3424cefe30614c83f638ac66', href: this.myPageUrl }, this.label)));
18
+ return (index.h(index.Host, { key: 'c124432d15ec5bdf0aa2bbeb4354f6ecf2bce080' }, index.h("pn-button", { key: 'a5dd43d7ed7d03ca1cbe6ac6ff467cb75da83082', href: this.myPageUrl }, this.label)));
19
19
  }
20
20
  };
21
21
  PnMarketwebSiteheaderLoginMypageButton.style = PnMarketwebSiteheaderLoginMypageButtonStyle0;