@zonos/elements 1.3.270 → 1.3.272
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-3ff48a0e.js → cart-f1374a56.js} +1 -1
- package/dist/cjs/{hasInclusivePrice-aec06153.js → hasInclusivePrice-2f1232e3.js} +1 -1
- package/dist/cjs/index.cjs.js +7 -7
- package/dist/cjs/{invoice-ff716652.js → invoice-3760bec0.js} +2 -2
- package/dist/cjs/{isCollectMobileTablet-3ac53cab.js → isCollectMobileTablet-d5c1a9ea.js} +2 -2
- package/dist/cjs/{localization-5c1c9c6a.js → localization-503c8477.js} +125 -1
- package/dist/cjs/{paypal-c55b6c45.js → paypal-5e9b8224.js} +2 -2
- package/dist/cjs/{placeTestOrder-230f534b.js → placeTestOrder-d1be2c8e.js} +2 -2
- package/dist/cjs/{renderCheckoutCurrency-e9d8efa8.js → renderCheckoutCurrency-4486b06e.js} +2 -2
- package/dist/cjs/zonos-address-display_8.cjs.entry.js +2 -2
- package/dist/cjs/zonos-address_4.cjs.entry.js +2 -2
- package/dist/cjs/zonos-card_5.cjs.entry.js +3 -3
- package/dist/cjs/zonos-cart-items_12.cjs.entry.js +117 -7
- package/dist/cjs/zonos-checkout.cjs.entry.js +3 -3
- package/dist/cjs/zonos-collect-cart-items_3.cjs.entry.js +2 -2
- package/dist/cjs/zonos-collect-finish_6.cjs.entry.js +6 -6
- package/dist/cjs/zonos-collect.cjs.entry.js +4 -4
- package/dist/cjs/zonos-controller.cjs.entry.js +2 -2
- package/dist/cjs/zonos-country-flag.cjs.entry.js +1 -1
- package/dist/cjs/zonos-country-select_4.cjs.entry.js +1 -1
- package/dist/cjs/zonos-hello-dialog.cjs.entry.js +2 -2
- package/dist/cjs/zonos-hello.cjs.entry.js +1 -1
- package/dist/cjs/zonos-invoice-cart-items_2.cjs.entry.js +4 -4
- package/dist/cjs/zonos-invoice-finish_5.cjs.entry.js +6 -6
- package/dist/cjs/zonos-invoice.cjs.entry.js +4 -4
- package/dist/cjs/zonos-language-select_2.cjs.entry.js +1 -1
- package/dist/cjs/zonos-policy-consent_2.cjs.entry.js +3 -3
- package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.js +4 -1
- package/dist/collection/components/common/zonos-stripe-phone-input/zonos-stripe-phone-input.js +1 -1
- package/dist/collection/components/main/zonos-controller.js +1 -1
- package/dist/collection/components/store/checkout/euWithdrawalRate.js +40 -0
- package/dist/collection/components/store/hello/localization.js +3 -1
- package/dist/collection/components/store/translationStore/strings.arabic.js +6 -0
- package/dist/collection/components/store/translationStore/strings.base.js +6 -0
- package/dist/collection/components/store/translationStore/strings.chinese.js +6 -0
- package/dist/collection/components/store/translationStore/strings.danish.js +6 -0
- package/dist/collection/components/store/translationStore/strings.dutch.js +6 -0
- package/dist/collection/components/store/translationStore/strings.french.js +6 -0
- package/dist/collection/components/store/translationStore/strings.german.js +6 -0
- package/dist/collection/components/store/translationStore/strings.hebrew.js +6 -0
- package/dist/collection/components/store/translationStore/strings.indonesian.js +6 -0
- package/dist/collection/components/store/translationStore/strings.italian.js +6 -0
- package/dist/collection/components/store/translationStore/strings.japanese.js +6 -0
- package/dist/collection/components/store/translationStore/strings.korean.js +6 -0
- package/dist/collection/components/store/translationStore/strings.norwegian.js +6 -0
- package/dist/collection/components/store/translationStore/strings.polish.js +6 -0
- package/dist/collection/components/store/translationStore/strings.portuguese.js +6 -0
- package/dist/collection/components/store/translationStore/strings.russian.js +6 -0
- package/dist/collection/components/store/translationStore/strings.spanish.js +6 -0
- package/dist/collection/components/store/translationStore/strings.swedish.js +6 -0
- package/dist/collection/components/store/translationStore/strings.turkish.js +6 -0
- package/dist/collection/components/store/translationStore/strings.vietnamese.js +6 -0
- package/dist/collection/components/utils/checkout/euWithdrawalNotice.js +74 -0
- package/dist/collection/types/generated/graphql.internal.types.js +315 -182
- package/dist/esm/{cart-44fa77ef.js → cart-1415dcf0.js} +1 -1
- package/dist/esm/{hasInclusivePrice-f0440925.js → hasInclusivePrice-a3b0f71c.js} +1 -1
- package/dist/esm/index.js +7 -7
- package/dist/esm/{invoice-89e71796.js → invoice-117efa2c.js} +2 -2
- package/dist/esm/{isCollectMobileTablet-323d2ba1.js → isCollectMobileTablet-2c62fdaa.js} +2 -2
- package/dist/esm/{localization-066586b6.js → localization-29723d89.js} +124 -2
- package/dist/esm/{paypal-8725008c.js → paypal-cb5559d4.js} +2 -2
- package/dist/esm/{placeTestOrder-38be871e.js → placeTestOrder-443376eb.js} +2 -2
- package/dist/esm/{renderCheckoutCurrency-802f4481.js → renderCheckoutCurrency-8390b5bf.js} +2 -2
- package/dist/esm/zonos-address-display_8.entry.js +2 -2
- package/dist/esm/zonos-address_4.entry.js +2 -2
- package/dist/esm/zonos-card_5.entry.js +3 -3
- package/dist/esm/zonos-cart-items_12.entry.js +118 -8
- package/dist/esm/zonos-checkout.entry.js +3 -3
- package/dist/esm/zonos-collect-cart-items_3.entry.js +2 -2
- package/dist/esm/zonos-collect-finish_6.entry.js +6 -6
- package/dist/esm/zonos-collect.entry.js +4 -4
- package/dist/esm/zonos-controller.entry.js +2 -2
- package/dist/esm/zonos-country-flag.entry.js +1 -1
- package/dist/esm/zonos-country-select_4.entry.js +1 -1
- package/dist/esm/zonos-hello-dialog.entry.js +2 -2
- package/dist/esm/zonos-hello.entry.js +1 -1
- package/dist/esm/zonos-invoice-cart-items_2.entry.js +4 -4
- package/dist/esm/zonos-invoice-finish_5.entry.js +6 -6
- package/dist/esm/zonos-invoice.entry.js +4 -4
- package/dist/esm/zonos-language-select_2.entry.js +1 -1
- package/dist/esm/zonos-policy-consent_2.entry.js +3 -3
- package/dist/esm-es5/{cart-44fa77ef.js → cart-1415dcf0.js} +1 -1
- package/dist/esm-es5/{hasInclusivePrice-f0440925.js → hasInclusivePrice-a3b0f71c.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/{invoice-89e71796.js → invoice-117efa2c.js} +1 -1
- package/dist/esm-es5/{isCollectMobileTablet-323d2ba1.js → isCollectMobileTablet-2c62fdaa.js} +1 -1
- package/dist/esm-es5/localization-29723d89.js +1 -0
- package/dist/esm-es5/{paypal-8725008c.js → paypal-cb5559d4.js} +1 -1
- package/dist/esm-es5/{placeTestOrder-38be871e.js → placeTestOrder-443376eb.js} +1 -1
- package/dist/esm-es5/{renderCheckoutCurrency-802f4481.js → renderCheckoutCurrency-8390b5bf.js} +1 -1
- package/dist/esm-es5/zonos-address-display_8.entry.js +1 -1
- package/dist/esm-es5/zonos-address_4.entry.js +1 -1
- package/dist/esm-es5/zonos-card_5.entry.js +1 -1
- package/dist/esm-es5/zonos-cart-items_12.entry.js +1 -1
- package/dist/esm-es5/zonos-checkout.entry.js +1 -1
- package/dist/esm-es5/zonos-collect-cart-items_3.entry.js +1 -1
- package/dist/esm-es5/zonos-collect-finish_6.entry.js +1 -1
- package/dist/esm-es5/zonos-collect.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_4.entry.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-invoice-cart-items_2.entry.js +1 -1
- package/dist/esm-es5/zonos-invoice-finish_5.entry.js +1 -1
- package/dist/esm-es5/zonos-invoice.entry.js +1 -1
- package/dist/esm-es5/zonos-language-select_2.entry.js +1 -1
- package/dist/esm-es5/zonos-policy-consent_2.entry.js +1 -1
- package/dist/scripts/index.d.ts +38 -3
- package/dist/scripts/index.js +1 -1
- package/dist/scripts/loadZonos.js +1 -1
- package/dist/scripts/zonos.js +1 -1
- package/dist/types/components/store/checkout/euWithdrawalRate.d.ts +19 -0
- package/dist/types/components/store/translationStore/strings.arabic.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.base.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.chinese.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.danish.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.dutch.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.french.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.german.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.hebrew.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.indonesian.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.italian.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.japanese.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.korean.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.norwegian.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.polish.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.portuguese.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.russian.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.spanish.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.swedish.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.turkish.d.ts +6 -0
- package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +6 -0
- package/dist/types/components/utils/checkout/euWithdrawalNotice.d.ts +9 -0
- package/dist/types/scripts/cart/_setupCartDataWithSettings.d.ts +8 -3
- package/dist/types/types/checkout/CheckoutConfig.d.ts +10 -0
- package/dist/types/types/generated/graphql.internal.types.d.ts +396 -218
- package/dist/types/types/generated/graphql.internal.types.ts +508 -258
- package/dist/types/types/utils/ZonosSettings.d.ts +9 -0
- package/dist/zonos-elements/index.esm.js +1 -1
- package/dist/zonos-elements/p-0fa932e6.system.js +1 -0
- package/dist/zonos-elements/{p-225f19b6.entry.js → p-15c2dfea.entry.js} +1 -1
- package/dist/zonos-elements/{p-31a3b070.system.js → p-17c7a727.system.js} +1 -1
- package/dist/zonos-elements/{p-fb83134b.system.entry.js → p-18c9565b.system.entry.js} +1 -1
- package/dist/zonos-elements/p-24aa6708.js +1 -0
- package/dist/zonos-elements/{p-0e9c0eff.entry.js → p-2585034d.entry.js} +1 -1
- package/dist/zonos-elements/p-29b60bf3.system.js +1 -1
- package/dist/zonos-elements/p-2cda42d5.system.js +1 -0
- package/dist/zonos-elements/{p-eb96d62f.entry.js → p-2d1055d5.entry.js} +1 -1
- package/dist/zonos-elements/{p-801dd8d8.system.js → p-318e704a.system.js} +1 -1
- package/dist/zonos-elements/{p-b1125711.system.js → p-3b600b89.system.js} +1 -1
- package/dist/zonos-elements/{p-d29dbeb3.entry.js → p-3efe0875.entry.js} +1 -1
- package/dist/zonos-elements/{p-5df77315.system.entry.js → p-48f3e2d2.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-6704b83e.entry.js → p-4c94cfd3.entry.js} +1 -1
- package/dist/zonos-elements/{p-9e414000.js → p-53b65b80.js} +1 -1
- package/dist/zonos-elements/{p-e11c3410.entry.js → p-53be08c8.entry.js} +1 -1
- package/dist/zonos-elements/{p-fc651784.system.entry.js → p-54a9c772.system.entry.js} +1 -1
- package/dist/zonos-elements/p-58521b25.js +1 -0
- package/dist/zonos-elements/{p-7e03bd33.system.entry.js → p-5bd47a30.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-2f61dc3c.entry.js → p-60f0ff42.entry.js} +1 -1
- package/dist/zonos-elements/{p-d4c966cb.entry.js → p-6609467e.entry.js} +1 -1
- package/dist/zonos-elements/{p-ad4c8167.system.entry.js → p-6b87101d.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-ccd0fa8f.system.entry.js → p-73730eb9.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-2df84888.system.entry.js → p-7536cf94.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-72666536.system.entry.js → p-792fce17.system.entry.js} +1 -1
- package/dist/zonos-elements/p-7ce6b8f7.system.entry.js +1 -0
- package/dist/zonos-elements/{p-69ad7325.entry.js → p-7d859914.entry.js} +1 -1
- package/dist/zonos-elements/{p-b15ceaff.entry.js → p-831bcfb6.entry.js} +1 -1
- package/dist/zonos-elements/{p-08c7dc07.system.entry.js → p-9259e19b.system.entry.js} +1 -1
- package/dist/zonos-elements/p-93324ee5.entry.js +1 -0
- package/dist/zonos-elements/p-99ef86c3.js +1 -0
- package/dist/zonos-elements/{p-fcf3ed5c.entry.js → p-a956e28f.entry.js} +1 -1
- package/dist/zonos-elements/{p-bea9d128.js → p-aa3a7538.js} +1 -1
- package/dist/zonos-elements/{p-6ac77d9f.system.entry.js → p-aafc2155.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-9abfb6b0.entry.js → p-b1b7d786.entry.js} +1 -1
- package/dist/zonos-elements/{p-a977cddd.entry.js → p-b375372e.entry.js} +1 -1
- package/dist/zonos-elements/{p-703f2737.system.js → p-b453ae2b.system.js} +1 -1
- package/dist/zonos-elements/{p-30e819ed.entry.js → p-bd2daace.entry.js} +1 -1
- package/dist/zonos-elements/{p-0d251428.entry.js → p-c16c7978.entry.js} +1 -1
- package/dist/zonos-elements/{p-208b270a.js → p-c425d3d9.js} +1 -1
- package/dist/zonos-elements/{p-5812b323.system.entry.js → p-c45df586.system.entry.js} +1 -1
- package/dist/zonos-elements/p-c935390d.js +1 -0
- package/dist/zonos-elements/{p-b1a4f385.system.entry.js → p-ccc8d669.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-7792f4c2.js → p-cdea0f7d.js} +1 -1
- package/dist/zonos-elements/{p-acd7009a.system.entry.js → p-d2ba9e3c.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-27beefda.system.js → p-e77dd304.system.js} +1 -1
- package/dist/zonos-elements/{p-d659153c.entry.js → p-ea91600a.entry.js} +1 -1
- package/dist/zonos-elements/{p-a2885536.system.entry.js → p-eb254a96.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-0d2d7fc4.system.js → p-eb77dd11.system.js} +1 -1
- package/dist/zonos-elements/{p-91702715.entry.js → p-ee00f232.entry.js} +1 -1
- package/dist/zonos-elements/{p-2651ca93.system.entry.js → p-f4be6ce5.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-5ab4bc26.system.entry.js → p-f5d9e5e5.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-553ca694.system.entry.js → p-f98cdb98.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-238370ad.system.js → p-fd849c69.system.js} +1 -1
- package/dist/zonos-elements/zonos-elements.esm.js +1 -1
- package/package.json +1 -1
- package/dist/esm-es5/localization-066586b6.js +0 -1
- package/dist/zonos-elements/p-0fb8b711.system.entry.js +0 -1
- package/dist/zonos-elements/p-260a5b57.js +0 -1
- package/dist/zonos-elements/p-bfcc1432.js +0 -1
- package/dist/zonos-elements/p-c049c527.js +0 -1
- package/dist/zonos-elements/p-c76ec587.system.js +0 -1
- package/dist/zonos-elements/p-debd2e30.js +0 -1
- package/dist/zonos-elements/p-ebc966d8.entry.js +0 -1
- package/dist/zonos-elements/p-f5d4775a.system.js +0 -1
|
@@ -3,20 +3,20 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
|
-
const cart = require('./cart-
|
|
7
|
-
const localization = require('./localization-
|
|
8
|
-
const renderCheckoutCurrency = require('./renderCheckoutCurrency-
|
|
6
|
+
const cart = require('./cart-f1374a56.js');
|
|
7
|
+
const localization = require('./localization-503c8477.js');
|
|
8
|
+
const renderCheckoutCurrency = require('./renderCheckoutCurrency-4486b06e.js');
|
|
9
9
|
const cleanHtmlMarkdown = require('./cleanHtmlMarkdown-31da84b7.js');
|
|
10
10
|
const classes = require('./classes-b7918f56.js');
|
|
11
11
|
const zonosStore = require('./zonosStore-45a87908.js');
|
|
12
|
-
const hasInclusivePrice = require('./hasInclusivePrice-
|
|
13
|
-
const paypal = require('./paypal-
|
|
12
|
+
const hasInclusivePrice = require('./hasInclusivePrice-2f1232e3.js');
|
|
13
|
+
const paypal = require('./paypal-5e9b8224.js');
|
|
14
14
|
const handleFetch = require('./handleFetch-954f30e1.js');
|
|
15
15
|
const createCustomEvent = require('./createCustomEvent-7b6fad95.js');
|
|
16
16
|
const getBorderRadius = require('./getBorderRadius-fc683d94.js');
|
|
17
17
|
const VarianceTest = require('./VarianceTest-bec00ea8.js');
|
|
18
18
|
const ILanguage = require('./ILanguage-98b04442.js');
|
|
19
|
-
const placeTestOrder = require('./placeTestOrder-
|
|
19
|
+
const placeTestOrder = require('./placeTestOrder-d1be2c8e.js');
|
|
20
20
|
const isDarkColor = require('./isDarkColor-5d6ca405.js');
|
|
21
21
|
const getContrastColor = require('./getContrastColor-d5134ef3.js');
|
|
22
22
|
const isColorVariable = require('./isColorVariable-525dbfa7.js');
|
|
@@ -1069,6 +1069,114 @@ const ZonosCheckoutFooter = class {
|
|
|
1069
1069
|
};
|
|
1070
1070
|
ZonosCheckoutFooter.style = ZonosCheckoutFooterStyle0;
|
|
1071
1071
|
|
|
1072
|
+
/**
|
|
1073
|
+
* Caches live "configured currency → presentment currency" rates used to convert
|
|
1074
|
+
* the EU withdrawal return-shipping cap into the currency the buyer actually pays
|
|
1075
|
+
* in. A @stencil/store so that, when a lazily-fetched rate resolves, components
|
|
1076
|
+
* rendering the notice re-render and pick up the converted amount. Keyed by
|
|
1077
|
+
* `${sourceCurrency}_${targetCurrency}`; a null value means the lookup failed.
|
|
1078
|
+
*/
|
|
1079
|
+
const { state: euWithdrawalRateStore } = zonosStore.createStore({ crossRates: {} });
|
|
1080
|
+
// Tracks in-flight rate lookups so the same pair isn't fetched on every render.
|
|
1081
|
+
const inFlightRateKeys = new Set();
|
|
1082
|
+
const euWithdrawalCrossRateKey = (sourceCurrency, targetCurrency) => `${sourceCurrency}_${targetCurrency}`;
|
|
1083
|
+
/**
|
|
1084
|
+
* Lazily fetch the current configured→presentment rate (fire-and-forget). Guarded
|
|
1085
|
+
* so each pair is fetched at most once; the result lands in the reactive store,
|
|
1086
|
+
* which triggers a re-render that then shows the presentment estimate.
|
|
1087
|
+
*/
|
|
1088
|
+
const ensureEuWithdrawalCrossRate = (sourceCurrency, targetCurrency, shipToCountry) => {
|
|
1089
|
+
const key = euWithdrawalCrossRateKey(sourceCurrency, targetCurrency);
|
|
1090
|
+
if (inFlightRateKeys.has(key) ||
|
|
1091
|
+
euWithdrawalRateStore.crossRates[key] !== undefined) {
|
|
1092
|
+
return;
|
|
1093
|
+
}
|
|
1094
|
+
inFlightRateKeys.add(key);
|
|
1095
|
+
void localization.getExchangeRate({
|
|
1096
|
+
country: shipToCountry,
|
|
1097
|
+
isGuaranteed: false,
|
|
1098
|
+
sourceCurrency,
|
|
1099
|
+
targetCurrency,
|
|
1100
|
+
})
|
|
1101
|
+
.then(({ exchangeRate }) => {
|
|
1102
|
+
var _a;
|
|
1103
|
+
euWithdrawalRateStore.crossRates = Object.assign(Object.assign({}, euWithdrawalRateStore.crossRates), { [key]: (_a = exchangeRate === null || exchangeRate === void 0 ? void 0 : exchangeRate.rate) !== null && _a !== void 0 ? _a : null });
|
|
1104
|
+
})
|
|
1105
|
+
.finally(() => {
|
|
1106
|
+
inFlightRateKeys.delete(key);
|
|
1107
|
+
});
|
|
1108
|
+
};
|
|
1109
|
+
|
|
1110
|
+
/**
|
|
1111
|
+
* Returns the cap converted into the presentment currency, or null when it can't
|
|
1112
|
+
* be determined yet (rate still loading or unavailable).
|
|
1113
|
+
*
|
|
1114
|
+
* - When the cap currency is the merchant's native/base currency, reuse the
|
|
1115
|
+
* checkout session's base→presentment rate (no extra request).
|
|
1116
|
+
* - Otherwise fetch the current cap-currency→presentment rate on demand.
|
|
1117
|
+
*/
|
|
1118
|
+
const getPresentmentAmount = (maximum, configuredCurrency, presentmentCurrency, shipToCountry) => {
|
|
1119
|
+
var _a, _b;
|
|
1120
|
+
const baseCurrency = (_a = cart.cartStore.exchangeRate) === null || _a === void 0 ? void 0 : _a.sourceCurrencyCode;
|
|
1121
|
+
const sessionRate = (_b = cart.cartStore.exchangeRate) === null || _b === void 0 ? void 0 : _b.rate;
|
|
1122
|
+
if (configuredCurrency === baseCurrency && sessionRate) {
|
|
1123
|
+
return maximum * sessionRate;
|
|
1124
|
+
}
|
|
1125
|
+
const liveRate = euWithdrawalRateStore.crossRates[euWithdrawalCrossRateKey(configuredCurrency, presentmentCurrency)];
|
|
1126
|
+
if (liveRate === undefined) {
|
|
1127
|
+
ensureEuWithdrawalCrossRate(configuredCurrency, presentmentCurrency, shipToCountry);
|
|
1128
|
+
return null;
|
|
1129
|
+
}
|
|
1130
|
+
return liveRate === null ? null : maximum * liveRate;
|
|
1131
|
+
};
|
|
1132
|
+
const formatInCurrency = (amount, currency) => `${localization.numberFormat({ amount, currency, targetFormat: null })} ${currency}`;
|
|
1133
|
+
/**
|
|
1134
|
+
* Formats the cap for the buyer, e.g. "100 USD (~125 CAD)" — the merchant's
|
|
1135
|
+
* configured amount/currency, plus the estimated amount the buyer will actually
|
|
1136
|
+
* pay in their presentment currency. When the cap is already in the presentment
|
|
1137
|
+
* currency, or the presentment estimate isn't available yet, only the configured
|
|
1138
|
+
* amount is shown.
|
|
1139
|
+
*/
|
|
1140
|
+
const formatMaximum = (maximum, configuredCurrency, shipToCountry) => {
|
|
1141
|
+
const configured = formatInCurrency(maximum, configuredCurrency);
|
|
1142
|
+
const presentmentCurrency = cart.cartStore.currency;
|
|
1143
|
+
if (configuredCurrency === presentmentCurrency) {
|
|
1144
|
+
return configured;
|
|
1145
|
+
}
|
|
1146
|
+
const presentmentAmount = getPresentmentAmount(maximum, configuredCurrency, presentmentCurrency, shipToCountry);
|
|
1147
|
+
if (presentmentAmount == null) {
|
|
1148
|
+
return configured;
|
|
1149
|
+
}
|
|
1150
|
+
return `${configured} (~${formatInCurrency(presentmentAmount, presentmentCurrency)})`;
|
|
1151
|
+
};
|
|
1152
|
+
/**
|
|
1153
|
+
* Returns the localized EU withdrawal notice text to render above the Pay button,
|
|
1154
|
+
* or null when it shouldn't be shown. The notice appears only when the merchant
|
|
1155
|
+
* has opted in (status ENABLED) and the buyer is shipping to a country flagged by
|
|
1156
|
+
* the API as affected by the regulation (`genericSettings.withdrawalCountryEnabled`).
|
|
1157
|
+
* When a maximum return-shipping cap is configured the copy includes the amount;
|
|
1158
|
+
* otherwise it uses the no-maximum variant.
|
|
1159
|
+
*/
|
|
1160
|
+
const getEuWithdrawalNoticeText = (shipToCountry) => {
|
|
1161
|
+
var _a, _b;
|
|
1162
|
+
const policy = (_a = zonosStore.zonosStore.checkoutSettings.merchantPolicyLinks) === null || _a === void 0 ? void 0 : _a.euWithdrawalPolicy;
|
|
1163
|
+
if (!policy || policy.status !== 'ENABLED') {
|
|
1164
|
+
return null;
|
|
1165
|
+
}
|
|
1166
|
+
// The affected-country list is API-controlled (not hardcoded), so an absent or
|
|
1167
|
+
// empty list shows the notice for no country.
|
|
1168
|
+
const enabledCountries = (_b = zonosStore.zonosStore.genericSettings) === null || _b === void 0 ? void 0 : _b.withdrawalCountryEnabled;
|
|
1169
|
+
if (!shipToCountry ||
|
|
1170
|
+
!(enabledCountries === null || enabledCountries === void 0 ? void 0 : enabledCountries.some(country => country === shipToCountry))) {
|
|
1171
|
+
return null;
|
|
1172
|
+
}
|
|
1173
|
+
const maximum = policy.maximumReturnShippingEstimate;
|
|
1174
|
+
if (maximum == null) {
|
|
1175
|
+
return localization.translate('If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs.');
|
|
1176
|
+
}
|
|
1177
|
+
return localization.translate('If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs, up to a maximum [amount].', { amount: formatMaximum(maximum, policy.currencyCode, shipToCountry) });
|
|
1178
|
+
};
|
|
1179
|
+
|
|
1072
1180
|
const CheckmarkLineIcon = `<svg color="var(--zonos-elements-gray-1000)" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="var(--zonos-elements-gray-1000)" d="M15.342 10.21a.75.75 0 0 0-1.184-.92l-2.978 3.829-1.4-1.4a.75.75 0 1 0-1.06 1.061l1.8 1.8a1 1 0 0 0 1.496-.093l3.326-4.277Z"/><path fill="var(--zonos-elements-gray-1000)" fill-rule="evenodd" d="M12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm-6.5 8a6.5 6.5 0 1 1 13 0 6.5 6.5 0 0 1-13 0Z" clip-rule="evenodd"/></svg>`;
|
|
1073
1181
|
|
|
1074
1182
|
const RemoveLineIcon = `<svg color="var(--zonos-elements-gray-1000)" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="var(--zonos-elements-gray-1000)" d="M14.475 10.586a.75.75 0 1 0-1.06-1.06L12 10.938l-1.414-1.414a.75.75 0 0 0-1.06 1.06L10.938 12l-1.414 1.414a.75.75 0 1 0 1.06 1.06L12 13.062l1.414 1.414a.75.75 0 0 0 1.06-1.06L13.062 12l1.414-1.414Z"/><path fill="var(--zonos-elements-gray-1000)" fill-rule="evenodd" d="M12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm-6.5 8a6.5 6.5 0 1 1 13 0 6.5 6.5 0 0 1-13 0Z" clip-rule="evenodd"/></svg>`;
|
|
@@ -1263,6 +1371,7 @@ const ZonosCheckoutPayment = class {
|
|
|
1263
1371
|
const isPaypalTabSelected = ((_a = cart.stripeStore.stripePaymentEventData) === null || _a === void 0 ? void 0 : _a.value.type) === 'external_paypal';
|
|
1264
1372
|
const storeCreditCoversFullOrder = cart.storeCreditStoreCoversFullAmount();
|
|
1265
1373
|
const renderPayment = () => {
|
|
1374
|
+
var _a;
|
|
1266
1375
|
if (isStagingMode) {
|
|
1267
1376
|
const { colorPrimary } = zonosStore.zonosStore.appearance;
|
|
1268
1377
|
const themeBasedColor = colorPrimary && isDarkColor.isDarkColor(colorPrimary) ? 'DARK' : 'LIGHT';
|
|
@@ -1276,10 +1385,11 @@ const ZonosCheckoutPayment = class {
|
|
|
1276
1385
|
// use primary type when on mobile mode
|
|
1277
1386
|
variant: this.submitBtnType }, localization.translate('Place test order')))));
|
|
1278
1387
|
}
|
|
1388
|
+
const euWithdrawalNoticeText = getEuWithdrawalNoticeText((_a = cart.stripeStore.stripeAddressEventData) === null || _a === void 0 ? void 0 : _a.value.address.country);
|
|
1279
1389
|
return (index.h(index.Fragment, null, this.showErrorBanner && (index.h("zonos-banner", { class: "zonos--error-banner", intent: "error" }, localization.translate('Missing required fields. Make sure all fields are completed.'))), this.hasStripePaymentError && (index.h("zonos-banner", { class: "zonos--payment-error-banner", intent: "error" }, cart.stripeStore.customErrorMessage ||
|
|
1280
1390
|
localization.translate("We couldn't complete your payment. Please verify the payment details and try again."))), paypal.paypalStore.paypalErrorMessage && (index.h("zonos-banner", { class: "zonos--payment-error-banner", intent: "error" }, paypal.paypalStore.paypalErrorMessage)), cart.cartStore.customerAuthenticationToken &&
|
|
1281
1391
|
cart.storeCreditStore.availableBalance != null &&
|
|
1282
|
-
cart.storeCreditStore.availableBalance > 0 && (index.h("zonos-store-credit", null)), storeCreditCoversFullOrder ? (index.h("zonos-banner", { intent: "info" }, localization.translate('Store credit covers your full order'))) : (index.h("zonos-payment", null)), index.h("zonos-policy-consent", null), index.h("div", { class: "zonos--group-btn" }, (!isPaypalTabSelected || storeCreditCoversFullOrder) && (index.h(index.Fragment, null, index.h("zonos-button", { backgroundColor: this.submitBtnColor, bold: true, isDisabled: this.continueLoading &&
|
|
1392
|
+
cart.storeCreditStore.availableBalance > 0 && (index.h("zonos-store-credit", null)), storeCreditCoversFullOrder ? (index.h("zonos-banner", { intent: "info" }, localization.translate('Store credit covers your full order'))) : (index.h("zonos-payment", null)), index.h("zonos-policy-consent", null), euWithdrawalNoticeText && (index.h("zonos-banner", { class: "zonos--eu-withdrawal-notice", intent: "info" }, euWithdrawalNoticeText)), index.h("div", { class: "zonos--group-btn" }, (!isPaypalTabSelected || storeCreditCoversFullOrder) && (index.h(index.Fragment, null, index.h("zonos-button", { backgroundColor: this.submitBtnColor, bold: true, isDisabled: this.continueLoading &&
|
|
1283
1393
|
cart.stripeStore.checkoutSettlementCurrency === 'USD', loading: this.continueLoading &&
|
|
1284
1394
|
cart.stripeStore.checkoutSettlementCurrency !== 'USD', onClick: async () => {
|
|
1285
1395
|
if (!cart.cartStore.checkoutSession) {
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
|
-
const cart = require('./cart-
|
|
7
|
-
const paypal = require('./paypal-
|
|
8
|
-
const localization = require('./localization-
|
|
6
|
+
const cart = require('./cart-f1374a56.js');
|
|
7
|
+
const paypal = require('./paypal-5e9b8224.js');
|
|
8
|
+
const localization = require('./localization-503c8477.js');
|
|
9
9
|
const zonosStore = require('./zonosStore-45a87908.js');
|
|
10
10
|
const buildCartItemsByTempCart = require('./buildCartItemsByTempCart-edddbf4b.js');
|
|
11
11
|
const handleFetch = require('./handleFetch-954f30e1.js');
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
|
-
const cart = require('./cart-
|
|
6
|
+
const cart = require('./cart-f1374a56.js');
|
|
7
7
|
const cleanHtmlMarkdown = require('./cleanHtmlMarkdown-31da84b7.js');
|
|
8
8
|
const zonosStore = require('./zonosStore-45a87908.js');
|
|
9
9
|
const classes = require('./classes-b7918f56.js');
|
|
10
10
|
const styles = require('./styles-d1e64fb9.js');
|
|
11
|
-
require('./localization-
|
|
11
|
+
require('./localization-503c8477.js');
|
|
12
12
|
require('./handleFetch-954f30e1.js');
|
|
13
13
|
require('./VarianceTest-bec00ea8.js');
|
|
14
14
|
require('./isDarkColor-5d6ca405.js');
|
|
@@ -3,19 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
|
-
const cart = require('./cart-
|
|
7
|
-
const paypal = require('./paypal-
|
|
8
|
-
const localization = require('./localization-
|
|
6
|
+
const cart = require('./cart-f1374a56.js');
|
|
7
|
+
const paypal = require('./paypal-5e9b8224.js');
|
|
8
|
+
const localization = require('./localization-503c8477.js');
|
|
9
9
|
const zonosStore = require('./zonosStore-45a87908.js');
|
|
10
10
|
const handleFetch = require('./handleFetch-954f30e1.js');
|
|
11
11
|
const createCustomEvent = require('./createCustomEvent-7b6fad95.js');
|
|
12
12
|
const getBorderRadius = require('./getBorderRadius-fc683d94.js');
|
|
13
13
|
const VarianceTest = require('./VarianceTest-bec00ea8.js');
|
|
14
|
-
const isCollectMobileTablet = require('./isCollectMobileTablet-
|
|
14
|
+
const isCollectMobileTablet = require('./isCollectMobileTablet-d5c1a9ea.js');
|
|
15
15
|
const classes = require('./classes-b7918f56.js');
|
|
16
16
|
const ILanguage = require('./ILanguage-98b04442.js');
|
|
17
|
-
const renderCheckoutCurrency = require('./renderCheckoutCurrency-
|
|
18
|
-
const placeTestOrder = require('./placeTestOrder-
|
|
17
|
+
const renderCheckoutCurrency = require('./renderCheckoutCurrency-4486b06e.js');
|
|
18
|
+
const placeTestOrder = require('./placeTestOrder-d1be2c8e.js');
|
|
19
19
|
const renderFallback = require('./renderFallback-bc20ee20.js');
|
|
20
20
|
require('./isDarkColor-5d6ca405.js');
|
|
21
21
|
require('./isContrastColor-76592c92.js');
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
|
-
const cart = require('./cart-
|
|
7
|
-
const isCollectMobileTablet = require('./isCollectMobileTablet-
|
|
8
|
-
const paypal = require('./paypal-
|
|
9
|
-
const localization = require('./localization-
|
|
6
|
+
const cart = require('./cart-f1374a56.js');
|
|
7
|
+
const isCollectMobileTablet = require('./isCollectMobileTablet-d5c1a9ea.js');
|
|
8
|
+
const paypal = require('./paypal-5e9b8224.js');
|
|
9
|
+
const localization = require('./localization-503c8477.js');
|
|
10
10
|
const zonosStore = require('./zonosStore-45a87908.js');
|
|
11
11
|
const buildCartItemsByTempCart = require('./buildCartItemsByTempCart-edddbf4b.js');
|
|
12
12
|
const handleFetch = require('./handleFetch-954f30e1.js');
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
|
-
const cart = require('./cart-
|
|
7
|
-
const localization = require('./localization-
|
|
6
|
+
const cart = require('./cart-f1374a56.js');
|
|
7
|
+
const localization = require('./localization-503c8477.js');
|
|
8
8
|
const zonosStore = require('./zonosStore-45a87908.js');
|
|
9
9
|
const getGenericSettingsOverride = require('./getGenericSettingsOverride-c0ca32b9.js');
|
|
10
10
|
const handleFetch = require('./handleFetch-954f30e1.js');
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
|
-
const localization = require('./localization-
|
|
6
|
+
const localization = require('./localization-503c8477.js');
|
|
7
7
|
const zonosStore = require('./zonosStore-45a87908.js');
|
|
8
8
|
const classes = require('./classes-b7918f56.js');
|
|
9
9
|
require('./handleFetch-954f30e1.js');
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
|
-
const localization = require('./localization-
|
|
6
|
+
const localization = require('./localization-503c8477.js');
|
|
7
7
|
const zonosStore = require('./zonosStore-45a87908.js');
|
|
8
8
|
const formatStringWithLinks = require('./formatStringWithLinks-52341fc7.js');
|
|
9
9
|
const isDarkColor = require('./isDarkColor-5d6ca405.js');
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
|
-
const localization = require('./localization-
|
|
6
|
+
const localization = require('./localization-503c8477.js');
|
|
7
7
|
const zonosStore = require('./zonosStore-45a87908.js');
|
|
8
8
|
const classes = require('./classes-b7918f56.js');
|
|
9
9
|
const formatStringWithLinks = require('./formatStringWithLinks-52341fc7.js');
|
|
10
|
-
const hasInclusivePrice = require('./hasInclusivePrice-
|
|
10
|
+
const hasInclusivePrice = require('./hasInclusivePrice-2f1232e3.js');
|
|
11
11
|
const getHasMoreSpaceOnRight = require('./getHasMoreSpaceOnRight-4c94667f.js');
|
|
12
12
|
const TaxId = require('./TaxId-12acedde.js');
|
|
13
13
|
require('./handleFetch-954f30e1.js');
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
6
|
const debounce = require('./debounce-7990f5ea.js');
|
|
7
|
-
const localization = require('./localization-
|
|
7
|
+
const localization = require('./localization-503c8477.js');
|
|
8
8
|
const zonosStore = require('./zonosStore-45a87908.js');
|
|
9
9
|
const classes = require('./classes-b7918f56.js');
|
|
10
10
|
const handleFetch = require('./handleFetch-954f30e1.js');
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
|
-
const cart = require('./cart-
|
|
7
|
-
const localization = require('./localization-
|
|
8
|
-
const renderCheckoutCurrency = require('./renderCheckoutCurrency-
|
|
6
|
+
const cart = require('./cart-f1374a56.js');
|
|
7
|
+
const localization = require('./localization-503c8477.js');
|
|
8
|
+
const renderCheckoutCurrency = require('./renderCheckoutCurrency-4486b06e.js');
|
|
9
9
|
const classes = require('./classes-b7918f56.js');
|
|
10
|
-
const invoice = require('./invoice-
|
|
10
|
+
const invoice = require('./invoice-3760bec0.js');
|
|
11
11
|
const renderFallback = require('./renderFallback-bc20ee20.js');
|
|
12
12
|
require('./zonosStore-45a87908.js');
|
|
13
13
|
require('./VarianceTest-bec00ea8.js');
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
|
-
const cart = require('./cart-
|
|
7
|
-
const paypal = require('./paypal-
|
|
8
|
-
const localization = require('./localization-
|
|
6
|
+
const cart = require('./cart-f1374a56.js');
|
|
7
|
+
const paypal = require('./paypal-5e9b8224.js');
|
|
8
|
+
const localization = require('./localization-503c8477.js');
|
|
9
9
|
const zonosStore = require('./zonosStore-45a87908.js');
|
|
10
10
|
const handleFetch = require('./handleFetch-954f30e1.js');
|
|
11
11
|
const createCustomEvent = require('./createCustomEvent-7b6fad95.js');
|
|
@@ -14,9 +14,9 @@ const VarianceTest = require('./VarianceTest-bec00ea8.js');
|
|
|
14
14
|
const isInvoiceMobileTablet = require('./isInvoiceMobileTablet-dde41e4e.js');
|
|
15
15
|
const classes = require('./classes-b7918f56.js');
|
|
16
16
|
const ILanguage = require('./ILanguage-98b04442.js');
|
|
17
|
-
const invoice = require('./invoice-
|
|
18
|
-
const renderCheckoutCurrency = require('./renderCheckoutCurrency-
|
|
19
|
-
const placeTestOrder = require('./placeTestOrder-
|
|
17
|
+
const invoice = require('./invoice-3760bec0.js');
|
|
18
|
+
const renderCheckoutCurrency = require('./renderCheckoutCurrency-4486b06e.js');
|
|
19
|
+
const placeTestOrder = require('./placeTestOrder-d1be2c8e.js');
|
|
20
20
|
const renderFallback = require('./renderFallback-bc20ee20.js');
|
|
21
21
|
require('./isDarkColor-5d6ca405.js');
|
|
22
22
|
require('./isContrastColor-76592c92.js');
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
|
-
const cart = require('./cart-
|
|
7
|
-
const invoice = require('./invoice-
|
|
8
|
-
const paypal = require('./paypal-
|
|
9
|
-
const localization = require('./localization-
|
|
6
|
+
const cart = require('./cart-f1374a56.js');
|
|
7
|
+
const invoice = require('./invoice-3760bec0.js');
|
|
8
|
+
const paypal = require('./paypal-5e9b8224.js');
|
|
9
|
+
const localization = require('./localization-503c8477.js');
|
|
10
10
|
const zonosStore = require('./zonosStore-45a87908.js');
|
|
11
11
|
const buildCartItemsByTempCart = require('./buildCartItemsByTempCart-edddbf4b.js');
|
|
12
12
|
const handleFetch = require('./handleFetch-954f30e1.js');
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
|
-
const localization = require('./localization-
|
|
6
|
+
const localization = require('./localization-503c8477.js');
|
|
7
7
|
const zonosStore = require('./zonosStore-45a87908.js');
|
|
8
8
|
const ILanguage = require('./ILanguage-98b04442.js');
|
|
9
9
|
require('./handleFetch-954f30e1.js');
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b1f95d96.js');
|
|
6
|
-
const cart = require('./cart-
|
|
7
|
-
const localization = require('./localization-
|
|
6
|
+
const cart = require('./cart-f1374a56.js');
|
|
7
|
+
const localization = require('./localization-503c8477.js');
|
|
8
8
|
const zonosStore = require('./zonosStore-45a87908.js');
|
|
9
|
-
const renderCheckoutCurrency = require('./renderCheckoutCurrency-
|
|
9
|
+
const renderCheckoutCurrency = require('./renderCheckoutCurrency-4486b06e.js');
|
|
10
10
|
const getBorderRadius = require('./getBorderRadius-fc683d94.js');
|
|
11
11
|
require('./VarianceTest-bec00ea8.js');
|
|
12
12
|
require('./handleFetch-954f30e1.js');
|
|
@@ -8,6 +8,7 @@ import { storageStore } from "../../../store/storageStore";
|
|
|
8
8
|
import { translate } from "../../../store/translationStore";
|
|
9
9
|
import { zonosStore } from "../../../store/zonosStore";
|
|
10
10
|
import { placeTestOrder } from "../../../utils/api/placeTestOrder";
|
|
11
|
+
import { getEuWithdrawalNoticeText } from "../../../utils/checkout/euWithdrawalNotice";
|
|
11
12
|
import { getIsStagingMode } from "../../../utils/checkout/getIsStagingMode";
|
|
12
13
|
import { getIsTestMode } from "../../../utils/checkout/getIsTestMode";
|
|
13
14
|
import { renderCheckoutCurrency } from "../../../utils/checkout/renderCheckoutCurrency";
|
|
@@ -202,6 +203,7 @@ export class ZonosCheckoutPayment {
|
|
|
202
203
|
const isPaypalTabSelected = ((_a = stripeStore.stripePaymentEventData) === null || _a === void 0 ? void 0 : _a.value.type) === 'external_paypal';
|
|
203
204
|
const storeCreditCoversFullOrder = storeCreditStoreCoversFullAmount();
|
|
204
205
|
const renderPayment = () => {
|
|
206
|
+
var _a;
|
|
205
207
|
if (isStagingMode) {
|
|
206
208
|
const { colorPrimary } = zonosStore.appearance;
|
|
207
209
|
const themeBasedColor = colorPrimary && isDarkColor(colorPrimary) ? 'DARK' : 'LIGHT';
|
|
@@ -215,10 +217,11 @@ export class ZonosCheckoutPayment {
|
|
|
215
217
|
// use primary type when on mobile mode
|
|
216
218
|
variant: this.submitBtnType }, translate('Place test order')))));
|
|
217
219
|
}
|
|
220
|
+
const euWithdrawalNoticeText = getEuWithdrawalNoticeText((_a = stripeStore.stripeAddressEventData) === null || _a === void 0 ? void 0 : _a.value.address.country);
|
|
218
221
|
return (h(Fragment, null, this.showErrorBanner && (h("zonos-banner", { class: "zonos--error-banner", intent: "error" }, translate('Missing required fields. Make sure all fields are completed.'))), this.hasStripePaymentError && (h("zonos-banner", { class: "zonos--payment-error-banner", intent: "error" }, stripeStore.customErrorMessage ||
|
|
219
222
|
translate("We couldn't complete your payment. Please verify the payment details and try again."))), paypalStore.paypalErrorMessage && (h("zonos-banner", { class: "zonos--payment-error-banner", intent: "error" }, paypalStore.paypalErrorMessage)), cartStore.customerAuthenticationToken &&
|
|
220
223
|
storeCreditStore.availableBalance != null &&
|
|
221
|
-
storeCreditStore.availableBalance > 0 && (h("zonos-store-credit", null)), storeCreditCoversFullOrder ? (h("zonos-banner", { intent: "info" }, translate('Store credit covers your full order'))) : (h("zonos-payment", null)), h("zonos-policy-consent", null), h("div", { class: "zonos--group-btn" }, (!isPaypalTabSelected || storeCreditCoversFullOrder) && (h(Fragment, null, h("zonos-button", { backgroundColor: this.submitBtnColor, bold: true, isDisabled: this.continueLoading &&
|
|
224
|
+
storeCreditStore.availableBalance > 0 && (h("zonos-store-credit", null)), storeCreditCoversFullOrder ? (h("zonos-banner", { intent: "info" }, translate('Store credit covers your full order'))) : (h("zonos-payment", null)), h("zonos-policy-consent", null), euWithdrawalNoticeText && (h("zonos-banner", { class: "zonos--eu-withdrawal-notice", intent: "info" }, euWithdrawalNoticeText)), h("div", { class: "zonos--group-btn" }, (!isPaypalTabSelected || storeCreditCoversFullOrder) && (h(Fragment, null, h("zonos-button", { backgroundColor: this.submitBtnColor, bold: true, isDisabled: this.continueLoading &&
|
|
222
225
|
stripeStore.checkoutSettlementCurrency === 'USD', loading: this.continueLoading &&
|
|
223
226
|
stripeStore.checkoutSettlementCurrency !== 'USD', onClick: async () => {
|
|
224
227
|
if (!cartStore.checkoutSession) {
|
package/dist/collection/components/common/zonos-stripe-phone-input/zonos-stripe-phone-input.js
CHANGED
|
@@ -259,7 +259,7 @@ export class ZonosStripePhoneInput {
|
|
|
259
259
|
"mutable": false,
|
|
260
260
|
"complexType": {
|
|
261
261
|
"original": "GenericZonosSettings['countryFields'] | null",
|
|
262
|
-
"resolved": "null | undefined | { AQ: CountryFields; AX: CountryFields; CC: CountryFields; ER: CountryFields; PF: CountryFields; SO: CountryFields; SX: CountryFields; TO: CountryFields; AD: CountryFields; AE: CountryFields; AF: CountryFields; AG: CountryFields; AI: CountryFields; AL: CountryFields; AM: CountryFields; AO: CountryFields; AR: CountryFields; AS: CountryFields; AT: CountryFields; AU: CountryFields; AW: CountryFields; AZ: CountryFields; BA: CountryFields; BB: CountryFields; BD: CountryFields; BE: CountryFields; BF: CountryFields; BG: CountryFields; BH: CountryFields; BI: CountryFields; BJ: CountryFields; BL: CountryFields; BM: CountryFields; BN: CountryFields; BO: CountryFields; BQ: CountryFields; BR: CountryFields; BS: CountryFields; BT: CountryFields; BV: CountryFields; BW: CountryFields; BY: CountryFields; BZ: CountryFields; CA: CountryFields; CD: CountryFields; CF: CountryFields;
|
|
262
|
+
"resolved": "null | undefined | { EG: CountryFields; MO: CountryFields; PN: CountryFields; KG: CountryFields; LB: CountryFields; CG: CountryFields; CM: CountryFields; ML: CountryFields; MM: CountryFields; AQ: CountryFields; AX: CountryFields; CC: CountryFields; ER: CountryFields; PF: CountryFields; SO: CountryFields; SX: CountryFields; TO: CountryFields; AD: CountryFields; AE: CountryFields; AF: CountryFields; AG: CountryFields; AI: CountryFields; AL: CountryFields; AM: CountryFields; AO: CountryFields; AR: CountryFields; AS: CountryFields; AT: CountryFields; AU: CountryFields; AW: CountryFields; AZ: CountryFields; BA: CountryFields; BB: CountryFields; BD: CountryFields; BE: CountryFields; BF: CountryFields; BG: CountryFields; BH: CountryFields; BI: CountryFields; BJ: CountryFields; BL: CountryFields; BM: CountryFields; BN: CountryFields; BO: CountryFields; BQ: CountryFields; BR: CountryFields; BS: CountryFields; BT: CountryFields; BV: CountryFields; BW: CountryFields; BY: CountryFields; BZ: CountryFields; CA: CountryFields; CD: CountryFields; CF: CountryFields; CH: CountryFields; CI: CountryFields; CK: CountryFields; CL: CountryFields; CN: CountryFields; CO: CountryFields; CR: CountryFields; CU: CountryFields; CV: CountryFields; CW: CountryFields; CX: CountryFields; CY: CountryFields; CZ: CountryFields; DE: CountryFields; DJ: CountryFields; DK: CountryFields; DM: CountryFields; DO: CountryFields; DZ: CountryFields; EC: CountryFields; EE: CountryFields; EH: CountryFields; ES: CountryFields; ET: CountryFields; FI: CountryFields; FJ: CountryFields; FK: CountryFields; FM: CountryFields; FO: CountryFields; FR: CountryFields; GA: CountryFields; GB: CountryFields; GD: CountryFields; GE: CountryFields; GF: CountryFields; GG: CountryFields; GH: CountryFields; GI: CountryFields; GL: CountryFields; GM: CountryFields; GN: CountryFields; GP: CountryFields; GQ: CountryFields; GR: CountryFields; GS: CountryFields; GT: CountryFields; GU: CountryFields; GW: CountryFields; GY: CountryFields; HK: CountryFields; HM: CountryFields; HN: CountryFields; HR: CountryFields; HT: CountryFields; HU: CountryFields; IC: CountryFields; ID: CountryFields; IE: CountryFields; IL: CountryFields; IM: CountryFields; IN: CountryFields; IO: CountryFields; IQ: CountryFields; IR: CountryFields; IS: CountryFields; IT: CountryFields; JE: CountryFields; JM: CountryFields; JO: CountryFields; JP: CountryFields; KE: CountryFields; KH: CountryFields; KI: CountryFields; KM: CountryFields; KN: CountryFields; KP: CountryFields; KR: CountryFields; KW: CountryFields; KY: CountryFields; KZ: CountryFields; LA: CountryFields; LC: CountryFields; LI: CountryFields; LK: CountryFields; LR: CountryFields; LS: CountryFields; LT: CountryFields; LU: CountryFields; LV: CountryFields; LY: CountryFields; MA: CountryFields; MC: CountryFields; MD: CountryFields; ME: CountryFields; MF: CountryFields; MG: CountryFields; MH: CountryFields; MK: CountryFields; MN: CountryFields; MP: CountryFields; MQ: CountryFields; MR: CountryFields; MS: CountryFields; MT: CountryFields; MU: CountryFields; MV: CountryFields; MW: CountryFields; MX: CountryFields; MY: CountryFields; MZ: CountryFields; NA: CountryFields; NC: CountryFields; NE: CountryFields; NF: CountryFields; NG: CountryFields; NI: CountryFields; NL: CountryFields; NO: CountryFields; NP: CountryFields; NR: CountryFields; NU: CountryFields; NZ: CountryFields; OM: CountryFields; PA: CountryFields; PE: CountryFields; PG: CountryFields; PH: CountryFields; PK: CountryFields; PL: CountryFields; PM: CountryFields; PR: CountryFields; PS: CountryFields; PT: CountryFields; PW: CountryFields; PY: CountryFields; QA: CountryFields; RE: CountryFields; RO: CountryFields; RS: CountryFields; RU: CountryFields; RW: CountryFields; SA: CountryFields; SB: CountryFields; SC: CountryFields; SD: CountryFields; SE: CountryFields; SG: CountryFields; SH: CountryFields; SI: CountryFields; SJ: CountryFields; SK: CountryFields; SL: CountryFields; SM: CountryFields; SN: CountryFields; SR: CountryFields; SS: CountryFields; ST: CountryFields; SV: CountryFields; SY: CountryFields; SZ: CountryFields; TC: CountryFields; TD: CountryFields; TF: CountryFields; TG: CountryFields; TH: CountryFields; TJ: CountryFields; TK: CountryFields; TL: CountryFields; TM: CountryFields; TN: CountryFields; TR: CountryFields; TT: CountryFields; TV: CountryFields; TW: CountryFields; TZ: CountryFields; UA: CountryFields; UG: CountryFields; UM: CountryFields; US: CountryFields; UY: CountryFields; UZ: CountryFields; VA: CountryFields; VC: CountryFields; VE: CountryFields; VG: CountryFields; VI: CountryFields; VN: CountryFields; VU: CountryFields; WF: CountryFields; WS: CountryFields; YE: CountryFields; YT: CountryFields; ZA: CountryFields; ZM: CountryFields; ZW: CountryFields; }",
|
|
263
263
|
"references": {
|
|
264
264
|
"GenericZonosSettings": {
|
|
265
265
|
"location": "import",
|
|
@@ -606,7 +606,7 @@ export class ZonosController {
|
|
|
606
606
|
"signature": "(countryCode: CountryCode) => Promise<void>",
|
|
607
607
|
"parameters": [{
|
|
608
608
|
"name": "countryCode",
|
|
609
|
-
"type": "\"AQ\" | \"AX\" | \"CC\" | \"ER\" | \"PF\" | \"SO\" | \"SX\" | \"TO\" | \"AD\" | \"AE\" | \"AF\" | \"AG\" | \"AI\" | \"AL\" | \"AM\" | \"AO\" | \"AR\" | \"AS\" | \"AT\" | \"AU\" | \"AW\" | \"AZ\" | \"BA\" | \"BB\" | \"BD\" | \"BE\" | \"BF\" | \"BG\" | \"BH\" | \"BI\" | \"BJ\" | \"BL\" | \"BM\" | \"BN\" | \"BO\" | \"BQ\" | \"BR\" | \"BS\" | \"BT\" | \"BV\" | \"BW\" | \"BY\" | \"BZ\" | \"CA\" | \"CD\" | \"CF\" | \"
|
|
609
|
+
"type": "\"EG\" | \"MO\" | \"PN\" | \"KG\" | \"LB\" | \"CG\" | \"CM\" | \"ML\" | \"MM\" | \"AQ\" | \"AX\" | \"CC\" | \"ER\" | \"PF\" | \"SO\" | \"SX\" | \"TO\" | \"AD\" | \"AE\" | \"AF\" | \"AG\" | \"AI\" | \"AL\" | \"AM\" | \"AO\" | \"AR\" | \"AS\" | \"AT\" | \"AU\" | \"AW\" | \"AZ\" | \"BA\" | \"BB\" | \"BD\" | \"BE\" | \"BF\" | \"BG\" | \"BH\" | \"BI\" | \"BJ\" | \"BL\" | \"BM\" | \"BN\" | \"BO\" | \"BQ\" | \"BR\" | \"BS\" | \"BT\" | \"BV\" | \"BW\" | \"BY\" | \"BZ\" | \"CA\" | \"CD\" | \"CF\" | \"CH\" | \"CI\" | \"CK\" | \"CL\" | \"CN\" | \"CO\" | \"CR\" | \"CU\" | \"CV\" | \"CW\" | \"CX\" | \"CY\" | \"CZ\" | \"DE\" | \"DJ\" | \"DK\" | \"DM\" | \"DO\" | \"DZ\" | \"EC\" | \"EE\" | \"EH\" | \"ES\" | \"ET\" | \"FI\" | \"FJ\" | \"FK\" | \"FM\" | \"FO\" | \"FR\" | \"GA\" | \"GB\" | \"GD\" | \"GE\" | \"GF\" | \"GG\" | \"GH\" | \"GI\" | \"GL\" | \"GM\" | \"GN\" | \"GP\" | \"GQ\" | \"GR\" | \"GS\" | \"GT\" | \"GU\" | \"GW\" | \"GY\" | \"HK\" | \"HM\" | \"HN\" | \"HR\" | \"HT\" | \"HU\" | \"IC\" | \"ID\" | \"IE\" | \"IL\" | \"IM\" | \"IN\" | \"IO\" | \"IQ\" | \"IR\" | \"IS\" | \"IT\" | \"JE\" | \"JM\" | \"JO\" | \"JP\" | \"KE\" | \"KH\" | \"KI\" | \"KM\" | \"KN\" | \"KP\" | \"KR\" | \"KW\" | \"KY\" | \"KZ\" | \"LA\" | \"LC\" | \"LI\" | \"LK\" | \"LR\" | \"LS\" | \"LT\" | \"LU\" | \"LV\" | \"LY\" | \"MA\" | \"MC\" | \"MD\" | \"ME\" | \"MF\" | \"MG\" | \"MH\" | \"MK\" | \"MN\" | \"MP\" | \"MQ\" | \"MR\" | \"MS\" | \"MT\" | \"MU\" | \"MV\" | \"MW\" | \"MX\" | \"MY\" | \"MZ\" | \"NA\" | \"NC\" | \"NE\" | \"NF\" | \"NG\" | \"NI\" | \"NL\" | \"NO\" | \"NP\" | \"NR\" | \"NU\" | \"NZ\" | \"OM\" | \"PA\" | \"PE\" | \"PG\" | \"PH\" | \"PK\" | \"PL\" | \"PM\" | \"PR\" | \"PS\" | \"PT\" | \"PW\" | \"PY\" | \"QA\" | \"RE\" | \"RO\" | \"RS\" | \"RU\" | \"RW\" | \"SA\" | \"SB\" | \"SC\" | \"SD\" | \"SE\" | \"SG\" | \"SH\" | \"SI\" | \"SJ\" | \"SK\" | \"SL\" | \"SM\" | \"SN\" | \"SR\" | \"SS\" | \"ST\" | \"SV\" | \"SY\" | \"SZ\" | \"TC\" | \"TD\" | \"TF\" | \"TG\" | \"TH\" | \"TJ\" | \"TK\" | \"TL\" | \"TM\" | \"TN\" | \"TR\" | \"TT\" | \"TV\" | \"TW\" | \"TZ\" | \"UA\" | \"UG\" | \"UM\" | \"US\" | \"UY\" | \"UZ\" | \"VA\" | \"VC\" | \"VE\" | \"VG\" | \"VI\" | \"VN\" | \"VU\" | \"WF\" | \"WS\" | \"YE\" | \"YT\" | \"ZA\" | \"ZM\" | \"ZW\"",
|
|
610
610
|
"docs": ""
|
|
611
611
|
}],
|
|
612
612
|
"references": {
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { createStore } from "@stencil/store";
|
|
2
|
+
import { getExchangeRate } from "../../utils/api/getExchangeRate";
|
|
3
|
+
/**
|
|
4
|
+
* Caches live "configured currency → presentment currency" rates used to convert
|
|
5
|
+
* the EU withdrawal return-shipping cap into the currency the buyer actually pays
|
|
6
|
+
* in. A @stencil/store so that, when a lazily-fetched rate resolves, components
|
|
7
|
+
* rendering the notice re-render and pick up the converted amount. Keyed by
|
|
8
|
+
* `${sourceCurrency}_${targetCurrency}`; a null value means the lookup failed.
|
|
9
|
+
*/
|
|
10
|
+
const { state: euWithdrawalRateStore } = createStore({ crossRates: {} });
|
|
11
|
+
export { euWithdrawalRateStore };
|
|
12
|
+
// Tracks in-flight rate lookups so the same pair isn't fetched on every render.
|
|
13
|
+
const inFlightRateKeys = new Set();
|
|
14
|
+
export const euWithdrawalCrossRateKey = (sourceCurrency, targetCurrency) => `${sourceCurrency}_${targetCurrency}`;
|
|
15
|
+
/**
|
|
16
|
+
* Lazily fetch the current configured→presentment rate (fire-and-forget). Guarded
|
|
17
|
+
* so each pair is fetched at most once; the result lands in the reactive store,
|
|
18
|
+
* which triggers a re-render that then shows the presentment estimate.
|
|
19
|
+
*/
|
|
20
|
+
export const ensureEuWithdrawalCrossRate = (sourceCurrency, targetCurrency, shipToCountry) => {
|
|
21
|
+
const key = euWithdrawalCrossRateKey(sourceCurrency, targetCurrency);
|
|
22
|
+
if (inFlightRateKeys.has(key) ||
|
|
23
|
+
euWithdrawalRateStore.crossRates[key] !== undefined) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
inFlightRateKeys.add(key);
|
|
27
|
+
void getExchangeRate({
|
|
28
|
+
country: shipToCountry,
|
|
29
|
+
isGuaranteed: false,
|
|
30
|
+
sourceCurrency,
|
|
31
|
+
targetCurrency,
|
|
32
|
+
})
|
|
33
|
+
.then(({ exchangeRate }) => {
|
|
34
|
+
var _a;
|
|
35
|
+
euWithdrawalRateStore.crossRates = Object.assign(Object.assign({}, euWithdrawalRateStore.crossRates), { [key]: (_a = exchangeRate === null || exchangeRate === void 0 ? void 0 : exchangeRate.rate) !== null && _a !== void 0 ? _a : null });
|
|
36
|
+
})
|
|
37
|
+
.finally(() => {
|
|
38
|
+
inFlightRateKeys.delete(key);
|
|
39
|
+
});
|
|
40
|
+
};
|
|
@@ -357,9 +357,11 @@ const initLocalizationStore = async () => {
|
|
|
357
357
|
'dev.demo.elements',
|
|
358
358
|
'dev.dashboard',
|
|
359
359
|
];
|
|
360
|
+
const searchParams = new URLSearchParams(window.location.search);
|
|
360
361
|
// If the country code is not set, set it to the US for development (vercel can't get geo country in dev)
|
|
361
362
|
if (!localizationStore.selectedCountryCode &&
|
|
362
|
-
devSites.some(site => window.location.origin.includes(site))
|
|
363
|
+
(devSites.some(site => window.location.origin.includes(site)) ||
|
|
364
|
+
searchParams.get('zonosQaUrl') === 'dev-elements')) {
|
|
363
365
|
// update selected country code in store
|
|
364
366
|
localizationStoreUpdateSelectedCountryCode({
|
|
365
367
|
isInitializing: true,
|
|
@@ -287,6 +287,12 @@ export const stringsArabic = {
|
|
|
287
287
|
'I agree to the [policies]': {
|
|
288
288
|
value: 'أوافق على [policies]',
|
|
289
289
|
},
|
|
290
|
+
'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs, up to a maximum [amount].': {
|
|
291
|
+
value: 'إذا اخترت لاحقًا ممارسة حقك في الانسحاب، فستكون مسؤولاً عن أي تكاليف شحن إرجاع مرتبطة بذلك، بحد أقصى [amount].',
|
|
292
|
+
},
|
|
293
|
+
'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs.': {
|
|
294
|
+
value: 'إذا اخترت لاحقًا ممارسة حقك في الانسحاب، فستكون مسؤولاً عن أي تكاليف شحن إرجاع مرتبطة بذلك.',
|
|
295
|
+
},
|
|
290
296
|
"If you select FedEx Ground as your shipping option, you'll need to complete a General Agency Agreement (GAA) after placing your order. This form allows FedEx to clear your package through Canadian customs on your behalf. FedEx will contact you directly—usually by email or phone—with instructions on how to complete the GAA. To avoid delays or the return of your package, please respond promptly to their request.": {
|
|
291
297
|
value: 'إذا اخترت FedEx Ground كخيار الشحن الخاص بك، ستحتاج إلى إكمال اتفاقية الوكالة العامة (GAA) بعد تقديم طلبك. يتيح لك هذا النموذج السماح لـ FedEx بتخليص الطرد الخاص بك من الجمارك الكندية نيابة عنك. ستتصل بك FedEx مباشرةً - عادةً عبر البريد الإلكتروني أو الهاتف - مع تعليمات حول كيفية إكمال GAA. لتجنب التأخير أو إعادة الطرد الخاص بك، يرجى الرد بسرعة على طلبهم.',
|
|
292
298
|
},
|
|
@@ -288,6 +288,12 @@ export const stringsBase = {
|
|
|
288
288
|
'I agree to the [policies]': {
|
|
289
289
|
value: 'I agree to the [policies]',
|
|
290
290
|
},
|
|
291
|
+
'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs, up to a maximum [amount].': {
|
|
292
|
+
value: 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs, up to a maximum [amount].',
|
|
293
|
+
},
|
|
294
|
+
'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs.': {
|
|
295
|
+
value: 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs.',
|
|
296
|
+
},
|
|
291
297
|
"If you select FedEx Ground as your shipping option, you'll need to complete a General Agency Agreement (GAA) after placing your order. This form allows FedEx to clear your package through Canadian customs on your behalf. FedEx will contact you directly—usually by email or phone—with instructions on how to complete the GAA. To avoid delays or the return of your package, please respond promptly to their request.": {
|
|
292
298
|
value: "If you select FedEx Ground as your shipping option, you'll need to complete a General Agency Agreement (GAA) after placing your order. This form allows FedEx to clear your package through Canadian customs on your behalf. FedEx will contact you directly—usually by email or phone—with instructions on how to complete the GAA. To avoid delays or the return of your package, please respond promptly to their request.",
|
|
293
299
|
},
|
|
@@ -287,6 +287,12 @@ export const stringsChinese = {
|
|
|
287
287
|
'I agree to the [policies]': {
|
|
288
288
|
value: '我同意[policies]',
|
|
289
289
|
},
|
|
290
|
+
'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs, up to a maximum [amount].': {
|
|
291
|
+
value: '如果您之后选择行使撤回权,您将负责相关的退货运费,最高不超过 [amount]。',
|
|
292
|
+
},
|
|
293
|
+
'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs.': {
|
|
294
|
+
value: '如果您之后选择行使撤回权,您将负责相关的退货运费。',
|
|
295
|
+
},
|
|
290
296
|
"If you select FedEx Ground as your shipping option, you'll need to complete a General Agency Agreement (GAA) after placing your order. This form allows FedEx to clear your package through Canadian customs on your behalf. FedEx will contact you directly—usually by email or phone—with instructions on how to complete the GAA. To avoid delays or the return of your package, please respond promptly to their request.": {
|
|
291
297
|
value: '如果您选择FedEx Ground作为您的运输选项,您需要在下订单后完成一般代理协议(GAA)。此表格允许FedEx代表您通过加拿大海关清关您的包裹。FedEx会直接与您联系,通常通过电子邮件或电话,提供有关如何完成GAA的说明。为避免延误或包裹退回,请及时回应他们的请求。',
|
|
292
298
|
},
|
|
@@ -287,6 +287,12 @@ export const stringsDanish = {
|
|
|
287
287
|
'I agree to the [policies]': {
|
|
288
288
|
value: 'Jeg accepterer [policies]',
|
|
289
289
|
},
|
|
290
|
+
'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs, up to a maximum [amount].': {
|
|
291
|
+
value: 'Hvis du senere vælger at gøre brug af din fortrydelsesret, er du ansvarlig for eventuelle tilknyttede returforsendelsesomkostninger, op til maksimalt [amount].',
|
|
292
|
+
},
|
|
293
|
+
'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs.': {
|
|
294
|
+
value: 'Hvis du senere vælger at gøre brug af din fortrydelsesret, er du ansvarlig for eventuelle tilknyttede returforsendelsesomkostninger.',
|
|
295
|
+
},
|
|
290
296
|
"If you select FedEx Ground as your shipping option, you'll need to complete a General Agency Agreement (GAA) after placing your order. This form allows FedEx to clear your package through Canadian customs on your behalf. FedEx will contact you directly—usually by email or phone—with instructions on how to complete the GAA. To avoid delays or the return of your package, please respond promptly to their request.": {
|
|
291
297
|
value: 'Hvis du vælger FedEx Ground som din forsendelsesmulighed, skal du udfylde en General Agency Agreement (GAA) efter at have afgivet din ordre. Denne formular giver FedEx mulighed for at fortolde din pakke gennem canadisk told på dine vegne. FedEx vil kontakte dig direkte - normalt via e-mail eller telefon - med instruktioner om, hvordan du fuldfører GAA. For at undgå forsinkelser eller returnering af din pakke, bedes du svare hurtigt på deres anmodning.',
|
|
292
298
|
},
|
|
@@ -287,6 +287,12 @@ export const stringsDutch = {
|
|
|
287
287
|
'I agree to the [policies]': {
|
|
288
288
|
value: 'Ik ga akkoord met [policies]',
|
|
289
289
|
},
|
|
290
|
+
'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs, up to a maximum [amount].': {
|
|
291
|
+
value: 'Als u er later voor kiest om uw herroepingsrecht uit te oefenen, bent u verantwoordelijk voor eventuele bijbehorende retourverzendkosten, tot een maximum van [amount].',
|
|
292
|
+
},
|
|
293
|
+
'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs.': {
|
|
294
|
+
value: 'Als u er later voor kiest om uw herroepingsrecht uit te oefenen, bent u verantwoordelijk voor eventuele bijbehorende retourverzendkosten.',
|
|
295
|
+
},
|
|
290
296
|
"If you select FedEx Ground as your shipping option, you'll need to complete a General Agency Agreement (GAA) after placing your order. This form allows FedEx to clear your package through Canadian customs on your behalf. FedEx will contact you directly—usually by email or phone—with instructions on how to complete the GAA. To avoid delays or the return of your package, please respond promptly to their request.": {
|
|
291
297
|
value: 'Als je FedEx Ground als verzendoptie selecteert, moet je na het plaatsen van je bestelling een General Agency Agreement (GAA) invullen. Dit formulier stelt FedEx in staat om je pakket namens jou door de Canadese douane te laten gaan. FedEx neemt rechtstreeks contact met je op - meestal via e-mail of telefoon - met instructies over hoe je de GAA kunt voltooien. Om vertragingen of de terugzending van je pakket te voorkomen, reageer snel op hun verzoek.',
|
|
292
298
|
},
|