@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.
- package/cjs/{MarketWebLoginManager-859590e2.js → MarketWebLoginManager-1282a883.js} +1 -2
- package/cjs/{index-ea886985.js → index-31d574c5.js} +1 -1
- package/cjs/{index-0404c97e.js → index-cd08e313.js} +4 -0
- package/cjs/loader.cjs.js +2 -2
- package/cjs/mockresponse-c40ea527.js +24 -0
- package/cjs/pn-bonus-progressbar-level.cjs.entry.js +42 -0
- package/cjs/pn-bonus-progressbar.cjs.entry.js +90 -0
- package/cjs/pn-choice-button_2.cjs.entry.js +3 -3
- package/cjs/pn-filter-checkbox.cjs.entry.js +1 -1
- package/cjs/pn-filter-search.cjs.entry.js +1 -1
- package/cjs/{pn-find-service-and-price-store-df7890f3.js → pn-find-service-and-price-store-bded912f.js} +1 -1
- package/cjs/pn-find-service-and-price.cjs.entry.js +3 -3
- package/cjs/pn-language-selector_9.cjs.entry.js +4 -4
- package/cjs/pn-mainnav-link.cjs.entry.js +3 -3
- package/cjs/{pn-mainnav-store-87a95686.js → pn-mainnav-store-4a3492cd.js} +1 -1
- package/cjs/pn-market-web-components.cjs.js +2 -2
- package/cjs/pn-marketweb-sitefooter.cjs.entry.js +1 -1
- package/cjs/pn-marketweb-siteheader.cjs.entry.js +2 -2
- package/cjs/pn-pex-pricefinder.cjs.entry.js +121 -0
- package/cjs/pn-product-pricelist-result.cjs.entry.js +3 -3
- package/cjs/{pn-product-pricelist-store-3a956b18.js → pn-product-pricelist-store-8dda97db.js} +1 -1
- package/cjs/pn-product-pricelist.cjs.entry.js +3 -3
- package/cjs/pn-product-tile_3.cjs.entry.js +1 -1
- package/cjs/pn-profile-selector.cjs.entry.js +2 -2
- package/cjs/pn-sidenav-level.cjs.entry.js +3 -3
- package/cjs/pn-sidenav-link.cjs.entry.js +3 -3
- package/cjs/{pn-sidenav-store-ac7b8608.js → pn-sidenav-store-044d6595.js} +1 -1
- package/cjs/pn-sidenav.cjs.entry.js +3 -3
- package/cjs/pn-site-footer_2.cjs.entry.js +1 -1
- package/collection/collection-manifest.json +3 -0
- package/collection/components/input/pn-bonus-progressbar/pn-bonus-progressbar-level.css +48 -0
- package/collection/components/input/pn-bonus-progressbar/pn-bonus-progressbar-level.js +120 -0
- package/collection/components/input/pn-bonus-progressbar/pn-bonus-progressbar.css +77 -0
- package/collection/components/input/pn-bonus-progressbar/pn-bonus-progressbar.js +254 -0
- package/collection/components/input/pn-bonus-progressbar/pn-bonus-progressbar.stories.js +79 -0
- package/collection/components/widgets/pn-pex-pricefinder/pex-pricefinder.stories.js +22 -0
- package/collection/components/widgets/pn-pex-pricefinder/pn-pex-pricefinder.css +59 -0
- package/collection/components/widgets/pn-pex-pricefinder/pn-pex-pricefinder.js +188 -0
- package/collection/components/widgets/pn-pex-pricefinder/translations.js +22 -0
- package/collection/components/widgets/pn-pex-pricefinder/types.js +1 -0
- package/collection/globals/MarketWebLoginManager.js +1 -2
- package/custom-elements/index.d.ts +18 -0
- package/custom-elements/index.js +259 -19
- package/custom-elements/mockresponse.js +20 -0
- package/esm/{MarketWebLoginManager-83f2e86a.js → MarketWebLoginManager-310d2552.js} +1 -2
- package/esm/{index-e34aec9d.js → index-94746173.js} +1 -1
- package/esm/{index-1537f439.js → index-b26d0794.js} +4 -0
- package/esm/loader.js +2 -2
- package/esm/mockresponse-e2c08e66.js +20 -0
- package/esm/pn-bonus-progressbar-level.entry.js +38 -0
- package/esm/pn-bonus-progressbar.entry.js +86 -0
- package/esm/pn-choice-button_2.entry.js +3 -3
- package/esm/pn-filter-checkbox.entry.js +1 -1
- package/esm/pn-filter-search.entry.js +1 -1
- package/esm/{pn-find-service-and-price-store-ae3cddfb.js → pn-find-service-and-price-store-2ddc6cfa.js} +1 -1
- package/esm/pn-find-service-and-price.entry.js +3 -3
- package/esm/pn-language-selector_9.entry.js +4 -4
- package/esm/pn-mainnav-link.entry.js +3 -3
- package/esm/{pn-mainnav-store-8e518460.js → pn-mainnav-store-c14ad7e8.js} +1 -1
- package/esm/pn-market-web-components.js +2 -2
- package/esm/pn-marketweb-sitefooter.entry.js +1 -1
- package/esm/pn-marketweb-siteheader.entry.js +2 -2
- package/esm/pn-pex-pricefinder.entry.js +117 -0
- package/esm/pn-product-pricelist-result.entry.js +3 -3
- package/esm/{pn-product-pricelist-store-b59d0cba.js → pn-product-pricelist-store-a287a3f5.js} +1 -1
- package/esm/pn-product-pricelist.entry.js +3 -3
- package/esm/pn-product-tile_3.entry.js +1 -1
- package/esm/pn-profile-selector.entry.js +2 -2
- package/esm/pn-sidenav-level.entry.js +3 -3
- package/esm/pn-sidenav-link.entry.js +3 -3
- package/esm/{pn-sidenav-store-c46b24d2.js → pn-sidenav-store-6f25eef9.js} +1 -1
- package/esm/pn-sidenav.entry.js +3 -3
- package/esm/pn-site-footer_2.entry.js +1 -1
- package/esm-es5/{MarketWebLoginManager-83f2e86a.js → MarketWebLoginManager-310d2552.js} +1 -1
- package/esm-es5/{index-e34aec9d.js → index-94746173.js} +1 -1
- package/esm-es5/{index-1537f439.js → index-b26d0794.js} +1 -1
- package/esm-es5/loader.js +1 -1
- package/esm-es5/mockresponse-e2c08e66.js +1 -0
- package/esm-es5/pn-bonus-progressbar-level.entry.js +1 -0
- package/esm-es5/pn-bonus-progressbar.entry.js +1 -0
- package/esm-es5/pn-choice-button_2.entry.js +1 -1
- package/esm-es5/pn-filter-checkbox.entry.js +1 -1
- package/esm-es5/pn-filter-search.entry.js +1 -1
- package/esm-es5/{pn-find-service-and-price-store-ae3cddfb.js → pn-find-service-and-price-store-2ddc6cfa.js} +1 -1
- package/esm-es5/pn-find-service-and-price.entry.js +1 -1
- package/esm-es5/pn-language-selector_9.entry.js +1 -1
- package/esm-es5/pn-mainnav-link.entry.js +1 -1
- package/esm-es5/{pn-mainnav-store-8e518460.js → pn-mainnav-store-c14ad7e8.js} +1 -1
- package/esm-es5/pn-market-web-components.js +1 -1
- package/esm-es5/pn-marketweb-sitefooter.entry.js +1 -1
- package/esm-es5/pn-marketweb-siteheader.entry.js +1 -1
- package/esm-es5/pn-pex-pricefinder.entry.js +1 -0
- package/esm-es5/pn-product-pricelist-result.entry.js +1 -1
- package/esm-es5/{pn-product-pricelist-store-b59d0cba.js → pn-product-pricelist-store-a287a3f5.js} +1 -1
- package/esm-es5/pn-product-pricelist.entry.js +1 -1
- package/esm-es5/pn-product-tile_3.entry.js +1 -1
- package/esm-es5/pn-profile-selector.entry.js +1 -1
- package/esm-es5/pn-sidenav-level.entry.js +1 -1
- package/esm-es5/pn-sidenav-link.entry.js +1 -1
- package/esm-es5/{pn-sidenav-store-c46b24d2.js → pn-sidenav-store-6f25eef9.js} +1 -1
- package/esm-es5/pn-sidenav.entry.js +1 -1
- package/esm-es5/pn-site-footer_2.entry.js +1 -1
- package/package.json +2 -2
- package/pn-market-web-components/{p-8dad5ed9.js → p-020f1667.js} +1 -1
- package/pn-market-web-components/{p-7071b45d.system.entry.js → p-02a985d9.system.entry.js} +1 -1
- package/pn-market-web-components/{p-2713500f.entry.js → p-02c8dcd0.entry.js} +1 -1
- package/pn-market-web-components/p-038b8060.system.js +1 -0
- package/pn-market-web-components/{p-e3fb52a6.system.entry.js → p-043f460c.system.entry.js} +1 -1
- package/pn-market-web-components/{p-57e4ced3.system.entry.js → p-0ba9ae69.system.entry.js} +1 -1
- package/pn-market-web-components/{p-88d82a49.entry.js → p-0d975e39.entry.js} +1 -1
- package/pn-market-web-components/p-12297437.system.entry.js +1 -0
- package/pn-market-web-components/p-1caf4231.system.entry.js +1 -0
- package/pn-market-web-components/{p-9718752b.system.entry.js → p-21463fc1.system.entry.js} +1 -1
- package/pn-market-web-components/p-2456901a.js +1 -0
- package/pn-market-web-components/{p-d2c98a81.system.js → p-26f72169.system.js} +1 -1
- package/pn-market-web-components/{p-f14cff8e.js → p-3359dac6.js} +1 -1
- package/pn-market-web-components/p-33cefc5e.system.entry.js +1 -0
- package/pn-market-web-components/{p-71d3db79.entry.js → p-37801e32.entry.js} +1 -1
- package/pn-market-web-components/p-3cf489ac.js +1 -0
- package/pn-market-web-components/{p-4feb3557.system.entry.js → p-478ac9b4.system.entry.js} +1 -1
- package/pn-market-web-components/{p-2e71089b.js → p-4832a520.js} +1 -1
- package/pn-market-web-components/{p-dc471243.entry.js → p-4aa3b95d.entry.js} +1 -1
- package/pn-market-web-components/p-52787ac9.entry.js +1 -0
- package/pn-market-web-components/{p-1d9a3108.entry.js → p-53e14b27.entry.js} +1 -1
- package/pn-market-web-components/{p-8e8fe71e.system.js → p-5510f188.system.js} +1 -1
- package/pn-market-web-components/{p-03fb0285.entry.js → p-5df99382.entry.js} +1 -1
- package/pn-market-web-components/p-772c078c.entry.js +1 -0
- package/pn-market-web-components/{p-423807b2.entry.js → p-77d43e30.entry.js} +1 -1
- package/pn-market-web-components/{p-492ba223.js → p-789e1b30.js} +1 -1
- package/pn-market-web-components/p-7d92e5c7.system.entry.js +1 -0
- package/pn-market-web-components/{p-02ab0208.entry.js → p-81df672d.entry.js} +1 -1
- package/pn-market-web-components/p-84d9f552.system.js +1 -0
- package/pn-market-web-components/{p-d70008da.entry.js → p-861210ae.entry.js} +1 -1
- package/pn-market-web-components/{p-d9465a21.system.js → p-915cef83.system.js} +1 -1
- package/pn-market-web-components/p-942f590f.entry.js +1 -0
- package/pn-market-web-components/{p-86a9f853.system.js → p-98bc5c17.system.js} +1 -1
- package/pn-market-web-components/{p-7b4c721f.system.entry.js → p-a1309b3b.system.entry.js} +1 -1
- package/pn-market-web-components/p-a22df959.system.js +1 -0
- package/pn-market-web-components/{p-1411f767.entry.js → p-a25fc106.entry.js} +1 -1
- package/pn-market-web-components/{p-015a433e.entry.js → p-a37ea453.entry.js} +1 -1
- package/pn-market-web-components/{p-1649b94a.entry.js → p-a5284c78.entry.js} +1 -1
- package/pn-market-web-components/{p-daa6ddb3.system.entry.js → p-b2383083.system.entry.js} +1 -1
- package/pn-market-web-components/{p-dade9bdb.system.entry.js → p-b446ca28.system.entry.js} +1 -1
- package/pn-market-web-components/{p-a65b61d6.system.entry.js → p-b7fdc5cb.system.entry.js} +1 -1
- package/pn-market-web-components/{p-32f4efa6.entry.js → p-b8af690a.entry.js} +1 -1
- package/pn-market-web-components/{p-79611456.system.entry.js → p-c127e22c.system.entry.js} +1 -1
- package/pn-market-web-components/p-c25ada49.js +1 -0
- package/pn-market-web-components/{p-22cd41df.entry.js → p-cce32042.entry.js} +1 -1
- package/pn-market-web-components/p-cec6130e.system.js +1 -0
- package/pn-market-web-components/{p-96ef731c.entry.js → p-d1053abf.entry.js} +1 -1
- package/pn-market-web-components/{p-a983c263.system.entry.js → p-d133f30d.system.entry.js} +1 -1
- package/pn-market-web-components/{p-4921fcc3.entry.js → p-dde2cf1c.entry.js} +1 -1
- package/pn-market-web-components/{p-e695c8e8.system.entry.js → p-e04f8d34.system.entry.js} +1 -1
- package/pn-market-web-components/{p-5a155773.system.entry.js → p-e6a209c6.system.entry.js} +1 -1
- package/pn-market-web-components/{p-a5b178b5.system.entry.js → p-eb049e9d.system.entry.js} +1 -1
- package/pn-market-web-components/p-ec0adffe.js +1 -0
- package/pn-market-web-components/{p-cb10d64f.system.entry.js → p-ec1127de.system.entry.js} +1 -1
- package/pn-market-web-components/{p-58cdf3a6.system.js → p-f1311662.system.js} +1 -1
- package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
- package/pn-market-web-components/pn-market-web-components.js +1 -1
- package/types/components/input/pn-bonus-progressbar/pn-bonus-progressbar-level.d.ts +14 -0
- package/types/components/input/pn-bonus-progressbar/pn-bonus-progressbar.d.ts +20 -0
- package/types/components/widgets/pn-pex-pricefinder/pn-pex-pricefinder.d.ts +30 -0
- package/types/components/widgets/pn-pex-pricefinder/translations.d.ts +22 -0
- package/types/components/widgets/pn-pex-pricefinder/types.d.ts +27 -0
- package/types/components.d.ts +87 -0
- package/pn-market-web-components/p-02a1466e.system.js +0 -1
- package/pn-market-web-components/p-25bdf3f8.system.js +0 -1
- package/pn-market-web-components/p-2e4a6bc7.system.entry.js +0 -1
- package/pn-market-web-components/p-8be38a7e.system.js +0 -1
- package/pn-market-web-components/p-a14f54af.js +0 -1
- package/pn-market-web-components/p-c254cfdf.js +0 -1
- package/pn-market-web-components/p-d319f735.js +0 -1
package/custom-elements/index.js
CHANGED
|
@@ -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$
|
|
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$
|
|
2259
|
-
state$3.i18n = translations$
|
|
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$
|
|
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$
|
|
2451
|
-
this.i18n = translations$
|
|
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$
|
|
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$
|
|
2599
|
-
state$2.i18n = translations$
|
|
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$
|
|
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$
|
|
3103
|
-
this.i18n = translations$
|
|
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$
|
|
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
|
-
|
|
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$
|
|
3535
|
-
this.i18n = translations$
|
|
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
|
-
|
|
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
|
-
|
|
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() {
|
|
@@ -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-
|
|
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 };
|