@postnord/pn-marketweb-components 2.1.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/cjs/{data-b5ef4f7c.js → data-4fa6b08d.js} +2 -2
  2. package/cjs/loader.cjs.js +1 -1
  3. package/cjs/pn-find-price-result.cjs.entry.js +4 -4
  4. package/cjs/{pn-find-price-store-0b8c195c.js → pn-find-price-store-a91ce3f6.js} +2 -2
  5. package/cjs/pn-find-price.cjs.entry.js +7 -7
  6. package/cjs/pn-language-selector_9.cjs.entry.js +32 -19
  7. package/cjs/pn-market-web-components.cjs.js +1 -1
  8. package/cjs/{pn-marketweb-siteheader-login-links_2.cjs.entry.js → pn-marketweb-siteheader-login-button_5.cjs.entry.js} +109 -18
  9. package/cjs/pn-marketweb-siteheader-login-linklist.cjs.entry.js +27 -15
  10. package/cjs/pn-marketweb-siteheader.cjs.entry.js +74 -58
  11. package/cjs/{pn-product-card_4.cjs.entry.js → pn-product-card_3.cjs.entry.js} +0 -18
  12. package/cjs/pn-product-pricelist.cjs.entry.js +1 -1
  13. package/cjs/pn-proxio-findprice-result.cjs.entry.js +63 -0
  14. package/cjs/pn-proxio-findprice.cjs.entry.js +311 -0
  15. package/cjs/pn-proxio-pricegroup.cjs.entry.js +6 -22
  16. package/cjs/pn-titletag.cjs.entry.js +24 -0
  17. package/cjs/translations-585711ff.js +21 -0
  18. package/collection/collection-manifest.json +5 -0
  19. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-button.css +0 -0
  20. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-button.js +47 -0
  21. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-linklist.css +27 -13
  22. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-linklist.js +51 -16
  23. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-links.js +32 -23
  24. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-mypage-button.css +0 -0
  25. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-mypage-button.js +55 -0
  26. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.js +112 -25
  27. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-unified-login.css +0 -0
  28. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-unified-login.js +88 -0
  29. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.css +33 -0
  30. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.js +26 -4
  31. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.stories.js +3 -4
  32. package/collection/components/layout-components/pn-marketweb-siteheader/translations.js +67 -55
  33. package/collection/components/layout-components/pn-marketweb-siteheader/unifiedLoginHelper.js +46 -0
  34. package/collection/components/widgets/pn-find-price/data.js +2 -2
  35. package/collection/components/widgets/pn-find-price/pn-find-price-result.js +7 -7
  36. package/collection/components/widgets/pn-find-price/pn-find-price-store.js +2 -2
  37. package/collection/components/widgets/pn-find-price/pn-find-price-translations.js +5 -5
  38. package/collection/components/widgets/pn-proxio-findprice/data.js +52 -0
  39. package/collection/components/widgets/pn-proxio-findprice/find-price.stories.js +27 -0
  40. package/collection/components/widgets/pn-proxio-findprice/img/clouds.svg +5 -0
  41. package/collection/components/widgets/pn-proxio-findprice/img/large-package.svg +9 -0
  42. package/collection/components/widgets/pn-proxio-findprice/img/medium-package.svg +9 -0
  43. package/collection/components/widgets/pn-proxio-findprice/img/postnord-person1.svg +52 -0
  44. package/collection/components/widgets/pn-proxio-findprice/img/postnord-person2.svg +56 -0
  45. package/collection/components/widgets/pn-proxio-findprice/img/small-package.svg +23 -0
  46. package/collection/components/widgets/pn-proxio-findprice/pn-proxio-findprice-result.css +9 -0
  47. package/collection/components/widgets/pn-proxio-findprice/pn-proxio-findprice-result.js +234 -0
  48. package/collection/components/widgets/pn-proxio-findprice/pn-proxio-findprice-store.js +29 -0
  49. package/collection/components/widgets/pn-proxio-findprice/pn-proxio-findprice-translations.js +106 -0
  50. package/collection/components/widgets/pn-proxio-findprice/pn-proxio-findprice-types.js +1 -0
  51. package/collection/components/widgets/pn-proxio-findprice/pn-proxio-findprice.css +119 -0
  52. package/collection/components/widgets/pn-proxio-findprice/pn-proxio-findprice.js +250 -0
  53. package/collection/components/widgets/pn-proxio-pricegroup/pn-proxio-pricegroup.css +3 -0
  54. package/collection/components/widgets/pn-proxio-pricegroup/pn-proxio-pricegroup.js +1 -0
  55. package/collection/globals/MarketWebLoginManager.js +1 -1
  56. package/custom-elements/index.d.ts +30 -0
  57. package/custom-elements/index.js +775 -273
  58. package/esm/{data-9c9c5f41.js → data-059c2a58.js} +2 -2
  59. package/esm/loader.js +1 -1
  60. package/esm/pn-find-price-result.entry.js +4 -4
  61. package/esm/{pn-find-price-store-b4556c9b.js → pn-find-price-store-bde5071d.js} +2 -2
  62. package/esm/pn-find-price.entry.js +7 -7
  63. package/esm/pn-language-selector_9.entry.js +32 -19
  64. package/esm/pn-market-web-components.js +1 -1
  65. package/esm/{pn-marketweb-siteheader-login-links_2.entry.js → pn-marketweb-siteheader-login-button_5.entry.js} +107 -19
  66. package/esm/pn-marketweb-siteheader-login-linklist.entry.js +27 -15
  67. package/esm/pn-marketweb-siteheader.entry.js +74 -58
  68. package/esm/{pn-product-card_4.entry.js → pn-product-card_3.entry.js} +2 -19
  69. package/esm/pn-product-pricelist.entry.js +1 -1
  70. package/esm/pn-proxio-findprice-result.entry.js +59 -0
  71. package/esm/pn-proxio-findprice.entry.js +307 -0
  72. package/esm/pn-proxio-pricegroup.entry.js +3 -19
  73. package/esm/pn-titletag.entry.js +20 -0
  74. package/esm/translations-022fefa0.js +19 -0
  75. package/esm-es5/{data-9c9c5f41.js → data-059c2a58.js} +1 -1
  76. package/esm-es5/loader.js +1 -1
  77. package/esm-es5/pn-find-price-result.entry.js +1 -1
  78. package/esm-es5/{pn-find-price-store-b4556c9b.js → pn-find-price-store-bde5071d.js} +1 -1
  79. package/esm-es5/pn-find-price.entry.js +1 -1
  80. package/esm-es5/pn-language-selector_9.entry.js +1 -1
  81. package/esm-es5/pn-market-web-components.js +1 -1
  82. package/esm-es5/pn-marketweb-siteheader-login-button_5.entry.js +1 -0
  83. package/esm-es5/pn-marketweb-siteheader-login-linklist.entry.js +1 -1
  84. package/esm-es5/pn-marketweb-siteheader.entry.js +1 -1
  85. package/esm-es5/pn-product-card_3.entry.js +1 -0
  86. package/esm-es5/pn-product-pricelist.entry.js +1 -1
  87. package/esm-es5/pn-proxio-findprice-result.entry.js +1 -0
  88. package/esm-es5/pn-proxio-findprice.entry.js +1 -0
  89. package/esm-es5/pn-proxio-pricegroup.entry.js +1 -1
  90. package/esm-es5/pn-titletag.entry.js +1 -0
  91. package/esm-es5/translations-022fefa0.js +1 -0
  92. package/package.json +2 -2
  93. package/pn-market-web-components/p-10eafcd7.entry.js +1 -0
  94. package/pn-market-web-components/p-2b4c41aa.system.entry.js +1 -0
  95. package/pn-market-web-components/p-3120cc66.system.entry.js +1 -0
  96. package/pn-market-web-components/{p-37017f68.system.js → p-3738a2df.system.js} +1 -1
  97. package/pn-market-web-components/p-3969ec4d.entry.js +1 -0
  98. package/pn-market-web-components/{p-0b0727dc.entry.js → p-39b54d40.entry.js} +1 -1
  99. package/pn-market-web-components/p-499bb3ac.entry.js +1 -0
  100. package/pn-market-web-components/p-4a03854b.system.entry.js +1 -0
  101. package/pn-market-web-components/p-4b0020a0.system.entry.js +1 -0
  102. package/pn-market-web-components/p-557328e3.system.entry.js +1 -0
  103. package/pn-market-web-components/{p-ac0e3c22.system.entry.js → p-59be826b.system.entry.js} +1 -1
  104. package/pn-market-web-components/p-67887512.system.js +1 -1
  105. package/pn-market-web-components/p-6995075c.entry.js +1 -0
  106. package/pn-market-web-components/p-8afa354b.system.entry.js +1 -0
  107. package/pn-market-web-components/{p-aab2e28f.entry.js → p-8b684578.entry.js} +1 -1
  108. package/pn-market-web-components/p-951861fa.entry.js +1 -0
  109. package/pn-market-web-components/{p-736e5b84.system.entry.js → p-98a7ddd1.system.entry.js} +1 -1
  110. package/pn-market-web-components/p-a120063f.js +1 -0
  111. package/pn-market-web-components/p-b501b216.system.js +1 -0
  112. package/pn-market-web-components/p-b7adbd6d.system.entry.js +1 -0
  113. package/pn-market-web-components/{p-3ae38e63.entry.js → p-b9a84e67.entry.js} +1 -1
  114. package/pn-market-web-components/p-c8ceda2e.entry.js +1 -0
  115. package/pn-market-web-components/p-e397e11b.entry.js +1 -0
  116. package/pn-market-web-components/p-e7a1cda9.entry.js +1 -0
  117. package/pn-market-web-components/{p-d0653c80.system.entry.js → p-e881d111.system.entry.js} +1 -1
  118. package/pn-market-web-components/{p-e4a4e68f.system.entry.js → p-ecdf2b69.system.entry.js} +1 -1
  119. package/pn-market-web-components/p-f58bde56.js +1 -0
  120. package/pn-market-web-components/p-f782ce94.system.entry.js +1 -0
  121. package/pn-market-web-components/p-fefc9629.entry.js +1 -0
  122. package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
  123. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-button.d.ts +8 -0
  124. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-linklist.d.ts +4 -1
  125. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-links.d.ts +2 -1
  126. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login-mypage-button.d.ts +6 -0
  127. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.d.ts +7 -2
  128. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-types.d.ts +10 -8
  129. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-unified-login.d.ts +8 -0
  130. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.d.ts +2 -0
  131. package/types/components/layout-components/pn-marketweb-siteheader/translations.d.ts +12 -0
  132. package/types/components/layout-components/pn-marketweb-siteheader/unifiedLoginHelper.d.ts +1 -0
  133. package/types/components/widgets/pn-find-price/pn-find-price-store.d.ts +4 -4
  134. package/types/components/widgets/pn-find-price/pn-find-price-translations.d.ts +5 -5
  135. package/types/components/widgets/pn-find-price/pn-find-price-types.d.ts +2 -2
  136. package/types/components/widgets/pn-proxio-findprice/pn-proxio-findprice-result.d.ts +22 -0
  137. package/types/components/widgets/pn-proxio-findprice/pn-proxio-findprice-store.d.ts +51 -0
  138. package/types/components/widgets/pn-proxio-findprice/pn-proxio-findprice-translations.d.ts +106 -0
  139. package/types/components/widgets/pn-proxio-findprice/pn-proxio-findprice-types.d.ts +39 -0
  140. package/types/components/widgets/pn-proxio-findprice/pn-proxio-findprice.d.ts +24 -0
  141. package/types/components/widgets/pn-proxio-pricegroup/types.d.ts +1 -1
  142. package/types/components.d.ts +130 -1
  143. package/esm-es5/pn-marketweb-siteheader-login-links_2.entry.js +0 -1
  144. package/esm-es5/pn-product-card_4.entry.js +0 -1
  145. package/pn-market-web-components/p-022d9a78.entry.js +0 -1
  146. package/pn-market-web-components/p-198d9c77.system.entry.js +0 -1
  147. package/pn-market-web-components/p-332e9005.entry.js +0 -1
  148. package/pn-market-web-components/p-3c0d63fb.system.entry.js +0 -1
  149. package/pn-market-web-components/p-63c30175.entry.js +0 -1
  150. package/pn-market-web-components/p-6b33db5b.system.entry.js +0 -1
  151. package/pn-market-web-components/p-77557da8.entry.js +0 -1
  152. package/pn-market-web-components/p-92fd28e6.entry.js +0 -1
  153. package/pn-market-web-components/p-a119cb8e.entry.js +0 -1
  154. package/pn-market-web-components/p-c4254e9e.js +0 -1
  155. package/pn-market-web-components/p-d542a52b.system.entry.js +0 -1
  156. package/pn-market-web-components/p-eb662559.system.entry.js +0 -1
  157. /package/pn-market-web-components/{p-bfa7c83f.system.js → p-1534926e.system.js} +0 -0
  158. /package/pn-market-web-components/{p-86b52823.js → p-a07906d5.js} +0 -0
@@ -1,15 +1,15 @@
1
- import { Component, Prop, h, Element, Host } from "@stencil/core";
2
- import { state as headerState } from "./pn-marketweb-siteheader-store";
1
+ import { Component, Element, h, Host, Prop } from '@stencil/core';
2
+ import { state as headerState } from './pn-marketweb-siteheader-store';
3
3
  export class PnMarketwebSiteheaderLoginLinklist {
4
4
  constructor() {
5
5
  this.heading = null;
6
6
  this.links = [];
7
- this.idNamespace = "";
8
- }
9
- componentWillLoad() {
7
+ this.idNamespace = '';
8
+ this.showUnifiedLogin = false;
10
9
  }
10
+ componentWillLoad() { }
11
11
  uniqueId(text) {
12
- return "loginlink-" + text.replace(/[^A-Za-z0-9.\\\/]/igm, "") + "-" + this.idNamespace;
12
+ return 'loginlink-' + text.replace(/[^A-Za-z0-9.\\\/]/gim, '') + '-' + this.idNamespace;
13
13
  }
14
14
  linkAppearanceAttributes(link) {
15
15
  let attributes = {};
@@ -18,13 +18,13 @@ export class PnMarketwebSiteheaderLoginLinklist {
18
18
  case 'primary':
19
19
  attributes = {
20
20
  appearance: '',
21
- variant: ''
21
+ variant: '',
22
22
  };
23
23
  break;
24
24
  case 'secondary':
25
25
  attributes = {
26
26
  appearance: 'light',
27
- variant: 'outlined'
27
+ variant: 'outlined',
28
28
  };
29
29
  break;
30
30
  case 'regularlink':
@@ -32,7 +32,7 @@ export class PnMarketwebSiteheaderLoginLinklist {
32
32
  attributes = {
33
33
  appearance: 'light',
34
34
  variant: 'borderless',
35
- icon: 'arrow-right'
35
+ icon: 'arrow-right',
36
36
  };
37
37
  break;
38
38
  }
@@ -40,22 +40,39 @@ export class PnMarketwebSiteheaderLoginLinklist {
40
40
  }
41
41
  if (!link.linkType) {
42
42
  attributes = {
43
- appearance: link.primaryLinkApperance ? "dark" : "light"
43
+ appearance: link.primaryLinkApperance ? 'dark' : 'light',
44
44
  };
45
45
  }
46
46
  return attributes;
47
47
  }
48
+ renderListAsButtons(link) {
49
+ return (h("li", null,
50
+ h("pn-button", Object.assign({ href: link.href, id: this.uniqueId(link.linkText) }, (link.openInNewWindow && { target: '_blank' }), this.linkAppearanceAttributes(link), { onClick: () => {
51
+ if (link.isLogoutLink) {
52
+ headerState.loginManager.clearUserData();
53
+ }
54
+ } }), link.linkText)));
55
+ }
56
+ renderListAsLinks(link) {
57
+ return (h("li", null,
58
+ h("a", Object.assign({ href: link.href, id: this.uniqueId(link.linkText) }, (link.openInNewWindow && { target: '_blank' }), { onClick: () => {
59
+ if (link.isLogoutLink) {
60
+ headerState.loginManager.clearUserData();
61
+ }
62
+ } }),
63
+ link.linkText,
64
+ link.isLogoutLink ? h("pn-icon", { symbol: "transfer" }) : h("pn-icon", { symbol: "arrow-right" }))));
65
+ }
48
66
  render() {
49
67
  if (!this.links || this.links.length === 0) {
50
68
  return;
51
69
  }
52
70
  return (h(Host, null,
53
71
  this.heading ? h("strong", null, this.heading) : null,
54
- h("ul", null, this.links.map((link) => {
55
- return (h("li", null,
56
- h("pn-button", Object.assign({ href: link.href, id: this.uniqueId(link.linkText) }, (link.openInNewWindow && { target: '_blank' }), this.linkAppearanceAttributes(link), { onClick: () => { if (link.isLogoutLink) {
57
- headerState.loginManager.clearUserData();
58
- } } }), link.linkText)));
72
+ h("ul", null, this.links.map(link => {
73
+ {
74
+ return this.showUnifiedLogin ? this.renderListAsLinks(link) : this.renderListAsButtons(link);
75
+ }
59
76
  }))));
60
77
  }
61
78
  static get is() { return "pn-marketweb-siteheader-login-linklist"; }
@@ -121,7 +138,25 @@ export class PnMarketwebSiteheaderLoginLinklist {
121
138
  },
122
139
  "attribute": "id-namespace",
123
140
  "reflect": false,
124
- "defaultValue": "\"\""
141
+ "defaultValue": "''"
142
+ },
143
+ "showUnifiedLogin": {
144
+ "type": "boolean",
145
+ "mutable": false,
146
+ "complexType": {
147
+ "original": "boolean",
148
+ "resolved": "boolean",
149
+ "references": {}
150
+ },
151
+ "required": false,
152
+ "optional": false,
153
+ "docs": {
154
+ "tags": [],
155
+ "text": ""
156
+ },
157
+ "attribute": "show-unified-login",
158
+ "reflect": false,
159
+ "defaultValue": "false"
125
160
  }
126
161
  }; }
127
162
  static get elementRef() { return "hostElement"; }
@@ -1,12 +1,13 @@
1
- import { Component, Prop, h, Element, Watch, Host } from "@stencil/core";
2
- import { state as headerState } from "./pn-marketweb-siteheader-store";
1
+ import { Component, Element, h, Host, Prop, Watch } from '@stencil/core';
2
+ import { state as headerState } from './pn-marketweb-siteheader-store';
3
3
  export class PnMarketwebSiteheaderLoginLinks {
4
4
  constructor() {
5
5
  // Login dialog
6
6
  this.loginDialog = null;
7
- this.idNamespace = "";
7
+ this.idNamespace = '';
8
8
  this.loggedin = false;
9
- this.username = "";
9
+ this.username = '';
10
+ this.showUnifiedLogin = false;
10
11
  }
11
12
  componentWillLoad() {
12
13
  this.init();
@@ -21,12 +22,12 @@ export class PnMarketwebSiteheaderLoginLinks {
21
22
  }
22
23
  const adjustLink = (link, i) => {
23
24
  if (!link.isLogoutLink) {
24
- link.isLogoutLink = (link.pageLink.indexOf('location.href') !== -1 && link.pageLink.indexOf('logout') !== -1);
25
+ link.isLogoutLink = link.pageLink.indexOf('location.href') !== -1 && link.pageLink.indexOf('logout') !== -1;
25
26
  }
26
27
  if (link.isLogoutLink) {
27
28
  link.href = headerState.loginManager.getLogoutUrl(link.href);
28
29
  }
29
- link.href = link.href.replace("window.location.href", window.location.href);
30
+ link.href = link.href.replace('window.location.href', window.location.href);
30
31
  if (i === 0 && !link.href) {
31
32
  link.href = headerState.loginManager.getLoginUrl();
32
33
  link.linkType = 'primary';
@@ -49,7 +50,7 @@ export class PnMarketwebSiteheaderLoginLinks {
49
50
  isLogoutLink: false,
50
51
  pageLink: null,
51
52
  linkType: 'primary',
52
- primaryLinkApperance: true
53
+ primaryLinkApperance: true,
53
54
  },
54
55
  {
55
56
  href: headerState.loginManager.getLoginUrl(this.loginDialog.registerUrl),
@@ -57,8 +58,8 @@ export class PnMarketwebSiteheaderLoginLinks {
57
58
  openInNewWindow: false,
58
59
  isLogoutLink: false,
59
60
  pageLink: null,
60
- primaryLinkApperance: false
61
- }
61
+ primaryLinkApperance: false,
62
+ },
62
63
  ];
63
64
  }
64
65
  render() {
@@ -75,18 +76,8 @@ export class PnMarketwebSiteheaderLoginLinks {
75
76
  hostElementAttribute.loggedin = this.loggedin;
76
77
  }
77
78
  return (h(Host, Object.assign({}, hostElementAttribute),
78
- (!this.loginDialog.overrideLoginMenu) ?
79
- h("div", { "data-loggedin": this.loggedin + '' }, (this.loggedin) ?
80
- h("pn-marketweb-siteheader-login-linklist", { links: this.loginDialog.loggedInLinks, idNamespace: this.idNamespace })
81
- :
82
- h("div", null, ((_a = this.loginDialog.loginMenuLinks) === null || _a === void 0 ? void 0 : _a.length) > 0 ?
83
- h("pn-marketweb-siteheader-login-linklist", { heading: this.loginDialog.loginTitle, links: this.loginDialog.loginMenuLinks, idNamespace: this.idNamespace })
84
- :
85
- h("pn-marketweb-siteheader-login-linklist", { links: this.loginDialog.legacyLoginLinks, idNamespace: this.idNamespace })))
86
- : null,
87
- (this.loginDialog.overrideLoginMenu) ?
88
- h("pn-marketweb-siteheader-login-linklist", { links: this.loginDialog.loginMenuLinks, idNamespace: this.idNamespace })
89
- : null));
79
+ !this.loginDialog.overrideLoginMenu ? (h("div", { "data-loggedin": this.loggedin + '' }, this.loggedin ? (h("pn-marketweb-siteheader-login-linklist", { links: this.loginDialog.loggedInLinks, idNamespace: this.idNamespace })) : (h("div", null, ((_a = this.loginDialog.loginMenuLinks) === null || _a === void 0 ? void 0 : _a.length) > 0 ? (h("pn-marketweb-siteheader-login-linklist", { heading: this.loginDialog.loginTitle, links: this.loginDialog.loginMenuLinks, idNamespace: this.idNamespace, showUnifiedLogin: this.showUnifiedLogin })) : (h("pn-marketweb-siteheader-login-linklist", { links: this.loginDialog.legacyLoginLinks, idNamespace: this.idNamespace })))))) : null,
80
+ this.loginDialog.overrideLoginMenu ? (h("pn-marketweb-siteheader-login-linklist", { links: this.loginDialog.loginMenuLinks, idNamespace: this.idNamespace })) : null));
90
81
  }
91
82
  static get is() { return "pn-marketweb-siteheader-login-links"; }
92
83
  static get originalStyleUrls() { return {
@@ -133,7 +124,7 @@ export class PnMarketwebSiteheaderLoginLinks {
133
124
  },
134
125
  "attribute": "id-namespace",
135
126
  "reflect": false,
136
- "defaultValue": "\"\""
127
+ "defaultValue": "''"
137
128
  },
138
129
  "loggedin": {
139
130
  "type": "boolean",
@@ -169,7 +160,25 @@ export class PnMarketwebSiteheaderLoginLinks {
169
160
  },
170
161
  "attribute": "username",
171
162
  "reflect": false,
172
- "defaultValue": "\"\""
163
+ "defaultValue": "''"
164
+ },
165
+ "showUnifiedLogin": {
166
+ "type": "boolean",
167
+ "mutable": false,
168
+ "complexType": {
169
+ "original": "boolean",
170
+ "resolved": "boolean",
171
+ "references": {}
172
+ },
173
+ "required": false,
174
+ "optional": false,
175
+ "docs": {
176
+ "tags": [],
177
+ "text": ""
178
+ },
179
+ "attribute": "show-unified-login",
180
+ "reflect": false,
181
+ "defaultValue": "false"
173
182
  }
174
183
  }; }
175
184
  static get elementRef() { return "hostElement"; }
@@ -0,0 +1,55 @@
1
+ import { Component, Element, h, Host, Prop } from '@stencil/core';
2
+ export class PnMarketwebSiteheaderLoginMypageButton {
3
+ constructor() {
4
+ this.label = 'Mina sidor!';
5
+ }
6
+ render() {
7
+ return (h(Host, null,
8
+ h("pn-button", { href: this.myPageUrl }, this.label)));
9
+ }
10
+ static get is() { return "pn-marketweb-siteheader-login-mypage-button"; }
11
+ static get originalStyleUrls() { return {
12
+ "$": ["pn-marketweb-siteheader-login-mypage-button.scss"]
13
+ }; }
14
+ static get styleUrls() { return {
15
+ "$": ["pn-marketweb-siteheader-login-mypage-button.css"]
16
+ }; }
17
+ static get properties() { return {
18
+ "label": {
19
+ "type": "string",
20
+ "mutable": false,
21
+ "complexType": {
22
+ "original": "string",
23
+ "resolved": "string",
24
+ "references": {}
25
+ },
26
+ "required": false,
27
+ "optional": false,
28
+ "docs": {
29
+ "tags": [],
30
+ "text": ""
31
+ },
32
+ "attribute": "label",
33
+ "reflect": false,
34
+ "defaultValue": "'Mina sidor!'"
35
+ },
36
+ "myPageUrl": {
37
+ "type": "string",
38
+ "mutable": false,
39
+ "complexType": {
40
+ "original": "string",
41
+ "resolved": "string",
42
+ "references": {}
43
+ },
44
+ "required": false,
45
+ "optional": false,
46
+ "docs": {
47
+ "tags": [],
48
+ "text": ""
49
+ },
50
+ "attribute": "my-page-url",
51
+ "reflect": false
52
+ }
53
+ }; }
54
+ static get elementRef() { return "hostElement"; }
55
+ }
@@ -1,26 +1,41 @@
1
- import { Component, Prop, h, State, Element, Watch, Event, Host } from "@stencil/core";
2
- import { MarketWebLoginManager } from "../../../globals/MarketWebLoginManager";
3
- import { state as headerState } from "./pn-marketweb-siteheader-store";
1
+ import { Component, Element, Event, h, Host, Prop, State, Watch } from '@stencil/core';
2
+ import { MarketWebLoginManager } from '../../../globals/MarketWebLoginManager';
3
+ import { state as headerState } from './pn-marketweb-siteheader-store';
4
4
  export class PnMarketwebSiteheaderLogin {
5
5
  constructor() {
6
6
  var _a;
7
7
  /** Specifies which endpoint domain we should load from */
8
- this.endpoint = "";
8
+ this.endpoint = '';
9
9
  /** Access token passed from backend */
10
- this.token = "";
11
- this.i18n = { "searchlabel": "", "searchplaceholder": "", "searchbuttontext": "", "menuHomeButton": "", "menuGoBackButton": "", "mainMenuButton": "", "menuStartButton": "", "profileSelectionFlyoutHeading": "" };
10
+ this.token = '';
11
+ this.i18n = {
12
+ searchlabel: '',
13
+ searchplaceholder: '',
14
+ searchbuttontext: '',
15
+ menuHomeButton: '',
16
+ menuGoBackButton: '',
17
+ mainMenuButton: '',
18
+ menuStartButton: '',
19
+ profileSelectionFlyoutHeading: '',
20
+ unifiedLoginButton: '',
21
+ unifiedMyPagesButton: '',
22
+ };
12
23
  this.siteUrl = '';
13
24
  this.emitEvents = true;
14
25
  // Login dialog
15
26
  this.loginDialog = null;
16
27
  /** User Fullname */
17
- this.fullname = "";
28
+ this.fullname = '';
18
29
  this.loggedin = false;
19
30
  /** If this is selected we will show the new profile selection dropdown instead of the login version */
20
31
  this.showProfileSelection = false;
32
+ /** if this is selected we will show the unifiedlogin button along with new look for dropdown */
33
+ this.showUnifiedLogin = false;
21
34
  /** Continiously check if a user is logged in **/
22
35
  this.checkUserLoggedInStateInterval = 0;
23
- this.toggleButtonText = (((_a = this.loginDialog) === null || _a === void 0 ? void 0 : _a.loginMenuLinkText) ? this.loginDialog.loginMenuLinkText : "");
36
+ this.loginButtonText = 'Placeholder';
37
+ this.loginInformationRichText = '<a href="#">Read more about the benefits of becoming a customer in the business portal</a>';
38
+ this.toggleButtonText = ((_a = this.loginDialog) === null || _a === void 0 ? void 0 : _a.loginMenuLinkText) ? this.loginDialog.loginMenuLinkText : '';
24
39
  this.username = this.fullname;
25
40
  }
26
41
  componentWillLoad() {
@@ -29,14 +44,15 @@ export class PnMarketwebSiteheaderLogin {
29
44
  endpoint: this.endpoint,
30
45
  eventTarget: this.hostElement,
31
46
  checkUserLoggedInStateInterval: this.checkUserLoggedInStateInterval,
32
- userInfo
47
+ userInfo,
33
48
  });
34
49
  headerState.loginManager.setSiteUrl(this.siteUrl);
35
- this.hostElement["loginmanager"] = headerState.loginManager;
50
+ this.hostElement['loginmanager'] = headerState.loginManager;
36
51
  if (this.token) {
37
52
  headerState.loginManager.registerToken(this.token, 'backend');
38
53
  }
39
- else if (this.emitEvents) { // The primary login instance
54
+ else if (this.emitEvents) {
55
+ // The primary login instance
40
56
  headerState.loginManager.invalidateTokenOfType('backend');
41
57
  }
42
58
  this.hostElement.addEventListener(headerState.loginManager.events.loginstatechange, this.onLoginStateChange.bind(this));
@@ -56,7 +72,7 @@ export class PnMarketwebSiteheaderLogin {
56
72
  }
57
73
  const adjustLink = (link, i) => {
58
74
  if (!link.isLogoutLink) {
59
- link.isLogoutLink = (link.pageLink.indexOf('location.href') !== -1 && link.pageLink.indexOf('logout') !== -1);
75
+ link.isLogoutLink = link.pageLink.indexOf('location.href') !== -1 && link.pageLink.indexOf('logout') !== -1;
60
76
  }
61
77
  if (link.isLogoutLink) {
62
78
  link.href = headerState.loginManager.getLogoutUrl(link.href);
@@ -82,7 +98,7 @@ export class PnMarketwebSiteheaderLogin {
82
98
  isLogoutLink: false,
83
99
  pageLink: null,
84
100
  linkType: 'primary',
85
- primaryLinkApperance: true
101
+ primaryLinkApperance: true,
86
102
  },
87
103
  {
88
104
  href: headerState.loginManager.getLoginUrl(this.loginDialog.registerUrl),
@@ -90,18 +106,18 @@ export class PnMarketwebSiteheaderLogin {
90
106
  openInNewWindow: false,
91
107
  isLogoutLink: false,
92
108
  pageLink: null,
93
- primaryLinkApperance: false
94
- }
109
+ primaryLinkApperance: false,
110
+ },
95
111
  ];
96
112
  }
97
113
  setUserName() {
98
114
  const userInfo = headerState.loginManager.getUserInfo();
99
- let name = "";
115
+ let name = '';
100
116
  if (!this.loggedin || !userInfo) {
101
117
  this.username = name;
102
118
  }
103
119
  if (userInfo && userInfo.given_name) {
104
- name = userInfo.given_name + ((userInfo === null || userInfo === void 0 ? void 0 : userInfo.family_name) ? ` ${userInfo === null || userInfo === void 0 ? void 0 : userInfo.family_name}` : "");
120
+ name = userInfo.given_name + ((userInfo === null || userInfo === void 0 ? void 0 : userInfo.family_name) ? ` ${userInfo === null || userInfo === void 0 ? void 0 : userInfo.family_name}` : '');
105
121
  }
106
122
  if (!name && userInfo && userInfo.email) {
107
123
  name = userInfo.email;
@@ -143,10 +159,10 @@ export class PnMarketwebSiteheaderLogin {
143
159
  hostElementAttribute.loggedin = this.loggedin + '';
144
160
  }
145
161
  return (h(Host, Object.assign({}, hostElementAttribute),
146
- h("pn-nav-dropdown", { label: this.toggleButtonText, icon: "user", class: "siteheader-logindialog" }, this.loggedin && this.showProfileSelection ?
147
- h("pn-marketweb-siteheader-login-profileselection", { loginDialog: this.loginDialog, loggedin: this.loggedin, i18n: this.i18n, idNamespace: this.emitEvents ? '1' : '2', endpoint: this.endpoint })
148
- :
149
- h("pn-marketweb-siteheader-login-links", { loginDialog: this.loginDialog, loggedin: this.loggedin, idNamespace: this.emitEvents ? '1' : '2', username: this.username }))));
162
+ h("pn-nav-dropdown", { label: this.toggleButtonText, icon: "user", class: "siteheader-logindialog" },
163
+ this.showUnifiedLogin && (h("pn-marketweb-siteheader-unified-login", { loggedIn: this.loggedin, myPageLabel: this.i18n.unifiedMyPagesButton, myPageUrl: "https://account.postnord.com/secure/profile", logInLabel: this.i18n.unifiedLoginButton })),
164
+ this.loggedin && this.showProfileSelection ? (h("pn-marketweb-siteheader-login-profileselection", { loginDialog: this.loginDialog, loggedin: this.loggedin, i18n: this.i18n, idNamespace: this.emitEvents ? '1' : '2', endpoint: this.endpoint })) : (h("pn-marketweb-siteheader-login-links", { loginDialog: this.loginDialog, loggedin: this.loggedin, idNamespace: this.emitEvents ? '1' : '2', username: this.username, showUnifiedLogin: this.showUnifiedLogin })),
165
+ this.showUnifiedLogin && h("span", { innerHTML: `${this.loginInformationRichText}` }))));
150
166
  }
151
167
  static get is() { return "pn-marketweb-siteheader-login"; }
152
168
  static get originalStyleUrls() { return {
@@ -172,7 +188,7 @@ export class PnMarketwebSiteheaderLogin {
172
188
  },
173
189
  "attribute": "endpoint",
174
190
  "reflect": false,
175
- "defaultValue": "\"\""
191
+ "defaultValue": "''"
176
192
  },
177
193
  "token": {
178
194
  "type": "string",
@@ -190,7 +206,7 @@ export class PnMarketwebSiteheaderLogin {
190
206
  },
191
207
  "attribute": "token",
192
208
  "reflect": false,
193
- "defaultValue": "\"\""
209
+ "defaultValue": "''"
194
210
  },
195
211
  "i18n": {
196
212
  "type": "unknown",
@@ -211,7 +227,7 @@ export class PnMarketwebSiteheaderLogin {
211
227
  "tags": [],
212
228
  "text": ""
213
229
  },
214
- "defaultValue": "{ \"searchlabel\":\"\", \"searchplaceholder\":\"\", \"searchbuttontext\":\"\", \"menuHomeButton\": \"\", \"menuGoBackButton\": \"\", \"mainMenuButton\": \"\", \"menuStartButton\": \"\", \"profileSelectionFlyoutHeading\": \"\" } as SiteHeaderI18N"
230
+ "defaultValue": "{\n searchlabel: '',\n searchplaceholder: '',\n searchbuttontext: '',\n menuHomeButton: '',\n menuGoBackButton: '',\n mainMenuButton: '',\n menuStartButton: '',\n profileSelectionFlyoutHeading: '',\n unifiedLoginButton: '',\n unifiedMyPagesButton: '',\n } as SiteHeaderI18N"
215
231
  },
216
232
  "siteUrl": {
217
233
  "type": "string",
@@ -286,7 +302,7 @@ export class PnMarketwebSiteheaderLogin {
286
302
  },
287
303
  "attribute": "fullname",
288
304
  "reflect": false,
289
- "defaultValue": "\"\""
305
+ "defaultValue": "''"
290
306
  },
291
307
  "loggedin": {
292
308
  "type": "boolean",
@@ -324,6 +340,24 @@ export class PnMarketwebSiteheaderLogin {
324
340
  "reflect": false,
325
341
  "defaultValue": "false"
326
342
  },
343
+ "showUnifiedLogin": {
344
+ "type": "boolean",
345
+ "mutable": false,
346
+ "complexType": {
347
+ "original": "boolean",
348
+ "resolved": "boolean",
349
+ "references": {}
350
+ },
351
+ "required": false,
352
+ "optional": false,
353
+ "docs": {
354
+ "tags": [],
355
+ "text": "if this is selected we will show the unifiedlogin button along with new look for dropdown"
356
+ },
357
+ "attribute": "show-unified-login",
358
+ "reflect": false,
359
+ "defaultValue": "false"
360
+ },
327
361
  "checkUserLoggedInStateInterval": {
328
362
  "type": "number",
329
363
  "mutable": false,
@@ -341,6 +375,59 @@ export class PnMarketwebSiteheaderLogin {
341
375
  "attribute": "check-user-logged-in-state-interval",
342
376
  "reflect": false,
343
377
  "defaultValue": "0"
378
+ },
379
+ "environment": {
380
+ "type": "string",
381
+ "mutable": false,
382
+ "complexType": {
383
+ "original": "string",
384
+ "resolved": "string",
385
+ "references": {}
386
+ },
387
+ "required": false,
388
+ "optional": true,
389
+ "docs": {
390
+ "tags": [],
391
+ "text": ""
392
+ },
393
+ "attribute": "environment",
394
+ "reflect": false
395
+ },
396
+ "loginButtonText": {
397
+ "type": "string",
398
+ "mutable": false,
399
+ "complexType": {
400
+ "original": "string",
401
+ "resolved": "string",
402
+ "references": {}
403
+ },
404
+ "required": false,
405
+ "optional": false,
406
+ "docs": {
407
+ "tags": [],
408
+ "text": ""
409
+ },
410
+ "attribute": "login-button-text",
411
+ "reflect": false,
412
+ "defaultValue": "'Placeholder'"
413
+ },
414
+ "loginInformationRichText": {
415
+ "type": "string",
416
+ "mutable": false,
417
+ "complexType": {
418
+ "original": "string",
419
+ "resolved": "string",
420
+ "references": {}
421
+ },
422
+ "required": false,
423
+ "optional": false,
424
+ "docs": {
425
+ "tags": [],
426
+ "text": ""
427
+ },
428
+ "attribute": "login-information-rich-text",
429
+ "reflect": false,
430
+ "defaultValue": "'<a href=\"#\">Read more about the benefits of becoming a customer in the business portal</a>'"
344
431
  }
345
432
  }; }
346
433
  static get states() { return {
@@ -0,0 +1,88 @@
1
+ import { Component, Element, h, Host, Prop } from '@stencil/core';
2
+ export class PnMarketwebSiteheaderUnifiedLogin {
3
+ constructor() {
4
+ this.loggedIn = false;
5
+ }
6
+ render() {
7
+ return (h(Host, null, this.loggedIn ? (h("pn-marketweb-siteheader-login-mypage-button", { label: this.myPageLabel, myPageUrl: this.myPageUrl })) : (h("pn-marketweb-siteheader-login-button", { label: this.logInLabel }))));
8
+ }
9
+ static get is() { return "pn-marketweb-siteheader-unified-login"; }
10
+ static get originalStyleUrls() { return {
11
+ "$": ["pn-marketweb-siteheader-unified-login.scss"]
12
+ }; }
13
+ static get styleUrls() { return {
14
+ "$": ["pn-marketweb-siteheader-unified-login.css"]
15
+ }; }
16
+ static get properties() { return {
17
+ "loggedIn": {
18
+ "type": "boolean",
19
+ "mutable": false,
20
+ "complexType": {
21
+ "original": "boolean",
22
+ "resolved": "boolean",
23
+ "references": {}
24
+ },
25
+ "required": false,
26
+ "optional": false,
27
+ "docs": {
28
+ "tags": [],
29
+ "text": ""
30
+ },
31
+ "attribute": "logged-in",
32
+ "reflect": false,
33
+ "defaultValue": "false"
34
+ },
35
+ "myPageLabel": {
36
+ "type": "string",
37
+ "mutable": false,
38
+ "complexType": {
39
+ "original": "string",
40
+ "resolved": "string",
41
+ "references": {}
42
+ },
43
+ "required": false,
44
+ "optional": false,
45
+ "docs": {
46
+ "tags": [],
47
+ "text": ""
48
+ },
49
+ "attribute": "my-page-label",
50
+ "reflect": false
51
+ },
52
+ "myPageUrl": {
53
+ "type": "string",
54
+ "mutable": false,
55
+ "complexType": {
56
+ "original": "string",
57
+ "resolved": "string",
58
+ "references": {}
59
+ },
60
+ "required": false,
61
+ "optional": false,
62
+ "docs": {
63
+ "tags": [],
64
+ "text": ""
65
+ },
66
+ "attribute": "my-page-url",
67
+ "reflect": false
68
+ },
69
+ "logInLabel": {
70
+ "type": "string",
71
+ "mutable": false,
72
+ "complexType": {
73
+ "original": "string",
74
+ "resolved": "string",
75
+ "references": {}
76
+ },
77
+ "required": false,
78
+ "optional": false,
79
+ "docs": {
80
+ "tags": [],
81
+ "text": ""
82
+ },
83
+ "attribute": "log-in-label",
84
+ "reflect": false
85
+ }
86
+ }; }
87
+ static get elementRef() { return "hostElement"; }
88
+ }
@@ -87,6 +87,36 @@ pn-marketweb-siteheader .siteheader-row > pn-marketweb-siteheader-search {
87
87
  pn-marketweb-siteheader pn-spinner {
88
88
  display: none;
89
89
  }
90
+ pn-marketweb-siteheader pn-nav-dropdown .nav-dropdown-content-container .nav-dropdown-content {
91
+ max-width: 350px;
92
+ display: flex;
93
+ flex-direction: column;
94
+ gap: 2.4rem;
95
+ padding: 4rem;
96
+ }
97
+ pn-marketweb-siteheader pn-nav-dropdown .nav-dropdown-content-container .nav-dropdown-content pn-button {
98
+ width: 100%;
99
+ }
100
+ pn-marketweb-siteheader pn-nav-dropdown .nav-dropdown-content-container .nav-dropdown-content pn-marketweb-siteheader-login-links::before,
101
+ pn-marketweb-siteheader pn-nav-dropdown .nav-dropdown-content-container .nav-dropdown-content span::before {
102
+ display: block;
103
+ content: "";
104
+ height: 2px;
105
+ background: #F9F8F8;
106
+ width: 100%;
107
+ margin-bottom: 2.4rem;
108
+ }
109
+ pn-marketweb-siteheader pn-nav-dropdown .nav-dropdown-content-container .nav-dropdown-content span {
110
+ font-size: 1.4rem;
111
+ color: #005D92;
112
+ }
113
+ pn-marketweb-siteheader pn-nav-dropdown .nav-dropdown-content-container .nav-dropdown-content span a {
114
+ text-decoration: none;
115
+ color: #005D92;
116
+ }
117
+ pn-marketweb-siteheader pn-nav-dropdown .nav-dropdown-content-container .nav-dropdown-content span a:hover {
118
+ text-decoration: underline;
119
+ }
90
120
  pn-marketweb-siteheader pn-nav-dropdown:not(.hydrated) .nav-dropdown-content-container {
91
121
  display: none;
92
122
  }
@@ -360,6 +390,9 @@ header[data-header-theme=dotcom] > pn-marketweb-siteheader > header nav.mainnav
360
390
  background-color: #00A0D6;
361
391
  text-decoration: none;
362
392
  }
393
+ header[data-header-theme=dotcom] > pn-marketweb-siteheader > header nav.mainnav pn-marketweb-siteheader-login-linklist ul li a {
394
+ color: #005D92;
395
+ }
363
396
  header[data-header-theme=dotcom] > pn-marketweb-siteheader > header [data-level="1"] pn-mainnav-link pn-icon.first-level_arrow svg > path {
364
397
  fill: #FFFFFF;
365
398
  }