@postnord/pn-marketweb-components 1.0.17 → 1.0.21

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.
Files changed (78) hide show
  1. package/cjs/MarketWebContextService-420668a7.js +166 -0
  2. package/cjs/loader.cjs.js +1 -1
  3. package/cjs/pn-filter-checkbox.cjs.entry.js +67 -0
  4. package/cjs/pn-language-selector_9.cjs.entry.js +34 -11
  5. package/cjs/pn-mainnav-link.cjs.entry.js +1 -1
  6. package/cjs/{pn-mainnav-store-661b0b11.js → pn-mainnav-store-87a95686.js} +1 -0
  7. package/cjs/pn-market-web-components.cjs.js +1 -1
  8. package/cjs/pn-marketweb-sitefooter.cjs.entry.js +48 -6
  9. package/cjs/pn-marketweb-siteheader.cjs.entry.js +62 -9
  10. package/collection/collection-manifest.json +1 -0
  11. package/collection/components/input/pn-filter-checkbox/checkbox.stories.js +34 -0
  12. package/collection/components/input/pn-filter-checkbox/pn-filter-checkbox.css +73 -0
  13. package/collection/components/input/pn-filter-checkbox/pn-filter-checkbox.js +183 -0
  14. package/collection/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.js +75 -12
  15. package/collection/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.stories.js +16 -0
  16. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.js +8 -1
  17. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.js +172 -68
  18. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.stories.js +23 -12
  19. package/collection/components/navigation/pn-language-selector/pn-language-selector.js +28 -7
  20. package/collection/components/navigation/pn-mainnav/pn-mainnav-level.css +3 -0
  21. package/collection/components/navigation/pn-mainnav/pn-mainnav-level.js +5 -1
  22. package/collection/components/navigation/pn-mainnav/pn-mainnav-store.js +1 -0
  23. package/collection/components/navigation/pn-mainnav/pn-mainnav.js +1 -1
  24. package/collection/components/navigation/pn-site-selector/pn-site-selector.js +6 -6
  25. package/collection/globals/MarketWebContextService.js +163 -0
  26. package/custom-elements/index.d.ts +6 -0
  27. package/custom-elements/index.js +376 -32
  28. package/esm/MarketWebContextService-9a201388.js +164 -0
  29. package/esm/loader.js +1 -1
  30. package/esm/pn-filter-checkbox.entry.js +63 -0
  31. package/esm/pn-language-selector_9.entry.js +34 -11
  32. package/esm/pn-mainnav-link.entry.js +1 -1
  33. package/esm/{pn-mainnav-store-4b030e31.js → pn-mainnav-store-8e518460.js} +1 -0
  34. package/esm/pn-market-web-components.js +1 -1
  35. package/esm/pn-marketweb-sitefooter.entry.js +48 -6
  36. package/esm/pn-marketweb-siteheader.entry.js +63 -10
  37. package/esm-es5/MarketWebContextService-9a201388.js +1 -0
  38. package/esm-es5/loader.js +1 -1
  39. package/esm-es5/pn-filter-checkbox.entry.js +1 -0
  40. package/esm-es5/pn-language-selector_9.entry.js +1 -1
  41. package/esm-es5/pn-mainnav-link.entry.js +1 -1
  42. package/esm-es5/pn-mainnav-store-8e518460.js +1 -0
  43. package/esm-es5/pn-market-web-components.js +1 -1
  44. package/esm-es5/pn-marketweb-sitefooter.entry.js +1 -1
  45. package/esm-es5/pn-marketweb-siteheader.entry.js +1 -1
  46. package/package.json +2 -2
  47. package/pn-market-web-components/p-02eed66e.system.entry.js +1 -0
  48. package/pn-market-web-components/{p-facf4ecb.system.entry.js → p-251d44f2.system.entry.js} +1 -1
  49. package/pn-market-web-components/p-25bdf3f8.system.js +1 -1
  50. package/pn-market-web-components/p-2da203c9.system.entry.js +1 -0
  51. package/pn-market-web-components/p-363a27ff.entry.js +1 -0
  52. package/pn-market-web-components/p-582dbd9c.entry.js +1 -0
  53. package/pn-market-web-components/p-64dc840d.js +1 -0
  54. package/pn-market-web-components/p-86a9f853.system.js +1 -0
  55. package/pn-market-web-components/p-8c072330.entry.js +1 -0
  56. package/pn-market-web-components/p-8d62c46f.system.entry.js +1 -0
  57. package/pn-market-web-components/p-8dad5ed9.js +1 -0
  58. package/pn-market-web-components/p-a320fe58.system.js +1 -0
  59. package/pn-market-web-components/p-ae0e5fd8.entry.js +1 -0
  60. package/pn-market-web-components/{p-f7d60229.entry.js → p-e220ea83.entry.js} +1 -1
  61. package/pn-market-web-components/p-ecfabe25.system.entry.js +1 -0
  62. package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
  63. package/types/components/input/pn-filter-checkbox/pn-filter-checkbox.d.ts +22 -0
  64. package/types/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.d.ts +5 -0
  65. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.d.ts +8 -0
  66. package/types/components/navigation/pn-language-selector/pn-language-selector.d.ts +2 -0
  67. package/types/components/navigation/pn-mainnav/pn-mainnav-store.d.ts +2 -0
  68. package/types/components.d.ts +61 -0
  69. package/types/globals/MarketWebContextService.d.ts +51 -0
  70. package/esm-es5/pn-mainnav-store-4b030e31.js +0 -1
  71. package/pn-market-web-components/p-6b735c44.system.js +0 -1
  72. package/pn-market-web-components/p-a74e5481.js +0 -1
  73. package/pn-market-web-components/p-b80600a3.system.entry.js +0 -1
  74. package/pn-market-web-components/p-cc6e3bcb.entry.js +0 -1
  75. package/pn-market-web-components/p-d2da364d.system.entry.js +0 -1
  76. package/pn-market-web-components/p-ed135751.entry.js +0 -1
  77. package/pn-market-web-components/p-f55ad3f8.system.entry.js +0 -1
  78. package/pn-market-web-components/p-f5dddd2d.entry.js +0 -1
@@ -0,0 +1,164 @@
1
+ class MarketWebContextService {
2
+ constructor(href = window.location.href) {
3
+ this.href = "";
4
+ this.market = "";
5
+ this.language = "";
6
+ this.environment = "";
7
+ this.url = null;
8
+ this.allowedLanguages = ["sv", "da", "fi", "no", "en"];
9
+ this.allowedMarkets = ["se", "dk", "fi", "no", "com"];
10
+ this.developmentDomains = ["localhost", ".local", "local.", ".dev", "dev."];
11
+ this.markets = {
12
+ "se": {
13
+ fallbackLanguage: "sv",
14
+ },
15
+ "dk": {
16
+ fallbackLanguage: "da",
17
+ },
18
+ "fi": {
19
+ fallbackLanguage: "fi",
20
+ },
21
+ "no": {
22
+ fallbackLanguage: "no",
23
+ },
24
+ "com": {
25
+ fallbackLanguage: "en",
26
+ },
27
+ };
28
+ this.environmentTypes = ["integration", "preproduction", "production"];
29
+ this.environments = {
30
+ "production": {
31
+ "name": "production",
32
+ "url": "https://com-production.postnord.com/"
33
+ },
34
+ "preproduction": {
35
+ "name": "preproduction",
36
+ "url": "https://com-preproduction.postnord.com/"
37
+ },
38
+ "integration": {
39
+ "name": "integration",
40
+ "url": "https://com-integration.postnord.com/"
41
+ }
42
+ };
43
+ this.href = href;
44
+ this.url = new URL(this.href);
45
+ }
46
+ async getLanguage() {
47
+ if (this.language) {
48
+ return this.language;
49
+ }
50
+ await this.resolveLanguage();
51
+ return this.language;
52
+ }
53
+ async getMarket() {
54
+ if (this.market) {
55
+ return this.market;
56
+ }
57
+ await this.resolveMarket();
58
+ return this.market;
59
+ }
60
+ async getEndpoint(environmentName) {
61
+ if (this.environments[environmentName]) {
62
+ return this.environments[environmentName].url;
63
+ }
64
+ return this.environments.production.url;
65
+ }
66
+ async getEnvironmentName() {
67
+ const likelyEnvironment = this.environmentTypes.filter(x => this.url.hostname.indexOf(('-' + x)) !== -1)[0];
68
+ if (likelyEnvironment) {
69
+ this.environment = likelyEnvironment;
70
+ return this.environment;
71
+ }
72
+ if (this.url.hostname.indexOf('www.') !== -1) {
73
+ this.environment = this.environments.production.name;
74
+ return this.environment;
75
+ }
76
+ this.environment = this.environments.integration.name;
77
+ return this.environment;
78
+ }
79
+ isDevEnvironment() {
80
+ const matchedDevEnvironment = this.developmentDomains.filter(x => this.url.hostname.indexOf(x) !== -1)[0];
81
+ return matchedDevEnvironment.length > 0;
82
+ }
83
+ async resolveMarket() {
84
+ // Resolve market from www domains
85
+ if (this.href.indexOf("//www.") !== -1) {
86
+ const domainRoot = this.url.hostname.substring(this.url.hostname.lastIndexOf('.') + 1, this.url.hostname.length);
87
+ if (domainRoot && this.markets[domainRoot]) {
88
+ this.market = domainRoot;
89
+ }
90
+ else {
91
+ console.warn("Unable to define market from www. domain", this.href);
92
+ }
93
+ }
94
+ // Check if domains are on one of the integration environments
95
+ const likelyEnvironment = this.environmentTypes.filter(x => this.url.hostname.indexOf(('-' + x)) !== -1);
96
+ if (!this.market && likelyEnvironment && likelyEnvironment.length > 0) {
97
+ const matchedEnvironment = likelyEnvironment[0];
98
+ const marketPrefix = this.url.hostname.substring(0, this.url.hostname.indexOf('-' + matchedEnvironment));
99
+ if (marketPrefix && this.markets[marketPrefix]) {
100
+ this.market = marketPrefix;
101
+ }
102
+ else {
103
+ console.warn("Unable to define market from preset environment names", this.href);
104
+ }
105
+ }
106
+ // Check if we're on a development environment
107
+ if (!this.market) {
108
+ const matchedDevEnvironment = this.developmentDomains.filter(x => this.url.hostname.indexOf(x) !== -1)[0];
109
+ if (!matchedDevEnvironment) {
110
+ // Fallback to first allowed market
111
+ this.market = this.allowedMarkets[0];
112
+ return;
113
+ }
114
+ const urlWithoutDomain = this.href.replace(matchedDevEnvironment, "");
115
+ // We see if the dev environment contains something like /dk
116
+ let matchedMarket = this.allowedMarkets.filter(x => {
117
+ const typesOfFallback = ['.' + x, x + '.', '/' + x + '/']; // Ex /dk, dk.html, /dk/
118
+ const matchedTypeOfFallback = typesOfFallback.filter(y => urlWithoutDomain.indexOf(y) !== -1);
119
+ return matchedTypeOfFallback.length > 0;
120
+ })[0];
121
+ if (matchedMarket) {
122
+ this.market = matchedMarket;
123
+ }
124
+ else {
125
+ // We do a similar filter for subpaths but for language this time
126
+ let filteredMarket = Object.entries(this.markets).filter((item) => {
127
+ const typesOfFallback = ['.' + item[1].fallbackLanguage, item[1].fallbackLanguage + '.', '/' + item[1].fallbackLanguage + '/']; // Ex /dk, dk.html, /dk/
128
+ const matchedTypeOfFallback = typesOfFallback.filter(y => urlWithoutDomain.indexOf(y) !== -1);
129
+ return matchedTypeOfFallback.length > 0;
130
+ })[0];
131
+ if (filteredMarket && filteredMarket[0]) {
132
+ this.market = filteredMarket[0];
133
+ }
134
+ }
135
+ if (!this.market) {
136
+ console.info("Was unable to detect market, used fallback");
137
+ this.market = this.allowedMarkets[0];
138
+ }
139
+ }
140
+ }
141
+ async resolveLanguage() {
142
+ var _a, _b, _c, _d;
143
+ if (this.language) {
144
+ return;
145
+ }
146
+ const potentialLanguages = [
147
+ (_a = document.querySelector("html[lang]")) === null || _a === void 0 ? void 0 : _a.getAttribute("lang"),
148
+ (_b = document.querySelector('[http-equiv="content-language"][content]')) === null || _b === void 0 ? void 0 : _b.getAttribute("content"),
149
+ (_c = document.querySelector('[property="og:locale"][content]')) === null || _c === void 0 ? void 0 : _c.getAttribute("content"),
150
+ (_d = document.querySelector("[lang]")) === null || _d === void 0 ? void 0 : _d.getAttribute("lang"),
151
+ ];
152
+ potentialLanguages.filter(x => x).forEach((language) => {
153
+ if (this.allowedLanguages.indexOf(language)) {
154
+ this.language = language;
155
+ return;
156
+ }
157
+ });
158
+ if (!this.language && this.market) {
159
+ this.language = this.markets[this.market].fallbackLanguage;
160
+ }
161
+ }
162
+ }
163
+
164
+ export { MarketWebContextService as M };
package/esm/loader.js CHANGED
@@ -10,7 +10,7 @@ const patchEsm = () => {
10
10
  const defineCustomElements = (win, options) => {
11
11
  if (typeof window === 'undefined') return Promise.resolve();
12
12
  return patchEsm().then(() => {
13
- return bootstrapLazy([["pn-marketweb-siteheader",[[4,"pn-marketweb-siteheader",{"market":[1],"language":[1],"endpoint":[1],"hideSiteSelector":[1028,"hide-site-selector"],"hideLanguageSelector":[1028,"hide-language-selector"],"hideSearch":[1028,"hide-search"],"hideLogin":[1028,"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",[[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",[[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",[[0,"pn-marketweb-sitefooter",{"market":[1],"language":[1],"endpoint":[1],"siteDefinition":[32],"footerContent":[32],"i18n":[32],"gotData":[32],"fetchingData":[32]}]]],["pn-filter-search",[[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",[[4,"pn-sidenav",{"language":[1],"navLabel":[1,"nav-label"],"i18n":[32]},[[0,"language","setLanguage"],[0,"openSubMenuLevelChange","onOpenSubMenuLevelChange"]]]]],["pn-sidenav-level",[[4,"pn-sidenav-level",{"level":[32],"levelId":[32],"isOpen":[32],"parentName":[32],"parentHref":[32],"parentLinkId":[32],"alignment":[32]}]]],["pn-sidenav-link",[[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",[[0,"pn-product-pricelist-result",{"item":[1040],"shownitems":[16],"weightText":[32]}]]],["pn-choice-button_2",[[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",[[4,"pn-site-footer",{"url":[1]}],[4,"pn-site-footer-col"]]],["pn-mainnav-link",[[4,"pn-mainnav-link",{"name":[1],"href":[1],"target":[1],"linkid":[1],"levelId":[32],"open":[32],"hasChildren":[32]}]]],["pn-language-selector_9",[[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"],"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":[1],"heading":[1],"language":[1],"i18n":[32]}],[0,"pn-site-selector-item",{"url":[1],"heading":[1],"description":[1],"newwindow":[4]}]]],["pn-product-tile_3",[[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);
13
+ return bootstrapLazy([["pn-marketweb-siteheader",[[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",[[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",[[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",[[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",[[1,"pn-filter-checkbox",{"value":[520],"name":[1],"checkboxid":[1],"disabled":[4],"checked":[4],"indeterminate":[1028]},[[0,"change","handlechange"]]]]],["pn-filter-search",[[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",[[4,"pn-sidenav",{"language":[1],"navLabel":[1,"nav-label"],"i18n":[32]},[[0,"language","setLanguage"],[0,"openSubMenuLevelChange","onOpenSubMenuLevelChange"]]]]],["pn-sidenav-level",[[4,"pn-sidenav-level",{"level":[32],"levelId":[32],"isOpen":[32],"parentName":[32],"parentHref":[32],"parentLinkId":[32],"alignment":[32]}]]],["pn-sidenav-link",[[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",[[0,"pn-product-pricelist-result",{"item":[1040],"shownitems":[16],"weightText":[32]}]]],["pn-choice-button_2",[[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",[[4,"pn-site-footer",{"url":[1]}],[4,"pn-site-footer-col"]]],["pn-mainnav-link",[[4,"pn-mainnav-link",{"name":[1],"href":[1],"target":[1],"linkid":[1],"levelId":[32],"open":[32],"hasChildren":[32]}]]],["pn-language-selector_9",[[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":[513],"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"],"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",[[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);
14
14
  });
15
15
  };
16
16
 
@@ -0,0 +1,63 @@
1
+ import { r as registerInstance, h, a as Host, g as getElement } from './index-1537f439.js';
2
+
3
+ const pnFilterCheckboxCss = ":host{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host input{opacity:0;position:absolute}:host input[type=checkbox]+label.pn-checkbox{width:1.5em;min-width:1.5em;height:1.5em;min-height:1.5em;background:#fff;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;position:relative;border:0.1rem solid #969087;cursor:pointer;border-radius:0.4rem;cursor:pointer;-webkit-transition-duration:220ms;transition-duration:220ms;-webkit-transition-timing-function:cubic-bezier(0.79, 0.14, 0.15, 0.86);transition-timing-function:cubic-bezier(0.79, 0.14, 0.15, 0.86);-webkit-transition-property:border, background, -webkit-box-shadow;transition-property:border, background, -webkit-box-shadow;transition-property:border, background, box-shadow;transition-property:border, background, box-shadow, -webkit-box-shadow}:host input[type=checkbox]+label.pn-checkbox svg{width:80%;fill:none}:host input[type=checkbox]+label.pn-checkbox svg polyline{stroke:#FFF;-webkit-transform-origin:0 0;transform-origin:0 0;stroke-linecap:round;stroke-dasharray:23;stroke-dashoffset:23;-webkit-transition-delay:none;transition-delay:none;-webkit-transition:stroke-dashoffset 180ms cubic-bezier(0.79, 0.14, 0.15, 0.86);transition:stroke-dashoffset 180ms cubic-bezier(0.79, 0.14, 0.15, 0.86)}:host input[type=checkbox]:hover+label.pn-checkbox{border:0.1rem solid #005D92;background:#E0F8FF}:host input[type=checkbox]:checked+label.pn-checkbox,:host input[type=checkbox]:indeterminate+label.pn-checkbox{background:#005D92;border:0.1rem solid #005D92}:host input[type=checkbox]:checked+label.pn-checkbox svg polyline,:host input[type=checkbox]:indeterminate+label.pn-checkbox svg polyline{-webkit-transition-delay:220ms;transition-delay:220ms}:host input[type=checkbox]:checked+label.pn-checkbox svg polyline.checkmark-path{stroke-dashoffset:0}:host input[type=checkbox]:indeterminate+label.pn-checkbox svg polyline.indeterminate-path{stroke-dashoffset:0}:host input[type=checkbox]:focus+label.pn-checkbox,:host input[type=checkbox]:active+label.pn-checkbox{-webkit-box-shadow:0 0 0 0.1rem white, 0 0 0 0.3rem #005D92;box-shadow:0 0 0 0.1rem white, 0 0 0 0.3rem #005D92}:host input[type=checkbox]:disabled+label.pn-checkbox{background-color:#D3CECB;border:0.1rem solid #969087;cursor:not-allowed}:host input[type=checkbox]:disabled+label.pn-checkbox svg polyline{stroke:#969087}:host input[type=checkbox]:disabled:checked+label.pn-checkbox{border:0.1rem solid transparent}:host input[type=checkbox]:disabled:active+label.pn-checkbox{-webkit-box-shadow:none;box-shadow:none}";
4
+
5
+ let PnFilterCheckbox = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.disabled = false;
9
+ this.checked = false;
10
+ this.indeterminate = false;
11
+ }
12
+ handlechange() {
13
+ this.indeterminate = false;
14
+ }
15
+ componentDidLoad() {
16
+ this.checkAndSetIndeterminateState();
17
+ this.bindEvents();
18
+ }
19
+ componentDidUpdate() {
20
+ this.checkAndSetIndeterminateState();
21
+ }
22
+ bindEvents() {
23
+ const labels = document.querySelectorAll('label[for="' + this.checkboxid + '"]');
24
+ labels.forEach((label) => {
25
+ label.addEventListener('click', () => {
26
+ this.hostElement.shadowRoot.querySelector('label').click();
27
+ });
28
+ });
29
+ const checkboxInput = this.hostElement.shadowRoot.querySelector('input');
30
+ checkboxInput.addEventListener('change', this.onCheckboxChange.bind(this, checkboxInput));
31
+ }
32
+ onCheckboxChange(checkboxInput) {
33
+ let outsideInput = this.hostElement.querySelector("input.hidden-" + this.checkboxid);
34
+ if (outsideInput) {
35
+ outsideInput.value = (checkboxInput.checked) ? this.value : "";
36
+ }
37
+ }
38
+ checkAndSetIndeterminateState() {
39
+ let checkbox = this.hostElement.querySelector(`#${this.checkboxid}`);
40
+ if (checkbox) {
41
+ checkbox.indeterminate = this.indeterminate;
42
+ }
43
+ }
44
+ renderInputOutsideShadowRoot() {
45
+ var _a;
46
+ let input = this.hostElement.querySelector("input.hidden-" + this.checkboxid);
47
+ if (!input) {
48
+ input = this.hostElement.ownerDocument.createElement("input");
49
+ input.type = "hidden";
50
+ input.classList.add("hidden-" + this.checkboxid);
51
+ this.hostElement.appendChild(input);
52
+ }
53
+ input.name = (_a = this.name) !== null && _a !== void 0 ? _a : this.checkboxid;
54
+ }
55
+ render() {
56
+ this.renderInputOutsideShadowRoot();
57
+ return (h(Host, { checked: this.checked, id: this.checkboxid }, h("input", { type: "checkbox", id: this.checkboxid, value: this.value, name: this.name || this.checkboxid, disabled: this.disabled, checked: this.checked }), h("label", { htmlFor: this.checkboxid, class: "pn-checkbox" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none" }, h("polyline", { class: "checkmark-path", points: "4,12 9,17 20,6", "stroke-width": "3" }), h("polyline", { class: "indeterminate-path", points: "4,12 20,12", "stroke-width": "3" })))));
58
+ }
59
+ get hostElement() { return getElement(this); }
60
+ };
61
+ PnFilterCheckbox.style = pnFilterCheckboxCss;
62
+
63
+ export { PnFilterCheckbox as pn_filter_checkbox };
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, a as Host, g as getElement, c as createEvent } from './index-1537f439.js';
2
- import { s as state, o as onChange } from './pn-mainnav-store-4b030e31.js';
2
+ import { s as state, o as onChange } from './pn-mainnav-store-8e518460.js';
3
3
  import './index-e34aec9d.js';
4
4
 
5
5
  const translations$1 = {
@@ -37,18 +37,30 @@ let PnlanguageSelector = class {
37
37
  this.initialize();
38
38
  }
39
39
  initialize() {
40
+ this.setSelectedLanguageName();
41
+ this.addEventBindingsToOptions();
42
+ }
43
+ addEventBindingsToOptions() {
40
44
  const options = [].slice.apply(this.hostElement.querySelectorAll("pn-language-selector-option"));
41
45
  options.map((option) => {
42
- // Set current label of language selector
43
- if (option.getAttribute("code") == this.value || option.getAttribute("selected") == "true") {
44
- this.selectedLanguageName = option.getAttribute("name");
45
- }
46
+ option.removeEventListener("setCurrentLanguage", (event) => {
47
+ this.onSetCurrentLanguage(event.detail);
48
+ });
46
49
  // Bind event listener for when a user change language
47
50
  option.addEventListener("setCurrentLanguage", (event) => {
48
51
  this.onSetCurrentLanguage(event.detail);
49
52
  });
50
53
  });
51
54
  }
55
+ setSelectedLanguageName() {
56
+ const options = [].slice.apply(this.hostElement.querySelectorAll("pn-language-selector-option"));
57
+ options.map((option) => {
58
+ // Set current label of language selector
59
+ if (option.getAttribute("code") == this.value) { // || option.getAttribute("selected") == "true"
60
+ this.selectedLanguageName = option.getAttribute("name");
61
+ }
62
+ });
63
+ }
52
64
  onSetCurrentLanguage(option) {
53
65
  this.value = option.code;
54
66
  this.selectedLanguageName = option.name;
@@ -64,15 +76,18 @@ let PnlanguageSelector = class {
64
76
  components.forEach((component) => {
65
77
  // Pass values as props into slotted components
66
78
  // component.setAttribute("current-language", this.value);
67
- component.setAttribute("selected", (component.getAttribute("code") === this.value) + '');
79
+ const isSelected = (component.getAttribute("code") === this.value) + '';
80
+ if ((component.getAttribute('selected') + '') !== isSelected) {
81
+ component.setAttribute("selected", isSelected);
82
+ }
68
83
  });
69
84
  }
70
85
  render() {
71
- return (h(Host, null, h("pn-nav-dropdown", { label: this.selectedLanguageName, icon: "globe" }, h("nav", { class: "languageselector-nav", "aria-label": this.i18n.heading }, h("strong", { class: "languageselector-title" }, this.i18n.heading), h("div", { class: "languageselector-list", role: "list" }, h("slot", null))))));
86
+ return (h(Host, { value: this.value }, h("pn-nav-dropdown", { label: this.selectedLanguageName, icon: "globe" }, h("nav", { class: "languageselector-nav", "aria-label": this.i18n.heading }, h("strong", { class: "languageselector-title" }, this.i18n.heading), h("div", { class: "languageselector-list", role: "list" }, h("slot", null))))));
72
87
  }
73
88
  get hostElement() { return getElement(this); }
74
89
  static get watchers() { return {
75
- "value": ["onValueChange"]
90
+ "value": ["setSelectedLanguageName", "setTranslations", "onValueChange"]
76
91
  }; }
77
92
  };
78
93
  PnlanguageSelector.style = pnLanguageSelectorCss;
@@ -198,13 +213,13 @@ let PnMainnav = class {
198
213
  state.openLevel = event.detail;
199
214
  }
200
215
  render() {
201
- return (h(Host, null, h("div", { class: "mainnav-toggle" }, h("button", { "aria-controls": this.navigationId, "aria-expanded": state.openMenu + '', onClick: this.setMenuOpenState.bind(this) }, state.i18n.mainMenuButton, h("pn-icon", { symbol: state.openMenu ? "close" : "bars", color: "white" }))), h("nav", { class: "mainnav", "aria-label": this.navLabel, "data-menu-open": state.openMenu + '', id: this.navigationId }, h("slot", null))));
216
+ return (h(Host, null, h("div", { class: "mainnav-toggle" }, h("button", { "aria-controls": this.navigationId, "aria-expanded": state.openMenu + '', onClick: this.setMenuOpenState.bind(this) }, state.i18n.mainMenuButton, h("pn-icon", { symbol: state.openMenu ? "close" : "bars", color: "white" }))), h("nav", { class: "mainnav", "aria-label": this.navLabel, "data-menu-open": state.openMenu + '', "data-menu-currentlevel": state.currentLevel, id: this.navigationId }, h("slot", null))));
202
217
  }
203
218
  get hostElement() { return getElement(this); }
204
219
  };
205
220
  PnMainnav.style = pnMainnavCss;
206
221
 
207
- 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}";
222
+ 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}";
208
223
 
209
224
  let PnMainnavLevel = class {
210
225
  constructor(hostRef) {
@@ -263,9 +278,13 @@ let PnMainnavLevel = class {
263
278
  }
264
279
  onChangeOpenLevel() {
265
280
  this.isOpen = state.openLevel === this.levelId;
281
+ state.currentLevel = this.level;
266
282
  }
267
283
  render() {
268
- return (h(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) ? (h("div", { class: "mainnav-level-header" }, h("label", { htmlFor: this.levelId }, state.i18n.menuGoBackButton), h("button", { class: "secondlevel-backbtn", onClick: () => state.openLevel = '', "aria-expanded": (state.openLevel === this.levelId) + '' }, h("pn-icon", { symbol: "arrow-left", color: "blue700" }), state.i18n.menuStartButton), (this.parentHref && this.parentName) ? h("pn-mainnav-link", { href: this.parentHref, name: this.parentName, linkid: this.parentLinkId }) : null)) : null, h("slot", { name: "top" }), h("slot", null), h("slot", { name: "additional" }), h("slot", { name: "footer" })));
284
+ return (h(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) ? (h("div", { class: "mainnav-level-header" }, h("label", { htmlFor: this.levelId }, state.i18n.menuGoBackButton), h("button", { class: "secondlevel-backbtn", onClick: () => {
285
+ state.openLevel = '';
286
+ state.currentLevel = 1;
287
+ }, "aria-expanded": (state.openLevel === this.levelId) + '' }, h("pn-icon", { symbol: "arrow-left", color: "blue700" }), state.i18n.menuStartButton), (this.parentHref && this.parentName) ? h("pn-mainnav-link", { href: this.parentHref, name: this.parentName, linkid: this.parentLinkId }) : null)) : null, h("slot", { name: "top" }), h("slot", null), h("slot", { name: "additional" }), h("slot", { name: "footer" })));
269
288
  }
270
289
  get hostElement() { return getElement(this); }
271
290
  static get watchers() { return {
@@ -545,6 +564,10 @@ let PnMarketwebSiteheaderLogin = class {
545
564
  h("div", null, h("ul", null, (_c = this.loginDialog.loginMenuLinks) === null || _c === void 0 ? void 0 : _c.map(link => h("li", null, h("a", { href: link.href, target: link.openInNewWindow ? "_blank" : "_self", class: "btn btn-link" }, link.linkText)))))));
546
565
  }
547
566
  get hostElement() { return getElement(this); }
567
+ static get watchers() { return {
568
+ "i18n": ["init"],
569
+ "loginDialog": ["init"]
570
+ }; }
548
571
  };
549
572
  PnMarketwebSiteheaderLogin.style = pnMarketwebSiteheaderLoginCss;
550
573
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, a as Host, g as getElement } from './index-1537f439.js';
2
- import { s as state } from './pn-mainnav-store-4b030e31.js';
2
+ import { s as state } from './pn-mainnav-store-8e518460.js';
3
3
  import './index-e34aec9d.js';
4
4
 
5
5
  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}";
@@ -3,6 +3,7 @@ import { c as createStore } from './index-e34aec9d.js';
3
3
  // Read more about how stencil stores work here: https://stenciljs.com/docs/stencil-store
4
4
  const { state, onChange } = createStore({
5
5
  openLevel: '',
6
+ currentLevel: 1,
6
7
  openMenu: false,
7
8
  i18n: {
8
9
  menuHomeButton: '',
@@ -53,5 +53,5 @@ const patchCloneNodeFix = (HTMLElementPrototype) => {
53
53
  };
54
54
 
55
55
  patchBrowser().then(options => {
56
- return bootstrapLazy([["pn-marketweb-siteheader",[[4,"pn-marketweb-siteheader",{"market":[1],"language":[1],"endpoint":[1],"hideSiteSelector":[1028,"hide-site-selector"],"hideLanguageSelector":[1028,"hide-language-selector"],"hideSearch":[1028,"hide-search"],"hideLogin":[1028,"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",[[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",[[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",[[0,"pn-marketweb-sitefooter",{"market":[1],"language":[1],"endpoint":[1],"siteDefinition":[32],"footerContent":[32],"i18n":[32],"gotData":[32],"fetchingData":[32]}]]],["pn-filter-search",[[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",[[4,"pn-sidenav",{"language":[1],"navLabel":[1,"nav-label"],"i18n":[32]},[[0,"language","setLanguage"],[0,"openSubMenuLevelChange","onOpenSubMenuLevelChange"]]]]],["pn-sidenav-level",[[4,"pn-sidenav-level",{"level":[32],"levelId":[32],"isOpen":[32],"parentName":[32],"parentHref":[32],"parentLinkId":[32],"alignment":[32]}]]],["pn-sidenav-link",[[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",[[0,"pn-product-pricelist-result",{"item":[1040],"shownitems":[16],"weightText":[32]}]]],["pn-choice-button_2",[[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",[[4,"pn-site-footer",{"url":[1]}],[4,"pn-site-footer-col"]]],["pn-mainnav-link",[[4,"pn-mainnav-link",{"name":[1],"href":[1],"target":[1],"linkid":[1],"levelId":[32],"open":[32],"hasChildren":[32]}]]],["pn-language-selector_9",[[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"],"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":[1],"heading":[1],"language":[1],"i18n":[32]}],[0,"pn-site-selector-item",{"url":[1],"heading":[1],"description":[1],"newwindow":[4]}]]],["pn-product-tile_3",[[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);
56
+ return bootstrapLazy([["pn-marketweb-siteheader",[[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",[[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",[[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",[[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",[[1,"pn-filter-checkbox",{"value":[520],"name":[1],"checkboxid":[1],"disabled":[4],"checked":[4],"indeterminate":[1028]},[[0,"change","handlechange"]]]]],["pn-filter-search",[[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",[[4,"pn-sidenav",{"language":[1],"navLabel":[1,"nav-label"],"i18n":[32]},[[0,"language","setLanguage"],[0,"openSubMenuLevelChange","onOpenSubMenuLevelChange"]]]]],["pn-sidenav-level",[[4,"pn-sidenav-level",{"level":[32],"levelId":[32],"isOpen":[32],"parentName":[32],"parentHref":[32],"parentLinkId":[32],"alignment":[32]}]]],["pn-sidenav-link",[[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",[[0,"pn-product-pricelist-result",{"item":[1040],"shownitems":[16],"weightText":[32]}]]],["pn-choice-button_2",[[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",[[4,"pn-site-footer",{"url":[1]}],[4,"pn-site-footer-col"]]],["pn-mainnav-link",[[4,"pn-mainnav-link",{"name":[1],"href":[1],"target":[1],"linkid":[1],"levelId":[32],"open":[32],"hasChildren":[32]}]]],["pn-language-selector_9",[[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":[513],"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"],"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",[[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);
57
57
  });
@@ -1,4 +1,5 @@
1
1
  import { r as registerInstance, h, a as Host, g as getElement } from './index-1537f439.js';
2
+ import { M as MarketWebContextService } from './MarketWebContextService-9a201388.js';
2
3
 
3
4
  const translations = {
4
5
  'sv': {
@@ -58,27 +59,64 @@ let PnMarketwebSiteheader = class {
58
59
  this.market = "se";
59
60
  /** Specifies which language we want to show (sv,da,fi,no,en) */
60
61
  this.language = "sv";
62
+ /** Specifies which environment we're fetching data from. (production, preproduction, integration, localhost) */
63
+ this.environment = null; //sv
61
64
  /** Specifies which endpoint domain we should load from */
62
- this.endpoint = "";
65
+ this.endpoint = null;
63
66
  this.gotData = false;
64
67
  this.fetchingData = false;
65
68
  }
66
69
  componentWillLoad() {
67
- this.setTranslations();
68
- this.init();
70
+ this.setInitialValues().then(() => {
71
+ this.init();
72
+ });
73
+ }
74
+ async setInitialValues(href = window.location.href) {
75
+ var _a;
76
+ const marketWebContextService = new MarketWebContextService(href);
77
+ if (this.market === null) {
78
+ const resolvedMarket = await marketWebContextService.getMarket();
79
+ this.market = resolvedMarket;
80
+ }
81
+ if (this.language === null) {
82
+ const resolvedMarket = await marketWebContextService.getLanguage();
83
+ this.language = resolvedMarket;
84
+ }
85
+ if (this.environment === null) {
86
+ this.environment = await marketWebContextService.getEnvironmentName();
87
+ }
88
+ if (this.endpoint === null && ((_a = this.environment) === null || _a === void 0 ? void 0 : _a.indexOf('local')) === -1) {
89
+ this.endpoint = await marketWebContextService.getEndpoint(this.environment);
90
+ }
91
+ if (this.endpoint === null) {
92
+ this.endpoint = "";
93
+ }
69
94
  }
70
95
  async init() {
96
+ this.setTranslations();
71
97
  await this.fetchData();
72
98
  }
73
99
  setTranslations() {
74
- if (translations[this.language]) {
100
+ if (this.language && translations[this.language]) {
75
101
  this.i18n = translations[this.language];
76
102
  }
77
103
  }
104
+ onLanguageChange() {
105
+ this.setTranslations();
106
+ this.fetchData();
107
+ }
108
+ onMarketChange() {
109
+ this.fetchData();
110
+ }
78
111
  async fetchData() {
112
+ if (this.endpoint === null || !this.market || !this.language) {
113
+ // console.warn(`One or more values where not specified.\nEndpoint: ${this.endpoint}\nMarket: ${this.market}\nLanguage: ${this.language}`)
114
+ return;
115
+ }
79
116
  this.fetchingData = true;
80
117
  const endpointBase = (this.endpoint.lastIndexOf("/") === this.endpoint.length - 1) ? this.endpoint.substring(0, this.endpoint.length - 1) : this.endpoint;
81
- const response = await fetch(`${endpointBase}${this.endpointPath}?market=${this.market}&language=${this.language}`);
118
+ const fetchUrl = `${endpointBase}${this.endpointPath}?market=${this.market}&language=${this.language}`;
119
+ const response = await fetch(fetchUrl);
82
120
  const data = await response.json();
83
121
  this.setStateFromData(data);
84
122
  }
@@ -121,7 +159,7 @@ let PnMarketwebSiteheader = class {
121
159
  }
122
160
  render() {
123
161
  var _a, _b, _c, _d, _e;
124
- return (h(Host, null, h("pn-site-footer", { url: (_b = (_a = this.siteDefinition) === null || _a === void 0 ? void 0 : _a.url) !== null && _b !== void 0 ? _b : "" }, (this.gotData && ((_c = this.footerContent) === null || _c === void 0 ? void 0 : _c.columns)) ? this.footerContent.columns.map((column) => (h("pn-site-footer-col", null, h("h3", null, column.heading), column.links ? (h("ul", Object.assign({}, ((column.links && column.links[0] && column.links[0].linkType) && { 'class': 'social-media' })), column.links.map((link) => {
162
+ return (h(Host, { language: this.language, market: this.market, environment: this.environment }, h("pn-site-footer", { url: (_b = (_a = this.siteDefinition) === null || _a === void 0 ? void 0 : _a.url) !== null && _b !== void 0 ? _b : "" }, (this.gotData && ((_c = this.footerContent) === null || _c === void 0 ? void 0 : _c.columns)) ? this.footerContent.columns.map((column) => (h("pn-site-footer-col", null, h("h3", null, column.heading), column.links ? (h("ul", Object.assign({}, ((column.links && column.links[0] && column.links[0].linkType) && { 'class': 'social-media' })), column.links.map((link) => {
125
163
  var linkText = link.linkText;
126
164
  if (link.linkType) {
127
165
  linkText = this.getLinkContentByType(link.linkType);
@@ -135,6 +173,10 @@ let PnMarketwebSiteheader = class {
135
173
  }))) : null))));
136
174
  }
137
175
  get hostElement() { return getElement(this); }
176
+ static get watchers() { return {
177
+ "language": ["onLanguageChange"],
178
+ "market": ["onMarketChange"]
179
+ }; }
138
180
  };
139
181
  PnMarketwebSiteheader.style = pnMarketwebSitefooterCss;
140
182