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