@postnord/pn-marketweb-components 4.2.4 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/header-theme-a250bf67.js +245 -0
- package/cjs/header-theme-a250bf67.js.map +1 -0
- package/cjs/index-9a9efa1c.js +24 -16
- package/cjs/loader.cjs.js +1 -1
- package/cjs/pn-app-banner.cjs.entry.js +1 -1
- package/cjs/pn-breakpoints.cjs.entry.js +1 -1
- package/cjs/pn-chat-message_2.cjs.entry.js +2 -2
- package/cjs/pn-chat.cjs.entry.js +2 -2
- package/cjs/pn-customernumber-selector-option.cjs.entry.js +1 -1
- package/cjs/pn-customernumber-selector.cjs.entry.js +1 -1
- package/cjs/pn-find-price-result.cjs.entry.js +1 -1
- package/cjs/pn-find-price.cjs.entry.js +2 -2
- package/cjs/pn-find-service-and-price-result.cjs.entry.js +1 -1
- package/cjs/pn-find-service-and-price.cjs.entry.js +1 -1
- package/cjs/pn-hero-block-international.cjs.entry.js +1 -1
- package/cjs/pn-language-selector_13.cjs.entry.js +1519 -0
- package/cjs/pn-language-selector_13.cjs.entry.js.map +1 -0
- package/cjs/pn-level-up-modal.cjs.entry.js +1 -1
- package/cjs/pn-level-up.cjs.entry.js +2 -2
- package/cjs/pn-link-list.cjs.entry.js +1 -1
- package/cjs/pn-market-web-components.cjs.js +1 -1
- package/cjs/pn-marketweb-header-main-row_2.cjs.entry.js +222 -0
- package/cjs/pn-marketweb-header-main-row_2.cjs.entry.js.map +1 -0
- package/cjs/pn-marketweb-header-skeleton-loader.cjs.entry.js +23 -0
- package/cjs/pn-marketweb-header-skeleton-loader.cjs.entry.js.map +1 -0
- package/cjs/pn-marketweb-header-toggle.cjs.entry.js +46 -0
- package/cjs/pn-marketweb-header-toggle.cjs.entry.js.map +1 -0
- package/cjs/pn-marketweb-header.cjs.entry.js +1043 -0
- package/cjs/pn-marketweb-header.cjs.entry.js.map +1 -0
- package/cjs/pn-marketweb-icon.cjs.entry.js +1 -1
- package/cjs/{pn-marketweb-siteheader-login-linklist.cjs.entry.js → pn-marketweb-siteheader-login-button_2.cjs.entry.js} +44 -2
- package/cjs/pn-marketweb-siteheader-login-button_2.cjs.entry.js.map +1 -0
- package/cjs/pn-marketweb-siteheader-login-mypage-button.cjs.entry.js +1 -1
- package/cjs/pn-marketweb-siteheader.cjs.entry.js +7 -199
- package/cjs/pn-marketweb-siteheader.cjs.entry.js.map +1 -1
- package/cjs/pn-marketweb-table.cjs.entry.js +1 -1
- package/cjs/pn-media-block.cjs.entry.js +1 -1
- package/cjs/pn-pex-pricefinder.cjs.entry.js +1 -1
- package/cjs/pn-product-card_3.cjs.entry.js +1 -1
- package/cjs/pn-product-pricelist-result.cjs.entry.js +1 -1
- package/cjs/pn-product-pricelist.cjs.entry.js +2 -2
- package/cjs/pn-product-tile-info_2.cjs.entry.js +1 -1
- package/cjs/pn-product-tile.cjs.entry.js +1 -1
- package/cjs/pn-profile-modal-customernumber.cjs.entry.js +1 -1
- package/cjs/pn-profile-modal-profile.cjs.entry.js +2 -2
- package/cjs/pn-profile-modal-type.cjs.entry.js +1 -1
- package/cjs/pn-profile-modal.cjs.entry.js +1 -1
- package/cjs/pn-profile-selector-option.cjs.entry.js +1 -1
- package/cjs/pn-profile-selector.cjs.entry.js +1 -1
- package/cjs/pn-proxio-findprice-result.cjs.entry.js +1 -1
- package/cjs/pn-proxio-findprice.cjs.entry.js +3 -3
- package/cjs/pn-proxio-pricegroup.cjs.entry.js +1 -1
- package/cjs/pn-proxio-productcard_4.cjs.entry.js +3 -3
- package/cjs/pn-qr-code-generator.cjs.entry.js +1 -1
- package/cjs/pn-sidenav-level.cjs.entry.js +1 -1
- package/cjs/pn-sidenav-link.cjs.entry.js +1 -1
- package/cjs/pn-sidenav-togglebutton.cjs.entry.js +1 -1
- package/cjs/pn-sidenav.cjs.entry.js +1 -1
- package/cjs/pn-site-footer_3.cjs.entry.js +3 -3
- package/cjs/pn-titletag.cjs.entry.js +1 -1
- package/cjs/pn-usp-promoter.cjs.entry.js +1 -1
- package/cjs/pn-versa-card.cjs.entry.js +1 -1
- package/cjs/pn-versa-card.cjs.entry.js.map +1 -1
- package/cjs/translations-9510f11c.js +198 -0
- package/cjs/translations-9510f11c.js.map +1 -0
- package/collection/collection-manifest.json +5 -0
- package/collection/components/cards/pn-versa-card/pn-versa-card.css +27 -2
- package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-main-row.css +204 -0
- package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-main-row.js +658 -0
- package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-main-row.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-skeleton-loader.css +217 -0
- package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-skeleton-loader.js +20 -0
- package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-skeleton-loader.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-top-row.css +115 -0
- package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-top-row.js +520 -0
- package/collection/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-top-row.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/components/shared/pn-marketweb-header-shared.js +37 -0
- package/collection/components/layout-components/pn-marketweb-header/components/shared/pn-marketweb-header-shared.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/mapper/pn-marketweb-header.mapper.js +109 -0
- package/collection/components/layout-components/pn-marketweb-header/mapper/pn-marketweb-header.mapper.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.css +225 -0
- package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.js +916 -0
- package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.js +638 -0
- package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/services/pn-marketweb-header.service.js +180 -0
- package/collection/components/layout-components/pn-marketweb-header/services/pn-marketweb-header.service.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/types/pn-marketweb-header.types.js +2 -0
- package/collection/components/layout-components/pn-marketweb-header/types/pn-marketweb-header.types.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/utils/header-i18n.js +37 -0
- package/collection/components/layout-components/pn-marketweb-header/utils/header-i18n.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/utils/header-language.js +46 -0
- package/collection/components/layout-components/pn-marketweb-header/utils/header-language.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/utils/header-menu.js +36 -0
- package/collection/components/layout-components/pn-marketweb-header/utils/header-menu.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/utils/header-theme.js +48 -0
- package/collection/components/layout-components/pn-marketweb-header/utils/header-theme.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.js +101 -0
- package/collection/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.storage.js +63 -0
- package/collection/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.storage.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-header/utils/header-url.js +91 -0
- package/collection/components/layout-components/pn-marketweb-header/utils/header-url.js.map +1 -0
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-button.js +1 -1
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-linklist.css +34 -12
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-mypage-button.js +1 -1
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-profileselection.css +36 -15
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.css +27 -13
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.js +29 -4
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.js.map +1 -1
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-types.js.map +1 -1
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-unified-login.js +1 -1
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.js +4 -4
- package/collection/components/media/pn-media-block/pn-media-block.js +1 -1
- package/collection/components/minor/pn-app-banner/pn-app-banner.js +1 -1
- package/collection/components/minor/pn-marketweb-icon/pn-marketweb-icon.js +1 -1
- package/collection/components/minor/pn-swan/pn-swan.js +1 -1
- package/collection/components/minor/pn-titletag/pn-titletag.js +1 -1
- package/collection/components/navigation/pn-language-selector/pn-language-selector-option.css +25 -12
- package/collection/components/navigation/pn-language-selector/pn-language-selector-option.js +1 -1
- package/collection/components/navigation/pn-language-selector/pn-language-selector.css +17 -5
- package/collection/components/navigation/pn-language-selector/pn-language-selector.js +22 -3
- package/collection/components/navigation/pn-language-selector/pn-language-selector.js.map +1 -1
- package/collection/components/navigation/pn-mainnav/pn-mainnav-level.css +37 -17
- package/collection/components/navigation/pn-mainnav/pn-mainnav-level.js +2 -2
- package/collection/components/navigation/pn-mainnav/pn-mainnav-link.css +81 -33
- package/collection/components/navigation/pn-mainnav/pn-mainnav-link.js +1 -1
- package/collection/components/navigation/pn-mainnav/pn-mainnav-list.css +12 -2
- package/collection/components/navigation/pn-mainnav/pn-mainnav-list.js +1 -1
- package/collection/components/navigation/pn-mainnav/pn-mainnav.css +35 -22
- package/collection/components/navigation/pn-mainnav/pn-mainnav.js +1 -1
- package/collection/components/navigation/pn-marketweb-header-toggle/pn-marketweb-header-toggle.css +80 -0
- package/collection/components/navigation/pn-marketweb-header-toggle/pn-marketweb-header-toggle.js +147 -0
- package/collection/components/navigation/pn-marketweb-header-toggle/pn-marketweb-header-toggle.js.map +1 -0
- package/collection/components/navigation/pn-sidenav/pn-sidenav-level.js +1 -1
- package/collection/components/navigation/pn-sidenav/pn-sidenav-link.js +1 -1
- package/collection/components/navigation/pn-sidenav/pn-sidenav-togglebutton.js +1 -1
- package/collection/components/navigation/pn-sidenav/pn-sidenav.js +1 -1
- package/collection/components/navigation/pn-site-footer/pn-site-footer-col.js +1 -1
- package/collection/components/navigation/pn-site-footer/pn-site-footer.js +1 -1
- package/collection/components/navigation/pn-site-selector/pn-site-selector-item.css +16 -12
- package/collection/components/navigation/pn-site-selector/pn-site-selector-item.js +1 -1
- package/collection/components/navigation/pn-site-selector/pn-site-selector.css +15 -0
- package/collection/components/navigation/pn-site-selector/pn-site-selector.js +22 -3
- package/collection/components/navigation/pn-site-selector/pn-site-selector.js.map +1 -1
- package/collection/components/profile/pn-customernumber-selector/pn-customernumber-selector-option.js +1 -1
- package/collection/components/profile/pn-customernumber-selector/pn-customernumber-selector.js +1 -1
- package/collection/components/profile/pn-profile-modal/pn-profile-modal-customernumber.js +1 -1
- package/collection/components/profile/pn-profile-modal/pn-profile-modal-profile.js +2 -2
- package/collection/components/profile/pn-profile-modal/pn-profile-modal-type.js +1 -1
- package/collection/components/profile/pn-profile-modal/pn-profile-modal.js +1 -1
- package/collection/components/profile/pn-profile-selector/pn-profile-selector-option.js +1 -1
- package/collection/components/profile/pn-profile-selector/pn-profile-selector.js +1 -1
- package/collection/components/utilities/pn-breakpoints/pn-breakpoints.js +1 -1
- package/collection/components/widgets/pn-chat/pn-chat-message/pn-chat-message.js +1 -1
- package/collection/components/widgets/pn-chat/pn-chat.js +2 -2
- package/collection/components/widgets/pn-find-price/pn-find-price-result.js +1 -1
- package/collection/components/widgets/pn-find-price/pn-find-price.js +2 -2
- package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price-result.js +1 -1
- package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price.js +1 -1
- package/collection/components/widgets/pn-hero-block-international/pn-hero-block-international.js +1 -1
- package/collection/components/widgets/pn-level-up/pn-level-up-modal/pn-level-up-modal.js +1 -1
- package/collection/components/widgets/pn-level-up/pn-level-up.js +2 -2
- package/collection/components/widgets/pn-link-list/pn-link-list.js +1 -1
- package/collection/components/widgets/pn-marketweb-carousel/pn-marketweb-carousel.js +1 -1
- package/collection/components/widgets/pn-marketweb-table/pn-marketweb-table.js +1 -1
- package/collection/components/widgets/pn-pex-pricefinder/pn-pex-pricefinder.js +1 -1
- package/collection/components/widgets/pn-product-card/pn-product-card.js +1 -1
- package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist-result.js +1 -1
- package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist.js +2 -2
- package/collection/components/widgets/pn-product-tile/pn-product-tile-info.js +1 -1
- package/collection/components/widgets/pn-product-tile/pn-product-tile.js +1 -1
- package/collection/components/widgets/pn-proxio-findprice/pn-proxio-findprice-result.js +1 -1
- package/collection/components/widgets/pn-proxio-findprice/pn-proxio-findprice.js +3 -3
- package/collection/components/widgets/pn-proxio-pricegroup/pn-proxio-pricegroup.js +1 -1
- package/collection/components/widgets/pn-proxio-productcard/pn-proxio-productcard-description.js +1 -1
- package/collection/components/widgets/pn-proxio-productcard/pn-proxio-productcard-information.js +1 -1
- package/collection/components/widgets/pn-proxio-productcard/pn-proxio-productcard.js +1 -1
- package/collection/components/widgets/pn-qr-code-generator/pn-qr-code-generator.js +1 -1
- package/collection/components/widgets/pn-usp-promoter/pn-usp-promoter.js +1 -1
- package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.constants.js +105 -0
- package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.constants.js.map +1 -0
- package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.service.js +166 -0
- package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.service.js.map +1 -0
- package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.types.js +2 -0
- package/collection/services/pn-refined-marketweb-context/pn-refined-marketweb-context.types.js.map +1 -0
- package/components/pn-app-banner.js +1 -1
- package/components/pn-breakpoints.js +1 -1
- package/components/pn-chat-message2.js +1 -1
- package/components/pn-chat.js +2 -2
- package/components/pn-customernumber-selector-option.js +1 -1
- package/components/pn-customernumber-selector.js +1 -1
- package/components/pn-find-price-result2.js +1 -1
- package/components/pn-find-price.js +2 -2
- package/components/pn-find-service-and-price-result2.js +1 -1
- package/components/pn-find-service-and-price.js +1 -1
- package/components/pn-hero-block-international.js +1 -1
- package/components/pn-language-selector-option2.js +2 -2
- package/components/pn-language-selector-option2.js.map +1 -1
- package/components/pn-language-selector2.js +4 -2
- package/components/pn-language-selector2.js.map +1 -1
- package/components/pn-level-up-modal2.js +1 -1
- package/components/pn-level-up.js +2 -2
- package/components/pn-link-list.js +1 -1
- package/components/pn-mainnav-level2.js +3 -3
- package/components/pn-mainnav-level2.js.map +1 -1
- package/components/pn-mainnav-link2.js +2 -2
- package/components/pn-mainnav-link2.js.map +1 -1
- package/components/pn-mainnav-list2.js +2 -2
- package/components/pn-mainnav-list2.js.map +1 -1
- package/components/pn-mainnav2.js +2 -2
- package/components/pn-mainnav2.js.map +1 -1
- package/components/pn-marketweb-carousel2.js +1 -1
- package/components/pn-marketweb-header-main-row.d.ts +11 -0
- package/components/pn-marketweb-header-main-row.js +8 -0
- package/components/pn-marketweb-header-main-row.js.map +1 -0
- package/components/pn-marketweb-header-main-row2.js +281 -0
- package/components/pn-marketweb-header-main-row2.js.map +1 -0
- package/components/pn-marketweb-header-shared.js +192 -0
- package/components/pn-marketweb-header-shared.js.map +1 -0
- package/components/pn-marketweb-header-skeleton-loader.d.ts +11 -0
- package/components/pn-marketweb-header-skeleton-loader.js +37 -0
- package/components/pn-marketweb-header-skeleton-loader.js.map +1 -0
- package/components/pn-marketweb-header-toggle.d.ts +11 -0
- package/components/pn-marketweb-header-toggle.js +8 -0
- package/components/pn-marketweb-header-toggle.js.map +1 -0
- package/components/pn-marketweb-header-toggle2.js +61 -0
- package/components/pn-marketweb-header-toggle2.js.map +1 -0
- package/components/pn-marketweb-header-top-row.d.ts +11 -0
- package/components/pn-marketweb-header-top-row.js +8 -0
- package/components/pn-marketweb-header-top-row.js.map +1 -0
- package/components/pn-marketweb-header-top-row2.js +238 -0
- package/components/pn-marketweb-header-top-row2.js.map +1 -0
- package/components/pn-marketweb-header.d.ts +11 -0
- package/components/pn-marketweb-header.js +1206 -0
- package/components/pn-marketweb-header.js.map +1 -0
- package/components/pn-marketweb-icon.js +1 -1
- package/components/pn-marketweb-siteheader-login-button2.js +1 -1
- package/components/pn-marketweb-siteheader-login-linklist2.js +1 -1
- package/components/pn-marketweb-siteheader-login-linklist2.js.map +1 -1
- package/components/pn-marketweb-siteheader-login-mypage-button.js +1 -1
- package/components/pn-marketweb-siteheader-login-profileselection2.js +1 -1
- package/components/pn-marketweb-siteheader-login-profileselection2.js.map +1 -1
- package/components/pn-marketweb-siteheader-login2.js +4 -2
- package/components/pn-marketweb-siteheader-login2.js.map +1 -1
- package/components/pn-marketweb-siteheader-unified-login2.js +1 -1
- package/components/pn-marketweb-siteheader.js +5 -197
- package/components/pn-marketweb-siteheader.js.map +1 -1
- package/components/pn-marketweb-table.js +1 -1
- package/components/pn-media-block.js +1 -1
- package/components/pn-pex-pricefinder.js +1 -1
- package/components/pn-product-card2.js +1 -1
- package/components/pn-product-pricelist-result.js +1 -1
- package/components/pn-product-pricelist.js +2 -2
- package/components/pn-product-tile-info2.js +1 -1
- package/components/pn-product-tile.js +1 -1
- package/components/pn-profile-modal-customernumber.js +1 -1
- package/components/pn-profile-modal-profile.js +2 -2
- package/components/pn-profile-modal-type.js +1 -1
- package/components/pn-profile-modal.js +1 -1
- package/components/pn-profile-selector-option.js +1 -1
- package/components/pn-profile-selector.js +1 -1
- package/components/pn-proxio-findprice-result2.js +2 -2
- package/components/pn-proxio-findprice.js +3 -3
- package/components/pn-proxio-pricegroup.js +2 -2
- package/components/pn-proxio-productcard-description2.js +1 -1
- package/components/pn-proxio-productcard-information2.js +1 -1
- package/components/pn-proxio-productcard2.js +1 -1
- package/components/pn-qr-code-generator2.js +1 -1
- package/components/pn-sidenav-level.js +1 -1
- package/components/pn-sidenav-link.js +1 -1
- package/components/pn-sidenav-togglebutton.js +1 -1
- package/components/pn-sidenav.js +1 -1
- package/components/pn-site-footer-col2.js +1 -1
- package/components/pn-site-footer2.js +1 -1
- package/components/pn-site-selector-item2.js +2 -2
- package/components/pn-site-selector-item2.js.map +1 -1
- package/components/pn-site-selector2.js +4 -2
- package/components/pn-site-selector2.js.map +1 -1
- package/components/pn-swan2.js +1 -1
- package/components/pn-titletag2.js +1 -1
- package/components/pn-usp-promoter.js +1 -1
- package/components/pn-versa-card.js +1 -1
- package/components/pn-versa-card.js.map +1 -1
- package/components/translations.js +189 -14
- package/components/translations.js.map +1 -1
- package/components/translations2.js +21 -0
- package/components/translations2.js.map +1 -0
- package/esm/header-theme-d09b64c7.js +234 -0
- package/esm/header-theme-d09b64c7.js.map +1 -0
- package/esm/index-c0a4d8bd.js +24 -16
- package/esm/loader.js +1 -1
- package/esm/pn-app-banner.entry.js +1 -1
- package/esm/pn-breakpoints.entry.js +1 -1
- package/esm/pn-chat-message_2.entry.js +2 -2
- package/esm/pn-chat.entry.js +2 -2
- package/esm/pn-customernumber-selector-option.entry.js +1 -1
- package/esm/pn-customernumber-selector.entry.js +1 -1
- package/esm/pn-find-price-result.entry.js +1 -1
- package/esm/pn-find-price.entry.js +2 -2
- package/esm/pn-find-service-and-price-result.entry.js +1 -1
- package/esm/pn-find-service-and-price.entry.js +1 -1
- package/esm/pn-hero-block-international.entry.js +1 -1
- package/esm/{pn-language-selector_9.entry.js → pn-language-selector_13.entry.js} +381 -22
- package/esm/pn-language-selector_13.entry.js.map +1 -0
- package/esm/pn-level-up-modal.entry.js +1 -1
- package/esm/pn-level-up.entry.js +2 -2
- package/esm/pn-link-list.entry.js +1 -1
- package/esm/pn-market-web-components.js +1 -1
- package/esm/pn-marketweb-header-main-row_2.entry.js +217 -0
- package/esm/pn-marketweb-header-main-row_2.entry.js.map +1 -0
- package/esm/pn-marketweb-header-skeleton-loader.entry.js +19 -0
- package/esm/pn-marketweb-header-skeleton-loader.entry.js.map +1 -0
- package/esm/pn-marketweb-header-toggle.entry.js +42 -0
- package/esm/pn-marketweb-header-toggle.entry.js.map +1 -0
- package/esm/pn-marketweb-header.entry.js +1039 -0
- package/esm/pn-marketweb-header.entry.js.map +1 -0
- package/esm/pn-marketweb-icon.entry.js +1 -1
- package/esm/{pn-marketweb-siteheader-login-linklist.entry.js → pn-marketweb-siteheader-login-button_2.entry.js} +44 -3
- package/esm/pn-marketweb-siteheader-login-button_2.entry.js.map +1 -0
- package/esm/pn-marketweb-siteheader-login-mypage-button.entry.js +1 -1
- package/esm/pn-marketweb-siteheader.entry.js +5 -197
- package/esm/pn-marketweb-siteheader.entry.js.map +1 -1
- package/esm/pn-marketweb-table.entry.js +1 -1
- package/esm/pn-media-block.entry.js +1 -1
- package/esm/pn-pex-pricefinder.entry.js +1 -1
- package/esm/pn-product-card_3.entry.js +1 -1
- package/esm/pn-product-pricelist-result.entry.js +1 -1
- package/esm/pn-product-pricelist.entry.js +2 -2
- package/esm/pn-product-tile-info_2.entry.js +1 -1
- package/esm/pn-product-tile.entry.js +1 -1
- package/esm/pn-profile-modal-customernumber.entry.js +1 -1
- package/esm/pn-profile-modal-profile.entry.js +2 -2
- package/esm/pn-profile-modal-type.entry.js +1 -1
- package/esm/pn-profile-modal.entry.js +1 -1
- package/esm/pn-profile-selector-option.entry.js +1 -1
- package/esm/pn-profile-selector.entry.js +1 -1
- package/esm/pn-proxio-findprice-result.entry.js +1 -1
- package/esm/pn-proxio-findprice.entry.js +3 -3
- package/esm/pn-proxio-pricegroup.entry.js +1 -1
- package/esm/pn-proxio-productcard_4.entry.js +3 -3
- package/esm/pn-qr-code-generator.entry.js +1 -1
- package/esm/pn-sidenav-level.entry.js +1 -1
- package/esm/pn-sidenav-link.entry.js +1 -1
- package/esm/pn-sidenav-togglebutton.entry.js +1 -1
- package/esm/pn-sidenav.entry.js +1 -1
- package/esm/pn-site-footer_3.entry.js +3 -3
- package/esm/pn-titletag.entry.js +1 -1
- package/esm/pn-usp-promoter.entry.js +1 -1
- package/esm/pn-versa-card.entry.js +1 -1
- package/esm/pn-versa-card.entry.js.map +1 -1
- package/esm/translations-d2f5804e.js +196 -0
- package/esm/translations-d2f5804e.js.map +1 -0
- package/package.json +1 -1
- package/pn-market-web-components/{p-4a164ef8.entry.js → p-03728b0b.entry.js} +2 -2
- package/pn-market-web-components/p-04f51418.js +2 -0
- package/pn-market-web-components/p-04f51418.js.map +1 -0
- package/pn-market-web-components/{p-e43a36e0.entry.js → p-067c1c2f.entry.js} +2 -2
- package/pn-market-web-components/p-16570ed2.entry.js +2 -0
- package/pn-market-web-components/p-16570ed2.entry.js.map +1 -0
- package/pn-market-web-components/{p-2616cdc1.entry.js → p-191c8cfc.entry.js} +2 -2
- package/pn-market-web-components/{p-ca003c1f.entry.js → p-1a91c313.entry.js} +2 -2
- package/pn-market-web-components/{p-ab1e3dc2.entry.js → p-1f8304be.entry.js} +2 -2
- package/pn-market-web-components/{p-a3f601cb.entry.js → p-24ffac0a.entry.js} +2 -2
- package/pn-market-web-components/p-3239c36b.entry.js +2 -0
- package/pn-market-web-components/p-3239c36b.entry.js.map +1 -0
- package/pn-market-web-components/{p-12cafd55.entry.js → p-3aa74418.entry.js} +2 -2
- package/pn-market-web-components/p-3d27faee.entry.js +2 -0
- package/pn-market-web-components/{p-9d0ca27b.entry.js.map → p-3d27faee.entry.js.map} +1 -1
- package/pn-market-web-components/p-3e25f431.entry.js +2 -0
- package/pn-market-web-components/p-3e25f431.entry.js.map +1 -0
- package/pn-market-web-components/{p-64f6691d.entry.js → p-42da7c5f.entry.js} +2 -2
- package/pn-market-web-components/{p-f0d423d0.entry.js → p-43748ca2.entry.js} +2 -2
- package/pn-market-web-components/{p-1c644b91.entry.js → p-466958a8.entry.js} +2 -2
- package/pn-market-web-components/{p-150da889.entry.js → p-4ab53d5d.entry.js} +2 -2
- package/pn-market-web-components/{p-118fe47d.entry.js → p-4d595345.entry.js} +2 -2
- package/pn-market-web-components/{p-0f6f715b.entry.js → p-4dac1980.entry.js} +2 -2
- package/pn-market-web-components/{p-a13f1f73.entry.js → p-4fcce83d.entry.js} +2 -2
- package/pn-market-web-components/{p-89fbca3b.entry.js → p-5a51d0b0.entry.js} +2 -2
- package/pn-market-web-components/{p-f4d2d0d3.entry.js → p-61346425.entry.js} +2 -2
- package/pn-market-web-components/{p-6e693269.entry.js → p-6b557670.entry.js} +2 -2
- package/pn-market-web-components/{p-e6d6a752.entry.js → p-70a71854.entry.js} +2 -2
- package/pn-market-web-components/p-75311d67.js +2 -0
- package/pn-market-web-components/p-75311d67.js.map +1 -0
- package/pn-market-web-components/p-756d8d95.entry.js +2 -0
- package/pn-market-web-components/p-756d8d95.entry.js.map +1 -0
- package/pn-market-web-components/{p-c0315c45.entry.js → p-76fb0c21.entry.js} +2 -2
- package/pn-market-web-components/{p-b2b2bae0.entry.js → p-81210644.entry.js} +2 -2
- package/pn-market-web-components/p-81e4d75b.entry.js +2 -0
- package/pn-market-web-components/p-81e4d75b.entry.js.map +1 -0
- package/pn-market-web-components/{p-d0f27361.entry.js → p-8382794b.entry.js} +2 -2
- package/pn-market-web-components/{p-8f25176b.entry.js → p-8519e39e.entry.js} +2 -2
- package/pn-market-web-components/p-8c26c1f2.entry.js +2 -0
- package/pn-market-web-components/p-8c26c1f2.entry.js.map +1 -0
- package/pn-market-web-components/{p-461c8792.entry.js → p-92b6477c.entry.js} +2 -2
- package/pn-market-web-components/{p-0d4d9d90.entry.js → p-9eab8192.entry.js} +2 -2
- package/pn-market-web-components/{p-40e632cc.entry.js → p-a3beee11.entry.js} +2 -2
- package/pn-market-web-components/{p-01fbf1ce.entry.js → p-a6935dc2.entry.js} +2 -2
- package/pn-market-web-components/{p-af646091.entry.js → p-a6dd3e4f.entry.js} +2 -2
- package/pn-market-web-components/{p-6d77e747.entry.js → p-af89c95a.entry.js} +2 -2
- package/pn-market-web-components/p-b318ff19.entry.js +2 -0
- package/pn-market-web-components/{p-0700cb4c.entry.js.map → p-b318ff19.entry.js.map} +1 -1
- package/pn-market-web-components/{p-c89f3d6b.entry.js → p-ba14b0ef.entry.js} +2 -2
- package/pn-market-web-components/{p-c7965104.entry.js → p-ba680948.entry.js} +2 -2
- package/pn-market-web-components/{p-11c6e458.entry.js → p-ba75bfdb.entry.js} +2 -2
- package/pn-market-web-components/{p-4149e715.entry.js → p-c186ec41.entry.js} +2 -2
- package/pn-market-web-components/{p-66c0c8dc.entry.js → p-c38707f9.entry.js} +2 -2
- package/pn-market-web-components/{p-671a8129.entry.js → p-c89cdd5a.entry.js} +2 -2
- package/pn-market-web-components/{p-4d848e18.entry.js → p-e8cd1608.entry.js} +2 -2
- package/pn-market-web-components/{p-4517a3d4.entry.js → p-ef090656.entry.js} +2 -2
- package/pn-market-web-components/p-f23ed5d2.entry.js +2 -0
- package/pn-market-web-components/p-f23ed5d2.entry.js.map +1 -0
- package/pn-market-web-components/{p-bd8ec517.entry.js → p-f3b4c13d.entry.js} +2 -2
- package/pn-market-web-components/{p-ff38b9a5.entry.js → p-f710445f.entry.js} +2 -2
- package/pn-market-web-components/{p-2e585ed5.entry.js → p-fcefe4a4.entry.js} +2 -2
- package/pn-market-web-components/p-fded22b7.entry.js +2 -0
- package/pn-market-web-components/p-fded22b7.entry.js.map +1 -0
- package/pn-market-web-components/{p-32bd2ff8.entry.js → p-ff6118f8.entry.js} +2 -2
- package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
- package/pn-market-web-components/pn-market-web-components.esm.js.map +1 -1
- package/types/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-main-row.d.ts +40 -0
- package/types/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-skeleton-loader.d.ts +3 -0
- package/types/components/layout-components/pn-marketweb-header/components/pn-marketweb-header-top-row.d.ts +30 -0
- package/types/components/layout-components/pn-marketweb-header/components/shared/pn-marketweb-header-shared.d.ts +48 -0
- package/types/components/layout-components/pn-marketweb-header/mapper/pn-marketweb-header.mapper.d.ts +34 -0
- package/types/components/layout-components/pn-marketweb-header/pn-marketweb-header.d.ts +121 -0
- package/types/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.d.ts +99 -0
- package/types/components/layout-components/pn-marketweb-header/services/pn-marketweb-header.service.d.ts +108 -0
- package/types/components/layout-components/pn-marketweb-header/types/pn-marketweb-header.types.d.ts +103 -0
- package/types/components/layout-components/pn-marketweb-header/utils/header-i18n.d.ts +16 -0
- package/types/components/layout-components/pn-marketweb-header/utils/header-language.d.ts +20 -0
- package/types/components/layout-components/pn-marketweb-header/utils/header-menu.d.ts +16 -0
- package/types/components/layout-components/pn-marketweb-header/utils/header-theme.d.ts +6 -0
- package/types/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.d.ts +49 -0
- package/types/components/layout-components/pn-marketweb-header/utils/header-toggle-menu.storage.d.ts +25 -0
- package/types/components/layout-components/pn-marketweb-header/utils/header-url.d.ts +41 -0
- package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.d.ts +2 -0
- package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-types.d.ts +1 -0
- package/types/components/navigation/pn-language-selector/pn-language-selector.d.ts +1 -0
- package/types/components/navigation/pn-marketweb-header-toggle/pn-marketweb-header-toggle.d.ts +25 -0
- package/types/components/navigation/pn-site-selector/pn-site-selector.d.ts +1 -0
- package/types/components/widgets/pn-proxio-pricegroup/pn-proxio-pricegroup.d.ts +1 -1
- package/types/components.d.ts +532 -2
- package/types/services/pn-refined-marketweb-context/pn-refined-marketweb-context.constants.d.ts +7 -0
- package/types/services/pn-refined-marketweb-context/pn-refined-marketweb-context.service.d.ts +24 -0
- package/types/services/pn-refined-marketweb-context/pn-refined-marketweb-context.types.d.ts +16 -0
- package/umd/pn-marketweb-init.js +1 -1
- package/umd/pn-marketweb-salesforce.js +1 -1
- package/vscode-data.json +421 -0
- package/cjs/pn-language-selector_9.cjs.entry.js +0 -1156
- package/cjs/pn-language-selector_9.cjs.entry.js.map +0 -1
- package/cjs/pn-mainnav-link.cjs.entry.js +0 -45
- package/cjs/pn-mainnav-link.cjs.entry.js.map +0 -1
- package/cjs/pn-mainnav-store-13aaa243.js +0 -22
- package/cjs/pn-mainnav-store-13aaa243.js.map +0 -1
- package/cjs/pn-marketweb-siteheader-login-button_4.cjs.entry.js +0 -366
- package/cjs/pn-marketweb-siteheader-login-button_4.cjs.entry.js.map +0 -1
- package/cjs/pn-marketweb-siteheader-login-linklist.cjs.entry.js.map +0 -1
- package/esm/pn-language-selector_9.entry.js.map +0 -1
- package/esm/pn-mainnav-link.entry.js +0 -41
- package/esm/pn-mainnav-link.entry.js.map +0 -1
- package/esm/pn-mainnav-store-c98d831e.js +0 -19
- package/esm/pn-mainnav-store-c98d831e.js.map +0 -1
- package/esm/pn-marketweb-siteheader-login-button_4.entry.js +0 -359
- package/esm/pn-marketweb-siteheader-login-button_4.entry.js.map +0 -1
- package/esm/pn-marketweb-siteheader-login-linklist.entry.js.map +0 -1
- package/pn-market-web-components/p-022780ab.entry.js +0 -2
- package/pn-market-web-components/p-022780ab.entry.js.map +0 -1
- package/pn-market-web-components/p-0700cb4c.entry.js +0 -2
- package/pn-market-web-components/p-3c69298b.entry.js +0 -2
- package/pn-market-web-components/p-3c69298b.entry.js.map +0 -1
- package/pn-market-web-components/p-4bc6d49f.entry.js +0 -2
- package/pn-market-web-components/p-4bc6d49f.entry.js.map +0 -1
- package/pn-market-web-components/p-4c8bda8f.entry.js +0 -2
- package/pn-market-web-components/p-4c8bda8f.entry.js.map +0 -1
- package/pn-market-web-components/p-5090bb1d.entry.js +0 -2
- package/pn-market-web-components/p-5090bb1d.entry.js.map +0 -1
- package/pn-market-web-components/p-9d0ca27b.entry.js +0 -2
- package/pn-market-web-components/p-a30de538.entry.js +0 -2
- package/pn-market-web-components/p-a30de538.entry.js.map +0 -1
- package/pn-market-web-components/p-e3b2486a.js +0 -2
- package/pn-market-web-components/p-e3b2486a.js.map +0 -1
- /package/pn-market-web-components/{p-4a164ef8.entry.js.map → p-03728b0b.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-e43a36e0.entry.js.map → p-067c1c2f.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-2616cdc1.entry.js.map → p-191c8cfc.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-ca003c1f.entry.js.map → p-1a91c313.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-ab1e3dc2.entry.js.map → p-1f8304be.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-a3f601cb.entry.js.map → p-24ffac0a.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-12cafd55.entry.js.map → p-3aa74418.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-64f6691d.entry.js.map → p-42da7c5f.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-f0d423d0.entry.js.map → p-43748ca2.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-1c644b91.entry.js.map → p-466958a8.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-150da889.entry.js.map → p-4ab53d5d.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-118fe47d.entry.js.map → p-4d595345.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-0f6f715b.entry.js.map → p-4dac1980.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-a13f1f73.entry.js.map → p-4fcce83d.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-89fbca3b.entry.js.map → p-5a51d0b0.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-f4d2d0d3.entry.js.map → p-61346425.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-6e693269.entry.js.map → p-6b557670.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-e6d6a752.entry.js.map → p-70a71854.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-c0315c45.entry.js.map → p-76fb0c21.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-b2b2bae0.entry.js.map → p-81210644.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-d0f27361.entry.js.map → p-8382794b.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-8f25176b.entry.js.map → p-8519e39e.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-461c8792.entry.js.map → p-92b6477c.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-0d4d9d90.entry.js.map → p-9eab8192.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-40e632cc.entry.js.map → p-a3beee11.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-01fbf1ce.entry.js.map → p-a6935dc2.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-af646091.entry.js.map → p-a6dd3e4f.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-6d77e747.entry.js.map → p-af89c95a.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-c89f3d6b.entry.js.map → p-ba14b0ef.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-c7965104.entry.js.map → p-ba680948.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-11c6e458.entry.js.map → p-ba75bfdb.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-4149e715.entry.js.map → p-c186ec41.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-66c0c8dc.entry.js.map → p-c38707f9.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-671a8129.entry.js.map → p-c89cdd5a.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-4d848e18.entry.js.map → p-e8cd1608.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-4517a3d4.entry.js.map → p-ef090656.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-bd8ec517.entry.js.map → p-f3b4c13d.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-ff38b9a5.entry.js.map → p-f710445f.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-2e585ed5.entry.js.map → p-fcefe4a4.entry.js.map} +0 -0
- /package/pn-market-web-components/{p-32bd2ff8.entry.js.map → p-ff6118f8.entry.js.map} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,c as t,g as n,h as i,d as o}from"./p-b3a13b6a.js";import{c as a}from"./p-2132ad75.js";import{b as r}from"./p-7e3afa8c.js";import{c as s}from"./p-366fd15a.js";import{a as l}from"./p-575f557a.js";import{a as d}from"./p-3fdca5bd.js";import{a as h}from"./p-36b39340.js";import{o as c}from"./p-c40f1e9a.js";import{s as p}from"./p-8c42f598.js";import{s as m}from"./p-66d71724.js";const u='<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>';const g=u;const f='<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>';const v=f;const b='<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>';const w=b;const k={sv:{heading:"Språk"},en:{heading:"Language"},da:{heading:"Sprog"},no:{heading:"Språk"},fi:{heading:"Kieli"},de:{heading:"Sprache"},zh:{heading:"语言"},fr:{heading:"Langue"},es:{heading:"Idioma"},nl:{heading:"Spraak"},it:{heading:"Idioma"},tr:{heading:"Dil"},pl:{heading:"Język"},pt:{heading:"Linguagem"},"pt-BR":{heading:"Linguagem"}};const x="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{--languageselector-toggle-color:#005d92;--languageselector-toggle-hover-color:#0d234b;--languageselector-toggle-background-color:#ffffff;--languageselector-title-color:#2d2013}pn-language-selector{max-height:5.2rem}.languageselector{position:relative}.languageselector-togglebtn{cursor:pointer;border:0;padding:0.64rem 0;background-color:var(--languageselector-toggle-background-color);color:var(--languageselector-toggle-color);font-size:1.6rem}.languageselector-togglebtn:hover,.languageselector-togglebtn:focus,.languageselector-togglebtn:active{color:var(--languageselector-toggle-hover-color);text-decoration:underline}.languageselector-togglebtn svg{width:1.9rem;height:1.9rem}.languageselector-title{display:flex;align-items:center;padding:0.8rem 1.6rem;color:var(--languageselector-title-color)}.languageselector-list{list-style:none;margin:0;padding:0}pn-language-selector[appearance=dark] button:hover pn-icon svg path{fill:#000000}";const y=x;const L=class{constructor(n){e(this,n);this.setLanguage=t(this,"setLanguage",7);this.value="";this.appearance="light";this.selectedLanguageName="";this.options=[];this.i18n=undefined}get hostElement(){return n(this)}setLanguage;componentWillLoad(){this.setInitialSelectedLanguageName();this.setTranslations()}componentDidLoad(){this.initialize()}initialize(){this.setSelectedLanguageName();this.addEventBindingsToOptions()}setInitialSelectedLanguageName(){if(!window.Intl||!this.value){return}const e=new Intl.DisplayNames([this.value],{type:"language"});if(!e){return}const t=e.of(this.value);if(!t){return}this.selectedLanguageName=t.charAt(0).toUpperCase()+t.slice(1)}addEventBindingsToOptions(){const e=[].slice.apply(this.hostElement.querySelectorAll("pn-language-selector-option"));e.map((e=>{e.removeEventListener("setCurrentLanguage",(e=>{this.onSetCurrentLanguage(e.detail)}));e.addEventListener("setCurrentLanguage",(e=>{this.onSetCurrentLanguage(e.detail)}))}))}setSelectedLanguageName(){const e=[].slice.apply(this.hostElement.querySelectorAll("pn-language-selector-option"));e.map((e=>{if(e.getAttribute("code")==this.value){this.selectedLanguageName=e.getAttribute("name")}}))}onSetCurrentLanguage(e){this.value=e.code;this.selectedLanguageName=e.name;this.setLanguage.emit(this.value)}setTranslations(){if(k[this.value]){this.i18n=k[this.value]}}onValueChange(){const e=this.hostElement.querySelectorAll("pn-language-selector-option")??[];e.forEach((e=>{const t=(e.getAttribute("code")===this.value)+"";if(e.getAttribute("selected")+""!==t){e.setAttribute("selected",t)}}))}render(){return i(o,{key:"0ba1347ccc5175441a315db338775b9bcdabd7fc",value:this.value},i("pn-button-dropdown",{key:"466f22c72836797e50ab8e90771b01231f288b84",label:this.selectedLanguageName,icon:v,appearance:this.appearance,variant:"borderless","aria-label":this.i18n.heading},i("div",{key:"42dd5303f4118e72c6a6e5590ba66d094119c5b5",class:"languageselector-nav"},i("strong",{key:"0e31f50c574d3a9c232a87f5fce335e543e04d10",class:"languageselector-title"},this.i18n.heading),i("div",{key:"e88f8090964f716ec4ac98393ddc6f89e4790575",class:"languageselector-list",role:"list"},i("slot",{key:"67bf04a16414148371a8a7b56d67ede2c248a395"})))))}static get watchers(){return{value:["setSelectedLanguageName","setTranslations","onValueChange"]}}};L.style=y;const B="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{--languageselector-option-background-color:#ffffff;--languageselector-option-color:#005d92;--languageselector-option-hover-background-color:#f3f2f2;--languageselector-option-hover-color:#005d92;--languageselector-option-radio-outer-background-color:#ffffff;--languageselector-option-radio-outer-border-color:#d3cecb;--languageselector-option-radio-outer-hover-background-color:#e0f8ff;--languageselector-option-radio-outer-hover-border-color:#005d92;--languageselector-option-radio-outer-selected-border-color:#005d92;--languageselector-option-radio-inner-background-color:#005d92;--languageselector-option-radio-focus-ring-color:#005d92}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:var(--languageselector-option-background-color);color:var(--languageselector-option-color);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{text-decoration:underline;box-shadow:none;background-color:var(--languageselector-option-hover-background-color);color:var(--languageselector-option-hover-color);outline:none}.languageselector-itemtext{display:inline-block;margin-left:1rem}.languageselector-radio-outer{background:var(--languageselector-option-radio-outer-background-color);border:0.1em solid var(--languageselector-option-radio-outer-border-color);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 var(--languageselector-option-radio-focus-ring-color)}.languageselector-radio-outer:hover>.languageselector-radio-outer{border:0.1rem solid var(--languageselector-option-radio-outer-hover-border-color);background:var(--languageselector-option-radio-outer-hover-background-color)}[selected=true] .languageselector-radio-outer{border:0.1rem solid var(--languageselector-option-radio-outer-selected-border-color)}.languageselector-radio-inner{transform:scale(0);height:1em;width:1em;background-color:var(--languageselector-option-radio-inner-background-color);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)}";const S=B;const C=class{constructor(n){e(this,n);this.setCurrentLanguage=t(this,"setCurrentLanguage",7);this.name="";this.code="";this.url="";this.selected=false;this.currentLanguage=undefined}spanEl;setCurrentLanguage;onOptionClick(){const e={name:this.name,code:this.code,url:this.url,current:true};this.setCurrentLanguage.emit(e)}componentDidLoad(){if(this.spanEl){this.spanEl.setAttribute("xml:lang",this.code)}}render(){return i(o,{key:"e51472e1c8226270ed869445dbbe59084758f73f",role:"listitem",selected:this.selected+"",code:this.code,name:this.name},!this.url?i("button",{class:"languageselector-button","data-langcode":this.code,onClick:this.onOptionClick.bind(this)},i("span",{class:"languageselector-radio-outer"},i("span",{class:"languageselector-radio-inner"})),i("span",{ref:e=>this.spanEl=e,lang:this.code,class:"languageselector-itemtext"},this.name," - ",this.code)):i("a",{href:this.url,target:"_self",class:"languageselector-link","data-langcode":this.code},i("span",{class:"languageselector-radio-outer"},i("span",{class:"languageselector-radio-inner"})),i("span",{ref:e=>this.spanEl=e,lang:this.code,class:"languageselector-itemtext"},this.name," - ",this.code)))}};C.style=S;const M={sv:{menuHomeButton:"Hem",menuGoBackButton:"Gå tillbaka",mainMenuButton:"Meny",menuStartButton:"Start",navLabel:"Huvudnavigation"},en:{menuHomeButton:"Home",menuGoBackButton:"Go back",mainMenuButton:"Menu",menuStartButton:"Start",navLabel:"Main navigation"},da:{menuHomeButton:"Hjem",menuGoBackButton:"Gå tilbage",mainMenuButton:"Menu",menuStartButton:"Start",navLabel:"Hovednavigation"},no:{menuHomeButton:"Hjem",menuGoBackButton:"Gå tilbake",mainMenuButton:"Meny",menuStartButton:"Start",navLabel:"Hovednavigasjon"},de:{menuHomeButton:"Home",menuGoBackButton:"Geh zurück",mainMenuButton:"Menü",menuStartButton:"Start",navLabel:"Hauptnavigation"},zh:{menuHomeButton:"Home",menuGoBackButton:"Go back",mainMenuButton:"Menu",menuStartButton:"Start",navLabel:"Main navigation"},it:{menuHomeButton:"Home",menuGoBackButton:"Go back",mainMenuButton:"Menu",menuStartButton:"Start",navLabel:"Main navigation"},nl:{menuHomeButton:"Home",menuGoBackButton:"Go back",mainMenuButton:"Menu",menuStartButton:"Start",navLabel:"Main navigation"},tr:{menuHomeButton:"Anasayfa",menuGoBackButton:"Geri git",mainMenuButton:"Menü",menuStartButton:"Başlat",navLabel:"Ana gezinme"},pt:{menuHomeButton:"Página inicial",menuGoBackButton:"Go back",mainMenuButton:"Menu",menuStartButton:"Start",navLabel:"Main navigation"},pl:{menuHomeButton:"Strona główna",menuGoBackButton:"Powrót",mainMenuButton:"Menu",menuStartButton:"Początek",navLabel:"Menu główne systemu"},"pt-BR":{menuHomeButton:"Página inicial",menuGoBackButton:"Voltar",mainMenuButton:"Menu",menuStartButton:"Iniciar",navLabel:"Navegação principal"}};const{state:_,onChange:z}=a({openLevel:"",currentLevel:1,openMenu:false,i18n:{menuHomeButton:"",menuGoBackButton:"",mainMenuButton:"",menuStartButton:"",navLabel:""}});const T="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{--mainnav-nav-background-color:#ffffff;--mainnav-toggle-background-color:#005d92;--mainnav-toggle-text-color:#ffffff;--mainnav-toggle-border-radius:2.4rem;--mainnav-toggle-padding:0.6rem 1.6rem;--mainnav-toggle-font-size:1.6rem;--mainnav-top-position:var(--siteheader-mainnav-top-position-mobile,3em)}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{display:flex;flex-flow:column;position:fixed;top:var(--mainnav-top-position);bottom:0;left:0;width:100vw;height:auto;background-color:var(--mainnav-nav-background-color);z-index:2;visibility:hidden;transform:translateX(100vw);transition:transform 0.2s 0s;transition-property:transform, visibility}@media screen and (min-width: 48em){pn-mainnav>nav{top:6.5em}}@media screen and (min-width: 64em){pn-mainnav>nav{flex-flow:row-reverse;position:static;top:0;width:100%;height:auto;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:var(--mainnav-toggle-background-color);color:var(--mainnav-toggle-text-color);border:none;border-radius:var(--mainnav-toggle-border-radius);padding:var(--mainnav-toggle-padding);cursor:pointer;font-size:var(--mainnav-toggle-font-size)}.mainnav-toggle>button:focus{outline:0}.mainnav-toggle>button pn-icon{display:block;margin-left:0.8rem}.mainnav-toggle>button svg{display:block;margin:-0.2rem -0.5rem -0.2rem 0;width:1.9rem;height:1.9rem}pn-mainnav>nav[data-menu-open=true]{visibility:visible;transform:translateX(0)}";const A=T;const $=class{constructor(n){e(this,n);this.menuLanguageChange=t(this,"menuLanguageChange",7);this.marketChange=t(this,"marketChange",7);this.menuOpenChange=t(this,"menuOpenChange",7);this.market="se";this.language="sv";this.navigationId="mainnav";this.openMenu=false;this.navLabel=""}get hostElement(){return n(this)}menuLanguageChange;marketChange;menuOpenChange;componentWillLoad(){this.init();document.removeEventListener("mousedown",this._onClickOutside.bind(this));document.addEventListener("mousedown",this._onClickOutside.bind(this))}async init(){this.setLanguage();this.setMarket()}_onClickOutside(e){const t=!this.hostElement.contains(e.target);if(t){_.openLevel=""}}setLanguage(){this.menuLanguageChange.emit(this.language)}setMarket(){this.marketChange.emit(this.market)}onLanguageChange(e){if(M[e.detail]){_.i18n=M[e.detail];if(!this.navLabel){this.navLabel=_.i18n.navLabel}}}setMenuOpenState(){_.openMenu=!_.openMenu;this.menuOpenChange.emit(_.openMenu)}onOpenMenuLevelChange(e){_.openLevel=e.detail}render(){return i(o,{key:"1b30fcc03e3f10d965469b31cdb62617cdc16c8b"},i("div",{key:"df334e4a7a9c9a34a2dddebab2d5b5f9d815e8c0",class:"mainnav-toggle"},i("button",{key:"094bcd9687a0dfe49de1cf442ec18d766e97b998","aria-controls":this.navigationId,"aria-expanded":_.openMenu+"",onClick:this.setMenuOpenState.bind(this)},_.i18n.mainMenuButton,i("pn-icon",{key:"92d31dd8f0842406ac92ca0930b4862e64805ae2",icon:_.openMenu?s:r,color:"white"}))),i("nav",{key:"c583056ed35ca91dc776e2a4f7d568a353c0f27d",class:"mainnav","aria-label":this.navLabel,"data-menu-open":_.openMenu+"","data-menu-currentlevel":_.currentLevel,id:this.navigationId},i("slot",{key:"e66850f10c8b2d2963d93b4fc9bfead91be77777"})))}};$.style=A;const U='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{--mainnav-level-bg:#ffffff;--mainnav-level-link-color:#005d92;--mainnav-level-2-border-top-left-radius-desktop:var(--siteheader-mainnav-level-2-border-top-left-radius-desktop, 1rem);--mainnav-level-2-border-top-right-radius-desktop:var(--siteheader-mainnav-level-2-border-top-right-radius-desktop, 1rem);--mainnav-level-2-border-bottom-right-radius-desktop:var(--siteheader-mainnav-level-2-border-bottom-right-radius-desktop, 1rem);--mainnav-level-2-border-bottom-left-radius-desktop:var(--siteheader-mainnav-level-2-border-bottom-left-radius-desktop, 1rem);--mainnav-level-2-shadow:0 0.06rem 0.18rem rgba(0, 0, 0, 0.1), 0 0.32rem 0.72rem rgba(0, 0, 0, 0.13);--mainnav-level-header-button-color:#005d92;--mainnav-level-header-link-font-size:2.4rem;--mainnav-level-header-icon-size:2.4rem}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:var(--mainnav-level-bg);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"]{top:calc(100% + 1rem);bottom:auto;width:auto;height:auto;padding:1.6rem 1.6rem 0 1.6rem;border-top-left-radius:var(--mainnav-level-2-border-top-left-radius-desktop);border-top-right-radius:var(--mainnav-level-2-border-top-right-radius-desktop);border-bottom-right-radius:var(--mainnav-level-2-border-bottom-right-radius-desktop);border-bottom-left-radius:var(--mainnav-level-2-border-bottom-left-radius-desktop);display:none;z-index:3;box-shadow:var(--mainnav-level-2-shadow)}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:0 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:var(--mainnav-level-link-color);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;width:100%;padding:2.4rem 0 2.4rem 6.2rem;border:none;background-color:transparent;color:var(--mainnav-level-header-button-color);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;top:50%;left:3rem;width:var(--mainnav-level-header-icon-size);height:var(--mainnav-level-header-icon-size);transform:translateY(-50%)}[data-level="2"] .mainnav-level-header>pn-mainnav-link>a{font-size:var(--mainnav-level-header-link-font-size)}';const I=U;const G=class{constructor(t){e(this,t);this.label="";this.level=1;this.levelId="";this.isOpen=false;this.parentName="";this.parentHref="";this.parentLinkId="";this.listCount=0;this.alignment="right"}get hostElement(){return n(this)}async componentWillLoad(){this.setState();z("openLevel",(()=>{this.onChangeOpenLevel()}))}setState(){this.listCount=this.hostElement.querySelectorAll(":scope > pn-mainnav-list").length;const e=this.hostElement.parentElement;if(e.tagName.toLowerCase()!=="nav"){this.level=2}if(e.tagName.toLowerCase()==="pn-mainnav-link"){this.parentName=e.getAttribute("name")+"";if(!this.label&&this.parentName||this.label!==this.parentName){this.label=this.parentName}this.parentHref=e.getAttribute("href")+"";this.parentLinkId=e.getAttribute("linkid")+"";const t=this.parentName.toLowerCase().replace(/\W/gi,"_");this.levelId=`mainnav-lvl${this.level}-${t}`}}onOpen(){if(this.level===2){requestAnimationFrame((()=>{const e=this.hostElement.getClientRects()[0];if(!e){return}const t=this.hostElement.parentElement.parentElement.parentElement.parentElement;if(t&&t.tagName.toLowerCase()==="nav"){const n=t.getClientRects()[0];if(!n){return}if(e.right>window.innerWidth){const t=this.hostElement.parentElement.getClientRects()[0];if(t.left-e.width<0){this.alignment="center"}else{this.alignment="left"}}}}))}}onChangeOpenLevel(){this.isOpen=_.openLevel===this.levelId;_.currentLevel=this.level}render(){return i(o,{key:"ac243e3360d377e5d6324117225f2f8a769c43f5",...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?i("div",{class:"mainnav-level-header"},i("label",{htmlFor:this.levelId},_.i18n.menuGoBackButton),i("button",{class:"secondlevel-backbtn",onClick:()=>{_.openLevel="";_.currentLevel=1},"aria-expanded":(_.openLevel===this.levelId)+""},i("pn-icon",{icon:l,color:"blue700"}),_.i18n.menuStartButton),this.parentHref&&this.label?i("pn-mainnav-link",{href:this.parentHref,name:this.label,linkid:this.parentLinkId}):null):null,i("slot",{key:"824623c0a89c4c15a23e866f90adf24584dee75e",name:"top"}),i("slot",{key:"9da0b6a172b8bcf943f31d72080c0a635284bbb9"}),i("slot",{key:"6bded6f5615ad6bbb6f721add8c558974f2fde3e",name:"additional"}),i("slot",{key:"02a3446012d0d132a805a207972c7034a3d8a4cf",name:"footer"}))}static get watchers(){return{label:["setState"],isOpen:["onOpen"]}}};G.style=I;const H='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-link{--mainnav-link-active-desktop-color:var(--siteheader-mainnav-link-active-desktop-color, #005d92);--mainnav-link-level1-indicator-color:var(--siteheader-mainnav-link-level1-indicator-color, #00a0d6);--mainnav-link-level1-indicator-active-color:var(--siteheader-mainnav-link-level1-indicator-active-color, #8eddf9);--mainnav-link-level1-first-border-top:0.1rem solid #f3f2f2;--mainnav-link-level1-border-bottom:var(--siteheader-mainnav-link-level1-border-bottom, 0.1rem solid #f3f2f2);--mainnav-link-level2-border-bottom:var(--siteheader-mainnav-link-level2-border-bottom, 0.1rem solid #f3f2f2)}pn-mainnav-link{display:block}pn-mainnav-link button,pn-mainnav-link a{position:relative;display:flex;align-items:center;border:0 none;background-color:transparent;color:#005d92;font-weight:normal}pn-mainnav-link button:hover,pn-mainnav-link button:focus,pn-mainnav-link a:hover,pn-mainnav-link a:focus{background-color:#ffffff;color:#005d92;outline:0;box-shadow:none}pn-mainnav-link button:active,pn-mainnav-link a:active{background-color:#f3f2f2;color:#00a0d6;box-shadow:none}@media screen and (min-width: 64em){[data-level="1"] pn-mainnav-link{position:relative;height:100%;padding-left:0;scroll-snap-align:center}}[data-level="1"] pn-mainnav-link:first-child{border-top:var(--mainnav-link-level1-first-border-top)}@media screen and (min-width: 64em){[data-level="1"] pn-mainnav-link:first-child{border:0}}[data-level="1"] pn-mainnav-link>button,[data-level="1"] pn-mainnav-link>a{width:100%;height:auto;padding:1.9rem 0 1.9rem 3rem;border-bottom:var(--mainnav-link-level1-border-bottom);font-size:2rem}@media screen and (min-width: 64em){[data-level="1"] pn-mainnav-link>button,[data-level="1"] pn-mainnav-link>a{position:relative;height:100%;overflow:hidden;padding:1.6rem 1.6rem;border:0;outline:0;white-space:nowrap;font-size:1.6rem;font-weight:normal}}@media screen and (min-width: 64em){[data-level="1"] pn-mainnav-link>button::before,[data-level="1"] pn-mainnav-link>a::before{content:"";position:absolute;bottom:0;left:0;width:100%;height:0.5em;background-color:var(--mainnav-link-level1-indicator-color);border-radius:0.5em 0.5em 0 0;transform:translateY(100%);transition:transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92)}}@media screen and (min-width: 64em){[data-level="1"] pn-mainnav-link>button:hover::before,[data-level="1"] pn-mainnav-link>button:focus::before,[data-level="1"] pn-mainnav-link>a:hover::before,[data-level="1"] pn-mainnav-link>a:focus::before{transform:translateY(0)}}@media screen and (min-width: 64em){[data-level="1"] pn-mainnav-link>button:active,[data-level="1"] pn-mainnav-link>a:active{color:var(--mainnav-link-active-desktop-color);outline:0;box-shadow:none}}@media screen and (min-width: 64em){[data-level="1"] pn-mainnav-link>button:active::before,[data-level="1"] pn-mainnav-link>a:active::before{background-color:var(--mainnav-link-level1-indicator-active-color);transform:translateY(0)}}@media screen and (min-width: 64em){[data-level="1"] pn-mainnav-link>button:hover,[data-level="1"] pn-mainnav-link>button:focus,[data-level="1"] pn-mainnav-link>a:hover,[data-level="1"] pn-mainnav-link>a:focus{text-decoration:none}}@media screen and (min-width: 64em){[data-level="1"] pn-mainnav-link>button[aria-expanded=true]::before,[data-level="1"] pn-mainnav-link>a[aria-expanded=true]::before{content:"";position:absolute;bottom:0;left:0;width:100%;height:0.5em;background-color:var(--mainnav-link-level1-indicator-color);border-radius:0.5em 0.5em 0 0;transform:translateY(0);transition:transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92)}}[data-level="1"] pn-mainnav-link [aria-expanded=true] .first-level_icon{transform:rotateX(180deg)}[data-level="1"] pn-mainnav-link pn-icon.first-level_icon{display:none;width:1.92rem;height:1.92rem;transition:0.25s linear transform}@media screen and (min-width: 64em){[data-level="1"] pn-mainnav-link pn-icon.first-level_icon{display:block}}[data-level="1"] pn-mainnav-link pn-icon.first-level_arrow{display:block;position:absolute;top:50%;right:2.4rem;width:2.4rem;height:2.4rem;transform:translateY(-50%)}@media screen and (min-width: 64em){[data-level="1"] pn-mainnav-link pn-icon.first-level_arrow{display:none}}[data-level="1"] pn-mainnav-link pn-icon svg{width:100%;height:100%;pointer-events:none;speak:none}@media screen and (min-width: 64em){pn-mainnav-level[data-level="2"]:not([data-level-listcount="1"]) pn-mainnav-list:last-child pn-mainnav-link>a{min-width:unset}}[data-level="2"] pn-mainnav-link{position:static;display:inline-block;width:100%;height:auto}@media screen and (min-width: 64em){[data-level="2"] pn-mainnav-link{margin-bottom:1.6rem;padding-left:0}}[data-level="2"] pn-mainnav-link>a{padding:2.2rem 0 2.2rem 3rem;border-bottom:var(--mainnav-link-level2-border-bottom);white-space:normal;font-size:1.6rem}@media screen and (min-width: 64em){[data-level="2"] pn-mainnav-link>a{min-width:16em;padding:1.4rem 1.6rem;border:0;border-radius:1rem}}[data-level="2"] pn-mainnav-link>a:hover{background-color:#ffffff;color:#005d92}[data-level="2"] pn-mainnav-link>a:hover,[data-level="2"] pn-mainnav-link>a:focus{box-shadow:none}@media screen and (min-width: 64em){[data-level="2"] pn-mainnav-link>a:hover,[data-level="2"] pn-mainnav-link>a:focus{background-color:#f3f2f2;color:#005d92;text-decoration:underline;outline:0}}[data-level="2"] pn-mainnav-link>a:hover::before,[data-level="2"] pn-mainnav-link>a:focus::before{content:none}[data-level="2"] pn-mainnav-link>a:active{box-shadow:none}@media screen and (min-width: 64em){[data-level="2"] pn-mainnav-link>a:active{background-color:#f3f2f2;color:#00a0d6;outline:0}}[data-level="2"] pn-mainnav-link>a:active::before{content:none}[data-level="2"] pn-mainnav-link pn-icon{display:inline-block;width:1.5rem;height:1.5rem;min-width:1.5rem;margin-left:0.2em}[data-level="2"] pn-mainnav-link pn-icon svg{width:100%;height:100%;pointer-events:none;speak:none}';const N=H;const E=class{constructor(t){e(this,t);this.name="";this.href="";this.target="";this.linkid="";this.levelId="";this.open=false;this.hasChildren=false}get hostElement(){return n(this)}componentWillLoad(){this.hasChildren=this.hostElement.querySelectorAll("pn-mainnav-level").length>0;if(this.hasChildren&&this.name){const e=this.name.toLowerCase().replace(/\W/gi,"_");this.levelId=`mainnav-lvl${2}-${e}`}}setOpenMenuLevel(){_.openLevel=_.openLevel+""===this.levelId+""?"":this.levelId}render(){return i(o,{key:"3c93d6d6fa93518b592e3a91f7a19b8875d8a786",role:"listitem",name:this.name,href:this.href,linkid:this.linkid},this.hasChildren?i("button",{onClick:this.setOpenMenuLevel.bind(this),"aria-controls":this.levelId,"aria-expanded":(_.openLevel+""===this.levelId+"")+"","aria-haspopup":"true"},this.name,i("pn-icon",{class:"first-level_icon",icon:d,color:"blue700"}),i("pn-icon",{class:"first-level_arrow",icon:h,color:"blue700"})):i("a",{href:this.href,...this.target?{target:this.target}:{},...this.target==="_blank"?{rel:"nofollow noopener"}:{},...this.linkid?{id:this.linkid}:{}},this.name,this.target==="_blank"?i("pn-icon",{icon:c,color:"blue700"}):null),i("slot",{key:"365a480af84435a0d0ae0c9c95cf5461410f539f"}))}};E.style=N;const j='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{--mainnav-list-secondary-border-right:0.1rem solid #d3cecb;--mainnav-list-heading-font-size:1.8rem;--mainnav-list-heading-color:var(--siteheader-mainnav-list-heading-color, #000000)}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:var(--mainnav-list-secondary-border-right);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:var(--mainnav-list-heading-font-size);padding:1.4rem 1.4rem 1.4rem 4.8rem;color:var(--mainnav-list-heading-color)}@media screen and (min-width: 64em){.mainnav-list-heading{display:block;padding:0 1.4rem 1.4rem 1.4rem}}';const W=j;const O=class{constructor(t){e(this,t);this.heading="";this.linkCount=0}get hostElement(){return n(this)}componentWillLoad(){this.linkCount=this.hostElement.querySelectorAll(":scope > pn-mainnav-link").length}render(){return i(o,{key:"3f433037d2fc867c74a1f5759fadb2f4fffd2c57",class:"mainnav-list",role:"list","data-navlist-itemcount":this.linkCount+"","data-navlist-showcolumns":(this.linkCount>=8)+""},this.heading?i("div",{class:"mainnav-list-heading"},this.heading):null,i("slot",{key:"52fd5e61c361e7660f43780fbdf8050835cc7c16"}))}};O.style=W;class D{eventTarget=window??document?.body;endpoint="";storagePrefix="pn-user";checkUserLoggedInStateInterval=0;baseUrls={at:"https://atportal.postnord.com/api/unified-login/backend",prod:"https://portal.postnord.com/api/unified-login/backend"};events={loginstatechange:"loginstatechange"};endpoints={authorizationEndpoint:`/authorization`,tokenExchangeEndpoint:`/token`,userInfoEndpoint:`/user`,logoutEndpoint:`/logout`};keys={tokensource:"tokensource",token:"token",accessToken:"accessToken",user:"user",expire:"expire",expireDate:"expiredate"};overridetokenValue="overridetokenValue";siteUrl=window.location.origin;abortSignalForLoginCheck=null;loginCheckInProgress=false;loginCheckTimer=null;constructor(e=null){if(!e){return}this.eventTarget=e.eventTarget?e.eventTarget:this.eventTarget;this.endpoint=e.endpoint?e.endpoint:`${window.location.protocol}//${window.location.host}`;this.storagePrefix??=e.storagePrefix;this.checkUserLoggedInStateInterval=e.checkUserLoggedInStateInterval&&e.checkUserLoggedInStateInterval>0?parseInt(e.checkUserLoggedInStateInterval+"",10):0;if(e.userInfo){this.store.set(this.keys.user,e.userInfo);this.registerToken(this.overridetokenValue,"override")}}init(e=true){if(e){this.checkParameters();this.checkPNTopbar();this.checkExpireTime();if(this.store.get(this.keys.token)&&!this.store.get(this.keys.user)){this.fetchUserInfo()}this.loginStateChange();if(this.checkUserLoggedInStateInterval>0){this.initiateLoggedInCheck()}}}setSiteUrl(e){if(e){this.siteUrl=e}}initiateLoggedInCheck(){if(this.isLoggedIn()){if(window&&window["AbortController"]){this.abortSignalForLoginCheck=new AbortController}this.loginCheckTimer=window.setInterval((()=>{this.doExternalLoggedInCheck().then((()=>{})).catch((()=>{}))}),this.checkUserLoggedInStateInterval)}}async doExternalLoggedInCheck(){if(!window.navigator.onLine){return}if(!this.getToken()){window.clearInterval(this.checkUserLoggedInStateInterval);return}if(this.loginCheckInProgress&&this.abortSignalForLoginCheck){this.abortSignalForLoginCheck.abort();this.abortSignalForLoginCheck=new AbortController}this.loginCheckInProgress=true;const e={method:"GET",headers:{Accept:"application/json","Content-Type":"application/json",Authorization:this.getToken()}};if(this.abortSignalForLoginCheck&&this.abortSignalForLoginCheck["signal"]){e["signal"]=this.abortSignalForLoginCheck["signal"]}const t=await fetch(`${this.getBaseUrl()}${this.endpoints.userInfoEndpoint}`,e);if(t.status===409){window.clearInterval(this.checkUserLoggedInStateInterval);console.log("Cleared out user data due to bad response from authentication endpoint");this.LogoutUser();return}if(!t.ok){return}const n=await t.json();if(!n||!n["accessToken"]){window.clearInterval(this.checkUserLoggedInStateInterval);console.log("Cleared out user data due to bad response from authentication endpoint");this.LogoutUser()}this.loginCheckInProgress=false}LogoutUser(){this.clearUserData();if(this.eventTarget){const e=this.eventTarget.querySelector("#pn-marketweb-header-logoutlink");if(e){e.click();return}}this.loginStateChange();const e=window.location.href;window.location.href=this.getLogoutUrl(e)}isLoggedIn(e=false){if(e){return e}let t=this.store.get(this.keys.token)&&this.store.get(this.keys.user)?true:false;if(!t&&this.store.get(this.keys.token)===this.overridetokenValue){t=true}return t}registerToken(e="",t="frontend"){if(!e||e===this.getToken()){return}this.clearUserData();this.store.set(this.keys.tokensource,t);this.store.set(this.keys.token,e);this.fetchUserInfo()}invalidateTokenOfType(e="frontend"){const t=this.store.get(this.keys.token);if(!t){return}const n=this.store.get(this.keys.tokensource);if(n!==e){return}this.clearUserData()}getLoginUrl(e=""){const t=window.location.href;e=e?e:t;return`${this.getBaseUrl()}${this.endpoints.authorizationEndpoint}?redirectionUrl=${e}`}getLogoutUrl(e=""){if(e.indexOf("logout?logoutUrl")!==-1){return e}let t=e.replace("logout","").replace("http://window.location.href/?",window.location.href).replace("https://window.location.href/?",window.location.href);let n=this.siteUrl;try{const e=new URL(this.siteUrl+"");n=e.origin}catch(e){}const i=n.lastIndexOf("/")!==n.length-1;const o=n+(i?"/":"")+"logout";const a=`${this.getBaseUrl()}${this.endpoints.logoutEndpoint}?authorization=${this.store.get(this.keys.token)}%26redirectionUrl=${t}`;const r=`${o}?logoutUrl=${a}`;return r}getUserInfo(){if(this.isLoggedIn()){return this.store.get(this.keys.user)}}getEventTarget(){return this.eventTarget}checkExpireTime(){const e=this.store.get(this.keys.expire);if(!e){return}const t=new Date;const n=new Date(Math.floor(parseInt(e,10)*1e3));if(t>n){console.info("Login time has expired");this.clearUserData();this.loginStateChange()}}checkPNTopbar(){if(this.isLoggedIn()||!window["pnTopbar"]||!window["pnTopbar"]["session_id"]){return}this.store.set(this.keys.token,window["pnTopbar"]["session_id"]);this.fetchUserInfo()}checkParameters(){if(!window?.location){return}const e=new URLSearchParams(window.location.search);if(e.get("oneTimeCode")){const t=e.get("oneTimeCode");this.exchangeToken(t).then((()=>{const e=window.location.href;const n=e.indexOf("?oneTimeCode")!==-1?"?":"&";const i=e.replace(`${n}oneTimeCode=${t}`,"");history.replaceState({},document.querySelector("title").innerText,i)}))}}async fetchUserInfo(){const e=this.store.get(this.keys.token);if(this.store.get(this.keys.token)===this.overridetokenValue){console.info("Did not fetch user data since it was set by an override");return}const t={method:"GET",headers:{Accept:"application/json","Content-Type":"application/json",Authorization:e}};const n=await fetch(`${this.getBaseUrl()}${this.endpoints.userInfoEndpoint}`,t);const i=await n.json();if(i&&i["idToken"]){try{const{idToken:e,expiryTime:t,accessToken:n}=i;const o=this.parseUserInfo(e);if(!o){console.error("Userdata is not valid");this.clearUserData();return}this.store.set(this.keys.user,o);this.store.set(this.keys.accessToken,n);this.store.set(this.keys.expire,t);this.store.set(this.keys.expireDate,new Date(Math.floor(parseInt(t,10)*1e3)));this.loginStateChange()}catch(e){console.error("Unable to get user information",e)}}else{console.error("Unable to get user information. Clearing login state");this.clearUserData()}}clearUserData(){this.store.remove(this.keys.user);this.store.remove(this.keys.tokensource);this.store.remove(this.keys.accessToken);this.store.remove(this.keys.token);this.store.remove(this.keys.expire);this.store.remove(this.keys.expireDate)}getToken(){return this.store.get(this.keys.token)}getAccessToken(){return this.store.get(this.keys.accessToken)}async exchangeToken(e){this.clearUserData();const t=await fetch(`${this.getBaseUrl()}${this.endpoints.tokenExchangeEndpoint}?oneTimeCode=${e}`);const{token:n}=await t.json();if(typeof n==="string"&&n){this.store.set(this.keys.token,n)}this.fetchUserInfo()}loginStateChange(){if(!this.eventTarget){return}this.eventTarget.dispatchEvent(new CustomEvent(this.events.loginstatechange,{detail:this.isLoggedIn()}))}getBaseUrl(){const e=["localhost","integration.","inte.","local.","prep."];let t=e.filter((e=>this.endpoint.indexOf(e)!==-1)).length>0;if(["devportal.postnord.com","atportal.postnord.com"].indexOf(window.location.hostname)!==-1){t=true}if(t){return this.baseUrls.at}return this.baseUrls.prod}parseUserInfo(e){if(!e){return null}var t=e.split(".")[1];var n=t.replace(/-/g,"+").replace(/_/g,"/");var i=decodeURIComponent(atob(n).split("").map((function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)})).join(""));return JSON.parse(i)}store={get:e=>{const t=window.localStorage.getItem(`${this.storagePrefix}-${e}`);if(!t){return t}if(t.indexOf("{")===0){try{return JSON.parse(t)}catch(e){}}if(t.indexOf(",")!==-1){return t.split(",")}return t},set:(e,t)=>{if(typeof t==="object"&&typeof t.length==="undefined"){window.localStorage.setItem(`${this.storagePrefix}-${e}`,JSON.stringify(t));return}window.localStorage.setItem(`${this.storagePrefix}-${e}`,t)},remove:e=>{window.localStorage.removeItem(`${this.storagePrefix}-${e}`)}}}const P='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{--login-dropdown-divider-background:var(--siteheader-login-dropdown-divider-background,\n #f9f8f8);--login-dropdown-text-color:var(--siteheader-login-dropdown-text-color,\n #2d2013);--login-dropdown-link-color:var(--siteheader-login-dropdown-link-color,\n #005d92);--login-dropdown-link-hover-decoration:var(--siteheader-login-dropdown-link-hover-decoration,\n underline);--login-dark-icon-hover-fill:var(--siteheader-login-dark-icon-hover-fill,\n #000000);padding:1rem 0;max-height:5.2rem;position:relative}pn-marketweb-siteheader-login pn-button-dropdown{display:none}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:"";width:100%;height:2px;margin-top:2.4rem;background:var(--login-dropdown-divider-background)}pn-marketweb-siteheader-login pn-button-dropdown .pn-button-dropdown-container .pn-button-dropdown-content span{font-size:1.4rem;color:var(--login-dropdown-text-color)}pn-marketweb-siteheader-login pn-button-dropdown .pn-button-dropdown-container .pn-button-dropdown-content span::before{display:block;content:"";width:100%;height:2px;margin-bottom:2.4rem;background:var(--login-dropdown-divider-background)}pn-marketweb-siteheader-login pn-button-dropdown .pn-button-dropdown-container .pn-button-dropdown-content span a{text-decoration:none;color:var(--login-dropdown-link-color)}pn-marketweb-siteheader-login pn-button-dropdown .pn-button-dropdown-container .pn-button-dropdown-content span a:hover{text-decoration:var(--login-dropdown-link-hover-decoration)}pn-marketweb-siteheader-login pn-button-dropdown .pn-button-dropdown-container .pn-button-dropdown-content span *{margin-bottom:0}pn-marketweb-siteheader-login.hydrated pn-button-dropdown{display:block}pn-marketweb-siteheader-login[appearance=dark] button:hover pn-icon svg path{fill:var(--login-dark-icon-hover-fill)}';const R=P;const V=class{constructor(n){e(this,n);this.loginStateChange=t(this,"loginStateChange",7);this.endpoint="";this.token="";this.i18n={searchlabel:"",searchplaceholder:"",searchbuttontext:"",menuHomeButton:"",menuGoBackButton:"",mainMenuButton:"",menuStartButton:"",profileSelectionFlyoutHeading:"",unifiedLoginButton:"",unifiedMyPagesButton:""};this.siteUrl="";this.emitEvents=true;this.loginDialog=null;this.fullname="";this.loggedin=false;this.showProfileSelection=false;this.showUnifiedLogin=false;this.checkUserLoggedInStateInterval=0;this.environment=undefined;this.appearance="light";this.loginLinks=undefined;this.toggleButtonText=this.loginDialog?.loginMenuLinkText?this.loginDialog.loginMenuLinkText:"";this.username=this.fullname;this.useMarketwebLogin=undefined}get hostElement(){return n(this)}loginStateChange;componentWillLoad(){const e=this.loggedin&&this.fullname?{given_name:this.fullname}:null;p.loginManager=new D({endpoint:this.endpoint,eventTarget:this.hostElement,checkUserLoggedInStateInterval:this.checkUserLoggedInStateInterval,userInfo:e});p.loginManager.setSiteUrl(this.siteUrl);this.hostElement["loginmanager"]=p.loginManager;if(this.token){p.loginManager.registerToken(this.token,"backend")}else if(this.emitEvents){p.loginManager.invalidateTokenOfType("backend")}this.hostElement.addEventListener(p.loginManager.events.loginstatechange,this.onLoginStateChange.bind(this));this.init();this.setUserName();this.setToggleButtonText()}async init(){p.loginManager.init(this.emitEvents);this.setToggleButtonText();this.adjustLoginLinks()}adjustLoginLinks(){if(!this.loginDialog?.loginMenuLinks){return}const e=(e,t)=>{if(!e.isLogoutLink){e.isLogoutLink=e.pageLink.indexOf("location.href")!==-1&&e.pageLink.indexOf("logout")!==-1}if(e.isLogoutLink){e.href=p.loginManager.getLogoutUrl(e.pageLink)}if(t===0&&!e.href){e.href=p.loginManager.getLoginUrl();e.linkType="primary"}if(e.primaryLinkApperance&&!e.linkType){e.linkType="primary"}return e};if(this.loginDialog){this.loginDialog.loginMenuLinks=this.loginDialog.loginMenuLinks.map(e);this.loginDialog.loggedInLinks=this.loginDialog.loggedInLinks.map(e)}this.loginDialog.legacyLoginLinks=[{href:p.loginManager.getLoginUrl(this.loginDialog.loginUrl),linkText:this.loginDialog.loginLinkText,openInNewWindow:false,isLogoutLink:false,pageLink:null,linkType:"primary",primaryLinkApperance:true},{href:p.loginManager.getLoginUrl(this.loginDialog.registerUrl),linkText:this.loginDialog.createLoginLinkText,openInNewWindow:false,isLogoutLink:false,pageLink:null,primaryLinkApperance:false}]}setUserName(){const e=p.loginManager.getUserInfo();let t="";if(!this.loggedin||!e){this.username=t}if(e&&e.given_name){t=e.given_name+(e?.family_name?` ${e?.family_name}`:"")}if(!t&&e&&e.email){t=e.email}if(!t&&this.fullname){t=this.fullname}this.username=t;this.adjustLoginLinks()}setToggleButtonText(){if(this.loggedin){this.toggleButtonText=this.username;if(!this.toggleButtonText){this.toggleButtonText=this.loginDialog.loggedInButtonText}}else{this.toggleButtonText=this.loginDialog.loginMenuLinkText}}onLoginStateChange(e){if(this.loggedin!==e.detail&&this.emitEvents){this.loggedin=e.detail;this.loginStateChange.emit({loggedIn:this.loggedin,token:p.loginManager.getToken()});this.setUserName();this.setToggleButtonText()}}render(){if(!this.loginDialog){return}let e={username:null,loggedin:"false"};if(this.username){e.username=this.username;e.loggedin=this.loggedin+""}return i(o,{...e},i("pn-button-dropdown",{label:this.toggleButtonText,icon:w,appearance:this.appearance,variant:"borderless",class:"siteheader-logindialog"},this.showUnifiedLogin&&!this.loggedin&&i("pn-marketweb-siteheader-unified-login",{loggedIn:this.loggedin,logInLabel:this.i18n.unifiedLoginButton,useMarketwebLogin:this.useMarketwebLogin,environment:this.environment}),this.loggedin&&this.showProfileSelection?i("pn-marketweb-siteheader-login-profileselection",{loginDialog:this.loginDialog,loggedin:this.loggedin,i18n:this.i18n,idNamespace:this.emitEvents?"1":"2",endpoint:this.endpoint}):i("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&&i("span",{innerHTML:`${this.loginDialog.loginInfo}`})))}static get watchers(){return{i18n:["init"],loginDialog:["init"]}}};V.style=R;const K="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}}";const X=K;const F=class{constructor(t){e(this,t);this.loginDialog=null;this.idNamespace="";this.loggedin=false;this.username="";this.showUnifiedLogin=false}get hostElement(){return n(this)}componentWillLoad(){this.init()}async init(){this.adjustLoginLinks()}adjustLoginLinks(){if(!this.loginDialog){return}const e=(e,t)=>{if(!e.isLogoutLink){e.isLogoutLink=e.pageLink.indexOf("location.href")!==-1&&e.pageLink.indexOf("logout")!==-1}if(e.isLogoutLink){e.href=p.loginManager.getLogoutUrl(e.href)}e.href=e.href.replace("window.location.href",window.location.href);if(t===0&&!e.href){e.href=p.loginManager.getLoginUrl();e.linkType="primary"}if(e.primaryLinkApperance&&!e.linkType){e.linkType="primary"}};if(this.loginDialog?.loginMenuLinks){this.loginDialog?.loginMenuLinks.forEach(e)}if(this.loginDialog?.loggedInLinks){this.loginDialog?.loggedInLinks.forEach(e)}this.loginDialog.legacyLoginLinks=[{href:p.loginManager.getLoginUrl(this.loginDialog.loginUrl),linkText:this.loginDialog.loginLinkText,openInNewWindow:false,isLogoutLink:false,pageLink:null,linkType:"primary",primaryLinkApperance:true},{href:p.loginManager.getLoginUrl(this.loginDialog.registerUrl),linkText:this.loginDialog.createLoginLinkText,openInNewWindow:false,isLogoutLink:false,pageLink:null,primaryLinkApperance:false}]}render(){if(!this.loginDialog){return}let e={username:null,loggedin:false};if(this.username){e.username=this.username;e.loggedin=this.loggedin}return i(o,{...e},!this.loginDialog.overrideLoginMenu?i("div",{"data-loggedin":this.loggedin+""},this.loggedin?i("pn-marketweb-siteheader-login-linklist",{links:this.loginDialog.loggedInLinks,idNamespace:this.idNamespace}):i("div",null,this.loginDialog.loginMenuLinks?.length>0?i("pn-marketweb-siteheader-login-linklist",{heading:this.loginDialog.loginTitle,links:this.loginDialog.loginMenuLinks,idNamespace:this.idNamespace,showUnifiedLogin:this.showUnifiedLogin}):i("pn-marketweb-siteheader-login-linklist",{links:this.loginDialog.legacyLoginLinks,idNamespace:this.idNamespace}))):null,this.loginDialog.overrideLoginMenu?i("pn-marketweb-siteheader-login-linklist",{links:this.loginDialog.loginMenuLinks,idNamespace:this.idNamespace}):null)}static get watchers(){return{loginDialog:["init"]}}};F.style=X;const Y='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-profileselection{--login-profileselection-heading-color:var(--siteheader-login-profileselection-heading-color,\n inherit);--login-profileselection-description-color:var(--siteheader-login-profileselection-description-color,\n #5e554a);--login-profileselection-user-name-color:var(--siteheader-login-profileselection-user-name-color,\n inherit);--login-profileselection-divider-background:var(--siteheader-login-profileselection-divider-background,\n #00a0d6);--login-profileselection-profileoption-link-background:var(--siteheader-login-profileselection-profileoption-link-background,\n #ffffff);--login-profileselection-profileoption-link-color:var(--siteheader-login-profileselection-profileoption-link-color,\n #005d92);--login-profileselection-profileoption-link-hover-background:var(--siteheader-login-profileselection-profileoption-link-hover-background,\n #f3f2f2);--login-profileselection-logout-link-color:var(--siteheader-login-profileselection-logout-link-color,\n #005d92)}.pn-marketweb-siteheader-login-profileselection-heading{display:block;padding:0.5rem 0 1rem;color:var(--login-profileselection-heading-color)}.pn-marketweb-siteheader-login-profileselection-user,.pn-marketweb-siteheader-login-profileselection-currentprofile{margin-top:1rem;margin-bottom:1rem}.pn-marketweb-siteheader-login-profileselection-user-name,.pn-marketweb-siteheader-login-profileselection-currentprofile-name{line-height:1;color:var(--login-profileselection-user-name-color)}.pn-marketweb-siteheader-login-profileselection-user-description,.pn-marketweb-siteheader-login-profileselection-currentprofile-description{font-weight:400;white-space:normal;word-break:break-all;color:var(--login-profileselection-description-color);font-size:0.75em}.pn-marketweb-siteheader-login-profileselection-divider{position:relative;width:100%;height:1rem;background:var(--login-profileselection-divider-background);margin-left:-1em;margin-top:1.6rem;margin-bottom:1.6rem;border-radius:0 0.6em 0.6em 0;padding:0}.pn-marketweb-siteheader-login-profileselection-divider::after{content:"";position:absolute;right:0;top:0;width:0.6em;height:0.6em;border-radius:50%;background:inherit;transform:translateX(calc(100% + 0.2em))}.pn-marketweb-siteheader-login-profileselection-profileoption-link{display:flex;align-items:center;margin:0 -1em;padding:0.6rem 1.6rem;background:var(--login-profileselection-profileoption-link-background);color:var(--login-profileselection-profileoption-link-color);text-decoration:none;transition:background 0.15s ease-in-out}.pn-marketweb-siteheader-login-profileselection-profileoption-link:hover,.pn-marketweb-siteheader-login-profileselection-profileoption-link:focus,.pn-marketweb-siteheader-login-profileselection-profileoption-link:active{background:var(--login-profileselection-profileoption-link-hover-background)}.pn-marketweb-siteheader-login-profileselection-profileoption-content{flex-grow:1}.pn-marketweb-siteheader-login-profileselection-profileoption-name{font-weight:700}.pn-marketweb-siteheader-login-profileselection-profileoption-description{font-weight:400;white-space:normal;word-break:break-all;color:var(--login-profileselection-description-color);font-size:0.75em}.pn-marketweb-siteheader-login-profileselection-logout{width:100%;padding:1.6rem;text-align:center}.pn-marketweb-siteheader-login-profileselection-logout-link{display:inline-block;font-weight:500;color:var(--login-profileselection-logout-link-color);text-decoration:none}.pn-marketweb-siteheader-login-profileselection-logout-link:hover,.pn-marketweb-siteheader-login-profileselection-logout-link:focus,.pn-marketweb-siteheader-login-profileselection-logout-link:active{text-decoration:underline}';const q=Y;const J=class{constructor(t){e(this,t);this.loginDialog=null;this.endpoint="";this.loggedin=false;this.idNamespace="";this.heading=null;this.i18n={searchlabel:"",searchplaceholder:"",searchbuttontext:"",menuHomeButton:"",menuGoBackButton:"",mainMenuButton:"",menuStartButton:"",profileSelectionFlyoutHeading:""};this.user=null;this.logoutLink=null;this.userName=null;this.userEmail="";this.currentProfile=null;this.profileoptions=[]}get hostElement(){return n(this)}componentWillLoad(){if(this.heading===null&&this.i18n?.profileSelectionFlyoutHeading){this.heading=this.i18n.profileSelectionFlyoutHeading}this.init()}init(){this.updateUserInfo();this.adjustLoginLinks();this.fetchProfiles()}async fetchProfiles(){if(!this.loggedin||this.profileoptions.length>0){return}let e=`${this.endpoint}${this.endpoint.lastIndexOf("/")>-1&&this.endpoint.lastIndexOf("/")===this.endpoint.length-1?"":"/"}api/user/parentorganizations`;const t=await fetch(e);const n=await t.json();const i={loggedin:true,organizations:[{name:"Forsheda Livs AB",customerNumber:"5564513603",id:"dbba867d-1dff-3dbb-b420-c57b4b828b73",selected:true,profiles:[{name:"Forsheda Livs AB",customerNumber:"20685482",id:"f757ba28-9a73-15a2-f128-4b394d970f3f",ssid:"",selected:false,customerGroup:"Business"},{name:"ICA MAXI KUNGSBACKA",customerNumber:"20831191",id:"5aea41df-32b0-3f7e-2946-78598360177d",ssid:"259686",selected:true,customerGroup:"Agent"}]},{name:"Hem Livs i Kungsbacka AB",customerNumber:"5565271250",id:"97ca363c-40ef-cca9-7a3c-9e7f025567c2",selected:false,profiles:[{name:"ICA KVANTUM KUNGSBACKA",customerNumber:"20831193",id:"fbd61ffd-41c6-2206-b88e-cfef91e1dc39",ssid:"259691",selected:false,customerGroup:"Agent"}]},{name:"ICA SUPERMARKET TORGET",customerNumber:"5568902679",id:"7cb76a94-e1a5-5f57-58fd-bc563851b28e",selected:false,profiles:[{name:"ICA SUPERMARKET TORGET",customerNumber:"20831212",id:"3a2db017-b68f-6fa0-fe70-542c08cd97ce",ssid:"",selected:false,customerGroup:"Agent"}]}]};const o=window.location.href.indexOf("localhost:6008")!==-1?i:n;if(!o||!o.organizations||!o.organizations.length){this.heading="";return}o.organizations.forEach((e=>{if(e.selected===true&&e.profiles){const t=e.profiles.filter((e=>e.selected===true));if(t&&t[0]&&t[0].customerGroup.toLocaleLowerCase()==="agent"&&t[0].ssid){e.customerNumber=t[0].ssid}}else{if(e.customerNumber.length===10&&e.customerNumber.substring(0,2)==="55"){e.customerNumber=e.customerNumber.substring(0,6)+"-"+e.customerNumber.substring(6)}this.profileoptions.push(e)}}));let a=o.organizations.filter((e=>e.selected===true))[0];const r={name:this.userName,customerNumber:"",id:"",selected:!a,profiles:[]};if(!a){a=r}if(a&&a.name){this.currentProfile=a}this.profileoptions.push(r)}adjustLoginLinks(){const e=(e,t)=>{if(!e.isLogoutLink){e.isLogoutLink=e.pageLink.indexOf("location.href")!==-1&&e.pageLink.indexOf("logout")!==-1}if(e.isLogoutLink){e.href=p.loginManager.getLogoutUrl(e.href)}if(t===0&&!e.href){e.href=p.loginManager.getLoginUrl();e.linkType="primary"}if(e.primaryLinkApperance&&!e.linkType){e.linkType="primary"}};if(this.loginDialog?.loggedInLinks){this.loginDialog?.loggedInLinks.forEach(e)}this.logoutLink=this.loginDialog?.loggedInLinks.filter((e=>e.isLogoutLink))[0]??null}updateUserInfo(){const e=p.loginManager.getUserInfo();this.user=e;if(!e){return}if(e&&e.email){this.userEmail=e.email}if(e&&e.given_name){this.userName=e.given_name+(e?.family_name?` ${e?.family_name}`:"")}if(e&&e.given_name){this.userName=e.given_name;return}if(e&&e.family_name){this.userName=e.family_name;return}if(e&&e.username){this.userName=e.username;return}}filterLogoutLink(e){return e.filter((e=>!e.isLogoutLink))}render(){if(!this.loginDialog){return}let e={};return i(o,{...e},this.heading?i("strong",{class:"pn-marketweb-siteheader-login-profileselection-heading"},this.heading):null,this.currentProfile!==null&&this.currentProfile.name?i("div",{class:"pn-marketweb-siteheader-login-profileselection-currentprofile"},i("div",{class:"pn-marketweb-siteheader-login-profileselection-currentprofile-name"},this.currentProfile.name),i("div",{class:"pn-marketweb-siteheader-login-profileselection-currentprofile-description"},this.currentProfile.customerNumber?this.currentProfile.customerNumber:this.userEmail)):null,i("pn-marketweb-siteheader-login-linklist",{links:this.filterLogoutLink(this.loginDialog.loggedInLinks),idNamespace:this.idNamespace}),i("div",{class:"pn-marketweb-siteheader-login-profileselection-divider"}),this.profileoptions.filter((e=>e.selected!==true)).map((e=>{let t=e.profiles.length>0?e.profiles[0].customerNumber:e.customerNumber;return i("div",{class:"pn-marketweb-siteheader-login-profileselection-profileoption"},i("a",{href:`${this.endpoint}/api/user/setprofile?customernumber=${t}&returnUrl=${encodeURIComponent(window.location.href)}`,class:"pn-marketweb-siteheader-login-profileselection-profileoption-link"},i("div",{class:"pn-marketweb-siteheader-login-profileselection-profileoption-content"},i("div",{class:"pn-marketweb-siteheader-login-profileselection-profileoption-name"},e.name),i("div",{class:"pn-marketweb-siteheader-login-profileselection-profileoption-description"},e.customerNumber?e.customerNumber:this.userEmail)),i("pn-icon",{icon:h,small:"false",color:"blue700"})))})),this.logoutLink?i("div",{class:"pn-marketweb-siteheader-login-profileselection-logout"},i("a",{href:this.logoutLink.href,rel:"nofollower noopener",id:"pn-marketweb-header-logoutlink",onClick:()=>p.loginManager.clearUserData(),class:"pn-marketweb-siteheader-login-profileselection-logout-link"},this.logoutLink.linkText)):null)}};J.style=q;const{state:Q,onChange:Z}=a({searchValue:"",autocompleteSuggestions:{},requestAbortController:new AbortController});const ee="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}";const te=ee;const ne=class{constructor(t){e(this,t);this.i18n=undefined;this.showOnlyLink=false;this.hideSearch=false;this.language=null;this.siteid=null;this.search={};this.primary=false;this.icononly=true;this.autoCompleteOptions=[]}get hostElement(){return n(this)}onSearchValueUpdate(){this.getAutocomplete(Q.searchValue)}async getAutocomplete(e){if(!this.search.AutocompleteEndpoint||e.length<2){this.autoCompleteOptions=[];return}if(Q.autocompleteSuggestions[e]){this.setAutocompleteSuggestions(Q.autocompleteSuggestions[e]);return}let t=`${this.search.AutocompleteEndpoint}?prefix=${e}&size=10`;if(this.language||this.siteid){t+=`&tags=`;if(this.language){t+=`language:${this.language}`}if(this.language&&this.siteid){t+=`,`}if(this.siteid){t+=`siteid:${this.siteid}`}}const n=await fetch(t,{signal:Q.requestAbortController.signal}).catch((e=>{console.warn("Unable to fetch autocomplete suggestions",e)}));if(!n){return}const i=await n.json();if(!i||!i.hits||!i.hits.length){return}const o=i.hits.filter((e=>e.type==="editorial")).map((e=>e.query));Q.autocompleteSuggestions[e]=o;this.setAutocompleteSuggestions(o)}setAutocompleteSuggestions(e){if(typeof e!=="object"||typeof e.length!=="number"||e.length===0){return}this.autoCompleteOptions=e}componentWillLoad(){Z("searchValue",(()=>{this.onSearchValueUpdate()}))}componentDidRender(){const e=this.hostElement.querySelector("pn-search-field input:not([list])");if(e&&this.search.AutocompleteEndpoint){e.setAttribute("list","siteheader-search-autocomplete")}}render(){if(!this.search.formActionUrl||this.hideSearch){return}const e=this.search.AutocompleteEndpoint?{list:"siteheader-search-autocomplete"}:{};return i("div",{class:"siteheader-search"},this.showOnlyLink?i("pn-button",{href:this.search.formActionUrl,appearance:"light",icon:m,tooltip:this.i18n.searchlabel}):i("form",{method:"get",action:this.search.formActionUrl,role:"search"},i("pn-search-field",{...e,label:this.i18n.searchlabel,name:"q",button:this.icononly?"icon":null,"button-label":"Search",placeholder:this.i18n.searchplaceholder,onUpdate:e=>{Q.searchValue=e.detail},onSearch:()=>{const e=this.hostElement.querySelector("form");if(e){e.submit()}}}),this.primary&&this.search.AutocompleteEndpoint?i("datalist",{id:"siteheader-search-autocomplete"},this.autoCompleteOptions.map((e=>i("option",null,e)))):null))}};ne.style=te;const ie="";const oe=ie;const ae=class{constructor(t){e(this,t);this.loggedIn=false;this.logInLabel=undefined;this.useMarketwebLogin=undefined;this.environment=undefined}get hostElement(){return n(this)}render(){return i(o,{key:"d81058f7099d93c9849656245c16fdfd4fcdece0"},i("pn-marketweb-siteheader-login-button",{key:"af6260b3550aae26428b37da4fb8a59964422bc2",label:this.logInLabel,useMarketwebLogin:this.useMarketwebLogin,environment:this.environment}))}};ae.style=oe;const re={sv:{navlabel:"Webbplatsväljare"},en:{navlabel:"Website selector"},da:{navlabel:"Webstedsvælger"},no:{navlabel:"Nettstedsvelger"},fi:{navlabel:"Verkkosivun valitsin"},de:{navlabel:"Website-Selektor"}};const se="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{--siteselector-heading-color:#000000;--siteselector-description-color:#2d2013;--siteselector-hover-background-color:#f3f2f2;--siteselector-hover-text-color:#005d92;--siteselector-active-text-color:#00a0d6;--siteselector-item-title-color:#2d2013;--siteselector-item-link-color:#005d92}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;color:var(--siteselector-heading-color)}@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}pn-site-selector[appearance=dark] button:hover pn-icon svg path{fill:#000000}";const le=se;const de=class{constructor(t){e(this,t);this.buttontext="postnord";this.heading="PostNord";this.language="sv";this.appearance="light";this.i18n={navlabel:"Site selector"}}get hostElement(){return n(this)}componentWillLoad(){this.setLanguage()}setLanguage(){if(re[this.language]){this.i18n=re[this.language]}}render(){return i(o,{key:"1d9cc3cce9bb2027f283caf8840fe3baa7c14620"},i("pn-button-dropdown",{key:"c17f136afd75a52357d3bda51f3179c8b268b45e",label:this.buttontext,icon:d,appearance:this.appearance,variant:"borderless","aria-label":this.i18n.navlabel},i("div",{key:"e2277aca85845be920d549296891dec083dcce46",class:"siteselector-nav"},this.heading?i("strong",{class:"siteselector-heading"},this.heading):null,i("div",{key:"aec39d635074a4ef1ceca6b78799eba5d79df7d8",role:"menu",class:"siteselector-list"},i("slot",{key:"e618c3870e6ddbbd178997ce569b25203114c11a"})))))}};de.style=le;const he="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{display:flex;flex-flow:column;position:relative;padding:0.8rem 0}.siteselector-item-link{border-radius:0;text-decoration:none;color:var(--siteselector-item-link-color, #005d92);flex-direction:row}.siteselector-item-link:hover,.siteselector-item-link:focus{background-color:var(--siteselector-hover-background-color, #f3f2f2);color:var(--siteselector-hover-text-color, #005d92);text-decoration:underline;outline:none;box-shadow:none}.siteselector-item-link:active{background-color:var(--siteselector-hover-background-color, #f3f2f2);color:var(--siteselector-active-text-color, #00a0d6);outline:none}.siteselector-item-link>span{flex-grow:1}.siteselector-item-link pn-icon{right:3.2rem;width:1.9rem;height:1.9rem;align-self:center}.siteselector-item-link pn-icon svg{width:100%;height:auto}.siteselector-item-title{display:block}.siteselector-item-title:not(.siteselector-item-link .siteselector-item-title){color:var(--siteselector-item-title-color, #2d2013)}.siteselector-item-description{color:var(--siteselector-description-color, #2d2013);font-size:1.28rem}a:hover>.siteselector-item-description,a:focus>.siteselector-item-description{background-color:var(--siteselector-hover-background-color, #f3f2f2);color:var(--siteselector-hover-text-color, #005d92);text-decoration:underline;outline:none}a:active>.siteselector-item-description{background-color:var(--siteselector-hover-background-color, #f3f2f2);color:var(--siteselector-active-text-color, #00a0d6);outline:none}";const ce=he;const pe=class{constructor(t){e(this,t);this.url="";this.heading="";this.description="";this.newwindow=false}render(){return i(o,{key:"fe45b2c19b9df40b7d762832dde4d09e65f3a677",role:"menuitem"},this.url?i("a",{class:"siteselector-item-link",href:this.url,target:this.newwindow?"_blank":"self",rel:this.newwindow?"nofollow noopener":""},i("span",null,this.heading&&i("span",{class:"siteselector-item-title"},this.heading),this.description&&i("small",{class:"siteselector-item-description"},this.description)),i("pn-icon",{icon:g,color:"blue700"})):i("div",null,this.heading&&i("span",{class:"siteselector-item-title"},this.heading),this.description&&i("small",{class:"siteselector-item-description"},this.description)))}};pe.style=ce;export{L as pn_language_selector,C as pn_language_selector_option,$ as pn_mainnav,G as pn_mainnav_level,E as pn_mainnav_link,O as pn_mainnav_list,V as pn_marketweb_siteheader_login,F as pn_marketweb_siteheader_login_links,J as pn_marketweb_siteheader_login_profileselection,ne as pn_marketweb_siteheader_search,ae as pn_marketweb_siteheader_unified_login,de as pn_site_selector,pe as pn_site_selector_item};
|
|
2
|
+
//# sourceMappingURL=p-f23ed5d2.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["icon","angle_small_right","globe","user","translations","sv","heading","en","da","no","fi","de","zh","fr","es","nl","it","tr","pl","pt","pnLanguageSelectorCss","PnLanguageSelectorStyle0","PnlanguageSelector","setLanguage","componentWillLoad","this","setInitialSelectedLanguageName","setTranslations","componentDidLoad","initialize","setSelectedLanguageName","addEventBindingsToOptions","window","Intl","value","langs","DisplayNames","type","languageName","of","selectedLanguageName","charAt","toUpperCase","slice","options","apply","hostElement","querySelectorAll","map","option","removeEventListener","event","onSetCurrentLanguage","detail","addEventListener","getAttribute","code","name","emit","i18n","onValueChange","components","forEach","component","isSelected","setAttribute","render","h","Host","key","label","appearance","variant","class","role","pnLanguageSelectorOptionCss","PnLanguageSelectorOptionStyle0","PnlanguageSelectorOption","spanEl","setCurrentLanguage","onOptionClick","currentlanguage","url","current","selected","onClick","bind","ref","el","lang","href","target","menuHomeButton","menuGoBackButton","mainMenuButton","menuStartButton","navLabel","state","onChange","createStore","openLevel","currentLevel","openMenu","pnMainnavCss","PnMainnavStyle0","PnMainnav","menuLanguageChange","marketChange","menuOpenChange","init","document","_onClickOutside","setMarket","clickedOutside","contains","language","market","onLanguageChange","setMenuOpenState","onOpenMenuLevelChange","navigationId","close","bars","color","id","pnMainnavLevelCss","PnMainnavLevelStyle0","PnMainnavLevel","setState","onChangeOpenLevel","listCount","length","parentElm","parentElement","tagName","toLowerCase","level","parentName","parentHref","parentLinkId","parentLinkName","replace","levelId","onOpen","requestAnimationFrame","levelClientRect","getClientRects","navElm","navClientRect","right","innerWidth","levelParentRect","left","width","alignment","isOpen","htmlFor","arrow_left","linkid","pnMainnavLinkCss","PnMainnavLinkStyle0","PnMainnavLink","hasChildren","safeLevelName","setOpenMenuLevel","angle_small_down","arrow_right","rel","open_in_new","pnMainnavListCss","PnMainnavListStyle0","PnMainnavList","linkCount","MarketWebLoginManager","eventTarget","body","endpoint","storagePrefix","checkUserLoggedInStateInterval","baseUrls","at","prod","events","loginstatechange","endpoints","authorizationEndpoint","tokenExchangeEndpoint","userInfoEndpoint","logoutEndpoint","keys","tokensource","token","accessToken","expire","expireDate","overridetokenValue","siteUrl","location","origin","abortSignalForLoginCheck","loginCheckInProgress","loginCheckTimer","constructor","protocol","host","parseInt","userInfo","store","set","registerToken","checkParameters","checkPNTopbar","checkExpireTime","get","fetchUserInfo","loginStateChange","initiateLoggedInCheck","setSiteUrl","isLoggedIn","AbortController","setInterval","doExternalLoggedInCheck","then","catch","navigator","onLine","getToken","clearInterval","abort","reqConfig","method","headers","Accept","Authorization","response","fetch","getBaseUrl","status","console","log","LogoutUser","ok","data","json","clearUserData","logoutLink","querySelector","click","currentPageHref","getLogoutUrl","override","tokenSource","invalidateTokenOfType","currentToken","currentTokenSource","getLoginUrl","redirectPage","currentPage","linkHref","indexOf","rootUrl","URL","e","addSlash","lastIndexOf","secondLogoutUrl","logoutUrl","getUserInfo","getEventTarget","now","Date","Math","floor","info","params","URLSearchParams","search","oneTimeCode","exchangeToken","currentHref","paramPrefix","newUrl","history","replaceState","innerText","idToken","expiryTime","parseUserInfo","error","remove","getAccessToken","dispatchEvent","CustomEvent","atEnvironments","useATEnv","filter","x","hostname","base64Url","split","base64","jsonPayload","decodeURIComponent","atob","c","charCodeAt","toString","join","JSON","parse","localStorage","getItem","setItem","stringify","removeItem","pnMarketwebSiteheaderLoginCss","PnMarketwebSiteheaderLoginStyle0","PnMarketwebSiteheaderLogin","searchlabel","searchplaceholder","searchbuttontext","profileSelectionFlyoutHeading","unifiedLoginButton","unifiedMyPagesButton","loginDialog","loginMenuLinkText","fullname","loggedin","given_name","headerState","loginManager","emitEvents","onLoginStateChange","setUserName","setToggleButtonText","adjustLoginLinks","loginMenuLinks","adjustLink","link","i","isLogoutLink","pageLink","linkType","primaryLinkApperance","loggedInLinks","legacyLoginLinks","loginUrl","linkText","loginLinkText","openInNewWindow","registerUrl","createLoginLinkText","username","family_name","email","toggleButtonText","loggedInButtonText","loggedIn","hostElementAttribute","showUnifiedLogin","logInLabel","useMarketwebLogin","environment","showProfileSelection","idNamespace","loginInfo","innerHTML","pnMarketwebSiteheaderLoginLinksCss","PnMarketwebSiteheaderLoginLinksStyle0","PnMarketwebSiteheaderLoginLinks","overrideLoginMenu","links","loginTitle","pnMarketwebSiteheaderLoginProfileselectionCss","PnMarketwebSiteheaderLoginProfileselectionStyle0","PnMarketwebSiteheaderLoginProfileselection","updateUserInfo","fetchProfiles","profileoptions","apiUrl","req","reqdata","fallbackData","organizations","customerNumber","profiles","ssid","customerGroup","org","selectedProfile","toLocaleLowerCase","substring","push","currentProfileObj","userProfileOption","userName","currentProfile","userEmail","filterLogoutLink","organization","encodeURIComponent","small","searchValue","autocompleteSuggestions","requestAbortController","pnMarketwebSiteheaderSearchCss","PnMarketwebSiteheaderSearchStyle0","PnMarketwebSiteheaderSearch","onSearchValueUpdate","getAutocomplete","prefix","AutocompleteEndpoint","autoCompleteOptions","setAutocompleteSuggestions","autocompleteUrl","siteid","signal","warn","hits","suggestions","item","query","componentDidRender","inputSearchElm","formActionUrl","hideSearch","autocompleteAttribute","list","showOnlyLink","tooltip","action","button","icononly","placeholder","onUpdate","onSearch","form","submit","primary","pnMarketwebSiteheaderUnifiedLoginCss","PnMarketwebSiteheaderUnifiedLoginStyle0","PnMarketwebSiteheaderUnifiedLogin","languageData","navlabel","pnSiteSelectorCss","PnSiteSelectorStyle0","PnSiteSelector","buttontext","pnSiteSelectorItemCss","PnSiteSelectorItemStyle0","PnSiteSelectorItem","newwindow","description"],"sources":["node_modules/pn-design-assets/pn-assets/icons/angle_small_right.js","node_modules/pn-design-assets/pn-assets/icons/globe.js","node_modules/pn-design-assets/pn-assets/icons/user.js","src/components/navigation/pn-language-selector/translations.ts","src/components/navigation/pn-language-selector/pn-language-selector.scss?tag=pn-language-selector","src/components/navigation/pn-language-selector/pn-language-selector.tsx","src/components/navigation/pn-language-selector/pn-language-selector-option.scss?tag=pn-language-selector-option","src/components/navigation/pn-language-selector/pn-language-selector-option.tsx","src/components/navigation/pn-mainnav/translations.ts","src/components/navigation/pn-mainnav/pn-mainnav-store.tsx","src/components/navigation/pn-mainnav/pn-mainnav.scss?tag=pn-mainnav","src/components/navigation/pn-mainnav/pn-mainnav.tsx","src/components/navigation/pn-mainnav/pn-mainnav-level.scss?tag=pn-mainnav-level","src/components/navigation/pn-mainnav/pn-mainnav-level.tsx","src/components/navigation/pn-mainnav/pn-mainnav-link.scss?tag=pn-mainnav-link","src/components/navigation/pn-mainnav/pn-mainnav-link.tsx","src/components/navigation/pn-mainnav/pn-mainnav-list.scss?tag=pn-mainnav-list","src/components/navigation/pn-mainnav/pn-mainnav-list.tsx","src/globals/MarketWebLoginManager.ts","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.scss?tag=pn-marketweb-siteheader-login","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.tsx","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-links.scss?tag=pn-marketweb-siteheader-login-links","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-links.tsx","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-profileselection.scss?tag=pn-marketweb-siteheader-login-profileselection","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-profileselection.tsx","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-search-store.tsx","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-search.scss?tag=pn-marketweb-siteheader-search","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-search.tsx","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-unified-login.scss?tag=pn-marketweb-siteheader-unified-login","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-unified-login.tsx","src/components/navigation/pn-site-selector/pn-site-selector-i18n.js","src/components/navigation/pn-site-selector/pn-site-selector.scss?tag=pn-site-selector","src/components/navigation/pn-site-selector/pn-site-selector.tsx","src/components/navigation/pn-site-selector/pn-site-selector-item.scss?tag=pn-site-selector-item","src/components/navigation/pn-site-selector/pn-site-selector-item.tsx"],"sourcesContent":["const icon = '<svg class=\"pn-icon-svg\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"#000\" fill-rule=\"evenodd\" d=\"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>';\nexport const angle_small_right = icon;\nexport const angleSmallRight = icon;\n","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=\"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>';\nexport const globe = icon;\n","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>';\nexport const user = icon;\n","export const translations = {\n 'sv': {\n heading: 'Språk',\n },\n 'en': {\n heading: 'Language',\n },\n 'da': {\n heading: 'Sprog',\n },\n 'no': {\n heading: 'Språk',\n },\n 'fi': {\n heading: 'Kieli',\n },\n 'de': {\n heading: 'Sprache',\n },\n 'zh': {\n heading: '语言',\n },\n 'fr': {\n heading: 'Langue',\n },\n 'es': {\n heading: 'Idioma',\n },\n 'nl': {\n heading: 'Spraak',\n },\n 'it': {\n heading: 'Idioma',\n },\n 'tr': {\n heading: 'Dil',\n },\n 'pl': {\n heading: 'Język',\n },\n 'pt': {\n heading: 'Linguagem',\n },\n 'pt-BR': {\n heading: 'Linguagem',\n },\n};\n","@import '../../../globals/main.scss';\n@import './pn-language-common.scss';\n\n// -----------------------------------------------------------------------------\n// Component token defaults\n// -----------------------------------------------------------------------------\npn-language-selector {\n --languageselector-toggle-color: #{$blue700};\n --languageselector-toggle-hover-color: #{$blue900};\n --languageselector-toggle-background-color: #{$white};\n --languageselector-title-color: #{$gray900};\n}\n\n// -----------------------------------------------------------------------------\n// Host shell / layout\n// -----------------------------------------------------------------------------\npn-language-selector {\n max-height: 5.2rem;\n}\n\n.languageselector {\n position: relative;\n}\n\n// -----------------------------------------------------------------------------\n// Internal elements\n// -----------------------------------------------------------------------------\n.languageselector-togglebtn {\n cursor: pointer;\n border: 0;\n padding: 0.64rem 0;\n background-color: var(--languageselector-toggle-background-color);\n color: var(--languageselector-toggle-color);\n font-size: 1.6rem;\n\n &:hover,\n &:focus,\n &:active {\n color: var(--languageselector-toggle-hover-color);\n text-decoration: underline;\n }\n\n svg {\n width: 1.9rem;\n height: 1.9rem;\n }\n}\n\n.languageselector-nav {}\n\n.languageselector-title {\n display: flex;\n align-items: center;\n padding: 0.8rem 1.6rem;\n color: var(--languageselector-title-color)\n}\n\n.languageselector-list {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n// -----------------------------------------------------------------------------\n// Appearance overrides\n// -----------------------------------------------------------------------------\npn-language-selector[appearance='dark'] {\n\n button:hover {\n pn-icon {\n svg path {\n fill: $black;\n }\n }\n }\n}","import { globe } from 'pn-design-assets/pn-assets/icons.js';\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\n\nimport {\n LanguageSelectori18n,\n LanguageSelectorOption,\n} from './pn-language-selector-types';\nimport { translations } from './translations';\n\n@Component({\n tag: 'pn-language-selector',\n styleUrl: 'pn-language-selector.scss',\n})\nexport class PnlanguageSelector {\n @Element() hostElement: HTMLElement;\n /* Current language code */\n @Prop({ reflect: true, mutable: true }) value: string = '';\n @Prop({ mutable: true, reflect: true }) appearance?: 'light' | 'dark' = 'light';\n\n @State() selectedLanguageName = '';\n @State() options: LanguageSelectorOption[] = [];\n @State() i18n: LanguageSelectori18n;\n\n // Events\n @Event() setLanguage: EventEmitter;\n\n componentWillLoad() {\n this.setInitialSelectedLanguageName();\n this.setTranslations();\n }\n\n componentDidLoad() {\n this.initialize();\n }\n\n initialize() {\n this.setSelectedLanguageName();\n this.addEventBindingsToOptions();\n }\n\n setInitialSelectedLanguageName() {\n if (!window.Intl || !this.value) {\n return;\n }\n const langs = new (Intl as any).DisplayNames([this.value], { type: 'language' });\n if (!langs) {\n return;\n }\n const languageName = langs.of(this.value);\n if (!languageName) {\n return;\n }\n this.selectedLanguageName = languageName.charAt(0).toUpperCase() + languageName.slice(1);\n }\n\n addEventBindingsToOptions() {\n const options = [].slice.apply(this.hostElement.querySelectorAll('pn-language-selector-option')) as HTMLElement[];\n options.map((option: HTMLElement) => {\n option.removeEventListener('setCurrentLanguage', (event: CustomEvent) => {\n this.onSetCurrentLanguage(event.detail as LanguageSelectorOption);\n });\n // Bind event listener for when a user change language\n option.addEventListener('setCurrentLanguage', (event: CustomEvent) => {\n this.onSetCurrentLanguage(event.detail as LanguageSelectorOption);\n });\n });\n }\n\n @Watch('value')\n setSelectedLanguageName() {\n const options = [].slice.apply(this.hostElement.querySelectorAll('pn-language-selector-option')) as HTMLElement[];\n options.map((option: HTMLElement) => {\n // Set current label of language selector\n if (option.getAttribute('code') == this.value) {\n // || option.getAttribute(\"selected\") == \"true\"\n this.selectedLanguageName = option.getAttribute('name');\n }\n });\n }\n\n onSetCurrentLanguage(option: LanguageSelectorOption) {\n this.value = option.code;\n this.selectedLanguageName = option.name;\n this.setLanguage.emit(this.value);\n }\n\n @Watch('value')\n setTranslations() {\n if (translations[this.value]) {\n this.i18n = translations[this.value] as LanguageSelectori18n;\n }\n }\n\n @Watch('value')\n onValueChange() {\n const components = this.hostElement.querySelectorAll('pn-language-selector-option') ?? [];\n components.forEach(component => {\n // Pass values as props into slotted components\n // component.setAttribute(\"current-language\", this.value);\n const isSelected = (component.getAttribute('code') === this.value) + '';\n if (component.getAttribute('selected') + '' !== isSelected) {\n component.setAttribute('selected', isSelected);\n }\n });\n }\n\n render() {\n return (\n <Host value={this.value}>\n <pn-button-dropdown label={this.selectedLanguageName} icon={globe} appearance={this.appearance} variant=\"borderless\" aria-label={this.i18n.heading}>\n <div class=\"languageselector-nav\">\n <strong class=\"languageselector-title\">{this.i18n.heading}</strong>\n <div class=\"languageselector-list\" role=\"list\">\n <slot />\n </div>\n </div>\n </pn-button-dropdown>\n </Host>\n );\n }\n}\n","@import '../../../globals/main.scss';\n@import './pn-language-common.scss';\n\n// -----------------------------------------------------------------------------\n// Component token defaults\n// -----------------------------------------------------------------------------\npn-language-selector-option {\n --languageselector-option-background-color: #{$white};\n --languageselector-option-color: #{$blue700};\n --languageselector-option-hover-background-color: #{$gray50};\n --languageselector-option-hover-color: #{$blue700};\n\n --languageselector-option-radio-outer-background-color: #{$white};\n --languageselector-option-radio-outer-border-color: #{$gray200};\n --languageselector-option-radio-outer-hover-background-color: #{$blue50};\n --languageselector-option-radio-outer-hover-border-color: #{$blue700};\n --languageselector-option-radio-outer-selected-border-color: #{$blue700};\n --languageselector-option-radio-inner-background-color: #{$blue700};\n --languageselector-option-radio-focus-ring-color: #{$blue700};\n}\n\n// -----------------------------------------------------------------------------\n// Host shell / layout\n// -----------------------------------------------------------------------------\npn-language-selector-option {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n// -----------------------------------------------------------------------------\n// Internal elements\n// -----------------------------------------------------------------------------\n.languageselector-button,\n.languageselector-link {\n width: 100%;\n padding: 1.1rem 1.6rem 1.1rem 1.4rem;\n display: flex;\n align-items: center;\n position: relative;\n text-decoration: none;\n border: 0;\n cursor: pointer;\n background-color: var(--languageselector-option-background-color);\n color: var(--languageselector-option-color);\n font-size: 1.6rem;\n font-weight: bold;\n border-radius: 0;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n box-shadow: none;\n background-color: var(--languageselector-option-hover-background-color);\n color: var(--languageselector-option-hover-color);\n outline: none;\n }\n}\n\n.languageselector-itemtext {\n display: inline-block;\n margin-left: 1rem;\n}\n\n.languageselector-radio-outer {\n background: var(--languageselector-option-radio-outer-background-color);\n border: 0.1em solid var(--languageselector-option-radio-outer-border-color);\n border-radius: 50%;\n height: 1.5em;\n width: 1.5em;\n display: flex;\n justify-content: center;\n align-items: center;\n transition:\n border 0.2s ease-in-out,\n background-color 0.2s ease-in-out,\n box-shadow 0.1s;\n cursor: pointer;\n\n &:focus>&,\n &:active>& {\n box-shadow:\n 0 0 0 0.1rem white,\n 0 0 0 0.3rem var(--languageselector-option-radio-focus-ring-color);\n }\n\n &:hover>& {\n border: 0.1rem solid var(--languageselector-option-radio-outer-hover-border-color);\n background: var(--languageselector-option-radio-outer-hover-background-color);\n }\n\n [selected='true'] & {\n border: 0.1rem solid var(--languageselector-option-radio-outer-selected-border-color);\n }\n}\n\n.languageselector-radio-inner {\n transform: scale(0);\n height: 1em;\n width: 1em;\n background-color: var(--languageselector-option-radio-inner-background-color);\n border-radius: 50%;\n transform-origin: center center;\n transition: transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92);\n\n [selected='true'] & {\n transform: scale(1);\n }\n}","import { Component, Prop, h, Host, Event, EventEmitter } from '@stencil/core';\nimport { LanguageSelectorOption } from './pn-language-selector-types';\n\n@Component({\n tag: 'pn-language-selector-option',\n styleUrl: 'pn-language-selector-option.scss',\n})\nexport class PnlanguageSelectorOption {\n /** What you write in the comment block above each prop is what ends up in the description fields in the prop table in the documentation */\n @Prop() name: string = '';\n @Prop() code: string = '';\n @Prop() url: string = '';\n @Prop() selected: boolean = false;\n @Prop() currentLanguage: string;\n\n private spanEl!: HTMLElement;\n\n @Event() setCurrentLanguage: EventEmitter;\n onOptionClick() {\n const currentlanguage: LanguageSelectorOption = {\n name: this.name,\n code: this.code,\n url: this.url,\n current: true,\n };\n this.setCurrentLanguage.emit(currentlanguage);\n }\n\n componentDidLoad() {\n if (this.spanEl) {\n this.spanEl.setAttribute(\"xml:lang\", this.code);\n }\n }\n\n render() {\n return (\n <Host role=\"listitem\" selected={this.selected + ''} code={this.code} name={this.name}>\n {!this.url ? (\n <button class=\"languageselector-button\" data-langcode={this.code} onClick={this.onOptionClick.bind(this)}>\n <span class=\"languageselector-radio-outer\">\n <span class=\"languageselector-radio-inner\"></span>\n </span>\n <span ref={(el) => (this.spanEl = el as HTMLElement)} lang={this.code} class=\"languageselector-itemtext\">\n {this.name} - {this.code}\n </span>\n </button>\n ) : (\n <a href={this.url} target=\"_self\" class=\"languageselector-link\" data-langcode={this.code}>\n <span class=\"languageselector-radio-outer\">\n <span class=\"languageselector-radio-inner\"></span>\n </span>\n <span ref={(el) => (this.spanEl = el as HTMLElement)} lang={this.code} class=\"languageselector-itemtext\">\n {this.name} - {this.code}\n </span>\n </a>\n )}\n </Host>\n );\n }\n}\n","export const translations = {\n 'sv': {\n menuHomeButton: 'Hem',\n menuGoBackButton: 'Gå tillbaka',\n mainMenuButton: 'Meny',\n menuStartButton: 'Start',\n navLabel: 'Huvudnavigation',\n },\n 'en': {\n menuHomeButton: 'Home',\n menuGoBackButton: 'Go back',\n mainMenuButton: 'Menu',\n menuStartButton: 'Start',\n navLabel: 'Main navigation',\n },\n 'da': {\n menuHomeButton: 'Hjem',\n menuGoBackButton: 'Gå tilbage',\n mainMenuButton: 'Menu',\n menuStartButton: 'Start',\n navLabel: 'Hovednavigation',\n },\n 'no': {\n menuHomeButton: 'Hjem',\n menuGoBackButton: 'Gå tilbake',\n mainMenuButton: 'Meny',\n menuStartButton: 'Start',\n navLabel: 'Hovednavigasjon',\n },\n 'de': {\n menuHomeButton: 'Home',\n menuGoBackButton: 'Geh zurück',\n mainMenuButton: 'Menü',\n menuStartButton: 'Start',\n navLabel: 'Hauptnavigation',\n },\n 'zh': {\n menuHomeButton: 'Home',\n menuGoBackButton: 'Go back',\n mainMenuButton: 'Menu',\n menuStartButton: 'Start',\n navLabel: 'Main navigation',\n },\n 'it': {\n menuHomeButton: 'Home',\n menuGoBackButton: 'Go back',\n mainMenuButton: 'Menu',\n menuStartButton: 'Start',\n navLabel: 'Main navigation',\n },\n 'nl': {\n menuHomeButton: 'Home',\n menuGoBackButton: 'Go back',\n mainMenuButton: 'Menu',\n menuStartButton: 'Start',\n navLabel: 'Main navigation',\n },\n 'tr': {\n menuHomeButton: 'Anasayfa',\n menuGoBackButton: 'Geri git',\n mainMenuButton: 'Menü',\n menuStartButton: 'Başlat',\n navLabel: 'Ana gezinme',\n },\n 'pt': {\n menuHomeButton: 'Página inicial',\n menuGoBackButton: 'Go back',\n mainMenuButton: 'Menu',\n menuStartButton: 'Start',\n navLabel: 'Main navigation',\n },\n 'pl': {\n menuHomeButton: 'Strona główna',\n menuGoBackButton: 'Powrót',\n mainMenuButton: 'Menu',\n menuStartButton: 'Początek',\n navLabel: 'Menu główne systemu',\n },\n 'pt-BR': {\n menuHomeButton: 'Página inicial',\n menuGoBackButton: 'Voltar',\n mainMenuButton: 'Menu',\n menuStartButton: 'Iniciar',\n navLabel: 'Navegação principal',\n },\n};\n","import { createStore } from '@stencil/store';\n// Read more about how stencil stores work here: https://stenciljs.com/docs/stencil-store\n\nconst { state, onChange } = createStore({\n openLevel: '',\n currentLevel: 1,\n openMenu: false,\n i18n: {\n menuHomeButton: '',\n menuGoBackButton: '',\n mainMenuButton: '',\n menuStartButton: '',\n navLabel: '',\n },\n});\n\nexport { state, onChange };\nexport default state;\n","@import './pn-mainnav-common.scss';\n@import '../../../globals/main.scss';\n\n// -----------------------------------------------------------------------------\n// Component token defaults\n// Styling API\n// -----------------------------------------------------------------------------\npn-mainnav {\n --mainnav-nav-background-color: #{$white};\n\n --mainnav-toggle-background-color: #{$blue700};\n --mainnav-toggle-text-color: #{$white};\n --mainnav-toggle-border-radius: 2.4rem;\n --mainnav-toggle-padding: 0.6rem 1.6rem;\n --mainnav-toggle-font-size: 1.6rem;\n --mainnav-top-position: var(--siteheader-mainnav-top-position-mobile,3em);\n}\n\n// -----------------------------------------------------------------------------\n// Host shell / layout\n// -----------------------------------------------------------------------------\npn-mainnav {\n display: flex;\n flex-flow: row-reverse;\n position: relative;\n width: 100%;\n min-height: 5.1rem;\n\n @media screen and (min-width: $mobilenav-media-tablet) {\n flex-flow: row;\n }\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n flex-flow: column;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Slotted content\n// -----------------------------------------------------------------------------\npn-mainnav {\n [slot='footer'] {\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n display: none;\n }\n }\n}\n\n// -----------------------------------------------------------------------------\n// Internal elements\n// -----------------------------------------------------------------------------\npn-mainnav {\n >nav {\n display: flex;\n flex-flow: column;\n position: fixed;\n top: var(--mainnav-top-position);\n bottom: 0;\n left: 0;\n width: 100vw;\n height: auto;\n background-color: var(--mainnav-nav-background-color);\n z-index: 2;\n visibility: hidden;\n transform: translateX(100vw);\n transition: transform 0.2s 0s;\n transition-property: transform, visibility;\n\n @media screen and (min-width: $mobilenav-media-tablet) {\n top: 6.5em;\n }\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n flex-flow: row-reverse;\n position: static;\n top: 0;\n width: 100%;\n height: auto;\n justify-content: space-between;\n visibility: visible;\n transform: translateX(0);\n }\n\n a {\n text-decoration: none;\n }\n\n button {\n cursor: pointer;\n }\n }\n}\n\n.mainnav-toggle {\n display: flex;\n align-items: center;\n align-self: center;\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n display: none;\n }\n\n >button {\n display: flex;\n align-items: center;\n background-color: var(--mainnav-toggle-background-color);\n color: var(--mainnav-toggle-text-color);\n border: none;\n border-radius: var(--mainnav-toggle-border-radius);\n padding: var(--mainnav-toggle-padding);\n cursor: pointer;\n font-size: var(--mainnav-toggle-font-size);\n\n &:focus {\n outline: 0;\n }\n\n pn-icon {\n display: block;\n margin-left: 0.8rem;\n }\n\n svg {\n display: block;\n margin: -0.2rem -0.5rem -0.2rem 0;\n width: 1.9rem;\n height: 1.9rem;\n }\n }\n}\n\n// -----------------------------------------------------------------------------\n// State\n// -----------------------------------------------------------------------------\npn-mainnav>nav[data-menu-open='true'] {\n visibility: visible;\n transform: translateX(0);\n}","import { Component, Prop, h, Host, Listen, Event, EventEmitter, Element } from '@stencil/core';\nimport { translations } from './translations';\nimport { Menui18n } from './types';\nimport state from './pn-mainnav-store';\nimport { close, bars } from 'pn-design-assets/pn-assets/icons.js';\n\n@Component({\n tag: 'pn-mainnav',\n styleUrl: 'pn-mainnav.scss',\n shadow: false,\n})\nexport class PnMainnav {\n @Element() hostElement: HTMLElement;\n /** Specifies which market we want to fetch navigation for (se,dk,fi,no,com) */\n @Prop() market: string = 'se';\n /** Specifies which language we want to show navigation in (sv,da,fi,no,en) */\n @Prop() language: string = 'sv';\n /** Specifies which endpoint we should read information from */\n @Prop() navigationId: string = 'mainnav';\n /** Specifies which endpoint we should read information from */\n @Prop({ mutable: true }) openMenu: boolean = false;\n /** Sets the label of the navigation (Required if multiple nav elements are on a page) */\n @Prop() navLabel: string = '';\n\n @Event() menuLanguageChange: EventEmitter; // Could not use language change since it's a existing window event\n @Event() marketChange: EventEmitter;\n @Event() menuOpenChange: EventEmitter;\n\n componentWillLoad() {\n this.init();\n document.removeEventListener('mousedown', this._onClickOutside.bind(this));\n document.addEventListener('mousedown', this._onClickOutside.bind(this));\n }\n\n async init() {\n this.setLanguage();\n this.setMarket();\n }\n\n private _onClickOutside(event) {\n const clickedOutside = !this.hostElement.contains(event.target);\n if (clickedOutside) {\n state.openLevel = '';\n }\n }\n\n @Listen('language')\n setLanguage() {\n this.menuLanguageChange.emit(this.language);\n }\n\n @Listen('market')\n setMarket() {\n this.marketChange.emit(this.market);\n }\n\n @Listen('menuLanguageChange')\n onLanguageChange(event) {\n if (translations[event.detail]) {\n state.i18n = translations[event.detail] as Menui18n;\n if (!this.navLabel) {\n this.navLabel = state.i18n.navLabel;\n }\n }\n }\n\n @Listen('setmenuopenstate')\n setMenuOpenState() {\n state.openMenu = !state.openMenu;\n this.menuOpenChange.emit(state.openMenu);\n }\n\n @Listen('openMenuLevelChange')\n onOpenMenuLevelChange(event) {\n state.openLevel = event.detail;\n }\n\n render() {\n return (\n <Host>\n <div class=\"mainnav-toggle\">\n <button aria-controls={this.navigationId} aria-expanded={state.openMenu + ''} onClick={this.setMenuOpenState.bind(this)}>\n {state.i18n.mainMenuButton}\n <pn-icon icon={state.openMenu ? close : bars} color=\"white\"></pn-icon>\n </button>\n </div>\n <nav class=\"mainnav\" aria-label={this.navLabel} data-menu-open={state.openMenu + ''} data-menu-currentlevel={state.currentLevel} id={this.navigationId}>\n <slot></slot>\n </nav>\n </Host>\n );\n }\n}\n","@import './pn-mainnav-common.scss';\n@import '../../../globals/main.scss';\n\n// -----------------------------------------------------------------------------\n// Component token defaults\n// Styling API\n// -----------------------------------------------------------------------------\npn-mainnav-level {\n --mainnav-level-bg: #{$white};\n --mainnav-level-link-color: #{$blue700};\n\n --mainnav-level-2-border-top-left-radius-desktop:\n var(--siteheader-mainnav-level-2-border-top-left-radius-desktop, 1rem);\n --mainnav-level-2-border-top-right-radius-desktop:\n var(--siteheader-mainnav-level-2-border-top-right-radius-desktop, 1rem);\n --mainnav-level-2-border-bottom-right-radius-desktop:\n var(--siteheader-mainnav-level-2-border-bottom-right-radius-desktop, 1rem);\n --mainnav-level-2-border-bottom-left-radius-desktop:\n var(--siteheader-mainnav-level-2-border-bottom-left-radius-desktop, 1rem);\n\n --mainnav-level-2-shadow: #{$mainmenu-shadow-elevation8};\n\n --mainnav-level-header-button-color: #{$blue700};\n --mainnav-level-header-link-font-size: 2.4rem;\n --mainnav-level-header-icon-size: 2.4rem;\n}\n\n// -----------------------------------------------------------------------------\n// Host shell / layout\n// -----------------------------------------------------------------------------\npn-mainnav-level {\n display: block;\n\n &:not(.hydrated) {\n max-height: 5.6rem;\n overflow: hidden;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Level 1\n// -----------------------------------------------------------------------------\npn-mainnav-level[data-level='1'] {\n width: 100%;\n right: 0;\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1;\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n width: auto;\n overflow: initial;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n}\n\n// -----------------------------------------------------------------------------\n// Level 2\n// -----------------------------------------------------------------------------\npn-mainnav-level[data-level='2'] {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100vw;\n padding: 0;\n background-color: var(--mainnav-level-bg);\n z-index: 1;\n transform: translateX(100vw);\n transition: transform 0.2s 0s;\n transition-property: transform, visibility;\n overflow: scroll;\n visibility: hidden;\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n top: calc(100% + 1rem);\n bottom: auto;\n width: auto;\n height: auto;\n padding: 1.6rem 1.6rem 0 1.6rem;\n border-top-left-radius: var(--mainnav-level-2-border-top-left-radius-desktop);\n border-top-right-radius: var(--mainnav-level-2-border-top-right-radius-desktop);\n border-bottom-right-radius: var(--mainnav-level-2-border-bottom-right-radius-desktop);\n border-bottom-left-radius: var(--mainnav-level-2-border-bottom-left-radius-desktop);\n display: none;\n z-index: 3;\n box-shadow: var(--mainnav-level-2-shadow);\n\n &[data-menuitem-rightaligned='true'] {\n right: 0;\n left: unset;\n }\n }\n\n @media screen and (max-height: $mobilenav-media-phoneheight) {\n -ms-overflow-style: none;\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n &[aria-hidden='false'] {\n transform: translateX(0);\n visibility: visible;\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n display: block;\n overflow: visible;\n\n &:not([data-level-listcount='1']) {\n display: grid;\n grid-template-columns: minmax(12em, 20em) 1fr;\n grid-template-rows: auto auto;\n gap: 0 1.6rem;\n grid-template-areas:\n 'top top'\n 'left right';\n }\n }\n }\n\n &[data-level-alignment='left'] {\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n right: 0;\n left: unset;\n }\n }\n\n &[data-level-alignment='center'] {\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n left: 50%;\n transform: translateX(-50%);\n }\n }\n\n a {\n color: var(--mainnav-level-link-color);\n text-decoration: none;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Slots\n// -----------------------------------------------------------------------------\npn-mainnav-level {\n [slot='top'] {\n display: flex;\n\n @media screen and (min-width: $mobilenav-media-tablet) {\n display: none;\n }\n }\n\n [slot='footer'] {\n [data-menu-currentlevel='2'] & {\n display: none;\n overscroll-behavior: contain;\n }\n }\n}\n\n// -----------------------------------------------------------------------------\n// Internal elements\n// -----------------------------------------------------------------------------\n.mainnav-level-header {\n grid-area: top;\n\n >label {\n position: absolute;\n width: 0.1rem;\n height: 0.1rem;\n padding: 0;\n margin: -0.1rem;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n white-space: nowrap;\n }\n\n >button {\n display: block;\n position: relative;\n width: 100%;\n padding: 2.4rem 0 2.4rem 6.2rem;\n border: none;\n background-color: transparent;\n color: var(--mainnav-level-header-button-color);\n text-align: left;\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n display: none;\n speak: none;\n }\n\n >pn-icon {\n speak: none;\n position: absolute;\n top: 50%;\n left: 3rem;\n width: var(--mainnav-level-header-icon-size);\n height: var(--mainnav-level-header-icon-size);\n transform: translateY(-50%);\n }\n }\n\n [data-level='2'] & {\n >pn-mainnav-link>a {\n font-size: var(--mainnav-level-header-link-font-size);\n }\n }\n}","import { Component, State, h, Host, Element, Watch, Prop } from '@stencil/core';\nimport { state, onChange } from './pn-mainnav-store';\nimport { arrow_left } from 'pn-design-assets/pn-assets/icons.js';\n\n@Component({\n tag: 'pn-mainnav-level',\n styleUrl: 'pn-mainnav-level.scss',\n shadow: false,\n})\nexport class PnMainnavLevel {\n @Element() hostElement: HTMLElement;\n @Prop({ reflect: true, mutable: true }) label: string = '';\n @State() level: number = 1;\n @State() levelId: string = '';\n @State() isOpen: boolean = false;\n @State() parentName: string = '';\n @State() parentHref: string = '';\n @State() parentLinkId: string = '';\n @State() listCount: number = 0;\n @State() alignment: string = 'right';\n\n async componentWillLoad() {\n this.setState();\n onChange('openLevel', () => {\n this.onChangeOpenLevel();\n });\n }\n\n @Watch('label')\n setState() {\n this.listCount = this.hostElement.querySelectorAll(':scope > pn-mainnav-list').length;\n const parentElm = this.hostElement.parentElement;\n if (parentElm.tagName.toLowerCase() !== 'nav') {\n this.level = 2;\n }\n if (parentElm.tagName.toLowerCase() === 'pn-mainnav-link') {\n this.parentName = parentElm.getAttribute('name') + '';\n if ((!this.label && this.parentName) || this.label !== this.parentName) {\n this.label = this.parentName;\n }\n this.parentHref = parentElm.getAttribute('href') + '';\n this.parentLinkId = parentElm.getAttribute('linkid') + '';\n const parentLinkName = this.parentName.toLowerCase().replace(/\\W/gi, '_');\n this.levelId = `mainnav-lvl${this.level}-${parentLinkName}`;\n }\n }\n\n @Watch('isOpen')\n onOpen() {\n if (this.level === 2) {\n requestAnimationFrame(() => {\n const levelClientRect = this.hostElement.getClientRects()[0];\n if (!levelClientRect) {\n return;\n }\n\n const navElm = this.hostElement.parentElement.parentElement.parentElement.parentElement;\n if (navElm && navElm.tagName.toLowerCase() === 'nav') {\n const navClientRect = navElm.getClientRects()[0];\n if (!navClientRect) {\n return;\n }\n\n if (levelClientRect.right > window.innerWidth) {\n const levelParentRect = this.hostElement.parentElement.getClientRects()[0];\n if (levelParentRect.left - levelClientRect.width < 0) {\n this.alignment = 'center';\n } else {\n this.alignment = 'left';\n }\n }\n }\n });\n }\n }\n onChangeOpenLevel() {\n this.isOpen = state.openLevel === this.levelId;\n state.currentLevel = this.level;\n }\n\n render() {\n return (\n <Host\n {...(this.level > 1 && this.levelId ? { 'aria-hidden': !this.isOpen + '' } : {})}\n data-level-listcount={this.listCount + ''}\n data-level-alignment={this.alignment}\n data-level={this.level + ''}\n {...(this.levelId ? { id: this.levelId } : {})}\n >\n {this.level > 1 ? (\n <div class=\"mainnav-level-header\">\n <label htmlFor={this.levelId}>{state.i18n.menuGoBackButton}</label>\n <button\n class=\"secondlevel-backbtn\"\n onClick={() => {\n state.openLevel = '';\n state.currentLevel = 1;\n }}\n aria-expanded={(state.openLevel === this.levelId) + ''}\n >\n <pn-icon icon={arrow_left} color=\"blue700\" />\n {state.i18n.menuStartButton}\n </button>\n {this.parentHref && this.label ? <pn-mainnav-link href={this.parentHref} name={this.label} linkid={this.parentLinkId}></pn-mainnav-link> : null}\n </div>\n ) : null}\n <slot name=\"top\"></slot>\n <slot></slot>\n <slot name=\"additional\"></slot>\n <slot name=\"footer\"></slot>\n </Host>\n );\n }\n}\n","@import './pn-mainnav-common.scss';\n@import '../../../globals/main.scss';\n\n// -----------------------------------------------------------------------------\n// SCSS tokens\n// Internal layout / implementation constants\n// -----------------------------------------------------------------------------\n$mainnav-link-color: $blue700;\n$mainnav-link-hover-background: $white;\n$mainnav-link-hover-color: $blue700;\n$mainnav-link-active-background: $gray50;\n$mainnav-link-active-color: $blue400;\n\n$mainnav-link-level1-font-size-mobile: 2rem;\n$mainnav-link-level1-font-size-desktop: 1.6rem;\n$mainnav-link-level2-font-size: 1.6rem;\n\n$mainnav-link-level1-padding-mobile: 1.9rem 0 1.9rem 3rem;\n$mainnav-link-level1-padding-desktop: 1.6rem 1.6rem;\n$mainnav-link-level2-padding-mobile: 2.2rem 0 2.2rem 3rem;\n$mainnav-link-level2-padding-desktop: 1.4rem 1.6rem;\n\n$mainnav-link-level2-margin-bottom-desktop: 1.6rem;\n$mainnav-link-level2-min-width-desktop: 16em;\n$mainnav-link-level2-border-radius-desktop: 1rem;\n\n$mainnav-link-level1-indicator-height: 0.5em;\n$mainnav-link-level1-indicator-radius: 0.5em 0.5em 0 0;\n$mainnav-link-level1-indicator-transition: transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92);\n\n$mainnav-link-first-level-icon-size: 1.92rem;\n$mainnav-link-first-level-icon-transition: 0.25s linear transform;\n\n$mainnav-link-first-level-arrow-size: 2.4rem;\n$mainnav-link-first-level-arrow-right: 2.4rem;\n\n$mainnav-link-level2-icon-size: 1.5rem;\n$mainnav-link-level2-icon-margin-left: 0.2em;\n\n// -----------------------------------------------------------------------------\n// Component token defaults\n// Styling API\n// -----------------------------------------------------------------------------\npn-mainnav-link {\n --mainnav-link-active-desktop-color: var(--siteheader-mainnav-link-active-desktop-color, #{$blue700});\n --mainnav-link-level1-indicator-color: var(--siteheader-mainnav-link-level1-indicator-color, #{$blue400});\n --mainnav-link-level1-indicator-active-color: var(--siteheader-mainnav-link-level1-indicator-active-color, #{$blue200});\n --mainnav-link-level1-first-border-top: 0.1rem solid #{$gray50};\n --mainnav-link-level1-border-bottom: var(--siteheader-mainnav-link-level1-border-bottom, 0.1rem solid #{$gray50});\n --mainnav-link-level2-border-bottom: var(--siteheader-mainnav-link-level2-border-bottom, 0.1rem solid #{$gray50});\n}\n\n// -----------------------------------------------------------------------------\n// Host shell / base interaction\n// -----------------------------------------------------------------------------\npn-mainnav-link {\n display: block;\n}\n\npn-mainnav-link button,\npn-mainnav-link a {\n position: relative;\n display: flex;\n align-items: center;\n border: 0 none;\n background-color: transparent;\n color: $mainnav-link-color;\n font-weight: normal;\n\n &:hover,\n &:focus {\n background-color: $mainnav-link-hover-background;\n color: $mainnav-link-hover-color;\n outline: 0;\n box-shadow: none;\n }\n\n &:active {\n background-color: $mainnav-link-active-background;\n color: $mainnav-link-active-color;\n box-shadow: none;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Level 1 host context\n// -----------------------------------------------------------------------------\n[data-level='1'] pn-mainnav-link {\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n position: relative;\n height: 100%;\n padding-left: 0;\n scroll-snap-align: center;\n }\n}\n\n[data-level='1'] pn-mainnav-link:first-child {\n border-top: var(--mainnav-link-level1-first-border-top);\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n border: 0;\n }\n}\n\n[data-level='1'] pn-mainnav-link>button,\n[data-level='1'] pn-mainnav-link>a {\n width: 100%;\n height: auto;\n padding: $mainnav-link-level1-padding-mobile;\n border-bottom: var(--mainnav-link-level1-border-bottom);\n font-size: $mainnav-link-level1-font-size-mobile;\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n position: relative;\n height: 100%;\n overflow: hidden;\n padding: $mainnav-link-level1-padding-desktop;\n border: 0;\n outline: 0;\n white-space: nowrap;\n font-size: $mainnav-link-level1-font-size-desktop;\n font-weight: normal;\n }\n}\n\n[data-level='1'] pn-mainnav-link>button::before,\n[data-level='1'] pn-mainnav-link>a::before {\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: $mainnav-link-level1-indicator-height;\n background-color: var(--mainnav-link-level1-indicator-color);\n border-radius: $mainnav-link-level1-indicator-radius;\n transform: translateY(100%);\n transition: $mainnav-link-level1-indicator-transition;\n }\n}\n\n[data-level='1'] pn-mainnav-link>button:hover::before,\n[data-level='1'] pn-mainnav-link>button:focus::before,\n[data-level='1'] pn-mainnav-link>a:hover::before,\n[data-level='1'] pn-mainnav-link>a:focus::before {\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n transform: translateY(0);\n }\n}\n\n[data-level='1'] pn-mainnav-link>button:active,\n[data-level='1'] pn-mainnav-link>a:active {\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n color: var(--mainnav-link-active-desktop-color);\n outline: 0;\n box-shadow: none;\n }\n}\n\n[data-level='1'] pn-mainnav-link>button:active::before,\n[data-level='1'] pn-mainnav-link>a:active::before {\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n background-color: var(--mainnav-link-level1-indicator-active-color);\n transform: translateY(0);\n }\n}\n\n[data-level='1'] pn-mainnav-link>button:hover,\n[data-level='1'] pn-mainnav-link>button:focus,\n[data-level='1'] pn-mainnav-link>a:hover,\n[data-level='1'] pn-mainnav-link>a:focus {\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n text-decoration: none;\n }\n}\n\n[data-level='1'] pn-mainnav-link>button[aria-expanded='true']::before,\n[data-level='1'] pn-mainnav-link>a[aria-expanded='true']::before {\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: $mainnav-link-level1-indicator-height;\n background-color: var(--mainnav-link-level1-indicator-color);\n border-radius: $mainnav-link-level1-indicator-radius;\n transform: translateY(0);\n transition: $mainnav-link-level1-indicator-transition;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Level 1 state / icons\n// -----------------------------------------------------------------------------\n[data-level='1'] pn-mainnav-link [aria-expanded='true'] .first-level_icon {\n transform: rotateX(180deg);\n}\n\n[data-level='1'] pn-mainnav-link pn-icon.first-level_icon {\n display: none;\n width: $mainnav-link-first-level-icon-size;\n height: $mainnav-link-first-level-icon-size;\n transition: $mainnav-link-first-level-icon-transition;\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n display: block;\n }\n}\n\n[data-level='1'] pn-mainnav-link pn-icon.first-level_arrow {\n display: block;\n position: absolute;\n top: 50%;\n right: $mainnav-link-first-level-arrow-right;\n width: $mainnav-link-first-level-arrow-size;\n height: $mainnav-link-first-level-arrow-size;\n transform: translateY(-50%);\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n display: none;\n }\n}\n\n[data-level='1'] pn-mainnav-link pn-icon svg {\n width: 100%;\n height: 100%;\n pointer-events: none;\n speak: none;\n}\n\n// -----------------------------------------------------------------------------\n// Level 2 special case\n// -----------------------------------------------------------------------------\npn-mainnav-level[data-level='2']:not([data-level-listcount='1']) pn-mainnav-list:last-child pn-mainnav-link>a {\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n min-width: unset;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Level 2 host context\n// -----------------------------------------------------------------------------\n[data-level='2'] pn-mainnav-link {\n position: static;\n display: inline-block;\n width: 100%;\n height: auto;\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n margin-bottom: $mainnav-link-level2-margin-bottom-desktop;\n padding-left: 0;\n }\n}\n\n[data-level='2'] pn-mainnav-link>a {\n padding: $mainnav-link-level2-padding-mobile;\n border-bottom: var(--mainnav-link-level2-border-bottom);\n white-space: normal;\n font-size: $mainnav-link-level2-font-size;\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n min-width: $mainnav-link-level2-min-width-desktop;\n padding: $mainnav-link-level2-padding-desktop;\n border: 0;\n border-radius: $mainnav-link-level2-border-radius-desktop;\n }\n}\n\n[data-level='2'] pn-mainnav-link>a:hover {\n background-color: $mainnav-link-hover-background;\n color: $mainnav-link-hover-color;\n}\n\n[data-level='2'] pn-mainnav-link>a:hover,\n[data-level='2'] pn-mainnav-link>a:focus {\n box-shadow: none;\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n background-color: $mainnav-link-active-background;\n color: $mainnav-link-hover-color;\n text-decoration: underline;\n outline: 0;\n }\n\n &::before {\n content: none;\n }\n}\n\n[data-level='2'] pn-mainnav-link>a:active {\n box-shadow: none;\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n background-color: $mainnav-link-active-background;\n color: $mainnav-link-active-color;\n outline: 0;\n }\n\n &::before {\n content: none;\n }\n}\n\n[data-level='2'] pn-mainnav-link pn-icon {\n display: inline-block;\n width: $mainnav-link-level2-icon-size;\n height: $mainnav-link-level2-icon-size;\n min-width: $mainnav-link-level2-icon-size;\n margin-left: $mainnav-link-level2-icon-margin-left;\n}\n\n[data-level='2'] pn-mainnav-link pn-icon svg {\n width: 100%;\n height: 100%;\n pointer-events: none;\n speak: none;\n}","import { Component, Prop, h, State, Host, Element } from '@stencil/core';\nimport state from './pn-mainnav-store';\nimport { angle_small_down, arrow_right, open_in_new } from 'pn-design-assets/pn-assets/icons.js';\n\n@Component({\n tag: 'pn-mainnav-link',\n styleUrl: 'pn-mainnav-link.scss',\n shadow: false,\n})\nexport class PnMainnavLink {\n @Element() hostElement: HTMLElement;\n\n /** Name */\n @Prop() name: string = '';\n /** Href */\n @Prop() href: string = '';\n /** Target */\n @Prop() target: string = '';\n /** Link id */\n @Prop() linkid: string = '';\n\n /** Level ID that we control toggle on */\n @State() levelId: string = '';\n /** Menu item is open */\n @State() open: boolean = false;\n @State() hasChildren: boolean = false;\n\n componentWillLoad() {\n this.hasChildren = this.hostElement.querySelectorAll('pn-mainnav-level').length > 0;\n if (this.hasChildren && this.name) {\n const safeLevelName = this.name.toLowerCase().replace(/\\W/gi, '_');\n this.levelId = `mainnav-lvl${2}-${safeLevelName}`;\n }\n }\n\n setOpenMenuLevel() {\n state.openLevel = state.openLevel + '' === this.levelId + '' ? '' : this.levelId;\n }\n\n render() {\n return (\n <Host role=\"listitem\" name={this.name} href={this.href} linkid={this.linkid}>\n {this.hasChildren ? (\n <button onClick={this.setOpenMenuLevel.bind(this)} aria-controls={this.levelId} aria-expanded={(state.openLevel + '' === this.levelId + '') + ''} aria-haspopup=\"true\">\n {this.name}\n <pn-icon class=\"first-level_icon\" icon={angle_small_down} color=\"blue700\" />\n <pn-icon class=\"first-level_arrow\" icon={arrow_right} color=\"blue700\" />\n </button>\n ) : (\n <a\n href={this.href}\n {...(this.target ? { target: this.target } : {})}\n {...(this.target === '_blank' ? { rel: 'nofollow noopener' } : {})}\n {...(this.linkid ? { id: this.linkid } : {})}\n >\n {this.name}\n {this.target === '_blank' ? <pn-icon icon={open_in_new} color=\"blue700\"></pn-icon> : null}\n </a>\n )}\n <slot></slot>\n </Host>\n );\n }\n}\n","@import './pn-mainnav-common.scss';\n@import '../../../globals/main.scss';\n\n// -----------------------------------------------------------------------------\n// SCSS tokens\n// Internal layout / implementation constants\n// -----------------------------------------------------------------------------\n$mainnav-list-heading-padding-mobile: 1.4rem 1.4rem 1.4rem 4.8rem;\n$mainnav-list-heading-padding-desktop: 0 1.4rem 1.4rem 1.4rem;\n\n// -----------------------------------------------------------------------------\n// Component token defaults\n// Styling API\n// -----------------------------------------------------------------------------\npn-mainnav-list {\n --mainnav-list-secondary-border-right: 0.1rem solid #{$gray200};\n --mainnav-list-heading-font-size: 1.8rem;\n --mainnav-list-heading-color:var(--siteheader-mainnav-list-heading-color, #{$black});\n}\n\n// -----------------------------------------------------------------------------\n// Host shell / layout\n// -----------------------------------------------------------------------------\npn-mainnav-list {\n display: block;\n overflow: visible;\n list-style: none;\n margin: 0;\n padding: 0;\n grid-area: right;\n}\n\n// -----------------------------------------------------------------------------\n// Sibling placement\n// -----------------------------------------------------------------------------\npn-mainnav-list+pn-mainnav-list {\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n grid-area: left;\n border-right: var(--mainnav-list-secondary-border-right);\n margin-bottom: 1.6rem;\n margin-right: -0.7rem;\n padding-right: 0.7rem;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Level 1 context\n// -----------------------------------------------------------------------------\n[data-level='1']>pn-mainnav-list {\n overflow: scroll;\n -webkit-overflow-scrolling: touch;\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n height: 100%;\n display: flex;\n flex-flow: row;\n overflow: visible;\n padding: 0;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Modifier states\n// -----------------------------------------------------------------------------\npn-mainnav-list[data-navlist-showcolumns='true'] {\n [data-level='2']>& {\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n column-count: 2;\n column-gap: 1.6rem;\n padding-bottom: 1.6rem;\n }\n }\n}\n\n// -----------------------------------------------------------------------------\n// Internal elements\n// -----------------------------------------------------------------------------\n.mainnav-list-heading {\n display: none;\n font-weight: bold;\n column-span: all;\n font-size: var(--mainnav-list-heading-font-size);\n padding: $mainnav-list-heading-padding-mobile;\n color:var(--mainnav-list-heading-color);\n\n @media screen and (min-width: $mobilenav-media-abovemobilemode) {\n display: block;\n padding: $mainnav-list-heading-padding-desktop;\n }\n}","import { Component, h, Host, State, Element, Prop } from '@stencil/core';\n\n@Component({\n tag: 'pn-mainnav-list',\n styleUrl: 'pn-mainnav-list.scss',\n shadow: false,\n})\nexport class PnMainnavList {\n @Element() hostElement: HTMLElement;\n\n @Prop() heading: string = '';\n @State() linkCount: number = 0;\n\n componentWillLoad() {\n this.linkCount = this.hostElement.querySelectorAll(':scope > pn-mainnav-link').length;\n }\n\n render() {\n return (\n <Host class=\"mainnav-list\" role=\"list\" data-navlist-itemcount={this.linkCount + ''} data-navlist-showcolumns={(this.linkCount >= 8) + ''}>\n {this.heading ? <div class=\"mainnav-list-heading\">{this.heading}</div> : null}\n <slot></slot>\n </Host>\n );\n }\n}\n","class MarketWebLoginManager {\n eventTarget: EventTarget = window ?? document?.body;\n endpoint: String = '';\n storagePrefix: String = 'pn-user';\n checkUserLoggedInStateInterval: number = 0;\n baseUrls = {\n at: 'https://atportal.postnord.com/api/unified-login/backend',\n prod: 'https://portal.postnord.com/api/unified-login/backend',\n };\n events = {\n loginstatechange: 'loginstatechange',\n };\n endpoints = {\n authorizationEndpoint: `/authorization`,\n tokenExchangeEndpoint: `/token`,\n userInfoEndpoint: `/user`,\n logoutEndpoint: `/logout`,\n };\n keys = {\n tokensource: 'tokensource',\n token: 'token',\n accessToken: 'accessToken',\n user: 'user',\n expire: 'expire',\n expireDate: 'expiredate',\n };\n overridetokenValue = 'overridetokenValue';\n siteUrl: String = window.location.origin;\n abortSignalForLoginCheck = null;\n loginCheckInProgress = false;\n loginCheckTimer = null;\n\n constructor(options: IMarketWebLoginManagerOptions = null) {\n if (!options) {\n return;\n }\n this.eventTarget = options.eventTarget ? options.eventTarget : this.eventTarget;\n this.endpoint = options.endpoint ? options.endpoint : `${window.location.protocol}//${window.location.host}`;\n this.storagePrefix ??= options.storagePrefix;\n this.checkUserLoggedInStateInterval =\n options.checkUserLoggedInStateInterval && options.checkUserLoggedInStateInterval > 0 ? parseInt(options.checkUserLoggedInStateInterval + '', 10) : 0;\n\n if (options.userInfo) {\n this.store.set(this.keys.user, options.userInfo);\n this.registerToken(this.overridetokenValue, 'override');\n }\n }\n init(checkParameters: boolean = true) {\n if (checkParameters) {\n this.checkParameters();\n this.checkPNTopbar();\n this.checkExpireTime();\n\n if (this.store.get(this.keys.token) && !this.store.get(this.keys.user)) {\n this.fetchUserInfo();\n }\n\n this.loginStateChange();\n\n if (this.checkUserLoggedInStateInterval > 0) {\n this.initiateLoggedInCheck();\n }\n }\n }\n setSiteUrl(siteUrl) {\n if (siteUrl) {\n this.siteUrl = siteUrl;\n }\n }\n initiateLoggedInCheck() {\n if (this.isLoggedIn()) {\n if (window && window['AbortController']) {\n this.abortSignalForLoginCheck = new AbortController();\n }\n this.loginCheckTimer = window.setInterval(() => {\n this.doExternalLoggedInCheck()\n .then(() => {})\n .catch(() => {});\n }, this.checkUserLoggedInStateInterval);\n }\n }\n\n async doExternalLoggedInCheck() {\n if (!window.navigator.onLine) {\n // Don't check if the user is not online\n return;\n }\n if (!this.getToken()) {\n window.clearInterval(this.checkUserLoggedInStateInterval);\n return;\n }\n if (this.loginCheckInProgress && this.abortSignalForLoginCheck) {\n this.abortSignalForLoginCheck.abort();\n this.abortSignalForLoginCheck = new AbortController();\n }\n this.loginCheckInProgress = true;\n const reqConfig: RequestInit = {\n method: 'GET',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'Authorization': this.getToken(),\n },\n };\n if (this.abortSignalForLoginCheck && this.abortSignalForLoginCheck['signal']) {\n reqConfig['signal'] = this.abortSignalForLoginCheck['signal'];\n }\n const response = await fetch(`${this.getBaseUrl()}${this.endpoints.userInfoEndpoint}`, reqConfig);\n if (response.status === 409) {\n // This is a status the API returns if a user has been logged out\n window.clearInterval(this.checkUserLoggedInStateInterval);\n console.log('Cleared out user data due to bad response from authentication endpoint');\n this.LogoutUser();\n return;\n }\n if (!response.ok) {\n // The response was \"bad\". This could be due to bad connectivity or something else.\n // We'll ignore it so we don't unecessarily log users out or have them loose state if they're switching connection\n return;\n }\n const data = await response.json();\n if (!data || !data['accessToken']) {\n window.clearInterval(this.checkUserLoggedInStateInterval);\n console.log('Cleared out user data due to bad response from authentication endpoint');\n this.LogoutUser();\n }\n this.loginCheckInProgress = false;\n }\n LogoutUser() {\n this.clearUserData();\n\n // Log out user\n if (this.eventTarget) {\n const logoutLink = (this.eventTarget as HTMLElement).querySelector('#pn-marketweb-header-logoutlink');\n if (logoutLink) {\n (logoutLink as HTMLAnchorElement).click();\n return;\n }\n }\n\n this.loginStateChange();\n \n // If no logout link was found, attempt to change URL to redirect link\n const currentPageHref = window.location.href;\n window.location.href = this.getLogoutUrl(currentPageHref);\n }\n\n isLoggedIn(override = false) {\n if (override) {\n return override;\n }\n\n let isLoggedIn = this.store.get(this.keys.token) && this.store.get(this.keys.user) ? true : false;\n if (!isLoggedIn && this.store.get(this.keys.token) === this.overridetokenValue) {\n isLoggedIn = true;\n }\n return isLoggedIn;\n }\n\n registerToken(token: string = '', tokenSource = 'frontend') {\n if (!token || token === this.getToken()) {\n return;\n }\n this.clearUserData();\n this.store.set(this.keys.tokensource, tokenSource);\n this.store.set(this.keys.token, token);\n this.fetchUserInfo();\n }\n\n invalidateTokenOfType(tokenSource: string = 'frontend') {\n const currentToken = this.store.get(this.keys.token);\n if (!currentToken) {\n return;\n }\n const currentTokenSource = this.store.get(this.keys.tokensource);\n if (currentTokenSource !== tokenSource) {\n return;\n }\n // If we have a token and the source is set then we will invalidate the user data\n this.clearUserData();\n }\n\n getLoginUrl(redirectPage = '') {\n const currentPage = window.location.href;\n redirectPage = redirectPage ? redirectPage : currentPage;\n return `${this.getBaseUrl()}${this.endpoints.authorizationEndpoint}?redirectionUrl=${redirectPage}`;\n }\n\n getLogoutUrl(linkHref = '') {\n if (linkHref.indexOf('logout?logoutUrl') !== -1) {\n // Link has already been formatted.\n return linkHref;\n }\n let redirectPage = linkHref\n .replace('logout', '')\n .replace('http://window.location.href/?', window.location.href)\n .replace('https://window.location.href/?', window.location.href);\n let rootUrl = this.siteUrl;\n try {\n const url = new URL(this.siteUrl + '');\n rootUrl = url.origin;\n } catch (e) {}\n const addSlash = rootUrl.lastIndexOf('/') !== rootUrl.length - 1;\n const siteUrl = rootUrl + (addSlash ? '/' : '') + 'logout';\n const secondLogoutUrl = `${this.getBaseUrl()}${this.endpoints.logoutEndpoint}?authorization=${this.store.get(this.keys.token)}%26redirectionUrl=${redirectPage}`;\n const logoutUrl = `${siteUrl}?logoutUrl=${secondLogoutUrl}`;\n\n return logoutUrl;\n }\n\n getUserInfo() {\n if (this.isLoggedIn()) {\n return this.store.get(this.keys.user) as IUserInfo;\n }\n }\n\n getEventTarget() {\n return this.eventTarget;\n }\n\n private checkExpireTime() {\n const expire = this.store.get(this.keys.expire);\n if (!expire) {\n return;\n }\n const now = new Date();\n const expireDate = new Date(Math.floor(parseInt(expire, 10) * 1000));\n if (now > expireDate) {\n console.info('Login time has expired');\n this.clearUserData();\n this.loginStateChange();\n }\n }\n private checkPNTopbar() {\n if (this.isLoggedIn() || !window['pnTopbar'] || !window['pnTopbar']['session_id']) {\n return;\n }\n\n this.store.set(this.keys.token, window['pnTopbar']['session_id']);\n this.fetchUserInfo();\n }\n\n private checkParameters() {\n if (!window?.location) {\n return;\n }\n\n const params = new URLSearchParams(window.location.search);\n if (params.get('oneTimeCode')) {\n const oneTimeCode = params.get('oneTimeCode');\n\n this.exchangeToken(oneTimeCode).then(() => {\n const currentHref = window.location.href;\n const paramPrefix = currentHref.indexOf('?oneTimeCode') !== -1 ? '?' : '&';\n const newUrl = currentHref.replace(`${paramPrefix}oneTimeCode=${oneTimeCode}`, '');\n history.replaceState({}, document.querySelector('title').innerText, newUrl);\n });\n }\n }\n\n private async fetchUserInfo() {\n const token = this.store.get(this.keys.token);\n if (this.store.get(this.keys.token) === this.overridetokenValue) {\n console.info('Did not fetch user data since it was set by an override');\n return;\n }\n const reqConfig: RequestInit = {\n method: 'GET',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'Authorization': token,\n },\n };\n const response = await fetch(`${this.getBaseUrl()}${this.endpoints.userInfoEndpoint}`, reqConfig);\n const data = await response.json();\n if (data && data['idToken']) {\n try {\n const { idToken, expiryTime, accessToken } = data;\n const userInfo = this.parseUserInfo(idToken);\n if (!userInfo) {\n console.error('Userdata is not valid');\n this.clearUserData();\n return;\n }\n this.store.set(this.keys.user, userInfo);\n // 10 Min early expire\n this.store.set(this.keys.accessToken, accessToken);\n this.store.set(this.keys.expire, expiryTime);\n this.store.set(this.keys.expireDate, new Date(Math.floor(parseInt(expiryTime, 10) * 1000)));\n this.loginStateChange();\n } catch (e) {\n console.error('Unable to get user information', e);\n }\n } else {\n console.error('Unable to get user information. Clearing login state');\n this.clearUserData();\n }\n }\n clearUserData() {\n this.store.remove(this.keys.user);\n this.store.remove(this.keys.tokensource);\n this.store.remove(this.keys.accessToken);\n this.store.remove(this.keys.token);\n this.store.remove(this.keys.expire);\n this.store.remove(this.keys.expireDate);\n }\n getToken() {\n return this.store.get(this.keys.token);\n }\n getAccessToken() {\n return this.store.get(this.keys.accessToken);\n }\n async exchangeToken(oneTimeCode) {\n this.clearUserData();\n const response = await fetch(`${this.getBaseUrl()}${this.endpoints.tokenExchangeEndpoint}?oneTimeCode=${oneTimeCode}`);\n const { token } = await response.json();\n if (typeof token === 'string' && token) {\n this.store.set(this.keys.token, token);\n }\n this.fetchUserInfo();\n }\n private loginStateChange() {\n if (!this.eventTarget) {\n return;\n }\n this.eventTarget.dispatchEvent(\n new CustomEvent(this.events.loginstatechange, {\n detail: this.isLoggedIn(),\n }),\n );\n }\n private getBaseUrl() {\n const atEnvironments = ['localhost', 'integration.', 'inte.', 'local.','prep.'];\n let useATEnv = atEnvironments.filter(x => this.endpoint.indexOf(x) !== -1).length > 0;\n if (['devportal.postnord.com', 'atportal.postnord.com'].indexOf(window.location.hostname) !== -1) {\n useATEnv = true;\n }\n if (useATEnv) {\n return this.baseUrls.at;\n }\n return this.baseUrls.prod;\n }\n\n private parseUserInfo(idToken: string) {\n if (!idToken) {\n return null;\n }\n var base64Url = idToken.split('.')[1];\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n var jsonPayload = decodeURIComponent(\n atob(base64)\n .split('')\n .map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(''),\n );\n return JSON.parse(jsonPayload);\n }\n\n store = {\n get: (key: string) => {\n const value = window.localStorage.getItem(`${this.storagePrefix}-${key}`);\n if (!value) {\n return value;\n }\n if (value.indexOf('{') === 0) {\n try {\n return JSON.parse(value);\n } catch (e) {}\n }\n if (value.indexOf(',') !== -1) {\n return value.split(',');\n }\n return value;\n },\n set: (key: string, value: any) => {\n if (typeof value === 'object' && typeof value.length === 'undefined') {\n window.localStorage.setItem(`${this.storagePrefix}-${key}`, JSON.stringify(value));\n return;\n }\n window.localStorage.setItem(`${this.storagePrefix}-${key}`, value);\n },\n remove: (key: string) => {\n window.localStorage.removeItem(`${this.storagePrefix}-${key}`);\n },\n };\n}\n\ninterface IMarketWebLoginManagerOptions {\n eventTarget?: EventTarget;\n endpoint?: String;\n storagePrefix?: String;\n userInfo?: IUserInfo;\n checkUserLoggedInStateInterval?: number;\n}\n\ninterface IUserInfo {\n acr?: string;\n ams?: string[];\n at_hash?: string;\n aud?: string;\n auth_time?: number;\n created_at?: number;\n email?: string;\n email_verifier?: true;\n emails?: IUserInfoEmail[];\n exp?: number;\n family_name?: string;\n given_name?: string;\n iat?: number;\n iss?: string;\n jti?: string;\n nonce?: string;\n phone_number?: string;\n phone_number_verified?: boolean;\n phone_number_verified_at?: string;\n phone_numbers?: IUserInfoPhonenumber[];\n rat?: number;\n sid?: string;\n sub?: string;\n uas_status?: number;\n userId?: string;\n username?: string;\n}\n\ninterface IUserInfoEmail {\n email: string;\n verifiet_at: number;\n}\ninterface IUserInfoPhonenumber {\n phone_number: string;\n verifiet_at: string;\n}\n\nexport { MarketWebLoginManager, IMarketWebLoginManagerOptions, IUserInfo };\n","@import '../../../globals/main.scss';\n@import './pn-marketweb-siteheader-common.scss';\n\n// -----------------------------------------------------------------------------\n// Internal layout / visual constants (SCSS only)\n// -----------------------------------------------------------------------------\n$siteheader-login-padding: 1rem 0;\n$siteheader-login-max-height: 5.2rem;\n\n$siteheader-login-dropdown-max-width: 350px;\n$siteheader-login-dropdown-gap: 2.4rem;\n$siteheader-login-dropdown-padding: 4rem;\n\n$siteheader-login-divider-height: 2px;\n$siteheader-login-divider-margin: 2.4rem;\n\n$siteheader-login-text-font-size: 1.4rem;\n\n// -----------------------------------------------------------------------------\n// Component token defaults (CSS vars - only real override surface)\n// -----------------------------------------------------------------------------\npn-marketweb-siteheader-login {\n --login-dropdown-divider-background: var(--siteheader-login-dropdown-divider-background,\n #{$gray25});\n --login-dropdown-text-color: var(--siteheader-login-dropdown-text-color,\n #{$gray900});\n --login-dropdown-link-color: var(--siteheader-login-dropdown-link-color,\n #{$blue700});\n --login-dropdown-link-hover-decoration: var(--siteheader-login-dropdown-link-hover-decoration,\n underline);\n --login-dark-icon-hover-fill: var(--siteheader-login-dark-icon-hover-fill,\n #{$black});\n\n padding: $siteheader-login-padding;\n max-height: $siteheader-login-max-height;\n position: relative;\n\n // Example of how we could indicate username in smaller viewports\n // .siteheader-topright & {\n // &[username] {\n // &:hover {\n // &::after {\n // content: attr(username);\n // display: block;\n // position: absolute;\n // z-index: 4;\n // background: $white;\n // border: .1rem solid $blue700;\n // border-radius: .8rem;\n // padding: 0.5rem 0.9rem;\n // margin-top: 0.8rem;\n // left: 50%;\n // transform: translateX(-50%);\n //\n // @media screen and (min-width: $siteheader-media-smalldesktop) {\n // content: '';\n // display: none;\n // }\n // }\n // }\n // }\n // }\n\n pn-button-dropdown {\n display: none;\n\n .pn-button-dropdown-container {\n .pn-button-dropdown-content {\n max-width: $siteheader-login-dropdown-max-width;\n display: flex;\n flex-direction: column;\n gap: $siteheader-login-dropdown-gap;\n padding: $siteheader-login-dropdown-padding;\n\n pn-button {\n width: 100%;\n }\n\n pn-marketweb-siteheader-unified-login {\n &::after {\n display: block;\n content: '';\n width: 100%;\n height: $siteheader-login-divider-height;\n margin-top: $siteheader-login-divider-margin;\n background: var(--login-dropdown-divider-background);\n }\n }\n\n span {\n font-size: $siteheader-login-text-font-size;\n color: var(--login-dropdown-text-color);\n\n &::before {\n display: block;\n content: '';\n width: 100%;\n height: $siteheader-login-divider-height;\n margin-bottom: $siteheader-login-divider-margin;\n background: var(--login-dropdown-divider-background);\n }\n\n a {\n text-decoration: none;\n color: var(--login-dropdown-link-color);\n\n &:hover {\n text-decoration: var(--login-dropdown-link-hover-decoration);\n }\n }\n\n * {\n margin-bottom: 0;\n }\n }\n }\n }\n }\n\n &.hydrated {\n pn-button-dropdown {\n display: block;\n }\n }\n}\n\n// -----------------------------------------------------------------------------\n// Appearance overrides\n// -----------------------------------------------------------------------------\npn-marketweb-siteheader-login[appearance='dark'] {\n button:hover {\n pn-icon {\n svg path {\n fill: var(--login-dark-icon-hover-fill);\n }\n }\n }\n}","import { user } from 'pn-design-assets/pn-assets/icons.js';\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\n\nimport {\n IUserInfo,\n MarketWebLoginManager,\n} from '../../../globals/MarketWebLoginManager';\nimport { HeaderAppearance } from '../pn-marketweb-header/utils/header-theme';\nimport { state as headerState } from './pn-marketweb-siteheader-store';\nimport {\n LoginDialog,\n SiteHeaderI18N,\n} from './pn-marketweb-siteheader-types';\n\n@Component({\n tag: 'pn-marketweb-siteheader-login',\n styleUrl: 'pn-marketweb-siteheader-login.scss',\n})\nexport class PnMarketwebSiteheaderLogin {\n @Element() hostElement: HTMLElement;\n /** Specifies which endpoint domain we should load from */\n @Prop() endpoint: string = '';\n /** Access token passed from backend */\n @Prop() token: string = '';\n @Prop() i18n: SiteHeaderI18N = {\n searchlabel: '',\n searchplaceholder: '',\n searchbuttontext: '',\n menuHomeButton: '',\n menuGoBackButton: '',\n mainMenuButton: '',\n menuStartButton: '',\n profileSelectionFlyoutHeading: '',\n unifiedLoginButton: '',\n unifiedMyPagesButton: '',\n } as SiteHeaderI18N;\n\n @Prop() siteUrl: string = '';\n @Prop() emitEvents: boolean = true;\n\n // Login dialog\n @Prop({ mutable: true }) loginDialog: LoginDialog = null;\n\n /** User Fullname */\n @Prop() fullname: string = '';\n @Prop() loggedin: boolean = false;\n\n /** If this is selected we will show the new profile selection dropdown instead of the login version */\n @Prop({ mutable: true }) showProfileSelection: boolean = false;\n\n /** if this is selected we will show the unifiedlogin button along with new look for dropdown */\n @Prop() showUnifiedLogin: boolean = false;\n\n /** Continiously check if a user is logged in **/\n @Prop({}) checkUserLoggedInStateInterval: number = 0;\n\n @Prop() environment?: string;\n\n @Prop({ mutable: true, reflect: true }) appearance?: HeaderAppearance = 'light';\n\n @State() loginLinks: [];\n\n @State() toggleButtonText: string = this.loginDialog?.loginMenuLinkText ? this.loginDialog.loginMenuLinkText : '';\n\n @State() username: string = this.fullname;\n\n @Prop() useMarketwebLogin: boolean;\n\n // Events\n @Event() loginStateChange: EventEmitter;\n\n componentWillLoad() {\n const userInfo: IUserInfo = this.loggedin && this.fullname ? { given_name: this.fullname } : null;\n headerState.loginManager = new MarketWebLoginManager({\n endpoint: this.endpoint,\n eventTarget: this.hostElement as EventTarget,\n checkUserLoggedInStateInterval: this.checkUserLoggedInStateInterval,\n userInfo,\n });\n headerState.loginManager.setSiteUrl(this.siteUrl);\n this.hostElement['loginmanager'] = headerState.loginManager;\n if (this.token) {\n headerState.loginManager.registerToken(this.token, 'backend');\n } else if (this.emitEvents) {\n // The primary login instance\n headerState.loginManager.invalidateTokenOfType('backend');\n }\n this.hostElement.addEventListener(headerState.loginManager.events.loginstatechange, this.onLoginStateChange.bind(this));\n this.init();\n this.setUserName();\n this.setToggleButtonText();\n }\n\n @Watch('i18n')\n @Watch('loginDialog')\n async init() {\n headerState.loginManager.init(this.emitEvents);\n this.setToggleButtonText();\n this.adjustLoginLinks();\n }\n adjustLoginLinks() {\n if (!this.loginDialog?.loginMenuLinks) {\n return;\n }\n\n const adjustLink = (link, i) => {\n if (!link.isLogoutLink) {\n link.isLogoutLink = link.pageLink.indexOf('location.href') !== -1 && link.pageLink.indexOf('logout') !== -1;\n }\n if (link.isLogoutLink) {\n link.href = headerState.loginManager.getLogoutUrl(link.pageLink);\n }\n\n if (i === 0 && !link.href) {\n link.href = headerState.loginManager.getLoginUrl();\n link.linkType = 'primary';\n }\n if (link.primaryLinkApperance && !link.linkType) {\n link.linkType = 'primary';\n }\n return link;\n };\n if (this.loginDialog) {\n this.loginDialog.loginMenuLinks = this.loginDialog.loginMenuLinks.map(adjustLink);\n this.loginDialog.loggedInLinks = this.loginDialog.loggedInLinks.map(adjustLink);\n }\n this.loginDialog.legacyLoginLinks = [\n {\n href: headerState.loginManager.getLoginUrl(this.loginDialog.loginUrl),\n linkText: this.loginDialog.loginLinkText,\n openInNewWindow: false,\n isLogoutLink: false,\n pageLink: null,\n linkType: 'primary',\n primaryLinkApperance: true,\n },\n {\n href: headerState.loginManager.getLoginUrl(this.loginDialog.registerUrl),\n linkText: this.loginDialog.createLoginLinkText,\n openInNewWindow: false,\n isLogoutLink: false,\n pageLink: null,\n primaryLinkApperance: false,\n },\n ];\n }\n\n setUserName() {\n const userInfo = headerState.loginManager.getUserInfo();\n let name = '';\n if (!this.loggedin || !userInfo) {\n this.username = name;\n }\n if (userInfo && userInfo.given_name) {\n name = userInfo.given_name + (userInfo?.family_name ? ` ${userInfo?.family_name}` : '');\n }\n\n if (!name && userInfo && userInfo.email) {\n name = userInfo.email;\n }\n if (!name && this.fullname) {\n name = this.fullname;\n }\n\n this.username = name;\n\n this.adjustLoginLinks();\n }\n\n setToggleButtonText() {\n if (this.loggedin) {\n this.toggleButtonText = this.username;\n if (!this.toggleButtonText) {\n this.toggleButtonText = this.loginDialog.loggedInButtonText;\n }\n } else {\n this.toggleButtonText = this.loginDialog.loginMenuLinkText;\n }\n }\n\n onLoginStateChange(e: CustomEvent) {\n if (this.loggedin !== e.detail && this.emitEvents) {\n this.loggedin = e.detail;\n this.loginStateChange.emit({ loggedIn: this.loggedin, token: headerState.loginManager.getToken() });\n this.setUserName();\n this.setToggleButtonText();\n }\n }\n\n render() {\n if (!this.loginDialog) {\n return;\n }\n\n let hostElementAttribute = {\n username: null,\n loggedin: 'false',\n };\n if (this.username) {\n hostElementAttribute.username = this.username;\n hostElementAttribute.loggedin = this.loggedin + '';\n }\n return (\n <Host {...hostElementAttribute}>\n <pn-button-dropdown label={this.toggleButtonText} icon={user} appearance={this.appearance} variant=\"borderless\" class=\"siteheader-logindialog\">\n {this.showUnifiedLogin && !this.loggedin && (\n <pn-marketweb-siteheader-unified-login\n loggedIn={this.loggedin}\n logInLabel={this.i18n.unifiedLoginButton}\n useMarketwebLogin={this.useMarketwebLogin}\n environment={this.environment}\n />\n )}\n {this.loggedin && this.showProfileSelection ? (\n <pn-marketweb-siteheader-login-profileselection\n loginDialog={this.loginDialog}\n loggedin={this.loggedin}\n i18n={this.i18n}\n idNamespace={this.emitEvents ? '1' : '2'}\n endpoint={this.endpoint}\n ></pn-marketweb-siteheader-login-profileselection>\n ) : (\n <pn-marketweb-siteheader-login-links\n loginDialog={this.loginDialog}\n loggedin={this.loggedin}\n idNamespace={this.emitEvents ? '1' : '2'}\n username={this.username}\n showUnifiedLogin={this.showUnifiedLogin}\n ></pn-marketweb-siteheader-login-links>\n )}\n {!this.loggedin && this.loginDialog?.loginInfo && (<span innerHTML={`${this.loginDialog.loginInfo}`} />)}\n </pn-button-dropdown>\n </Host>\n );\n }\n}\n","@import '../../../globals/main.scss';\n\n@import './pn-marketweb-siteheader-common.scss';\n\npn-marketweb-siteheader-login-links {\n}\n","import { Component, Element, h, Host, Prop, Watch } from '@stencil/core';\n\nimport { state as headerState } from './pn-marketweb-siteheader-store';\nimport { LoginDialog } from './pn-marketweb-siteheader-types';\n\n@Component({\n tag: 'pn-marketweb-siteheader-login-links',\n styleUrl: 'pn-marketweb-siteheader-login-links.scss',\n})\nexport class PnMarketwebSiteheaderLoginLinks {\n @Element() hostElement: HTMLElement;\n\n // Login dialog\n @Prop({ mutable: true }) loginDialog: LoginDialog = null;\n @Prop() idNamespace: string = '';\n @Prop({ reflect: true }) loggedin: boolean = false;\n @Prop() username: string = '';\n @Prop() showUnifiedLogin: boolean = false;\n\n componentWillLoad() {\n this.init();\n }\n\n @Watch('loginDialog')\n async init() {\n this.adjustLoginLinks();\n }\n adjustLoginLinks() {\n if (!this.loginDialog) {\n return;\n }\n\n const adjustLink = (link, i) => {\n if (!link.isLogoutLink) {\n link.isLogoutLink = link.pageLink.indexOf('location.href') !== -1 && link.pageLink.indexOf('logout') !== -1;\n }\n if (link.isLogoutLink) {\n link.href = headerState.loginManager.getLogoutUrl(link.href);\n }\n link.href = link.href.replace('window.location.href', window.location.href);\n if (i === 0 && !link.href) {\n link.href = headerState.loginManager.getLoginUrl();\n link.linkType = 'primary';\n }\n if (link.primaryLinkApperance && !link.linkType) {\n link.linkType = 'primary';\n }\n };\n\n if (this.loginDialog?.loginMenuLinks) {\n this.loginDialog?.loginMenuLinks.forEach(adjustLink);\n }\n if (this.loginDialog?.loggedInLinks) {\n this.loginDialog?.loggedInLinks.forEach(adjustLink);\n }\n\n this.loginDialog.legacyLoginLinks = [\n {\n href: headerState.loginManager.getLoginUrl(this.loginDialog.loginUrl),\n linkText: this.loginDialog.loginLinkText,\n openInNewWindow: false,\n isLogoutLink: false,\n pageLink: null,\n linkType: 'primary',\n primaryLinkApperance: true,\n },\n {\n href: headerState.loginManager.getLoginUrl(this.loginDialog.registerUrl),\n linkText: this.loginDialog.createLoginLinkText,\n openInNewWindow: false,\n isLogoutLink: false,\n pageLink: null,\n primaryLinkApperance: false,\n },\n ];\n }\n\n render() {\n if (!this.loginDialog) {\n return;\n }\n\n let hostElementAttribute = {\n username: null,\n loggedin: false,\n };\n if (this.username) {\n hostElementAttribute.username = this.username;\n hostElementAttribute.loggedin = this.loggedin;\n }\n return (\n <Host {...hostElementAttribute}>\n {!this.loginDialog.overrideLoginMenu ? (\n <div data-loggedin={this.loggedin + ''}>\n {this.loggedin ? (\n <pn-marketweb-siteheader-login-linklist links={this.loginDialog.loggedInLinks} idNamespace={this.idNamespace}></pn-marketweb-siteheader-login-linklist>\n ) : (\n <div>\n {/* Get login links from API */}\n {this.loginDialog.loginMenuLinks?.length > 0 ? (\n <pn-marketweb-siteheader-login-linklist\n heading={this.loginDialog.loginTitle}\n links={this.loginDialog.loginMenuLinks}\n idNamespace={this.idNamespace}\n showUnifiedLogin={this.showUnifiedLogin}\n ></pn-marketweb-siteheader-login-linklist>\n ) : (\n <pn-marketweb-siteheader-login-linklist links={this.loginDialog.legacyLoginLinks} idNamespace={this.idNamespace}></pn-marketweb-siteheader-login-linklist>\n )}\n </div>\n )}\n </div>\n ) : null}\n\n {/* Override the default logic for some markets such as DK */}\n {this.loginDialog.overrideLoginMenu ? (\n <pn-marketweb-siteheader-login-linklist links={this.loginDialog.loginMenuLinks} idNamespace={this.idNamespace}></pn-marketweb-siteheader-login-linklist>\n ) : null}\n </Host>\n );\n }\n}\n","@import '../../../globals/main.scss';\n@import './pn-marketweb-siteheader-common.scss';\n\n// -----------------------------------------------------------------------------\n// Internal layout / visual constants (SCSS only)\n// -----------------------------------------------------------------------------\n$login-profileselection-description-font-weight: 400;\n$login-profileselection-description-font-size: 0.75em;\n\n$login-profileselection-divider-dot-size: 0.6em;\n$login-profileselection-divider-dot-offset: 0.2em;\n\n$login-profileselection-profileoption-link-padding: 0.6rem 1.6rem;\n$login-profileselection-profileoption-link-transition: background 0.15s ease-in-out;\n\n// -----------------------------------------------------------------------------\n// Component token defaults (CSS vars - only real override surface)\n// -----------------------------------------------------------------------------\npn-marketweb-siteheader-login-profileselection {\n --login-profileselection-heading-color: var(--siteheader-login-profileselection-heading-color,\n inherit);\n --login-profileselection-description-color: var(--siteheader-login-profileselection-description-color,\n #{$gray700});\n --login-profileselection-user-name-color: var(--siteheader-login-profileselection-user-name-color,\n inherit);\n --login-profileselection-divider-background: var(--siteheader-login-profileselection-divider-background,\n #{$blue400});\n --login-profileselection-profileoption-link-background: var(--siteheader-login-profileselection-profileoption-link-background,\n #{$white});\n --login-profileselection-profileoption-link-color: var(--siteheader-login-profileselection-profileoption-link-color,\n #{$blue700});\n --login-profileselection-profileoption-link-hover-background: var(--siteheader-login-profileselection-profileoption-link-hover-background,\n #{$gray50});\n --login-profileselection-logout-link-color: var(--siteheader-login-profileselection-logout-link-color,\n #{$blue700});\n}\n\n// -----------------------------------------------------------------------------\n// Heading\n// -----------------------------------------------------------------------------\n.pn-marketweb-siteheader-login-profileselection-heading {\n display: block;\n padding: 0.5rem 0 1rem;\n color:var(--login-profileselection-heading-color);\n}\n\n// -----------------------------------------------------------------------------\n// User / current profile sections\n// -----------------------------------------------------------------------------\n.pn-marketweb-siteheader-login-profileselection-user,\n.pn-marketweb-siteheader-login-profileselection-currentprofile {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.pn-marketweb-siteheader-login-profileselection-user-name,\n.pn-marketweb-siteheader-login-profileselection-currentprofile-name {\n line-height: 1;\n color: var(--login-profileselection-user-name-color);\n}\n\n.pn-marketweb-siteheader-login-profileselection-user-description,\n.pn-marketweb-siteheader-login-profileselection-currentprofile-description {\n font-weight: $login-profileselection-description-font-weight;\n white-space: normal;\n word-break: break-all;\n color: var(--login-profileselection-description-color);\n font-size: $login-profileselection-description-font-size;\n}\n\n// -----------------------------------------------------------------------------\n// Divider\n// -----------------------------------------------------------------------------\n.pn-marketweb-siteheader-login-profileselection-divider {\n position: relative;\n width: 100%;\n height: 1rem;\n background: var(--login-profileselection-divider-background);\n\n margin-left: -1em; // Negative positioning due to nav dropdown's padding\n margin-top: 1.6rem;\n margin-bottom: 1.6rem;\n border-radius: 0 0.6em 0.6em 0;\n padding: 0;\n\n &::after {\n content: '';\n position: absolute;\n right: 0;\n top: 0;\n width: $login-profileselection-divider-dot-size;\n height: $login-profileselection-divider-dot-size;\n border-radius: 50%;\n background: inherit;\n transform: translateX(calc(100% + #{$login-profileselection-divider-dot-offset}));\n }\n}\n\n// -----------------------------------------------------------------------------\n// Profile options\n// -----------------------------------------------------------------------------\n.pn-marketweb-siteheader-login-profileselection-profileoption-link {\n display: flex;\n align-items: center;\n margin: 0 -1em; // Negative margin due to dropdown content padding\n padding: $login-profileselection-profileoption-link-padding;\n background: var(--login-profileselection-profileoption-link-background);\n color: var(--login-profileselection-profileoption-link-color);\n text-decoration: none;\n transition: $login-profileselection-profileoption-link-transition;\n\n &:hover,\n &:focus,\n &:active {\n background: var(--login-profileselection-profileoption-link-hover-background);\n }\n}\n\n.pn-marketweb-siteheader-login-profileselection-profileoption-content {\n flex-grow: 1;\n}\n\n.pn-marketweb-siteheader-login-profileselection-profileoption-name {\n font-weight: 700;\n}\n\n.pn-marketweb-siteheader-login-profileselection-profileoption-description {\n font-weight: $login-profileselection-description-font-weight;\n white-space: normal;\n word-break: break-all;\n color: var(--login-profileselection-description-color);\n font-size: $login-profileselection-description-font-size;\n}\n\n// -----------------------------------------------------------------------------\n// Logout\n// -----------------------------------------------------------------------------\n.pn-marketweb-siteheader-login-profileselection-logout {\n width: 100%;\n padding: 1.6rem;\n text-align: center;\n}\n\n.pn-marketweb-siteheader-login-profileselection-logout-link {\n display: inline-block;\n font-weight: 500;\n color: var(--login-profileselection-logout-link-color);\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n}","import { Component, Element, h, Host, Prop, State } from '@stencil/core';\n\nimport { IUserInfo } from '../../../globals/MarketWebLoginManager';\nimport { state as headerState } from './pn-marketweb-siteheader-store';\nimport { LoginDialog, LoginDialogLink, ProfileSelectorCustomerItem, ProfileSelectorOrganization, SiteHeaderI18N } from './pn-marketweb-siteheader-types';\nimport { arrow_right } from 'pn-design-assets/pn-assets/icons.js';\n\n@Component({\n tag: 'pn-marketweb-siteheader-login-profileselection',\n styleUrl: 'pn-marketweb-siteheader-login-profileselection.scss',\n})\nexport class PnMarketwebSiteheaderLoginProfileselection {\n @Element() hostElement: HTMLElement;\n\n // Login dialog\n @Prop({ mutable: true }) loginDialog: LoginDialog = null;\n @Prop() endpoint: string = '';\n @Prop() loggedin: boolean = false;\n @Prop() idNamespace: string = '';\n @Prop() heading: string = null;\n @Prop() i18n: SiteHeaderI18N = {\n searchlabel: '',\n searchplaceholder: '',\n searchbuttontext: '',\n menuHomeButton: '',\n menuGoBackButton: '',\n mainMenuButton: '',\n menuStartButton: '',\n profileSelectionFlyoutHeading: '',\n } as SiteHeaderI18N;\n\n @State() user: IUserInfo = null;\n\n @State() logoutLink: LoginDialogLink = null;\n @State() userName: string = null;\n @State() userEmail: string = '';\n\n @Prop({ mutable: true }) currentProfile: ProfileSelectorCustomerItem = null;\n @Prop({ mutable: true }) profileoptions: ProfileSelectorOrganization[] = [];\n\n componentWillLoad() {\n if (this.heading === null && this.i18n?.profileSelectionFlyoutHeading) {\n this.heading = this.i18n.profileSelectionFlyoutHeading;\n }\n this.init();\n }\n\n init() {\n this.updateUserInfo();\n this.adjustLoginLinks();\n this.fetchProfiles();\n }\n async fetchProfiles() {\n if (!this.loggedin || this.profileoptions.length > 0) {\n return;\n }\n let apiUrl = `${this.endpoint}${this.endpoint.lastIndexOf('/') > -1 && this.endpoint.lastIndexOf('/') === this.endpoint.length - 1 ? '' : '/'}api/user/parentorganizations`;\n const req = await fetch(apiUrl);\n const reqdata = await req.json();\n const fallbackData = {\n loggedin: true,\n organizations: [\n {\n name: 'Forsheda Livs AB',\n customerNumber: '5564513603',\n id: 'dbba867d-1dff-3dbb-b420-c57b4b828b73',\n selected: true,\n profiles: [\n {\n name: 'Forsheda Livs AB',\n customerNumber: '20685482',\n id: 'f757ba28-9a73-15a2-f128-4b394d970f3f',\n ssid: '',\n selected: false,\n customerGroup: 'Business',\n },\n {\n name: 'ICA MAXI KUNGSBACKA',\n customerNumber: '20831191',\n id: '5aea41df-32b0-3f7e-2946-78598360177d',\n ssid: '259686',\n selected: true,\n customerGroup: 'Agent',\n },\n ],\n },\n {\n name: 'Hem Livs i Kungsbacka AB',\n customerNumber: '5565271250',\n id: '97ca363c-40ef-cca9-7a3c-9e7f025567c2',\n selected: false,\n profiles: [\n {\n name: 'ICA KVANTUM KUNGSBACKA',\n customerNumber: '20831193',\n id: 'fbd61ffd-41c6-2206-b88e-cfef91e1dc39',\n ssid: '259691',\n selected: false,\n customerGroup: 'Agent',\n },\n ],\n },\n {\n name: 'ICA SUPERMARKET TORGET',\n customerNumber: '5568902679',\n id: '7cb76a94-e1a5-5f57-58fd-bc563851b28e',\n selected: false,\n profiles: [\n {\n name: 'ICA SUPERMARKET TORGET',\n customerNumber: '20831212',\n id: '3a2db017-b68f-6fa0-fe70-542c08cd97ce',\n ssid: '',\n selected: false,\n customerGroup: 'Agent',\n },\n ],\n },\n ],\n };\n const data = window.location.href.indexOf('localhost:6008') !== -1 ? fallbackData : reqdata;\n\n if (!data || !data.organizations || !data.organizations.length) {\n this.heading = \"\"; //this is to not get \"logged in as\" text when its private account\n return;\n }\n\n (data.organizations as ProfileSelectorOrganization[]).forEach(org => {\n if (org.selected === true && org.profiles) {\n const selectedProfile = org.profiles.filter(x => x.selected === true);\n if (selectedProfile && selectedProfile[0] && selectedProfile[0].customerGroup.toLocaleLowerCase() === 'agent' && selectedProfile[0].ssid) {\n org.customerNumber = selectedProfile[0].ssid;\n }\n } else {\n if (org.customerNumber.length === 10 && org.customerNumber.substring(0, 2) === '55') {\n org.customerNumber = org.customerNumber.substring(0, 6) + '-' + org.customerNumber.substring(6);\n }\n this.profileoptions.push(org);\n }\n });\n\n let currentProfileObj = data.organizations.filter(x => x.selected === true)[0];\n const userProfileOption = {\n name: this.userName,\n customerNumber: '',\n id: '',\n selected: !currentProfileObj,\n profiles: [],\n };\n if (!currentProfileObj) {\n currentProfileObj = userProfileOption;\n }\n\n if (currentProfileObj && currentProfileObj.name) {\n this.currentProfile = currentProfileObj;\n }\n this.profileoptions.push(userProfileOption);\n }\n adjustLoginLinks() {\n const adjustLink = (link, i) => {\n if (!link.isLogoutLink) {\n link.isLogoutLink = link.pageLink.indexOf('location.href') !== -1 && link.pageLink.indexOf('logout') !== -1;\n }\n if (link.isLogoutLink) {\n link.href = headerState.loginManager.getLogoutUrl(link.href);\n }\n\n if (i === 0 && !link.href) {\n link.href = headerState.loginManager.getLoginUrl();\n link.linkType = 'primary';\n }\n if (link.primaryLinkApperance && !link.linkType) {\n link.linkType = 'primary';\n }\n };\n\n if (this.loginDialog?.loggedInLinks) {\n this.loginDialog?.loggedInLinks.forEach(adjustLink);\n }\n\n this.logoutLink = this.loginDialog?.loggedInLinks.filter(x => x.isLogoutLink)[0] ?? null;\n }\n updateUserInfo() {\n const userInfo: IUserInfo = headerState.loginManager.getUserInfo();\n this.user = userInfo;\n if (!userInfo) {\n return;\n }\n if (userInfo && userInfo.email) {\n this.userEmail = userInfo.email;\n }\n if (userInfo && userInfo.given_name) {\n this.userName = userInfo.given_name + (userInfo?.family_name ? ` ${userInfo?.family_name}` : '');\n }\n if (userInfo && userInfo.given_name) {\n this.userName = userInfo.given_name;\n return;\n }\n if (userInfo && userInfo.family_name) {\n this.userName = userInfo.family_name;\n return;\n }\n if (userInfo && userInfo.username) {\n this.userName = userInfo.username;\n return;\n }\n }\n\n filterLogoutLink(loggedInLinks: LoginDialogLink[]): LoginDialogLink[] {\n return loggedInLinks.filter((link: LoginDialogLink) => !link.isLogoutLink);\n }\n\n render() {\n if (!this.loginDialog) {\n return;\n }\n\n let hostElementAttribute = {};\n return (\n <Host {...hostElementAttribute}>\n {this.heading ? <strong class=\"pn-marketweb-siteheader-login-profileselection-heading\">{this.heading}</strong> : null}\n {this.currentProfile !== null && this.currentProfile.name ? (\n <div class=\"pn-marketweb-siteheader-login-profileselection-currentprofile\">\n <div class=\"pn-marketweb-siteheader-login-profileselection-currentprofile-name\">{this.currentProfile.name}</div>\n <div class=\"pn-marketweb-siteheader-login-profileselection-currentprofile-description\">\n {this.currentProfile.customerNumber ? this.currentProfile.customerNumber : this.userEmail}\n </div>\n </div>\n ) : null}\n\n <pn-marketweb-siteheader-login-linklist\n links={this.filterLogoutLink(this.loginDialog.loggedInLinks)}\n idNamespace={this.idNamespace}\n ></pn-marketweb-siteheader-login-linklist>\n\n <div class=\"pn-marketweb-siteheader-login-profileselection-divider\"></div>\n {this.profileoptions\n .filter(x => x.selected !== true)\n .map(organization => {\n let customerNumber = organization.profiles.length > 0 ? organization.profiles[0].customerNumber : organization.customerNumber;\n return (\n <div class=\"pn-marketweb-siteheader-login-profileselection-profileoption\">\n {/* /api/user/setprofile? profile=xxxxx */}\n <a\n href={`${this.endpoint}/api/user/setprofile?customernumber=${customerNumber}&returnUrl=${encodeURIComponent(window.location.href)}`}\n class=\"pn-marketweb-siteheader-login-profileselection-profileoption-link\"\n >\n <div class=\"pn-marketweb-siteheader-login-profileselection-profileoption-content\">\n <div class=\"pn-marketweb-siteheader-login-profileselection-profileoption-name\">{organization.name}</div>\n <div class=\"pn-marketweb-siteheader-login-profileselection-profileoption-description\">\n {organization.customerNumber ? organization.customerNumber : this.userEmail}\n </div>\n </div>\n <pn-icon icon={arrow_right} small=\"false\" color=\"blue700\"></pn-icon>\n </a>\n </div>\n );\n })}\n\n {this.logoutLink ? (\n <div class=\"pn-marketweb-siteheader-login-profileselection-logout\">\n {/* https://se-inte.postnord.com/UnifiedLogin/ExternalLoginCallback?returnUrl=https://se-inte.postnord.com/handla-online&profile=770e785b-702b-dc22-b1e9-4839eded4f83 */}\n <a\n href={this.logoutLink.href}\n rel=\"nofollower noopener\"\n id=\"pn-marketweb-header-logoutlink\"\n onClick={() => headerState.loginManager.clearUserData()}\n class=\"pn-marketweb-siteheader-login-profileselection-logout-link\"\n >\n {this.logoutLink.linkText}\n </a>\n </div>\n ) : null}\n </Host>\n );\n }\n}\n","import { createStore } from '@stencil/store';\n// Read more about how stencil stores work here: https://stenciljs.com/docs/stencil-store\n\nconst { state, onChange } = createStore({\n searchValue: '',\n autocompleteSuggestions: {},\n requestAbortController: new AbortController(),\n});\n\nexport { state, onChange };\nexport default state;\n","@import '../../../globals/main.scss';\n@import './pn-marketweb-siteheader-common.scss';\n\n.siteheader-search {\n a {\n display: none;\n @media screen and (min-width: $siteheader-media-tablet) {\n display: block;\n }\n }\n pn-search-field > .input-container button {\n background: $white;\n }\n pn-search-field.button-icon pn-button,\n pn-button {\n display: inline-flex;\n button {\n align-self: center;\n padding: 0;\n height: 2.3em;\n width: 2.4em;\n line-height: 0;\n min-height: unset;\n min-width: initial;\n }\n pn-icon {\n margin-left: 0;\n }\n .pn-button-tooltip {\n line-height: initial !important;\n }\n }\n form {\n justify-content: flex-end;\n align-items: stretch;\n width: auto;\n flex: none;\n display: flex;\n padding: 0;\n margin: 0 0 0 0.4rem;\n position: relative;\n flex-direction: column;\n @media screen and (min-width: $siteheader-media-tablet) {\n }\n @media screen and (min-width: $siteheader-media-smalldesktop) {\n margin-right: 1.6rem;\n }\n pn-search-field {\n min-width: 13.5em;\n .input-container {\n align-self: center;\n }\n input {\n height: auto;\n min-height: 1em;\n padding: 0.6em 0.75em;\n }\n }\n }\n}\n","import { Component, Prop, h, Element, State } from '@stencil/core';\nimport { SiteHeaderSearch } from './pn-marketweb-siteheader-types';\nimport { state, onChange } from './pn-marketweb-siteheader-search-store';\nimport { search } from 'pn-design-assets/pn-assets/icons.js';\n\n@Component({\n tag: 'pn-marketweb-siteheader-search',\n styleUrl: 'pn-marketweb-siteheader-search.scss',\n})\nexport class PnMarketwebSiteheaderSearch {\n @Element() hostElement: Element;\n\n // Language options\n @Prop() i18n: any;\n\n // Display option, show only link\n @Prop({ mutable: true }) showOnlyLink: boolean = false;\n // Hide search option\n @Prop({ mutable: true }) hideSearch: boolean = false;\n /** Specifies which language we want to show (sv,da,fi,no,en) */\n @Prop({ mutable: true, reflect: true }) language: string = null;\n\n /** Specifies the current site id (guid)*/\n @Prop() siteid: string = null;\n\n // Search data\n @Prop({ mutable: true }) search: SiteHeaderSearch = {};\n\n // Is this the primary instance?\n @Prop() primary: boolean = false;\n\n // Only Show icon as search button?\n @Prop() icononly: boolean = true;\n\n // Autocomplete options\n @State() autoCompleteOptions: string[] = [];\n\n onSearchValueUpdate() {\n this.getAutocomplete(state.searchValue);\n }\n\n async getAutocomplete(prefix) {\n if (!this.search.AutocompleteEndpoint || prefix.length < 2) {\n this.autoCompleteOptions = [];\n return;\n }\n if (state.autocompleteSuggestions[prefix]) {\n this.setAutocompleteSuggestions(state.autocompleteSuggestions[prefix]);\n return;\n }\n\n let autocompleteUrl = `${this.search.AutocompleteEndpoint}?prefix=${prefix}&size=10`;\n if (this.language || this.siteid) {\n autocompleteUrl += `&tags=`;\n if (this.language) {\n autocompleteUrl += `language:${this.language}`;\n }\n if (this.language && this.siteid) {\n autocompleteUrl += `,`;\n }\n if (this.siteid) {\n autocompleteUrl += `siteid:${this.siteid}`;\n }\n }\n const req = await fetch(autocompleteUrl, { signal: state.requestAbortController.signal }).catch(e => {\n console.warn('Unable to fetch autocomplete suggestions', e);\n });\n if (!req) {\n return;\n }\n const data = await req.json();\n if (!data || !data.hits || !data.hits.length) {\n return;\n }\n const suggestions = data.hits\n .filter(item => item.type === 'editorial')\n .map(item => {\n return item.query;\n });\n\n // Store query in store\n state.autocompleteSuggestions[prefix] = suggestions;\n this.setAutocompleteSuggestions(suggestions);\n }\n\n setAutocompleteSuggestions(suggestions) {\n if (typeof suggestions !== 'object' || typeof suggestions.length !== 'number' || suggestions.length === 0) {\n return;\n }\n this.autoCompleteOptions = suggestions;\n }\n componentWillLoad() {\n onChange('searchValue', () => {\n this.onSearchValueUpdate();\n });\n }\n\n componentDidRender() {\n const inputSearchElm = this.hostElement.querySelector('pn-search-field input:not([list])');\n if (inputSearchElm && this.search.AutocompleteEndpoint) {\n inputSearchElm.setAttribute('list', 'siteheader-search-autocomplete');\n }\n }\n\n render() {\n if (!this.search.formActionUrl || this.hideSearch) {\n return;\n }\n const autocompleteAttribute = this.search.AutocompleteEndpoint ? { list: 'siteheader-search-autocomplete' } : {};\n return (\n <div class=\"siteheader-search\">\n {this.showOnlyLink ? (\n <pn-button href={this.search.formActionUrl} appearance=\"light\" icon={search} tooltip={this.i18n.searchlabel} />\n ) : (\n <form method=\"get\" action={this.search.formActionUrl} role=\"search\">\n <pn-search-field\n {...autocompleteAttribute}\n label={this.i18n.searchlabel}\n name=\"q\"\n button={this.icononly ? 'icon' : null}\n button-label={'Search'}\n placeholder={this.i18n.searchplaceholder}\n onUpdate={(e: CustomEvent) => {\n state.searchValue = e.detail;\n }}\n onSearch={() => {\n const form = this.hostElement.querySelector('form') as HTMLFormElement;\n if (form) {\n form.submit();\n }\n }}\n />\n\n {this.primary && this.search.AutocompleteEndpoint ? (\n <datalist id=\"siteheader-search-autocomplete\">\n {this.autoCompleteOptions.map(item => (\n <option>{item}</option>\n ))}\n </datalist>\n ) : null}\n </form>\n )}\n </div>\n );\n }\n}\n",null,"import { Component, Element, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'pn-marketweb-siteheader-unified-login',\n styleUrl: 'pn-marketweb-siteheader-unified-login.scss',\n})\nexport class PnMarketwebSiteheaderUnifiedLogin {\n @Element() hostElement: HTMLElement;\n @Prop() loggedIn: boolean = false;\n @Prop() logInLabel: string;\n @Prop() useMarketwebLogin: boolean;\n @Prop() environment: string;\n\n render() {\n return (\n <Host>\n <pn-marketweb-siteheader-login-button \n label={this.logInLabel} \n useMarketwebLogin={this.useMarketwebLogin} \n environment={this.environment}\n />\n </Host>\n );\n }\n}\n","export default {\n sv: {\n navlabel: 'Webbplatsväljare',\n },\n en: {\n navlabel: 'Website selector',\n },\n da: {\n navlabel: 'Webstedsvælger',\n },\n no: {\n navlabel: 'Nettstedsvelger',\n },\n fi: {\n navlabel: 'Verkkosivun valitsin',\n },\n de: {\n navlabel: 'Website-Selektor',\n },\n};\n","@import '../../../globals/main.scss';\n@import './pn-site-selector-common.scss';\n\n// -----------------------------------------------------------------------------\n// Component token defaults\n// -----------------------------------------------------------------------------\npn-site-selector {\n --siteselector-heading-color: #{$black};\n --siteselector-description-color: #{$gray900};\n --siteselector-hover-background-color: #{$gray50};\n --siteselector-hover-text-color: #{$blue700};\n --siteselector-active-text-color: #{$blue400};\n --siteselector-item-title-color: #{$gray900};\n --siteselector-item-link-color: #{$blue700};\n}\n\n// -----------------------------------------------------------------------------\n// Host shell / layout\n// -----------------------------------------------------------------------------\npn-site-selector {\n display: flex;\n position: relative;\n justify-content: center;\n max-height: 5.2rem;\n\n @media screen and (min-width: $siteselector-media-desktop) {\n display: block;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Internal elements\n// -----------------------------------------------------------------------------\n.siteselector-heading {\n display: block;\n padding: 0;\n margin-bottom: 1.6rem;\n color: var(--siteselector-heading-color);\n\n @media screen and (min-width: $siteselector-media-desktop) {\n display: flex;\n align-items: center;\n margin-top: 0.8rem;\n }\n}\n\n.siteselector-list {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n// -----------------------------------------------------------------------------\n// Appearance overrides\n// -----------------------------------------------------------------------------\npn-site-selector[appearance='dark'] {\n button:hover {\n pn-icon {\n svg path {\n fill: $black;\n }\n }\n }\n}","import { angle_small_down } from 'pn-design-assets/pn-assets/icons.js';\n\nimport {\n Component,\n Element,\n h,\n Host,\n Prop,\n State,\n} from '@stencil/core';\n\nimport languageData from './pn-site-selector-i18n';\nimport { SiteSelectori18n } from './pn-site-selector-types';\n\n@Component({\n tag: 'pn-site-selector',\n styleUrl: 'pn-site-selector.scss',\n})\nexport class PnSiteSelector {\n @Element() hostElement: HTMLElement;\n\n /* Site selector Button text */\n @Prop({ mutable: true, reflect: true }) buttontext: string = 'postnord';\n /* Site selector flyout title */\n @Prop({ mutable: true, reflect: true }) heading: string = 'PostNord';\n /** Specifies which language we want to show navigation in (sv,da,fi,no,en) */\n @Prop({ mutable: true, reflect: true }) language: string = 'sv';\n @Prop({ mutable: true, reflect: true }) appearance?: 'light' | 'dark' = 'light';\n @State() i18n: SiteSelectori18n = { navlabel: 'Site selector' };\n\n componentWillLoad() {\n this.setLanguage();\n }\n\n setLanguage() {\n if (languageData[this.language]) {\n this.i18n = languageData[this.language] as SiteSelectori18n;\n }\n }\n\n render() {\n return (\n <Host>\n <pn-button-dropdown label={this.buttontext} icon={angle_small_down} appearance={this.appearance} variant=\"borderless\" aria-label={this.i18n.navlabel}>\n <div class=\"siteselector-nav\">\n {this.heading ? <strong class=\"siteselector-heading\">{this.heading}</strong> : null}\n <div role=\"menu\" class=\"siteselector-list\">\n <slot />\n </div>\n </div>\n </pn-button-dropdown>\n </Host>\n );\n }\n}\n","@import '../../../globals/main.scss';\n@import './pn-site-selector-common.scss';\n\n// -----------------------------------------------------------------------------\n// Host shell / layout\n// -----------------------------------------------------------------------------\npn-site-selector-item {\n display: block;\n\n >div,\n >a {\n display: flex;\n flex-flow: column;\n position: relative;\n padding: 0.8rem 0;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Interactive link variant\n// -----------------------------------------------------------------------------\n.siteselector-item-link {\n border-radius: 0;\n text-decoration: none;\n color: var(--siteselector-item-link-color, #{$blue700});\n flex-direction: row;\n\n &:hover,\n &:focus {\n background-color: var(--siteselector-hover-background-color, #{$gray50});\n color: var(--siteselector-hover-text-color, #{$blue700});\n text-decoration: underline;\n outline: none;\n box-shadow: none;\n }\n\n &:active {\n background-color: var(--siteselector-hover-background-color, #{$gray50});\n color: var(--siteselector-active-text-color, #{$blue400});\n outline: none;\n }\n\n >span {\n flex-grow: 1;\n }\n\n pn-icon {\n right: 3.2rem;\n width: 1.9rem;\n height: 1.9rem;\n align-self: center;\n\n svg {\n width: 100%;\n height: auto;\n }\n }\n}\n\n// -----------------------------------------------------------------------------\n// Internal text elements\n// -----------------------------------------------------------------------------\n.siteselector-item-title {\n display: block;\n}\n\n.siteselector-item-title:not(.siteselector-item-link .siteselector-item-title) {\n color: var(--siteselector-item-title-color, #{$gray900});\n}\n\n.siteselector-item-description {\n color: var(--siteselector-description-color, #{$gray900});\n font-size: 1.28rem;\n\n a:hover>&,\n a:focus>& {\n background-color: var(--siteselector-hover-background-color, #{$gray50});\n color: var(--siteselector-hover-text-color, #{$blue700});\n text-decoration: underline;\n outline: none;\n }\n\n a:active>& {\n background-color: var(--siteselector-hover-background-color, #{$gray50});\n color: var(--siteselector-active-text-color, #{$blue400});\n outline: none;\n }\n}","import { Component, Prop, h, Host } from '@stencil/core';\nimport { angle_small_right } from 'pn-design-assets/pn-assets/icons.js';\n\n@Component({\n tag: 'pn-site-selector-item',\n styleUrl: 'pn-site-selector-item.scss',\n})\nexport class PnSiteSelectorItem {\n /* Link URL */\n @Prop() url: string = '';\n\n /* Link title */\n @Prop() heading: string = '';\n\n /* Link description */\n @Prop() description: string = '';\n\n /* Open link in new window */\n @Prop() newwindow: boolean = false;\n\n render() {\n return (\n <Host role=\"menuitem\">\n {this.url ? (\n <a class=\"siteselector-item-link\" href={this.url} target={this.newwindow ? '_blank' : 'self'} rel={this.newwindow ? 'nofollow noopener' : ''}>\n <span>\n {this.heading && <span class=\"siteselector-item-title\">{this.heading}</span>}\n {this.description && <small class=\"siteselector-item-description\">{this.description}</small>}\n </span>\n <pn-icon icon={angle_small_right} color=\"blue700\" />\n </a>\n ) : (\n <div>\n {this.heading && <span class=\"siteselector-item-title\">{this.heading}</span>}\n {this.description && <small class=\"siteselector-item-description\">{this.description}</small>}\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,h as i,d as n}from"./p-b3a13b6a.js";const o="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}}";const e=o;const
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,h as i,d as n}from"./p-b3a13b6a.js";const o="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}}";const e=o;const r=class{constructor(i){t(this,i);this.symbol=null;this.small=false;this.color="black"}render(){return i(n,{key:"8b042e6f231d91df5e6a248b1478a867dd1c93b6"},i("pn-icon",{key:"24b0baebd09c83f203418f05e2e442375b1ebb1b",icon:this.symbol,color:this.color,small:this.small}))}};r.style=e;export{r as pn_marketweb_icon};
|
|
2
|
+
//# sourceMappingURL=p-f3b4c13d.entry.js.map
|