@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.
Files changed (205) hide show
  1. package/dist/cjs/{cart-3ff48a0e.js → cart-f1374a56.js} +1 -1
  2. package/dist/cjs/{hasInclusivePrice-aec06153.js → hasInclusivePrice-2f1232e3.js} +1 -1
  3. package/dist/cjs/index.cjs.js +7 -7
  4. package/dist/cjs/{invoice-ff716652.js → invoice-3760bec0.js} +2 -2
  5. package/dist/cjs/{isCollectMobileTablet-3ac53cab.js → isCollectMobileTablet-d5c1a9ea.js} +2 -2
  6. package/dist/cjs/{localization-5c1c9c6a.js → localization-503c8477.js} +125 -1
  7. package/dist/cjs/{paypal-c55b6c45.js → paypal-5e9b8224.js} +2 -2
  8. package/dist/cjs/{placeTestOrder-230f534b.js → placeTestOrder-d1be2c8e.js} +2 -2
  9. package/dist/cjs/{renderCheckoutCurrency-e9d8efa8.js → renderCheckoutCurrency-4486b06e.js} +2 -2
  10. package/dist/cjs/zonos-address-display_8.cjs.entry.js +2 -2
  11. package/dist/cjs/zonos-address_4.cjs.entry.js +2 -2
  12. package/dist/cjs/zonos-card_5.cjs.entry.js +3 -3
  13. package/dist/cjs/zonos-cart-items_12.cjs.entry.js +117 -7
  14. package/dist/cjs/zonos-checkout.cjs.entry.js +3 -3
  15. package/dist/cjs/zonos-collect-cart-items_3.cjs.entry.js +2 -2
  16. package/dist/cjs/zonos-collect-finish_6.cjs.entry.js +6 -6
  17. package/dist/cjs/zonos-collect.cjs.entry.js +4 -4
  18. package/dist/cjs/zonos-controller.cjs.entry.js +2 -2
  19. package/dist/cjs/zonos-country-flag.cjs.entry.js +1 -1
  20. package/dist/cjs/zonos-country-select_4.cjs.entry.js +1 -1
  21. package/dist/cjs/zonos-hello-dialog.cjs.entry.js +2 -2
  22. package/dist/cjs/zonos-hello.cjs.entry.js +1 -1
  23. package/dist/cjs/zonos-invoice-cart-items_2.cjs.entry.js +4 -4
  24. package/dist/cjs/zonos-invoice-finish_5.cjs.entry.js +6 -6
  25. package/dist/cjs/zonos-invoice.cjs.entry.js +4 -4
  26. package/dist/cjs/zonos-language-select_2.cjs.entry.js +1 -1
  27. package/dist/cjs/zonos-policy-consent_2.cjs.entry.js +3 -3
  28. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.js +4 -1
  29. package/dist/collection/components/common/zonos-stripe-phone-input/zonos-stripe-phone-input.js +1 -1
  30. package/dist/collection/components/main/zonos-controller.js +1 -1
  31. package/dist/collection/components/store/checkout/euWithdrawalRate.js +40 -0
  32. package/dist/collection/components/store/hello/localization.js +3 -1
  33. package/dist/collection/components/store/translationStore/strings.arabic.js +6 -0
  34. package/dist/collection/components/store/translationStore/strings.base.js +6 -0
  35. package/dist/collection/components/store/translationStore/strings.chinese.js +6 -0
  36. package/dist/collection/components/store/translationStore/strings.danish.js +6 -0
  37. package/dist/collection/components/store/translationStore/strings.dutch.js +6 -0
  38. package/dist/collection/components/store/translationStore/strings.french.js +6 -0
  39. package/dist/collection/components/store/translationStore/strings.german.js +6 -0
  40. package/dist/collection/components/store/translationStore/strings.hebrew.js +6 -0
  41. package/dist/collection/components/store/translationStore/strings.indonesian.js +6 -0
  42. package/dist/collection/components/store/translationStore/strings.italian.js +6 -0
  43. package/dist/collection/components/store/translationStore/strings.japanese.js +6 -0
  44. package/dist/collection/components/store/translationStore/strings.korean.js +6 -0
  45. package/dist/collection/components/store/translationStore/strings.norwegian.js +6 -0
  46. package/dist/collection/components/store/translationStore/strings.polish.js +6 -0
  47. package/dist/collection/components/store/translationStore/strings.portuguese.js +6 -0
  48. package/dist/collection/components/store/translationStore/strings.russian.js +6 -0
  49. package/dist/collection/components/store/translationStore/strings.spanish.js +6 -0
  50. package/dist/collection/components/store/translationStore/strings.swedish.js +6 -0
  51. package/dist/collection/components/store/translationStore/strings.turkish.js +6 -0
  52. package/dist/collection/components/store/translationStore/strings.vietnamese.js +6 -0
  53. package/dist/collection/components/utils/checkout/euWithdrawalNotice.js +74 -0
  54. package/dist/collection/types/generated/graphql.internal.types.js +315 -182
  55. package/dist/esm/{cart-44fa77ef.js → cart-1415dcf0.js} +1 -1
  56. package/dist/esm/{hasInclusivePrice-f0440925.js → hasInclusivePrice-a3b0f71c.js} +1 -1
  57. package/dist/esm/index.js +7 -7
  58. package/dist/esm/{invoice-89e71796.js → invoice-117efa2c.js} +2 -2
  59. package/dist/esm/{isCollectMobileTablet-323d2ba1.js → isCollectMobileTablet-2c62fdaa.js} +2 -2
  60. package/dist/esm/{localization-066586b6.js → localization-29723d89.js} +124 -2
  61. package/dist/esm/{paypal-8725008c.js → paypal-cb5559d4.js} +2 -2
  62. package/dist/esm/{placeTestOrder-38be871e.js → placeTestOrder-443376eb.js} +2 -2
  63. package/dist/esm/{renderCheckoutCurrency-802f4481.js → renderCheckoutCurrency-8390b5bf.js} +2 -2
  64. package/dist/esm/zonos-address-display_8.entry.js +2 -2
  65. package/dist/esm/zonos-address_4.entry.js +2 -2
  66. package/dist/esm/zonos-card_5.entry.js +3 -3
  67. package/dist/esm/zonos-cart-items_12.entry.js +118 -8
  68. package/dist/esm/zonos-checkout.entry.js +3 -3
  69. package/dist/esm/zonos-collect-cart-items_3.entry.js +2 -2
  70. package/dist/esm/zonos-collect-finish_6.entry.js +6 -6
  71. package/dist/esm/zonos-collect.entry.js +4 -4
  72. package/dist/esm/zonos-controller.entry.js +2 -2
  73. package/dist/esm/zonos-country-flag.entry.js +1 -1
  74. package/dist/esm/zonos-country-select_4.entry.js +1 -1
  75. package/dist/esm/zonos-hello-dialog.entry.js +2 -2
  76. package/dist/esm/zonos-hello.entry.js +1 -1
  77. package/dist/esm/zonos-invoice-cart-items_2.entry.js +4 -4
  78. package/dist/esm/zonos-invoice-finish_5.entry.js +6 -6
  79. package/dist/esm/zonos-invoice.entry.js +4 -4
  80. package/dist/esm/zonos-language-select_2.entry.js +1 -1
  81. package/dist/esm/zonos-policy-consent_2.entry.js +3 -3
  82. package/dist/esm-es5/{cart-44fa77ef.js → cart-1415dcf0.js} +1 -1
  83. package/dist/esm-es5/{hasInclusivePrice-f0440925.js → hasInclusivePrice-a3b0f71c.js} +1 -1
  84. package/dist/esm-es5/index.js +1 -1
  85. package/dist/esm-es5/{invoice-89e71796.js → invoice-117efa2c.js} +1 -1
  86. package/dist/esm-es5/{isCollectMobileTablet-323d2ba1.js → isCollectMobileTablet-2c62fdaa.js} +1 -1
  87. package/dist/esm-es5/localization-29723d89.js +1 -0
  88. package/dist/esm-es5/{paypal-8725008c.js → paypal-cb5559d4.js} +1 -1
  89. package/dist/esm-es5/{placeTestOrder-38be871e.js → placeTestOrder-443376eb.js} +1 -1
  90. package/dist/esm-es5/{renderCheckoutCurrency-802f4481.js → renderCheckoutCurrency-8390b5bf.js} +1 -1
  91. package/dist/esm-es5/zonos-address-display_8.entry.js +1 -1
  92. package/dist/esm-es5/zonos-address_4.entry.js +1 -1
  93. package/dist/esm-es5/zonos-card_5.entry.js +1 -1
  94. package/dist/esm-es5/zonos-cart-items_12.entry.js +1 -1
  95. package/dist/esm-es5/zonos-checkout.entry.js +1 -1
  96. package/dist/esm-es5/zonos-collect-cart-items_3.entry.js +1 -1
  97. package/dist/esm-es5/zonos-collect-finish_6.entry.js +1 -1
  98. package/dist/esm-es5/zonos-collect.entry.js +1 -1
  99. package/dist/esm-es5/zonos-controller.entry.js +1 -1
  100. package/dist/esm-es5/zonos-country-flag.entry.js +1 -1
  101. package/dist/esm-es5/zonos-country-select_4.entry.js +1 -1
  102. package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
  103. package/dist/esm-es5/zonos-hello.entry.js +1 -1
  104. package/dist/esm-es5/zonos-invoice-cart-items_2.entry.js +1 -1
  105. package/dist/esm-es5/zonos-invoice-finish_5.entry.js +1 -1
  106. package/dist/esm-es5/zonos-invoice.entry.js +1 -1
  107. package/dist/esm-es5/zonos-language-select_2.entry.js +1 -1
  108. package/dist/esm-es5/zonos-policy-consent_2.entry.js +1 -1
  109. package/dist/scripts/index.d.ts +38 -3
  110. package/dist/scripts/index.js +1 -1
  111. package/dist/scripts/loadZonos.js +1 -1
  112. package/dist/scripts/zonos.js +1 -1
  113. package/dist/types/components/store/checkout/euWithdrawalRate.d.ts +19 -0
  114. package/dist/types/components/store/translationStore/strings.arabic.d.ts +6 -0
  115. package/dist/types/components/store/translationStore/strings.base.d.ts +6 -0
  116. package/dist/types/components/store/translationStore/strings.chinese.d.ts +6 -0
  117. package/dist/types/components/store/translationStore/strings.danish.d.ts +6 -0
  118. package/dist/types/components/store/translationStore/strings.dutch.d.ts +6 -0
  119. package/dist/types/components/store/translationStore/strings.french.d.ts +6 -0
  120. package/dist/types/components/store/translationStore/strings.german.d.ts +6 -0
  121. package/dist/types/components/store/translationStore/strings.hebrew.d.ts +6 -0
  122. package/dist/types/components/store/translationStore/strings.indonesian.d.ts +6 -0
  123. package/dist/types/components/store/translationStore/strings.italian.d.ts +6 -0
  124. package/dist/types/components/store/translationStore/strings.japanese.d.ts +6 -0
  125. package/dist/types/components/store/translationStore/strings.korean.d.ts +6 -0
  126. package/dist/types/components/store/translationStore/strings.norwegian.d.ts +6 -0
  127. package/dist/types/components/store/translationStore/strings.polish.d.ts +6 -0
  128. package/dist/types/components/store/translationStore/strings.portuguese.d.ts +6 -0
  129. package/dist/types/components/store/translationStore/strings.russian.d.ts +6 -0
  130. package/dist/types/components/store/translationStore/strings.spanish.d.ts +6 -0
  131. package/dist/types/components/store/translationStore/strings.swedish.d.ts +6 -0
  132. package/dist/types/components/store/translationStore/strings.turkish.d.ts +6 -0
  133. package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +6 -0
  134. package/dist/types/components/utils/checkout/euWithdrawalNotice.d.ts +9 -0
  135. package/dist/types/scripts/cart/_setupCartDataWithSettings.d.ts +8 -3
  136. package/dist/types/types/checkout/CheckoutConfig.d.ts +10 -0
  137. package/dist/types/types/generated/graphql.internal.types.d.ts +396 -218
  138. package/dist/types/types/generated/graphql.internal.types.ts +508 -258
  139. package/dist/types/types/utils/ZonosSettings.d.ts +9 -0
  140. package/dist/zonos-elements/index.esm.js +1 -1
  141. package/dist/zonos-elements/p-0fa932e6.system.js +1 -0
  142. package/dist/zonos-elements/{p-225f19b6.entry.js → p-15c2dfea.entry.js} +1 -1
  143. package/dist/zonos-elements/{p-31a3b070.system.js → p-17c7a727.system.js} +1 -1
  144. package/dist/zonos-elements/{p-fb83134b.system.entry.js → p-18c9565b.system.entry.js} +1 -1
  145. package/dist/zonos-elements/p-24aa6708.js +1 -0
  146. package/dist/zonos-elements/{p-0e9c0eff.entry.js → p-2585034d.entry.js} +1 -1
  147. package/dist/zonos-elements/p-29b60bf3.system.js +1 -1
  148. package/dist/zonos-elements/p-2cda42d5.system.js +1 -0
  149. package/dist/zonos-elements/{p-eb96d62f.entry.js → p-2d1055d5.entry.js} +1 -1
  150. package/dist/zonos-elements/{p-801dd8d8.system.js → p-318e704a.system.js} +1 -1
  151. package/dist/zonos-elements/{p-b1125711.system.js → p-3b600b89.system.js} +1 -1
  152. package/dist/zonos-elements/{p-d29dbeb3.entry.js → p-3efe0875.entry.js} +1 -1
  153. package/dist/zonos-elements/{p-5df77315.system.entry.js → p-48f3e2d2.system.entry.js} +1 -1
  154. package/dist/zonos-elements/{p-6704b83e.entry.js → p-4c94cfd3.entry.js} +1 -1
  155. package/dist/zonos-elements/{p-9e414000.js → p-53b65b80.js} +1 -1
  156. package/dist/zonos-elements/{p-e11c3410.entry.js → p-53be08c8.entry.js} +1 -1
  157. package/dist/zonos-elements/{p-fc651784.system.entry.js → p-54a9c772.system.entry.js} +1 -1
  158. package/dist/zonos-elements/p-58521b25.js +1 -0
  159. package/dist/zonos-elements/{p-7e03bd33.system.entry.js → p-5bd47a30.system.entry.js} +1 -1
  160. package/dist/zonos-elements/{p-2f61dc3c.entry.js → p-60f0ff42.entry.js} +1 -1
  161. package/dist/zonos-elements/{p-d4c966cb.entry.js → p-6609467e.entry.js} +1 -1
  162. package/dist/zonos-elements/{p-ad4c8167.system.entry.js → p-6b87101d.system.entry.js} +1 -1
  163. package/dist/zonos-elements/{p-ccd0fa8f.system.entry.js → p-73730eb9.system.entry.js} +1 -1
  164. package/dist/zonos-elements/{p-2df84888.system.entry.js → p-7536cf94.system.entry.js} +1 -1
  165. package/dist/zonos-elements/{p-72666536.system.entry.js → p-792fce17.system.entry.js} +1 -1
  166. package/dist/zonos-elements/p-7ce6b8f7.system.entry.js +1 -0
  167. package/dist/zonos-elements/{p-69ad7325.entry.js → p-7d859914.entry.js} +1 -1
  168. package/dist/zonos-elements/{p-b15ceaff.entry.js → p-831bcfb6.entry.js} +1 -1
  169. package/dist/zonos-elements/{p-08c7dc07.system.entry.js → p-9259e19b.system.entry.js} +1 -1
  170. package/dist/zonos-elements/p-93324ee5.entry.js +1 -0
  171. package/dist/zonos-elements/p-99ef86c3.js +1 -0
  172. package/dist/zonos-elements/{p-fcf3ed5c.entry.js → p-a956e28f.entry.js} +1 -1
  173. package/dist/zonos-elements/{p-bea9d128.js → p-aa3a7538.js} +1 -1
  174. package/dist/zonos-elements/{p-6ac77d9f.system.entry.js → p-aafc2155.system.entry.js} +1 -1
  175. package/dist/zonos-elements/{p-9abfb6b0.entry.js → p-b1b7d786.entry.js} +1 -1
  176. package/dist/zonos-elements/{p-a977cddd.entry.js → p-b375372e.entry.js} +1 -1
  177. package/dist/zonos-elements/{p-703f2737.system.js → p-b453ae2b.system.js} +1 -1
  178. package/dist/zonos-elements/{p-30e819ed.entry.js → p-bd2daace.entry.js} +1 -1
  179. package/dist/zonos-elements/{p-0d251428.entry.js → p-c16c7978.entry.js} +1 -1
  180. package/dist/zonos-elements/{p-208b270a.js → p-c425d3d9.js} +1 -1
  181. package/dist/zonos-elements/{p-5812b323.system.entry.js → p-c45df586.system.entry.js} +1 -1
  182. package/dist/zonos-elements/p-c935390d.js +1 -0
  183. package/dist/zonos-elements/{p-b1a4f385.system.entry.js → p-ccc8d669.system.entry.js} +1 -1
  184. package/dist/zonos-elements/{p-7792f4c2.js → p-cdea0f7d.js} +1 -1
  185. package/dist/zonos-elements/{p-acd7009a.system.entry.js → p-d2ba9e3c.system.entry.js} +1 -1
  186. package/dist/zonos-elements/{p-27beefda.system.js → p-e77dd304.system.js} +1 -1
  187. package/dist/zonos-elements/{p-d659153c.entry.js → p-ea91600a.entry.js} +1 -1
  188. package/dist/zonos-elements/{p-a2885536.system.entry.js → p-eb254a96.system.entry.js} +1 -1
  189. package/dist/zonos-elements/{p-0d2d7fc4.system.js → p-eb77dd11.system.js} +1 -1
  190. package/dist/zonos-elements/{p-91702715.entry.js → p-ee00f232.entry.js} +1 -1
  191. package/dist/zonos-elements/{p-2651ca93.system.entry.js → p-f4be6ce5.system.entry.js} +1 -1
  192. package/dist/zonos-elements/{p-5ab4bc26.system.entry.js → p-f5d9e5e5.system.entry.js} +1 -1
  193. package/dist/zonos-elements/{p-553ca694.system.entry.js → p-f98cdb98.system.entry.js} +1 -1
  194. package/dist/zonos-elements/{p-238370ad.system.js → p-fd849c69.system.js} +1 -1
  195. package/dist/zonos-elements/zonos-elements.esm.js +1 -1
  196. package/package.json +1 -1
  197. package/dist/esm-es5/localization-066586b6.js +0 -1
  198. package/dist/zonos-elements/p-0fb8b711.system.entry.js +0 -1
  199. package/dist/zonos-elements/p-260a5b57.js +0 -1
  200. package/dist/zonos-elements/p-bfcc1432.js +0 -1
  201. package/dist/zonos-elements/p-c049c527.js +0 -1
  202. package/dist/zonos-elements/p-c76ec587.system.js +0 -1
  203. package/dist/zonos-elements/p-debd2e30.js +0 -1
  204. package/dist/zonos-elements/p-ebc966d8.entry.js +0 -1
  205. 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-3ff48a0e.js');
7
- const localization = require('./localization-5c1c9c6a.js');
8
- const renderCheckoutCurrency = require('./renderCheckoutCurrency-e9d8efa8.js');
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-aec06153.js');
13
- const paypal = require('./paypal-c55b6c45.js');
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-230f534b.js');
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-3ff48a0e.js');
7
- const paypal = require('./paypal-c55b6c45.js');
8
- const localization = require('./localization-5c1c9c6a.js');
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-3ff48a0e.js');
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-5c1c9c6a.js');
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-3ff48a0e.js');
7
- const paypal = require('./paypal-c55b6c45.js');
8
- const localization = require('./localization-5c1c9c6a.js');
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-3ac53cab.js');
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-e9d8efa8.js');
18
- const placeTestOrder = require('./placeTestOrder-230f534b.js');
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-3ff48a0e.js');
7
- const isCollectMobileTablet = require('./isCollectMobileTablet-3ac53cab.js');
8
- const paypal = require('./paypal-c55b6c45.js');
9
- const localization = require('./localization-5c1c9c6a.js');
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-3ff48a0e.js');
7
- const localization = require('./localization-5c1c9c6a.js');
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-5c1c9c6a.js');
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-5c1c9c6a.js');
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-5c1c9c6a.js');
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-aec06153.js');
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-5c1c9c6a.js');
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-3ff48a0e.js');
7
- const localization = require('./localization-5c1c9c6a.js');
8
- const renderCheckoutCurrency = require('./renderCheckoutCurrency-e9d8efa8.js');
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-ff716652.js');
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-3ff48a0e.js');
7
- const paypal = require('./paypal-c55b6c45.js');
8
- const localization = require('./localization-5c1c9c6a.js');
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-ff716652.js');
18
- const renderCheckoutCurrency = require('./renderCheckoutCurrency-e9d8efa8.js');
19
- const placeTestOrder = require('./placeTestOrder-230f534b.js');
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-3ff48a0e.js');
7
- const invoice = require('./invoice-ff716652.js');
8
- const paypal = require('./paypal-c55b6c45.js');
9
- const localization = require('./localization-5c1c9c6a.js');
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-5c1c9c6a.js');
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-3ff48a0e.js');
7
- const localization = require('./localization-5c1c9c6a.js');
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-e9d8efa8.js');
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) {
@@ -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; CG: CountryFields; CH: CountryFields; CI: CountryFields; CK: CountryFields; CL: CountryFields; CM: 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; EG: 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; KG: CountryFields; KH: CountryFields; KI: CountryFields; KM: CountryFields; KN: CountryFields; KP: CountryFields; KR: CountryFields; KW: CountryFields; KY: CountryFields; KZ: CountryFields; LA: CountryFields; LB: 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; ML: CountryFields; MM: CountryFields; MN: CountryFields; MO: 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; PN: 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; }",
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\" | \"CG\" | \"CH\" | \"CI\" | \"CK\" | \"CL\" | \"CM\" | \"CN\" | \"CO\" | \"CR\" | \"CU\" | \"CV\" | \"CW\" | \"CX\" | \"CY\" | \"CZ\" | \"DE\" | \"DJ\" | \"DK\" | \"DM\" | \"DO\" | \"DZ\" | \"EC\" | \"EE\" | \"EG\" | \"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\" | \"KG\" | \"KH\" | \"KI\" | \"KM\" | \"KN\" | \"KP\" | \"KR\" | \"KW\" | \"KY\" | \"KZ\" | \"LA\" | \"LB\" | \"LC\" | \"LI\" | \"LK\" | \"LR\" | \"LS\" | \"LT\" | \"LU\" | \"LV\" | \"LY\" | \"MA\" | \"MC\" | \"MD\" | \"ME\" | \"MF\" | \"MG\" | \"MH\" | \"MK\" | \"ML\" | \"MM\" | \"MN\" | \"MO\" | \"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\" | \"PN\" | \"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\"",
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
  },