@postnord/pn-marketweb-components 1.0.21 → 1.0.26
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/loader.cjs.js +1 -1
- package/cjs/pn-filter-checkbox.cjs.entry.js +1 -0
- package/cjs/pn-language-selector_9.cjs.entry.js +31 -17
- package/cjs/pn-market-web-components.cjs.js +1 -1
- package/cjs/pn-marketweb-siteheader.cjs.entry.js +29 -8
- package/cjs/pn-site-footer_2.cjs.entry.js +2 -2
- package/collection/components/input/pn-filter-checkbox/pn-filter-checkbox.js +1 -0
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.js +45 -6
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-loginmanager.js +17 -12
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.js +77 -8
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.stories.js +19 -4
- package/collection/components/navigation/pn-language-selector/pn-language-selector.js +19 -2
- package/collection/components/navigation/pn-mainnav/pn-mainnav-level.css +1 -0
- package/collection/components/navigation/pn-site-footer/pn-site-footer-col.css +6 -1
- package/collection/components/navigation/pn-site-footer/pn-site-footer.css +5 -0
- package/collection/components/navigation/pn-site-footer/site-footer.stories.js +78 -0
- package/custom-elements/index.js +66 -30
- package/esm/loader.js +1 -1
- package/esm/pn-filter-checkbox.entry.js +1 -0
- package/esm/pn-language-selector_9.entry.js +32 -18
- package/esm/pn-market-web-components.js +1 -1
- package/esm/pn-marketweb-siteheader.entry.js +29 -8
- package/esm/pn-site-footer_2.entry.js +2 -2
- package/esm-es5/loader.js +1 -1
- package/esm-es5/pn-filter-checkbox.entry.js +1 -1
- package/esm-es5/pn-language-selector_9.entry.js +1 -1
- package/esm-es5/pn-market-web-components.js +1 -1
- package/esm-es5/pn-marketweb-siteheader.entry.js +1 -1
- package/esm-es5/pn-site-footer_2.entry.js +1 -1
- package/package.json +2 -2
- package/pn-market-web-components/p-015a433e.entry.js +1 -0
- package/pn-market-web-components/p-25bdf3f8.system.js +1 -1
- package/pn-market-web-components/p-441c80e7.system.entry.js +1 -0
- package/pn-market-web-components/{p-8d62c46f.system.entry.js → p-4feb3557.system.entry.js} +1 -1
- package/pn-market-web-components/{p-c9e9854e.entry.js → p-68139d23.entry.js} +1 -1
- package/pn-market-web-components/p-88ab0d91.system.entry.js +1 -0
- package/pn-market-web-components/p-b27c3539.system.entry.js +1 -0
- package/pn-market-web-components/p-c2b8aa29.entry.js +1 -0
- package/pn-market-web-components/p-d7441208.entry.js +1 -0
- package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
- package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.d.ts +3 -0
- package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-loginmanager.d.ts +8 -3
- package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.d.ts +8 -1
- package/types/components/navigation/pn-language-selector/pn-language-selector.d.ts +2 -0
- package/types/components.d.ts +20 -0
- package/pn-market-web-components/p-2da203c9.system.entry.js +0 -1
- package/pn-market-web-components/p-363a27ff.entry.js +0 -1
- package/pn-market-web-components/p-582dbd9c.entry.js +0 -1
- package/pn-market-web-components/p-6299f92f.system.entry.js +0 -1
- package/pn-market-web-components/p-8c072330.entry.js +0 -1
- package/pn-market-web-components/p-ecfabe25.system.entry.js +0 -1
package/cjs/loader.cjs.js
CHANGED
|
@@ -14,7 +14,7 @@ const patchEsm = () => {
|
|
|
14
14
|
const defineCustomElements = (win, options) => {
|
|
15
15
|
if (typeof window === 'undefined') return Promise.resolve();
|
|
16
16
|
return patchEsm().then(() => {
|
|
17
|
-
return index.bootstrapLazy([["pn-marketweb-siteheader.cjs",[[4,"pn-marketweb-siteheader",{"market":[1537],"language":[1537],"environment":[1537],"endpoint":[1],"hideSiteSelector":[1540,"hide-site-selector"],"hideLanguageSelector":[1540,"hide-language-selector"],"hideSearch":[1540,"hide-search"],"hideLogin":[1540,"hide-login"],"i18n":[32],"gotData":[32],"fetchingData":[32],"menuItems":[32],"siteDefinition":[32],"search":[32],"siteSelector":[32],"languageSelector":[32],"loginDialog":[32],"minimizeSearch":[32]},[[9,"resize","handleResize"]]]]],["pn-find-service-and-price.cjs",[[0,"pn-find-service-and-price",{"source":[1],"language":[1025],"market":[1025],"filteredItems":[32],"postagetype":[32],"weight":[32],"weightvalue":[32],"deliveryscope":[32],"sourceData":[32]}]]],["pn-product-pricelist.cjs",[[4,"pn-product-pricelist",{"source":[1],"language":[1025],"market":[1025],"productid":[1],"filteredItems":[32],"sourceData":[32],"gotData":[32],"loading":[32],"postagetype":[32],"weight":[32],"weightvalue":[32]}]]],["pn-marketweb-sitefooter.cjs",[[0,"pn-marketweb-sitefooter",{"market":[1537],"language":[1537],"environment":[1537],"endpoint":[1],"siteDefinition":[32],"footerContent":[32],"i18n":[32],"gotData":[32],"fetchingData":[32]}]]],["pn-filter-checkbox.cjs",[[1,"pn-filter-checkbox",{"value":[520],"name":[1],"checkboxid":[1],"disabled":[4],"checked":[4],"indeterminate":[1028]},[[0,"change","handlechange"]]]]],["pn-filter-search.cjs",[[1,"pn-filter-search",{"disabled":[4],"placeholder":[1],"inputid":[1],"name":[1],"autocomplete":[1],"value":[1],"label":[1],"loading":[4],"button":[1],"light":[4]},[[0,"input","inputHandler"]]]]],["pn-sidenav.cjs",[[4,"pn-sidenav",{"language":[1],"navLabel":[1,"nav-label"],"i18n":[32]},[[0,"language","setLanguage"],[0,"openSubMenuLevelChange","onOpenSubMenuLevelChange"]]]]],["pn-sidenav-level.cjs",[[4,"pn-sidenav-level",{"level":[32],"levelId":[32],"isOpen":[32],"parentName":[32],"parentHref":[32],"parentLinkId":[32],"alignment":[32]}]]],["pn-sidenav-link.cjs",[[4,"pn-sidenav-link",{"name":[1],"href":[1],"target":[1],"linkid":[1],"icon":[1],"current":[4],"levelId":[32],"open":[32],"hasChildren":[32]}]]],["pn-product-pricelist-result.cjs",[[0,"pn-product-pricelist-result",{"item":[1040],"shownitems":[16],"weightText":[32]}]]],["pn-choice-button_2.cjs",[[0,"pn-find-service-and-price-result",{"item":[1040],"shownitems":[16],"weightText":[32]}],[4,"pn-choice-button",{"value":[520],"name":[1],"choiceid":[1],"type":[1],"disabled":[4],"checked":[4],"indeterminate":[1028]},[[0,"change","handlechange"]]]]],["pn-site-footer_2.cjs",[[4,"pn-site-footer",{"url":[1]}],[4,"pn-site-footer-col"]]],["pn-mainnav-link.cjs",[[4,"pn-mainnav-link",{"name":[1],"href":[1],"target":[1],"linkid":[1],"levelId":[32],"open":[32],"hasChildren":[32]}]]],["pn-language-selector_9.cjs",[[4,"pn-mainnav-level",{"level":[32],"levelId":[32],"isOpen":[32],"parentName":[32],"parentHref":[32],"parentLinkId":[32],"listCount":[32],"alignment":[32]}],[4,"pn-language-selector",{"value":[
|
|
17
|
+
return index.bootstrapLazy([["pn-marketweb-siteheader.cjs",[[4,"pn-marketweb-siteheader",{"market":[1537],"language":[1537],"environment":[1537],"endpoint":[1],"hideSiteSelector":[1540,"hide-site-selector"],"hideLanguageSelector":[1540,"hide-language-selector"],"hideSearch":[1540,"hide-search"],"hideLogin":[1540,"hide-login"],"sessionForward":[4,"session-forward"],"spaMode":[4,"spa-mode"],"i18n":[32],"gotData":[32],"fetchingData":[32],"menuItems":[32],"siteDefinition":[32],"search":[32],"siteSelector":[32],"languageSelector":[32],"loginDialog":[32],"minimizeSearch":[32]},[[0,"setLanguage","onLanguageSelectorChange"],[0,"loginStateChange","onLoginStateChange"],[9,"resize","handleResize"]]]]],["pn-find-service-and-price.cjs",[[0,"pn-find-service-and-price",{"source":[1],"language":[1025],"market":[1025],"filteredItems":[32],"postagetype":[32],"weight":[32],"weightvalue":[32],"deliveryscope":[32],"sourceData":[32]}]]],["pn-product-pricelist.cjs",[[4,"pn-product-pricelist",{"source":[1],"language":[1025],"market":[1025],"productid":[1],"filteredItems":[32],"sourceData":[32],"gotData":[32],"loading":[32],"postagetype":[32],"weight":[32],"weightvalue":[32]}]]],["pn-marketweb-sitefooter.cjs",[[0,"pn-marketweb-sitefooter",{"market":[1537],"language":[1537],"environment":[1537],"endpoint":[1],"siteDefinition":[32],"footerContent":[32],"i18n":[32],"gotData":[32],"fetchingData":[32]}]]],["pn-filter-checkbox.cjs",[[1,"pn-filter-checkbox",{"value":[520],"name":[1],"checkboxid":[1],"disabled":[4],"checked":[4],"indeterminate":[1028]},[[0,"change","handlechange"]]]]],["pn-filter-search.cjs",[[1,"pn-filter-search",{"disabled":[4],"placeholder":[1],"inputid":[1],"name":[1],"autocomplete":[1],"value":[1],"label":[1],"loading":[4],"button":[1],"light":[4]},[[0,"input","inputHandler"]]]]],["pn-sidenav.cjs",[[4,"pn-sidenav",{"language":[1],"navLabel":[1,"nav-label"],"i18n":[32]},[[0,"language","setLanguage"],[0,"openSubMenuLevelChange","onOpenSubMenuLevelChange"]]]]],["pn-sidenav-level.cjs",[[4,"pn-sidenav-level",{"level":[32],"levelId":[32],"isOpen":[32],"parentName":[32],"parentHref":[32],"parentLinkId":[32],"alignment":[32]}]]],["pn-sidenav-link.cjs",[[4,"pn-sidenav-link",{"name":[1],"href":[1],"target":[1],"linkid":[1],"icon":[1],"current":[4],"levelId":[32],"open":[32],"hasChildren":[32]}]]],["pn-product-pricelist-result.cjs",[[0,"pn-product-pricelist-result",{"item":[1040],"shownitems":[16],"weightText":[32]}]]],["pn-choice-button_2.cjs",[[0,"pn-find-service-and-price-result",{"item":[1040],"shownitems":[16],"weightText":[32]}],[4,"pn-choice-button",{"value":[520],"name":[1],"choiceid":[1],"type":[1],"disabled":[4],"checked":[4],"indeterminate":[1028]},[[0,"change","handlechange"]]]]],["pn-site-footer_2.cjs",[[4,"pn-site-footer",{"url":[1]}],[4,"pn-site-footer-col"]]],["pn-mainnav-link.cjs",[[4,"pn-mainnav-link",{"name":[1],"href":[1],"target":[1],"linkid":[1],"levelId":[32],"open":[32],"hasChildren":[32]}]]],["pn-language-selector_9.cjs",[[4,"pn-mainnav-level",{"level":[32],"levelId":[32],"isOpen":[32],"parentName":[32],"parentHref":[32],"parentLinkId":[32],"listCount":[32],"alignment":[32]}],[4,"pn-language-selector",{"value":[1537],"selectedLanguageName":[32],"options":[32],"i18n":[32]}],[0,"pn-language-selector-option",{"name":[1],"code":[1],"url":[1],"selected":[4],"currentLanguage":[1,"current-language"]}],[4,"pn-mainnav",{"market":[1],"language":[1],"navigationId":[1,"navigation-id"],"openMenu":[1028,"open-menu"],"navLabel":[1,"nav-label"]},[[0,"language","setLanguage"],[0,"market","setMarket"],[0,"menuLanguageChange","onLanguageChange"],[0,"setmenuopenstate","setMenuOpenState"],[0,"openMenuLevelChange","onOpenMenuLevelChange"]]],[4,"pn-mainnav-list",{"heading":[1],"linkCount":[32]}],[0,"pn-marketweb-siteheader-login",{"endpoint":[1],"i18n":[8,"i-1-8n"],"emitEvents":[4,"emit-events"],"loginDialog":[1040],"loginManager":[32],"loggedIn":[32],"toggleButtonText":[32]}],[0,"pn-marketweb-siteheader-search",{"i18n":[8,"i-1-8n"],"showOnlyLink":[1028,"show-only-link"],"hideSearch":[1028,"hide-search"],"search":[1040]}],[4,"pn-site-selector",{"buttontext":[1537],"heading":[1537],"language":[1537],"i18n":[32]}],[0,"pn-site-selector-item",{"url":[1],"heading":[1],"description":[1],"newwindow":[4]}]]],["pn-product-tile_3.cjs",[[4,"pn-product-tile"],[0,"pn-product-tile-info",{"label":[1],"text":[1],"icon":[1]}],[0,"pn-product-tile-price",{"label":[1],"amount":[1],"currency":[1],"url":[1]}]]]], options);
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
20
|
|
|
@@ -37,6 +37,7 @@ let PnFilterCheckbox = class {
|
|
|
37
37
|
let outsideInput = this.hostElement.querySelector("input.hidden-" + this.checkboxid);
|
|
38
38
|
if (outsideInput) {
|
|
39
39
|
outsideInput.value = (checkboxInput.checked) ? this.value : "";
|
|
40
|
+
outsideInput.dispatchEvent(new CustomEvent("change", { detail: outsideInput }));
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
checkAndSetIndeterminateState() {
|
|
@@ -29,6 +29,7 @@ const pnLanguageSelectorCss = ".languageselector{position:relative}.languagesele
|
|
|
29
29
|
let PnlanguageSelector = class {
|
|
30
30
|
constructor(hostRef) {
|
|
31
31
|
index.registerInstance(this, hostRef);
|
|
32
|
+
this.setLanguage = index.createEvent(this, "setLanguage", 7);
|
|
32
33
|
/* Current language code */
|
|
33
34
|
this.value = "";
|
|
34
35
|
this.selectedLanguageName = "";
|
|
@@ -68,6 +69,7 @@ let PnlanguageSelector = class {
|
|
|
68
69
|
onSetCurrentLanguage(option) {
|
|
69
70
|
this.value = option.code;
|
|
70
71
|
this.selectedLanguageName = option.name;
|
|
72
|
+
this.setLanguage.emit(this.value);
|
|
71
73
|
}
|
|
72
74
|
setTranslations() {
|
|
73
75
|
if (translations$1[this.value]) {
|
|
@@ -223,7 +225,7 @@ let PnMainnav = class {
|
|
|
223
225
|
};
|
|
224
226
|
PnMainnav.style = pnMainnavCss;
|
|
225
227
|
|
|
226
|
-
const pnMainnavLevelCss = "pn-mainnav-level{display:block}pn-mainnav-level[data-level=\"1\"]{width:100%;right:0;overflow-y:scroll;overflow-x:hidden;-ms-flex:1;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;-webkit-transform:translateX(100vw);transform:translateX(100vw);-webkit-transition:-webkit-transform 0.2s 0s;transition:-webkit-transform 0.2s 0s;transition:transform 0.2s 0s;transition:transform 0.2s 0s, -webkit-transform 0.2s 0s;-webkit-transition-property:visibility, -webkit-transform;transition-property:visibility, -webkit-transform;transition-property:transform, visibility;transition-property:transform, visibility, -webkit-transform;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]{-webkit-transform:translateX(0);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%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}}pn-mainnav-level[data-level=\"2\"] a{color:#005D92;text-decoration:none}pn-mainnav-level [slot=top]{display:-ms-flexbox;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}.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%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-level=\"2\"] .mainnav-level-header>pn-mainnav-link>a{font-size:2.4rem}";
|
|
228
|
+
const pnMainnavLevelCss = "pn-mainnav-level{display:block}pn-mainnav-level[data-level=\"1\"]{width:100%;right:0;overflow-y:scroll;overflow-x:hidden;-ms-flex:1;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;-webkit-transform:translateX(100vw);transform:translateX(100vw);-webkit-transition:-webkit-transform 0.2s 0s;transition:-webkit-transform 0.2s 0s;transition:transform 0.2s 0s;transition:transform 0.2s 0s, -webkit-transform 0.2s 0s;-webkit-transition-property:visibility, -webkit-transform;transition-property:visibility, -webkit-transform;transition-property:transform, visibility;transition-property:transform, visibility, -webkit-transform;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]{-webkit-transform:translateX(0);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%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}}pn-mainnav-level[data-level=\"2\"] a{color:#005D92;text-decoration:none}pn-mainnav-level [slot=top]{display:-ms-flexbox;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;-ms-scroll-chaining: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%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-level=\"2\"] .mainnav-level-header>pn-mainnav-link>a{font-size:2.4rem}";
|
|
227
229
|
|
|
228
230
|
let PnMainnavLevel = class {
|
|
229
231
|
constructor(hostRef) {
|
|
@@ -376,13 +378,15 @@ class PNLoginManager {
|
|
|
376
378
|
this.endpoint = options.endpoint ? options.endpoint : `${window.location.protocol}//${window.location.host}`;
|
|
377
379
|
(_a = this.storagePrefix) !== null && _a !== void 0 ? _a : (this.storagePrefix = options.storagePrefix);
|
|
378
380
|
}
|
|
379
|
-
init() {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
this.
|
|
381
|
+
init(checkParameters = true) {
|
|
382
|
+
if (checkParameters) {
|
|
383
|
+
this.checkParameters();
|
|
384
|
+
this.checkExpireTime();
|
|
385
|
+
if (this.store.get(this.keys.token) && !this.store.get(this.keys.user)) {
|
|
386
|
+
this.fetchUserInfo();
|
|
387
|
+
}
|
|
388
|
+
this.loginStateChange();
|
|
384
389
|
}
|
|
385
|
-
this.loginStateChange();
|
|
386
390
|
}
|
|
387
391
|
isLoggedIn() {
|
|
388
392
|
const isLoggedIn = (this.store.get(this.keys.token) && this.store.get(this.keys.user)) ? true : false;
|
|
@@ -426,10 +430,11 @@ class PNLoginManager {
|
|
|
426
430
|
const params = new URLSearchParams(window.location.search);
|
|
427
431
|
if (params.get("oneTimeCode")) {
|
|
428
432
|
const oneTimeCode = params.get("oneTimeCode");
|
|
429
|
-
this.
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
+
this.exchangeToken(oneTimeCode).then(() => {
|
|
434
|
+
const currentHref = window.location.href;
|
|
435
|
+
const paramPrefix = (currentHref.indexOf('?oneTimeCode') !== -1) ? "?" : "&";
|
|
436
|
+
history.replaceState({}, document.querySelector('title').innerText, currentHref.replace(`${paramPrefix}oneTimeCode=${oneTimeCode}`, ''));
|
|
437
|
+
});
|
|
433
438
|
}
|
|
434
439
|
}
|
|
435
440
|
async fetchUserInfo() {
|
|
@@ -465,7 +470,10 @@ class PNLoginManager {
|
|
|
465
470
|
this.store.remove(this.keys.expire);
|
|
466
471
|
this.store.remove(this.keys.expireDate);
|
|
467
472
|
}
|
|
468
|
-
|
|
473
|
+
getToken() {
|
|
474
|
+
return this.store.get(this.keys.token);
|
|
475
|
+
}
|
|
476
|
+
async exchangeToken(oneTimeCode) {
|
|
469
477
|
this.clearUserData();
|
|
470
478
|
const response = await fetch(`${this.getBaseUrl()}${this.endpoints.tokenExchangeEndpoint}?oneTimeCode=${oneTimeCode}`);
|
|
471
479
|
const { token } = await response.json();
|
|
@@ -505,8 +513,10 @@ const pnMarketwebSiteheaderLoginCss = "pn-marketweb-siteheader-login{padding:1re
|
|
|
505
513
|
let PnMarketwebSiteheaderLogin = class {
|
|
506
514
|
constructor(hostRef) {
|
|
507
515
|
index.registerInstance(this, hostRef);
|
|
516
|
+
this.loginStateChange = index.createEvent(this, "loginStateChange", 7);
|
|
508
517
|
/** Specifies which endpoint domain we should load from */
|
|
509
518
|
this.endpoint = "";
|
|
519
|
+
this.emitEvents = true;
|
|
510
520
|
// Login dialog
|
|
511
521
|
this.loginDialog = null;
|
|
512
522
|
this.loginManager = null;
|
|
@@ -515,12 +525,13 @@ let PnMarketwebSiteheaderLogin = class {
|
|
|
515
525
|
}
|
|
516
526
|
componentWillLoad() {
|
|
517
527
|
this.loginManager = new PNLoginManager({ endpoint: this.endpoint, eventTarget: this.hostElement });
|
|
528
|
+
this.hostElement["loginmanager"] = this.loginManager;
|
|
529
|
+
this.hostElement.addEventListener(this.loginManager.events.loginstatechange, this.onLoginStateChange.bind(this));
|
|
518
530
|
this.init();
|
|
519
531
|
}
|
|
520
532
|
async init() {
|
|
521
533
|
this.toggleButtonText = this.loginDialog.loginMenuLinkText;
|
|
522
|
-
this.
|
|
523
|
-
this.loginManager.init();
|
|
534
|
+
this.loginManager.init(this.emitEvents);
|
|
524
535
|
this.setToggleButtonText();
|
|
525
536
|
}
|
|
526
537
|
setToggleButtonText() {
|
|
@@ -538,8 +549,11 @@ let PnMarketwebSiteheaderLogin = class {
|
|
|
538
549
|
}
|
|
539
550
|
}
|
|
540
551
|
onLoginStateChange(e) {
|
|
541
|
-
this.loggedIn
|
|
542
|
-
|
|
552
|
+
if (this.loggedIn !== e.detail && this.emitEvents) {
|
|
553
|
+
this.loggedIn = e.detail;
|
|
554
|
+
this.loginStateChange.emit({ loggedIn: this.loggedIn, token: this.loginManager.getToken() });
|
|
555
|
+
this.setToggleButtonText();
|
|
556
|
+
}
|
|
543
557
|
}
|
|
544
558
|
render() {
|
|
545
559
|
var _a, _b, _c;
|
|
@@ -557,7 +571,7 @@ let PnMarketwebSiteheaderLogin = class {
|
|
|
557
571
|
:
|
|
558
572
|
index.h("div", null, index.h("ul", null, this.loginDialog.loggedInLinks.map((link) => {
|
|
559
573
|
const isLogoutLink = link.href.indexOf('logout');
|
|
560
|
-
const href = (isLogoutLink) ? this.loginManager.getLogoutUrl(link.href.replace('logout', '')) : link.href;
|
|
574
|
+
const href = (isLogoutLink) ? this.loginManager.getLogoutUrl(link.href.replace('logout', '').replace('http://window.location.href/?', '').replace('https://window.location.href/?', '')) : link.href;
|
|
561
575
|
return (index.h("li", null, index.h("a", Object.assign({ href: href }, (link.openInNewWindow && { target: '_blank' })), index.h("pn-button", { appearance: (link.primaryLinkApperance ? "dark" : "light"), onClick: () => {
|
|
562
576
|
if (isLogoutLink) {
|
|
563
577
|
this.loginManager.clearUserData();
|
|
@@ -55,5 +55,5 @@ const patchCloneNodeFix = (HTMLElementPrototype) => {
|
|
|
55
55
|
};
|
|
56
56
|
|
|
57
57
|
patchBrowser().then(options => {
|
|
58
|
-
return index.bootstrapLazy([["pn-marketweb-siteheader.cjs",[[4,"pn-marketweb-siteheader",{"market":[1537],"language":[1537],"environment":[1537],"endpoint":[1],"hideSiteSelector":[1540,"hide-site-selector"],"hideLanguageSelector":[1540,"hide-language-selector"],"hideSearch":[1540,"hide-search"],"hideLogin":[1540,"hide-login"],"i18n":[32],"gotData":[32],"fetchingData":[32],"menuItems":[32],"siteDefinition":[32],"search":[32],"siteSelector":[32],"languageSelector":[32],"loginDialog":[32],"minimizeSearch":[32]},[[9,"resize","handleResize"]]]]],["pn-find-service-and-price.cjs",[[0,"pn-find-service-and-price",{"source":[1],"language":[1025],"market":[1025],"filteredItems":[32],"postagetype":[32],"weight":[32],"weightvalue":[32],"deliveryscope":[32],"sourceData":[32]}]]],["pn-product-pricelist.cjs",[[4,"pn-product-pricelist",{"source":[1],"language":[1025],"market":[1025],"productid":[1],"filteredItems":[32],"sourceData":[32],"gotData":[32],"loading":[32],"postagetype":[32],"weight":[32],"weightvalue":[32]}]]],["pn-marketweb-sitefooter.cjs",[[0,"pn-marketweb-sitefooter",{"market":[1537],"language":[1537],"environment":[1537],"endpoint":[1],"siteDefinition":[32],"footerContent":[32],"i18n":[32],"gotData":[32],"fetchingData":[32]}]]],["pn-filter-checkbox.cjs",[[1,"pn-filter-checkbox",{"value":[520],"name":[1],"checkboxid":[1],"disabled":[4],"checked":[4],"indeterminate":[1028]},[[0,"change","handlechange"]]]]],["pn-filter-search.cjs",[[1,"pn-filter-search",{"disabled":[4],"placeholder":[1],"inputid":[1],"name":[1],"autocomplete":[1],"value":[1],"label":[1],"loading":[4],"button":[1],"light":[4]},[[0,"input","inputHandler"]]]]],["pn-sidenav.cjs",[[4,"pn-sidenav",{"language":[1],"navLabel":[1,"nav-label"],"i18n":[32]},[[0,"language","setLanguage"],[0,"openSubMenuLevelChange","onOpenSubMenuLevelChange"]]]]],["pn-sidenav-level.cjs",[[4,"pn-sidenav-level",{"level":[32],"levelId":[32],"isOpen":[32],"parentName":[32],"parentHref":[32],"parentLinkId":[32],"alignment":[32]}]]],["pn-sidenav-link.cjs",[[4,"pn-sidenav-link",{"name":[1],"href":[1],"target":[1],"linkid":[1],"icon":[1],"current":[4],"levelId":[32],"open":[32],"hasChildren":[32]}]]],["pn-product-pricelist-result.cjs",[[0,"pn-product-pricelist-result",{"item":[1040],"shownitems":[16],"weightText":[32]}]]],["pn-choice-button_2.cjs",[[0,"pn-find-service-and-price-result",{"item":[1040],"shownitems":[16],"weightText":[32]}],[4,"pn-choice-button",{"value":[520],"name":[1],"choiceid":[1],"type":[1],"disabled":[4],"checked":[4],"indeterminate":[1028]},[[0,"change","handlechange"]]]]],["pn-site-footer_2.cjs",[[4,"pn-site-footer",{"url":[1]}],[4,"pn-site-footer-col"]]],["pn-mainnav-link.cjs",[[4,"pn-mainnav-link",{"name":[1],"href":[1],"target":[1],"linkid":[1],"levelId":[32],"open":[32],"hasChildren":[32]}]]],["pn-language-selector_9.cjs",[[4,"pn-mainnav-level",{"level":[32],"levelId":[32],"isOpen":[32],"parentName":[32],"parentHref":[32],"parentLinkId":[32],"listCount":[32],"alignment":[32]}],[4,"pn-language-selector",{"value":[
|
|
58
|
+
return index.bootstrapLazy([["pn-marketweb-siteheader.cjs",[[4,"pn-marketweb-siteheader",{"market":[1537],"language":[1537],"environment":[1537],"endpoint":[1],"hideSiteSelector":[1540,"hide-site-selector"],"hideLanguageSelector":[1540,"hide-language-selector"],"hideSearch":[1540,"hide-search"],"hideLogin":[1540,"hide-login"],"sessionForward":[4,"session-forward"],"spaMode":[4,"spa-mode"],"i18n":[32],"gotData":[32],"fetchingData":[32],"menuItems":[32],"siteDefinition":[32],"search":[32],"siteSelector":[32],"languageSelector":[32],"loginDialog":[32],"minimizeSearch":[32]},[[0,"setLanguage","onLanguageSelectorChange"],[0,"loginStateChange","onLoginStateChange"],[9,"resize","handleResize"]]]]],["pn-find-service-and-price.cjs",[[0,"pn-find-service-and-price",{"source":[1],"language":[1025],"market":[1025],"filteredItems":[32],"postagetype":[32],"weight":[32],"weightvalue":[32],"deliveryscope":[32],"sourceData":[32]}]]],["pn-product-pricelist.cjs",[[4,"pn-product-pricelist",{"source":[1],"language":[1025],"market":[1025],"productid":[1],"filteredItems":[32],"sourceData":[32],"gotData":[32],"loading":[32],"postagetype":[32],"weight":[32],"weightvalue":[32]}]]],["pn-marketweb-sitefooter.cjs",[[0,"pn-marketweb-sitefooter",{"market":[1537],"language":[1537],"environment":[1537],"endpoint":[1],"siteDefinition":[32],"footerContent":[32],"i18n":[32],"gotData":[32],"fetchingData":[32]}]]],["pn-filter-checkbox.cjs",[[1,"pn-filter-checkbox",{"value":[520],"name":[1],"checkboxid":[1],"disabled":[4],"checked":[4],"indeterminate":[1028]},[[0,"change","handlechange"]]]]],["pn-filter-search.cjs",[[1,"pn-filter-search",{"disabled":[4],"placeholder":[1],"inputid":[1],"name":[1],"autocomplete":[1],"value":[1],"label":[1],"loading":[4],"button":[1],"light":[4]},[[0,"input","inputHandler"]]]]],["pn-sidenav.cjs",[[4,"pn-sidenav",{"language":[1],"navLabel":[1,"nav-label"],"i18n":[32]},[[0,"language","setLanguage"],[0,"openSubMenuLevelChange","onOpenSubMenuLevelChange"]]]]],["pn-sidenav-level.cjs",[[4,"pn-sidenav-level",{"level":[32],"levelId":[32],"isOpen":[32],"parentName":[32],"parentHref":[32],"parentLinkId":[32],"alignment":[32]}]]],["pn-sidenav-link.cjs",[[4,"pn-sidenav-link",{"name":[1],"href":[1],"target":[1],"linkid":[1],"icon":[1],"current":[4],"levelId":[32],"open":[32],"hasChildren":[32]}]]],["pn-product-pricelist-result.cjs",[[0,"pn-product-pricelist-result",{"item":[1040],"shownitems":[16],"weightText":[32]}]]],["pn-choice-button_2.cjs",[[0,"pn-find-service-and-price-result",{"item":[1040],"shownitems":[16],"weightText":[32]}],[4,"pn-choice-button",{"value":[520],"name":[1],"choiceid":[1],"type":[1],"disabled":[4],"checked":[4],"indeterminate":[1028]},[[0,"change","handlechange"]]]]],["pn-site-footer_2.cjs",[[4,"pn-site-footer",{"url":[1]}],[4,"pn-site-footer-col"]]],["pn-mainnav-link.cjs",[[4,"pn-mainnav-link",{"name":[1],"href":[1],"target":[1],"linkid":[1],"levelId":[32],"open":[32],"hasChildren":[32]}]]],["pn-language-selector_9.cjs",[[4,"pn-mainnav-level",{"level":[32],"levelId":[32],"isOpen":[32],"parentName":[32],"parentHref":[32],"parentLinkId":[32],"listCount":[32],"alignment":[32]}],[4,"pn-language-selector",{"value":[1537],"selectedLanguageName":[32],"options":[32],"i18n":[32]}],[0,"pn-language-selector-option",{"name":[1],"code":[1],"url":[1],"selected":[4],"currentLanguage":[1,"current-language"]}],[4,"pn-mainnav",{"market":[1],"language":[1],"navigationId":[1,"navigation-id"],"openMenu":[1028,"open-menu"],"navLabel":[1,"nav-label"]},[[0,"language","setLanguage"],[0,"market","setMarket"],[0,"menuLanguageChange","onLanguageChange"],[0,"setmenuopenstate","setMenuOpenState"],[0,"openMenuLevelChange","onOpenMenuLevelChange"]]],[4,"pn-mainnav-list",{"heading":[1],"linkCount":[32]}],[0,"pn-marketweb-siteheader-login",{"endpoint":[1],"i18n":[8,"i-1-8n"],"emitEvents":[4,"emit-events"],"loginDialog":[1040],"loginManager":[32],"loggedIn":[32],"toggleButtonText":[32]}],[0,"pn-marketweb-siteheader-search",{"i18n":[8,"i-1-8n"],"showOnlyLink":[1028,"show-only-link"],"hideSearch":[1028,"hide-search"],"search":[1040]}],[4,"pn-site-selector",{"buttontext":[1537],"heading":[1537],"language":[1537],"i18n":[32]}],[0,"pn-site-selector-item",{"url":[1],"heading":[1],"description":[1],"newwindow":[4]}]]],["pn-product-tile_3.cjs",[[4,"pn-product-tile"],[0,"pn-product-tile-info",{"label":[1],"text":[1],"icon":[1]}],[0,"pn-product-tile-price",{"label":[1],"amount":[1],"currency":[1],"url":[1]}]]]], options);
|
|
59
59
|
});
|
|
@@ -79,6 +79,10 @@ let PnMarketwebSiteheader = class {
|
|
|
79
79
|
this.hideSearch = false;
|
|
80
80
|
/** Hides the login if set to true*/
|
|
81
81
|
this.hideLogin = false;
|
|
82
|
+
/** Forward session to backend */
|
|
83
|
+
this.sessionForward = false;
|
|
84
|
+
/** Event based only language switch */
|
|
85
|
+
this.spaMode = false;
|
|
82
86
|
this.gotData = false;
|
|
83
87
|
this.fetchingData = false;
|
|
84
88
|
// Menu state
|
|
@@ -119,11 +123,6 @@ let PnMarketwebSiteheader = class {
|
|
|
119
123
|
this.endpoint = "";
|
|
120
124
|
}
|
|
121
125
|
}
|
|
122
|
-
// TODO
|
|
123
|
-
//* Expose market and language attributes when changed internally
|
|
124
|
-
//* Business logic to select market and language depending on domains / html tag.
|
|
125
|
-
//* Property to stop language change from changeing url, throw an event instead.
|
|
126
|
-
//* Fetch new data when langauge or market is changed
|
|
127
126
|
async init() {
|
|
128
127
|
this.setTranslations();
|
|
129
128
|
await this.fetchData();
|
|
@@ -134,6 +133,9 @@ let PnMarketwebSiteheader = class {
|
|
|
134
133
|
this.i18n = translations[this.language];
|
|
135
134
|
}
|
|
136
135
|
}
|
|
136
|
+
onLanguageSelectorChange(e) {
|
|
137
|
+
this.language = e.detail;
|
|
138
|
+
}
|
|
137
139
|
onLanguageChange() {
|
|
138
140
|
this.setTranslations();
|
|
139
141
|
this.changeLanguage.emit(this.language);
|
|
@@ -153,9 +155,12 @@ let PnMarketwebSiteheader = class {
|
|
|
153
155
|
const fetchUrl = `${endpointBase}${this.endpointPath}?market=${this.market}&language=${this.language}`;
|
|
154
156
|
const response = await fetch(fetchUrl);
|
|
155
157
|
const data = await response.json();
|
|
156
|
-
this.setStateFromData(data);
|
|
158
|
+
await this.setStateFromData(data);
|
|
157
159
|
}
|
|
158
160
|
getLanguageVersionUrl(item) {
|
|
161
|
+
if (this.spaMode) {
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
159
164
|
const alternativeTag = document.querySelector(`link[rel="alternate"][hreflang="${item.twoLetterISOLanguageName}"]`);
|
|
160
165
|
if (alternativeTag) {
|
|
161
166
|
return alternativeTag.getAttribute('href');
|
|
@@ -164,7 +169,7 @@ let PnMarketwebSiteheader = class {
|
|
|
164
169
|
// Add trailing slash to domain if it's missing
|
|
165
170
|
return siteUrl + ((siteUrl.lastIndexOf("/") !== siteUrl.length - 1) ? "/" : "") + item.twoLetterISOLanguageName;
|
|
166
171
|
}
|
|
167
|
-
setStateFromData(data) {
|
|
172
|
+
async setStateFromData(data) {
|
|
168
173
|
if (typeof data !== "object") {
|
|
169
174
|
console.warn('Data was not valid', data);
|
|
170
175
|
}
|
|
@@ -188,10 +193,26 @@ let PnMarketwebSiteheader = class {
|
|
|
188
193
|
// Set language selector
|
|
189
194
|
this.languageSelector = data.languageSelectorViewModel;
|
|
190
195
|
this.loginDialog = data.loginViewModel;
|
|
196
|
+
await this.spaModeAdjustments();
|
|
191
197
|
this.gotData = true;
|
|
192
198
|
this.fetchingData = true;
|
|
193
199
|
window.setTimeout(() => { this.checkMenuOverflow(); }, 100);
|
|
194
200
|
}
|
|
201
|
+
async spaModeAdjustments() {
|
|
202
|
+
if (!this.spaMode) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
onLoginStateChange(e) {
|
|
208
|
+
var _a, _b;
|
|
209
|
+
if (((_a = e.detail) === null || _a === void 0 ? void 0 : _a.loggedIn) && ((_b = e.detail) === null || _b === void 0 ? void 0 : _b.token) && this.sessionForward) {
|
|
210
|
+
try {
|
|
211
|
+
fetch('/api/userprofile/sync?token=' + e.detail.token);
|
|
212
|
+
}
|
|
213
|
+
catch (e) { }
|
|
214
|
+
}
|
|
215
|
+
}
|
|
195
216
|
promotedItemId(item) {
|
|
196
217
|
return "promo-" + item.linkText.replace(/[^A-Za-z0-9.\\\/]/igm, "");
|
|
197
218
|
}
|
|
@@ -236,7 +257,7 @@ let PnMarketwebSiteheader = class {
|
|
|
236
257
|
return (index.h("pn-mainnav-link", { name: childitem.name, href: childitem.href, target: (_a = childitem.linkTarget) !== null && _a !== void 0 ? _a : "_self", linkid: childitem.trackingId }));
|
|
237
258
|
})), (item.promotedMenuItems && item.promotedMenuItems.length > 0) &&
|
|
238
259
|
index.h("pn-mainnav-list", { heading: item.promotedMenuItemsHeader }, item.promotedMenuItems.map((childitem) => (index.h("pn-mainnav-link", { href: childitem.href, name: childitem.linkText, target: childitem.openInNewWindow ? "_blank" : "_self", linkid: this.promotedItemId(childitem) })))))));
|
|
239
|
-
})), index.h("div", { slot: "footer", class: "siteheader-menu-footer" }, (this.gotData && this.loginDialog && !this.hideLogin) && (index.h("pn-marketweb-siteheader-login", { loginDialog: this.loginDialog, endpoint: this.endpoint, i18n: this.i18n })), (this.gotData && ((_h = this.languageSelector) === null || _h === void 0 ? void 0 : _h.languages)) && !this.hideLanguageSelector &&
|
|
260
|
+
})), index.h("div", { slot: "footer", class: "siteheader-menu-footer" }, (this.gotData && this.loginDialog && !this.hideLogin) && (index.h("pn-marketweb-siteheader-login", { emitEvents: false, loginDialog: this.loginDialog, endpoint: this.endpoint, i18n: this.i18n })), (this.gotData && ((_h = this.languageSelector) === null || _h === void 0 ? void 0 : _h.languages)) && !this.hideLanguageSelector &&
|
|
240
261
|
index.h("pn-language-selector", { value: this.language }, this.languageSelector.languages.map(language => index.h("pn-language-selector-option", { name: language.nativeName, code: language.twoLetterISOLanguageName, selected: language.isCurrent, url: this.getLanguageVersionUrl(language) }))), !this.hideSiteSelector &&
|
|
241
262
|
index.h("pn-site-selector", { language: this.language }, (this.gotData && ((_j = this.siteSelector) === null || _j === void 0 ? void 0 : _j.currentSiteTitle)) &&
|
|
242
263
|
index.h("pn-site-selector-item", { heading: this.siteSelector.currentSiteTitle, description: this.siteSelector.currentSiteDescription }), (this.gotData && ((_k = this.siteSelector) === null || _k === void 0 ? void 0 : _k.siteSelections)) && this.siteSelector.siteSelections.map((site) => index.h("pn-site-selector-item", { heading: site.linkText, description: site.linkDescription, url: site.pageLink, newwindow: site.openInNewWindow })))), index.h("div", { slot: "top", class: "siteheader-menu-top" }, index.h("pn-marketweb-siteheader-search", { search: this.search, "hide-search": this.hideSearch, i18n: this.i18n }))))), index.h("pn-marketweb-siteheader-search", { search: this.search, "hide-search": this.hideSearch, "show-only-link": this.minimizeSearch, i18n: this.i18n })))));
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const index = require('./index-0404c97e.js');
|
|
6
6
|
|
|
7
|
-
const pnSiteFooterCss = "pn-site-footer{display:block;line-height:1.5}pn-site-footer a{color:#005D92}pn-site-footer a:hover{color:#0D234B;text-decoration:underline}pn-site-footer h3{font-size:2.4rem;margin-bottom:0.5rem;line-height:1.2}pn-site-footer p{font-size:1.6rem}pn-site-footer ul.social-media{display:-ms-flexbox;display:flex;-ms-flex-flow:row;flex-flow:row}pn-site-footer ul.social-media li{margin-right:1.6rem}pn-site-footer>svg{display:block}pn-site-footer>div{background:#F3F2F2}.pn-sitefooter-cols{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin:0 auto;max-width:90em}.pn-sitefooter-bottom [slot=bottom]{max-width:90em;margin:0 auto;padding:1.6rem 0;display:-ms-flexbox;display:flex;-ms-flex-flow:row;flex-flow:row;-ms-flex-pack:center;justify-content:center;-ms-flex-wrap:wrap;flex-wrap:wrap;border-top:1px solid #D3CECB;border-bottom:1px solid #D3CECB}.pn-sitefooter-bottom [slot=bottom] span,.pn-sitefooter-bottom [slot=bottom] a{line-height:2;margin:0 1.6rem;text-decoration:none}.pn-sitefooter-bottom [slot=bottom] li{line-height:2em;margin:0 1.6rem}.pn-sitefooter-logo{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;padding:3rem}.pn-sitefooter-logo svg{display:block;width:13.3rem;height:2.6rem}";
|
|
7
|
+
const pnSiteFooterCss = "pn-site-footer{display:block;line-height:1.5}pn-site-footer a{color:#005D92}pn-site-footer a:hover{color:#0D234B;text-decoration:underline}pn-site-footer h3{font-size:2.4rem;margin-bottom:0.5rem;line-height:1.2}pn-site-footer p{font-size:1.6rem}pn-site-footer ul.social-media{display:-ms-flexbox;display:flex;-ms-flex-flow:row;flex-flow:row}pn-site-footer ul.social-media li{margin-right:1.6rem}pn-site-footer>svg{display:block}pn-site-footer>div{background:#F3F2F2}.pn-sitefooter-top{display:-ms-flexbox;display:flex}.pn-sitefooter-cols{-ms-flex-item-align:center;align-self:center;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin:0 auto;max-width:90em}.pn-sitefooter-bottom [slot=bottom]{max-width:90em;margin:0 auto;padding:1.6rem 0;display:-ms-flexbox;display:flex;-ms-flex-flow:row;flex-flow:row;-ms-flex-pack:center;justify-content:center;-ms-flex-wrap:wrap;flex-wrap:wrap;border-top:1px solid #D3CECB;border-bottom:1px solid #D3CECB}.pn-sitefooter-bottom [slot=bottom] span,.pn-sitefooter-bottom [slot=bottom] a{line-height:2;margin:0 1.6rem;text-decoration:none}.pn-sitefooter-bottom [slot=bottom] li{line-height:2em;margin:0 1.6rem}.pn-sitefooter-logo{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;padding:3rem}.pn-sitefooter-logo svg{display:block;width:13.3rem;height:2.6rem}";
|
|
8
8
|
|
|
9
9
|
let PnSiteFooter = class {
|
|
10
10
|
constructor(hostRef) {
|
|
@@ -20,7 +20,7 @@ let PnSiteFooter = class {
|
|
|
20
20
|
};
|
|
21
21
|
PnSiteFooter.style = pnSiteFooterCss;
|
|
22
22
|
|
|
23
|
-
const pnSiteFooterColCss = "pn-site-footer-col{min-width:
|
|
23
|
+
const pnSiteFooterColCss = "pn-site-footer-col{min-width:20%;padding:2.5em 1.5rem 0}@media screen and (min-width: 48em){pn-site-footer-col{max-width:25%}}pn-site-footer-col ul{list-style-type:none;padding:0;margin:0}pn-site-footer-col li{margin-bottom:1.6rem}pn-site-footer-col a{text-decoration:none;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}pn-site-footer-col p{margin-top:0;margin-bottom:1rem}";
|
|
24
24
|
|
|
25
25
|
let PnSiteFooterCol = class {
|
|
26
26
|
constructor(hostRef) {
|
|
@@ -29,6 +29,7 @@ export class PnFilterCheckbox {
|
|
|
29
29
|
let outsideInput = this.hostElement.querySelector("input.hidden-" + this.checkboxid);
|
|
30
30
|
if (outsideInput) {
|
|
31
31
|
outsideInput.value = (checkboxInput.checked) ? this.value : "";
|
|
32
|
+
outsideInput.dispatchEvent(new CustomEvent("change", { detail: outsideInput }));
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
checkAndSetIndeterminateState() {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Component, Prop, h, State, Element, Watch } from "@stencil/core";
|
|
1
|
+
import { Component, Prop, h, State, Element, Watch, Event } from "@stencil/core";
|
|
2
2
|
import { PNLoginManager } from "./pn-marketweb-siteheader-loginmanager";
|
|
3
3
|
export class PnMarketwebSiteheaderLogin {
|
|
4
4
|
constructor() {
|
|
5
5
|
/** Specifies which endpoint domain we should load from */
|
|
6
6
|
this.endpoint = "";
|
|
7
|
+
this.emitEvents = true;
|
|
7
8
|
// Login dialog
|
|
8
9
|
this.loginDialog = null;
|
|
9
10
|
this.loginManager = null;
|
|
@@ -12,12 +13,13 @@ export class PnMarketwebSiteheaderLogin {
|
|
|
12
13
|
}
|
|
13
14
|
componentWillLoad() {
|
|
14
15
|
this.loginManager = new PNLoginManager({ endpoint: this.endpoint, eventTarget: this.hostElement });
|
|
16
|
+
this.hostElement["loginmanager"] = this.loginManager;
|
|
17
|
+
this.hostElement.addEventListener(this.loginManager.events.loginstatechange, this.onLoginStateChange.bind(this));
|
|
15
18
|
this.init();
|
|
16
19
|
}
|
|
17
20
|
async init() {
|
|
18
21
|
this.toggleButtonText = this.loginDialog.loginMenuLinkText;
|
|
19
|
-
this.
|
|
20
|
-
this.loginManager.init();
|
|
22
|
+
this.loginManager.init(this.emitEvents);
|
|
21
23
|
this.setToggleButtonText();
|
|
22
24
|
}
|
|
23
25
|
setToggleButtonText() {
|
|
@@ -35,8 +37,11 @@ export class PnMarketwebSiteheaderLogin {
|
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
39
|
onLoginStateChange(e) {
|
|
38
|
-
this.loggedIn
|
|
39
|
-
|
|
40
|
+
if (this.loggedIn !== e.detail && this.emitEvents) {
|
|
41
|
+
this.loggedIn = e.detail;
|
|
42
|
+
this.loginStateChange.emit({ loggedIn: this.loggedIn, token: this.loginManager.getToken() });
|
|
43
|
+
this.setToggleButtonText();
|
|
44
|
+
}
|
|
40
45
|
}
|
|
41
46
|
render() {
|
|
42
47
|
var _a, _b, _c;
|
|
@@ -64,7 +69,7 @@ export class PnMarketwebSiteheaderLogin {
|
|
|
64
69
|
h("div", null,
|
|
65
70
|
h("ul", null, this.loginDialog.loggedInLinks.map((link) => {
|
|
66
71
|
const isLogoutLink = link.href.indexOf('logout');
|
|
67
|
-
const href = (isLogoutLink) ? this.loginManager.getLogoutUrl(link.href.replace('logout', '')) : link.href;
|
|
72
|
+
const href = (isLogoutLink) ? this.loginManager.getLogoutUrl(link.href.replace('logout', '').replace('http://window.location.href/?', '').replace('https://window.location.href/?', '')) : link.href;
|
|
68
73
|
return (h("li", null,
|
|
69
74
|
h("a", Object.assign({ href: href }, (link.openInNewWindow && { target: '_blank' })),
|
|
70
75
|
h("pn-button", { appearance: (link.primaryLinkApperance ? "dark" : "light"), onClick: () => { if (isLogoutLink) {
|
|
@@ -119,6 +124,24 @@ export class PnMarketwebSiteheaderLogin {
|
|
|
119
124
|
"attribute": "i-1-8n",
|
|
120
125
|
"reflect": false
|
|
121
126
|
},
|
|
127
|
+
"emitEvents": {
|
|
128
|
+
"type": "boolean",
|
|
129
|
+
"mutable": false,
|
|
130
|
+
"complexType": {
|
|
131
|
+
"original": "boolean",
|
|
132
|
+
"resolved": "boolean",
|
|
133
|
+
"references": {}
|
|
134
|
+
},
|
|
135
|
+
"required": false,
|
|
136
|
+
"optional": false,
|
|
137
|
+
"docs": {
|
|
138
|
+
"tags": [],
|
|
139
|
+
"text": ""
|
|
140
|
+
},
|
|
141
|
+
"attribute": "emit-events",
|
|
142
|
+
"reflect": false,
|
|
143
|
+
"defaultValue": "true"
|
|
144
|
+
},
|
|
122
145
|
"loginDialog": {
|
|
123
146
|
"type": "unknown",
|
|
124
147
|
"mutable": true,
|
|
@@ -146,6 +169,22 @@ export class PnMarketwebSiteheaderLogin {
|
|
|
146
169
|
"loggedIn": {},
|
|
147
170
|
"toggleButtonText": {}
|
|
148
171
|
}; }
|
|
172
|
+
static get events() { return [{
|
|
173
|
+
"method": "loginStateChange",
|
|
174
|
+
"name": "loginStateChange",
|
|
175
|
+
"bubbles": true,
|
|
176
|
+
"cancelable": true,
|
|
177
|
+
"composed": true,
|
|
178
|
+
"docs": {
|
|
179
|
+
"tags": [],
|
|
180
|
+
"text": ""
|
|
181
|
+
},
|
|
182
|
+
"complexType": {
|
|
183
|
+
"original": "any",
|
|
184
|
+
"resolved": "any",
|
|
185
|
+
"references": {}
|
|
186
|
+
}
|
|
187
|
+
}]; }
|
|
149
188
|
static get elementRef() { return "hostElement"; }
|
|
150
189
|
static get watchers() { return [{
|
|
151
190
|
"propName": "i18n",
|
|
@@ -59,14 +59,15 @@ class PNLoginManager {
|
|
|
59
59
|
this.endpoint = options.endpoint ? options.endpoint : `${window.location.protocol}//${window.location.host}`;
|
|
60
60
|
(_a = this.storagePrefix) !== null && _a !== void 0 ? _a : (this.storagePrefix = options.storagePrefix);
|
|
61
61
|
}
|
|
62
|
-
init() {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
init(checkParameters = true) {
|
|
63
|
+
if (checkParameters) {
|
|
64
|
+
this.checkParameters();
|
|
65
|
+
this.checkExpireTime();
|
|
66
|
+
if (this.store.get(this.keys.token) && !this.store.get(this.keys.user)) {
|
|
67
|
+
this.fetchUserInfo();
|
|
68
|
+
}
|
|
69
|
+
this.loginStateChange();
|
|
68
70
|
}
|
|
69
|
-
this.loginStateChange();
|
|
70
71
|
}
|
|
71
72
|
isLoggedIn() {
|
|
72
73
|
const isLoggedIn = (this.store.get(this.keys.token) && this.store.get(this.keys.user)) ? true : false;
|
|
@@ -110,10 +111,11 @@ class PNLoginManager {
|
|
|
110
111
|
const params = new URLSearchParams(window.location.search);
|
|
111
112
|
if (params.get("oneTimeCode")) {
|
|
112
113
|
const oneTimeCode = params.get("oneTimeCode");
|
|
113
|
-
this.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
this.exchangeToken(oneTimeCode).then(() => {
|
|
115
|
+
const currentHref = window.location.href;
|
|
116
|
+
const paramPrefix = (currentHref.indexOf('?oneTimeCode') !== -1) ? "?" : "&";
|
|
117
|
+
history.replaceState({}, document.querySelector('title').innerText, currentHref.replace(`${paramPrefix}oneTimeCode=${oneTimeCode}`, ''));
|
|
118
|
+
});
|
|
117
119
|
}
|
|
118
120
|
}
|
|
119
121
|
async fetchUserInfo() {
|
|
@@ -149,7 +151,10 @@ class PNLoginManager {
|
|
|
149
151
|
this.store.remove(this.keys.expire);
|
|
150
152
|
this.store.remove(this.keys.expireDate);
|
|
151
153
|
}
|
|
152
|
-
|
|
154
|
+
getToken() {
|
|
155
|
+
return this.store.get(this.keys.token);
|
|
156
|
+
}
|
|
157
|
+
async exchangeToken(oneTimeCode) {
|
|
153
158
|
this.clearUserData();
|
|
154
159
|
const response = await fetch(`${this.getBaseUrl()}${this.endpoints.tokenExchangeEndpoint}?oneTimeCode=${oneTimeCode}`);
|
|
155
160
|
const { token } = await response.json();
|
package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.js
CHANGED
|
@@ -22,6 +22,10 @@ export class PnMarketwebSiteheader {
|
|
|
22
22
|
this.hideSearch = false;
|
|
23
23
|
/** Hides the login if set to true*/
|
|
24
24
|
this.hideLogin = false;
|
|
25
|
+
/** Forward session to backend */
|
|
26
|
+
this.sessionForward = false;
|
|
27
|
+
/** Event based only language switch */
|
|
28
|
+
this.spaMode = false;
|
|
25
29
|
this.gotData = false;
|
|
26
30
|
this.fetchingData = false;
|
|
27
31
|
// Menu state
|
|
@@ -62,11 +66,6 @@ export class PnMarketwebSiteheader {
|
|
|
62
66
|
this.endpoint = "";
|
|
63
67
|
}
|
|
64
68
|
}
|
|
65
|
-
// TODO
|
|
66
|
-
//* Expose market and language attributes when changed internally
|
|
67
|
-
//* Business logic to select market and language depending on domains / html tag.
|
|
68
|
-
//* Property to stop language change from changeing url, throw an event instead.
|
|
69
|
-
//* Fetch new data when langauge or market is changed
|
|
70
69
|
async init() {
|
|
71
70
|
this.setTranslations();
|
|
72
71
|
await this.fetchData();
|
|
@@ -77,6 +76,9 @@ export class PnMarketwebSiteheader {
|
|
|
77
76
|
this.i18n = translations[this.language];
|
|
78
77
|
}
|
|
79
78
|
}
|
|
79
|
+
onLanguageSelectorChange(e) {
|
|
80
|
+
this.language = e.detail;
|
|
81
|
+
}
|
|
80
82
|
onLanguageChange() {
|
|
81
83
|
this.setTranslations();
|
|
82
84
|
this.changeLanguage.emit(this.language);
|
|
@@ -96,9 +98,12 @@ export class PnMarketwebSiteheader {
|
|
|
96
98
|
const fetchUrl = `${endpointBase}${this.endpointPath}?market=${this.market}&language=${this.language}`;
|
|
97
99
|
const response = await fetch(fetchUrl);
|
|
98
100
|
const data = await response.json();
|
|
99
|
-
this.setStateFromData(data);
|
|
101
|
+
await this.setStateFromData(data);
|
|
100
102
|
}
|
|
101
103
|
getLanguageVersionUrl(item) {
|
|
104
|
+
if (this.spaMode) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
102
107
|
const alternativeTag = document.querySelector(`link[rel="alternate"][hreflang="${item.twoLetterISOLanguageName}"]`);
|
|
103
108
|
if (alternativeTag) {
|
|
104
109
|
return alternativeTag.getAttribute('href');
|
|
@@ -107,7 +112,7 @@ export class PnMarketwebSiteheader {
|
|
|
107
112
|
// Add trailing slash to domain if it's missing
|
|
108
113
|
return siteUrl + ((siteUrl.lastIndexOf("/") !== siteUrl.length - 1) ? "/" : "") + item.twoLetterISOLanguageName;
|
|
109
114
|
}
|
|
110
|
-
setStateFromData(data) {
|
|
115
|
+
async setStateFromData(data) {
|
|
111
116
|
if (typeof data !== "object") {
|
|
112
117
|
console.warn('Data was not valid', data);
|
|
113
118
|
}
|
|
@@ -131,10 +136,26 @@ export class PnMarketwebSiteheader {
|
|
|
131
136
|
// Set language selector
|
|
132
137
|
this.languageSelector = data.languageSelectorViewModel;
|
|
133
138
|
this.loginDialog = data.loginViewModel;
|
|
139
|
+
await this.spaModeAdjustments();
|
|
134
140
|
this.gotData = true;
|
|
135
141
|
this.fetchingData = true;
|
|
136
142
|
window.setTimeout(() => { this.checkMenuOverflow(); }, 100);
|
|
137
143
|
}
|
|
144
|
+
async spaModeAdjustments() {
|
|
145
|
+
if (!this.spaMode) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
onLoginStateChange(e) {
|
|
151
|
+
var _a, _b;
|
|
152
|
+
if (((_a = e.detail) === null || _a === void 0 ? void 0 : _a.loggedIn) && ((_b = e.detail) === null || _b === void 0 ? void 0 : _b.token) && this.sessionForward) {
|
|
153
|
+
try {
|
|
154
|
+
fetch('/api/userprofile/sync?token=' + e.detail.token);
|
|
155
|
+
}
|
|
156
|
+
catch (e) { }
|
|
157
|
+
}
|
|
158
|
+
}
|
|
138
159
|
promotedItemId(item) {
|
|
139
160
|
return "promo-" + item.linkText.replace(/[^A-Za-z0-9.\\\/]/igm, "");
|
|
140
161
|
}
|
|
@@ -204,7 +225,7 @@ export class PnMarketwebSiteheader {
|
|
|
204
225
|
h("pn-mainnav-list", { heading: item.promotedMenuItemsHeader }, item.promotedMenuItems.map((childitem) => (h("pn-mainnav-link", { href: childitem.href, name: childitem.linkText, target: childitem.openInNewWindow ? "_blank" : "_self", linkid: this.promotedItemId(childitem) })))))));
|
|
205
226
|
})),
|
|
206
227
|
h("div", { slot: "footer", class: "siteheader-menu-footer" },
|
|
207
|
-
(this.gotData && this.loginDialog && !this.hideLogin) && (h("pn-marketweb-siteheader-login", { loginDialog: this.loginDialog, endpoint: this.endpoint, i18n: this.i18n })),
|
|
228
|
+
(this.gotData && this.loginDialog && !this.hideLogin) && (h("pn-marketweb-siteheader-login", { emitEvents: false, loginDialog: this.loginDialog, endpoint: this.endpoint, i18n: this.i18n })),
|
|
208
229
|
(this.gotData && ((_h = this.languageSelector) === null || _h === void 0 ? void 0 : _h.languages)) && !this.hideLanguageSelector &&
|
|
209
230
|
h("pn-language-selector", { value: this.language }, this.languageSelector.languages.map(language => h("pn-language-selector-option", { name: language.nativeName, code: language.twoLetterISOLanguageName, selected: language.isCurrent, url: this.getLanguageVersionUrl(language) }))),
|
|
210
231
|
!this.hideSiteSelector &&
|
|
@@ -367,6 +388,42 @@ export class PnMarketwebSiteheader {
|
|
|
367
388
|
"attribute": "hide-login",
|
|
368
389
|
"reflect": true,
|
|
369
390
|
"defaultValue": "false"
|
|
391
|
+
},
|
|
392
|
+
"sessionForward": {
|
|
393
|
+
"type": "boolean",
|
|
394
|
+
"mutable": false,
|
|
395
|
+
"complexType": {
|
|
396
|
+
"original": "boolean",
|
|
397
|
+
"resolved": "boolean",
|
|
398
|
+
"references": {}
|
|
399
|
+
},
|
|
400
|
+
"required": false,
|
|
401
|
+
"optional": false,
|
|
402
|
+
"docs": {
|
|
403
|
+
"tags": [],
|
|
404
|
+
"text": "Forward session to backend"
|
|
405
|
+
},
|
|
406
|
+
"attribute": "session-forward",
|
|
407
|
+
"reflect": false,
|
|
408
|
+
"defaultValue": "false"
|
|
409
|
+
},
|
|
410
|
+
"spaMode": {
|
|
411
|
+
"type": "boolean",
|
|
412
|
+
"mutable": false,
|
|
413
|
+
"complexType": {
|
|
414
|
+
"original": "boolean",
|
|
415
|
+
"resolved": "boolean",
|
|
416
|
+
"references": {}
|
|
417
|
+
},
|
|
418
|
+
"required": false,
|
|
419
|
+
"optional": false,
|
|
420
|
+
"docs": {
|
|
421
|
+
"tags": [],
|
|
422
|
+
"text": "Event based only language switch"
|
|
423
|
+
},
|
|
424
|
+
"attribute": "spa-mode",
|
|
425
|
+
"reflect": false,
|
|
426
|
+
"defaultValue": "false"
|
|
370
427
|
}
|
|
371
428
|
}; }
|
|
372
429
|
static get states() { return {
|
|
@@ -421,6 +478,18 @@ export class PnMarketwebSiteheader {
|
|
|
421
478
|
"methodName": "onMarketChange"
|
|
422
479
|
}]; }
|
|
423
480
|
static get listeners() { return [{
|
|
481
|
+
"name": "setLanguage",
|
|
482
|
+
"method": "onLanguageSelectorChange",
|
|
483
|
+
"target": undefined,
|
|
484
|
+
"capture": false,
|
|
485
|
+
"passive": false
|
|
486
|
+
}, {
|
|
487
|
+
"name": "loginStateChange",
|
|
488
|
+
"method": "onLoginStateChange",
|
|
489
|
+
"target": undefined,
|
|
490
|
+
"capture": false,
|
|
491
|
+
"passive": false
|
|
492
|
+
}, {
|
|
424
493
|
"name": "resize",
|
|
425
494
|
"method": "handleResize",
|
|
426
495
|
"target": "window",
|