@postnord/pn-marketweb-components 3.5.1 → 3.5.2

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.
@@ -1 +0,0 @@
1
- {"version":3,"names":["translations","sv","searchlabel","searchplaceholder","searchbuttontext","menuHomeButton","menuGoBackButton","mainMenuButton","menuStartButton","profileSelectionFlyoutHeading","unifiedLoginButton","unifiedMyPagesButton","home","en","da","no","fi","de","zh","it","nl","es","fr","tr","pt","pl","pnMarketwebSiteheaderCss","PnMarketwebSiteheaderStyle0","PnMarketwebSiteheader","AutocompleteEndpoint","this","endpointPath","fetchHelper","FetchHelper","changeLanguage","changeMarket","componentWillLoad","setInitialValues","then","init","href","window","location","marketWebContextService","MarketWebContextService","market","resolvedMarket","getMarket","language","getLanguage","environment","getEnvironmentName","endpoint","indexOf","getEndpoint","setTranslations","fetchData","setTimeout","checkMenuOverflow","i18n","searchPlaceholder","onLanguageSelectorChange","e","detail","dispatchEvent","CustomEvent","onLanguageChange","emit","onMarketChange","fetchingData","endpointBase","lastIndexOf","length","substring","fetchUrl","pageId","data","fetchJson","mode","cache","setStateFromData","getLanguageVersionUrl","item","spaMode","alternativeTag","document","querySelector","twoLetterISOLanguageName","getAttribute","siteUrl","siteDefinition","url","console","warn","sitedefinition","headerState","loginManager","setSiteUrl","updatedMenuItems","siteDomainInUrls","mainMenu","menuItems","map","adjustMenuItemUrls","name","hideHomeMenuItem","unshift","id","open","selected","children","search","siteSelector","siteSelectorViewModel","languageSelector","languageSelectorViewModel","setLanguageOptions","loginDialog","loginViewModel","loggedInLinks","adjustHref","loginMenuLinks","spaModeAdjustments","gotData","homePageLink","hostname","adjustedItems","domainUrl","removeDoubleLanguage","languageSegment","toLocaleLowerCase","doubleLanguageSegment","includes","replace","languages","hrefLangsTags","Array","prototype","slice","call","querySelectorAll","hrefLangs","tag","hrefLangValue","languageOptions","languageOption","push","onLoginStateChange","loggedIn","token","promotedItemId","linkText","handleResize","requestAnimationFrame","row","hostElement","firstMenuLevel","parent","parentElement","tagName","parentWidth","scrollWidth","elmWidth","clientWidth","isOverFlowed","minimizeSearch","adjustSiteSelectorUrl","loginDomains","matchedHref","filter","domain","getLoginUrl","getFallbackValue","value","fallback","trim","render","h","Host","key","class","hideSiteSelector","buttontext","currentSiteTitle","heading","description","currentSiteDescription","siteSelections","site","linkDescription","newwindow","openInNewWindow","title","xmlns","width","height","viewBox","role","d","fill","transform","hideLogin","userToken","fullname","userFullname","loggedin","userLoggedin","showProfileSelection","showUnifiedLogin","checkUserLoggedInStateInterval","useMarketwebLogin","hideLanguageSelector","nativeName","code","isCurrent","siteid","hideSearch","icononly","onMenuOpenChange","body","setAttribute","itemid","target","linkTarget","linkid","trackingId","promotedMenuItems","label","navigationHeading","childitem","promotedMenuItemsHeader","slot","pageLink","primary"],"sources":["src/components/layout-components/pn-marketweb-siteheader/translations.ts","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.scss?tag=pn-marketweb-siteheader","src/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.tsx"],"sourcesContent":["export const translations = {\n 'sv': {\n searchlabel: 'Sök',\n searchplaceholder: 'Vad letar du efter?',\n searchbuttontext: 'Sök',\n menuHomeButton: 'Hem',\n menuGoBackButton: 'Gå tillbaka',\n mainMenuButton: 'Meny',\n menuStartButton: 'Start',\n profileSelectionFlyoutHeading: 'Inloggad som',\n unifiedLoginButton: 'Logga in',\n unifiedMyPagesButton: 'Mina sidor',\n home: 'Hem',\n },\n 'en': {\n searchlabel: 'Search',\n searchplaceholder: 'Search',\n searchbuttontext: 'Search',\n menuHomeButton: 'Home',\n menuGoBackButton: 'Go back',\n mainMenuButton: 'Menu',\n menuStartButton: 'Start',\n profileSelectionFlyoutHeading: 'Logged in as',\n unifiedLoginButton: 'Log in',\n unifiedMyPagesButton: 'My pages',\n home: 'Home',\n },\n 'da': {\n searchlabel: 'Søg',\n searchplaceholder: 'Søg',\n searchbuttontext: 'Søg',\n menuHomeButton: 'Hjem',\n menuGoBackButton: 'Gå tilbage',\n mainMenuButton: 'Menu',\n menuStartButton: 'Start',\n profileSelectionFlyoutHeading: 'Logget ind som',\n unifiedLoginButton: 'Log ind',\n unifiedMyPagesButton: 'Mine sider',\n home: 'Hjem',\n },\n 'no': {\n searchlabel: 'Søk',\n searchplaceholder: 'Søk',\n searchbuttontext: 'Søk',\n menuHomeButton: 'Hjem',\n menuGoBackButton: 'Gå tilbake',\n mainMenuButton: 'Meny',\n menuStartButton: 'Start',\n profileSelectionFlyoutHeading: 'Logget på som',\n unifiedLoginButton: 'Logg inn',\n unifiedMyPagesButton: 'Sidene mine',\n home: 'Hjem',\n },\n 'fi': {\n searchlabel: 'Hae',\n searchplaceholder: 'Hae',\n searchbuttontext: 'Hae',\n menuHomeButton: 'Koti',\n menuGoBackButton: 'Mene takaisin',\n mainMenuButton: 'Valikko',\n menuStartButton: 'Alkaa',\n profileSelectionFlyoutHeading: 'Kirjautunut sisään nimellä',\n unifiedLoginButton: 'Kirjaudu sisään',\n unifiedMyPagesButton: 'Minun sivujani',\n home: 'Koti',\n },\n 'de': {\n searchlabel: 'Suche',\n searchplaceholder: 'Wonach suchen Sie?',\n searchbuttontext: 'Suche',\n menuHomeButton: 'Start',\n menuGoBackButton: 'Geh zurück',\n mainMenuButton: 'Menü',\n menuStartButton: 'Start',\n profileSelectionFlyoutHeading: 'Eingeloggt als',\n unifiedLoginButton: 'Anmeldung',\n unifiedMyPagesButton: 'Meine Seiten',\n home: 'Start',\n },\n 'zh': {\n searchlabel: '搜索',\n searchplaceholder: '搜索',\n searchbuttontext: '搜索',\n menuHomeButton: '主页',\n menuGoBackButton: '回去',\n mainMenuButton: '选择菜单',\n menuStartButton: '开始',\n home: '主页',\n },\n 'it': {\n searchlabel: 'Cerca',\n searchplaceholder: 'Cerca',\n searchbuttontext: 'Cerca',\n menuHomeButton: 'Home',\n menuGoBackButton: 'Go back',\n mainMenuButton: 'Menu',\n menuStartButton: 'Start',\n profileSelectionFlyoutHeading: 'Logged in as',\n unifiedLoginButton: 'Log in',\n unifiedMyPagesButton: 'My pages',\n home: 'Home',\n\n },\n 'nl': {\n searchlabel: 'Zoeken',\n searchplaceholder: 'Zoeken',\n searchbuttontext: 'Zoeken',\n menuHomeButton: 'Home',\n menuGoBackButton: 'Go back',\n mainMenuButton: 'Menu',\n menuStartButton: 'Start',\n profileSelectionFlyoutHeading: 'Logged in as',\n unifiedLoginButton: 'Log in',\n unifiedMyPagesButton: 'My pages',\n home: 'Home',\n },\n 'es': {\n searchplaceholder: 'Buscar',\n searchlabel: 'Buscar',\n searchbuttontext: 'Buscar',\n menuHomeButton: 'Inicio',\n menuGoBackButton: 'Go back',\n mainMenuButton: 'Menu',\n menuStartButton: 'Start',\n profileSelectionFlyoutHeading: 'Logged in as',\n unifiedLoginButton: 'Log in',\n unifiedMyPagesButton: 'My pages',\n home: 'Inicio',\n },\n 'fr': {\n searchplaceholder: 'Recherche',\n searchlabel: 'Recherche',\n searchbuttontext: 'Recherche',\n menuHomeButton: 'Accueil',\n menuGoBackButton: 'Go back',\n mainMenuButton: 'Menu',\n menuStartButton: 'Start',\n profileSelectionFlyoutHeading: 'Logged in as',\n unifiedLoginButton: 'Log in',\n unifiedMyPagesButton: 'My pages',\n home: 'Accueil',\n },\n 'tr': {\n searchlabel: 'Ara',\n searchplaceholder: 'Ara',\n searchbuttontext: 'Ara',\n menuHomeButton: 'Anasayfa',\n menuGoBackButton: 'Geri git',\n mainMenuButton: 'Menü',\n menuStartButton: 'Başlat',\n profileSelectionFlyoutHeading: 'Oturum açma adı',\n unifiedLoginButton: 'Oturum aç',\n unifiedMyPagesButton: 'Sayfalarım',\n home: 'Anasayfa',\n },\n 'pt': {\n searchlabel: 'Search',\n searchplaceholder: 'Search',\n searchbuttontext: 'Search',\n menuHomeButton: 'Página inicial',\n menuGoBackButton: 'Go back',\n mainMenuButton: 'Menu',\n menuStartButton: 'Start',\n profileSelectionFlyoutHeading: 'Logged in as',\n unifiedLoginButton: 'Log in',\n unifiedMyPagesButton: 'My pages',\n },\n 'pl': {\n searchlabel: 'Szukaj',\n searchplaceholder: 'Szukaj',\n searchbuttontext: 'Szukaj',\n menuHomeButton: 'Strona główna',\n menuGoBackButton: 'Powrót',\n mainMenuButton: 'Menu',\n menuStartButton: 'Początek',\n profileSelectionFlyoutHeading: 'Zalogowany(-a) jako',\n unifiedLoginButton: 'Logowanie',\n unifiedMyPagesButton: 'Moje strony',\n home: 'Strona główna',\n },\n 'pt-BR': {\n searchlabel: 'Buscar',\n searchplaceholder: 'Buscar',\n searchbuttontext: 'Buscar',\n menuHomeButton: 'Página inicial',\n menuGoBackButton: 'Voltar',\n mainMenuButton: 'Menu',\n menuStartButton: 'Iniciar',\n profileSelectionFlyoutHeading: 'Login efetuado como',\n unifiedLoginButton: 'Fazer login',\n unifiedMyPagesButton: 'Minhas páginas',\n },\n};\n","@import \"../../../globals/main.scss\";\n\n@import \"./pn-marketweb-siteheader-common.scss\";\n\nbody[data-siteheader-menuopen=\"true\"] {\n max-height: 100vh;\n overflow: hidden;\n @media screen and (min-width: $siteheader-media-smalldesktop) {\n max-height: initial;\n overflow: initial;\n }\n}\n\npn-marketweb-siteheader {\n display: block;\n background: $white;\n header {\n position: relative;\n z-index: 1000;\n display: flex;\n flex-flow: column;\n box-shadow: $siteheader-shadow-elevation8;\n flex-direction: row;\n justify-content: space-between;\n @media screen and (min-width: $siteheader-media-tablet) {\n flex-direction: column;\n justify-content: initial;\n }\n }\n\n .siteheader-row {\n display: flex;\n flex-flow: row;\n align-items: center;\n\n width: 100%;\n padding: 0 1.6rem;\n\n min-height: 2em;\n &:not(:last-child) {\n border-bottom: 0.1rem solid $gray50;\n }\n @media screen and (min-width: $siteheader-media-tablet) {\n justify-content: space-between;\n min-height: 3.2em;\n }\n }\n\n .siteheader-topright {\n display: flex;\n flex-direction: row;\n }\n\n .siteheader-logocontainer {\n display: flex;\n align-items: center;\n position: relative;\n min-height: 3em;\n background: $white;\n z-index: 1;\n\n @media screen and (min-width: $siteheader-media-tablet) {\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n }\n }\n .siteheader-logolink {\n height: 100%;\n max-height: 6.4rem;\n display: flex;\n align-items: center;\n &:hover,\n &:focus,\n &:active {\n box-shadow: none;\n }\n }\n\n .siteheader-row > pn-marketweb-siteheader-search {\n display: none;\n @media screen and (min-width: $siteheader-media-tablet) {\n display: block;\n max-width: 30rem;\n min-width: 23.3rem;\n width: 100%;\n }\n }\n\n .siteheader-row pn-button {\n button:hover {\n .pn-button-bg,\n .pn-button-bg::after {\n background-color: $blue50;\n }\n }\n }\n\n pn-spinner {\n display: none;\n }\n\n pn-button-dropdown:not(.hydrated) {\n .pn-button-dropdown-container {\n display: none;\n }\n }\n\n pn-button {\n button {\n font-weight: 400 !important;\n padding: 0.5rem !important;\n\n .pn-button-bg:after {\n border-radius: 0.8rem !important;\n }\n }\n }\n}\n\n.siteheader-topleft {\n pn-site-selector {\n padding: 1rem 0;\n display: none;\n @media screen and (min-width: $siteheader-media-tablet) {\n display: block;\n }\n @media screen and (min-width: $siteheader-media-smalldesktop) {\n margin-left: 1.3rem;\n }\n .pn-button-dropdown-label,\n &:is(a) {\n font-size: 0;\n pn-icon {\n font-size: initial;\n margin-left: 0;\n }\n @media screen and (min-width: $siteheader-media-smalldesktop) {\n font-size: initial;\n pn-icon {\n margin-left: 0.4em;\n }\n }\n }\n }\n}\n.siteheader-topright {\n @media screen and (min-width: $siteheader-media-smalldesktop) {\n margin-right: 1.6rem;\n }\n > pn-language-selector,\n > pn-marketweb-siteheader-login,\n > a {\n //pn-language-selector {\n padding: 1rem 0;\n display: none;\n align-self: center;\n @media screen and (min-width: $siteheader-media-tablet) {\n display: block;\n margin-left: 1rem;\n }\n @media screen and (min-width: $siteheader-media-smalldesktop) {\n margin-left: 1.6rem;\n }\n\n .pn-button-dropdown-label,\n &:is(a) {\n font-size: 0;\n pn-icon {\n font-size: initial;\n margin-left: 0;\n }\n @media screen and (min-width: $siteheader-media-smalldesktop) {\n font-size: initial;\n pn-icon {\n margin-left: 0.4em;\n }\n }\n }\n }\n}\n\n.siteheader-menu {\n max-width: 100%;\n width: 100%;\n overflow: visible;\n overflow-x: clip;\n @media screen and (min-width: $siteheader-media-smalldesktop) {\n margin-top: auto;\n overflow: visible;\n }\n pn-mainnav-link a[target] {\n &::after {\n content: none;\n }\n }\n\n pn-marketweb-siteheader-search {\n padding: 0.3rem 1.6rem;\n width: 100%;\n }\n [slot=\"top\"] pn-search-field {\n width: 100%;\n }\n}\n\n.siteheader-menu-footer {\n display: flex;\n flex-direction: column;\n align-items: center;\n > * {\n margin: 1.6rem;\n }\n}\n\n.header-wrapper[data-header-theme=\"dotcom\"] {\n & > pn-marketweb-siteheader {\n pn-button a {\n text-decoration: none;\n &:hover {\n text-decoration: none;\n }\n }\n\n & > header {\n background-color: $blue900;\n box-shadow: none;\n\n .siteheader-row:not(:last-child) {\n border-bottom: 0.1rem solid $blue900;\n }\n\n .siteheader-row pn-button button:hover {\n .pn-button-bg,\n .pn-button-bg::after {\n background-color: $blue700 !important;\n }\n }\n\n .siteheader-topleft {\n pn-site-selector .pn-button-dropdown-label {\n color: $white;\n pn-icon {\n svg > path {\n fill: $white;\n }\n }\n }\n\n button.pn-button-dropdown-label {\n &:hover {\n background-color: $blue700;\n }\n &:active {\n background-color: $blue400;\n }\n &:focus {\n background-color: $blue400;\n }\n }\n }\n\n .siteheader-logocontainer {\n background-color: $blue900;\n svg.siteheader-logo > path {\n fill: $blue400;\n }\n }\n\n .siteheader-topright {\n .siteheader-logindialog {\n svg > path {\n fill: $white;\n }\n }\n\n pn-language-selector {\n pn-icon {\n svg > path {\n fill: $white !important;\n }\n }\n }\n\n button {\n color: $white;\n\n &:hover {\n background-color: $blue700;\n }\n &:active {\n background-color: $blue700;\n }\n &:focus {\n background-color: $blue700;\n }\n }\n\n [slot=\"toprightend\"] {\n @media screen and (max-width: $siteheader-media-tablet) {\n display: none;\n }\n align-self: center;\n margin-left: 1rem;\n }\n }\n\n .siteheader-menu {\n .mainnav-toggle {\n button {\n background-color: $blue700;\n }\n }\n .first-level_icon {\n svg > path {\n fill: $white;\n }\n }\n }\n\n .siteheader-search form pn-search-field {\n input {\n background-color: $white;\n color: $blue900;\n border: 0.1rem solid $white;\n padding: 0.65rem 1.5rem;\n\n &:hover {\n border-color: $white;\n }\n &::placeholder {\n color: $blue900;\n }\n }\n }\n\n //main-nav-level\n nav.mainnav {\n background-color: $blue900;\n\n @media screen and (min-width: $siteheader-media-tablet) {\n top: 6.4em;\n }\n\n pn-mainnav-level {\n [slot=\"top\"].siteheader-menu-top {\n pn-marketweb-siteheader-search {\n padding-bottom: 0.5rem;\n background-color: $blue900;\n\n .button-container {\n border-top: 1px solid $white;\n border-bottom: 1px solid $white;\n border-right: 1px solid $white;\n border-top-right-radius: 50%;\n border-bottom-right-radius: 50%;\n\n button.clear {\n border: 2px solid $white;\n border-radius: 50%;\n padding: 0.5rem;\n }\n }\n }\n }\n\n .mainnav-level-header {\n .secondlevel-backbtn {\n pn-icon {\n svg > path {\n fill: $white;\n }\n }\n }\n }\n\n pn-mainnav-level[data-level=\"2\"] {\n .mainnav-level-header {\n pn-mainnav-link > a {\n &:hover {\n background-color: $blue400;\n }\n }\n }\n }\n\n pn-mainnav-list > pn-mainnav-link {\n button,\n a {\n background-color: $blue900;\n border-bottom: 0.1rem solid rgba(0, 93, 146, 0.5);\n &:hover {\n text-decoration: none;\n }\n @media screen and (min-width: 1024px) {\n border-bottom: none;\n }\n }\n }\n }\n\n pn-mainnav-level[data-level=\"1\"] {\n pn-mainnav-list > pn-mainnav-link {\n @media screen and (max-width: 1023px) {\n &:first-child {\n border-top: 0.1rem solid rgba(0, 93, 146, 0.5);\n }\n }\n\n & a,\n & button {\n color: $white;\n &:focus {\n outline: none;\n }\n }\n }\n }\n pn-mainnav-level:not([data-level=\"1\"]) {\n background-color: $blue900;\n pn-mainnav-list {\n color: $white;\n pn-mainnav-link > a {\n &:hover {\n background-color: $blue400;\n text-decoration: none;\n }\n }\n }\n }\n\n pn-marketweb-siteheader-login-linklist {\n ul li a:not(.pn-button) {\n color: $blue700;\n }\n ul li a:hover {\n color: $white;\n }\n }\n }\n\n [data-level=\"1\"] pn-mainnav-link pn-icon.first-level_arrow {\n svg > path {\n fill: $white;\n }\n }\n\n .siteheader-menu-footer {\n button {\n color: $white;\n &:hover {\n background-color: $blue700;\n }\n &:active {\n background-color: $blue700;\n }\n &:focus {\n background-color: $blue700;\n }\n\n svg > path {\n fill: $white;\n }\n }\n\n [slot=\"menu-footer-cta\"] {\n @media screen and (min-width: $siteheader-media-tablet) {\n display: none;\n }\n }\n }\n }\n }\n}\n\n.siteheader-menu-top-search {\n display: none;\n}\n\n.header-wrapper[data-header-theme=\"tpl\"],\n.header-wrapper[data-header-theme=\"dotcom\"] {\n @media screen and (min-width: $siteheader-media-tablet) {\n pn-site-selector .pn-button-dropdown-label {\n border-radius: 48px;\n }\n }\n\n .siteheader-row pn-button.pn-button-dropdown-label {\n .pn-button[data-variant=\"borderless\"][data-appearance=\"light\"] .pn-button-bg::after {\n background-color: $blue700 !important;\n }\n\n .pn-button[data-appearance=\"light\"] pn-icon .pn-icon-svg path {\n fill: $white !important;\n }\n\n button {\n .pn-button-text {\n color: $white !important;\n }\n }\n\n\n }\n}\n\n.header-wrapper[data-header-theme=\"tpl\"] {\n & > pn-marketweb-siteheader {\n pn-button a {\n text-decoration: none;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n [slot=\"header-bottom-button\"] {\n @media screen and (max-width: $siteheader-media-tablet) {\n display: none;\n }\n\n a {\n color: $blue900;\n font-weight: 500;\n font-size: 1.6rem;\n padding: 0.8rem 2.4rem;\n\n .pn-button-bg {\n background-color: $coral200;\n }\n\n .pn-button-content pn-icon svg > path {\n fill: $blue900;\n\n @media screen and (min-width: $siteheader-media-tablet) {\n fill: $white;\n }\n }\n\n &:hover {\n color: $white;\n\n .pn-button-bg {\n background-color: $blue900;\n transition: backgrond-color linear 1s;\n }\n\n .pn-button-content pn-icon svg > path {\n fill: $white;\n }\n }\n }\n }\n @media screen and (min-width: $siteheader-media-tablet) {\n .siteheader-row pn-button button:hover {\n .pn-button-bg,\n .pn-button-bg::after {\n background-color: $blue900;\n transition: initial;\n }\n }\n }\n\n & > header {\n .siteheader-row:not(:last-child) {\n background-color: $blue900;\n border-bottom: 0.1rem solid $blue900;\n }\n\n @media screen and (max-width: $siteheader-media-tablet) {\n .siteheader-row:last-child {\n background-color: $blue900;\n }\n }\n\n @media screen and (min-width: $siteheader-media-smalldesktop) {\n [data-level=\"1\"] pn-mainnav-link > button::before,\n [data-level=\"1\"] pn-mainnav-link > a::before {\n background-color: $coral200;\n }\n }\n\n [slot=\"siteheader-menu-top-button\"] {\n @media screen and (min-width: $siteheader-media-tablet) {\n display: none;\n }\n\n @media screen and (max-width: 415px) {\n display: none;\n }\n\n background: $blue900;\n display: flex;\n align-items: center;\n\n a {\n color: $blue900;\n font-weight: 500;\n\n .pn-button-bg {\n background-color: $coral200;\n }\n\n .pn-button-content pn-icon svg > path {\n fill: $blue900;\n\n @media screen and (min-width: $siteheader-media-tablet) {\n fill: $white;\n }\n }\n\n &:hover {\n color: $white;\n\n .pn-button-bg {\n background-color: $blue900;\n transition: backgrond-color linear 1s;\n }\n\n .pn-button-content pn-icon svg > path {\n fill: $white;\n }\n }\n }\n }\n\n a {\n color: $blue900;\n }\n\n pn-mainnav-link button {\n color: $blue900;\n\n pn-icon svg path {\n fill: $blue900;\n }\n }\n\n .siteheader-topleft {\n pn-site-selector .pn-button-dropdown-label {\n color: $white;\n\n pn-icon {\n svg > path {\n fill: $white;\n }\n }\n\n &:hover {\n background: $blue400;\n }\n }\n }\n\n button.pn-button-dropdown-label {\n &:hover {\n background-color: $blue900;\n }\n\n &:active {\n background-color: $blue900;\n }\n\n &:focus {\n background-color: $blue900;\n }\n }\n\n .siteheader-logocontainer {\n background-color: $blue900;\n\n svg.siteheader-logo > path {\n fill: $blue400;\n }\n }\n\n .siteheader-topright {\n .siteheader-logindialog {\n svg > path {\n fill: $white;\n }\n }\n\n pn-language-selector {\n pn-icon {\n svg > path {\n fill: $white !important;\n }\n }\n }\n\n button {\n color: $white;\n\n &:hover {\n background-color: $blue400;\n }\n\n &:active,\n &:focus {\n background-color: $blue900;\n }\n }\n\n margin-right: 0;\n align-self: center;\n margin-left: 1rem;\n }\n\n div.siteheader-menu-top-search {\n display: inline-block;\n margin-top: auto;\n margin-bottom: auto;\n width: fit-content;\n\n @media screen and (max-width: $siteheader-media-tablet) {\n display: none;\n }\n\n pn-search-field {\n justify-content: flex-end;\n min-width: inherit;\n }\n\n form {\n margin-right: 0;\n }\n\n form:not(:focus-within) .input-container {\n position: absolute;\n width: 100%;\n\n input {\n cursor: pointer;\n background-color: transparent;\n color: transparent;\n border: none;\n position: relative;\n z-index: 3;\n border-radius: 0;\n\n &::placeholder {\n color: transparent;\n }\n }\n }\n\n .input-container:focus-within {\n margin-left: 2rem;\n\n input {\n background-color: $white;\n color: $blue900;\n }\n }\n\n .siteheader-search pn-button button {\n width: fit-content;\n padding: 1rem 1.9rem;\n\n .pn-button-bg {\n background: $blue900;\n }\n }\n }\n\n @media screen and (min-width: $siteheader-media-tablet) {\n .siteheader-row:last-child pn-marketweb-siteheader-search {\n display: none;\n }\n }\n\n .siteheader-search form pn-search-field {\n input {\n background-color: $white;\n color: $blue900;\n\n &:hover {\n border-color: $white;\n }\n\n &::placeholder {\n color: $blue900;\n }\n }\n }\n\n .siteheader-menu-footer {\n [slot=\"menu-footer-cta\"] {\n display: none;\n }\n\n @media screen and (max-width: 415px) {\n [slot=\"menu-footer-cta\"] {\n display: block;\n color: $blue900;\n\n .pn-button-bg {\n background-color: $coral200;\n }\n\n .pn-button-content {\n font-weight: 500;\n color: $blue900;\n\n pn-icon svg > path {\n fill: $blue900;\n\n @media screen and (min-width: $siteheader-media-tablet) {\n fill: $white;\n }\n }\n }\n\n a:hover {\n color: $white;\n\n .pn-button-bg {\n background-color: $blue900;\n transition: backgrond-color linear 1s;\n }\n\n .pn-button-content pn-icon svg > path {\n fill: $white;\n }\n }\n }\n }\n\n @media screen and (max-width: 1024px) {\n pn-button-dropdown button:focus,\n pn-button-dropdown button:hover {\n color: $white;\n background-color: $blue400;\n box-shadow:\n 0 0 0 0.2rem #fff,\n 0 0 0 0.4rem $blue400;\n\n svg > path {\n fill: $white;\n }\n }\n }\n\n button {\n color: $white;\n\n &:hover {\n background-color: $blue700;\n }\n\n &:active {\n background-color: $blue400;\n }\n\n &:focus {\n background-color: $blue400;\n }\n\n svg > path {\n fill: $white;\n }\n\n @media screen and (max-width: 1024px) {\n color: $blue900;\n\n pn-icon svg > path {\n fill: $blue900;\n }\n }\n }\n\n [slot=\"menu-footer-cta\"] {\n @media screen and (min-width: $siteheader-media-tablet) {\n display: none;\n }\n }\n }\n }\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State, Watch } from '@stencil/core';\n\nimport { FetchHelper } from '../../../globals/FetchHelper';\nimport { MarketWebContextService } from '../../../globals/MarketWebContextService';\nimport { state as headerState } from './pn-marketweb-siteheader-store';\nimport {\n LanguageSelector,\n LanguageSelectorItem,\n LoginDialog,\n MenuItem,\n MenuSiteDefinition,\n PromotedMenuItem,\n SiteHeaderI18N,\n SiteHeaderSearch,\n SiteSelector,\n} from './pn-marketweb-siteheader-types';\nimport { translations } from './translations';\n\n/**\n * @slot topleft - Text\n * @slot logo - Text\n * @slot toprightstart - Text\n * @slot toprightend - Text\n * @slot siteheader-menu-top-button - Text\n * @slot menu-footer-cta - Text\n * @slot header-bottom-button - Text\n */\n@Component({\n tag: 'pn-marketweb-siteheader',\n styleUrl: 'pn-marketweb-siteheader.scss',\n})\nexport class PnMarketwebSiteheader {\n @Element() hostElement: Element;\n endpointPath = '/api/navigation/header';\n\n /** Specifies which market we want to show (se,dk,fi,no,com) */\n @Prop({ mutable: true, reflect: true }) market: string = null; //se\n /** Specifies which language we want to show (sv,da,fi,no,en) */\n @Prop({ mutable: true, reflect: true }) language: string = null; //sv\n /** Specifies the current site id (guid) */\n @Prop() siteid: string = null;\n /** Specifies which environment we're fetching data from. (production, preproduction, integration, localhost) */\n @Prop({ mutable: true, reflect: true }) environment: string = null; //sv\n /** Access token passed from backend */\n @Prop() userToken: string = '';\n /** User Fullname */\n @Prop() userFullname: string = '';\n /** User Logged in state from the backend */\n @Prop({ reflect: true }) userLoggedin: boolean = false;\n /** Specifies which endpoint domain we should load from */\n @Prop() endpoint: string = null;\n /** Hides the site selector if set to true*/\n @Prop({ mutable: true, reflect: true }) hideSiteSelector: boolean = false;\n /** Hides the \"home\" menu item in the navigation if set to true*/\n @Prop({ mutable: true, reflect: true }) hideHomeMenuItem: boolean = false;\n /** Hides the language selector if set to true*/\n @Prop({ mutable: true, reflect: true }) hideLanguageSelector: boolean = false;\n /** Hides the search form if set to true*/\n @Prop({ mutable: true, reflect: true }) hideSearch: boolean = false;\n /** Hides the login if set to true*/\n @Prop({ mutable: true, reflect: true }) hideLogin: boolean = false;\n /** If this is selected we will show the new profile selection dropdown instead of the login version */\n @Prop({ mutable: true, reflect: true }) showProfileSelection: boolean = false;\n /** if this is selected we will show the unified-login button aswell as a new look for dropdown menu */\n @Prop() showUnifiedLogin: boolean = false;\n\n /** Adjusts the menus URLs */\n @Prop() siteDomainInUrls: boolean = false;\n\n /** Autocomplete endpoint */\n @Prop() AutocompleteEndpoint: string = '';\n /** Forward session to backend */\n @Prop() sessionForward: boolean = false;\n /** If the component should use cached requests */\n @Prop() cache: boolean = false;\n /** Header search placeholder */\n @Prop() searchPlaceholder: string = '';\n\n /** Event based only language switch */\n @Prop({}) spaMode: boolean = false;\n\n /** Continiously check if a user is logged in **/\n @Prop({}) checkUserLoggedInStateInterval: number = 0;\n\n @Prop({}) useMarketwebLogin: boolean = false;\n\n @Prop({}) pageId?: string = '';\n\n @State() i18n: SiteHeaderI18N = {\n searchlabel: '',\n searchplaceholder: '',\n searchbuttontext: '',\n menuHomeButton: '',\n menuGoBackButton: '',\n mainMenuButton: '',\n menuStartButton: '',\n profileSelectionFlyoutHeading: '',\n unifiedLoginButton: '',\n unifiedMyPagesButton: '',\n home: 'Home'\n } as SiteHeaderI18N;\n\n @State() gotData: boolean = false;\n @State() fetchingData: boolean = false;\n @State() homePageLink: string = '/';\n\n // Menu state\n @State() menuItems: MenuItem[] = [];\n @State() siteDefinition: MenuSiteDefinition;\n\n // Search\n @State() search: SiteHeaderSearch = { AutocompleteEndpoint: this.AutocompleteEndpoint };\n\n // Site selector\n @State() siteSelector: SiteSelector = null;\n\n // Language Selector\n @State() languageSelector: LanguageSelector = null;\n @State() languageOptions: LanguageSelectorItem[] = [];\n\n // Login dialog\n @State() loginDialog: LoginDialog = null;\n\n @State() minimizeSearch: boolean = false;\n\n @State() loggedIn: boolean = false;\n\n // FetchHelper\n fetchHelper = new FetchHelper('siteheader');\n\n // // Login manager\n // @State() loginManager: MarketWebLoginManager = null;\n\n // Events\n @Event() changeLanguage: EventEmitter;\n // Events\n @Event() changeMarket: EventEmitter;\n\n componentWillLoad() {\n this.setInitialValues().then(() => {\n this.init();\n });\n }\n\n async setInitialValues(href = window.location.href) {\n const marketWebContextService = new MarketWebContextService(href);\n if (!this.market) {\n const resolvedMarket = await marketWebContextService.getMarket();\n this.market = resolvedMarket;\n }\n if (!this.language) {\n const resolvedMarket = await marketWebContextService.getLanguage();\n this.language = resolvedMarket;\n }\n if (!this.environment) {\n this.environment = await marketWebContextService.getEnvironmentName();\n }\n\n if (!this.endpoint && this.environment?.indexOf('local') === -1) {\n this.endpoint = await marketWebContextService.getEndpoint(this.environment, this.market);\n }\n if (!this.endpoint) {\n this.endpoint = '';\n }\n }\n\n async init() {\n this.setTranslations();\n await this.fetchData();\n window.setTimeout(() => {\n this.checkMenuOverflow();\n }, 50);\n }\n\n setTranslations() {\n if (this.language && translations[this.language]) {\n this.i18n = translations[this.language];\n }\n if (this.searchPlaceholder) {\n this.i18n.searchplaceholder = this.searchPlaceholder;\n }\n }\n\n @Listen('setLanguage')\n onLanguageSelectorChange(e) {\n this.language = e.detail;\n window.dispatchEvent(new CustomEvent('marketweb-languagechange', { detail: this.language }));\n }\n\n @Watch('language')\n onLanguageChange() {\n this.setTranslations();\n this.changeLanguage.emit(this.language);\n this.fetchData();\n }\n\n @Watch('market')\n onMarketChange() {\n this.changeMarket.emit(this.market);\n this.fetchData();\n }\n\n async fetchData() {\n if (this.endpoint === null || !this.market || !this.language) {\n // console.warn(`One or more values where not specified.\\nEndpoint: ${this.endpoint}\\nMarket: ${this.market}\\nLanguage: ${this.language}`)\n return;\n }\n this.fetchingData = true;\n const endpointBase = this.endpoint.lastIndexOf('/') === this.endpoint.length - 1 ? this.endpoint.substring(0, this.endpoint.length - 1) : this.endpoint;\n const fetchUrl = `${endpointBase}${this.endpointPath}?market=${this.market}&language=${this.language}&currentPage=${this.pageId}`;\n\n const data = (await this.fetchHelper.fetchJson(\n fetchUrl,\n {\n mode: 'cors',\n },\n this.cache,\n )) as any;\n\n // const data2 = JSON.parse('{\"query\":{\"market\":\"se\",\"language\":\"sv\",\"currentPage\":\"\"},\"sitedefinition\":{\"name\":\"Postnord Sweden\",\"url\":\"https://localhost:51547/\"},\"search\":{\"formActionUrl\":\"https://localhost:51547/sok/\",\"useAutocompleteInHeaderSearch\":true,\"hideSearchFromHeader\":false,\"preferredSiteId\":\"06bb4e57-cf10-4374-9e4d-34ae987eff2e\"},\"languageSelectorViewModel\":{\"currentLanguageNativeName \":\"Svenska\",\"languages\":[{\"twoLetterISOLanguageName\":\"en\",\"nativeName\":\"English\",\"isCurrent\":false},{\"twoLetterISOLanguageName\":\"sv\",\"nativeName\":\"Svenska\",\"isCurrent\":true},{\"twoLetterISOLanguageName\":\"da\",\"nativeName\":\"Dansk\",\"isCurrent\":false},{\"twoLetterISOLanguageName\":\"tr\",\"nativeName\":\"Türkçe\",\"isCurrent\":false}],\"hideLanguageSelectorFromHeader\":false},\"siteSelectorViewModel\":{\"siteSelectorButtonText\":\"postnord.se\",\"siteSelectorTitle\":\"PostNord\",\"currentSiteTitle\":\"postnord.se\",\"currentSiteDescription\":\"Tjänster och verktyg för att skicka och ta emot din post\",\"siteSelections\":[{\"linkText\":\"Portal\",\"linkDescription\":\"Hantera dina försändelser\",\"pageLink\":\"https://portal.postnord.com/\",\"openInNewWindow\":false,\"href\":\"https://portal.postnord.com/\"},{\"linkText\":\"postnord.com\",\"linkDescription\":\"Information om PostNord Koncernen\",\"pageLink\":\"/link/7d10839b295946bbb54bebcb289f3aff.aspx\",\"openInNewWindow\":false,\"href\":\"https://com-inte.postnord.com/sv/\"}],\"hideSiteSelectorFromHeader\":false},\"loginViewModel\":{\"loginMenuLinks\":[{\"linkText\":\"Handla online\",\"pageLink\":\"/login?language=sv&returnUrl=https://se-inte.postnord.com/handla-online\",\"openInNewWindow\":false,\"primaryLinkApperance\":false,\"linkType\":\"regularlink\",\"href\":\"/login?language=sv&returnUrl=https://se-inte.postnord.com/handla-online\"},{\"linkText\":\"Business portal\",\"pageLink\":\"https://atportal.postnord.com/api/unified-login/backend/authorization?redirectionUrl=https://se-inte.postnord.com\",\"openInNewWindow\":false,\"primaryLinkApperance\":false,\"linkType\":\"regularlink\",\"href\":\"https://atportal.postnord.com/api/unified-login/backend/authorization?redirectionUrl=https://se-inte.postnord.com\"},{\"linkText\":\"Ombudsbutiken\",\"pageLink\":\"https://se-inte.postnord.com/login?returnUrl=https://se-inte.postnord.com/handla-online&type=agent\",\"openInNewWindow\":false,\"primaryLinkApperance\":false,\"linkType\":\"regularlink\",\"href\":\"https://se-inte.postnord.com/login?returnUrl=https://se-inte.postnord.com/handla-online&type=agent\"}],\"loggedInLinks\":[{\"linkText\":\"Logga ut\",\"pageLink\":\"http://window.location.href/?logout\",\"openInNewWindow\":false,\"primaryLinkApperance\":false,\"linkType\":null,\"href\":\"http://window.location.href/?logout\"}],\"overrideLoginMenu\":false,\"loginMenuLinkText\":\"Logga in\",\"countryCode\":\"SE\",\"locale\":\"sv\",\"loginUrl\":\"https://portal.postnord.com/login?language=sv\",\"registerUrl\":\"https://portal.postnord.com/createaccount?market=SE\",\"loggedInButtonText\":\"My PostNord\",\"loginTitle\":\"Logga in direkt på:\",\"loginLinkText\":\"Logga in\",\"createLoginLinkText\":\"Skapa nytt konto\",\"hideLoginFromHeader\":false,\"showProfileSelection\":true,\"checkUserLoginStateInterval\":20000,\"showUnifiedLogin\":true,\"loginInfo\":\"\",\"eshopStartPageUrl\":\"/handla-online/\"},\"mainMenu\":{\"menuItems\":[{\"name\":\"Privat\",\"href\":\"/privat2/\",\"id\":\"102118\",\"selected\":false,\"open\":false,\"children\":[{\"name\":\"Skicka\",\"href\":\"/privat2/skicka/\",\"id\":\"102119\",\"selected\":false,\"open\":false,\"children\":[],\"navigationHeading\":\"\",\"promotedMenuItemsHeader\":\"\",\"promotedMenuItems\":[],\"hasChildren\":false,\"linkTarget\":\"\",\"trackingId\":\"skicka102119\",\"level\":2},{\"name\":\"Ta emot\",\"href\":\"/privat2/ta-emot/\",\"id\":\"102135\",\"selected\":false,\"open\":false,\"children\":[],\"navigationHeading\":\"\",\"promotedMenuItemsHeader\":\"\",\"promotedMenuItems\":[],\"hasChildren\":false,\"linkTarget\":\"\",\"trackingId\":\"taemot102135\",\"level\":2},{\"name\":\"Priser och villkor\",\"href\":\"/privat2/priser-och-villkor/\",\"id\":\"102162\",\"selected\":false,\"open\":false,\"children\":[],\"navigationHeading\":\"\",\"promotedMenuItemsHeader\":\"\",\"promotedMenuItems\":[],\"hasChildren\":false,\"linkTarget\":\"\",\"trackingId\":\"priserochvillkor102162\",\"level\":2},{\"name\":\"Förberedelser\",\"href\":\"/privat2/forberedelser/\",\"id\":\"102173\",\"selected\":false,\"open\":false,\"children\":[],\"navigationHeading\":\"\",\"promotedMenuItemsHeader\":\"\",\"promotedMenuItems\":[],\"hasChildren\":false,\"linkTarget\":\"\",\"trackingId\":\"frberedelser102173\",\"level\":2}],\"navigationHeading\":\"\",\"promotedMenuItemsHeader\":\"Populärt\",\"promotedMenuItems\":[{\"linkText\":\"PostNord App\",\"pageLink\":\"/link/05dcebb0c20b4b56806f4736d83b773d.aspx\",\"href\":\"https://localhost:51547/vara-verktyg/postnord-app/\",\"openInNewWindow\":false},{\"linkText\":\"Digitalt frimärke\",\"pageLink\":\"https://portal.postnord.com/skickadirekt/m/?productId=800\",\"href\":\"https://portal.postnord.com/skickadirekt/m/?productId=800\",\"openInNewWindow\":false},{\"linkText\":\"Köp frakt\",\"pageLink\":\"https://portal.postnord.com/skickadirekt/m/\",\"href\":\"https://portal.postnord.com/skickadirekt/m/\",\"openInNewWindow\":false},{\"linkText\":\"Sök utdelningsdag\",\"pageLink\":\"/link/701d85d2a8924b7a8da0dd86f049debe.aspx\",\"href\":\"https://localhost:51547/vara-verktyg/sok-utdelningsdag/\",\"openInNewWindow\":false},{\"linkText\":\"Paketbox\",\"pageLink\":\"/link/aca5b66a6f6c45ae97ecd7d5f176d512.aspx\",\"href\":\"https://localhost:51547/privat/ta-emot/hamta/hamta-paket-i-paketbox/\",\"openInNewWindow\":false},{\"linkText\":\"Skicka brev och paket\",\"pageLink\":\"/link/8b60c612e9824ccb905fc260c50f69f5.aspx\",\"href\":\"https://localhost:51547/privat/skicka/brev-och-paket/\",\"openInNewWindow\":false}],\"hasChildren\":true,\"linkTarget\":\"\",\"trackingId\":\"privat102118\",\"level\":1},{\"name\":\"Företag\",\"href\":\"/foretag2/\",\"id\":\"102743\",\"selected\":false,\"open\":false,\"children\":[{\"name\":\"Skicka\",\"href\":\"/foretag2/skicka/\",\"id\":\"102744\",\"selected\":false,\"open\":false,\"children\":[],\"navigationHeading\":\"\",\"promotedMenuItemsHeader\":\"\",\"promotedMenuItems\":[],\"hasChildren\":false,\"linkTarget\":\"\",\"trackingId\":\"skicka102744\",\"level\":2},{\"name\":\"Ta emot\",\"href\":\"/foretag2/ta-emot/\",\"id\":\"102826\",\"selected\":false,\"open\":false,\"children\":[],\"navigationHeading\":\"\",\"promotedMenuItemsHeader\":\"\",\"promotedMenuItems\":[],\"hasChildren\":false,\"linkTarget\":\"\",\"trackingId\":\"taemot102826\",\"level\":2},{\"name\":\"Priser och villkor\",\"href\":\"/foretag2/priser-och-villkor/\",\"id\":\"102845\",\"selected\":false,\"open\":false,\"children\":[],\"navigationHeading\":\"\",\"promotedMenuItemsHeader\":\"\",\"promotedMenuItems\":[],\"hasChildren\":false,\"linkTarget\":\"\",\"trackingId\":\"priserochvillkor102845\",\"level\":2},{\"name\":\"Förberedelser\",\"href\":\"/foretag2/forberedelser/\",\"id\":\"102855\",\"selected\":false,\"open\":false,\"children\":[],\"navigationHeading\":\"\",\"promotedMenuItemsHeader\":\"\",\"promotedMenuItems\":[],\"hasChildren\":false,\"linkTarget\":\"\",\"trackingId\":\"frberedelser102855\",\"level\":2},{\"name\":\"Företagslösningar\",\"href\":\"/foretag2/foretagslosningar/\",\"id\":\"102883\",\"selected\":false,\"open\":false,\"children\":[],\"navigationHeading\":\"\",\"promotedMenuItemsHeader\":\"\",\"promotedMenuItems\":[],\"hasChildren\":false,\"linkTarget\":\"\",\"trackingId\":\"fretagslsningar102883\",\"level\":2}],\"navigationHeading\":\"\",\"promotedMenuItemsHeader\":\"Populärt\",\"promotedMenuItems\":[{\"linkText\":\"Bli avtalskund\",\"pageLink\":\"/link/1fb879eb737747f2afc442df11ff99b5.aspx\",\"href\":\"https://localhost:51547/kundservice/bli-avtalskund/\",\"openInNewWindow\":false},{\"linkText\":\"PEX Bud\",\"pageLink\":\"/link/b1209ba46788420a8e9b5c7f06e570ad.aspx?productId=800\",\"href\":\"https://localhost:51547/foretag/skicka-forsandelser/pex-bud/?productId=800\",\"openInNewWindow\":false},{\"linkText\":\"Köp frakt\",\"pageLink\":\"https://portal.postnord.com/shippingtoolpro\",\"href\":\"https://portal.postnord.com/shippingtoolpro\",\"openInNewWindow\":true},{\"linkText\":\"Portal Business\",\"pageLink\":\"/link/c97df117dc9c427f90b1e95c1fa8caae.aspx\",\"href\":\"https://localhost:51547/vara-verktyg/postnord-portal/\",\"openInNewWindow\":false},{\"linkText\":\"Skicka brev och paket\",\"pageLink\":\"/link/a65c6b42681f4230b927f776bfc8662a.aspx\",\"href\":\"https://localhost:51547/foretag/skicka-forsandelser/brev-och-vykort/\",\"openInNewWindow\":false}],\"hasChildren\":true,\"linkTarget\":\"\",\"trackingId\":\"fretag102743\",\"level\":1},{\"name\":\"Handla online\",\"href\":\"/handla-online/\",\"id\":\"57674\",\"selected\":false,\"open\":false,\"children\":[],\"navigationHeading\":\"\",\"promotedMenuItemsHeader\":\"\",\"promotedMenuItems\":[],\"hasChildren\":false,\"linkTarget\":\"\",\"trackingId\":\"handlaonline57674\",\"level\":1},{\"name\":\"Kundservice\",\"href\":\"/kundservice-faq/\",\"id\":\"167\",\"selected\":false,\"open\":false,\"children\":[],\"navigationHeading\":\"\",\"promotedMenuItemsHeader\":\"\",\"promotedMenuItems\":[],\"hasChildren\":false,\"linkTarget\":\"\",\"trackingId\":\"kundservice167\",\"level\":1},{\"name\":\"Handla online temp redirect\",\"href\":\"/handla-online-new/\",\"id\":\"74849\",\"selected\":false,\"open\":false,\"children\":[],\"navigationHeading\":\"\",\"promotedMenuItemsHeader\":\"\",\"promotedMenuItems\":[],\"hasChildren\":false,\"linkTarget\":\"\",\"trackingId\":\"handlaonlinetempredirect74849\",\"level\":1}]}}');\n // console.log(data2);\n await this.setStateFromData(data);\n }\n\n getLanguageVersionUrl(item: LanguageSelectorItem) {\n if (this.spaMode) {\n return null;\n }\n const alternativeTag = document.querySelector(`link[rel=\"alternate\"][hreflang=\"${item.twoLetterISOLanguageName}\"]`);\n\n if (alternativeTag) {\n return alternativeTag.getAttribute('href');\n }\n const siteUrl = this.siteDefinition.url;\n // Add trailing slash to domain if it's missing\n return siteUrl + (siteUrl.lastIndexOf('/') !== siteUrl.length - 1 ? '/' : '') + item.twoLetterISOLanguageName;\n }\n\n async setStateFromData(data: any) {\n if (typeof data !== 'object') {\n console.warn('Data was not valid', data);\n }\n\n // Set site definition\n this.siteDefinition = data.sitedefinition;\n if (headerState.loginManager) {\n headerState.loginManager.setSiteUrl(this.siteDefinition.url);\n }\n\n let updatedMenuItems = [];\n // Set navigation information\n if (this.siteDomainInUrls) {\n updatedMenuItems = (data.mainMenu.menuItems as MenuItem[]).map(item => {\n return this.adjustMenuItemUrls(item);\n });\n } else {\n updatedMenuItems = data.mainMenu.menuItems as MenuItem[];\n }\n\n // Create the \"Home\" link\n if ((!updatedMenuItems[0] || updatedMenuItems[0]?.name !== this.i18n.menuHomeButton) && !this.hideHomeMenuItem) {\n updatedMenuItems.unshift({\n href: this.siteDefinition.url,\n name: this.i18n.menuHomeButton,\n id: 'homelink',\n open: false,\n selected: false,\n children: [],\n } as MenuItem);\n }\n this.menuItems = updatedMenuItems;\n // Set search\n this.search = { ...data.search, ...{ AutocompleteEndpoint: this.AutocompleteEndpoint } };\n\n // Set site selector\n this.siteSelector = data.siteSelectorViewModel;\n\n // Set language selector\n this.languageSelector = data.languageSelectorViewModel;\n this.setLanguageOptions();\n\n let loginDialog = data.loginViewModel as LoginDialog;\n\n if (loginDialog && this.siteDomainInUrls) {\n loginDialog.loggedInLinks = loginDialog.loggedInLinks.map(item => {\n item.href = this.adjustHref(item.href);\n return item;\n });\n loginDialog.loginMenuLinks = loginDialog.loginMenuLinks.map(item => {\n item.href = this.adjustHref(item.href);\n return item;\n });\n }\n\n this.loginDialog = loginDialog;\n\n await this.spaModeAdjustments();\n this.gotData = true;\n this.fetchingData = true;\n this.homePageLink = this.siteDefinition?.url ?? document.location.hostname;\n\n window.setTimeout(() => {\n this.checkMenuOverflow();\n }, 100);\n }\n\n adjustMenuItemUrls(item: MenuItem) {\n item.href = this.adjustHref(item.href);\n if (item.children && item.children.length > 0) {\n let adjustedItems = item.children.map(item => {\n return this.adjustMenuItemUrls(item);\n });\n item.children = adjustedItems;\n }\n return item as MenuItem;\n }\n\n adjustHref(href: string) {\n if (href.indexOf('http') === 0) {\n return href;\n }\n const domainUrl =\n this.siteDefinition.url.lastIndexOf('/') === this.siteDefinition.url.length - 1\n ? this.siteDefinition.url.substring(0, this.siteDefinition.url.length - 1)\n : this.siteDefinition.url;\n\n return this.removeDoubleLanguage(domainUrl + href);\n }\n\n removeDoubleLanguage(url: string) {\n let languageSegment = this.language.toLocaleLowerCase() + \"/\";\n let doubleLanguageSegment = \"/\" + languageSegment + languageSegment;\n\n if(url.includes(doubleLanguageSegment)){\n return url.replace(doubleLanguageSegment, \"/\" + languageSegment);\n }\n\n return url;\n }\n\n setLanguageOptions() {\n if (!this.languageSelector || !this.languageSelector.languages) {\n return;\n }\n const hrefLangsTags = Array.prototype.slice.call(document.querySelectorAll('link[rel=\"alternate\"][hreflang]')) ?? [];\n const hrefLangs = hrefLangsTags.map(tag => {\n let hrefLangValue = tag.getAttribute('hreflang');\n if (hrefLangValue.indexOf('en-') !== -1 || hrefLangValue.indexOf('en_') !== -1) {\n hrefLangValue = hrefLangValue.substring(0, 2);\n }\n return hrefLangValue;\n });\n let languageOptions = []; // Reset language options\n\n this.languageSelector.languages.map((languageOption: LanguageSelectorItem) => {\n // In case there are language links present on the page we only show languages that have those tags\n if (hrefLangs && hrefLangs.length > 0) {\n if (hrefLangs.includes(languageOption.twoLetterISOLanguageName)) {\n languageOptions.push(languageOption);\n }\n } else {\n languageOptions.push(languageOption);\n }\n });\n this.languageOptions = languageOptions; // Replace existing language options so we don't trigger a event change on every push.\n }\n\n async spaModeAdjustments() {\n if (!this.spaMode) {\n return;\n }\n\n return;\n }\n\n @Listen('loginStateChange')\n onLoginStateChange(e) {\n if (e.detail?.loggedIn && e.detail?.token) {\n this.loggedIn = e.detail?.loggedIn === true;\n if (this.sessionForward) {\n try {\n //fetch('/api/userprofile/sync?token=' + e.detail.token);\n } catch (e) {}\n }\n }\n }\n\n promotedItemId(item: PromotedMenuItem) {\n return 'promo-' + item.linkText.replace(/[^A-Za-z0-9.\\\\\\/]/gim, '');\n }\n\n @Listen('resize', { target: 'window' })\n handleResize() {\n requestAnimationFrame(() => {\n this.checkMenuOverflow();\n });\n }\n\n checkMenuOverflow() {\n const row = this.hostElement.querySelectorAll('.siteheader-row')[1] as HTMLElement;\n if (!row) {\n return;\n }\n const firstMenuLevel = row.querySelector('pn-mainnav-level') as HTMLElement;\n if (!firstMenuLevel) {\n return;\n }\n const parent = firstMenuLevel.parentElement;\n\n if (parent.tagName.toLocaleLowerCase() !== 'nav') {\n return;\n }\n const parentWidth = parent.scrollWidth;\n const elmWidth = firstMenuLevel.clientWidth;\n const isOverFlowed = parentWidth < elmWidth;\n\n if (isOverFlowed && this.minimizeSearch === false) {\n this.minimizeSearch = true;\n }\n }\n\n adjustSiteSelectorUrl(href: string) {\n if (!this.loggedIn) {\n return href;\n }\n const loginDomains = ['portal.postnord.com'];\n const matchedHref = loginDomains.filter(domain => {\n return href.indexOf(domain) !== -1;\n });\n if (matchedHref.length === 0) {\n return href;\n }\n if (headerState.loginManager) {\n return headerState.loginManager.getLoginUrl(href);\n }\n return href;\n }\n\n private getFallbackValue(value: string, fallback: string): string {\n return value && value.trim() !== '' ? value : fallback;\n } \n\n render() {\n const i18n = {\n ...this.i18n,\n home: this.getFallbackValue(this.i18n.home, 'Home')\n };\n\n return (\n <Host language={this.language} market={this.market} environment={this.environment}>\n <header>\n <div class=\"siteheader-row\">\n <div class=\"siteheader-topleft\">\n <slot name=\"topleft\"></slot>\n {this.gotData && this.siteSelector && !this.hideSiteSelector && (\n <pn-site-selector language={this.language} buttontext={this.siteSelector?.currentSiteTitle ?? 'postnord'}>\n {this.gotData && this.siteSelector?.currentSiteTitle && (\n <pn-site-selector-item heading={this.siteSelector.currentSiteTitle + ' '} description={this.siteSelector.currentSiteDescription}></pn-site-selector-item>\n )}\n {this.gotData &&\n this.siteSelector?.siteSelections &&\n this.siteSelector.siteSelections.map(site => (\n <pn-site-selector-item\n heading={site.linkText + ' '}\n description={site.linkDescription}\n url={this.adjustSiteSelectorUrl(site.href)}\n newwindow={site.openInNewWindow}\n ></pn-site-selector-item>\n ))}\n </pn-site-selector>\n )}\n </div>\n <div class=\"siteheader-logocontainer\">\n <a href={this.homePageLink} title={i18n.home} aria-label={i18n.home} class=\"siteheader-logolink\">\n <slot name=\"logo\">\n <svg class=\"siteheader-logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"12.7rem\" height=\"2.4rem\" viewBox=\"0 0 141.73 26.65\" role=\"img\" aria-label=\"PostNord\">\n <path\n d=\"M108.84,13.35c0,6.34-5.17,9-10,9S89,19.76,89,13.63c0-6.28,5.08-9,10-9S108.84,7.25,108.84,13.35Zm-6.56.18a3.4,3.4,0,1,0-6.8,0,3.29,3.29,0,0,0,3.42,3.41A3.24,3.24,0,0,0,102.28,13.54Zm-83,0c0,4.83-3.32,8.82-8.49,8.82a6.54,6.54,0,0,1-4.65-1.57v5.86H0V5.16H6.17V6.8a6.43,6.43,0,0,1,5.11-2.18C16.41,4.62,19.31,8.58,19.31,13.54Zm-6.53,0A3.27,3.27,0,0,0,9.4,10,3.28,3.28,0,0,0,6,13.54,3.29,3.29,0,0,0,9.4,16.95,3.24,3.24,0,0,0,12.78,13.54Zm103.69,0.27c0-2.54,1.54-3.32,3.6-3.32a6.56,6.56,0,0,1,2.08.3L122.3,5.1a3.92,3.92,0,0,0-1.45-.18c-3.45,0-4.38,2.18-4.38,2.18V5.16H110.3V21.84h6.17v-8ZM141.73,0V21.84h-6.16V20.21a6.43,6.43,0,0,1-5.11,2.18c-5.14,0-8-4-8-8.91s3.32-8.82,8.49-8.82a6.54,6.54,0,0,1,4.65,1.57v-5Zm-6,13.48a3.28,3.28,0,0,0-3.41-3.41A3.24,3.24,0,0,0,129,13.47,3.4,3.4,0,1,0,135.75,13.47ZM81.35,4.62c-3.6,0-4.9,2.18-4.9,2.18V5.16H70.29V21.84h6.16V13.29c0-2.11.79-3.08,2.69-3.08s2.18,1.57,2.18,3.57v8.07h6.22V11.6C87.55,7,85.34,4.62,81.35,4.62ZM64.07,1.42H57.9V21.84h6.16V10.36H67l2.81-5.2H64.07V1.42ZM50.26,11.21c-2-.3-2.87-0.3-2.87-1.09s0.81-.94,2.42-0.94a16.15,16.15,0,0,1,5.11.91L56,5.41a24.56,24.56,0,0,0-6.13-.75c-5.89,0-9,2.27-9,5.89,0,2.81,1.66,4.47,6.53,5.11,2.06,0.27,2.81.39,2.81,1.15s-0.82,1-2.24,1a16.67,16.67,0,0,1-6-1.3L40.77,21.3a22.14,22.14,0,0,0,6.68,1c6.35,0,9.28-2.24,9.28-5.89C56.72,13.54,55.15,12,50.26,11.21ZM40.19,13.35c0,6.34-5.17,9-10,9s-9.82-2.6-9.82-8.73c0-6.28,5.08-9,10-9S40.19,7.25,40.19,13.35Zm-6.56.18a3.4,3.4,0,1,0-6.8,0,3.28,3.28,0,0,0,3.41,3.41A3.24,3.24,0,0,0,33.63,13.54Z\"\n fill=\"#00A0D6\"\n transform=\"translate(0 0)\"\n ></path>\n </svg>\n </slot>\n </a>\n </div>\n <div class=\"siteheader-topright\">\n <slot name=\"toprightstart\"></slot>\n {this.gotData && this.loginDialog && !this.hideLogin && (\n <pn-marketweb-siteheader-login\n token={this.userToken}\n siteUrl={this.siteDefinition.url}\n fullname={this.userFullname}\n loggedin={this.userLoggedin}\n loginDialog={this.loginDialog}\n endpoint={this.endpoint}\n i18n={this.i18n}\n showProfileSelection={this.showProfileSelection}\n showUnifiedLogin={this.showUnifiedLogin}\n check-user-logged-in-state-interval={this.checkUserLoggedInStateInterval}\n useMarketwebLogin={this.useMarketwebLogin}\n environment={this.environment}\n ></pn-marketweb-siteheader-login>\n )}\n\n {this.gotData && this.languageOptions && this.languageOptions.length && !this.hideLanguageSelector && (\n <pn-language-selector value={this.language}>\n {this.languageOptions.map(language => (\n <pn-language-selector-option\n name={language.nativeName}\n code={language.twoLetterISOLanguageName}\n selected={language.isCurrent}\n url={this.getLanguageVersionUrl(language)}\n ></pn-language-selector-option>\n ))}\n </pn-language-selector>\n )}\n <slot name=\"toprightend\"></slot>\n <div class=\"siteheader-menu-top-search\">\n <pn-marketweb-siteheader-search\n language={this.language}\n siteid={this.siteid}\n search={this.search}\n hide-search={this.hideSearch}\n i18n={this.i18n}\n icononly={true}\n ></pn-marketweb-siteheader-search>\n </div>\n </div>\n </div>\n <slot name=\"siteheader-menu-top-button\"></slot>\n <div class=\"siteheader-row\">\n <div class=\"siteheader-menu\">\n {this.gotData && this.menuItems && (\n <pn-mainnav\n market={this.market}\n language={this.language}\n onMenuOpenChange={e => {\n document.body.setAttribute('data-siteheader-menuopen', e.detail + '');\n }}\n >\n <pn-mainnav-level>\n <pn-mainnav-list>\n {this.menuItems.map(item => (\n <pn-mainnav-link name={item.name} href={item.href} itemid={item.id} target={item.linkTarget ?? '_self'} linkid={item.trackingId}>\n {((item.promotedMenuItems && item.promotedMenuItems.length > 0) || (item.children && item.children.length > 0)) && (\n <pn-mainnav-level label={item.name}>\n {item.children.length > 0 && (\n <pn-mainnav-list heading={item.navigationHeading ?? ''}>\n {item.children.map(childitem => (\n <pn-mainnav-link\n name={childitem.name}\n href={childitem.href}\n target={childitem.linkTarget ?? '_self'}\n linkid={childitem.trackingId}\n ></pn-mainnav-link>\n ))}\n </pn-mainnav-list>\n )}\n {item.promotedMenuItems && item.promotedMenuItems.length > 0 && (\n <pn-mainnav-list heading={item.promotedMenuItemsHeader}>\n {item.promotedMenuItems.map(childitem => (\n <pn-mainnav-link\n href={childitem.href}\n name={childitem.linkText}\n target={childitem.openInNewWindow ? '_blank' : '_self'}\n linkid={this.promotedItemId(childitem) + item.id}\n ></pn-mainnav-link>\n ))}\n </pn-mainnav-list>\n )}\n </pn-mainnav-level>\n )}\n </pn-mainnav-link>\n ))}\n </pn-mainnav-list>\n <div slot=\"footer\" class=\"siteheader-menu-footer\">\n <slot name=\"menu-footer-cta\"></slot>\n {this.gotData && this.loginDialog && !this.hideLogin && (\n <pn-marketweb-siteheader-login\n token={this.userToken}\n siteUrl={this.siteDefinition.url}\n loginDialog={this.loginDialog}\n endpoint={this.endpoint}\n fullname={this.userFullname}\n loggedin={this.userLoggedin}\n i18n={this.i18n}\n showProfileSelection={this.showProfileSelection}\n showUnifiedLogin={this.showUnifiedLogin}\n environment={this.environment}\n check-user-logged-in-state-interval={this.checkUserLoggedInStateInterval}\n useMarketwebLogin = {this.useMarketwebLogin}\n ></pn-marketweb-siteheader-login>\n )}\n\n {this.gotData && this.languageOptions && this.languageOptions.length && !this.hideLanguageSelector && (\n <pn-language-selector value={this.language}>\n {this.languageOptions.map(language => (\n <pn-language-selector-option\n name={language.nativeName}\n code={language.twoLetterISOLanguageName}\n selected={language.isCurrent}\n url={this.getLanguageVersionUrl(language)}\n ></pn-language-selector-option>\n ))}\n </pn-language-selector>\n )}\n {!this.hideSiteSelector && (\n <pn-site-selector language={this.language}>\n {this.gotData && this.siteSelector?.currentSiteTitle && (\n <pn-site-selector-item heading={this.siteSelector.currentSiteTitle} description={this.siteSelector.currentSiteDescription}></pn-site-selector-item>\n )}\n {this.gotData &&\n this.siteSelector?.siteSelections &&\n this.siteSelector.siteSelections.map(site => (\n <pn-site-selector-item\n heading={site.linkText}\n description={site.linkDescription}\n url={site.pageLink}\n newwindow={site.openInNewWindow}\n ></pn-site-selector-item>\n ))}\n </pn-site-selector>\n )}\n </div>\n <div slot=\"top\" class=\"siteheader-menu-top\">\n <pn-marketweb-siteheader-search\n language={this.language}\n siteid={this.siteid}\n search={this.search}\n hide-search={this.hideSearch}\n i18n={this.i18n}\n ></pn-marketweb-siteheader-search>\n </div>\n </pn-mainnav-level>\n </pn-mainnav>\n )}\n </div>\n\n <pn-marketweb-siteheader-search\n language={this.language}\n siteid={this.siteid}\n primary={true}\n search={this.search}\n hide-search={this.hideSearch}\n show-only-link={this.minimizeSearch}\n i18n={this.i18n}\n ></pn-marketweb-siteheader-search>\n <slot name=\"header-bottom-button\"></slot>\n </div>\n </header>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}