@postnord/pn-marketweb-components 1.0.39 → 1.0.42-beta2

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 (173) hide show
  1. package/cjs/{MarketWebLoginManager-859590e2.js → MarketWebLoginManager-1282a883.js} +1 -2
  2. package/cjs/{index-ea886985.js → index-31d574c5.js} +1 -1
  3. package/cjs/{index-0404c97e.js → index-cd08e313.js} +4 -0
  4. package/cjs/loader.cjs.js +2 -2
  5. package/cjs/mockresponse-c40ea527.js +24 -0
  6. package/cjs/pn-bonus-progressbar-level.cjs.entry.js +42 -0
  7. package/cjs/pn-bonus-progressbar.cjs.entry.js +90 -0
  8. package/cjs/pn-choice-button_2.cjs.entry.js +3 -3
  9. package/cjs/pn-filter-checkbox.cjs.entry.js +1 -1
  10. package/cjs/pn-filter-search.cjs.entry.js +1 -1
  11. package/cjs/{pn-find-service-and-price-store-df7890f3.js → pn-find-service-and-price-store-bded912f.js} +1 -1
  12. package/cjs/pn-find-service-and-price.cjs.entry.js +3 -3
  13. package/cjs/pn-language-selector_9.cjs.entry.js +4 -4
  14. package/cjs/pn-mainnav-link.cjs.entry.js +3 -3
  15. package/cjs/{pn-mainnav-store-87a95686.js → pn-mainnav-store-4a3492cd.js} +1 -1
  16. package/cjs/pn-market-web-components.cjs.js +2 -2
  17. package/cjs/pn-marketweb-sitefooter.cjs.entry.js +1 -1
  18. package/cjs/pn-marketweb-siteheader.cjs.entry.js +2 -2
  19. package/cjs/pn-pex-pricefinder.cjs.entry.js +121 -0
  20. package/cjs/pn-product-pricelist-result.cjs.entry.js +3 -3
  21. package/cjs/{pn-product-pricelist-store-3a956b18.js → pn-product-pricelist-store-8dda97db.js} +1 -1
  22. package/cjs/pn-product-pricelist.cjs.entry.js +3 -3
  23. package/cjs/pn-product-tile_3.cjs.entry.js +1 -1
  24. package/cjs/pn-profile-selector.cjs.entry.js +2 -2
  25. package/cjs/pn-sidenav-level.cjs.entry.js +3 -3
  26. package/cjs/pn-sidenav-link.cjs.entry.js +3 -3
  27. package/cjs/{pn-sidenav-store-ac7b8608.js → pn-sidenav-store-044d6595.js} +1 -1
  28. package/cjs/pn-sidenav.cjs.entry.js +3 -3
  29. package/cjs/pn-site-footer_2.cjs.entry.js +1 -1
  30. package/collection/collection-manifest.json +3 -0
  31. package/collection/components/input/pn-bonus-progressbar/pn-bonus-progressbar-level.css +48 -0
  32. package/collection/components/input/pn-bonus-progressbar/pn-bonus-progressbar-level.js +120 -0
  33. package/collection/components/input/pn-bonus-progressbar/pn-bonus-progressbar.css +77 -0
  34. package/collection/components/input/pn-bonus-progressbar/pn-bonus-progressbar.js +254 -0
  35. package/collection/components/input/pn-bonus-progressbar/pn-bonus-progressbar.stories.js +79 -0
  36. package/collection/components/widgets/pn-pex-pricefinder/pex-pricefinder.stories.js +22 -0
  37. package/collection/components/widgets/pn-pex-pricefinder/pn-pex-pricefinder.css +59 -0
  38. package/collection/components/widgets/pn-pex-pricefinder/pn-pex-pricefinder.js +188 -0
  39. package/collection/components/widgets/pn-pex-pricefinder/translations.js +22 -0
  40. package/collection/components/widgets/pn-pex-pricefinder/types.js +1 -0
  41. package/collection/globals/MarketWebLoginManager.js +1 -2
  42. package/custom-elements/index.d.ts +18 -0
  43. package/custom-elements/index.js +259 -19
  44. package/custom-elements/mockresponse.js +20 -0
  45. package/esm/{MarketWebLoginManager-83f2e86a.js → MarketWebLoginManager-310d2552.js} +1 -2
  46. package/esm/{index-e34aec9d.js → index-94746173.js} +1 -1
  47. package/esm/{index-1537f439.js → index-b26d0794.js} +4 -0
  48. package/esm/loader.js +2 -2
  49. package/esm/mockresponse-e2c08e66.js +20 -0
  50. package/esm/pn-bonus-progressbar-level.entry.js +38 -0
  51. package/esm/pn-bonus-progressbar.entry.js +86 -0
  52. package/esm/pn-choice-button_2.entry.js +3 -3
  53. package/esm/pn-filter-checkbox.entry.js +1 -1
  54. package/esm/pn-filter-search.entry.js +1 -1
  55. package/esm/{pn-find-service-and-price-store-ae3cddfb.js → pn-find-service-and-price-store-2ddc6cfa.js} +1 -1
  56. package/esm/pn-find-service-and-price.entry.js +3 -3
  57. package/esm/pn-language-selector_9.entry.js +4 -4
  58. package/esm/pn-mainnav-link.entry.js +3 -3
  59. package/esm/{pn-mainnav-store-8e518460.js → pn-mainnav-store-c14ad7e8.js} +1 -1
  60. package/esm/pn-market-web-components.js +2 -2
  61. package/esm/pn-marketweb-sitefooter.entry.js +1 -1
  62. package/esm/pn-marketweb-siteheader.entry.js +2 -2
  63. package/esm/pn-pex-pricefinder.entry.js +117 -0
  64. package/esm/pn-product-pricelist-result.entry.js +3 -3
  65. package/esm/{pn-product-pricelist-store-b59d0cba.js → pn-product-pricelist-store-a287a3f5.js} +1 -1
  66. package/esm/pn-product-pricelist.entry.js +3 -3
  67. package/esm/pn-product-tile_3.entry.js +1 -1
  68. package/esm/pn-profile-selector.entry.js +2 -2
  69. package/esm/pn-sidenav-level.entry.js +3 -3
  70. package/esm/pn-sidenav-link.entry.js +3 -3
  71. package/esm/{pn-sidenav-store-c46b24d2.js → pn-sidenav-store-6f25eef9.js} +1 -1
  72. package/esm/pn-sidenav.entry.js +3 -3
  73. package/esm/pn-site-footer_2.entry.js +1 -1
  74. package/esm-es5/{MarketWebLoginManager-83f2e86a.js → MarketWebLoginManager-310d2552.js} +1 -1
  75. package/esm-es5/{index-e34aec9d.js → index-94746173.js} +1 -1
  76. package/esm-es5/{index-1537f439.js → index-b26d0794.js} +1 -1
  77. package/esm-es5/loader.js +1 -1
  78. package/esm-es5/mockresponse-e2c08e66.js +1 -0
  79. package/esm-es5/pn-bonus-progressbar-level.entry.js +1 -0
  80. package/esm-es5/pn-bonus-progressbar.entry.js +1 -0
  81. package/esm-es5/pn-choice-button_2.entry.js +1 -1
  82. package/esm-es5/pn-filter-checkbox.entry.js +1 -1
  83. package/esm-es5/pn-filter-search.entry.js +1 -1
  84. package/esm-es5/{pn-find-service-and-price-store-ae3cddfb.js → pn-find-service-and-price-store-2ddc6cfa.js} +1 -1
  85. package/esm-es5/pn-find-service-and-price.entry.js +1 -1
  86. package/esm-es5/pn-language-selector_9.entry.js +1 -1
  87. package/esm-es5/pn-mainnav-link.entry.js +1 -1
  88. package/esm-es5/{pn-mainnav-store-8e518460.js → pn-mainnav-store-c14ad7e8.js} +1 -1
  89. package/esm-es5/pn-market-web-components.js +1 -1
  90. package/esm-es5/pn-marketweb-sitefooter.entry.js +1 -1
  91. package/esm-es5/pn-marketweb-siteheader.entry.js +1 -1
  92. package/esm-es5/pn-pex-pricefinder.entry.js +1 -0
  93. package/esm-es5/pn-product-pricelist-result.entry.js +1 -1
  94. package/esm-es5/{pn-product-pricelist-store-b59d0cba.js → pn-product-pricelist-store-a287a3f5.js} +1 -1
  95. package/esm-es5/pn-product-pricelist.entry.js +1 -1
  96. package/esm-es5/pn-product-tile_3.entry.js +1 -1
  97. package/esm-es5/pn-profile-selector.entry.js +1 -1
  98. package/esm-es5/pn-sidenav-level.entry.js +1 -1
  99. package/esm-es5/pn-sidenav-link.entry.js +1 -1
  100. package/esm-es5/{pn-sidenav-store-c46b24d2.js → pn-sidenav-store-6f25eef9.js} +1 -1
  101. package/esm-es5/pn-sidenav.entry.js +1 -1
  102. package/esm-es5/pn-site-footer_2.entry.js +1 -1
  103. package/package.json +2 -2
  104. package/pn-market-web-components/{p-8dad5ed9.js → p-020f1667.js} +1 -1
  105. package/pn-market-web-components/{p-7071b45d.system.entry.js → p-02a985d9.system.entry.js} +1 -1
  106. package/pn-market-web-components/{p-2713500f.entry.js → p-02c8dcd0.entry.js} +1 -1
  107. package/pn-market-web-components/p-038b8060.system.js +1 -0
  108. package/pn-market-web-components/{p-e3fb52a6.system.entry.js → p-043f460c.system.entry.js} +1 -1
  109. package/pn-market-web-components/{p-57e4ced3.system.entry.js → p-0ba9ae69.system.entry.js} +1 -1
  110. package/pn-market-web-components/{p-88d82a49.entry.js → p-0d975e39.entry.js} +1 -1
  111. package/pn-market-web-components/p-12297437.system.entry.js +1 -0
  112. package/pn-market-web-components/p-1caf4231.system.entry.js +1 -0
  113. package/pn-market-web-components/{p-9718752b.system.entry.js → p-21463fc1.system.entry.js} +1 -1
  114. package/pn-market-web-components/p-2456901a.js +1 -0
  115. package/pn-market-web-components/{p-d2c98a81.system.js → p-26f72169.system.js} +1 -1
  116. package/pn-market-web-components/{p-f14cff8e.js → p-3359dac6.js} +1 -1
  117. package/pn-market-web-components/p-33cefc5e.system.entry.js +1 -0
  118. package/pn-market-web-components/{p-71d3db79.entry.js → p-37801e32.entry.js} +1 -1
  119. package/pn-market-web-components/p-3cf489ac.js +1 -0
  120. package/pn-market-web-components/{p-4feb3557.system.entry.js → p-478ac9b4.system.entry.js} +1 -1
  121. package/pn-market-web-components/{p-2e71089b.js → p-4832a520.js} +1 -1
  122. package/pn-market-web-components/{p-dc471243.entry.js → p-4aa3b95d.entry.js} +1 -1
  123. package/pn-market-web-components/p-52787ac9.entry.js +1 -0
  124. package/pn-market-web-components/{p-1d9a3108.entry.js → p-53e14b27.entry.js} +1 -1
  125. package/pn-market-web-components/{p-8e8fe71e.system.js → p-5510f188.system.js} +1 -1
  126. package/pn-market-web-components/{p-03fb0285.entry.js → p-5df99382.entry.js} +1 -1
  127. package/pn-market-web-components/p-772c078c.entry.js +1 -0
  128. package/pn-market-web-components/{p-423807b2.entry.js → p-77d43e30.entry.js} +1 -1
  129. package/pn-market-web-components/{p-492ba223.js → p-789e1b30.js} +1 -1
  130. package/pn-market-web-components/p-7d92e5c7.system.entry.js +1 -0
  131. package/pn-market-web-components/{p-02ab0208.entry.js → p-81df672d.entry.js} +1 -1
  132. package/pn-market-web-components/p-84d9f552.system.js +1 -0
  133. package/pn-market-web-components/{p-d70008da.entry.js → p-861210ae.entry.js} +1 -1
  134. package/pn-market-web-components/{p-d9465a21.system.js → p-915cef83.system.js} +1 -1
  135. package/pn-market-web-components/p-942f590f.entry.js +1 -0
  136. package/pn-market-web-components/{p-86a9f853.system.js → p-98bc5c17.system.js} +1 -1
  137. package/pn-market-web-components/{p-7b4c721f.system.entry.js → p-a1309b3b.system.entry.js} +1 -1
  138. package/pn-market-web-components/p-a22df959.system.js +1 -0
  139. package/pn-market-web-components/{p-1411f767.entry.js → p-a25fc106.entry.js} +1 -1
  140. package/pn-market-web-components/{p-015a433e.entry.js → p-a37ea453.entry.js} +1 -1
  141. package/pn-market-web-components/{p-1649b94a.entry.js → p-a5284c78.entry.js} +1 -1
  142. package/pn-market-web-components/{p-daa6ddb3.system.entry.js → p-b2383083.system.entry.js} +1 -1
  143. package/pn-market-web-components/{p-dade9bdb.system.entry.js → p-b446ca28.system.entry.js} +1 -1
  144. package/pn-market-web-components/{p-a65b61d6.system.entry.js → p-b7fdc5cb.system.entry.js} +1 -1
  145. package/pn-market-web-components/{p-32f4efa6.entry.js → p-b8af690a.entry.js} +1 -1
  146. package/pn-market-web-components/{p-79611456.system.entry.js → p-c127e22c.system.entry.js} +1 -1
  147. package/pn-market-web-components/p-c25ada49.js +1 -0
  148. package/pn-market-web-components/{p-22cd41df.entry.js → p-cce32042.entry.js} +1 -1
  149. package/pn-market-web-components/p-cec6130e.system.js +1 -0
  150. package/pn-market-web-components/{p-96ef731c.entry.js → p-d1053abf.entry.js} +1 -1
  151. package/pn-market-web-components/{p-a983c263.system.entry.js → p-d133f30d.system.entry.js} +1 -1
  152. package/pn-market-web-components/{p-4921fcc3.entry.js → p-dde2cf1c.entry.js} +1 -1
  153. package/pn-market-web-components/{p-e695c8e8.system.entry.js → p-e04f8d34.system.entry.js} +1 -1
  154. package/pn-market-web-components/{p-5a155773.system.entry.js → p-e6a209c6.system.entry.js} +1 -1
  155. package/pn-market-web-components/{p-a5b178b5.system.entry.js → p-eb049e9d.system.entry.js} +1 -1
  156. package/pn-market-web-components/p-ec0adffe.js +1 -0
  157. package/pn-market-web-components/{p-cb10d64f.system.entry.js → p-ec1127de.system.entry.js} +1 -1
  158. package/pn-market-web-components/{p-58cdf3a6.system.js → p-f1311662.system.js} +1 -1
  159. package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
  160. package/pn-market-web-components/pn-market-web-components.js +1 -1
  161. package/types/components/input/pn-bonus-progressbar/pn-bonus-progressbar-level.d.ts +14 -0
  162. package/types/components/input/pn-bonus-progressbar/pn-bonus-progressbar.d.ts +20 -0
  163. package/types/components/widgets/pn-pex-pricefinder/pn-pex-pricefinder.d.ts +30 -0
  164. package/types/components/widgets/pn-pex-pricefinder/translations.d.ts +22 -0
  165. package/types/components/widgets/pn-pex-pricefinder/types.d.ts +27 -0
  166. package/types/components.d.ts +87 -0
  167. package/pn-market-web-components/p-02a1466e.system.js +0 -1
  168. package/pn-market-web-components/p-25bdf3f8.system.js +0 -1
  169. package/pn-market-web-components/p-2e4a6bc7.system.entry.js +0 -1
  170. package/pn-market-web-components/p-8be38a7e.system.js +0 -1
  171. package/pn-market-web-components/p-a14f54af.js +0 -1
  172. package/pn-market-web-components/p-c254cfdf.js +0 -1
  173. package/pn-market-web-components/p-d319f735.js +0 -1
@@ -1,6 +1,126 @@
1
1
  import { h, Host, createEvent, getRenderingRef, forceUpdate, proxyCustomElement } from '@stencil/core/internal/client';
2
2
  export { setAssetPath, setPlatformOptions } from '@stencil/core/internal/client';
3
3
 
4
+ const pnBonusProgressbarCss = "pn-bonus-progressbar{width:100%}.bonusprogressbar-top{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.bonusprogressbar-top-icon{border-radius:100%;height:5rem;width:5rem;padding:1rem;display:-ms-inline-flexbox;display:inline-flex;margin-right:1em;margin-left:0.5em;background-color:#E0F8FF}[theme=red] .bonusprogressbar-top-icon{background-color:#FBC2C1}.bonusprogressbar-top-icon pn-icon svg{width:100%;height:100%}.bonusprogressbar-top-percentage{margin-left:auto;padding:0.5em}.bonusprogressbar-wrapper{position:relative;display:-ms-flexbox;display:flex;min-height:5em;-ms-flex-align:center;align-items:center}.bonusprogressbar-currentlevel{position:absolute}.bonusprogressbar-progress[value]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:1.7rem;border:0.1rem solid #00A0D6;border-radius:1.7rem;padding:0;margin:0;overflow:hidden}[theme=red] .bonusprogressbar-progress[value]{border-color:#F06365}.bonusprogressbar-progress[value]::-webkit-progress-bar{border:0;border-radius:1.7rem;margin:0;padding:0;background:#E0F8FF}[theme=red] .bonusprogressbar-progress[value]::-webkit-progress-bar{background:#FDEFEE}.bonusprogressbar-progress[value]::-webkit-progress-value{margin:0;padding:0;border-radius:1.7rem;background:#00A0D6}[theme=red] .bonusprogressbar-progress[value]::-webkit-progress-value{background:#F06365}";
5
+
6
+ let PnBonusProgressbar$1 = class extends HTMLElement {
7
+ constructor() {
8
+ super();
9
+ this.__registerHost();
10
+ this.icon = null;
11
+ this.heading = "";
12
+ this.theme = "blue";
13
+ this.bonuspercentage = "0%";
14
+ this.currency = "kr";
15
+ this.value = 0;
16
+ this.min = 0;
17
+ this.max = 0;
18
+ this.valuepercentage = 0;
19
+ this.progresspercentage = 0;
20
+ this.levelValues = [];
21
+ this.currentLevelAdjustedValue = 0;
22
+ }
23
+ componentWillLoad() {
24
+ this.setInitialValues();
25
+ this.setValuePercentage();
26
+ }
27
+ setInitialValues() {
28
+ const levelElements = Array.from(this.hostElement.querySelectorAll('pn-bonus-progressbar-level:not([current])'));
29
+ this.currentLevelAdjustedValue = this.value;
30
+ this.levelValues = levelElements.map((elm) => {
31
+ return parseInt(elm.getAttribute("value"), 10);
32
+ });
33
+ if (!this.max) {
34
+ if (this.levelValues && this.levelValues.length > 0) {
35
+ const newMax = this.levelValues.slice(-1)[0];
36
+ this.max = Math.floor(newMax * 1.05);
37
+ }
38
+ }
39
+ if (!this.min) {
40
+ const suggestedMin = Math.floor(this.value * 0.9);
41
+ if (suggestedMin > 0) {
42
+ this.min = suggestedMin;
43
+ }
44
+ }
45
+ if (this.value > this.max) {
46
+ this.currentLevelAdjustedValue = 100;
47
+ }
48
+ }
49
+ setValuePercentage() {
50
+ this.valuepercentage = (this.value / (this.max)) * 100;
51
+ this.progresspercentage = ((this.value - this.min) / (this.max - this.min)) * 100;
52
+ if (this.progresspercentage < 0) {
53
+ if (this.levelValues && this.levelValues.length && this.levelValues[0] < this.value) {
54
+ this.min = Math.floor(this.levelValues[0] * .95);
55
+ }
56
+ else {
57
+ this.min = Math.floor(this.value * .95);
58
+ }
59
+ }
60
+ if (this.progresspercentage > 100) {
61
+ this.progresspercentage = 100;
62
+ const newMax = this.levelValues.slice(-1)[0];
63
+ this.max = Math.floor(newMax * 1.05);
64
+ }
65
+ }
66
+ iconColor() {
67
+ switch (this.theme) {
68
+ case 'red':
69
+ return 'coral700';
70
+ case 'blue':
71
+ default:
72
+ return 'blue700';
73
+ }
74
+ }
75
+ render() {
76
+ return (h(Host, null, h("div", { class: "bonusprogressbar-top" }, this.icon ? (h("div", { class: "bonusprogressbar-top-icon" }, h("pn-icon", { symbol: "stamp", small: "false", color: this.iconColor() }))) : {}, h("h4", { class: "bonusprogressbar-top-heading" }, this.heading), h("strong", { class: "bonusprogressbar-top-percentage" }, this.bonuspercentage)), h("div", { class: "bonusprogressbar-wrapper" }, h("progress", { class: "bonusprogressbar-progress", value: this.progresspercentage, max: "100" }), h("pn-bonus-progressbar-level", { current: true, value: this.value, visualpercentage: this.currentLevelAdjustedValue, bonuspercentage: this.bonuspercentage }), h("slot", null))));
77
+ }
78
+ get hostElement() { return this; }
79
+ static get watchers() { return {
80
+ "currentLevelAdjustedValue": ["setValuePercentage"],
81
+ "value": ["setValuePercentage"],
82
+ "min": ["setValuePercentage"],
83
+ "max": ["setValuePercentage"]
84
+ }; }
85
+ static get style() { return pnBonusProgressbarCss; }
86
+ };
87
+
88
+ const pnBonusProgressbarLevelCss = "pn-bonus-progressbar-level{position:absolute;width:0.1rem;left:50%}pn-bonus-progressbar-level::after{content:\"\";width:0.1rem;position:absolute;left:0;border-left:1px dashed #9B1C2E;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:3rem}pn-bonus-progressbar-level:not([current]):nth-child(even)::after{height:7rem;margin-top:0.6rem}.progressbar-level-percentage{font-size:0.75em;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);top:-3.2rem}[current]>.progressbar-level-percentage{display:none}pn-bonus-progressbar-level:not([current]):nth-child(even) .progressbar-level-percentage{top:-4.8rem}.progressbar-level-value{font-size:0.75em;white-space:nowrap;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);top:2.3rem}[current]>.progressbar-level-value{top:-3.2rem}pn-bonus-progressbar-level:not([current]):nth-child(even) .progressbar-level-value{top:4.2rem}";
89
+
90
+ let PnBonusProgressbarLevel$1 = class extends HTMLElement {
91
+ constructor() {
92
+ super();
93
+ this.__registerHost();
94
+ this.current = false;
95
+ this.value = 0;
96
+ this.bonuspercentage = "";
97
+ this.visualpercentage = 0;
98
+ this.percentage = 0;
99
+ this.max = 0;
100
+ this.min = 0;
101
+ this.currency = "";
102
+ }
103
+ componentWillLoad() {
104
+ this.max = parseInt(this.hostElement.parentElement.parentElement.getAttribute("max"), 10);
105
+ this.min = parseInt(this.hostElement.parentElement.parentElement.getAttribute("min"), 10);
106
+ this.currency = this.hostElement.parentElement.parentElement.getAttribute("currency");
107
+ this.percentage = (this.value / this.max) * 100;
108
+ if (this.visualpercentage > 0) {
109
+ // Visual percentage has been overriden
110
+ return;
111
+ }
112
+ this.visualpercentage = ((this.value - this.min) / (this.max - this.min)) * 100;
113
+ }
114
+ formatValue() {
115
+ return `${this.value.toLocaleString('sv-SE', { maximumFractionDigits: 0 })} ${this.currency}`;
116
+ }
117
+ render() {
118
+ return (h(Host, { style: { 'left': `${this.visualpercentage}%` } }, h("div", { class: "progressbar-level-percentage" }, this.bonuspercentage), h("div", { class: "progressbar-level-value" }, this.formatValue())));
119
+ }
120
+ get hostElement() { return this; }
121
+ static get style() { return pnBonusProgressbarLevelCss; }
122
+ };
123
+
4
124
  const pnChoiceButtonCss = "pn-choice-button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:none;display:inline-block;background:#fff;position:relative;margin:0.2em 0.4em}pn-choice-button input{opacity:0;position:absolute;top:0;left:0;pointer-events:none;margin:0;width:100%;height:100%}pn-choice-button label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0.4rem 0.8rem;border:0.1rem solid #D3CECB;color:#005D92;font-weight:500;border-radius:0.8rem;text-align:center;cursor:pointer;-webkit-transition:background 0.2s, -webkit-box-shadow 0.1s;transition:background 0.2s, -webkit-box-shadow 0.1s;transition:box-shadow 0.1s, background 0.2s;transition:box-shadow 0.1s, background 0.2s, -webkit-box-shadow 0.1s}pn-choice-button label pn-illustration{display:inline-block;width:3rem;height:3rem;margin-right:0.9rem}pn-choice-button>input:checked+label.pn-choice-button{background:#E0F8FF;color:#005D92;border-color:#005D92;-webkit-box-shadow:0px 0.6px 1.8px rgba(0, 0, 0, 0.1), 0px 3.2px 7.2px rgba(0, 0, 0, 0.13);box-shadow:0px 0.6px 1.8px rgba(0, 0, 0, 0.1), 0px 3.2px 7.2px rgba(0, 0, 0, 0.13)}pn-choice-button>input:indeterminate+label.pn-choice-button{background:#FFFFFF;color:#005D92}pn-choice-button>input:hover+label.pn-choice-button{background:#E0F8FF}pn-choice-button>input:focus+label.pn-choice-button,pn-choice-button>input:active+label.pn-choice-button{-webkit-box-shadow:0 0 0 0.2rem #fff, 0 0 0 0.4rem #005D92;box-shadow:0 0 0 0.2rem #fff, 0 0 0 0.4rem #005D92}pn-choice-button>input:active+label.pn-choice-button{background:#8EDDF9}pn-choice-button>input:disabled+label.pn-choice-button{background-color:#D3CECB}pn-choice-button>input:checked+label.pn-choice-button:hover{background:#8EDDF9}pn-choice-button>input:checked+label.pn-choice-button:active{background:#8EDDF9;border:0.1rem solid #00A0D6}";
5
125
 
6
126
  let PnChoiceButton$1 = class extends HTMLElement {
@@ -161,7 +281,7 @@ let PnFilterSearch$1 = class extends HTMLElement {
161
281
  static get style() { return pnFilterSearchCss; }
162
282
  };
163
283
 
164
- const translations$7 = {
284
+ const translations$8 = {
165
285
  'sv': {
166
286
  'componentheading': 'Vad vill du skicka?',
167
287
  'deliveryscopeheading': 'Hit eller dit?',
@@ -2255,8 +2375,8 @@ let PnfindServiceAndPrice = class extends HTMLElement {
2255
2375
  if (this.market) {
2256
2376
  state$3.market = markets$1[this.market];
2257
2377
  }
2258
- if (this.language && translations$7[this.language]) {
2259
- state$3.i18n = translations$7[this.language];
2378
+ if (this.language && translations$8[this.language]) {
2379
+ state$3.i18n = translations$8[this.language];
2260
2380
  }
2261
2381
  }
2262
2382
  filterItems() {
@@ -2380,7 +2500,7 @@ let PnfindServiceAndPriceResult = class extends HTMLElement {
2380
2500
  static get style() { return pnFindServiceAndPriceResultCss; }
2381
2501
  };
2382
2502
 
2383
- const translations$6 = {
2503
+ const translations$7 = {
2384
2504
  'sv': {
2385
2505
  "heading": "Språk",
2386
2506
  },
@@ -2447,8 +2567,8 @@ let PnlanguageSelector = class extends HTMLElement {
2447
2567
  this.setLanguage.emit(this.value);
2448
2568
  }
2449
2569
  setTranslations() {
2450
- if (translations$6[this.value]) {
2451
- this.i18n = translations$6[this.value];
2570
+ if (translations$7[this.value]) {
2571
+ this.i18n = translations$7[this.value];
2452
2572
  }
2453
2573
  }
2454
2574
  onValueChange() {
@@ -2501,7 +2621,7 @@ let PnlanguageSelectorOption = class extends HTMLElement {
2501
2621
  static get style() { return pnLanguageSelectorOptionCss; }
2502
2622
  };
2503
2623
 
2504
- const translations$5 = {
2624
+ const translations$6 = {
2505
2625
  'sv': {
2506
2626
  "menuHomeButton": "Hem",
2507
2627
  "menuGoBackButton": "Gå tillbaka",
@@ -2595,8 +2715,8 @@ let PnMainnav$1 = class extends HTMLElement {
2595
2715
  this.marketChange.emit(this.market);
2596
2716
  }
2597
2717
  onLanguageChange(event) {
2598
- if (translations$5[event.detail]) {
2599
- state$2.i18n = translations$5[event.detail];
2718
+ if (translations$6[event.detail]) {
2719
+ state$2.i18n = translations$6[event.detail];
2600
2720
  if (!this.navLabel) {
2601
2721
  this.navLabel = state$2.i18n.navLabel;
2602
2722
  }
@@ -2747,7 +2867,7 @@ let PnMainnavList$1 = class extends HTMLElement {
2747
2867
  static get style() { return pnMainnavListCss; }
2748
2868
  };
2749
2869
 
2750
- const translations$4 = {
2870
+ const translations$5 = {
2751
2871
  'sv': {
2752
2872
  "searchlabel": "Sök",
2753
2873
  "searchplaceholder": "Vad letar du efter?",
@@ -3099,8 +3219,8 @@ let PnMarketwebSiteheader$2 = class extends HTMLElement {
3099
3219
  await this.fetchData();
3100
3220
  }
3101
3221
  setTranslations() {
3102
- if (this.language && translations$4[this.language]) {
3103
- this.i18n = translations$4[this.language];
3222
+ if (this.language && translations$5[this.language]) {
3223
+ this.i18n = translations$5[this.language];
3104
3224
  }
3105
3225
  }
3106
3226
  onLanguageChange() {
@@ -3195,7 +3315,7 @@ let PnMarketwebSiteheader$2 = class extends HTMLElement {
3195
3315
  static get style() { return pnMarketwebSitefooterCss; }
3196
3316
  };
3197
3317
 
3198
- const translations$3 = {
3318
+ const translations$4 = {
3199
3319
  'sv': {
3200
3320
  "searchlabel": "Sök",
3201
3321
  "searchplaceholder": "Vad letar du efter?",
@@ -3332,8 +3452,7 @@ class MarketWebLoginManager {
3332
3452
  return `${this.getBaseUrl()}${this.endpoints.authorizationEndpoint}?redirectionUrl=${redirectPage}`;
3333
3453
  }
3334
3454
  getLogoutUrl(redirectPage = "") {
3335
- const currentPage = window.location.href;
3336
- redirectPage = redirectPage ? redirectPage : currentPage;
3455
+ redirectPage = window.location.origin + '/logout';
3337
3456
  return `${this.getBaseUrl()}${this.endpoints.logoutEndpoint}?redirectionUrl=${redirectPage}&authorization=${this.store.get(this.keys.token)}`;
3338
3457
  }
3339
3458
  getUserInfo() {
@@ -3531,8 +3650,8 @@ let PnMarketwebSiteheader$1 = class extends HTMLElement {
3531
3650
  window.setTimeout(() => { this.checkMenuOverflow(); }, 50);
3532
3651
  }
3533
3652
  setTranslations() {
3534
- if (this.language && translations$3[this.language]) {
3535
- this.i18n = translations$3[this.language];
3653
+ if (this.language && translations$4[this.language]) {
3654
+ this.i18n = translations$4[this.language];
3536
3655
  }
3537
3656
  }
3538
3657
  onLanguageSelectorChange(e) {
@@ -3886,6 +4005,121 @@ let PnMarketwebSiteheaderSearch$1 = class extends HTMLElement {
3886
4005
  static get style() { return pnMarketwebSiteheaderSearchCss; }
3887
4006
  };
3888
4007
 
4008
+ const translations$3 = {
4009
+ 'sv': {
4010
+ "heading": "Beräkna kostnad med PEX Bud",
4011
+ "labelFrom": "Från postkod",
4012
+ "labelTo": "Till postkod",
4013
+ "zipPlaceholder": "Ex. 12831",
4014
+ "labelWeight": "Vikt (i gram)",
4015
+ "weightPlaceholder": "Ex. 1000",
4016
+ "labelWhen": "När",
4017
+ "submitButtonText": "Beräkna pris"
4018
+ },
4019
+ 'en': {
4020
+ "heading": "Calculate cost with PEX Bud",
4021
+ "labelFrom": "From zip",
4022
+ "labelTo": "To zip",
4023
+ "zipPlaceholder": "Ex. 12831",
4024
+ "labelWeight": "Weight (in grams)",
4025
+ "weightPlaceholder": "Ex. 1000",
4026
+ "labelWhen": "When",
4027
+ "submitButtonText": "Calculate price"
4028
+ }
4029
+ };
4030
+
4031
+ 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}";
4032
+
4033
+ let PnPexPricefinder$1 = class extends HTMLElement {
4034
+ constructor() {
4035
+ super();
4036
+ this.__registerHost();
4037
+ /** Specifies which language we want to show component in (sv,da,fi,no,en) */
4038
+ this.language = "sv";
4039
+ /** Currency (Kr, €)*/
4040
+ this.currency = "Kr";
4041
+ /** API Url */
4042
+ this.apiUrl = "/api/pex/order";
4043
+ this.i18n = translations$3.sv;
4044
+ this.fromzip = null;
4045
+ this.tozip = null;
4046
+ this.weight = 100;
4047
+ this.when = (new Date()).toISOString().split('T')[0];
4048
+ this.response = null;
4049
+ }
4050
+ componentWillLoad() {
4051
+ this.init();
4052
+ }
4053
+ async init() {
4054
+ this.checkParameters();
4055
+ this.setLanguage();
4056
+ }
4057
+ checkParameters() {
4058
+ const params = new URLSearchParams(window.location.href);
4059
+ if (!params) {
4060
+ return;
4061
+ }
4062
+ const paramKeys = ['fromzip', 'tozip', 'weight', 'when'];
4063
+ paramKeys.forEach((key) => {
4064
+ if (params.get(key)) {
4065
+ this[key] = params.get(key);
4066
+ }
4067
+ });
4068
+ }
4069
+ setLanguage() {
4070
+ if (translations$3[this.language]) {
4071
+ this.i18n = translations$3[this.language];
4072
+ }
4073
+ }
4074
+ onSubmit(e) {
4075
+ e.preventDefault();
4076
+ const formData = new FormData(e.target);
4077
+ const requestQuery = this.compileRequestQuery(formData);
4078
+ this.fetchResult(requestQuery);
4079
+ }
4080
+ compileRequestQuery(formData) {
4081
+ let query = {
4082
+ "from": formData.get("fromzip"),
4083
+ "to": formData.get("tozip"),
4084
+ "weight": formData.get("weight"),
4085
+ "when": formData.get("when")
4086
+ };
4087
+ if (!query.when) {
4088
+ query.when = this.hostElement.querySelector('input.date-input').value;
4089
+ }
4090
+ if (!formData.get("fromzip") || !formData.get("tozip") || !formData.get("weight")) {
4091
+ console.error("Form data is not compliant");
4092
+ return;
4093
+ }
4094
+ return query;
4095
+ }
4096
+ async fetchResult(query) {
4097
+ this.response = null;
4098
+ const params = new URLSearchParams(query);
4099
+ const req = await (fetch(`${this.apiUrl}?${params.toString()}`, {
4100
+ method: 'get',
4101
+ headers: {
4102
+ 'Content-Type': 'application/json'
4103
+ }
4104
+ }).catch(this.onFetchError.bind(this)));
4105
+ let response = await (req.json().catch(this.onFetchError.bind(this)));
4106
+ if (!response) {
4107
+ response = await (await import('./mockresponse.js')).default;
4108
+ }
4109
+ if (response) {
4110
+ this.response = response;
4111
+ }
4112
+ }
4113
+ onFetchError(error) {
4114
+ console.error('onFetchError(error', error);
4115
+ }
4116
+ render() {
4117
+ 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));
4118
+ }
4119
+ get hostElement() { return this; }
4120
+ static get style() { return pnPexPricefinderCss; }
4121
+ };
4122
+
3889
4123
  const translations$2 = {
3890
4124
  'sv': {
3891
4125
  'maxweightlabel': 'Maxvikt',
@@ -4583,6 +4817,8 @@ let PnSiteSelectorItem$1 = class extends HTMLElement {
4583
4817
  static get style() { return pnSiteSelectorItemCss; }
4584
4818
  };
4585
4819
 
4820
+ const PnBonusProgressbar = /*@__PURE__*/proxyCustomElement(PnBonusProgressbar$1, [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]}]);
4821
+ const PnBonusProgressbarLevel = /*@__PURE__*/proxyCustomElement(PnBonusProgressbarLevel$1, [0,"pn-bonus-progressbar-level",{"current":[516],"value":[1538],"bonuspercentage":[1537],"visualpercentage":[1538],"percentage":[32],"max":[32],"min":[32],"currency":[32]}]);
4586
4822
  const PnChoiceButton = /*@__PURE__*/proxyCustomElement(PnChoiceButton$1, [4,"pn-choice-button",{"value":[520],"name":[1],"choiceid":[1],"type":[1],"disabled":[4],"checked":[4],"indeterminate":[1028]},[[0,"change","handlechange"]]]);
4587
4823
  const PnFilterCheckbox = /*@__PURE__*/proxyCustomElement(PnFilterCheckbox$1, [1,"pn-filter-checkbox",{"value":[520],"name":[1],"checkboxid":[1],"disabled":[4],"checked":[4],"indeterminate":[1028]},[[0,"change","handlechange"]]]);
4588
4824
  const PnFilterSearch = /*@__PURE__*/proxyCustomElement(PnFilterSearch$1, [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"]]]);
@@ -4598,6 +4834,7 @@ const PnMarketwebSitefooter = /*@__PURE__*/proxyCustomElement(PnMarketwebSitehea
4598
4834
  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"]]]);
4599
4835
  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]}]);
4600
4836
  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]}]);
4837
+ 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"]]]);
4601
4838
  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]}]);
4602
4839
  const PnProductPricelistResult = /*@__PURE__*/proxyCustomElement(PnFindProductPricelistResult, [0,"pn-product-pricelist-result",{"item":[1040],"shownitems":[16],"weightText":[32]}]);
4603
4840
  const PnProductTile = /*@__PURE__*/proxyCustomElement(PnProductTile$1, [4,"pn-product-tile"]);
@@ -4614,7 +4851,9 @@ const PnSiteSelectorItem = /*@__PURE__*/proxyCustomElement(PnSiteSelectorItem$1,
4614
4851
  const defineCustomElements = (opts) => {
4615
4852
  if (typeof customElements !== 'undefined') {
4616
4853
  [
4617
- PnChoiceButton,
4854
+ PnBonusProgressbar,
4855
+ PnBonusProgressbarLevel,
4856
+ PnChoiceButton,
4618
4857
  PnFilterCheckbox,
4619
4858
  PnFilterSearch,
4620
4859
  PnFindServiceAndPrice,
@@ -4629,6 +4868,7 @@ const defineCustomElements = (opts) => {
4629
4868
  PnMarketwebSiteheader,
4630
4869
  PnMarketwebSiteheaderLogin,
4631
4870
  PnMarketwebSiteheaderSearch,
4871
+ PnPexPricefinder,
4632
4872
  PnProductPricelist,
4633
4873
  PnProductPricelistResult,
4634
4874
  PnProductTile,
@@ -4650,4 +4890,4 @@ const defineCustomElements = (opts) => {
4650
4890
  }
4651
4891
  };
4652
4892
 
4653
- export { 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 };
4893
+ 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() {
@@ -1,4 +1,4 @@
1
- import { e as getRenderingRef, f as forceUpdate } from './index-1537f439.js';
1
+ import { e as getRenderingRef, f as forceUpdate } from './index-b26d0794.js';
2
2
 
3
3
  const appendToMap = (map, propName, value) => {
4
4
  const items = map.get(propName);
@@ -1257,6 +1257,10 @@ const parsePropertyValue = (propValue, propType) => {
1257
1257
  // but we'll cheat here and say that the string "false" is the boolean false
1258
1258
  return propValue === 'false' ? false : propValue === '' || !!propValue;
1259
1259
  }
1260
+ if (propType & 2 /* Number */) {
1261
+ // force it to be a number
1262
+ return parseFloat(propValue);
1263
+ }
1260
1264
  if (propType & 1 /* String */) {
1261
1265
  // could have been passed as a number or boolean
1262
1266
  // but we still want it as a string
package/esm/loader.js CHANGED
@@ -1,4 +1,4 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-1537f439.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-b26d0794.js';
2
2
 
3
3
  /*
4
4
  Stencil Client Patch Esm v2.10.0 | MIT Licensed | https://stenciljs.com
@@ -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-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-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
 
@@ -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 };
@@ -0,0 +1,38 @@
1
+ import { r as registerInstance, h, a as Host, g as getElement } from './index-b26d0794.js';
2
+
3
+ const pnBonusProgressbarLevelCss = "pn-bonus-progressbar-level{position:absolute;width:0.1rem;left:50%}pn-bonus-progressbar-level::after{content:\"\";width:0.1rem;position:absolute;left:0;border-left:1px dashed #9B1C2E;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:3rem}pn-bonus-progressbar-level:not([current]):nth-child(even)::after{height:7rem;margin-top:0.6rem}.progressbar-level-percentage{font-size:0.75em;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);top:-3.2rem}[current]>.progressbar-level-percentage{display:none}pn-bonus-progressbar-level:not([current]):nth-child(even) .progressbar-level-percentage{top:-4.8rem}.progressbar-level-value{font-size:0.75em;white-space:nowrap;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);top:2.3rem}[current]>.progressbar-level-value{top:-3.2rem}pn-bonus-progressbar-level:not([current]):nth-child(even) .progressbar-level-value{top:4.2rem}";
4
+
5
+ let PnBonusProgressbarLevel = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.current = false;
9
+ this.value = 0;
10
+ this.bonuspercentage = "";
11
+ this.visualpercentage = 0;
12
+ this.percentage = 0;
13
+ this.max = 0;
14
+ this.min = 0;
15
+ this.currency = "";
16
+ }
17
+ componentWillLoad() {
18
+ this.max = parseInt(this.hostElement.parentElement.parentElement.getAttribute("max"), 10);
19
+ this.min = parseInt(this.hostElement.parentElement.parentElement.getAttribute("min"), 10);
20
+ this.currency = this.hostElement.parentElement.parentElement.getAttribute("currency");
21
+ this.percentage = (this.value / this.max) * 100;
22
+ if (this.visualpercentage > 0) {
23
+ // Visual percentage has been overriden
24
+ return;
25
+ }
26
+ this.visualpercentage = ((this.value - this.min) / (this.max - this.min)) * 100;
27
+ }
28
+ formatValue() {
29
+ return `${this.value.toLocaleString('sv-SE', { maximumFractionDigits: 0 })} ${this.currency}`;
30
+ }
31
+ render() {
32
+ return (h(Host, { style: { 'left': `${this.visualpercentage}%` } }, h("div", { class: "progressbar-level-percentage" }, this.bonuspercentage), h("div", { class: "progressbar-level-value" }, this.formatValue())));
33
+ }
34
+ get hostElement() { return getElement(this); }
35
+ };
36
+ PnBonusProgressbarLevel.style = pnBonusProgressbarLevelCss;
37
+
38
+ export { PnBonusProgressbarLevel as pn_bonus_progressbar_level };
@@ -0,0 +1,86 @@
1
+ import { r as registerInstance, h, a as Host, g as getElement } from './index-b26d0794.js';
2
+
3
+ const pnBonusProgressbarCss = "pn-bonus-progressbar{width:100%}.bonusprogressbar-top{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.bonusprogressbar-top-icon{border-radius:100%;height:5rem;width:5rem;padding:1rem;display:-ms-inline-flexbox;display:inline-flex;margin-right:1em;margin-left:0.5em;background-color:#E0F8FF}[theme=red] .bonusprogressbar-top-icon{background-color:#FBC2C1}.bonusprogressbar-top-icon pn-icon svg{width:100%;height:100%}.bonusprogressbar-top-percentage{margin-left:auto;padding:0.5em}.bonusprogressbar-wrapper{position:relative;display:-ms-flexbox;display:flex;min-height:5em;-ms-flex-align:center;align-items:center}.bonusprogressbar-currentlevel{position:absolute}.bonusprogressbar-progress[value]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:1.7rem;border:0.1rem solid #00A0D6;border-radius:1.7rem;padding:0;margin:0;overflow:hidden}[theme=red] .bonusprogressbar-progress[value]{border-color:#F06365}.bonusprogressbar-progress[value]::-webkit-progress-bar{border:0;border-radius:1.7rem;margin:0;padding:0;background:#E0F8FF}[theme=red] .bonusprogressbar-progress[value]::-webkit-progress-bar{background:#FDEFEE}.bonusprogressbar-progress[value]::-webkit-progress-value{margin:0;padding:0;border-radius:1.7rem;background:#00A0D6}[theme=red] .bonusprogressbar-progress[value]::-webkit-progress-value{background:#F06365}";
4
+
5
+ let PnBonusProgressbar = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.icon = null;
9
+ this.heading = "";
10
+ this.theme = "blue";
11
+ this.bonuspercentage = "0%";
12
+ this.currency = "kr";
13
+ this.value = 0;
14
+ this.min = 0;
15
+ this.max = 0;
16
+ this.valuepercentage = 0;
17
+ this.progresspercentage = 0;
18
+ this.levelValues = [];
19
+ this.currentLevelAdjustedValue = 0;
20
+ }
21
+ componentWillLoad() {
22
+ this.setInitialValues();
23
+ this.setValuePercentage();
24
+ }
25
+ setInitialValues() {
26
+ const levelElements = Array.from(this.hostElement.querySelectorAll('pn-bonus-progressbar-level:not([current])'));
27
+ this.currentLevelAdjustedValue = this.value;
28
+ this.levelValues = levelElements.map((elm) => {
29
+ return parseInt(elm.getAttribute("value"), 10);
30
+ });
31
+ if (!this.max) {
32
+ if (this.levelValues && this.levelValues.length > 0) {
33
+ const newMax = this.levelValues.slice(-1)[0];
34
+ this.max = Math.floor(newMax * 1.05);
35
+ }
36
+ }
37
+ if (!this.min) {
38
+ const suggestedMin = Math.floor(this.value * 0.9);
39
+ if (suggestedMin > 0) {
40
+ this.min = suggestedMin;
41
+ }
42
+ }
43
+ if (this.value > this.max) {
44
+ this.currentLevelAdjustedValue = 100;
45
+ }
46
+ }
47
+ setValuePercentage() {
48
+ this.valuepercentage = (this.value / (this.max)) * 100;
49
+ this.progresspercentage = ((this.value - this.min) / (this.max - this.min)) * 100;
50
+ if (this.progresspercentage < 0) {
51
+ if (this.levelValues && this.levelValues.length && this.levelValues[0] < this.value) {
52
+ this.min = Math.floor(this.levelValues[0] * .95);
53
+ }
54
+ else {
55
+ this.min = Math.floor(this.value * .95);
56
+ }
57
+ }
58
+ if (this.progresspercentage > 100) {
59
+ this.progresspercentage = 100;
60
+ const newMax = this.levelValues.slice(-1)[0];
61
+ this.max = Math.floor(newMax * 1.05);
62
+ }
63
+ }
64
+ iconColor() {
65
+ switch (this.theme) {
66
+ case 'red':
67
+ return 'coral700';
68
+ case 'blue':
69
+ default:
70
+ return 'blue700';
71
+ }
72
+ }
73
+ render() {
74
+ return (h(Host, null, h("div", { class: "bonusprogressbar-top" }, this.icon ? (h("div", { class: "bonusprogressbar-top-icon" }, h("pn-icon", { symbol: "stamp", small: "false", color: this.iconColor() }))) : {}, h("h4", { class: "bonusprogressbar-top-heading" }, this.heading), h("strong", { class: "bonusprogressbar-top-percentage" }, this.bonuspercentage)), h("div", { class: "bonusprogressbar-wrapper" }, h("progress", { class: "bonusprogressbar-progress", value: this.progresspercentage, max: "100" }), h("pn-bonus-progressbar-level", { current: true, value: this.value, visualpercentage: this.currentLevelAdjustedValue, bonuspercentage: this.bonuspercentage }), h("slot", null))));
75
+ }
76
+ get hostElement() { return getElement(this); }
77
+ static get watchers() { return {
78
+ "currentLevelAdjustedValue": ["setValuePercentage"],
79
+ "value": ["setValuePercentage"],
80
+ "min": ["setValuePercentage"],
81
+ "max": ["setValuePercentage"]
82
+ }; }
83
+ };
84
+ PnBonusProgressbar.style = pnBonusProgressbarCss;
85
+
86
+ export { PnBonusProgressbar as pn_bonus_progressbar };