@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
@@ -1,1156 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-9a9efa1c.js');
6
- const pnMainnavStore = require('./pn-mainnav-store-13aaa243.js');
7
- const bars = require('./bars-3fdeb31f.js');
8
- const close = require('./close-9e014a80.js');
9
- const arrow_left = require('./arrow_left-71879efe.js');
10
- const pnMarketwebSiteheaderStore = require('./pn-marketweb-siteheader-store-7548aafe.js');
11
- const index$1 = require('./index-a8de2b09.js');
12
- const search = require('./search-3785cc26.js');
13
- const angle_small_down = require('./angle_small_down-f00f19b1.js');
14
-
15
- const icon$2 = '<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="M16.707 11.293a1 1 0 0 1 0 1.414l-6 6a1 1 0 0 1-1.414-1.414L14.586 12 9.293 6.707a1 1 0 0 1 1.414-1.414z" clip-rule="evenodd"/></svg>';
16
- const angle_small_right = icon$2;
17
-
18
- const icon$1 = '<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="M4.252 10A8 8 0 0 0 4 12c0 .69.088 1.36.252 2h3.166a13.8 13.8 0 0 1 0-4zm.818-2h2.795a13.6 13.6 0 0 1 1.719-3.629A8.02 8.02 0 0 0 5.07 8M12 4.48A11.7 11.7 0 0 0 9.972 8h4.056A11.7 11.7 0 0 0 12 4.48M14.557 10H9.443a11.8 11.8 0 0 0 0 4h5.114a11.8 11.8 0 0 0 0-4m2.025 4a13.8 13.8 0 0 0 0-4h3.166c.165.64.252 1.31.252 2s-.087 1.36-.252 2zm-2.554 2H9.972A11.7 11.7 0 0 0 12 19.52 11.7 11.7 0 0 0 14.028 16m-4.444 3.629A13.6 13.6 0 0 1 7.864 16H5.07a8.02 8.02 0 0 0 4.514 3.629m4.832 0A13.6 13.6 0 0 0 16.136 16h2.794a8.02 8.02 0 0 1-4.514 3.629M18.93 8h-2.795a13.6 13.6 0 0 0-1.719-3.629A8.02 8.02 0 0 1 18.93 8M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12" clip-rule="evenodd"/></svg>';
19
- const globe = icon$1;
20
-
21
- 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="M7.5 7.5a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0M12 5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M4.928 20.372a1 1 0 0 1-1.856-.743l.883.353a82 82 0 0 1-.883-.354v-.002l.001-.002.003-.007.008-.018a4 4 0 0 1 .114-.25c.078-.161.193-.383.35-.645.315-.523.8-1.217 1.495-1.911C6.444 15.39 8.688 14 12 14s5.556 1.391 6.957 2.793a10 10 0 0 1 1.494 1.911 8 8 0 0 1 .44.837q.016.036.025.058l.008.018.003.007.001.004-.883.354.883-.353a1 1 0 0 1-1.856.744v.001l.001.001v-.002a2 2 0 0 0-.07-.15 6 6 0 0 0-.267-.49 8 8 0 0 0-1.193-1.526C16.444 17.11 14.688 16 12 16s-4.444 1.109-5.543 2.207a8 8 0 0 0-1.193 1.526 6 6 0 0 0-.336.64m0 0-.001.003zm14.144.001" clip-rule="evenodd"/></svg>';
22
- const user = icon;
23
-
24
- const translations$1 = {
25
- 'sv': {
26
- heading: 'Språk',
27
- },
28
- 'en': {
29
- heading: 'Language',
30
- },
31
- 'da': {
32
- heading: 'Sprog',
33
- },
34
- 'no': {
35
- heading: 'Språk',
36
- },
37
- 'fi': {
38
- heading: 'Kieli',
39
- },
40
- 'de': {
41
- heading: 'Sprache',
42
- },
43
- 'zh': {
44
- heading: '语言',
45
- },
46
- 'fr': {
47
- heading: 'Langue',
48
- },
49
- 'es': {
50
- heading: 'Idioma',
51
- },
52
- 'nl': {
53
- heading: 'Spraak',
54
- },
55
- 'it': {
56
- heading: 'Idioma',
57
- },
58
- 'tr': {
59
- heading: 'Dil',
60
- },
61
- 'pl': {
62
- heading: 'Język',
63
- },
64
- 'pt': {
65
- heading: 'Linguagem',
66
- },
67
- 'pt-BR': {
68
- heading: 'Linguagem',
69
- },
70
- };
71
-
72
- const pnLanguageSelectorCss = "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-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-language-selector{max-height:5.2rem}.languageselector{position:relative}.languageselector-togglebtn{cursor:pointer;border:0;padding:0.64rem 0;background-color:#ffffff;color:#005d92;font-size:1.6rem}.languageselector-togglebtn:hover,.languageselector-togglebtn:focus,.languageselector-togglebtn:active{color:#0d234b;text-decoration:underline}.languageselector-togglebtn svg{width:1.9rem;height:1.9rem}.languageselector-title{padding:0.8rem 1.6rem;display:flex;align-items:center}.languageselector-list{margin:0;padding:0;list-style:none}";
73
- const PnLanguageSelectorStyle0 = pnLanguageSelectorCss;
74
-
75
- const PnlanguageSelector = class {
76
- constructor(hostRef) {
77
- index.registerInstance(this, hostRef);
78
- this.setLanguage = index.createEvent(this, "setLanguage", 7);
79
- this.value = '';
80
- this.selectedLanguageName = '';
81
- this.options = [];
82
- this.i18n = undefined;
83
- }
84
- get hostElement() { return index.getElement(this); }
85
- // Events
86
- setLanguage;
87
- componentWillLoad() {
88
- this.setInitialSelectedLanguageName();
89
- this.setTranslations();
90
- }
91
- componentDidLoad() {
92
- this.initialize();
93
- }
94
- initialize() {
95
- this.setSelectedLanguageName();
96
- this.addEventBindingsToOptions();
97
- }
98
- setInitialSelectedLanguageName() {
99
- if (!window.Intl || !this.value) {
100
- return;
101
- }
102
- const langs = new Intl.DisplayNames([this.value], { type: 'language' });
103
- if (!langs) {
104
- return;
105
- }
106
- const languageName = langs.of(this.value);
107
- if (!languageName) {
108
- return;
109
- }
110
- this.selectedLanguageName = languageName.charAt(0).toUpperCase() + languageName.slice(1);
111
- }
112
- addEventBindingsToOptions() {
113
- const options = [].slice.apply(this.hostElement.querySelectorAll('pn-language-selector-option'));
114
- options.map((option) => {
115
- option.removeEventListener('setCurrentLanguage', (event) => {
116
- this.onSetCurrentLanguage(event.detail);
117
- });
118
- // Bind event listener for when a user change language
119
- option.addEventListener('setCurrentLanguage', (event) => {
120
- this.onSetCurrentLanguage(event.detail);
121
- });
122
- });
123
- }
124
- setSelectedLanguageName() {
125
- const options = [].slice.apply(this.hostElement.querySelectorAll('pn-language-selector-option'));
126
- options.map((option) => {
127
- // Set current label of language selector
128
- if (option.getAttribute('code') == this.value) {
129
- // || option.getAttribute("selected") == "true"
130
- this.selectedLanguageName = option.getAttribute('name');
131
- }
132
- });
133
- }
134
- onSetCurrentLanguage(option) {
135
- this.value = option.code;
136
- this.selectedLanguageName = option.name;
137
- this.setLanguage.emit(this.value);
138
- }
139
- setTranslations() {
140
- if (translations$1[this.value]) {
141
- this.i18n = translations$1[this.value];
142
- }
143
- }
144
- onValueChange() {
145
- const components = this.hostElement.querySelectorAll('pn-language-selector-option') ?? [];
146
- components.forEach(component => {
147
- // Pass values as props into slotted components
148
- // component.setAttribute("current-language", this.value);
149
- const isSelected = (component.getAttribute('code') === this.value) + '';
150
- if (component.getAttribute('selected') + '' !== isSelected) {
151
- component.setAttribute('selected', isSelected);
152
- }
153
- });
154
- }
155
- render() {
156
- return (index.h(index.Host, { key: '31ba8a191cf41b208613c260e0e82f73bf9a21ed', value: this.value }, index.h("pn-button-dropdown", { key: '7ee9810953acd357e5ce1a161c4e23854b34d08a', label: this.selectedLanguageName, icon: globe, appearance: "light", variant: "borderless", "aria-label": this.i18n.heading }, index.h("div", { key: '145b4d1a2388aac7e30d038b8f84859cb8bb94fc', class: "languageselector-nav" }, index.h("strong", { key: '9e71f062f8647e64c5224317927162acc8145da9', class: "languageselector-title" }, this.i18n.heading), index.h("div", { key: '395930740f87fd1157ffdfa3d4565e1c49146b09', class: "languageselector-list", role: "list" }, index.h("slot", { key: '7d126ea2c02a40169305c20114604616db35cfaf' }))))));
157
- }
158
- static get watchers() { return {
159
- "value": ["setSelectedLanguageName", "setTranslations", "onValueChange"]
160
- }; }
161
- };
162
- PnlanguageSelector.style = PnLanguageSelectorStyle0;
163
-
164
- const pnLanguageSelectorOptionCss = "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-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-language-selector-option{margin:0;padding:0;list-style:none}.languageselector-button,.languageselector-link{width:100%;padding:1.1rem 1.6rem 1.1rem 1.4rem;display:flex;align-items:center;position:relative;text-decoration:none;border:0;cursor:pointer;background-color:#ffffff;color:#005d92;font-size:1.6rem;font-weight:bold;border-radius:0}.languageselector-button:hover,.languageselector-button:focus,.languageselector-button:active,.languageselector-link:hover,.languageselector-link:focus,.languageselector-link:active{color:#0d234b;text-decoration:underline;box-shadow:none;background-color:#f3f2f2;color:#005d92;outline:none}.languageselector-itemtext{display:inline-block;margin-left:1rem}.languageselector-radio-outer{background:#fff;border:0.1em solid #d3cecb;border-radius:50%;height:1.5em;width:1.5em;display:flex;justify-content:center;align-items:center;transition:border 0.2s ease-in-out, background-color 0.2s ease-in-out, box-shadow 0.1s;cursor:pointer}.languageselector-radio-outer:focus>.languageselector-radio-outer,.languageselector-radio-outer:active>.languageselector-radio-outer{box-shadow:0 0 0 0.1rem white, 0 0 0 0.3rem #005d92}.languageselector-radio-outer:hover>.languageselector-radio-outer{border:0.1rem solid #005d92;background:#e0f8ff}[selected=true] .languageselector-radio-outer{border:0.1rem solid #005d92}.languageselector-radio-inner{transform:scale(0);height:1em;width:1em;background-color:#005d92;border-radius:50%;transform-origin:center center;transition:transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92)}[selected=true] .languageselector-radio-inner{transform:scale(1)}";
165
- const PnLanguageSelectorOptionStyle0 = pnLanguageSelectorOptionCss;
166
-
167
- const PnlanguageSelectorOption = class {
168
- constructor(hostRef) {
169
- index.registerInstance(this, hostRef);
170
- this.setCurrentLanguage = index.createEvent(this, "setCurrentLanguage", 7);
171
- this.name = '';
172
- this.code = '';
173
- this.url = '';
174
- this.selected = false;
175
- this.currentLanguage = undefined;
176
- }
177
- spanEl;
178
- setCurrentLanguage;
179
- onOptionClick() {
180
- const currentlanguage = {
181
- name: this.name,
182
- code: this.code,
183
- url: this.url,
184
- current: true,
185
- };
186
- this.setCurrentLanguage.emit(currentlanguage);
187
- }
188
- componentDidLoad() {
189
- if (this.spanEl) {
190
- this.spanEl.setAttribute("xml:lang", this.code);
191
- }
192
- }
193
- render() {
194
- return (index.h(index.Host, { key: '855fcd50a4177ac29fb5dad8e7b4f790f7f64046', role: "listitem", selected: this.selected + '', code: this.code, name: this.name }, !this.url ? (index.h("button", { class: "languageselector-button", "data-langcode": this.code, onClick: this.onOptionClick.bind(this) }, index.h("span", { class: "languageselector-radio-outer" }, index.h("span", { class: "languageselector-radio-inner" })), index.h("span", { ref: (el) => (this.spanEl = el), lang: this.code, class: "languageselector-itemtext" }, this.name, " - ", this.code))) : (index.h("a", { href: this.url, target: "_self", class: "languageselector-link", "data-langcode": this.code }, index.h("span", { class: "languageselector-radio-outer" }, index.h("span", { class: "languageselector-radio-inner" })), index.h("span", { ref: (el) => (this.spanEl = el), lang: this.code, class: "languageselector-itemtext" }, this.name, " - ", this.code)))));
195
- }
196
- };
197
- PnlanguageSelectorOption.style = PnLanguageSelectorOptionStyle0;
198
-
199
- const translations = {
200
- 'sv': {
201
- menuHomeButton: 'Hem',
202
- menuGoBackButton: 'Gå tillbaka',
203
- mainMenuButton: 'Meny',
204
- menuStartButton: 'Start',
205
- navLabel: 'Huvudnavigation',
206
- },
207
- 'en': {
208
- menuHomeButton: 'Home',
209
- menuGoBackButton: 'Go back',
210
- mainMenuButton: 'Menu',
211
- menuStartButton: 'Start',
212
- navLabel: 'Main navigation',
213
- },
214
- 'da': {
215
- menuHomeButton: 'Hjem',
216
- menuGoBackButton: 'Gå tilbage',
217
- mainMenuButton: 'Menu',
218
- menuStartButton: 'Start',
219
- navLabel: 'Hovednavigation',
220
- },
221
- 'no': {
222
- menuHomeButton: 'Hjem',
223
- menuGoBackButton: 'Gå tilbake',
224
- mainMenuButton: 'Meny',
225
- menuStartButton: 'Start',
226
- navLabel: 'Hovednavigasjon',
227
- },
228
- 'de': {
229
- menuHomeButton: 'Home',
230
- menuGoBackButton: 'Geh zurück',
231
- mainMenuButton: 'Menü',
232
- menuStartButton: 'Start',
233
- navLabel: 'Hauptnavigation',
234
- },
235
- 'zh': {
236
- menuHomeButton: 'Home',
237
- menuGoBackButton: 'Go back',
238
- mainMenuButton: 'Menu',
239
- menuStartButton: 'Start',
240
- navLabel: 'Main navigation',
241
- },
242
- 'it': {
243
- menuHomeButton: 'Home',
244
- menuGoBackButton: 'Go back',
245
- mainMenuButton: 'Menu',
246
- menuStartButton: 'Start',
247
- navLabel: 'Main navigation',
248
- },
249
- 'nl': {
250
- menuHomeButton: 'Home',
251
- menuGoBackButton: 'Go back',
252
- mainMenuButton: 'Menu',
253
- menuStartButton: 'Start',
254
- navLabel: 'Main navigation',
255
- },
256
- 'tr': {
257
- menuHomeButton: 'Anasayfa',
258
- menuGoBackButton: 'Geri git',
259
- mainMenuButton: 'Menü',
260
- menuStartButton: 'Başlat',
261
- navLabel: 'Ana gezinme',
262
- },
263
- 'pt': {
264
- menuHomeButton: 'Página inicial',
265
- menuGoBackButton: 'Go back',
266
- mainMenuButton: 'Menu',
267
- menuStartButton: 'Start',
268
- navLabel: 'Main navigation',
269
- },
270
- 'pl': {
271
- menuHomeButton: 'Strona główna',
272
- menuGoBackButton: 'Powrót',
273
- mainMenuButton: 'Menu',
274
- menuStartButton: 'Początek',
275
- navLabel: 'Menu główne systemu',
276
- },
277
- 'pt-BR': {
278
- menuHomeButton: 'Página inicial',
279
- menuGoBackButton: 'Voltar',
280
- mainMenuButton: 'Menu',
281
- menuStartButton: 'Iniciar',
282
- navLabel: 'Navegação principal',
283
- },
284
- };
285
-
286
- const pnMainnavCss = "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-mainnav{display:flex;flex-flow:row-reverse;position:relative;width:100%;min-height:5.1rem}@media screen and (min-width: 48em){pn-mainnav{flex-flow:row}}@media screen and (min-width: 64em){pn-mainnav{flex-flow:column}}@media screen and (min-width: 64em){pn-mainnav [slot=footer]{display:none}}pn-mainnav>nav{height:auto;width:100vw;background-color:#ffffff;z-index:2;transform:translateX(100vw);transition:transform 0.2s 0s;transition-property:transform, visibility;display:flex;flex-flow:column;visibility:hidden;position:fixed;top:3em;bottom:0;left:0}@media screen and (min-width: 48em){pn-mainnav>nav{top:6.5em}}pn-mainnav>nav[data-menu-open=true]{visibility:visible;transform:translateX(0)}@media screen and (min-width: 64em){pn-mainnav>nav{flex-flow:row-reverse;top:0;position:static;height:auto;width:100%;justify-content:space-between;visibility:visible;transform:translateX(0)}}pn-mainnav>nav a{text-decoration:none}pn-mainnav>nav button{cursor:pointer}.mainnav-toggle{display:flex;align-items:center;align-self:center}@media screen and (min-width: 64em){.mainnav-toggle{display:none}}.mainnav-toggle>button{display:flex;align-items:center;background-color:#005d92;color:#ffffff;border-radius:2.4rem;border:none;padding:0.6rem 1.6rem;cursor:pointer;font-size:1.6rem}.mainnav-toggle>button:focus{outline:0}.mainnav-toggle>button pn-icon{margin-left:0.8rem;display:block}.mainnav-toggle>button svg{display:block;margin:-0.2rem -0.5rem -0.2rem 0;height:1.9rem;width:1.9rem}";
287
- const PnMainnavStyle0 = pnMainnavCss;
288
-
289
- const PnMainnav = class {
290
- constructor(hostRef) {
291
- index.registerInstance(this, hostRef);
292
- this.menuLanguageChange = index.createEvent(this, "menuLanguageChange", 7);
293
- this.marketChange = index.createEvent(this, "marketChange", 7);
294
- this.menuOpenChange = index.createEvent(this, "menuOpenChange", 7);
295
- this.market = 'se';
296
- this.language = 'sv';
297
- this.navigationId = 'mainnav';
298
- this.openMenu = false;
299
- this.navLabel = '';
300
- }
301
- get hostElement() { return index.getElement(this); }
302
- menuLanguageChange; // Could not use language change since it's a existing window event
303
- marketChange;
304
- menuOpenChange;
305
- componentWillLoad() {
306
- this.init();
307
- document.removeEventListener('mousedown', this._onClickOutside.bind(this));
308
- document.addEventListener('mousedown', this._onClickOutside.bind(this));
309
- }
310
- async init() {
311
- this.setLanguage();
312
- this.setMarket();
313
- }
314
- _onClickOutside(event) {
315
- const clickedOutside = !this.hostElement.contains(event.target);
316
- if (clickedOutside) {
317
- pnMainnavStore.state.openLevel = '';
318
- }
319
- }
320
- setLanguage() {
321
- this.menuLanguageChange.emit(this.language);
322
- }
323
- setMarket() {
324
- this.marketChange.emit(this.market);
325
- }
326
- onLanguageChange(event) {
327
- if (translations[event.detail]) {
328
- pnMainnavStore.state.i18n = translations[event.detail];
329
- if (!this.navLabel) {
330
- this.navLabel = pnMainnavStore.state.i18n.navLabel;
331
- }
332
- }
333
- }
334
- setMenuOpenState() {
335
- pnMainnavStore.state.openMenu = !pnMainnavStore.state.openMenu;
336
- this.menuOpenChange.emit(pnMainnavStore.state.openMenu);
337
- }
338
- onOpenMenuLevelChange(event) {
339
- pnMainnavStore.state.openLevel = event.detail;
340
- }
341
- render() {
342
- return (index.h(index.Host, { key: '6514e2ec63194c0ec5b0ecd048abefd2d172d411' }, index.h("div", { key: 'b23ea254b54e7012a1a266c8f8079660c19ca0fb', class: "mainnav-toggle" }, index.h("button", { key: '560f2c92bb4d60e26ff8098774ba35c323a28a87', "aria-controls": this.navigationId, "aria-expanded": pnMainnavStore.state.openMenu + '', onClick: this.setMenuOpenState.bind(this) }, pnMainnavStore.state.i18n.mainMenuButton, index.h("pn-icon", { key: '4b36d30045d98fa12d5e1d0df6875c8f41a51e73', icon: pnMainnavStore.state.openMenu ? close.close : bars.bars, color: "white" }))), index.h("nav", { key: '09d11719992e893a0d746a0b001ff8c06427186a', class: "mainnav", "aria-label": this.navLabel, "data-menu-open": pnMainnavStore.state.openMenu + '', "data-menu-currentlevel": pnMainnavStore.state.currentLevel, id: this.navigationId }, index.h("slot", { key: '422b9d89ae5b8a3b56047a6c98a380336f346f1e' }))));
343
- }
344
- };
345
- PnMainnav.style = PnMainnavStyle0;
346
-
347
- const pnMainnavLevelCss = "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-mainnav-level{display:block}pn-mainnav-level:not(.hydrated){max-height:5.6rem;overflow:hidden}pn-mainnav-level[data-level=\"1\"]{width:100%;right:0;overflow-y:scroll;overflow-x:hidden;flex:1}@media screen and (min-width: 64em){pn-mainnav-level[data-level=\"1\"]{width:auto;overflow:initial}pn-mainnav-level[data-level=\"1\"]::-webkit-scrollbar{display:none}}pn-mainnav-level[data-level=\"2\"]{position:absolute;top:0;bottom:0;left:0;width:100vw;padding:0;background-color:#ffffff;z-index:1;transform:translateX(100vw);transition:transform 0.2s 0s;transition-property:transform, visibility;overflow:scroll;visibility:hidden}@media screen and (min-width: 64em){pn-mainnav-level[data-level=\"2\"]{left:0;top:calc(100% + 1rem);bottom:auto;border-radius:1.6rem;width:auto;padding:1.6rem 1.6rem 0 1.6rem;-webkit-box-shadow:0 0.06rem 0.18rem rgba(0, 0, 0, 0.1), 0 0.32rem 0.72rem rgba(0, 0, 0, 0.13);-moz-box-shadow:0 0.06rem 0.18rem rgba(0, 0, 0, 0.1), 0 0.32rem 0.72rem rgba(0, 0, 0, 0.13);box-shadow:0 0.06rem 0.18rem rgba(0, 0, 0, 0.1), 0 0.32rem 0.72rem rgba(0, 0, 0, 0.13);height:auto;z-index:3;display:none}pn-mainnav-level[data-level=\"2\"][data-menuitem-rightaligned=true]{right:0;left:unset}}@media screen and (max-height: 33.125em){pn-mainnav-level[data-level=\"2\"]{-ms-overflow-style:none;scrollbar-width:none}pn-mainnav-level[data-level=\"2\"]::-webkit-scrollbar{display:none}}pn-mainnav-level[data-level=\"2\"][aria-hidden=false]{transform:translateX(0);visibility:visible}@media screen and (min-width: 64em){pn-mainnav-level[data-level=\"2\"][aria-hidden=false]{display:block;overflow:visible}pn-mainnav-level[data-level=\"2\"][aria-hidden=false]:not([data-level-listcount=\"1\"]){display:grid;grid-template-columns:minmax(12em, 20em) 1fr;grid-template-rows:auto auto;gap:0px 1.6rem;grid-template-areas:\"top top\" \"left right\"}}@media screen and (min-width: 64em){pn-mainnav-level[data-level=\"2\"][data-level-alignment=left]{right:0;left:unset}}@media screen and (min-width: 64em){pn-mainnav-level[data-level=\"2\"][data-level-alignment=center]{left:50%;transform:translateX(-50%)}}pn-mainnav-level[data-level=\"2\"] a{color:#005d92;text-decoration:none}pn-mainnav-level [slot=top]{display:flex}@media screen and (min-width: 48em){pn-mainnav-level [slot=top]{display:none}}[data-menu-currentlevel=\"2\"] pn-mainnav-level [slot=footer]{display:none;overscroll-behavior:contain}.mainnav-level-header{grid-area:top}.mainnav-level-header>label{position:absolute;width:0.1rem;height:0.1rem;padding:0;margin:-0.1rem;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;white-space:nowrap}.mainnav-level-header>button{display:block;position:relative;border:none;background-color:transparent;color:#005d92;padding:2.4rem 0 2.4rem 6.2rem;width:100%;text-align:left}@media screen and (min-width: 64em){.mainnav-level-header>button{display:none;speak:none}}.mainnav-level-header>button>pn-icon{speak:none;position:absolute;height:2.4rem;width:2.4rem;left:3rem;top:50%;transform:translateY(-50%)}[data-level=\"2\"] .mainnav-level-header>pn-mainnav-link>a{font-size:2.4rem}";
348
- const PnMainnavLevelStyle0 = pnMainnavLevelCss;
349
-
350
- const PnMainnavLevel = class {
351
- constructor(hostRef) {
352
- index.registerInstance(this, hostRef);
353
- this.label = '';
354
- this.level = 1;
355
- this.levelId = '';
356
- this.isOpen = false;
357
- this.parentName = '';
358
- this.parentHref = '';
359
- this.parentLinkId = '';
360
- this.listCount = 0;
361
- this.alignment = 'right';
362
- }
363
- get hostElement() { return index.getElement(this); }
364
- async componentWillLoad() {
365
- this.setState();
366
- pnMainnavStore.onChange('openLevel', () => {
367
- this.onChangeOpenLevel();
368
- });
369
- }
370
- setState() {
371
- this.listCount = this.hostElement.querySelectorAll(':scope > pn-mainnav-list').length;
372
- const parentElm = this.hostElement.parentElement;
373
- if (parentElm.tagName.toLowerCase() !== 'nav') {
374
- this.level = 2;
375
- }
376
- if (parentElm.tagName.toLowerCase() === 'pn-mainnav-link') {
377
- this.parentName = parentElm.getAttribute('name') + '';
378
- if ((!this.label && this.parentName) || this.label !== this.parentName) {
379
- this.label = this.parentName;
380
- }
381
- this.parentHref = parentElm.getAttribute('href') + '';
382
- this.parentLinkId = parentElm.getAttribute('linkid') + '';
383
- const parentLinkName = this.parentName.toLowerCase().replace(/\W/gi, '_');
384
- this.levelId = `mainnav-lvl${this.level}-${parentLinkName}`;
385
- }
386
- }
387
- onOpen() {
388
- if (this.level === 2) {
389
- requestAnimationFrame(() => {
390
- const levelClientRect = this.hostElement.getClientRects()[0];
391
- if (!levelClientRect) {
392
- return;
393
- }
394
- const navElm = this.hostElement.parentElement.parentElement.parentElement.parentElement;
395
- if (navElm && navElm.tagName.toLowerCase() === 'nav') {
396
- const navClientRect = navElm.getClientRects()[0];
397
- if (!navClientRect) {
398
- return;
399
- }
400
- if (levelClientRect.right > window.innerWidth) {
401
- const levelParentRect = this.hostElement.parentElement.getClientRects()[0];
402
- if (levelParentRect.left - levelClientRect.width < 0) {
403
- this.alignment = 'center';
404
- }
405
- else {
406
- this.alignment = 'left';
407
- }
408
- }
409
- }
410
- });
411
- }
412
- }
413
- onChangeOpenLevel() {
414
- this.isOpen = pnMainnavStore.state.openLevel === this.levelId;
415
- pnMainnavStore.state.currentLevel = this.level;
416
- }
417
- render() {
418
- return (index.h(index.Host, { key: '371552512ee381b8054f7fd0a81a5982b1d526ba', ...(this.level > 1 && this.levelId ? { 'aria-hidden': !this.isOpen + '' } : {}), "data-level-listcount": this.listCount + '', "data-level-alignment": this.alignment, "data-level": this.level + '', ...(this.levelId ? { id: this.levelId } : {}) }, this.level > 1 ? (index.h("div", { class: "mainnav-level-header" }, index.h("label", { htmlFor: this.levelId }, pnMainnavStore.state.i18n.menuGoBackButton), index.h("button", { class: "secondlevel-backbtn", onClick: () => {
419
- pnMainnavStore.state.openLevel = '';
420
- pnMainnavStore.state.currentLevel = 1;
421
- }, "aria-expanded": (pnMainnavStore.state.openLevel === this.levelId) + '' }, index.h("pn-icon", { icon: arrow_left.arrow_left, color: "blue700" }), pnMainnavStore.state.i18n.menuStartButton), this.parentHref && this.label ? index.h("pn-mainnav-link", { href: this.parentHref, name: this.label, linkid: this.parentLinkId }) : null)) : null, index.h("slot", { key: 'b660beb4b8fecf272fd8ef59218f75a62b2dca67', name: "top" }), index.h("slot", { key: '9f23fba0672bf74e90f091091742c67ddd83bc16' }), index.h("slot", { key: 'b84d4f6abe2e8718220f231cb2ae4778758022a1', name: "additional" }), index.h("slot", { key: '47c442eeb3f55300630fb493a3f63ce2e9cceb31', name: "footer" })));
422
- }
423
- static get watchers() { return {
424
- "label": ["setState"],
425
- "isOpen": ["onOpen"]
426
- }; }
427
- };
428
- PnMainnavLevel.style = PnMainnavLevelStyle0;
429
-
430
- const pnMainnavListCss = "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-mainnav-list{display:block;overflow:visible;list-style:none;margin:0;padding:0;grid-area:right}@media screen and (min-width: 64em){pn-mainnav-list+pn-mainnav-list{grid-area:left;border-right:0.1rem solid #d3cecb;margin-bottom:1.6rem;margin-right:-0.7rem;padding-right:0.7rem}}[data-level=\"1\"]>pn-mainnav-list{overflow:scroll;-webkit-overflow-scrolling:touch}@media screen and (min-width: 64em){[data-level=\"1\"]>pn-mainnav-list{height:100%;display:flex;flex-flow:row;overflow:visible;padding:0}}@media screen and (min-width: 64em){[data-level=\"2\"]>pn-mainnav-list[data-navlist-showcolumns=true]{column-count:2;column-gap:1.6rem;padding-bottom:1.6rem}}.mainnav-list-heading{display:none;font-weight:bold;column-span:all;font-size:1.8rem;padding:1.4rem 1.4rem 1.4rem 4.8rem}@media screen and (min-width: 64em){.mainnav-list-heading{display:block;padding:0 1.4rem 1.4rem 1.4rem}}";
431
- const PnMainnavListStyle0 = pnMainnavListCss;
432
-
433
- const PnMainnavList = class {
434
- constructor(hostRef) {
435
- index.registerInstance(this, hostRef);
436
- this.heading = '';
437
- this.linkCount = 0;
438
- }
439
- get hostElement() { return index.getElement(this); }
440
- componentWillLoad() {
441
- this.linkCount = this.hostElement.querySelectorAll(':scope > pn-mainnav-link').length;
442
- }
443
- render() {
444
- return (index.h(index.Host, { key: '86966c572a7cbd574263cbc2c86cd9453f86347a', class: "mainnav-list", role: "list", "data-navlist-itemcount": this.linkCount + '', "data-navlist-showcolumns": (this.linkCount >= 8) + '' }, this.heading ? index.h("div", { class: "mainnav-list-heading" }, this.heading) : null, index.h("slot", { key: '5abcc1048dbf7edc1eda42e56d17fd988d9cc16a' })));
445
- }
446
- };
447
- PnMainnavList.style = PnMainnavListStyle0;
448
-
449
- class MarketWebLoginManager {
450
- eventTarget = window ?? document?.body;
451
- endpoint = '';
452
- storagePrefix = 'pn-user';
453
- checkUserLoggedInStateInterval = 0;
454
- baseUrls = {
455
- at: 'https://atportal.postnord.com/api/unified-login/backend',
456
- prod: 'https://portal.postnord.com/api/unified-login/backend',
457
- };
458
- events = {
459
- loginstatechange: 'loginstatechange',
460
- };
461
- endpoints = {
462
- authorizationEndpoint: `/authorization`,
463
- tokenExchangeEndpoint: `/token`,
464
- userInfoEndpoint: `/user`,
465
- logoutEndpoint: `/logout`,
466
- };
467
- keys = {
468
- tokensource: 'tokensource',
469
- token: 'token',
470
- accessToken: 'accessToken',
471
- user: 'user',
472
- expire: 'expire',
473
- expireDate: 'expiredate',
474
- };
475
- overridetokenValue = 'overridetokenValue';
476
- siteUrl = window.location.origin;
477
- abortSignalForLoginCheck = null;
478
- loginCheckInProgress = false;
479
- loginCheckTimer = null;
480
- constructor(options = null) {
481
- if (!options) {
482
- return;
483
- }
484
- this.eventTarget = options.eventTarget ? options.eventTarget : this.eventTarget;
485
- this.endpoint = options.endpoint ? options.endpoint : `${window.location.protocol}//${window.location.host}`;
486
- this.storagePrefix ??= options.storagePrefix;
487
- this.checkUserLoggedInStateInterval =
488
- options.checkUserLoggedInStateInterval && options.checkUserLoggedInStateInterval > 0 ? parseInt(options.checkUserLoggedInStateInterval + '', 10) : 0;
489
- if (options.userInfo) {
490
- this.store.set(this.keys.user, options.userInfo);
491
- this.registerToken(this.overridetokenValue, 'override');
492
- }
493
- }
494
- init(checkParameters = true) {
495
- if (checkParameters) {
496
- this.checkParameters();
497
- this.checkPNTopbar();
498
- this.checkExpireTime();
499
- if (this.store.get(this.keys.token) && !this.store.get(this.keys.user)) {
500
- this.fetchUserInfo();
501
- }
502
- this.loginStateChange();
503
- if (this.checkUserLoggedInStateInterval > 0) {
504
- this.initiateLoggedInCheck();
505
- }
506
- }
507
- }
508
- setSiteUrl(siteUrl) {
509
- if (siteUrl) {
510
- this.siteUrl = siteUrl;
511
- }
512
- }
513
- initiateLoggedInCheck() {
514
- if (this.isLoggedIn()) {
515
- if (window && window['AbortController']) {
516
- this.abortSignalForLoginCheck = new AbortController();
517
- }
518
- this.loginCheckTimer = window.setInterval(() => {
519
- this.doExternalLoggedInCheck()
520
- .then(() => { })
521
- .catch(() => { });
522
- }, this.checkUserLoggedInStateInterval);
523
- }
524
- }
525
- async doExternalLoggedInCheck() {
526
- if (!window.navigator.onLine) {
527
- // Don't check if the user is not online
528
- return;
529
- }
530
- if (!this.getToken()) {
531
- window.clearInterval(this.checkUserLoggedInStateInterval);
532
- return;
533
- }
534
- if (this.loginCheckInProgress && this.abortSignalForLoginCheck) {
535
- this.abortSignalForLoginCheck.abort();
536
- this.abortSignalForLoginCheck = new AbortController();
537
- }
538
- this.loginCheckInProgress = true;
539
- const reqConfig = {
540
- method: 'GET',
541
- headers: {
542
- 'Accept': 'application/json',
543
- 'Content-Type': 'application/json',
544
- 'Authorization': this.getToken(),
545
- },
546
- };
547
- if (this.abortSignalForLoginCheck && this.abortSignalForLoginCheck['signal']) {
548
- reqConfig['signal'] = this.abortSignalForLoginCheck['signal'];
549
- }
550
- const response = await fetch(`${this.getBaseUrl()}${this.endpoints.userInfoEndpoint}`, reqConfig);
551
- if (response.status === 409) {
552
- // This is a status the API returns if a user has been logged out
553
- window.clearInterval(this.checkUserLoggedInStateInterval);
554
- console.log('Cleared out user data due to bad response from authentication endpoint');
555
- this.LogoutUser();
556
- return;
557
- }
558
- if (!response.ok) {
559
- // The response was "bad". This could be due to bad connectivity or something else.
560
- // We'll ignore it so we don't unecessarily log users out or have them loose state if they're switching connection
561
- return;
562
- }
563
- const data = await response.json();
564
- if (!data || !data['accessToken']) {
565
- window.clearInterval(this.checkUserLoggedInStateInterval);
566
- console.log('Cleared out user data due to bad response from authentication endpoint');
567
- this.LogoutUser();
568
- }
569
- this.loginCheckInProgress = false;
570
- }
571
- LogoutUser() {
572
- this.clearUserData();
573
- // Log out user
574
- if (this.eventTarget) {
575
- const logoutLink = this.eventTarget.querySelector('#pn-marketweb-header-logoutlink');
576
- if (logoutLink) {
577
- logoutLink.click();
578
- return;
579
- }
580
- }
581
- this.loginStateChange();
582
- // If no logout link was found, attempt to change URL to redirect link
583
- const currentPageHref = window.location.href;
584
- window.location.href = this.getLogoutUrl(currentPageHref);
585
- }
586
- isLoggedIn(override = false) {
587
- if (override) {
588
- return override;
589
- }
590
- let isLoggedIn = this.store.get(this.keys.token) && this.store.get(this.keys.user) ? true : false;
591
- if (!isLoggedIn && this.store.get(this.keys.token) === this.overridetokenValue) {
592
- isLoggedIn = true;
593
- }
594
- return isLoggedIn;
595
- }
596
- registerToken(token = '', tokenSource = 'frontend') {
597
- if (!token || token === this.getToken()) {
598
- return;
599
- }
600
- this.clearUserData();
601
- this.store.set(this.keys.tokensource, tokenSource);
602
- this.store.set(this.keys.token, token);
603
- this.fetchUserInfo();
604
- }
605
- invalidateTokenOfType(tokenSource = 'frontend') {
606
- const currentToken = this.store.get(this.keys.token);
607
- if (!currentToken) {
608
- return;
609
- }
610
- const currentTokenSource = this.store.get(this.keys.tokensource);
611
- if (currentTokenSource !== tokenSource) {
612
- return;
613
- }
614
- // If we have a token and the source is set then we will invalidate the user data
615
- this.clearUserData();
616
- }
617
- getLoginUrl(redirectPage = '') {
618
- const currentPage = window.location.href;
619
- redirectPage = redirectPage ? redirectPage : currentPage;
620
- return `${this.getBaseUrl()}${this.endpoints.authorizationEndpoint}?redirectionUrl=${redirectPage}`;
621
- }
622
- getLogoutUrl(linkHref = '') {
623
- if (linkHref.indexOf('logout?logoutUrl') !== -1) {
624
- // Link has already been formatted.
625
- return linkHref;
626
- }
627
- let redirectPage = linkHref
628
- .replace('logout', '')
629
- .replace('http://window.location.href/?', window.location.href)
630
- .replace('https://window.location.href/?', window.location.href);
631
- let rootUrl = this.siteUrl;
632
- try {
633
- const url = new URL(this.siteUrl + '');
634
- rootUrl = url.origin;
635
- }
636
- catch (e) { }
637
- const addSlash = rootUrl.lastIndexOf('/') !== rootUrl.length - 1;
638
- const siteUrl = rootUrl + (addSlash ? '/' : '') + 'logout';
639
- const secondLogoutUrl = `${this.getBaseUrl()}${this.endpoints.logoutEndpoint}?authorization=${this.store.get(this.keys.token)}%26redirectionUrl=${redirectPage}`;
640
- const logoutUrl = `${siteUrl}?logoutUrl=${secondLogoutUrl}`;
641
- return logoutUrl;
642
- }
643
- getUserInfo() {
644
- if (this.isLoggedIn()) {
645
- return this.store.get(this.keys.user);
646
- }
647
- }
648
- getEventTarget() {
649
- return this.eventTarget;
650
- }
651
- checkExpireTime() {
652
- const expire = this.store.get(this.keys.expire);
653
- if (!expire) {
654
- return;
655
- }
656
- const now = new Date();
657
- const expireDate = new Date(Math.floor(parseInt(expire, 10) * 1000));
658
- if (now > expireDate) {
659
- console.info('Login time has expired');
660
- this.clearUserData();
661
- this.loginStateChange();
662
- }
663
- }
664
- checkPNTopbar() {
665
- if (this.isLoggedIn() || !window['pnTopbar'] || !window['pnTopbar']['session_id']) {
666
- return;
667
- }
668
- this.store.set(this.keys.token, window['pnTopbar']['session_id']);
669
- this.fetchUserInfo();
670
- }
671
- checkParameters() {
672
- if (!window?.location) {
673
- return;
674
- }
675
- const params = new URLSearchParams(window.location.search);
676
- if (params.get('oneTimeCode')) {
677
- const oneTimeCode = params.get('oneTimeCode');
678
- this.exchangeToken(oneTimeCode).then(() => {
679
- const currentHref = window.location.href;
680
- const paramPrefix = currentHref.indexOf('?oneTimeCode') !== -1 ? '?' : '&';
681
- const newUrl = currentHref.replace(`${paramPrefix}oneTimeCode=${oneTimeCode}`, '');
682
- history.replaceState({}, document.querySelector('title').innerText, newUrl);
683
- });
684
- }
685
- }
686
- async fetchUserInfo() {
687
- const token = this.store.get(this.keys.token);
688
- if (this.store.get(this.keys.token) === this.overridetokenValue) {
689
- console.info('Did not fetch user data since it was set by an override');
690
- return;
691
- }
692
- const reqConfig = {
693
- method: 'GET',
694
- headers: {
695
- 'Accept': 'application/json',
696
- 'Content-Type': 'application/json',
697
- 'Authorization': token,
698
- },
699
- };
700
- const response = await fetch(`${this.getBaseUrl()}${this.endpoints.userInfoEndpoint}`, reqConfig);
701
- const data = await response.json();
702
- if (data && data['idToken']) {
703
- try {
704
- const { idToken, expiryTime, accessToken } = data;
705
- const userInfo = this.parseUserInfo(idToken);
706
- if (!userInfo) {
707
- console.error('Userdata is not valid');
708
- this.clearUserData();
709
- return;
710
- }
711
- this.store.set(this.keys.user, userInfo);
712
- // 10 Min early expire
713
- this.store.set(this.keys.accessToken, accessToken);
714
- this.store.set(this.keys.expire, expiryTime);
715
- this.store.set(this.keys.expireDate, new Date(Math.floor(parseInt(expiryTime, 10) * 1000)));
716
- this.loginStateChange();
717
- }
718
- catch (e) {
719
- console.error('Unable to get user information', e);
720
- }
721
- }
722
- else {
723
- console.error('Unable to get user information. Clearing login state');
724
- this.clearUserData();
725
- }
726
- }
727
- clearUserData() {
728
- this.store.remove(this.keys.user);
729
- this.store.remove(this.keys.tokensource);
730
- this.store.remove(this.keys.accessToken);
731
- this.store.remove(this.keys.token);
732
- this.store.remove(this.keys.expire);
733
- this.store.remove(this.keys.expireDate);
734
- }
735
- getToken() {
736
- return this.store.get(this.keys.token);
737
- }
738
- getAccessToken() {
739
- return this.store.get(this.keys.accessToken);
740
- }
741
- async exchangeToken(oneTimeCode) {
742
- this.clearUserData();
743
- const response = await fetch(`${this.getBaseUrl()}${this.endpoints.tokenExchangeEndpoint}?oneTimeCode=${oneTimeCode}`);
744
- const { token } = await response.json();
745
- if (typeof token === 'string' && token) {
746
- this.store.set(this.keys.token, token);
747
- }
748
- this.fetchUserInfo();
749
- }
750
- loginStateChange() {
751
- if (!this.eventTarget) {
752
- return;
753
- }
754
- this.eventTarget.dispatchEvent(new CustomEvent(this.events.loginstatechange, {
755
- detail: this.isLoggedIn(),
756
- }));
757
- }
758
- getBaseUrl() {
759
- const atEnvironments = ['localhost', 'integration.', 'inte.', 'local.', 'prep.'];
760
- let useATEnv = atEnvironments.filter(x => this.endpoint.indexOf(x) !== -1).length > 0;
761
- if (['devportal.postnord.com', 'atportal.postnord.com'].indexOf(window.location.hostname) !== -1) {
762
- useATEnv = true;
763
- }
764
- if (useATEnv) {
765
- return this.baseUrls.at;
766
- }
767
- return this.baseUrls.prod;
768
- }
769
- parseUserInfo(idToken) {
770
- if (!idToken) {
771
- return null;
772
- }
773
- var base64Url = idToken.split('.')[1];
774
- var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
775
- var jsonPayload = decodeURIComponent(atob(base64)
776
- .split('')
777
- .map(function (c) {
778
- return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
779
- })
780
- .join(''));
781
- return JSON.parse(jsonPayload);
782
- }
783
- store = {
784
- get: (key) => {
785
- const value = window.localStorage.getItem(`${this.storagePrefix}-${key}`);
786
- if (!value) {
787
- return value;
788
- }
789
- if (value.indexOf('{') === 0) {
790
- try {
791
- return JSON.parse(value);
792
- }
793
- catch (e) { }
794
- }
795
- if (value.indexOf(',') !== -1) {
796
- return value.split(',');
797
- }
798
- return value;
799
- },
800
- set: (key, value) => {
801
- if (typeof value === 'object' && typeof value.length === 'undefined') {
802
- window.localStorage.setItem(`${this.storagePrefix}-${key}`, JSON.stringify(value));
803
- return;
804
- }
805
- window.localStorage.setItem(`${this.storagePrefix}-${key}`, value);
806
- },
807
- remove: (key) => {
808
- window.localStorage.removeItem(`${this.storagePrefix}-${key}`);
809
- },
810
- };
811
- }
812
-
813
- const pnMarketwebSiteheaderLoginCss = "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{padding:1rem 0;max-height:5.2rem;position:relative}pn-marketweb-siteheader-login pn-button-dropdown .pn-button-dropdown-container .pn-button-dropdown-content{max-width:350px;display:flex;flex-direction:column;gap:2.4rem;padding:4rem}pn-marketweb-siteheader-login pn-button-dropdown .pn-button-dropdown-container .pn-button-dropdown-content pn-button{width:100%}pn-marketweb-siteheader-login pn-button-dropdown .pn-button-dropdown-container .pn-button-dropdown-content pn-marketweb-siteheader-unified-login::after{display:block;content:\"\";height:2px;background:#f9f8f8;width:100%;margin-top:2.4rem}pn-marketweb-siteheader-login pn-button-dropdown .pn-button-dropdown-container .pn-button-dropdown-content span::before{display:block;content:\"\";height:2px;background:#f9f8f8;width:100%;margin-bottom:2.4rem}pn-marketweb-siteheader-login pn-button-dropdown .pn-button-dropdown-container .pn-button-dropdown-content span{font-size:1.4rem;color:#2d2013}pn-marketweb-siteheader-login pn-button-dropdown .pn-button-dropdown-container .pn-button-dropdown-content span a{text-decoration:none;color:#005d92}pn-marketweb-siteheader-login pn-button-dropdown .pn-button-dropdown-container .pn-button-dropdown-content span a:hover{text-decoration:underline}pn-marketweb-siteheader-login pn-button-dropdown .pn-button-dropdown-container .pn-button-dropdown-content span *{margin-bottom:0}pn-marketweb-siteheader-login pn-button-dropdown{display:none}pn-marketweb-siteheader-login.hydrated pn-button-dropdown{display:block}";
814
- const PnMarketwebSiteheaderLoginStyle0 = pnMarketwebSiteheaderLoginCss;
815
-
816
- const PnMarketwebSiteheaderLogin = class {
817
- constructor(hostRef) {
818
- index.registerInstance(this, hostRef);
819
- this.loginStateChange = index.createEvent(this, "loginStateChange", 7);
820
- this.endpoint = '';
821
- this.token = '';
822
- this.i18n = {
823
- searchlabel: '',
824
- searchplaceholder: '',
825
- searchbuttontext: '',
826
- menuHomeButton: '',
827
- menuGoBackButton: '',
828
- mainMenuButton: '',
829
- menuStartButton: '',
830
- profileSelectionFlyoutHeading: '',
831
- unifiedLoginButton: '',
832
- unifiedMyPagesButton: '',
833
- };
834
- this.siteUrl = '';
835
- this.emitEvents = true;
836
- this.loginDialog = null;
837
- this.fullname = '';
838
- this.loggedin = false;
839
- this.showProfileSelection = false;
840
- this.showUnifiedLogin = false;
841
- this.checkUserLoggedInStateInterval = 0;
842
- this.environment = undefined;
843
- this.loginLinks = undefined;
844
- this.toggleButtonText = this.loginDialog?.loginMenuLinkText ? this.loginDialog.loginMenuLinkText : '';
845
- this.username = this.fullname;
846
- this.useMarketwebLogin = undefined;
847
- }
848
- get hostElement() { return index.getElement(this); }
849
- // Events
850
- loginStateChange;
851
- componentWillLoad() {
852
- const userInfo = this.loggedin && this.fullname ? { given_name: this.fullname } : null;
853
- pnMarketwebSiteheaderStore.state.loginManager = new MarketWebLoginManager({
854
- endpoint: this.endpoint,
855
- eventTarget: this.hostElement,
856
- checkUserLoggedInStateInterval: this.checkUserLoggedInStateInterval,
857
- userInfo,
858
- });
859
- pnMarketwebSiteheaderStore.state.loginManager.setSiteUrl(this.siteUrl);
860
- this.hostElement['loginmanager'] = pnMarketwebSiteheaderStore.state.loginManager;
861
- if (this.token) {
862
- pnMarketwebSiteheaderStore.state.loginManager.registerToken(this.token, 'backend');
863
- }
864
- else if (this.emitEvents) {
865
- // The primary login instance
866
- pnMarketwebSiteheaderStore.state.loginManager.invalidateTokenOfType('backend');
867
- }
868
- this.hostElement.addEventListener(pnMarketwebSiteheaderStore.state.loginManager.events.loginstatechange, this.onLoginStateChange.bind(this));
869
- this.init();
870
- this.setUserName();
871
- this.setToggleButtonText();
872
- }
873
- async init() {
874
- pnMarketwebSiteheaderStore.state.loginManager.init(this.emitEvents);
875
- this.setToggleButtonText();
876
- this.adjustLoginLinks();
877
- }
878
- adjustLoginLinks() {
879
- if (!this.loginDialog?.loginMenuLinks) {
880
- return;
881
- }
882
- const adjustLink = (link, i) => {
883
- if (!link.isLogoutLink) {
884
- link.isLogoutLink = link.pageLink.indexOf('location.href') !== -1 && link.pageLink.indexOf('logout') !== -1;
885
- }
886
- if (link.isLogoutLink) {
887
- link.href = pnMarketwebSiteheaderStore.state.loginManager.getLogoutUrl(link.pageLink);
888
- }
889
- if (i === 0 && !link.href) {
890
- link.href = pnMarketwebSiteheaderStore.state.loginManager.getLoginUrl();
891
- link.linkType = 'primary';
892
- }
893
- if (link.primaryLinkApperance && !link.linkType) {
894
- link.linkType = 'primary';
895
- }
896
- return link;
897
- };
898
- if (this.loginDialog) {
899
- this.loginDialog.loginMenuLinks = this.loginDialog.loginMenuLinks.map(adjustLink);
900
- this.loginDialog.loggedInLinks = this.loginDialog.loggedInLinks.map(adjustLink);
901
- }
902
- this.loginDialog.legacyLoginLinks = [
903
- {
904
- href: pnMarketwebSiteheaderStore.state.loginManager.getLoginUrl(this.loginDialog.loginUrl),
905
- linkText: this.loginDialog.loginLinkText,
906
- openInNewWindow: false,
907
- isLogoutLink: false,
908
- pageLink: null,
909
- linkType: 'primary',
910
- primaryLinkApperance: true,
911
- },
912
- {
913
- href: pnMarketwebSiteheaderStore.state.loginManager.getLoginUrl(this.loginDialog.registerUrl),
914
- linkText: this.loginDialog.createLoginLinkText,
915
- openInNewWindow: false,
916
- isLogoutLink: false,
917
- pageLink: null,
918
- primaryLinkApperance: false,
919
- },
920
- ];
921
- }
922
- setUserName() {
923
- const userInfo = pnMarketwebSiteheaderStore.state.loginManager.getUserInfo();
924
- let name = '';
925
- if (!this.loggedin || !userInfo) {
926
- this.username = name;
927
- }
928
- if (userInfo && userInfo.given_name) {
929
- name = userInfo.given_name + (userInfo?.family_name ? ` ${userInfo?.family_name}` : '');
930
- }
931
- if (!name && userInfo && userInfo.email) {
932
- name = userInfo.email;
933
- }
934
- if (!name && this.fullname) {
935
- name = this.fullname;
936
- }
937
- this.username = name;
938
- this.adjustLoginLinks();
939
- }
940
- setToggleButtonText() {
941
- if (this.loggedin) {
942
- this.toggleButtonText = this.username;
943
- if (!this.toggleButtonText) {
944
- this.toggleButtonText = this.loginDialog.loggedInButtonText;
945
- }
946
- }
947
- else {
948
- this.toggleButtonText = this.loginDialog.loginMenuLinkText;
949
- }
950
- }
951
- onLoginStateChange(e) {
952
- if (this.loggedin !== e.detail && this.emitEvents) {
953
- this.loggedin = e.detail;
954
- this.loginStateChange.emit({ loggedIn: this.loggedin, token: pnMarketwebSiteheaderStore.state.loginManager.getToken() });
955
- this.setUserName();
956
- this.setToggleButtonText();
957
- }
958
- }
959
- render() {
960
- if (!this.loginDialog) {
961
- return;
962
- }
963
- let hostElementAttribute = {
964
- username: null,
965
- loggedin: 'false',
966
- };
967
- if (this.username) {
968
- hostElementAttribute.username = this.username;
969
- hostElementAttribute.loggedin = this.loggedin + '';
970
- }
971
- return (index.h(index.Host, { ...hostElementAttribute }, index.h("pn-button-dropdown", { label: this.toggleButtonText, icon: user, appearance: "light", variant: "borderless", class: "siteheader-logindialog" }, this.showUnifiedLogin && !this.loggedin && (index.h("pn-marketweb-siteheader-unified-login", { loggedIn: this.loggedin, logInLabel: this.i18n.unifiedLoginButton, useMarketwebLogin: this.useMarketwebLogin, environment: this.environment })), this.loggedin && this.showProfileSelection ? (index.h("pn-marketweb-siteheader-login-profileselection", { loginDialog: this.loginDialog, loggedin: this.loggedin, i18n: this.i18n, idNamespace: this.emitEvents ? '1' : '2', endpoint: this.endpoint })) : (index.h("pn-marketweb-siteheader-login-links", { loginDialog: this.loginDialog, loggedin: this.loggedin, idNamespace: this.emitEvents ? '1' : '2', username: this.username, showUnifiedLogin: this.showUnifiedLogin })), !this.loggedin && this.loginDialog?.loginInfo && (index.h("span", { innerHTML: `${this.loginDialog.loginInfo}` })))));
972
- }
973
- static get watchers() { return {
974
- "i18n": ["init"],
975
- "loginDialog": ["init"]
976
- }; }
977
- };
978
- PnMarketwebSiteheaderLogin.style = PnMarketwebSiteheaderLoginStyle0;
979
-
980
- // Read more about how stencil stores work here: https://stenciljs.com/docs/stencil-store
981
- const { state, onChange } = index$1.createStore({
982
- searchValue: '',
983
- autocompleteSuggestions: {},
984
- requestAbortController: new AbortController(),
985
- });
986
-
987
- const pnMarketwebSiteheaderSearchCss = "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}}.siteheader-search a{display:none}@media screen and (min-width: 48em){.siteheader-search a{display:block}}.siteheader-search pn-search-field>.input-container button{background:#ffffff}.siteheader-search pn-search-field.button-icon pn-button,.siteheader-search pn-button{display:inline-flex}.siteheader-search pn-search-field.button-icon pn-button button,.siteheader-search pn-button button{align-self:center;padding:0;height:2.3em;width:2.4em;line-height:0;min-height:unset;min-width:initial}.siteheader-search pn-search-field.button-icon pn-button pn-icon,.siteheader-search pn-button pn-icon{margin-left:0}.siteheader-search pn-search-field.button-icon pn-button .pn-button-tooltip,.siteheader-search pn-button .pn-button-tooltip{line-height:initial !important}.siteheader-search form{justify-content:flex-end;align-items:stretch;width:auto;flex:none;display:flex;padding:0;margin:0 0 0 0.4rem;position:relative;flex-direction:column}@media screen and (min-width: 60em){.siteheader-search form{margin-right:1.6rem}}.siteheader-search form pn-search-field{min-width:13.5em}.siteheader-search form pn-search-field .input-container{align-self:center}.siteheader-search form pn-search-field input{height:auto;min-height:1em;padding:0.6em 0.75em}";
988
- const PnMarketwebSiteheaderSearchStyle0 = pnMarketwebSiteheaderSearchCss;
989
-
990
- const PnMarketwebSiteheaderSearch = class {
991
- constructor(hostRef) {
992
- index.registerInstance(this, hostRef);
993
- this.i18n = undefined;
994
- this.showOnlyLink = false;
995
- this.hideSearch = false;
996
- this.language = null;
997
- this.siteid = null;
998
- this.search = {};
999
- this.primary = false;
1000
- this.icononly = true;
1001
- this.autoCompleteOptions = [];
1002
- }
1003
- get hostElement() { return index.getElement(this); }
1004
- onSearchValueUpdate() {
1005
- this.getAutocomplete(state.searchValue);
1006
- }
1007
- async getAutocomplete(prefix) {
1008
- if (!this.search.AutocompleteEndpoint || prefix.length < 2) {
1009
- this.autoCompleteOptions = [];
1010
- return;
1011
- }
1012
- if (state.autocompleteSuggestions[prefix]) {
1013
- this.setAutocompleteSuggestions(state.autocompleteSuggestions[prefix]);
1014
- return;
1015
- }
1016
- let autocompleteUrl = `${this.search.AutocompleteEndpoint}?prefix=${prefix}&size=10`;
1017
- if (this.language || this.siteid) {
1018
- autocompleteUrl += `&tags=`;
1019
- if (this.language) {
1020
- autocompleteUrl += `language:${this.language}`;
1021
- }
1022
- if (this.language && this.siteid) {
1023
- autocompleteUrl += `,`;
1024
- }
1025
- if (this.siteid) {
1026
- autocompleteUrl += `siteid:${this.siteid}`;
1027
- }
1028
- }
1029
- const req = await fetch(autocompleteUrl, { signal: state.requestAbortController.signal }).catch(e => {
1030
- console.warn('Unable to fetch autocomplete suggestions', e);
1031
- });
1032
- if (!req) {
1033
- return;
1034
- }
1035
- const data = await req.json();
1036
- if (!data || !data.hits || !data.hits.length) {
1037
- return;
1038
- }
1039
- const suggestions = data.hits
1040
- .filter(item => item.type === 'editorial')
1041
- .map(item => {
1042
- return item.query;
1043
- });
1044
- // Store query in store
1045
- state.autocompleteSuggestions[prefix] = suggestions;
1046
- this.setAutocompleteSuggestions(suggestions);
1047
- }
1048
- setAutocompleteSuggestions(suggestions) {
1049
- if (typeof suggestions !== 'object' || typeof suggestions.length !== 'number' || suggestions.length === 0) {
1050
- return;
1051
- }
1052
- this.autoCompleteOptions = suggestions;
1053
- }
1054
- componentWillLoad() {
1055
- onChange('searchValue', () => {
1056
- this.onSearchValueUpdate();
1057
- });
1058
- }
1059
- componentDidRender() {
1060
- const inputSearchElm = this.hostElement.querySelector('pn-search-field input:not([list])');
1061
- if (inputSearchElm && this.search.AutocompleteEndpoint) {
1062
- inputSearchElm.setAttribute('list', 'siteheader-search-autocomplete');
1063
- }
1064
- }
1065
- render() {
1066
- if (!this.search.formActionUrl || this.hideSearch) {
1067
- return;
1068
- }
1069
- const autocompleteAttribute = this.search.AutocompleteEndpoint ? { list: 'siteheader-search-autocomplete' } : {};
1070
- return (index.h("div", { class: "siteheader-search" }, this.showOnlyLink ? (index.h("pn-button", { href: this.search.formActionUrl, appearance: "light", icon: search.search, tooltip: this.i18n.searchlabel })) : (index.h("form", { method: "get", action: this.search.formActionUrl, role: "search" }, index.h("pn-search-field", { ...autocompleteAttribute, label: this.i18n.searchlabel, name: "q", button: this.icononly ? 'icon' : null, "button-label": 'Search', placeholder: this.i18n.searchplaceholder, onUpdate: (e) => {
1071
- state.searchValue = e.detail;
1072
- }, onSearch: () => {
1073
- const form = this.hostElement.querySelector('form');
1074
- if (form) {
1075
- form.submit();
1076
- }
1077
- } }), this.primary && this.search.AutocompleteEndpoint ? (index.h("datalist", { id: "siteheader-search-autocomplete" }, this.autoCompleteOptions.map(item => (index.h("option", null, item))))) : null))));
1078
- }
1079
- };
1080
- PnMarketwebSiteheaderSearch.style = PnMarketwebSiteheaderSearchStyle0;
1081
-
1082
- const languageData = {
1083
- sv: {
1084
- navlabel: 'Webbplatsväljare',
1085
- },
1086
- en: {
1087
- navlabel: 'Website selector',
1088
- },
1089
- da: {
1090
- navlabel: 'Webstedsvælger',
1091
- },
1092
- no: {
1093
- navlabel: 'Nettstedsvelger',
1094
- },
1095
- fi: {
1096
- navlabel: 'Verkkosivun valitsin',
1097
- },
1098
- de: {
1099
- navlabel: 'Website-Selektor',
1100
- },
1101
- };
1102
-
1103
- const pnSiteSelectorCss = "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-site-selector{display:flex;position:relative;justify-content:center;max-height:5.2rem}@media screen and (min-width: 75em){pn-site-selector{display:block}}.siteselector-heading{display:block;padding:0;margin-bottom:1.6rem}@media screen and (min-width: 75em){.siteselector-heading{display:flex;align-items:center;margin-top:0.8rem}}.siteselector-list{list-style:none;margin:0;padding:0}";
1104
- const PnSiteSelectorStyle0 = pnSiteSelectorCss;
1105
-
1106
- const PnSiteSelector = class {
1107
- constructor(hostRef) {
1108
- index.registerInstance(this, hostRef);
1109
- this.buttontext = 'postnord';
1110
- this.heading = 'PostNord';
1111
- this.language = 'sv';
1112
- this.i18n = { navlabel: 'Site selector' };
1113
- }
1114
- get hostElement() { return index.getElement(this); }
1115
- componentWillLoad() {
1116
- this.setLanguage();
1117
- }
1118
- setLanguage() {
1119
- if (languageData[this.language]) {
1120
- this.i18n = languageData[this.language];
1121
- }
1122
- }
1123
- render() {
1124
- return (index.h(index.Host, { key: '818f95d25b52f12606f0f16d9542e6885984dfd2' }, index.h("pn-button-dropdown", { key: 'fb45e47d2579770a61cf304adf01b73fee264af9', label: this.buttontext, icon: angle_small_down.angle_small_down, appearance: "light", variant: "borderless", "aria-label": this.i18n.navlabel }, index.h("div", { key: '32fe7d80a99ba0a90b8f0c8609054662f75a21c7', class: "siteselector-nav" }, this.heading ? index.h("strong", { class: "siteselector-heading" }, this.heading) : null, index.h("div", { key: '048a1e94dd9633f78401a23f3f6295ae5f6d2c11', role: "menu", class: "siteselector-list" }, index.h("slot", { key: '820048c94c2b838c483fd0e404b36f556fed8372' }))))));
1125
- }
1126
- };
1127
- PnSiteSelector.style = PnSiteSelectorStyle0;
1128
-
1129
- const pnSiteSelectorItemCss = "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-site-selector-item{display:block}pn-site-selector-item>div,pn-site-selector-item>a{padding:0.8rem 0;display:flex;flex-flow:column;position:relative}.siteselector-item-link{border-radius:0;text-decoration:none;color:#005d92;flex-direction:row}.siteselector-item-link:hover,.siteselector-item-link:focus{background-color:#f3f2f2;color:#005d92;text-decoration:underline;outline:none;box-shadow:none}.siteselector-item-link:active{background-color:#f3f2f2;color:#00a0d6;outline:none}.siteselector-item-link>span{flex-grow:1}.siteselector-item-link pn-icon{right:3.2rem;height:1.9rem;width:1.9rem;align-self:center}.siteselector-item-link pn-icon svg{width:100%;height:auto}.siteselector-item-title{display:block}.siteselector-item-description{color:#2d2013;font-size:1.28rem}a:hover>.siteselector-item-description,a:focus>.siteselector-item-description{background-color:#f3f2f2;color:#005d92;text-decoration:underline;outline:none}a:active>.siteselector-item-description{background-color:#f3f2f2;color:#00a0d6;outline:none}";
1130
- const PnSiteSelectorItemStyle0 = pnSiteSelectorItemCss;
1131
-
1132
- const PnSiteSelectorItem = class {
1133
- constructor(hostRef) {
1134
- index.registerInstance(this, hostRef);
1135
- this.url = '';
1136
- this.heading = '';
1137
- this.description = '';
1138
- this.newwindow = false;
1139
- }
1140
- render() {
1141
- return (index.h(index.Host, { key: 'b943a5ff3b426b0c59a36b8444360e515ac7ea2c', role: "menuitem" }, this.url ? (index.h("a", { class: "siteselector-item-link", href: this.url, target: this.newwindow ? '_blank' : 'self', rel: this.newwindow ? 'nofollow noopener' : '' }, index.h("span", null, this.heading && index.h("span", { class: "siteselector-item-title" }, this.heading), this.description && index.h("small", { class: "siteselector-item-description" }, this.description)), index.h("pn-icon", { icon: angle_small_right, color: "blue700" }))) : (index.h("div", null, this.heading && index.h("span", { class: "siteselector-item-title" }, this.heading), this.description && index.h("small", { class: "siteselector-item-description" }, this.description)))));
1142
- }
1143
- };
1144
- PnSiteSelectorItem.style = PnSiteSelectorItemStyle0;
1145
-
1146
- exports.pn_language_selector = PnlanguageSelector;
1147
- exports.pn_language_selector_option = PnlanguageSelectorOption;
1148
- exports.pn_mainnav = PnMainnav;
1149
- exports.pn_mainnav_level = PnMainnavLevel;
1150
- exports.pn_mainnav_list = PnMainnavList;
1151
- exports.pn_marketweb_siteheader_login = PnMarketwebSiteheaderLogin;
1152
- exports.pn_marketweb_siteheader_search = PnMarketwebSiteheaderSearch;
1153
- exports.pn_site_selector = PnSiteSelector;
1154
- exports.pn_site_selector_item = PnSiteSelectorItem;
1155
-
1156
- //# sourceMappingURL=pn-language-selector_9.cjs.entry.js.map