@postnord/pn-marketweb-components 2.0.108 → 2.0.110

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 (68) hide show
  1. package/cjs/{MarketWebLoginManager-11cf6811.js → MarketWebLoginManager-2fe6a1a7.js} +8 -2
  2. package/cjs/loader.cjs.js +1 -1
  3. package/cjs/pn-language-selector_9.cjs.entry.js +1 -1
  4. package/cjs/pn-line-shape.cjs.entry.js +21 -0
  5. package/cjs/pn-market-web-components.cjs.js +1 -1
  6. package/cjs/pn-marketweb-siteheader.cjs.entry.js +1 -1
  7. package/cjs/pn-quote-card.cjs.entry.js +24 -0
  8. package/cjs/pn-stats-info-data.cjs.entry.js +1 -1
  9. package/cjs/pn-stats-info.cjs.entry.js +4 -1
  10. package/collection/collection-manifest.json +2 -0
  11. package/collection/components/cards/pn-quote-card/pn-line-shape/pn-line-shape.css +39 -0
  12. package/collection/components/cards/pn-quote-card/pn-line-shape/pn-line-shape.js +18 -0
  13. package/collection/components/cards/pn-quote-card/pn-quote-card.css +291 -0
  14. package/collection/components/cards/pn-quote-card/pn-quote-card.js +92 -0
  15. package/collection/components/cards/pn-quote-card/pn-quote-card.stories.js +83 -0
  16. package/collection/components/data-visualization/pn-stats-info/pn-stats-info-data/animationHelper.js +1 -1
  17. package/collection/components/data-visualization/pn-stats-info/pn-stats-info-data/pn-stats-info-data.js +3 -3
  18. package/collection/components/data-visualization/pn-stats-info/pn-stats-info.js +4 -1
  19. package/collection/components/data-visualization/pn-stats-info/pn-stats-info.stories.js +8 -0
  20. package/collection/globals/MarketWebLoginManager.js +8 -2
  21. package/custom-elements/index.d.ts +12 -0
  22. package/custom-elements/index.js +52 -6
  23. package/esm/{MarketWebLoginManager-9b918d7e.js → MarketWebLoginManager-78e62611.js} +8 -2
  24. package/esm/loader.js +1 -1
  25. package/esm/pn-language-selector_9.entry.js +1 -1
  26. package/esm/pn-line-shape.entry.js +17 -0
  27. package/esm/pn-market-web-components.js +1 -1
  28. package/esm/pn-marketweb-siteheader.entry.js +1 -1
  29. package/esm/pn-quote-card.entry.js +20 -0
  30. package/esm/pn-stats-info-data.entry.js +1 -1
  31. package/esm/pn-stats-info.entry.js +4 -1
  32. package/esm-es5/{MarketWebLoginManager-9b918d7e.js → MarketWebLoginManager-78e62611.js} +1 -1
  33. package/esm-es5/loader.js +1 -1
  34. package/esm-es5/pn-language-selector_9.entry.js +1 -1
  35. package/esm-es5/pn-line-shape.entry.js +1 -0
  36. package/esm-es5/pn-market-web-components.js +1 -1
  37. package/esm-es5/pn-marketweb-siteheader.entry.js +1 -1
  38. package/esm-es5/pn-quote-card.entry.js +1 -0
  39. package/esm-es5/pn-stats-info-data.entry.js +1 -1
  40. package/esm-es5/pn-stats-info.entry.js +1 -1
  41. package/package.json +1 -1
  42. package/pn-market-web-components/{p-a3e34acb.entry.js → p-13443674.entry.js} +1 -1
  43. package/pn-market-web-components/p-15ae4d8a.system.entry.js +1 -0
  44. package/pn-market-web-components/p-1610d018.system.entry.js +1 -0
  45. package/pn-market-web-components/{p-08ea20b0.system.entry.js → p-18380cb2.system.entry.js} +1 -1
  46. package/pn-market-web-components/{p-492fce97.system.entry.js → p-2ccb9cd9.system.entry.js} +1 -1
  47. package/pn-market-web-components/p-4e0757d5.entry.js +1 -0
  48. package/pn-market-web-components/p-5117ac1f.entry.js +1 -0
  49. package/pn-market-web-components/p-67887512.system.js +1 -1
  50. package/pn-market-web-components/p-9775aec5.entry.js +1 -0
  51. package/pn-market-web-components/p-b9e8e73f.system.entry.js +1 -0
  52. package/pn-market-web-components/{p-2ac42d0a.system.js → p-d864da57.system.js} +1 -1
  53. package/pn-market-web-components/{p-71276cee.entry.js → p-e57eec87.entry.js} +1 -1
  54. package/pn-market-web-components/p-e999b220.js +1 -0
  55. package/pn-market-web-components/{p-177d6054.system.entry.js → p-f9fc1c6d.system.entry.js} +1 -1
  56. package/pn-market-web-components/p-fd4bb638.entry.js +1 -0
  57. package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
  58. package/types/components/cards/pn-quote-card/pn-line-shape/pn-line-shape.d.ts +4 -0
  59. package/types/components/cards/pn-quote-card/pn-quote-card.d.ts +7 -0
  60. package/types/components/data-visualization/pn-stats-info/pn-stats-info-data/pn-stats-info-data.d.ts +1 -1
  61. package/types/components/data-visualization/pn-stats-info/pn-stats-info.d.ts +1 -0
  62. package/types/components.d.ts +34 -2
  63. package/umd/pn-marketweb-init.js +1 -1
  64. package/umd/pn-marketweb-salesforce.js +2 -2
  65. package/pn-market-web-components/p-1ef2ef71.system.entry.js +0 -1
  66. package/pn-market-web-components/p-20281c39.entry.js +0 -1
  67. package/pn-market-web-components/p-910eb3c2.entry.js +0 -1
  68. package/pn-market-web-components/p-9e8e8cc4.js +0 -1
@@ -0,0 +1,291 @@
1
+ pn-quote-card .pn-quote-card__container {
2
+ margin: 0 auto;
3
+ display: flex;
4
+ flex-direction: row;
5
+ min-height: 262px;
6
+ padding: 0 2.4rem;
7
+ }
8
+ pn-quote-card .pn-quote-card__quote__container {
9
+ padding: 0 3.2rem;
10
+ }
11
+ pn-quote-card .pn-quote-card__quote {
12
+ position: relative;
13
+ font-weight: 400;
14
+ font-size: 2rem;
15
+ line-height: 140%;
16
+ margin: 0;
17
+ }
18
+ pn-quote-card .pn-quote-card__quote svg {
19
+ position: absolute;
20
+ left: -3.2rem;
21
+ top: 0.2rem;
22
+ }
23
+ pn-quote-card .pn-quote-card__reference__container {
24
+ display: flex;
25
+ flex-direction: row;
26
+ justify-content: flex-start;
27
+ gap: 1.6rem;
28
+ align-items: center;
29
+ }
30
+ pn-quote-card .pn-quote-card__reference__name {
31
+ font-weight: 400;
32
+ font-size: 2.4rem;
33
+ line-height: 2.9rem;
34
+ }
35
+ pn-quote-card .pn-quote-card__reference__occupation {
36
+ font-weight: 400;
37
+ font-size: 1.4rem;
38
+ line-height: 1.7rem;
39
+ }
40
+ pn-quote-card [slot=illustration] {
41
+ padding: 0;
42
+ }
43
+ pn-quote-card [slot=illustration-big] {
44
+ padding: 0.8rem 0;
45
+ }
46
+ pn-quote-card [slot=illustration],
47
+ pn-quote-card [slot=illustration-big] {
48
+ aspect-ratio: 1/1;
49
+ }
50
+ pn-quote-card [slot=illustration] picture,
51
+ pn-quote-card [slot=illustration-big] picture {
52
+ aspect-ratio: 1/1;
53
+ }
54
+ pn-quote-card [slot=illustration] picture img,
55
+ pn-quote-card [slot=illustration-big] picture img {
56
+ clip-path: circle(50%);
57
+ }
58
+
59
+ pn-quote-card[data-line-orientation=horizontal] [slot=horizontal-line] {
60
+ display: flex;
61
+ }
62
+ pn-quote-card[data-line-orientation=horizontal] [slot=vertical-line] {
63
+ display: none;
64
+ }
65
+
66
+ pn-quote-card[data-line-orientation=vertical] [slot=horizontal-line] {
67
+ display: none;
68
+ }
69
+ pn-quote-card[data-line-orientation=vertical] [slot=vertical-line] {
70
+ display: flex;
71
+ }
72
+
73
+ pn-quote-card[data-line-color=white] .pn-quote-card__section {
74
+ background-color: #00A0D6;
75
+ color: #FFFFFF;
76
+ }
77
+ pn-quote-card[data-line-color=white] .pn-line-shape__line,
78
+ pn-quote-card[data-line-color=white] .pn-line-shape__dot {
79
+ border-color: #FFFFFF;
80
+ }
81
+ pn-quote-card[data-line-color=white] .pn-quote-card__quote svg > path {
82
+ fill: #FFFFFF;
83
+ }
84
+
85
+ pn-quote-card[data-line-color=blue] .pn-quote-card__section {
86
+ background-color: #FFFFFF;
87
+ }
88
+ pn-quote-card[data-line-color=blue] .pn-line-shape__line,
89
+ pn-quote-card[data-line-color=blue] .pn-line-shape__dot {
90
+ border-color: #00A0D6;
91
+ }
92
+ pn-quote-card[data-line-color=blue] .pn-quote-card__quote svg > path {
93
+ fill: #00A0D6;
94
+ }
95
+
96
+ pn-quote-card[data-card-style=quotepage] .pn-quote-card__large-photo {
97
+ display: none;
98
+ }
99
+
100
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__section {
101
+ width: 100%;
102
+ margin: 0 auto;
103
+ padding-top: 4rem;
104
+ padding-bottom: 4rem;
105
+ }
106
+ @media screen and (min-width: 992px) {
107
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__section {
108
+ padding-bottom: 0;
109
+ }
110
+ }
111
+ @media screen and (min-width: 1200px) {
112
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__section {
113
+ padding-top: 10rem;
114
+ }
115
+ }
116
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__container {
117
+ min-height: 10rem;
118
+ padding-bottom: 0;
119
+ }
120
+ @media screen and (min-width: 768px) {
121
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__container {
122
+ max-width: 90%;
123
+ width: 100%;
124
+ /* background-color: green; */
125
+ }
126
+ }
127
+ @media screen and (min-width: 992px) {
128
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__container {
129
+ max-width: 768px;
130
+ width: 100%;
131
+ /* background-color: rebeccapurple; */
132
+ }
133
+ }
134
+ @media screen and (min-width: 1200px) {
135
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__container {
136
+ max-width: 1140px;
137
+ width: 100%;
138
+ padding: 0 5.6rem;
139
+ /* background-color: hotpink; */
140
+ }
141
+ }
142
+ @media screen and (min-width: 1640px) {
143
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__container {
144
+ max-width: 1440px;
145
+ width: 100%;
146
+ padding: 0 12rem;
147
+ /* background-color: red; */
148
+ }
149
+ }
150
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__quote__container {
151
+ padding-bottom: 0;
152
+ }
153
+ @media screen and (min-width: 768px) {
154
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__quote__container {
155
+ padding-left: 2.4rem;
156
+ padding-right: 2.4rem;
157
+ }
158
+ }
159
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__quote {
160
+ font-size: 2rem;
161
+ padding-left: 2.4rem;
162
+ }
163
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__quote svg {
164
+ left: -0.8rem;
165
+ top: 0.2rem;
166
+ }
167
+ @media screen and (min-width: 768px) {
168
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__quote {
169
+ padding-left: 4rem;
170
+ }
171
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__quote svg {
172
+ left: 0;
173
+ }
174
+ }
175
+ @media screen and (min-width: 992px) {
176
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__quote {
177
+ font-size: 2.4rem;
178
+ }
179
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__quote svg {
180
+ left: 0;
181
+ top: 0.4rem;
182
+ scale: 1.3;
183
+ }
184
+ }
185
+ @media screen and (min-width: 1200px) {
186
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__quote {
187
+ padding-left: 0;
188
+ font-size: 3.2rem;
189
+ }
190
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__quote svg {
191
+ left: -4.8rem;
192
+ top: 1rem;
193
+ scale: 1.4;
194
+ }
195
+ }
196
+ @media screen and (min-width: 1640px) {
197
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__quote {
198
+ font-size: 4rem;
199
+ }
200
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__quote svg {
201
+ left: -6.4rem;
202
+ top: 1.6rem;
203
+ scale: 1.8;
204
+ }
205
+ }
206
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__reference__container {
207
+ flex-direction: row-reverse;
208
+ }
209
+ pn-quote-card[data-card-style=startpage] [slot=illustration] picture > img {
210
+ max-width: 6rem;
211
+ max-height: 6rem;
212
+ }
213
+ @media screen and (min-width: 768px) {
214
+ pn-quote-card[data-card-style=startpage] [slot=illustration] picture > img {
215
+ max-width: 10rem;
216
+ max-height: 10rem;
217
+ }
218
+ }
219
+ @media screen and (min-width: 1140px) {
220
+ pn-quote-card[data-card-style=startpage] [slot=illustration] {
221
+ display: none;
222
+ }
223
+ }
224
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__reference {
225
+ text-align: right;
226
+ }
227
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__reference__name {
228
+ display: block;
229
+ font-size: 1.4rem;
230
+ }
231
+ @media screen and (min-width: 768px) {
232
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__reference__name {
233
+ font-size: 1.6rem;
234
+ }
235
+ }
236
+ @media screen and (min-width: 992px) {
237
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__reference__name {
238
+ font-size: 2rem;
239
+ }
240
+ }
241
+ @media screen and (min-width: 1640px) {
242
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__reference__name {
243
+ font-size: 3.2rem;
244
+ margin-bottom: 1rem;
245
+ }
246
+ }
247
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__reference__occupation {
248
+ display: block;
249
+ font-size: 1.2rem;
250
+ }
251
+ @media screen and (min-width: 992px) {
252
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__reference__occupation {
253
+ font-size: 1.4rem;
254
+ }
255
+ }
256
+ @media screen and (min-width: 1640px) {
257
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__reference__occupation {
258
+ font-size: 2rem;
259
+ }
260
+ }
261
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__large-photo {
262
+ display: none;
263
+ }
264
+ @media screen and (min-width: 1140px) {
265
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__large-photo {
266
+ display: block;
267
+ }
268
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__large-photo > [slot=illustration-big] {
269
+ width: 18rem;
270
+ height: 18rem;
271
+ }
272
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__large-photo > [slot=illustration-big] picture > img {
273
+ width: 18rem;
274
+ height: 18rem;
275
+ }
276
+ }
277
+ @media screen and (min-width: 1640px) {
278
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__large-photo {
279
+ display: block;
280
+ width: 24rem;
281
+ height: 24rem;
282
+ }
283
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__large-photo > [slot=illustration-big] {
284
+ width: 24rem;
285
+ height: 24rem;
286
+ }
287
+ pn-quote-card[data-card-style=startpage] .pn-quote-card__large-photo > [slot=illustration-big] > picture > img {
288
+ width: 24rem;
289
+ height: 24rem;
290
+ }
291
+ }
@@ -0,0 +1,92 @@
1
+ import { Component, Element, h, Host, Prop, } from '@stencil/core';
2
+ export class PnQuoteCard {
3
+ constructor() {
4
+ //props
5
+ this.quote = null;
6
+ this.name = null;
7
+ this.occupation = null;
8
+ }
9
+ render() {
10
+ return (h(Host, null,
11
+ h("div", { class: "pn-quote-card__section" },
12
+ h("div", { class: "pn-quote-card__container" },
13
+ h("slot", { name: "vertical-line" }, " "),
14
+ h("div", { class: "pn-quote-card__quote__container" },
15
+ h("blockquote", { class: "pn-quote-card__quote" },
16
+ h("svg", { width: "25", height: "18", viewBox: "0 0 25 18", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
17
+ h("path", { d: "M10.483 0V7.391C10.483 13.095 6.752 16.961 1.5 18L0.505 15.849C2.937 14.932 4.5 12.211 4.5 10H0.5V0H10.483ZM24.5 0V7.391C24.5 13.095 20.752 16.962 15.5 18L14.504 15.849C16.937 14.932 18.5 12.211 18.5 10H14.517V0H24.5Z", fill: "white" })),
18
+ this.quote),
19
+ h("slot", { name: "horizontal-line" }),
20
+ h("div", { class: "pn-quote-card__reference__container" },
21
+ h("slot", { name: "illustration" }),
22
+ h("div", { class: "pn-quote-card__reference" },
23
+ h("span", { class: "pn-quote-card__reference__name" }, this.name),
24
+ h("span", { class: "pn-quote-card__reference__occupation" }, this.occupation)))),
25
+ h("div", { class: "pn-quote-card__large-photo" },
26
+ h("slot", { name: "illustration-big" }))))));
27
+ }
28
+ static get is() { return "pn-quote-card"; }
29
+ static get originalStyleUrls() { return {
30
+ "$": ["pn-quote-card.scss"]
31
+ }; }
32
+ static get styleUrls() { return {
33
+ "$": ["pn-quote-card.css"]
34
+ }; }
35
+ static get properties() { return {
36
+ "quote": {
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": "quote",
51
+ "reflect": false,
52
+ "defaultValue": "null"
53
+ },
54
+ "name": {
55
+ "type": "string",
56
+ "mutable": false,
57
+ "complexType": {
58
+ "original": "string",
59
+ "resolved": "string",
60
+ "references": {}
61
+ },
62
+ "required": false,
63
+ "optional": false,
64
+ "docs": {
65
+ "tags": [],
66
+ "text": ""
67
+ },
68
+ "attribute": "name",
69
+ "reflect": false,
70
+ "defaultValue": "null"
71
+ },
72
+ "occupation": {
73
+ "type": "string",
74
+ "mutable": false,
75
+ "complexType": {
76
+ "original": "string",
77
+ "resolved": "string",
78
+ "references": {}
79
+ },
80
+ "required": false,
81
+ "optional": false,
82
+ "docs": {
83
+ "tags": [],
84
+ "text": ""
85
+ },
86
+ "attribute": "occupation",
87
+ "reflect": false,
88
+ "defaultValue": "null"
89
+ }
90
+ }; }
91
+ static get elementRef() { return "hostElement"; }
92
+ }
@@ -0,0 +1,83 @@
1
+ import readme from './readme.md';
2
+
3
+ export default {
4
+ title: 'Cards/Quote Card',
5
+ parameters: {
6
+ notes: readme,
7
+ layout: 'fullscreen',
8
+ },
9
+ };
10
+
11
+ const TemplateQuoteCardQuotePage = ({ ...args }) => {
12
+ return `<pn-breakpoints></pn-breakpoints>
13
+
14
+ <div id="bs-col" style="width:33%; margin:0 auto">
15
+ <pn-quote-card quote="${args.quote}" name="${args.name}" occupation="${args.occupation}" data-line-color="blue" data-line-orientation="vertical">
16
+ <pn-line-shape data-orientation="vertical" slot="vertical-line"></pn-line-shape>
17
+ <div slot="illustration">
18
+ <picture>
19
+ <img height="105" src="${args.photoUrl}" />
20
+ </picture>
21
+ </div>
22
+ </pn-quote-card>
23
+
24
+ </div>
25
+
26
+ <div id="bs-col" style="width:33%; margin:0 auto">
27
+ <pn-quote-card quote="${args.quote}" name="${args.name}" occupation="${args.occupation}" data-line-color="white" data-line-orientation="vertical" data-card-style="quotepage">
28
+ <pn-line-shape data-orientation="vertical" slot="vertical-line"></pn-line-shape>
29
+ <div slot="illustration">
30
+ <picture>
31
+ <img height="105" src="${args.photoUrl}" />
32
+ </picture>
33
+ </div>
34
+ </pn-quote-card>
35
+
36
+ </div>
37
+ `;
38
+ };
39
+
40
+ export const QuotePage = TemplateQuoteCardQuotePage.bind({});
41
+
42
+ QuotePage.args = {
43
+ quote: 'Suddenly, we can be one step ahead and help customers track their package. They feel safer and this saves us a lot of time internally. Not least on customer service.',
44
+ photoUrl:
45
+ 'https://com-integration.postnord.com/globalassets/images/hero-article-photos/smiling-customer-service-worker-with-headset.jpg?width=240&height=240&mode=crop&quality=80',
46
+ name: 'Jenny Jennysson',
47
+ occupation: 'Owner at Headsets for All',
48
+ };
49
+
50
+ const TemplateQuoteCardStartPage = ({ ...args }) => {
51
+ return `
52
+ <pn-breakpoints></pn-breakpoints>
53
+ <div id="view-port-width" style="margin:0 auto; background-color:gray" >
54
+ <div id="bs-container-bleed" >
55
+
56
+ <pn-quote-card quote="${args.quote}" name="${args.name}" occupation="${args.occupation}" data-line-color="white" data-line-orientation="horizontal" data-card-style="startpage">
57
+ <pn-line-shape data-orientation="horizontal" slot="horizontal-line"></pn-line-shape>
58
+ <div slot="illustration">
59
+ <picture>
60
+ <img height="105" src="${args.photoUrl}" />
61
+ </picture>
62
+ </div>
63
+ <div slot="illustration-big">
64
+ <picture>
65
+ <img height="105" src="${args.photoUrl}" />
66
+ </picture>
67
+ </div>
68
+ </pn-quote-card>
69
+
70
+ </div>
71
+ </div>
72
+ `;
73
+ };
74
+
75
+ export const StartPage = TemplateQuoteCardStartPage.bind({});
76
+
77
+ StartPage.args = {
78
+ quote: 'Suddenly, we can be one step ahead and help customers track their package. They feel safer and this saves us a lot of time internally. Not least on customer service.',
79
+ photoUrl:
80
+ 'https://com-integration.postnord.com/globalassets/images/hero-article-photos/smiling-customer-service-worker-with-headset.jpg?width=240&height=240&mode=crop&quality=80',
81
+ name: 'Jenny Jennysson',
82
+ occupation: 'Owner at Headsets for All',
83
+ };
@@ -5,7 +5,7 @@ export const animateValue = (obj, start = 0, end = 100, duration = 1000) => {
5
5
  startTimestamp = timestamp;
6
6
  const progress = Math.min((timestamp - startTimestamp) / duration, 1);
7
7
  //obj.innerHTML = Math.floor(progress * (end - start) + start); //integer
8
- obj.innerHTML = (Math.round((progress * (end - start) + start) * 10) / 10).toString(); // decimal
8
+ obj.innerHTML = duration ? (Math.round((progress * (end - start) + start) * 10) / 10).toString() : end.toString(); // decimal
9
9
  if (progress < 1) {
10
10
  window.requestAnimationFrame(step);
11
11
  }
@@ -97,11 +97,11 @@ export class PnStatsInfoData {
97
97
  "defaultValue": "null"
98
98
  },
99
99
  "compId": {
100
- "type": "number",
100
+ "type": "string",
101
101
  "mutable": false,
102
102
  "complexType": {
103
- "original": "number",
104
- "resolved": "number",
103
+ "original": "string",
104
+ "resolved": "string",
105
105
  "references": {}
106
106
  },
107
107
  "required": false,
@@ -11,6 +11,9 @@ export class PnStatsInfo {
11
11
  if (newValue)
12
12
  this.myParsedArray = JSON.parse(newValue);
13
13
  }
14
+ generateUniqueID() {
15
+ return Date.now();
16
+ }
14
17
  render() {
15
18
  return (h(Host, null,
16
19
  h("div", { class: "pn-stats-info__container" },
@@ -19,7 +22,7 @@ export class PnStatsInfo {
19
22
  h("h3", { class: "pn-stats-info__container__content__heading" }, this.heading),
20
23
  h("div", { class: "pn-stats-info__container__content__data" }, this.myParsedArray &&
21
24
  this.myParsedArray.map((stats, index) => {
22
- return h("pn-stats-info-data", { "comp-id": index, data: stats.data, unit: stats.unit, preamble: stats.preamble, duration: stats.duration });
25
+ return (h("pn-stats-info-data", { "comp-id": `${this.generateUniqueID()}-${index}`, data: stats.data, unit: stats.unit, preamble: stats.preamble, duration: stats.duration }));
23
26
  }))))));
24
27
  }
25
28
  static get is() { return "pn-stats-info"; }
@@ -14,6 +14,14 @@ const PrimaryTemplate = ({ ...args }) => {
14
14
  <h1 style="text-align:center;">Scroll Down...</h1>
15
15
  </div>
16
16
  <div style="background-color:#0D234B;">
17
+ <div style="width:100%; max-width:1140px; margin:0 auto">
18
+ <pn-stats-info heading="${args.heading}" background-url="${args.backgroundUrl}">
19
+ </pn-stats-info>
20
+ </div>
21
+ </div>
22
+ <br/>
23
+
24
+ <div style="background-color:#0D234B;">
17
25
  <div style="width:100%; max-width:1140px; margin:0 auto">
18
26
  <pn-stats-info heading="${args.heading}" background-url="${args.backgroundUrl}">
19
27
  </pn-stats-info>
@@ -120,8 +120,14 @@ class MarketWebLoginManager {
120
120
  return `${this.getBaseUrl()}${this.endpoints.authorizationEndpoint}?redirectionUrl=${redirectPage}`;
121
121
  }
122
122
  getLogoutUrl(redirectPage = "") {
123
- const addSlash = (this.siteUrl.lastIndexOf('/') !== (this.siteUrl.length - 1));
124
- redirectPage = this.siteUrl + (addSlash ? '/' : '') + 'logout';
123
+ let rootUrl = this.siteUrl;
124
+ try {
125
+ const url = new URL(this.siteUrl + '');
126
+ rootUrl = url.origin;
127
+ }
128
+ catch (e) { }
129
+ const addSlash = (rootUrl.lastIndexOf('/') !== (rootUrl.length - 1));
130
+ redirectPage = rootUrl + (addSlash ? '/' : '') + 'logout';
125
131
  return `${redirectPage}?logoutUrl=${this.getBaseUrl()}${this.endpoints.logoutEndpoint}?redirectionUrl=${redirectPage}%26authorization=${this.store.get(this.keys.token)}`;
126
132
  }
127
133
  getUserInfo() {
@@ -80,6 +80,12 @@ export const PnLanguageSelectorOption: {
80
80
  new (): PnLanguageSelectorOption;
81
81
  };
82
82
 
83
+ interface PnLineShape extends Components.PnLineShape, HTMLElement {}
84
+ export const PnLineShape: {
85
+ prototype: PnLineShape;
86
+ new (): PnLineShape;
87
+ };
88
+
83
89
  interface PnMainnav extends Components.PnMainnav, HTMLElement {}
84
90
  export const PnMainnav: {
85
91
  prototype: PnMainnav;
@@ -290,6 +296,12 @@ export const PnQuickCta: {
290
296
  new (): PnQuickCta;
291
297
  };
292
298
 
299
+ interface PnQuoteCard extends Components.PnQuoteCard, HTMLElement {}
300
+ export const PnQuoteCard: {
301
+ prototype: PnQuoteCard;
302
+ new (): PnQuoteCard;
303
+ };
304
+
293
305
  interface PnSidenav extends Components.PnSidenav, HTMLElement {}
294
306
  export const PnSidenav: {
295
307
  prototype: PnSidenav;