@zonos/elements 1.3.18-alpha.0 → 1.3.18-alpha.1
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/dist/cjs/{cart-d25723e7.js → cart-95209ae8.js} +308 -8
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{submitGtag-484eaf9d.js → submitGtag-9d60f3bb.js} +1 -1
- package/dist/cjs/zonos-address_8.cjs.entry.js +1 -1
- package/dist/cjs/zonos-card_2.cjs.entry.js +1 -1
- package/dist/cjs/{zonos-cart-items_9.cjs.entry.js → zonos-cart-items_10.cjs.entry.js} +114 -10
- package/dist/cjs/zonos-checkout.cjs.entry.js +4 -4
- package/dist/cjs/zonos-controller.cjs.entry.js +1 -1
- package/dist/cjs/zonos-country-flag.cjs.entry.js +1 -1
- package/dist/cjs/zonos-country-select_3.cjs.entry.js +1 -1
- package/dist/cjs/zonos-elements.cjs.js +1 -1
- package/dist/cjs/zonos-hello-dialog.cjs.entry.js +1 -1
- package/dist/cjs/zonos-hello.cjs.entry.js +1 -1
- package/dist/cjs/zonos-payment.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.js +2 -1
- package/dist/collection/components/checkout/zonos-checkout/zonos-cart-restricted-items/assets/ChevronUpIcon.svg +23 -0
- package/dist/collection/components/checkout/zonos-checkout/zonos-cart-restricted-items/assets/empty-item.jpeg +0 -0
- package/dist/collection/components/checkout/zonos-checkout/zonos-cart-restricted-items/zonos-cart-restricted-items.css +105 -0
- package/dist/collection/components/checkout/zonos-checkout/zonos-cart-restricted-items/zonos-cart-restricted-items.js +101 -0
- package/dist/collection/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.js +6 -3
- package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.css +3 -0
- package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.css +1 -1
- package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.js +1 -1
- package/dist/collection/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.js +18 -2
- package/dist/collection/components/checkout/zonos-checkout/zonos-review/zonos-review.js +3 -2
- package/dist/collection/components/store/checkout/cart.js +55 -5
- package/dist/collection/components/store/checkout/stripe.js +6 -2
- package/dist/collection/components/store/hello/localization.js +1 -1
- package/dist/collection/components/store/translationStore/strings.arabic.js +12 -0
- package/dist/collection/components/store/translationStore/strings.base.js +12 -0
- package/dist/collection/components/store/translationStore/strings.chinese.js +12 -0
- package/dist/collection/components/store/translationStore/strings.danish.js +12 -0
- package/dist/collection/components/store/translationStore/strings.dutch.js +12 -0
- package/dist/collection/components/store/translationStore/strings.french.js +12 -0
- package/dist/collection/components/store/translationStore/strings.german.js +12 -0
- package/dist/collection/components/store/translationStore/strings.hebrew.js +12 -0
- package/dist/collection/components/store/translationStore/strings.indonesian.js +12 -0
- package/dist/collection/components/store/translationStore/strings.italian.js +12 -0
- package/dist/collection/components/store/translationStore/strings.japanese.js +12 -0
- package/dist/collection/components/store/translationStore/strings.korean.js +12 -0
- package/dist/collection/components/store/translationStore/strings.norwegian.js +12 -0
- package/dist/collection/components/store/translationStore/strings.polish.js +12 -0
- package/dist/collection/components/store/translationStore/strings.portuguese.js +12 -0
- package/dist/collection/components/store/translationStore/strings.russian.js +12 -0
- package/dist/collection/components/store/translationStore/strings.spanish.js +12 -0
- package/dist/collection/components/store/translationStore/strings.swedish.js +12 -0
- package/dist/collection/components/store/translationStore/strings.turkish.js +12 -0
- package/dist/collection/components/store/translationStore/strings.vietnamese.js +12 -0
- package/dist/collection/components/utils/api/prepCalculateLandedCost.js +1 -1
- package/dist/collection/components/utils/hello/currencyConversion/currencyDisplay.js +6 -1
- package/dist/collection/types/checkout/RestrictProduct.js +1 -0
- package/dist/collection/types/generated/graphql.customer.types.js +40 -0
- package/dist/collection/types/generated/graphql.frontend.types.js +1 -0
- package/dist/components/stripe.js +68 -9
- package/dist/components/submitGtag.js +1 -1
- package/dist/components/trackConversionEvent.js +1 -1
- package/dist/components/translationStore.js +240 -0
- package/dist/components/zonos-cart-items2.js +2 -1
- package/dist/components/zonos-cart-restricted-items.d.ts +11 -0
- package/dist/components/zonos-cart-restricted-items.js +6 -0
- package/dist/components/zonos-cart-restricted-items2.js +135 -0
- package/dist/components/zonos-cart-subtotal2.js +6 -3
- package/dist/components/zonos-checkout-finish2.js +1 -1
- package/dist/components/zonos-checkout-payment2.js +1 -1
- package/dist/components/zonos-checkout.js +27 -21
- package/dist/components/zonos-controller.js +1 -1
- package/dist/components/zonos-country-select2.js +1 -1
- package/dist/components/zonos-customer-info2.js +19 -3
- package/dist/components/zonos-hello-dialog2.js +1 -1
- package/dist/components/zonos-hello.js +1 -1
- package/dist/components/zonos-language-select2.js +1 -1
- package/dist/components/zonos-review2.js +3 -2
- package/dist/components/zonos-shipping2.js +1 -1
- package/dist/esm/{cart-02f5c2ea.js → cart-6448e883.js} +308 -9
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{submitGtag-ba38e1ac.js → submitGtag-b7d369cd.js} +1 -1
- package/dist/esm/zonos-address_8.entry.js +1 -1
- package/dist/esm/zonos-card_2.entry.js +1 -1
- package/dist/esm/{zonos-cart-items_9.entry.js → zonos-cart-items_10.entry.js} +114 -11
- package/dist/esm/zonos-checkout.entry.js +4 -4
- package/dist/esm/zonos-controller.entry.js +1 -1
- package/dist/esm/zonos-country-flag.entry.js +1 -1
- package/dist/esm/zonos-country-select_3.entry.js +1 -1
- package/dist/esm/zonos-elements.js +1 -1
- package/dist/esm/zonos-hello-dialog.entry.js +1 -1
- package/dist/esm/zonos-hello.entry.js +1 -1
- package/dist/esm/zonos-payment.entry.js +1 -1
- package/dist/esm-es5/cart-6448e883.js +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/{submitGtag-ba38e1ac.js → submitGtag-b7d369cd.js} +1 -1
- package/dist/esm-es5/zonos-address_8.entry.js +1 -1
- package/dist/esm-es5/zonos-card_2.entry.js +1 -1
- package/dist/esm-es5/zonos-cart-items_10.entry.js +1 -0
- package/dist/esm-es5/zonos-checkout.entry.js +1 -1
- package/dist/esm-es5/zonos-controller.entry.js +1 -1
- package/dist/esm-es5/zonos-country-flag.entry.js +1 -1
- package/dist/esm-es5/zonos-country-select_3.entry.js +1 -1
- package/dist/esm-es5/zonos-elements.js +1 -1
- package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
- package/dist/esm-es5/zonos-hello.entry.js +1 -1
- package/dist/esm-es5/zonos-payment.entry.js +1 -1
- package/dist/scripts/loadZonos.js +1 -1
- package/dist/scripts/zonos.js +1 -1
- package/dist/scripts/zonosBase.js +1 -1
- package/dist/types/components/checkout/zonos-checkout/zonos-cart-restricted-items/zonos-cart-restricted-items.d.ts +14 -0
- package/dist/types/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.d.ts +2 -0
- package/dist/types/components/store/checkout/cart.d.ts +38 -4
- package/dist/types/components/store/translationStore/strings.arabic.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.base.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.chinese.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.danish.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.dutch.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.french.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.german.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.hebrew.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.indonesian.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.italian.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.japanese.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.korean.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.norwegian.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.polish.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.portuguese.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.russian.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.spanish.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.swedish.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.turkish.d.ts +12 -0
- package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +12 -0
- package/dist/types/components/store/translationStore.d.ts +1 -1
- package/dist/types/components/utils/api/getLocaleMessages.d.ts +1 -1
- package/dist/types/components.d.ts +21 -0
- package/dist/types/scripts/zonosBase.d.ts +6 -1
- package/dist/types/types/checkout/RestrictProduct.d.ts +7 -0
- package/dist/types/types/generated/graphql.customer.types.d.ts +54 -0
- package/dist/types/types/generated/graphql.customer.types.ts +66 -1
- package/dist/types/types/generated/graphql.frontend.types.d.ts +2 -1
- package/dist/types/types/generated/graphql.frontend.types.ts +2 -1
- package/dist/zonos-elements/{p-6dec476d.system.entry.js → p-0759a84d.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-47e00966.system.entry.js → p-0ee61fba.system.entry.js} +1 -1
- package/dist/zonos-elements/p-154aaf95.system.js +1 -1
- package/dist/zonos-elements/{p-239cc943.system.entry.js → p-2fc561ac.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-cf0f8e32.entry.js → p-345503b7.entry.js} +1 -1
- package/dist/zonos-elements/{p-6ece23b9.entry.js → p-3be2e469.entry.js} +1 -1
- package/dist/zonos-elements/p-47c75f81.system.entry.js +1 -0
- package/dist/zonos-elements/{p-532995a4.system.entry.js → p-58f8cee7.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-572a4de2.system.entry.js → p-61100d2e.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-905d842b.entry.js → p-6ea746b9.entry.js} +1 -1
- package/dist/zonos-elements/{p-f124e659.system.entry.js → p-70c35519.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-246133d3.entry.js → p-7b19cd96.entry.js} +1 -1
- package/dist/zonos-elements/{p-0265da6f.js → p-7cc730b0.js} +1 -1
- package/dist/zonos-elements/{p-57adc7f8.entry.js → p-7f48fafe.entry.js} +1 -1
- package/dist/zonos-elements/p-9c575a18.system.entry.js +1 -0
- package/dist/zonos-elements/{p-e0e66004.system.js → p-aaf1e517.system.js} +1 -1
- package/dist/zonos-elements/p-aff5f4ca.js +1 -0
- package/dist/zonos-elements/{p-f99eb5e7.entry.js → p-beca252d.entry.js} +1 -1
- package/dist/zonos-elements/{p-1ba4cf64.entry.js → p-c1f4bb4a.entry.js} +1 -1
- package/dist/zonos-elements/{p-5e33aab7.system.entry.js → p-c64eefdd.system.entry.js} +1 -1
- package/dist/zonos-elements/p-ca621143.entry.js +1 -0
- package/dist/zonos-elements/{p-0267a969.entry.js → p-dbee6587.entry.js} +1 -1
- package/dist/zonos-elements/{p-9da0562e.system.entry.js → p-e0706108.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-54a32fd7.entry.js → p-e3335228.entry.js} +1 -1
- package/dist/zonos-elements/p-ef9cbb66.system.js +1 -0
- package/dist/zonos-elements/zonos-elements.esm.js +1 -1
- package/package.json +12 -12
- package/dist/esm-es5/cart-02f5c2ea.js +0 -1
- package/dist/esm-es5/zonos-cart-items_9.entry.js +0 -1
- package/dist/zonos-elements/p-168e5b5f.system.js +0 -1
- package/dist/zonos-elements/p-1b8082dd.entry.js +0 -1
- package/dist/zonos-elements/p-5d13795a.system.entry.js +0 -1
- package/dist/zonos-elements/p-981bf71a.js +0 -1
- package/dist/zonos-elements/p-ed7d251d.system.entry.js +0 -1
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
font-family: var(--font-family, Inter), Inter;
|
|
3
|
+
display: block;
|
|
4
|
+
white-space: normal;
|
|
5
|
+
}
|
|
6
|
+
:host * {
|
|
7
|
+
font-family: var(--font-family, Inter), Inter;
|
|
8
|
+
}
|
|
9
|
+
:host img {
|
|
10
|
+
max-width: 100%;
|
|
11
|
+
}
|
|
12
|
+
:host dl,
|
|
13
|
+
:host dd,
|
|
14
|
+
:host h1,
|
|
15
|
+
:host h2,
|
|
16
|
+
:host h3,
|
|
17
|
+
:host h4,
|
|
18
|
+
:host h5,
|
|
19
|
+
:host h6,
|
|
20
|
+
:host hr,
|
|
21
|
+
:host figure,
|
|
22
|
+
:host p,
|
|
23
|
+
:host pre {
|
|
24
|
+
margin: 0;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* All sets of variable are here */
|
|
28
|
+
/* smooth font rendering */
|
|
29
|
+
:host {
|
|
30
|
+
-moz-osx-font-smoothing: grayscale;
|
|
31
|
+
-webkit-font-smoothing: antialiased;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
:host {
|
|
35
|
+
overflow: auto;
|
|
36
|
+
position: relative;
|
|
37
|
+
}
|
|
38
|
+
:host zonos-banner {
|
|
39
|
+
margin-bottom: 12px;
|
|
40
|
+
}
|
|
41
|
+
:host .zonos--cart-title-collapse-trigger {
|
|
42
|
+
display: flex;
|
|
43
|
+
flex-direction: row;
|
|
44
|
+
gap: 24px;
|
|
45
|
+
align-items: center;
|
|
46
|
+
background: var(--zonos-elements-gray-0);
|
|
47
|
+
width: 100%;
|
|
48
|
+
border: none;
|
|
49
|
+
cursor: pointer;
|
|
50
|
+
margin-bottom: 16px;
|
|
51
|
+
position: sticky;
|
|
52
|
+
top: 0;
|
|
53
|
+
z-index: 1;
|
|
54
|
+
transition: 0.5s all ease;
|
|
55
|
+
}
|
|
56
|
+
:host .zonos--cart-title-collapse-trigger zonos-icon {
|
|
57
|
+
transition: transform 0.3s ease;
|
|
58
|
+
}
|
|
59
|
+
:host .zonos--cart-title-collapse-trigger.collapsed {
|
|
60
|
+
margin-bottom: 0;
|
|
61
|
+
}
|
|
62
|
+
:host .zonos--cart-title-collapse-trigger.collapsed zonos-icon {
|
|
63
|
+
transform: rotate(180deg);
|
|
64
|
+
}
|
|
65
|
+
:host .zonos--cart-title-collapse-trigger::before, :host .zonos--cart-title-collapse-trigger::after {
|
|
66
|
+
content: "";
|
|
67
|
+
display: block;
|
|
68
|
+
width: 80%;
|
|
69
|
+
height: 1px;
|
|
70
|
+
background-color: var(--zonos-elements-border-color);
|
|
71
|
+
flex-shrink: 1;
|
|
72
|
+
}
|
|
73
|
+
:host .zonos--cart-title-collapse-trigger .zonos--title-wrapper {
|
|
74
|
+
flex-grow: 1;
|
|
75
|
+
flex-shrink: 0;
|
|
76
|
+
display: inline-flex;
|
|
77
|
+
flex-direction: row;
|
|
78
|
+
gap: 8px;
|
|
79
|
+
align-items: center;
|
|
80
|
+
}
|
|
81
|
+
:host .zonos--cart-table {
|
|
82
|
+
opacity: 0.5;
|
|
83
|
+
width: 100%;
|
|
84
|
+
border: none;
|
|
85
|
+
border-collapse: collapse;
|
|
86
|
+
overflow: auto;
|
|
87
|
+
font-size: var(--zonos-elements-font-size-base);
|
|
88
|
+
}
|
|
89
|
+
:host .zonos--cart-table .zonos--column {
|
|
90
|
+
padding: 8px;
|
|
91
|
+
font-size: var(--zonos-elements-font-size-base);
|
|
92
|
+
}
|
|
93
|
+
:host .zonos--cart-table .zonos--column:last-child {
|
|
94
|
+
text-align: right;
|
|
95
|
+
}
|
|
96
|
+
:host .zonos--cart-table .zonos--column:first-child {
|
|
97
|
+
width: 60px;
|
|
98
|
+
}
|
|
99
|
+
:host img {
|
|
100
|
+
min-width: 40px;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
:host(.collapsed) {
|
|
104
|
+
flex-shrink: 0;
|
|
105
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { getAssetPath, h, Host } from "@stencil/core";
|
|
2
|
+
import { cartStore, cartStoreHasOneEligibleItem, } from "../../../store/checkout/cart";
|
|
3
|
+
import { translate } from "../../../store/translationStore";
|
|
4
|
+
import { classes } from "../../../utils/classes";
|
|
5
|
+
import { formatCurrency } from "../../../utils/formatCurrency";
|
|
6
|
+
// eslint-disable-next-line no-relative-import-paths/no-relative-import-paths
|
|
7
|
+
import ChevronUpIcon from "./assets/ChevronUpIcon.svg";
|
|
8
|
+
export class ZonosCartRestrictedItems {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.hide = false;
|
|
11
|
+
this.errorImages = [];
|
|
12
|
+
this.internalCollapsed = true;
|
|
13
|
+
this.firstRender = true;
|
|
14
|
+
}
|
|
15
|
+
componentDidLoad() {
|
|
16
|
+
// Reset if it's first render
|
|
17
|
+
this.firstRender = true;
|
|
18
|
+
}
|
|
19
|
+
render() {
|
|
20
|
+
var _a;
|
|
21
|
+
const emptyItemImg = getAssetPath('./assets/empty-item.jpeg');
|
|
22
|
+
const rate = ((_a = cartStore.exchangeRate) === null || _a === void 0 ? void 0 : _a.rate) || 1;
|
|
23
|
+
const restrictedItemTotal = cartStore.restrictedItems.length;
|
|
24
|
+
if (this.hide || restrictedItemTotal === 0) {
|
|
25
|
+
// show nothing if the parent is collapsed or no restricted items
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
if (this.firstRender) {
|
|
29
|
+
// Auto expand if all items are restricted
|
|
30
|
+
this.internalCollapsed = cartStoreHasOneEligibleItem();
|
|
31
|
+
this.firstRender = false;
|
|
32
|
+
}
|
|
33
|
+
return (h(Host, { class: classes([
|
|
34
|
+
'zonos--cart-restricted-items',
|
|
35
|
+
'zonos--elements',
|
|
36
|
+
this.internalCollapsed && 'collapsed',
|
|
37
|
+
]) }, h("button", { class: classes([
|
|
38
|
+
'zonos--cart-title-collapse-trigger',
|
|
39
|
+
this.internalCollapsed && 'collapsed',
|
|
40
|
+
]), onClick: () => {
|
|
41
|
+
this.internalCollapsed = !this.internalCollapsed;
|
|
42
|
+
} }, h("div", { class: "zonos--title-wrapper" }, h("zonos-text", { textColor: "red-600", type: "label" }, `${translate(this.internalCollapsed ? 'Show' : 'Hide')} ${restrictedItemTotal} ${translate('restricted items')}`), h("zonos-icon", { content: ChevronUpIcon, iconColor: "red-600" }))), h("zonos-collapse", { collapsed: this.internalCollapsed }, h("zonos-banner", { bannerTitle: translate('The following items are unable to be shipped to your country and are not included in your cart total.'), intent: "error" }), h("table", { class: "zonos--cart-table" }, h("tbody", null, cartStore.restrictedItems.map((item, index) => {
|
|
43
|
+
var _a, _b;
|
|
44
|
+
const itemImg = item.imageUrl;
|
|
45
|
+
return (h("tr", { class: "zonos--cart-item" }, h("td", { class: "zonos--column zonos--cart-item-image" }, itemImg && !this.errorImages.includes(itemImg) ? (h("img", { alt:
|
|
46
|
+
// Use matched item name if available
|
|
47
|
+
((_a = item.matchedItem) === null || _a === void 0 ? void 0 : _a.name) ||
|
|
48
|
+
item.name ||
|
|
49
|
+
`Restricted item ${index + 1}`, onError: () => {
|
|
50
|
+
this.errorImages = [...this.errorImages, itemImg];
|
|
51
|
+
}, src: itemImg, style: {
|
|
52
|
+
'min-width': '40px',
|
|
53
|
+
}, width: 40 })) : (h("img", { alt: item.name || `Restricted item ${index + 1}`, src: emptyItemImg, width: 40 }))), h("td", { class: "zonos--column zonos--cart-item-name" }, h("zonos-text", { type: "label" }, ((_b = item.matchedItem) === null || _b === void 0 ? void 0 : _b.name) || item.name), h("zonos-text", { type: "caption" }, item.restriction.reason)), h("td", { class: "zonos--column zonos--cart-item-price" }, h("zonos-text", { type: "semiBoldLabel" }, formatCurrency({
|
|
54
|
+
amount: item.amount * item.quantity * rate,
|
|
55
|
+
currency: cartStore.currency,
|
|
56
|
+
})))));
|
|
57
|
+
}))))));
|
|
58
|
+
}
|
|
59
|
+
static get is() { return "zonos-cart-restricted-items"; }
|
|
60
|
+
static get encapsulation() { return "shadow"; }
|
|
61
|
+
static get originalStyleUrls() {
|
|
62
|
+
return {
|
|
63
|
+
"$": ["zonos-cart-restricted-items.scss"]
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
static get styleUrls() {
|
|
67
|
+
return {
|
|
68
|
+
"$": ["zonos-cart-restricted-items.css"]
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
static get assetsDirs() { return ["assets"]; }
|
|
72
|
+
static get properties() {
|
|
73
|
+
return {
|
|
74
|
+
"hide": {
|
|
75
|
+
"type": "boolean",
|
|
76
|
+
"mutable": false,
|
|
77
|
+
"complexType": {
|
|
78
|
+
"original": "boolean",
|
|
79
|
+
"resolved": "boolean",
|
|
80
|
+
"references": {}
|
|
81
|
+
},
|
|
82
|
+
"required": false,
|
|
83
|
+
"optional": false,
|
|
84
|
+
"docs": {
|
|
85
|
+
"tags": [],
|
|
86
|
+
"text": "This is to hide the section when the parent collapse on mobile"
|
|
87
|
+
},
|
|
88
|
+
"attribute": "hide",
|
|
89
|
+
"reflect": false,
|
|
90
|
+
"defaultValue": "false"
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
static get states() {
|
|
95
|
+
return {
|
|
96
|
+
"errorImages": {},
|
|
97
|
+
"internalCollapsed": {},
|
|
98
|
+
"firstRender": {}
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Fragment, h, Host } from "@stencil/core";
|
|
2
|
-
import { cartStore } from "../../../store/checkout/cart";
|
|
2
|
+
import { cartStore, cartStoreHasOneEligibleItem, } from "../../../store/checkout/cart";
|
|
3
3
|
import { translate } from "../../../store/translationStore";
|
|
4
4
|
import { formatCurrency } from "../../../utils/formatCurrency";
|
|
5
5
|
// These assets neet to be in relative path as https://www.npmjs.com/package/stencil-inline-svg suggested
|
|
@@ -8,6 +8,9 @@ import InfoIcon from "./assets/InfoIcon.svg";
|
|
|
8
8
|
export class ZonosCartSubtotal {
|
|
9
9
|
render() {
|
|
10
10
|
const showDutyTaxesInfo = cartStore.step === 'payment' || cartStore.step === 'shipping';
|
|
11
|
+
// Show 0 for subtotal and total when all items are restricted
|
|
12
|
+
const total = cartStoreHasOneEligibleItem() ? cartStore.total : 0;
|
|
13
|
+
const subtotal = cartStoreHasOneEligibleItem() ? cartStore.subtotal : 0;
|
|
11
14
|
const renderShippingInfo = () => {
|
|
12
15
|
if (!cartStore.selectedShippingOption) {
|
|
13
16
|
return (h(Fragment, null, h("zonos-text", { class: "zonos--title", type: "semiBoldLabel" }, translate('Shipping')), h("zonos-text", { class: "zonos--caption", type: "caption" }, translate('No shipping method selected'))));
|
|
@@ -15,7 +18,7 @@ export class ZonosCartSubtotal {
|
|
|
15
18
|
return (h(Fragment, null, h("zonos-text", { class: "zonos--title", type: "semiBoldLabel" }, cartStore.selectedShippingOption.displayName), cartStore.selectedShippingOptionTransitTime && (h("zonos-text", { class: "zonos--caption", type: "caption" }, cartStore.selectedShippingOptionTransitTime, ' ', translate('business days')))));
|
|
16
19
|
};
|
|
17
20
|
return (h(Host, { class: "zonos--cart-subtotal zonos--elements" }, h("table", { class: "zonos--cart-table" }, h("tr", { class: "zonos--row zonos--cart-subtotal" }, h("td", { class: "zonos--column" }), h("td", { class: "zonos--column zonos--cart-subtotal-title" }, h("zonos-text", { type: "semiBoldLabel" }, translate('Cart subtotal'))), h("td", { class: "zonos--column zonos--cart-subtotal-price" }, h("zonos-text", { type: "semiBoldLabel" }, formatCurrency({
|
|
18
|
-
amount:
|
|
21
|
+
amount: subtotal,
|
|
19
22
|
currency: cartStore.currency,
|
|
20
23
|
})))), h("tr", { class: "zonos--row zonos--cart-shipping" }, h("td", { class: "zonos--column" }), h("td", { class: "zonos--column zonos--cart-subtotal-title" }, renderShippingInfo()), h("td", { class: "zonos--column zonos--cart-subtotal-price" }, cartStore.shipping
|
|
21
24
|
? formatCurrency({
|
|
@@ -28,7 +31,7 @@ export class ZonosCartSubtotal {
|
|
|
28
31
|
currency: cartStore.currency,
|
|
29
32
|
})
|
|
30
33
|
: '-', cartStore.isSelectedShippingGuarantee && (h("zonos-badge", null, translate('Guaranteed'))))))), h("tr", { class: "zonos--row zonos--cart-pay-total" }, h("td", { class: "zonos--column" }), h("td", { class: "zonos--column" }, h("zonos-text", { class: "zonos--title", type: "semiBoldLabel" }, translate('Order total'))), h("td", { class: "zonos--column" }, h("zonos-text", { type: "semiBoldLabel" }, formatCurrency({
|
|
31
|
-
amount:
|
|
34
|
+
amount: total,
|
|
32
35
|
currency: cartStore.currency,
|
|
33
36
|
})))))));
|
|
34
37
|
}
|
|
@@ -480,7 +480,7 @@ export class ZonosCheckout {
|
|
|
480
480
|
} }), h("zonos-collapse", {
|
|
481
481
|
// only collapsible on mobile
|
|
482
482
|
collapsed: this.collapseReviewMobile && this.isMobile
|
|
483
|
-
}, h("zonos-cart-items", null), this.isMobile && (h("zonos-v-stack", { spacing: 16 }, h("zonos-cart-subtotal", null), h("zonos-custom-message", { class: "zonos--checkout-default-message", icon: MessageIcon, message: defaultMessage }))))), !this.isMobile && (h("zonos-v-stack", { spacing: 16 }, h("zonos-cart-subtotal", null), h("zonos-custom-message", { class: "zonos--checkout-default-message", icon: MessageIcon, message: defaultMessage }))))))), (cartStore.step === 'finish' || cartStore.step === 'error') && (h("div", { class: "zonos--done", "data-theme": rightSideTheme }, h("div", { class: "zonos--header" }, renderLogo(), h("zonos-button", { class: "zonos--close-button", icon: h("zonos-icon", { "aria-label": "Close checkout dialog", content: RemoveIcon }), noBackground: true, onClick: () => this.handleFinishClick(), theme: rightSideTheme })), h("zonos-checkout-finish", { borderRadius: style, onCloseClick: () => this.handleFinishClick(), overrideNotification: cartStore.step === 'error' && !!cartStore.error
|
|
483
|
+
}, h("zonos-cart-items", null), this.isMobile && (h("zonos-v-stack", { spacing: 16 }, h("zonos-cart-subtotal", null), h("zonos-custom-message", { class: "zonos--checkout-default-message", icon: MessageIcon, message: defaultMessage }))))), h("zonos-cart-restricted-items", null), !this.isMobile && (h("zonos-v-stack", { spacing: 16 }, h("zonos-cart-subtotal", null), h("zonos-custom-message", { class: "zonos--checkout-default-message", icon: MessageIcon, message: defaultMessage }))))))), (cartStore.step === 'finish' || cartStore.step === 'error') && (h("div", { class: "zonos--done", "data-theme": rightSideTheme }, h("div", { class: "zonos--header" }, renderLogo(), h("zonos-button", { class: "zonos--close-button", icon: h("zonos-icon", { "aria-label": "Close checkout dialog", content: RemoveIcon }), noBackground: true, onClick: () => this.handleFinishClick(), theme: rightSideTheme })), h("zonos-checkout-finish", { borderRadius: style, onCloseClick: () => this.handleFinishClick(), overrideNotification: cartStore.step === 'error' && !!cartStore.error
|
|
484
484
|
? Object.assign(Object.assign({}, cartStore.error), { type: 'error' }) : undefined, storybookForceStatus: this.storybookPaymentStatusOverride }))), h("zonos-checkout-footer", { "data-theme": rightSideTheme, mobile: this.isMobile,
|
|
485
485
|
/**
|
|
486
486
|
* For this component, use slot instead of passing JSX through prop of other component. Because
|
|
@@ -115,6 +115,8 @@ export class ZonosCustomerInfo {
|
|
|
115
115
|
this.isMobile = false;
|
|
116
116
|
this.defaultAddress = null;
|
|
117
117
|
this.showErrorBanner = false;
|
|
118
|
+
this.shippingCountry = '';
|
|
119
|
+
this.isCheckingForRestrictedItems = false;
|
|
118
120
|
this.isValidatingAddress = false;
|
|
119
121
|
this.invalidShippingCharacterList = null;
|
|
120
122
|
this.invalidBillingCharacterList = null;
|
|
@@ -146,10 +148,22 @@ export class ZonosCustomerInfo {
|
|
|
146
148
|
return invalidList;
|
|
147
149
|
}
|
|
148
150
|
render() {
|
|
149
|
-
var _a;
|
|
151
|
+
var _a, _b;
|
|
150
152
|
if (!stripeStore.stripeElements) {
|
|
151
153
|
return null;
|
|
152
154
|
}
|
|
155
|
+
// init the shipping country when shipping address is available
|
|
156
|
+
if (!this.shippingCountry && stripeStore.stripeAddressEventData) {
|
|
157
|
+
this.shippingCountry =
|
|
158
|
+
(_a = stripeStore.stripeAddressEventData) === null || _a === void 0 ? void 0 : _a.value.address.country;
|
|
159
|
+
}
|
|
160
|
+
if (stripeStore.stripeAddressEventData &&
|
|
161
|
+
this.shippingCountry !==
|
|
162
|
+
stripeStore.stripeAddressEventData.value.address.country) {
|
|
163
|
+
// reset the shipping country if it's different from the current shipping address
|
|
164
|
+
this.shippingCountry =
|
|
165
|
+
stripeStore.stripeAddressEventData.value.address.country;
|
|
166
|
+
}
|
|
153
167
|
const showBilling = !stripeStore.stripeShippingSameAsBilling;
|
|
154
168
|
// Get theme for the update dialog, inherit from the theme, no from this component theme
|
|
155
169
|
const theme = getZonosStoreTheme(zonosStore.appearance.theme);
|
|
@@ -157,7 +171,7 @@ export class ZonosCustomerInfo {
|
|
|
157
171
|
if (this.showErrorBanner) {
|
|
158
172
|
this.showErrorBanner = !this.handleValidate();
|
|
159
173
|
}
|
|
160
|
-
return (h(Host, { class: "zonos--customer-info zonos--elements" }, h("div", { class: "zonos--group" }, h("zonos-text", { class: "zonos--title", type: "semiBoldSubheader" }, translate('Customer information')), this.showErrorBanner && (h("zonos-banner", { class: "zonos--error-banner", intent: "error" }, translate('Missing required fields. Make sure all fields are completed.'))), h("zonos-link-authentication", { defaultEmail: (
|
|
174
|
+
return (h(Host, { class: "zonos--customer-info zonos--elements" }, h("div", { class: "zonos--group" }, h("zonos-text", { class: "zonos--title", type: "semiBoldSubheader" }, translate('Customer information')), this.showErrorBanner && (h("zonos-banner", { class: "zonos--error-banner", intent: "error" }, translate('Missing required fields. Make sure all fields are completed.'))), h("zonos-link-authentication", { defaultEmail: (_b = this.defaultAddress) === null || _b === void 0 ? void 0 : _b.email, titleText: translate('Contact') }), h("zonos-address", { defaultAddress: this.defaultAddress, titleText: translate('Address'), type: "shipping" }), h("zonos-checkbox", { class: "zonos--shipping-same-as-billing-cbx", isChecked: stripeStore.stripeShippingSameAsBilling, label: translate('Shipping address same as billing'), onCheckboxSelected: e => {
|
|
161
175
|
stripeStore.stripeShippingSameAsBilling = e.detail;
|
|
162
176
|
} }), h("zonos-collapse", { collapsed: !showBilling }, h("zonos-address", { defaultAddress: this.defaultAddress, titleText: translate('Billing address'), type: "billing" })), h("div", { class: "zonos--group-btn" }, h("zonos-button", { backgroundColor: this.submitBtnColor, loading: this.continueLoading, onClick: () => this.continueClickHandler(), size: "lg",
|
|
163
177
|
// use primary type when on mobile mode
|
|
@@ -288,6 +302,8 @@ export class ZonosCustomerInfo {
|
|
|
288
302
|
static get states() {
|
|
289
303
|
return {
|
|
290
304
|
"showErrorBanner": {},
|
|
305
|
+
"shippingCountry": {},
|
|
306
|
+
"isCheckingForRestrictedItems": {},
|
|
291
307
|
"isValidatingAddress": {},
|
|
292
308
|
"invalidShippingCharacterList": {},
|
|
293
309
|
"invalidBillingCharacterList": {},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
|
-
import { cartStore } from "../../../store/checkout/cart";
|
|
2
|
+
import { cartStore, cartStoreHasOneEligibleItem, } from "../../../store/checkout/cart";
|
|
3
3
|
import { translate } from "../../../store/translationStore";
|
|
4
4
|
import { zonosStore } from "../../../store/zonosStore";
|
|
5
5
|
import { isCheckoutMobile } from "../../../utils/checkout/isCheckoutMobile";
|
|
@@ -23,6 +23,7 @@ export class ZonosReview {
|
|
|
23
23
|
this.isMobile = isCheckoutMobile(this.mobile);
|
|
24
24
|
}
|
|
25
25
|
render() {
|
|
26
|
+
const total = cartStoreHasOneEligibleItem() ? cartStore.total : 0;
|
|
26
27
|
const titleTextType = this.isMobile ? 'boldSubheader' : 'semiBoldLabel';
|
|
27
28
|
const totalTextType = this.isMobile
|
|
28
29
|
? 'boldSubheader'
|
|
@@ -42,7 +43,7 @@ export class ZonosReview {
|
|
|
42
43
|
'zonos--review zonos--elements',
|
|
43
44
|
this.isMobile && 'mobile',
|
|
44
45
|
]) }, h("div", { class: "zonos--title" }, h("zonos-text", { textColor: titleTextColor, type: titleTextType }, translate('Pay'), " ", zonosStore.organizationName), renderCollapseIcon()), h("div", { class: "zonos--total-pay" }, h("zonos-text", { type: totalTextType }, formatCurrency({
|
|
45
|
-
amount:
|
|
46
|
+
amount: total,
|
|
46
47
|
currency: cartStore.currency,
|
|
47
48
|
})))));
|
|
48
49
|
}
|
|
@@ -17,6 +17,7 @@ const { onChange, reset, state: cartStore, } = createStore(() => ({
|
|
|
17
17
|
isSelectedShippingGuarantee: false,
|
|
18
18
|
items: [],
|
|
19
19
|
landedCostData: null,
|
|
20
|
+
restrictedItems: [],
|
|
20
21
|
selectedLandedCost: null,
|
|
21
22
|
selectedShippingOption: null,
|
|
22
23
|
selectedShippingOptionExpectedDate: '',
|
|
@@ -73,6 +74,39 @@ const cartStoreGetShippingTransitInfo = (item) => {
|
|
|
73
74
|
minTransit,
|
|
74
75
|
};
|
|
75
76
|
};
|
|
77
|
+
const getMatchItem = ({ item1, item2, }) => {
|
|
78
|
+
if (!item1 || !item2) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
return ((item2.sku && item1.sku && item1.sku === item2.sku) ||
|
|
82
|
+
(item2.description &&
|
|
83
|
+
item1.description &&
|
|
84
|
+
item1.description === item2.description) ||
|
|
85
|
+
(item1.name && item2.name && item1.name === item2.name));
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Check and set restricted items in cart
|
|
89
|
+
*/
|
|
90
|
+
const cartStoreCheckItemRestrictions = (itemsWorkflow) => {
|
|
91
|
+
log('Checking item restrictions');
|
|
92
|
+
const mappedRestrictedItems = itemsWorkflow
|
|
93
|
+
.map(item => {
|
|
94
|
+
if (!item.restriction) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
const { restriction } = item;
|
|
98
|
+
const matchedItem = cartStore.items.find(x => getMatchItem({ item1: x, item2: item }));
|
|
99
|
+
return Object.assign(Object.assign({ matchedItem }, item), { restriction });
|
|
100
|
+
})
|
|
101
|
+
.filter(Boolean);
|
|
102
|
+
cartStore.restrictedItems = mappedRestrictedItems;
|
|
103
|
+
// remove items that are restricted from cart
|
|
104
|
+
cartStore.items = cartStore.items.map(item => (Object.assign(Object.assign({}, item), { isRestricted: !!mappedRestrictedItems.find(x => getMatchItem({ item1: x, item2: item })) })));
|
|
105
|
+
return {
|
|
106
|
+
cartItems: cartStore.items,
|
|
107
|
+
restrictedItems: mappedRestrictedItems,
|
|
108
|
+
};
|
|
109
|
+
};
|
|
76
110
|
const cartStoreReset = () => {
|
|
77
111
|
sessionStorage.removeItem('zonos--checkout-session-id');
|
|
78
112
|
// reset cart store
|
|
@@ -95,6 +129,16 @@ const cartStoreApplySubtotals = (subtotals) => {
|
|
|
95
129
|
cartStore.total = subtotals.total;
|
|
96
130
|
cartStore.currency = subtotals.presentmentCurrencyCode;
|
|
97
131
|
};
|
|
132
|
+
/**
|
|
133
|
+
* Detect if there are any items in cart that are not restricted and have positive amount, exclude negative amount items
|
|
134
|
+
*/
|
|
135
|
+
const cartStoreHasOneEligibleItem = () => {
|
|
136
|
+
// filter all items with positive amount
|
|
137
|
+
const checkItems = cartStore.items.filter(item => item.amount > 0);
|
|
138
|
+
// only check restricted status for items with positive amount
|
|
139
|
+
// if there is no item restricted found => all items are restricted
|
|
140
|
+
return !!checkItems.find(item => !item.isRestricted);
|
|
141
|
+
};
|
|
98
142
|
const cartStoreReCalculateTotal = async ({ currency, itemsAmount, landedCostId, }) => {
|
|
99
143
|
if (landedCostId && cartStore.selectedLandedCost) {
|
|
100
144
|
// update cart total right away if we have landed cost id to avoid order total flickering
|
|
@@ -175,11 +219,17 @@ onChange('checkoutSessionId', () => {
|
|
|
175
219
|
}
|
|
176
220
|
sessionStorage.setItem('zonos--checkout-session-id', cartStore.checkoutSessionId);
|
|
177
221
|
});
|
|
178
|
-
const
|
|
222
|
+
const getCartItemToUse = (items) => items.map(item => (Object.assign(Object.assign({}, item), { isRestricted: false })));
|
|
223
|
+
const cartStoreResetCartItems = () => {
|
|
224
|
+
// mark all items as not restricted
|
|
225
|
+
cartStore.items = cartStore.items.map(item => (Object.assign(Object.assign({}, item), { isRestricted: false })));
|
|
226
|
+
cartStore.restrictedItems = [];
|
|
227
|
+
};
|
|
228
|
+
const cartStoreUpdateItems = async (cartItems) => {
|
|
179
229
|
var _a;
|
|
180
|
-
cartStore.items =
|
|
181
|
-
const currency = (_a =
|
|
182
|
-
const total =
|
|
230
|
+
cartStore.items = getCartItemToUse(cartItems);
|
|
231
|
+
const currency = (_a = cartItems.find(Boolean)) === null || _a === void 0 ? void 0 : _a.currencyCode;
|
|
232
|
+
const total = cartItems.reduce((amt, item) => {
|
|
183
233
|
return amt + item.amount * item.quantity;
|
|
184
234
|
}, 0);
|
|
185
235
|
if (!currency || !total) {
|
|
@@ -226,4 +276,4 @@ const cartStoreResetTabItems = () => {
|
|
|
226
276
|
cartStore.tabItems = Object.assign(Object.assign({}, cartStore.tabItems), { 'customer-info': Object.assign(Object.assign({}, cartStore.tabItems['customer-info']), { isDone: false }), payment: Object.assign(Object.assign({}, cartStore.tabItems.payment), { isDone: false }), shipping: Object.assign(Object.assign({}, cartStore.tabItems.shipping), { isDone: false }) });
|
|
227
277
|
cartStoreResetSelectedShippingOption();
|
|
228
278
|
};
|
|
229
|
-
export { cartStore, cartStoreApplySubtotals, cartStoreGetShippingTransitInfo, cartStoreNextStep, cartStoreReCalculateTotal, cartStoreReset, cartStoreResetTabItems, cartStoreUpdateItems, cartStoreUpdateSelectedShippingOption, cartStoreUpdateToErrorState, };
|
|
279
|
+
export { cartStore, cartStoreApplySubtotals, cartStoreCheckItemRestrictions, cartStoreGetShippingTransitInfo, cartStoreHasOneEligibleItem, cartStoreNextStep, cartStoreReCalculateTotal, cartStoreReset, cartStoreResetCartItems, cartStoreResetTabItems, cartStoreUpdateItems, cartStoreUpdateSelectedShippingOption, cartStoreUpdateToErrorState, };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createStore } from "@stencil/store";
|
|
2
|
-
import { cartStore, cartStoreApplySubtotals, } from "./cart";
|
|
2
|
+
import { cartStore, cartStoreApplySubtotals, cartStoreCheckItemRestrictions, cartStoreResetCartItems, } from "./cart";
|
|
3
3
|
import { localizationStore } from "../hello/localization";
|
|
4
4
|
import { translate } from "../translationStore";
|
|
5
5
|
import { zonosStore } from "../zonosStore";
|
|
@@ -193,7 +193,9 @@ const stripeStorePrefetchLandedCost = async () => {
|
|
|
193
193
|
try {
|
|
194
194
|
const abortController = new AbortController();
|
|
195
195
|
stripeStore.fetchingLandedCostAbordController = abortController;
|
|
196
|
-
|
|
196
|
+
// Reset cart items to non-restricted state and restricted item list
|
|
197
|
+
cartStoreResetCartItems();
|
|
198
|
+
const { checkoutSessionWorkflow, itemCreateWorkflow, landedCostCalculateWorkflow, shipmentRatingCalculateWorkflow, } = await calculateLandedCost(abortController);
|
|
197
199
|
// reset abort controller after we are done
|
|
198
200
|
stripeStore.fetchingLandedCostAbordController = null;
|
|
199
201
|
// update cart store with landed cost info
|
|
@@ -212,6 +214,8 @@ const stripeStorePrefetchLandedCost = async () => {
|
|
|
212
214
|
const subtotals = !!firstLandedCostData
|
|
213
215
|
? firstLandedCostData.subtotals
|
|
214
216
|
: null;
|
|
217
|
+
// check and update cart items with restrictions
|
|
218
|
+
cartStoreCheckItemRestrictions(itemCreateWorkflow);
|
|
215
219
|
if (subtotals) {
|
|
216
220
|
// prefetch landed cost will not update shipping and taxes since we haven't selected shipping method yet
|
|
217
221
|
cartStoreApplySubtotals({
|
|
@@ -134,7 +134,7 @@ const initLocalizationStore = async () => {
|
|
|
134
134
|
const overrideLocale = getOverrideLocale();
|
|
135
135
|
localizationStore.selectedLocale = overrideLocale || locale || 'en';
|
|
136
136
|
translationStoreUpdateLanguage(localizationStore.selectedLocale);
|
|
137
|
-
const devSites = ['dev.elements', 'dev.dashboard'];
|
|
137
|
+
const devSites = ['dev.storybook.elements', 'dev.elements', 'dev.dashboard'];
|
|
138
138
|
// If the country code is not set, set it to the US for development (vercel can't get geo country in dev)
|
|
139
139
|
if (!localizationStore.selectedCountryCode &&
|
|
140
140
|
devSites.some(site => window.location.origin.includes(site))) {
|
|
@@ -86,6 +86,9 @@ export const stringsArabic = {
|
|
|
86
86
|
Guaranteed: {
|
|
87
87
|
value: 'مضمون',
|
|
88
88
|
},
|
|
89
|
+
Hide: {
|
|
90
|
+
value: 'اخفِ',
|
|
91
|
+
},
|
|
89
92
|
'Keep shopping': {
|
|
90
93
|
value: 'متابعة التسوق',
|
|
91
94
|
},
|
|
@@ -182,6 +185,9 @@ export const stringsArabic = {
|
|
|
182
185
|
'Shipping method': {
|
|
183
186
|
value: 'طريقة الشحن',
|
|
184
187
|
},
|
|
188
|
+
Show: {
|
|
189
|
+
value: 'عرض',
|
|
190
|
+
},
|
|
185
191
|
'Something went wrong.': {
|
|
186
192
|
value: 'حدث خطأ ما.',
|
|
187
193
|
},
|
|
@@ -197,6 +203,9 @@ export const stringsArabic = {
|
|
|
197
203
|
'Taxes will apply to all orders': {
|
|
198
204
|
value: 'ستنطبق الضرائب على جميع الطلبات',
|
|
199
205
|
},
|
|
206
|
+
'The following items are unable to be shipped to your country and are not included in your cart total.': {
|
|
207
|
+
value: 'العناصر التالية لا يمكن شحنها إلى بلدك ولا تُضاف إلى إجمالي سلة مشترياتك.',
|
|
208
|
+
},
|
|
200
209
|
"There's been an error creating your checkout session. Please reload and try again or contact support if the error persists": {
|
|
201
210
|
value: 'حدث خطأ في إنشاء جلسة الخروج الخاصة بك. يرجى إعادة التحميل والمحاولة مرة أخرى أو الاتصال بالدعم إذا استمر الخطأ',
|
|
202
211
|
},
|
|
@@ -245,6 +254,9 @@ export const stringsArabic = {
|
|
|
245
254
|
'duty free': {
|
|
246
255
|
value: 'معفى من الرسوم',
|
|
247
256
|
},
|
|
257
|
+
'restricted items': {
|
|
258
|
+
value: 'عناصر مقيدة',
|
|
259
|
+
},
|
|
248
260
|
'tax free': {
|
|
249
261
|
value: 'معفى من الضرائب',
|
|
250
262
|
},
|
|
@@ -86,6 +86,9 @@ export const stringsBase = {
|
|
|
86
86
|
Guaranteed: {
|
|
87
87
|
value: 'Guaranteed',
|
|
88
88
|
},
|
|
89
|
+
Hide: {
|
|
90
|
+
value: 'Hide',
|
|
91
|
+
},
|
|
89
92
|
'Keep shopping': {
|
|
90
93
|
value: 'Keep shopping',
|
|
91
94
|
},
|
|
@@ -182,6 +185,9 @@ export const stringsBase = {
|
|
|
182
185
|
'Shipping method': {
|
|
183
186
|
value: 'Shipping method',
|
|
184
187
|
},
|
|
188
|
+
Show: {
|
|
189
|
+
value: 'Show',
|
|
190
|
+
},
|
|
185
191
|
'Something went wrong.': {
|
|
186
192
|
value: 'Something went wrong.',
|
|
187
193
|
},
|
|
@@ -197,6 +203,9 @@ export const stringsBase = {
|
|
|
197
203
|
'Taxes will apply to all orders': {
|
|
198
204
|
value: 'Taxes will apply to all orders',
|
|
199
205
|
},
|
|
206
|
+
'The following items are unable to be shipped to your country and are not included in your cart total.': {
|
|
207
|
+
value: 'The following items are unable to be shipped to your country and are not included in your cart total.',
|
|
208
|
+
},
|
|
200
209
|
"There's been an error creating your checkout session. Please reload and try again or contact support if the error persists": {
|
|
201
210
|
value: "There's been an error creating your checkout session. Please reload and try again or contact support if the error persists",
|
|
202
211
|
},
|
|
@@ -245,6 +254,9 @@ export const stringsBase = {
|
|
|
245
254
|
'duty free': {
|
|
246
255
|
value: 'duty free',
|
|
247
256
|
},
|
|
257
|
+
'restricted items': {
|
|
258
|
+
value: 'restricted items',
|
|
259
|
+
},
|
|
248
260
|
'tax free': {
|
|
249
261
|
value: 'tax free',
|
|
250
262
|
},
|
|
@@ -86,6 +86,9 @@ export const stringsChinese = {
|
|
|
86
86
|
Guaranteed: {
|
|
87
87
|
value: '保证',
|
|
88
88
|
},
|
|
89
|
+
Hide: {
|
|
90
|
+
value: '隐藏',
|
|
91
|
+
},
|
|
89
92
|
'Keep shopping': {
|
|
90
93
|
value: '继续购物',
|
|
91
94
|
},
|
|
@@ -182,6 +185,9 @@ export const stringsChinese = {
|
|
|
182
185
|
'Shipping method': {
|
|
183
186
|
value: '运输方式',
|
|
184
187
|
},
|
|
188
|
+
Show: {
|
|
189
|
+
value: '显示',
|
|
190
|
+
},
|
|
185
191
|
'Something went wrong.': {
|
|
186
192
|
value: '出了些问题。',
|
|
187
193
|
},
|
|
@@ -197,6 +203,9 @@ export const stringsChinese = {
|
|
|
197
203
|
'Taxes will apply to all orders': {
|
|
198
204
|
value: '税款将适用于所有订单',
|
|
199
205
|
},
|
|
206
|
+
'The following items are unable to be shipped to your country and are not included in your cart total.': {
|
|
207
|
+
value: '以下商品无法运送至您的国家,并且不包括在您购物车的总额中。',
|
|
208
|
+
},
|
|
200
209
|
"There's been an error creating your checkout session. Please reload and try again or contact support if the error persists": {
|
|
201
210
|
value: '创建您的结账会话时出现错误。如果错误仍然存在,请重新加载页面并重试,或联系支持',
|
|
202
211
|
},
|
|
@@ -245,6 +254,9 @@ export const stringsChinese = {
|
|
|
245
254
|
'duty free': {
|
|
246
255
|
value: '免征关税',
|
|
247
256
|
},
|
|
257
|
+
'restricted items': {
|
|
258
|
+
value: '限制物品',
|
|
259
|
+
},
|
|
248
260
|
'tax free': {
|
|
249
261
|
value: '免税',
|
|
250
262
|
},
|
|
@@ -86,6 +86,9 @@ export const stringsDanish = {
|
|
|
86
86
|
Guaranteed: {
|
|
87
87
|
value: 'Garanteret',
|
|
88
88
|
},
|
|
89
|
+
Hide: {
|
|
90
|
+
value: 'Skjul',
|
|
91
|
+
},
|
|
89
92
|
'Keep shopping': {
|
|
90
93
|
value: 'Fortsæt med at handle',
|
|
91
94
|
},
|
|
@@ -182,6 +185,9 @@ export const stringsDanish = {
|
|
|
182
185
|
'Shipping method': {
|
|
183
186
|
value: 'Leveringsmetode',
|
|
184
187
|
},
|
|
188
|
+
Show: {
|
|
189
|
+
value: 'Vis',
|
|
190
|
+
},
|
|
185
191
|
'Something went wrong.': {
|
|
186
192
|
value: 'Noget gik galt.',
|
|
187
193
|
},
|
|
@@ -197,6 +203,9 @@ export const stringsDanish = {
|
|
|
197
203
|
'Taxes will apply to all orders': {
|
|
198
204
|
value: 'Skatter vil gælde for alle ordrer',
|
|
199
205
|
},
|
|
206
|
+
'The following items are unable to be shipped to your country and are not included in your cart total.': {
|
|
207
|
+
value: 'De følgende varer kan ikke sendes til dit land og er ikke inkluderet i din kurvs total.',
|
|
208
|
+
},
|
|
200
209
|
"There's been an error creating your checkout session. Please reload and try again or contact support if the error persists": {
|
|
201
210
|
value: 'Der opstod en fejl under oprettelsen af din betalingssession. Genindlæs venligst og prøv igen eller kontakt support, hvis fejlen fortsætter',
|
|
202
211
|
},
|
|
@@ -245,6 +254,9 @@ export const stringsDanish = {
|
|
|
245
254
|
'duty free': {
|
|
246
255
|
value: 'toldfrit',
|
|
247
256
|
},
|
|
257
|
+
'restricted items': {
|
|
258
|
+
value: 'begrænsede genstande',
|
|
259
|
+
},
|
|
248
260
|
'tax free': {
|
|
249
261
|
value: 'skattefrit',
|
|
250
262
|
},
|