@postnord/pn-marketweb-components 1.0.20 → 1.0.25
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 +38 -20
- package/cjs/pn-mainnav-link.cjs.entry.js +1 -1
- package/cjs/{pn-mainnav-store-661b0b11.js → pn-mainnav-store-87a95686.js} +1 -0
- package/cjs/pn-market-web-components.cjs.js +1 -1
- package/cjs/pn-marketweb-siteheader.cjs.entry.js +29 -8
- 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 +4 -0
- package/collection/components/navigation/pn-mainnav/pn-mainnav-level.js +5 -1
- package/collection/components/navigation/pn-mainnav/pn-mainnav-store.js +1 -0
- package/collection/components/navigation/pn-mainnav/pn-mainnav.js +1 -1
- package/custom-elements/index.js +71 -30
- package/esm/loader.js +1 -1
- package/esm/pn-filter-checkbox.entry.js +1 -0
- package/esm/pn-language-selector_9.entry.js +39 -21
- package/esm/pn-mainnav-link.entry.js +1 -1
- package/esm/{pn-mainnav-store-4b030e31.js → pn-mainnav-store-8e518460.js} +1 -0
- package/esm/pn-market-web-components.js +1 -1
- package/esm/pn-marketweb-siteheader.entry.js +29 -8
- 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-mainnav-link.entry.js +1 -1
- package/esm-es5/pn-mainnav-store-8e518460.js +1 -0
- package/esm-es5/pn-market-web-components.js +1 -1
- package/esm-es5/pn-marketweb-siteheader.entry.js +1 -1
- package/package.json +1 -1
- package/pn-market-web-components/p-015a433e.entry.js +1 -0
- package/pn-market-web-components/{p-facf4ecb.system.entry.js → p-251d44f2.system.entry.js} +1 -1
- package/pn-market-web-components/p-25bdf3f8.system.js +1 -1
- package/pn-market-web-components/{p-8d62c46f.system.entry.js → p-4feb3557.system.entry.js} +1 -1
- package/pn-market-web-components/p-86a9f853.system.js +1 -0
- package/pn-market-web-components/p-88ab0d91.system.entry.js +1 -0
- package/pn-market-web-components/p-8dad5ed9.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/{p-f7d60229.entry.js → p-e220ea83.entry.js} +1 -1
- 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/navigation/pn-mainnav/pn-mainnav-store.d.ts +2 -0
- package/types/components.d.ts +20 -0
- package/esm-es5/pn-mainnav-store-4b030e31.js +0 -1
- package/pn-market-web-components/p-14f9acfd.entry.js +0 -1
- package/pn-market-web-components/p-2da203c9.system.entry.js +0 -1
- package/pn-market-web-components/p-582dbd9c.entry.js +0 -1
- package/pn-market-web-components/p-6b735c44.system.js +0 -1
- package/pn-market-web-components/p-7f853b67.system.entry.js +0 -1
- package/pn-market-web-components/p-8c072330.entry.js +0 -1
- package/pn-market-web-components/p-a74e5481.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() {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-0404c97e.js');
|
|
6
|
-
const pnMainnavStore = require('./pn-mainnav-store-
|
|
6
|
+
const pnMainnavStore = require('./pn-mainnav-store-87a95686.js');
|
|
7
7
|
require('./index-ea886985.js');
|
|
8
8
|
|
|
9
9
|
const translations$1 = {
|
|
@@ -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]) {
|
|
@@ -217,13 +219,13 @@ let PnMainnav = class {
|
|
|
217
219
|
pnMainnavStore.state.openLevel = event.detail;
|
|
218
220
|
}
|
|
219
221
|
render() {
|
|
220
|
-
return (index.h(index.Host, null, index.h("div", { class: "mainnav-toggle" }, index.h("button", { "aria-controls": this.navigationId, "aria-expanded": pnMainnavStore.state.openMenu + '', onClick: this.setMenuOpenState.bind(this) }, pnMainnavStore.state.i18n.mainMenuButton, index.h("pn-icon", { symbol: pnMainnavStore.state.openMenu ? "close" : "bars", color: "white" }))), index.h("nav", { class: "mainnav", "aria-label": this.navLabel, "data-menu-open": pnMainnavStore.state.openMenu + '', id: this.navigationId }, index.h("slot", null))));
|
|
222
|
+
return (index.h(index.Host, null, index.h("div", { class: "mainnav-toggle" }, index.h("button", { "aria-controls": this.navigationId, "aria-expanded": pnMainnavStore.state.openMenu + '', onClick: this.setMenuOpenState.bind(this) }, pnMainnavStore.state.i18n.mainMenuButton, index.h("pn-icon", { symbol: pnMainnavStore.state.openMenu ? "close" : "bars", color: "white" }))), index.h("nav", { class: "mainnav", "aria-label": this.navLabel, "data-menu-open": pnMainnavStore.state.openMenu + '', "data-menu-currentlevel": pnMainnavStore.state.currentLevel, id: this.navigationId }, index.h("slot", null))));
|
|
221
223
|
}
|
|
222
224
|
get hostElement() { return index.getElement(this); }
|
|
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}}.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) {
|
|
@@ -282,9 +284,13 @@ let PnMainnavLevel = class {
|
|
|
282
284
|
}
|
|
283
285
|
onChangeOpenLevel() {
|
|
284
286
|
this.isOpen = pnMainnavStore.state.openLevel === this.levelId;
|
|
287
|
+
pnMainnavStore.state.currentLevel = this.level;
|
|
285
288
|
}
|
|
286
289
|
render() {
|
|
287
|
-
return (index.h(index.Host, Object.assign({ role: "navigation" }, ((this.level > 1 && this.levelId) ? { 'aria-hidden': (!this.isOpen) + '' } : {}), { "data-level-listcount": this.listCount + '', "data-level-alignment": this.alignment, "data-level": this.level + '' }, (this.levelId ? { id: this.levelId } : {})), (this.level > 1) ? (index.h("div", { class: "mainnav-level-header" }, index.h("label", { htmlFor: this.levelId }, pnMainnavStore.state.i18n.menuGoBackButton), index.h("button", { class: "secondlevel-backbtn", onClick: () =>
|
|
290
|
+
return (index.h(index.Host, Object.assign({ role: "navigation" }, ((this.level > 1 && this.levelId) ? { 'aria-hidden': (!this.isOpen) + '' } : {}), { "data-level-listcount": this.listCount + '', "data-level-alignment": this.alignment, "data-level": this.level + '' }, (this.levelId ? { id: this.levelId } : {})), (this.level > 1) ? (index.h("div", { class: "mainnav-level-header" }, index.h("label", { htmlFor: this.levelId }, pnMainnavStore.state.i18n.menuGoBackButton), index.h("button", { class: "secondlevel-backbtn", onClick: () => {
|
|
291
|
+
pnMainnavStore.state.openLevel = '';
|
|
292
|
+
pnMainnavStore.state.currentLevel = 1;
|
|
293
|
+
}, "aria-expanded": (pnMainnavStore.state.openLevel === this.levelId) + '' }, index.h("pn-icon", { symbol: "arrow-left", color: "blue700" }), pnMainnavStore.state.i18n.menuStartButton), (this.parentHref && this.parentName) ? index.h("pn-mainnav-link", { href: this.parentHref, name: this.parentName, linkid: this.parentLinkId }) : null)) : null, index.h("slot", { name: "top" }), index.h("slot", null), index.h("slot", { name: "additional" }), index.h("slot", { name: "footer" })));
|
|
288
294
|
}
|
|
289
295
|
get hostElement() { return index.getElement(this); }
|
|
290
296
|
static get watchers() { return {
|
|
@@ -372,13 +378,15 @@ class PNLoginManager {
|
|
|
372
378
|
this.endpoint = options.endpoint ? options.endpoint : `${window.location.protocol}//${window.location.host}`;
|
|
373
379
|
(_a = this.storagePrefix) !== null && _a !== void 0 ? _a : (this.storagePrefix = options.storagePrefix);
|
|
374
380
|
}
|
|
375
|
-
init() {
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
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();
|
|
380
389
|
}
|
|
381
|
-
this.loginStateChange();
|
|
382
390
|
}
|
|
383
391
|
isLoggedIn() {
|
|
384
392
|
const isLoggedIn = (this.store.get(this.keys.token) && this.store.get(this.keys.user)) ? true : false;
|
|
@@ -422,10 +430,11 @@ class PNLoginManager {
|
|
|
422
430
|
const params = new URLSearchParams(window.location.search);
|
|
423
431
|
if (params.get("oneTimeCode")) {
|
|
424
432
|
const oneTimeCode = params.get("oneTimeCode");
|
|
425
|
-
this.
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
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
|
+
});
|
|
429
438
|
}
|
|
430
439
|
}
|
|
431
440
|
async fetchUserInfo() {
|
|
@@ -461,7 +470,10 @@ class PNLoginManager {
|
|
|
461
470
|
this.store.remove(this.keys.expire);
|
|
462
471
|
this.store.remove(this.keys.expireDate);
|
|
463
472
|
}
|
|
464
|
-
|
|
473
|
+
getToken() {
|
|
474
|
+
return this.store.get(this.keys.token);
|
|
475
|
+
}
|
|
476
|
+
async exchangeToken(oneTimeCode) {
|
|
465
477
|
this.clearUserData();
|
|
466
478
|
const response = await fetch(`${this.getBaseUrl()}${this.endpoints.tokenExchangeEndpoint}?oneTimeCode=${oneTimeCode}`);
|
|
467
479
|
const { token } = await response.json();
|
|
@@ -501,8 +513,10 @@ const pnMarketwebSiteheaderLoginCss = "pn-marketweb-siteheader-login{padding:1re
|
|
|
501
513
|
let PnMarketwebSiteheaderLogin = class {
|
|
502
514
|
constructor(hostRef) {
|
|
503
515
|
index.registerInstance(this, hostRef);
|
|
516
|
+
this.loginStateChange = index.createEvent(this, "loginStateChange", 7);
|
|
504
517
|
/** Specifies which endpoint domain we should load from */
|
|
505
518
|
this.endpoint = "";
|
|
519
|
+
this.emitEvents = true;
|
|
506
520
|
// Login dialog
|
|
507
521
|
this.loginDialog = null;
|
|
508
522
|
this.loginManager = null;
|
|
@@ -511,12 +525,13 @@ let PnMarketwebSiteheaderLogin = class {
|
|
|
511
525
|
}
|
|
512
526
|
componentWillLoad() {
|
|
513
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));
|
|
514
530
|
this.init();
|
|
515
531
|
}
|
|
516
532
|
async init() {
|
|
517
533
|
this.toggleButtonText = this.loginDialog.loginMenuLinkText;
|
|
518
|
-
this.
|
|
519
|
-
this.loginManager.init();
|
|
534
|
+
this.loginManager.init(this.emitEvents);
|
|
520
535
|
this.setToggleButtonText();
|
|
521
536
|
}
|
|
522
537
|
setToggleButtonText() {
|
|
@@ -534,8 +549,11 @@ let PnMarketwebSiteheaderLogin = class {
|
|
|
534
549
|
}
|
|
535
550
|
}
|
|
536
551
|
onLoginStateChange(e) {
|
|
537
|
-
this.loggedIn
|
|
538
|
-
|
|
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
|
+
}
|
|
539
557
|
}
|
|
540
558
|
render() {
|
|
541
559
|
var _a, _b, _c;
|
|
@@ -553,7 +571,7 @@ let PnMarketwebSiteheaderLogin = class {
|
|
|
553
571
|
:
|
|
554
572
|
index.h("div", null, index.h("ul", null, this.loginDialog.loggedInLinks.map((link) => {
|
|
555
573
|
const isLogoutLink = link.href.indexOf('logout');
|
|
556
|
-
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;
|
|
557
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: () => {
|
|
558
576
|
if (isLogoutLink) {
|
|
559
577
|
this.loginManager.clearUserData();
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-0404c97e.js');
|
|
6
|
-
const pnMainnavStore = require('./pn-mainnav-store-
|
|
6
|
+
const pnMainnavStore = require('./pn-mainnav-store-87a95686.js');
|
|
7
7
|
require('./index-ea886985.js');
|
|
8
8
|
|
|
9
9
|
const pnMainnavLinkCss = "pn-mainnav-link{display:block}pn-mainnav-link button,pn-mainnav-link a{font-weight:normal;position:relative;border:0 none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;background-color:transparent;color:#005D92}pn-mainnav-link button:hover,pn-mainnav-link button:focus,pn-mainnav-link a:hover,pn-mainnav-link a:focus{background-color:#FFFFFF;color:#005D92;outline:0;-webkit-box-shadow:none;box-shadow:none}pn-mainnav-link button:active,pn-mainnav-link a:active{background-color:#F3F2F2;color:#00A0D6;-webkit-box-shadow:none;box-shadow:none}@media screen and (min-width: 64em){[data-level=\"1\"] pn-mainnav-link{height:100%;padding-left:0;position:relative;scroll-snap-align:center}}[data-level=\"1\"] pn-mainnav-link:first-child{border-top:0.1rem solid #F3F2F2}@media screen and (min-width: 64em){[data-level=\"1\"] pn-mainnav-link:first-child{border:0}}[data-level=\"1\"] pn-mainnav-link>button,[data-level=\"1\"] pn-mainnav-link>a{font-size:2rem;width:100%;border-bottom:0.1rem solid #F3F2F2;height:auto;padding:1.9rem 0 1.9rem 3rem}@media screen and (min-width: 64em){[data-level=\"1\"] pn-mainnav-link>button,[data-level=\"1\"] pn-mainnav-link>a{height:100%;border:0;font-size:1.6rem;font-weight:normal;position:relative;outline:0;overflow:hidden;padding:1.6rem 1.6rem;white-space:nowrap}[data-level=\"1\"] pn-mainnav-link>button::before,[data-level=\"1\"] pn-mainnav-link>a::before{content:\"\";background-color:#00A0D6;position:absolute;bottom:0;left:0;width:100%;height:0.5em;border-radius:0.5em 0.5em 0 0;-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transition:-webkit-transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92);transition:-webkit-transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92);transition:transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92);transition:transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92), -webkit-transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92)}[data-level=\"1\"] pn-mainnav-link>button:hover::before,[data-level=\"1\"] pn-mainnav-link>button:focus::before,[data-level=\"1\"] pn-mainnav-link>a:hover::before,[data-level=\"1\"] pn-mainnav-link>a:focus::before{-webkit-transform:translateY(0);transform:translateY(0)}[data-level=\"1\"] pn-mainnav-link>button:active,[data-level=\"1\"] pn-mainnav-link>a:active{outline:0;-webkit-box-shadow:none;box-shadow:none;color:#005D92}[data-level=\"1\"] pn-mainnav-link>button:active::before,[data-level=\"1\"] pn-mainnav-link>a:active::before{background-color:#8EDDF9;-webkit-transform:translateY(0);transform:translateY(0)}}@media screen and (min-width: 64em){[data-level=\"1\"] pn-mainnav-link>button:hover,[data-level=\"1\"] pn-mainnav-link>button:focus,[data-level=\"1\"] pn-mainnav-link>a:hover,[data-level=\"1\"] pn-mainnav-link>a:focus{text-decoration:none}}@media screen and (min-width: 64em){[data-level=\"1\"] pn-mainnav-link>button[aria-expanded=true]::before,[data-level=\"1\"] pn-mainnav-link>a[aria-expanded=true]::before{content:\"\";background-color:#00A0D6;position:absolute;bottom:0;left:0;width:100%;height:0.5em;border-radius:0.5em 0.5em 0 0;-webkit-transform:translateY(0);transform:translateY(0);-webkit-transition:-webkit-transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92);transition:-webkit-transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92);transition:transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92);transition:transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92), -webkit-transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92)}}[data-level=\"1\"] pn-mainnav-link [aria-expanded=true] .first-level_icon{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}[data-level=\"1\"] pn-mainnav-link pn-icon.first-level_icon{-webkit-transition:0.25s linear transform;transition:0.25s linear transform;width:1.92rem;height:1.92rem;display:none}@media screen and (min-width: 64em){[data-level=\"1\"] pn-mainnav-link pn-icon.first-level_icon{display:block}}[data-level=\"1\"] pn-mainnav-link pn-icon.first-level_arrow{display:block;position:absolute;height:2.4rem;width:2.4rem;right:2.4rem;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}@media screen and (min-width: 64em){[data-level=\"1\"] pn-mainnav-link pn-icon.first-level_arrow{display:none}}[data-level=\"1\"] pn-mainnav-link pn-icon svg{pointer-events:none;speak:none;width:100%;height:100%}@media screen and (min-width: 64em){pn-mainnav-level[data-level=\"2\"]:not([data-level-listcount=\"1\"]) pn-mainnav-list:last-child pn-mainnav-link>a{min-width:unset}}[data-level=\"2\"] pn-mainnav-link{position:static;display:inline-block;width:100%;height:auto}@media screen and (min-width: 64em){[data-level=\"2\"] pn-mainnav-link{padding-left:0;margin-bottom:1.6rem}}[data-level=\"2\"] pn-mainnav-link>a{font-size:1.6rem;border-bottom:0.1rem solid #F3F2F2;padding:2.2rem 0 2.2rem 3rem;white-space:normal}@media screen and (min-width: 64em){[data-level=\"2\"] pn-mainnav-link>a{min-width:16em;border:0;border-radius:1rem;padding:1.4rem 1.6rem}}[data-level=\"2\"] pn-mainnav-link>a:hover{background-color:#FFFFFF;color:#005D92}[data-level=\"2\"] pn-mainnav-link>a:hover,[data-level=\"2\"] pn-mainnav-link>a:focus{-webkit-box-shadow:none;box-shadow:none}@media screen and (min-width: 64em){[data-level=\"2\"] pn-mainnav-link>a:hover,[data-level=\"2\"] pn-mainnav-link>a:focus{background-color:#F3F2F2;color:#005D92;text-decoration:underline;outline:0}}[data-level=\"2\"] pn-mainnav-link>a:hover::before,[data-level=\"2\"] pn-mainnav-link>a:focus::before{content:none}[data-level=\"2\"] pn-mainnav-link>a:active{-webkit-box-shadow:none;box-shadow:none}@media screen and (min-width: 64em){[data-level=\"2\"] pn-mainnav-link>a:active{background-color:#F3F2F2;color:#00A0D6;outline:0}}[data-level=\"2\"] pn-mainnav-link>a:active::before{content:none}[data-level=\"2\"] pn-mainnav-link pn-icon{display:inline-block;margin-left:0.2em;min-width:1.5rem;width:1.5rem;height:1.5rem}";
|
|
@@ -5,6 +5,7 @@ const index = require('./index-ea886985.js');
|
|
|
5
5
|
// Read more about how stencil stores work here: https://stenciljs.com/docs/stencil-store
|
|
6
6
|
const { state, onChange } = index.createStore({
|
|
7
7
|
openLevel: '',
|
|
8
|
+
currentLevel: 1,
|
|
8
9
|
openMenu: false,
|
|
9
10
|
i18n: {
|
|
10
11
|
menuHomeButton: '',
|
|
@@ -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 })))));
|
|
@@ -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();
|