@postnord/pn-marketweb-components 1.0.40 → 1.0.43

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 (70) hide show
  1. package/cjs/{MarketWebLoginManager-859590e2.js → MarketWebLoginManager-1282a883.js} +1 -2
  2. package/cjs/loader.cjs.js +1 -1
  3. package/cjs/mockresponse-c40ea527.js +24 -0
  4. package/cjs/pn-language-selector_9.cjs.entry.js +17 -2
  5. package/cjs/pn-market-web-components.cjs.js +1 -1
  6. package/cjs/pn-marketweb-sitefooter.cjs.entry.js +0 -1
  7. package/cjs/pn-marketweb-siteheader.cjs.entry.js +5 -6
  8. package/cjs/pn-pex-pricefinder.cjs.entry.js +121 -0
  9. package/cjs/pn-profile-selector.cjs.entry.js +1 -1
  10. package/collection/collection-manifest.json +1 -0
  11. package/collection/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.js +0 -1
  12. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.js +1 -1
  13. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.js +28 -30
  14. package/collection/components/navigation/pn-language-selector/pn-language-selector.js +15 -0
  15. package/collection/components/widgets/pn-pex-pricefinder/pex-pricefinder.stories.js +22 -0
  16. package/collection/components/widgets/pn-pex-pricefinder/pn-pex-pricefinder.css +59 -0
  17. package/collection/components/widgets/pn-pex-pricefinder/pn-pex-pricefinder.js +188 -0
  18. package/collection/components/widgets/pn-pex-pricefinder/translations.js +22 -0
  19. package/collection/components/widgets/pn-pex-pricefinder/types.js +1 -0
  20. package/collection/globals/MarketWebLoginManager.js +1 -2
  21. package/custom-elements/index.d.ts +6 -0
  22. package/custom-elements/index.js +154 -25
  23. package/custom-elements/mockresponse.js +20 -0
  24. package/esm/{MarketWebLoginManager-83f2e86a.js → MarketWebLoginManager-310d2552.js} +1 -2
  25. package/esm/loader.js +1 -1
  26. package/esm/mockresponse-e2c08e66.js +20 -0
  27. package/esm/pn-language-selector_9.entry.js +17 -2
  28. package/esm/pn-market-web-components.js +1 -1
  29. package/esm/pn-marketweb-sitefooter.entry.js +0 -1
  30. package/esm/pn-marketweb-siteheader.entry.js +5 -6
  31. package/esm/pn-pex-pricefinder.entry.js +117 -0
  32. package/esm/pn-profile-selector.entry.js +1 -1
  33. package/esm-es5/{MarketWebLoginManager-83f2e86a.js → MarketWebLoginManager-310d2552.js} +1 -1
  34. package/esm-es5/loader.js +1 -1
  35. package/esm-es5/mockresponse-e2c08e66.js +1 -0
  36. package/esm-es5/pn-language-selector_9.entry.js +1 -1
  37. package/esm-es5/pn-market-web-components.js +1 -1
  38. package/esm-es5/pn-marketweb-sitefooter.entry.js +1 -1
  39. package/esm-es5/pn-marketweb-siteheader.entry.js +1 -1
  40. package/esm-es5/pn-pex-pricefinder.entry.js +1 -0
  41. package/esm-es5/pn-profile-selector.entry.js +1 -1
  42. package/package.json +2 -2
  43. package/pn-market-web-components/p-1611123a.system.entry.js +1 -0
  44. package/pn-market-web-components/p-2456901a.js +1 -0
  45. package/pn-market-web-components/p-2e6644ea.system.entry.js +1 -0
  46. package/pn-market-web-components/p-33cefc5e.system.entry.js +1 -0
  47. package/pn-market-web-components/p-38ff23f5.entry.js +1 -0
  48. package/pn-market-web-components/p-5f8ef634.entry.js +1 -0
  49. package/pn-market-web-components/p-84d9f552.system.js +1 -0
  50. package/pn-market-web-components/p-93d8620b.entry.js +1 -0
  51. package/pn-market-web-components/p-942f590f.entry.js +1 -0
  52. package/pn-market-web-components/p-a22df959.system.js +1 -1
  53. package/pn-market-web-components/{p-9aca0bae.entry.js → p-a5284c78.entry.js} +1 -1
  54. package/pn-market-web-components/p-c25ada49.js +1 -0
  55. package/pn-market-web-components/{p-f4fda846.system.entry.js → p-d133f30d.system.entry.js} +1 -1
  56. package/pn-market-web-components/p-da370548.system.entry.js +1 -0
  57. package/pn-market-web-components/{p-58cdf3a6.system.js → p-f1311662.system.js} +1 -1
  58. package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
  59. package/types/components/navigation/pn-language-selector/pn-language-selector.d.ts +1 -0
  60. package/types/components/widgets/pn-pex-pricefinder/pn-pex-pricefinder.d.ts +30 -0
  61. package/types/components/widgets/pn-pex-pricefinder/translations.d.ts +22 -0
  62. package/types/components/widgets/pn-pex-pricefinder/types.d.ts +27 -0
  63. package/types/components.d.ts +37 -0
  64. package/pn-market-web-components/p-3f876199.entry.js +0 -1
  65. package/pn-market-web-components/p-4aa3b95d.entry.js +0 -1
  66. package/pn-market-web-components/p-a924001f.system.entry.js +0 -1
  67. package/pn-market-web-components/p-ac36097e.system.entry.js +0 -1
  68. package/pn-market-web-components/p-b2383083.system.entry.js +0 -1
  69. package/pn-market-web-components/p-c254cfdf.js +0 -1
  70. package/pn-market-web-components/p-e9d8a991.entry.js +0 -1
@@ -0,0 +1,188 @@
1
+ import { Component, h, Host, Element, Prop, State, Listen } from "@stencil/core";
2
+ import { translations } from "./translations";
3
+ export class PnPexPricefinder {
4
+ constructor() {
5
+ /** Specifies which language we want to show component in (sv,da,fi,no,en) */
6
+ this.language = "sv";
7
+ /** Currency (Kr, €)*/
8
+ this.currency = "Kr";
9
+ /** API Url */
10
+ this.apiUrl = "/api/pex/order";
11
+ this.i18n = translations.sv;
12
+ this.fromzip = null;
13
+ this.tozip = null;
14
+ this.weight = 100;
15
+ this.when = (new Date()).toISOString().split('T')[0];
16
+ this.response = null;
17
+ }
18
+ componentWillLoad() {
19
+ this.init();
20
+ }
21
+ async init() {
22
+ this.checkParameters();
23
+ this.setLanguage();
24
+ }
25
+ checkParameters() {
26
+ const params = new URLSearchParams(window.location.href);
27
+ if (!params) {
28
+ return;
29
+ }
30
+ const paramKeys = ['fromzip', 'tozip', 'weight', 'when'];
31
+ paramKeys.forEach((key) => {
32
+ if (params.get(key)) {
33
+ this[key] = params.get(key);
34
+ }
35
+ });
36
+ }
37
+ setLanguage() {
38
+ if (translations[this.language]) {
39
+ this.i18n = translations[this.language];
40
+ }
41
+ }
42
+ onSubmit(e) {
43
+ e.preventDefault();
44
+ const formData = new FormData(e.target);
45
+ const requestQuery = this.compileRequestQuery(formData);
46
+ this.fetchResult(requestQuery);
47
+ }
48
+ compileRequestQuery(formData) {
49
+ let query = {
50
+ "from": formData.get("fromzip"),
51
+ "to": formData.get("tozip"),
52
+ "weight": formData.get("weight"),
53
+ "when": formData.get("when")
54
+ };
55
+ if (!query.when) {
56
+ query.when = this.hostElement.querySelector('input.date-input').value;
57
+ }
58
+ if (!formData.get("fromzip") || !formData.get("tozip") || !formData.get("weight")) {
59
+ console.error("Form data is not compliant");
60
+ return;
61
+ }
62
+ return query;
63
+ }
64
+ async fetchResult(query) {
65
+ this.response = null;
66
+ const params = new URLSearchParams(query);
67
+ const req = await (fetch(`${this.apiUrl}?${params.toString()}`, {
68
+ method: 'get',
69
+ headers: {
70
+ 'Content-Type': 'application/json'
71
+ }
72
+ }).catch(this.onFetchError.bind(this)));
73
+ let response = await (req.json().catch(this.onFetchError.bind(this)));
74
+ if (!response) {
75
+ response = await (await import("./mockresponse.json")).default;
76
+ }
77
+ if (response) {
78
+ this.response = response;
79
+ }
80
+ }
81
+ onFetchError(error) {
82
+ console.error('onFetchError(error', error);
83
+ }
84
+ render() {
85
+ return (h(Host, null,
86
+ h("div", { class: "pex-pricefinder-top" },
87
+ h("pn-illustration", { illustration: "PEX-truck" }),
88
+ h("h2", null, this.i18n.heading)),
89
+ h("form", { method: "get", action: "", class: "pex-pricefinder-form", onSubmit: this.onSubmit.bind(this) },
90
+ h("fieldset", null,
91
+ h("div", null,
92
+ h("pn-input", { type: "number", label: this.i18n.labelFrom, inputid: "fromzip", name: "fromzip", placeholder: this.i18n.zipPlaceholder, required: true, value: this.fromzip }),
93
+ h("pn-input", { type: "number", label: this.i18n.labelTo, inputid: "tozip", name: "tozip", placeholder: this.i18n.zipPlaceholder, required: true, value: this.tozip }))),
94
+ h("fieldset", null,
95
+ h("div", null,
96
+ h("pn-input", { type: "number", label: this.i18n.labelWeight, inputid: "weight", name: "weight", placeholder: this.i18n.weightPlaceholder, required: true, value: this.weight }),
97
+ h("div", { class: "datepicker" },
98
+ h("label", { htmlFor: "when" }, this.i18n.labelWhen),
99
+ h("pn-date-picker", { inputid: "when", name: "when", "start-of-week": "1", min: (new Date()).toISOString().split('T')[0], language: this.language, value: this.when })))),
100
+ h("fieldset", null,
101
+ h("div", null,
102
+ h("pn-button", { type: "submit" }, this.i18n.submitButtonText)))),
103
+ this.response ? (h("div", { class: "pex-pricefinder-response" },
104
+ h("strong", null,
105
+ this.response.data.value,
106
+ " ",
107
+ this.currency))) : null));
108
+ }
109
+ static get is() { return "pn-pex-pricefinder"; }
110
+ static get originalStyleUrls() { return {
111
+ "$": ["pn-pex-pricefinder.scss"]
112
+ }; }
113
+ static get styleUrls() { return {
114
+ "$": ["pn-pex-pricefinder.css"]
115
+ }; }
116
+ static get properties() { return {
117
+ "language": {
118
+ "type": "string",
119
+ "mutable": false,
120
+ "complexType": {
121
+ "original": "string",
122
+ "resolved": "string",
123
+ "references": {}
124
+ },
125
+ "required": false,
126
+ "optional": false,
127
+ "docs": {
128
+ "tags": [],
129
+ "text": "Specifies which language we want to show component in (sv,da,fi,no,en)"
130
+ },
131
+ "attribute": "language",
132
+ "reflect": false,
133
+ "defaultValue": "\"sv\""
134
+ },
135
+ "currency": {
136
+ "type": "string",
137
+ "mutable": false,
138
+ "complexType": {
139
+ "original": "string",
140
+ "resolved": "string",
141
+ "references": {}
142
+ },
143
+ "required": false,
144
+ "optional": false,
145
+ "docs": {
146
+ "tags": [],
147
+ "text": "Currency (Kr, \u20AC)"
148
+ },
149
+ "attribute": "currency",
150
+ "reflect": false,
151
+ "defaultValue": "\"Kr\""
152
+ },
153
+ "apiUrl": {
154
+ "type": "string",
155
+ "mutable": false,
156
+ "complexType": {
157
+ "original": "string",
158
+ "resolved": "string",
159
+ "references": {}
160
+ },
161
+ "required": false,
162
+ "optional": false,
163
+ "docs": {
164
+ "tags": [],
165
+ "text": "API Url"
166
+ },
167
+ "attribute": "api-url",
168
+ "reflect": false,
169
+ "defaultValue": "\"/api/pex/order\""
170
+ }
171
+ }; }
172
+ static get states() { return {
173
+ "i18n": {},
174
+ "fromzip": {},
175
+ "tozip": {},
176
+ "weight": {},
177
+ "when": {},
178
+ "response": {}
179
+ }; }
180
+ static get elementRef() { return "hostElement"; }
181
+ static get listeners() { return [{
182
+ "name": "language",
183
+ "method": "setLanguage",
184
+ "target": undefined,
185
+ "capture": false,
186
+ "passive": false
187
+ }]; }
188
+ }
@@ -0,0 +1,22 @@
1
+ export const translations = {
2
+ 'sv': {
3
+ "heading": "Beräkna kostnad med PEX Bud",
4
+ "labelFrom": "Från postkod",
5
+ "labelTo": "Till postkod",
6
+ "zipPlaceholder": "Ex. 12831",
7
+ "labelWeight": "Vikt (i gram)",
8
+ "weightPlaceholder": "Ex. 1000",
9
+ "labelWhen": "När",
10
+ "submitButtonText": "Beräkna pris"
11
+ },
12
+ 'en': {
13
+ "heading": "Calculate cost with PEX Bud",
14
+ "labelFrom": "From zip",
15
+ "labelTo": "To zip",
16
+ "zipPlaceholder": "Ex. 12831",
17
+ "labelWeight": "Weight (in grams)",
18
+ "weightPlaceholder": "Ex. 1000",
19
+ "labelWhen": "When",
20
+ "submitButtonText": "Calculate price"
21
+ }
22
+ };
@@ -87,8 +87,7 @@ class MarketWebLoginManager {
87
87
  return `${this.getBaseUrl()}${this.endpoints.authorizationEndpoint}?redirectionUrl=${redirectPage}`;
88
88
  }
89
89
  getLogoutUrl(redirectPage = "") {
90
- const currentPage = window.location.href;
91
- redirectPage = redirectPage ? redirectPage : currentPage;
90
+ redirectPage = window.location.origin + '/logout';
92
91
  return `${this.getBaseUrl()}${this.endpoints.logoutEndpoint}?redirectionUrl=${redirectPage}&authorization=${this.store.get(this.keys.token)}`;
93
92
  }
94
93
  getUserInfo() {
@@ -104,6 +104,12 @@ export const PnMarketwebSiteheaderSearch: {
104
104
  new (): PnMarketwebSiteheaderSearch;
105
105
  };
106
106
 
107
+ interface PnPexPricefinder extends Components.PnPexPricefinder, HTMLElement {}
108
+ export const PnPexPricefinder: {
109
+ prototype: PnPexPricefinder;
110
+ new (): PnPexPricefinder;
111
+ };
112
+
107
113
  interface PnProductPricelist extends Components.PnProductPricelist, HTMLElement {}
108
114
  export const PnProductPricelist: {
109
115
  prototype: PnProductPricelist;
@@ -281,7 +281,7 @@ let PnFilterSearch$1 = class extends HTMLElement {
281
281
  static get style() { return pnFilterSearchCss; }
282
282
  };
283
283
 
284
- const translations$7 = {
284
+ const translations$8 = {
285
285
  'sv': {
286
286
  'componentheading': 'Vad vill du skicka?',
287
287
  'deliveryscopeheading': 'Hit eller dit?',
@@ -2375,8 +2375,8 @@ let PnfindServiceAndPrice = class extends HTMLElement {
2375
2375
  if (this.market) {
2376
2376
  state$3.market = markets$1[this.market];
2377
2377
  }
2378
- if (this.language && translations$7[this.language]) {
2379
- state$3.i18n = translations$7[this.language];
2378
+ if (this.language && translations$8[this.language]) {
2379
+ state$3.i18n = translations$8[this.language];
2380
2380
  }
2381
2381
  }
2382
2382
  filterItems() {
@@ -2500,7 +2500,7 @@ let PnfindServiceAndPriceResult = class extends HTMLElement {
2500
2500
  static get style() { return pnFindServiceAndPriceResultCss; }
2501
2501
  };
2502
2502
 
2503
- const translations$6 = {
2503
+ const translations$7 = {
2504
2504
  'sv': {
2505
2505
  "heading": "Språk",
2506
2506
  },
@@ -2531,6 +2531,7 @@ let PnlanguageSelector = class extends HTMLElement {
2531
2531
  this.options = [];
2532
2532
  }
2533
2533
  componentWillLoad() {
2534
+ this.setInitialSelectedLanguageName();
2534
2535
  this.setTranslations();
2535
2536
  }
2536
2537
  componentDidLoad() {
@@ -2540,6 +2541,20 @@ let PnlanguageSelector = class extends HTMLElement {
2540
2541
  this.setSelectedLanguageName();
2541
2542
  this.addEventBindingsToOptions();
2542
2543
  }
2544
+ setInitialSelectedLanguageName() {
2545
+ if (!window.Intl || !this.value) {
2546
+ return;
2547
+ }
2548
+ const langs = new Intl.DisplayNames([this.value], { type: 'language' });
2549
+ if (!langs) {
2550
+ return;
2551
+ }
2552
+ const languageName = langs.of(this.value);
2553
+ if (!languageName) {
2554
+ return;
2555
+ }
2556
+ this.selectedLanguageName = languageName.charAt(0).toUpperCase() + languageName.slice(1);
2557
+ }
2543
2558
  addEventBindingsToOptions() {
2544
2559
  const options = [].slice.apply(this.hostElement.querySelectorAll("pn-language-selector-option"));
2545
2560
  options.map((option) => {
@@ -2567,8 +2582,8 @@ let PnlanguageSelector = class extends HTMLElement {
2567
2582
  this.setLanguage.emit(this.value);
2568
2583
  }
2569
2584
  setTranslations() {
2570
- if (translations$6[this.value]) {
2571
- this.i18n = translations$6[this.value];
2585
+ if (translations$7[this.value]) {
2586
+ this.i18n = translations$7[this.value];
2572
2587
  }
2573
2588
  }
2574
2589
  onValueChange() {
@@ -2621,7 +2636,7 @@ let PnlanguageSelectorOption = class extends HTMLElement {
2621
2636
  static get style() { return pnLanguageSelectorOptionCss; }
2622
2637
  };
2623
2638
 
2624
- const translations$5 = {
2639
+ const translations$6 = {
2625
2640
  'sv': {
2626
2641
  "menuHomeButton": "Hem",
2627
2642
  "menuGoBackButton": "Gå tillbaka",
@@ -2715,8 +2730,8 @@ let PnMainnav$1 = class extends HTMLElement {
2715
2730
  this.marketChange.emit(this.market);
2716
2731
  }
2717
2732
  onLanguageChange(event) {
2718
- if (translations$5[event.detail]) {
2719
- state$2.i18n = translations$5[event.detail];
2733
+ if (translations$6[event.detail]) {
2734
+ state$2.i18n = translations$6[event.detail];
2720
2735
  if (!this.navLabel) {
2721
2736
  this.navLabel = state$2.i18n.navLabel;
2722
2737
  }
@@ -2867,7 +2882,7 @@ let PnMainnavList$1 = class extends HTMLElement {
2867
2882
  static get style() { return pnMainnavListCss; }
2868
2883
  };
2869
2884
 
2870
- const translations$4 = {
2885
+ const translations$5 = {
2871
2886
  'sv': {
2872
2887
  "searchlabel": "Sök",
2873
2888
  "searchplaceholder": "Vad letar du efter?",
@@ -3219,8 +3234,8 @@ let PnMarketwebSiteheader$2 = class extends HTMLElement {
3219
3234
  await this.fetchData();
3220
3235
  }
3221
3236
  setTranslations() {
3222
- if (this.language && translations$4[this.language]) {
3223
- this.i18n = translations$4[this.language];
3237
+ if (this.language && translations$5[this.language]) {
3238
+ this.i18n = translations$5[this.language];
3224
3239
  }
3225
3240
  }
3226
3241
  onLanguageChange() {
@@ -3244,7 +3259,6 @@ let PnMarketwebSiteheader$2 = class extends HTMLElement {
3244
3259
  await this.setStateFromData(data);
3245
3260
  }
3246
3261
  onFetchRefreshed(data) {
3247
- console.log('Data was updated after request', data);
3248
3262
  this.setStateFromData(data);
3249
3263
  }
3250
3264
  getLinkContentByType(linkType = "") {
@@ -3315,7 +3329,7 @@ let PnMarketwebSiteheader$2 = class extends HTMLElement {
3315
3329
  static get style() { return pnMarketwebSitefooterCss; }
3316
3330
  };
3317
3331
 
3318
- const translations$3 = {
3332
+ const translations$4 = {
3319
3333
  'sv': {
3320
3334
  "searchlabel": "Sök",
3321
3335
  "searchplaceholder": "Vad letar du efter?",
@@ -3452,8 +3466,7 @@ class MarketWebLoginManager {
3452
3466
  return `${this.getBaseUrl()}${this.endpoints.authorizationEndpoint}?redirectionUrl=${redirectPage}`;
3453
3467
  }
3454
3468
  getLogoutUrl(redirectPage = "") {
3455
- const currentPage = window.location.href;
3456
- redirectPage = redirectPage ? redirectPage : currentPage;
3469
+ redirectPage = window.location.origin + '/logout';
3457
3470
  return `${this.getBaseUrl()}${this.endpoints.logoutEndpoint}?redirectionUrl=${redirectPage}&authorization=${this.store.get(this.keys.token)}`;
3458
3471
  }
3459
3472
  getUserInfo() {
@@ -3651,12 +3664,11 @@ let PnMarketwebSiteheader$1 = class extends HTMLElement {
3651
3664
  window.setTimeout(() => { this.checkMenuOverflow(); }, 50);
3652
3665
  }
3653
3666
  setTranslations() {
3654
- if (this.language && translations$3[this.language]) {
3655
- this.i18n = translations$3[this.language];
3667
+ if (this.language && translations$4[this.language]) {
3668
+ this.i18n = translations$4[this.language];
3656
3669
  }
3657
3670
  }
3658
3671
  onLanguageSelectorChange(e) {
3659
- console.log('onLanguageSelectorChange(e', e);
3660
3672
  this.language = e.detail;
3661
3673
  window.dispatchEvent(new CustomEvent('marketweb-languagechange', { detail: this.language }));
3662
3674
  }
@@ -3805,10 +3817,10 @@ let PnMarketwebSiteheader$1 = class extends HTMLElement {
3805
3817
  }
3806
3818
  render() {
3807
3819
  var _a, _b, _c, _d, _e, _f;
3808
- return (h(Host, { language: this.language, market: this.market, environment: this.environment }, h("header", null, h("div", { class: "siteheader-row" }, h("div", { class: "siteheader-topleft" }, h("slot", { name: "topleft" }), !this.hideSiteSelector &&
3820
+ return (h(Host, { language: this.language, market: this.market, environment: this.environment }, h("header", null, h("div", { class: "siteheader-row" }, h("div", { class: "siteheader-topleft" }, h("slot", { name: "topleft" }), (this.gotData && this.siteSelector && !this.hideSiteSelector) &&
3809
3821
  h("pn-site-selector", { language: this.language, buttontext: (_b = (_a = this.siteSelector) === null || _a === void 0 ? void 0 : _a.currentSiteTitle) !== null && _b !== void 0 ? _b : 'postnord' }, (this.gotData && ((_c = this.siteSelector) === null || _c === void 0 ? void 0 : _c.currentSiteTitle)) &&
3810
3822
  h("pn-site-selector-item", { heading: this.siteSelector.currentSiteTitle + ' ', description: this.siteSelector.currentSiteDescription }), (this.gotData && ((_d = this.siteSelector) === null || _d === void 0 ? void 0 : _d.siteSelections)) && this.siteSelector.siteSelections.map((site) => h("pn-site-selector-item", { heading: site.linkText + ' ', description: site.linkDescription, url: this.adjustSiteSelectorUrl(site.href), newwindow: site.openInNewWindow })))), h("div", { class: "siteheader-logocontainer" }, h("a", { href: this.homePageLink, title: "Home", class: "siteheader-logolink" }, h("svg", { class: "siteheader-logo", xmlns: "http://www.w3.org/2000/svg", width: "12.7rem", height: "2.4rem", viewBox: "0 0 141.73 26.65" }, h("path", { d: "M108.84,13.35c0,6.34-5.17,9-10,9S89,19.76,89,13.63c0-6.28,5.08-9,10-9S108.84,7.25,108.84,13.35Zm-6.56.18a3.4,3.4,0,1,0-6.8,0,3.29,3.29,0,0,0,3.42,3.41A3.24,3.24,0,0,0,102.28,13.54Zm-83,0c0,4.83-3.32,8.82-8.49,8.82a6.54,6.54,0,0,1-4.65-1.57v5.86H0V5.16H6.17V6.8a6.43,6.43,0,0,1,5.11-2.18C16.41,4.62,19.31,8.58,19.31,13.54Zm-6.53,0A3.27,3.27,0,0,0,9.4,10,3.28,3.28,0,0,0,6,13.54,3.29,3.29,0,0,0,9.4,16.95,3.24,3.24,0,0,0,12.78,13.54Zm103.69,0.27c0-2.54,1.54-3.32,3.6-3.32a6.56,6.56,0,0,1,2.08.3L122.3,5.1a3.92,3.92,0,0,0-1.45-.18c-3.45,0-4.38,2.18-4.38,2.18V5.16H110.3V21.84h6.17v-8ZM141.73,0V21.84h-6.16V20.21a6.43,6.43,0,0,1-5.11,2.18c-5.14,0-8-4-8-8.91s3.32-8.82,8.49-8.82a6.54,6.54,0,0,1,4.65,1.57v-5Zm-6,13.48a3.28,3.28,0,0,0-3.41-3.41A3.24,3.24,0,0,0,129,13.47,3.4,3.4,0,1,0,135.75,13.47ZM81.35,4.62c-3.6,0-4.9,2.18-4.9,2.18V5.16H70.29V21.84h6.16V13.29c0-2.11.79-3.08,2.69-3.08s2.18,1.57,2.18,3.57v8.07h6.22V11.6C87.55,7,85.34,4.62,81.35,4.62ZM64.07,1.42H57.9V21.84h6.16V10.36H67l2.81-5.2H64.07V1.42ZM50.26,11.21c-2-.3-2.87-0.3-2.87-1.09s0.81-.94,2.42-0.94a16.15,16.15,0,0,1,5.11.91L56,5.41a24.56,24.56,0,0,0-6.13-.75c-5.89,0-9,2.27-9,5.89,0,2.81,1.66,4.47,6.53,5.11,2.06,0.27,2.81.39,2.81,1.15s-0.82,1-2.24,1a16.67,16.67,0,0,1-6-1.3L40.77,21.3a22.14,22.14,0,0,0,6.68,1c6.35,0,9.28-2.24,9.28-5.89C56.72,13.54,55.15,12,50.26,11.21ZM40.19,13.35c0,6.34-5.17,9-10,9s-9.82-2.6-9.82-8.73c0-6.28,5.08-9,10-9S40.19,7.25,40.19,13.35Zm-6.56.18a3.4,3.4,0,1,0-6.8,0,3.28,3.28,0,0,0,3.41,3.41A3.24,3.24,0,0,0,33.63,13.54Z", fill: "#00A0D6", transform: "translate(0 0)" })))), h("div", { class: "siteheader-topright" }, h("slot", { name: "toprightstart" }), (this.gotData && this.loginDialog && !this.hideLogin) && (h("pn-marketweb-siteheader-login", { token: this.token, loginDialog: this.loginDialog, endpoint: this.endpoint, i18n: this.i18n })), (this.gotData && this.languageOptions && this.languageOptions.length) && !this.hideLanguageSelector &&
3811
- h("pn-language-selector", { value: this.language }, this.languageOptions.map(language => h("pn-language-selector-option", { name: language.nativeName, code: language.twoLetterISOLanguageName, selected: language.isCurrent, url: this.getLanguageVersionUrl(language) }))), h("slot", { name: "toprightend" }))), h("div", { class: "siteheader-row" }, h("div", { class: "siteheader-menu" }, h("pn-mainnav", { market: this.market, language: this.language, onMenuOpenChange: (e) => {
3823
+ h("pn-language-selector", { value: this.language }, this.languageOptions.map(language => h("pn-language-selector-option", { name: language.nativeName, code: language.twoLetterISOLanguageName, selected: language.isCurrent, url: this.getLanguageVersionUrl(language) }))), h("slot", { name: "toprightend" }))), h("div", { class: "siteheader-row" }, h("div", { class: "siteheader-menu" }, (this.gotData && this.menuItems) && (h("pn-mainnav", { market: this.market, language: this.language, onMenuOpenChange: (e) => {
3812
3824
  document.body.setAttribute("data-siteheader-menuopen", (e.detail + ''));
3813
3825
  } }, h("pn-mainnav-level", null, h("pn-mainnav-list", null, this.menuItems.map((item) => {
3814
3826
  var _a, _b;
@@ -3818,11 +3830,11 @@ let PnMarketwebSiteheader$1 = class extends HTMLElement {
3818
3830
  var _a;
3819
3831
  return (h("pn-mainnav-link", { name: childitem.name, href: childitem.href, target: (_a = childitem.linkTarget) !== null && _a !== void 0 ? _a : "_self", linkid: childitem.trackingId }));
3820
3832
  })), (item.promotedMenuItems && item.promotedMenuItems.length > 0) &&
3821
- h("pn-mainnav-list", { heading: item.promotedMenuItemsHeader }, item.promotedMenuItems.map((childitem) => (h("pn-mainnav-link", { href: childitem.href, name: childitem.linkText, target: childitem.openInNewWindow ? "_blank" : "_self", linkid: this.promotedItemId(childitem) })))))));
3833
+ h("pn-mainnav-list", { heading: item.promotedMenuItemsHeader }, item.promotedMenuItems.map((childitem) => (h("pn-mainnav-link", { href: childitem.href, name: childitem.linkText, target: childitem.openInNewWindow ? "_blank" : "_self", linkid: this.promotedItemId(childitem) + item.id })))))));
3822
3834
  })), h("div", { slot: "footer", class: "siteheader-menu-footer" }, (this.gotData && this.loginDialog && !this.hideLogin) && (h("pn-marketweb-siteheader-login", { emitEvents: false, loginDialog: this.loginDialog, endpoint: this.endpoint, i18n: this.i18n })), (this.gotData && this.languageOptions && this.languageOptions.length) && !this.hideLanguageSelector &&
3823
3835
  h("pn-language-selector", { value: this.language }, this.languageOptions.map(language => h("pn-language-selector-option", { name: language.nativeName, code: language.twoLetterISOLanguageName, selected: language.isCurrent, url: this.getLanguageVersionUrl(language) }))), !this.hideSiteSelector &&
3824
3836
  h("pn-site-selector", { language: this.language }, (this.gotData && ((_e = this.siteSelector) === null || _e === void 0 ? void 0 : _e.currentSiteTitle)) &&
3825
- h("pn-site-selector-item", { heading: this.siteSelector.currentSiteTitle, description: this.siteSelector.currentSiteDescription }), (this.gotData && ((_f = this.siteSelector) === null || _f === void 0 ? void 0 : _f.siteSelections)) && this.siteSelector.siteSelections.map((site) => h("pn-site-selector-item", { heading: site.linkText, description: site.linkDescription, url: site.pageLink, newwindow: site.openInNewWindow })))), h("div", { slot: "top", class: "siteheader-menu-top" }, h("pn-marketweb-siteheader-search", { search: this.search, "hide-search": this.hideSearch, i18n: this.i18n }))))), h("pn-marketweb-siteheader-search", { search: this.search, "hide-search": this.hideSearch, "show-only-link": this.minimizeSearch, i18n: this.i18n })))));
3837
+ h("pn-site-selector-item", { heading: this.siteSelector.currentSiteTitle, description: this.siteSelector.currentSiteDescription }), (this.gotData && ((_f = this.siteSelector) === null || _f === void 0 ? void 0 : _f.siteSelections)) && this.siteSelector.siteSelections.map((site) => h("pn-site-selector-item", { heading: site.linkText, description: site.linkDescription, url: site.pageLink, newwindow: site.openInNewWindow })))), h("div", { slot: "top", class: "siteheader-menu-top" }, h("pn-marketweb-siteheader-search", { search: this.search, "hide-search": this.hideSearch, i18n: this.i18n })))))), h("pn-marketweb-siteheader-search", { search: this.search, "hide-search": this.hideSearch, "show-only-link": this.minimizeSearch, i18n: this.i18n })))));
3826
3838
  }
3827
3839
  get hostElement() { return this; }
3828
3840
  static get watchers() { return {
@@ -3956,7 +3968,7 @@ let PnMarketwebSiteheaderLogin$1 = class extends HTMLElement {
3956
3968
  : (h("ul", null, h("li", null, h("pn-button", { href: this.loginManager.getLoginUrl(this.loginDialog.loginUrl), target: "_top" }, this.loginDialog.loginLinkText)), h("li", null, h("pn-button", { href: this.loginDialog.registerUrl, target: "_top", appearance: "light", variant: "outlined" }, this.loginDialog.createLoginLinkText)))))
3957
3969
  :
3958
3970
  h("div", null, h("ul", null, this.loginDialog.loggedInLinks.map((link) => {
3959
- const isLogoutLink = link.href.indexOf('logout');
3971
+ const isLogoutLink = link.href.indexOf('logout') !== -1;
3960
3972
  const href = (isLogoutLink) ? this.loginManager.getLogoutUrl(link.href.replace('logout', '').replace('http://window.location.href/?', '').replace('https://window.location.href/?', '')) : link.href;
3961
3973
  return (h("li", null, h("pn-button", Object.assign({ href: href, id: this.uniqueId(link.linkText) }, (link.openInNewWindow && { target: '_blank' }), this.linkAppearanceAttributes(link), { onClick: () => {
3962
3974
  if (isLogoutLink) {
@@ -4006,6 +4018,121 @@ let PnMarketwebSiteheaderSearch$1 = class extends HTMLElement {
4006
4018
  static get style() { return pnMarketwebSiteheaderSearchCss; }
4007
4019
  };
4008
4020
 
4021
+ const translations$3 = {
4022
+ 'sv': {
4023
+ "heading": "Beräkna kostnad med PEX Bud",
4024
+ "labelFrom": "Från postkod",
4025
+ "labelTo": "Till postkod",
4026
+ "zipPlaceholder": "Ex. 12831",
4027
+ "labelWeight": "Vikt (i gram)",
4028
+ "weightPlaceholder": "Ex. 1000",
4029
+ "labelWhen": "När",
4030
+ "submitButtonText": "Beräkna pris"
4031
+ },
4032
+ 'en': {
4033
+ "heading": "Calculate cost with PEX Bud",
4034
+ "labelFrom": "From zip",
4035
+ "labelTo": "To zip",
4036
+ "zipPlaceholder": "Ex. 12831",
4037
+ "labelWeight": "Weight (in grams)",
4038
+ "weightPlaceholder": "Ex. 1000",
4039
+ "labelWhen": "When",
4040
+ "submitButtonText": "Calculate price"
4041
+ }
4042
+ };
4043
+
4044
+ const pnPexPricefinderCss = ".pex-pricefinder-top{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.pex-pricefinder-top pn-illustration{width:5.5rem;height:5.5rem;margin-right:1.6rem}.pex-pricefinder-form{margin:1.6rem 0 0 0;padding:0;border:0}.pex-pricefinder-form fieldset{margin:0;padding:0;border:0}.pex-pricefinder-form fieldset+fieldset{margin-top:1.6rem}.pex-pricefinder-form fieldset>div{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:1em}.pex-pricefinder-form fieldset>div>*{-ms-flex-positive:1;flex-grow:1;width:100%}.pex-pricefinder-form pn-button{-ms-flex-item-align:end;align-self:end;margin-left:auto}.pex-pricefinder-form .datepicker{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column}.pex-pricefinder-form .datepicker label{margin-bottom:0.4rem;color:#5E554A;font-size:0.875em;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:end;align-items:flex-end;cursor:pointer;-webkit-transition:color 0.2s;transition:color 0.2s}.pex-pricefinder-form .datepicker pn-date-picker{width:100%}.pex-pricefinder-response{margin-top:2.4rem;text-align:center;font-size:2.4em}";
4045
+
4046
+ let PnPexPricefinder$1 = class extends HTMLElement {
4047
+ constructor() {
4048
+ super();
4049
+ this.__registerHost();
4050
+ /** Specifies which language we want to show component in (sv,da,fi,no,en) */
4051
+ this.language = "sv";
4052
+ /** Currency (Kr, €)*/
4053
+ this.currency = "Kr";
4054
+ /** API Url */
4055
+ this.apiUrl = "/api/pex/order";
4056
+ this.i18n = translations$3.sv;
4057
+ this.fromzip = null;
4058
+ this.tozip = null;
4059
+ this.weight = 100;
4060
+ this.when = (new Date()).toISOString().split('T')[0];
4061
+ this.response = null;
4062
+ }
4063
+ componentWillLoad() {
4064
+ this.init();
4065
+ }
4066
+ async init() {
4067
+ this.checkParameters();
4068
+ this.setLanguage();
4069
+ }
4070
+ checkParameters() {
4071
+ const params = new URLSearchParams(window.location.href);
4072
+ if (!params) {
4073
+ return;
4074
+ }
4075
+ const paramKeys = ['fromzip', 'tozip', 'weight', 'when'];
4076
+ paramKeys.forEach((key) => {
4077
+ if (params.get(key)) {
4078
+ this[key] = params.get(key);
4079
+ }
4080
+ });
4081
+ }
4082
+ setLanguage() {
4083
+ if (translations$3[this.language]) {
4084
+ this.i18n = translations$3[this.language];
4085
+ }
4086
+ }
4087
+ onSubmit(e) {
4088
+ e.preventDefault();
4089
+ const formData = new FormData(e.target);
4090
+ const requestQuery = this.compileRequestQuery(formData);
4091
+ this.fetchResult(requestQuery);
4092
+ }
4093
+ compileRequestQuery(formData) {
4094
+ let query = {
4095
+ "from": formData.get("fromzip"),
4096
+ "to": formData.get("tozip"),
4097
+ "weight": formData.get("weight"),
4098
+ "when": formData.get("when")
4099
+ };
4100
+ if (!query.when) {
4101
+ query.when = this.hostElement.querySelector('input.date-input').value;
4102
+ }
4103
+ if (!formData.get("fromzip") || !formData.get("tozip") || !formData.get("weight")) {
4104
+ console.error("Form data is not compliant");
4105
+ return;
4106
+ }
4107
+ return query;
4108
+ }
4109
+ async fetchResult(query) {
4110
+ this.response = null;
4111
+ const params = new URLSearchParams(query);
4112
+ const req = await (fetch(`${this.apiUrl}?${params.toString()}`, {
4113
+ method: 'get',
4114
+ headers: {
4115
+ 'Content-Type': 'application/json'
4116
+ }
4117
+ }).catch(this.onFetchError.bind(this)));
4118
+ let response = await (req.json().catch(this.onFetchError.bind(this)));
4119
+ if (!response) {
4120
+ response = await (await import('./mockresponse.js')).default;
4121
+ }
4122
+ if (response) {
4123
+ this.response = response;
4124
+ }
4125
+ }
4126
+ onFetchError(error) {
4127
+ console.error('onFetchError(error', error);
4128
+ }
4129
+ render() {
4130
+ return (h(Host, null, h("div", { class: "pex-pricefinder-top" }, h("pn-illustration", { illustration: "PEX-truck" }), h("h2", null, this.i18n.heading)), h("form", { method: "get", action: "", class: "pex-pricefinder-form", onSubmit: this.onSubmit.bind(this) }, h("fieldset", null, h("div", null, h("pn-input", { type: "number", label: this.i18n.labelFrom, inputid: "fromzip", name: "fromzip", placeholder: this.i18n.zipPlaceholder, required: true, value: this.fromzip }), h("pn-input", { type: "number", label: this.i18n.labelTo, inputid: "tozip", name: "tozip", placeholder: this.i18n.zipPlaceholder, required: true, value: this.tozip }))), h("fieldset", null, h("div", null, h("pn-input", { type: "number", label: this.i18n.labelWeight, inputid: "weight", name: "weight", placeholder: this.i18n.weightPlaceholder, required: true, value: this.weight }), h("div", { class: "datepicker" }, h("label", { htmlFor: "when" }, this.i18n.labelWhen), h("pn-date-picker", { inputid: "when", name: "when", "start-of-week": "1", min: (new Date()).toISOString().split('T')[0], language: this.language, value: this.when })))), h("fieldset", null, h("div", null, h("pn-button", { type: "submit" }, this.i18n.submitButtonText)))), this.response ? (h("div", { class: "pex-pricefinder-response" }, h("strong", null, this.response.data.value, " ", this.currency))) : null));
4131
+ }
4132
+ get hostElement() { return this; }
4133
+ static get style() { return pnPexPricefinderCss; }
4134
+ };
4135
+
4009
4136
  const translations$2 = {
4010
4137
  'sv': {
4011
4138
  'maxweightlabel': 'Maxvikt',
@@ -4720,6 +4847,7 @@ const PnMarketwebSitefooter = /*@__PURE__*/proxyCustomElement(PnMarketwebSitehea
4720
4847
  const PnMarketwebSiteheader = /*@__PURE__*/proxyCustomElement(PnMarketwebSiteheader$1, [4,"pn-marketweb-siteheader",{"market":[1537],"language":[1537],"environment":[1537],"token":[1],"endpoint":[1],"hideSiteSelector":[1540,"hide-site-selector"],"hideLanguageSelector":[1540,"hide-language-selector"],"hideSearch":[1540,"hide-search"],"hideLogin":[1540,"hide-login"],"sessionForward":[4,"session-forward"],"cache":[4],"spaMode":[4,"spa-mode"],"i18n":[32],"gotData":[32],"fetchingData":[32],"homePageLink":[32],"menuItems":[32],"siteDefinition":[32],"search":[32],"siteSelector":[32],"languageSelector":[32],"languageOptions":[32],"loginDialog":[32],"minimizeSearch":[32],"loggedIn":[32],"loginManager":[32]},[[0,"setLanguage","onLanguageSelectorChange"],[0,"loginStateChange","onLoginStateChange"],[9,"resize","handleResize"]]]);
4721
4848
  const PnMarketwebSiteheaderLogin = /*@__PURE__*/proxyCustomElement(PnMarketwebSiteheaderLogin$1, [0,"pn-marketweb-siteheader-login",{"endpoint":[1],"token":[1],"i18n":[8,"i-1-8n"],"emitEvents":[4,"emit-events"],"loginDialog":[1040],"loginManager":[32],"loggedIn":[32],"toggleButtonText":[32],"username":[32]}]);
4722
4849
  const PnMarketwebSiteheaderSearch = /*@__PURE__*/proxyCustomElement(PnMarketwebSiteheaderSearch$1, [0,"pn-marketweb-siteheader-search",{"i18n":[8,"i-1-8n"],"showOnlyLink":[1028,"show-only-link"],"hideSearch":[1028,"hide-search"],"search":[1040]}]);
4850
+ const PnPexPricefinder = /*@__PURE__*/proxyCustomElement(PnPexPricefinder$1, [0,"pn-pex-pricefinder",{"language":[1],"currency":[1],"apiUrl":[1,"api-url"],"i18n":[32],"fromzip":[32],"tozip":[32],"weight":[32],"when":[32],"response":[32]},[[0,"language","setLanguage"]]]);
4723
4851
  const PnProductPricelist = /*@__PURE__*/proxyCustomElement(PnFindProductPricelist, [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]}]);
4724
4852
  const PnProductPricelistResult = /*@__PURE__*/proxyCustomElement(PnFindProductPricelistResult, [0,"pn-product-pricelist-result",{"item":[1040],"shownitems":[16],"weightText":[32]}]);
4725
4853
  const PnProductTile = /*@__PURE__*/proxyCustomElement(PnProductTile$1, [4,"pn-product-tile"]);
@@ -4753,6 +4881,7 @@ const defineCustomElements = (opts) => {
4753
4881
  PnMarketwebSiteheader,
4754
4882
  PnMarketwebSiteheaderLogin,
4755
4883
  PnMarketwebSiteheaderSearch,
4884
+ PnPexPricefinder,
4756
4885
  PnProductPricelist,
4757
4886
  PnProductPricelistResult,
4758
4887
  PnProductTile,
@@ -4774,4 +4903,4 @@ const defineCustomElements = (opts) => {
4774
4903
  }
4775
4904
  };
4776
4905
 
4777
- export { PnBonusProgressbar, PnBonusProgressbarLevel, PnChoiceButton, PnFilterCheckbox, PnFilterSearch, PnFindServiceAndPrice, PnFindServiceAndPriceResult, PnLanguageSelector, PnLanguageSelectorOption, PnMainnav, PnMainnavLevel, PnMainnavLink, PnMainnavList, PnMarketwebSitefooter, PnMarketwebSiteheader, PnMarketwebSiteheaderLogin, PnMarketwebSiteheaderSearch, PnProductPricelist, PnProductPricelistResult, PnProductTile, PnProductTileInfo, PnProductTilePrice, PnProfileSelector, PnSidenav, PnSidenavLevel, PnSidenavLink, PnSiteFooter, PnSiteFooterCol, PnSiteSelector, PnSiteSelectorItem, defineCustomElements };
4906
+ export { PnBonusProgressbar, PnBonusProgressbarLevel, PnChoiceButton, PnFilterCheckbox, PnFilterSearch, PnFindServiceAndPrice, PnFindServiceAndPriceResult, PnLanguageSelector, PnLanguageSelectorOption, PnMainnav, PnMainnavLevel, PnMainnavLink, PnMainnavList, PnMarketwebSitefooter, PnMarketwebSiteheader, PnMarketwebSiteheaderLogin, PnMarketwebSiteheaderSearch, PnPexPricefinder, PnProductPricelist, PnProductPricelistResult, PnProductTile, PnProductTileInfo, PnProductTilePrice, PnProfileSelector, PnSidenav, PnSidenavLevel, PnSidenavLink, PnSiteFooter, PnSiteFooterCol, PnSiteSelector, PnSiteSelectorItem, defineCustomElements };
@@ -0,0 +1,20 @@
1
+ const request = {
2
+ timestamp: 1344531600
3
+ };
4
+ const query = {
5
+ from: "14321",
6
+ to: "21421",
7
+ weight: "2500",
8
+ when: "2023-05-24T12:00:00Z"
9
+ };
10
+ const data = {
11
+ value: 2000
12
+ };
13
+ const mockresponse = {
14
+ request: request,
15
+ query: query,
16
+ data: data
17
+ };
18
+
19
+ export default mockresponse;
20
+ export { data, query, request };
@@ -87,8 +87,7 @@ class MarketWebLoginManager {
87
87
  return `${this.getBaseUrl()}${this.endpoints.authorizationEndpoint}?redirectionUrl=${redirectPage}`;
88
88
  }
89
89
  getLogoutUrl(redirectPage = "") {
90
- const currentPage = window.location.href;
91
- redirectPage = redirectPage ? redirectPage : currentPage;
90
+ redirectPage = window.location.origin + '/logout';
92
91
  return `${this.getBaseUrl()}${this.endpoints.logoutEndpoint}?redirectionUrl=${redirectPage}&authorization=${this.store.get(this.keys.token)}`;
93
92
  }
94
93
  getUserInfo() {
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":[1537],"language":[1537],"environment":[1537],"token":[1],"endpoint":[1],"hideSiteSelector":[1540,"hide-site-selector"],"hideLanguageSelector":[1540,"hide-language-selector"],"hideSearch":[1540,"hide-search"],"hideLogin":[1540,"hide-login"],"sessionForward":[4,"session-forward"],"cache":[4],"spaMode":[4,"spa-mode"],"i18n":[32],"gotData":[32],"fetchingData":[32],"homePageLink":[32],"menuItems":[32],"siteDefinition":[32],"search":[32],"siteSelector":[32],"languageSelector":[32],"languageOptions":[32],"loginDialog":[32],"minimizeSearch":[32],"loggedIn":[32],"loginManager":[32]},[[0,"setLanguage","onLanguageSelectorChange"],[0,"loginStateChange","onLoginStateChange"],[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],"cache":[4],"siteDefinition":[32],"footerContent":[32],"i18n":[32],"gotData":[32],"fetchingData":[32]}]]],["pn-bonus-progressbar",[[4,"pn-bonus-progressbar",{"icon":[1],"heading":[1],"theme":[513],"bonuspercentage":[1],"currency":[513],"value":[1538],"min":[1538],"max":[1538],"valuepercentage":[32],"progresspercentage":[32],"levelValues":[32],"currentLevelAdjustedValue":[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-profile-selector",[[0,"pn-profile-selector",{"language":[1537],"returnUrl":[1,"return-url"],"spamode":[4],"loginManager":[32],"loggedIn":[32],"i18n":[32],"isLoading":[32],"numberOfProfiles":[32]}]]],["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-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]}]]],["pn-product-pricelist-result",[[0,"pn-product-pricelist-result",{"item":[1040],"shownitems":[16],"weightText":[32]}]]],["pn-bonus-progressbar-level",[[0,"pn-bonus-progressbar-level",{"current":[516],"value":[1538],"bonuspercentage":[1537],"visualpercentage":[1538],"percentage":[32],"max":[32],"min":[32],"currency":[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],"token":[1],"i18n":[8,"i-1-8n"],"emitEvents":[4,"emit-events"],"loginDialog":[1040],"loginManager":[32],"loggedIn":[32],"toggleButtonText":[32],"username":[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]}]]]], options);
13
+ return bootstrapLazy([["pn-marketweb-siteheader",[[4,"pn-marketweb-siteheader",{"market":[1537],"language":[1537],"environment":[1537],"token":[1],"endpoint":[1],"hideSiteSelector":[1540,"hide-site-selector"],"hideLanguageSelector":[1540,"hide-language-selector"],"hideSearch":[1540,"hide-search"],"hideLogin":[1540,"hide-login"],"sessionForward":[4,"session-forward"],"cache":[4],"spaMode":[4,"spa-mode"],"i18n":[32],"gotData":[32],"fetchingData":[32],"homePageLink":[32],"menuItems":[32],"siteDefinition":[32],"search":[32],"siteSelector":[32],"languageSelector":[32],"languageOptions":[32],"loginDialog":[32],"minimizeSearch":[32],"loggedIn":[32],"loginManager":[32]},[[0,"setLanguage","onLanguageSelectorChange"],[0,"loginStateChange","onLoginStateChange"],[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],"cache":[4],"siteDefinition":[32],"footerContent":[32],"i18n":[32],"gotData":[32],"fetchingData":[32]}]]],["pn-bonus-progressbar",[[4,"pn-bonus-progressbar",{"icon":[1],"heading":[1],"theme":[513],"bonuspercentage":[1],"currency":[513],"value":[1538],"min":[1538],"max":[1538],"valuepercentage":[32],"progresspercentage":[32],"levelValues":[32],"currentLevelAdjustedValue":[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-pex-pricefinder",[[0,"pn-pex-pricefinder",{"language":[1],"currency":[1],"apiUrl":[1,"api-url"],"i18n":[32],"fromzip":[32],"tozip":[32],"weight":[32],"when":[32],"response":[32]},[[0,"language","setLanguage"]]]]],["pn-profile-selector",[[0,"pn-profile-selector",{"language":[1537],"returnUrl":[1,"return-url"],"spamode":[4],"loginManager":[32],"loggedIn":[32],"i18n":[32],"isLoading":[32],"numberOfProfiles":[32]}]]],["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-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]}]]],["pn-product-pricelist-result",[[0,"pn-product-pricelist-result",{"item":[1040],"shownitems":[16],"weightText":[32]}]]],["pn-bonus-progressbar-level",[[0,"pn-bonus-progressbar-level",{"current":[516],"value":[1538],"bonuspercentage":[1537],"visualpercentage":[1538],"percentage":[32],"max":[32],"min":[32],"currency":[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],"token":[1],"i18n":[8,"i-1-8n"],"emitEvents":[4,"emit-events"],"loginDialog":[1040],"loginManager":[32],"loggedIn":[32],"toggleButtonText":[32],"username":[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]}]]]], options);
14
14
  });
15
15
  };
16
16