@zonos/elements 1.3.275 → 1.3.277

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 (238) hide show
  1. package/dist/cjs/{cart-73d7ecdc.js → cart-65e8da66.js} +38 -12
  2. package/dist/cjs/{collect-32ea7a37.js → collect-37c177ab.js} +2 -2
  3. package/dist/cjs/{hasInclusivePrice-38ebedfb.js → hasInclusivePrice-798ce42d.js} +1 -1
  4. package/dist/cjs/index.cjs.js +32 -9
  5. package/dist/cjs/{invoice-df662cd1.js → invoice-96f5c802.js} +2 -2
  6. package/dist/cjs/{localization-09e91031.js → localization-90650d7d.js} +60 -0
  7. package/dist/cjs/{paypal-11acb15f.js → paypal-1952f6ec.js} +2 -2
  8. package/dist/cjs/{placeTestOrder-e0f80338.js → placeTestOrder-30191a8f.js} +2 -2
  9. package/dist/cjs/{renderCheckoutCurrency-d902f973.js → renderCheckoutCurrency-fd35b4ef.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-airwallex-payment.cjs.entry.js +4 -3
  13. package/dist/cjs/zonos-card_5.cjs.entry.js +4 -3
  14. package/dist/cjs/zonos-cart-items_12.cjs.entry.js +74 -9
  15. package/dist/cjs/zonos-checkout.cjs.entry.js +4 -3
  16. package/dist/cjs/zonos-collect-cart-items_3.cjs.entry.js +3 -2
  17. package/dist/cjs/zonos-collect-finish_6.cjs.entry.js +7 -6
  18. package/dist/cjs/zonos-collect.cjs.entry.js +5 -4
  19. package/dist/cjs/zonos-controller.cjs.entry.js +18 -4
  20. package/dist/cjs/zonos-country-flag.cjs.entry.js +1 -1
  21. package/dist/cjs/zonos-country-select_4.cjs.entry.js +1 -1
  22. package/dist/cjs/zonos-hello-dialog.cjs.entry.js +2 -2
  23. package/dist/cjs/zonos-hello.cjs.entry.js +1 -1
  24. package/dist/cjs/zonos-invoice-cart-items_2.cjs.entry.js +5 -4
  25. package/dist/cjs/zonos-invoice-finish_5.cjs.entry.js +7 -6
  26. package/dist/cjs/zonos-invoice.cjs.entry.js +5 -4
  27. package/dist/cjs/zonos-language-select_2.cjs.entry.js +1 -1
  28. package/dist/cjs/zonos-policy-consent_2.cjs.entry.js +4 -3
  29. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.js +52 -1
  30. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.js +1 -1
  31. package/dist/collection/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.js +18 -2
  32. package/dist/collection/components/common/zonos-stripe-phone-input/zonos-stripe-phone-input.js +1 -1
  33. package/dist/collection/components/main/zonos-controller.js +16 -3
  34. package/dist/collection/components/store/checkout/cart.js +21 -11
  35. package/dist/collection/components/store/translationStore/strings.arabic.js +3 -0
  36. package/dist/collection/components/store/translationStore/strings.base.js +3 -0
  37. package/dist/collection/components/store/translationStore/strings.chinese.js +3 -0
  38. package/dist/collection/components/store/translationStore/strings.danish.js +3 -0
  39. package/dist/collection/components/store/translationStore/strings.dutch.js +3 -0
  40. package/dist/collection/components/store/translationStore/strings.french.js +3 -0
  41. package/dist/collection/components/store/translationStore/strings.german.js +3 -0
  42. package/dist/collection/components/store/translationStore/strings.hebrew.js +3 -0
  43. package/dist/collection/components/store/translationStore/strings.indonesian.js +3 -0
  44. package/dist/collection/components/store/translationStore/strings.italian.js +3 -0
  45. package/dist/collection/components/store/translationStore/strings.japanese.js +3 -0
  46. package/dist/collection/components/store/translationStore/strings.korean.js +3 -0
  47. package/dist/collection/components/store/translationStore/strings.norwegian.js +3 -0
  48. package/dist/collection/components/store/translationStore/strings.polish.js +3 -0
  49. package/dist/collection/components/store/translationStore/strings.portuguese.js +3 -0
  50. package/dist/collection/components/store/translationStore/strings.russian.js +3 -0
  51. package/dist/collection/components/store/translationStore/strings.spanish.js +3 -0
  52. package/dist/collection/components/store/translationStore/strings.swedish.js +3 -0
  53. package/dist/collection/components/store/translationStore/strings.turkish.js +3 -0
  54. package/dist/collection/components/store/translationStore/strings.vietnamese.js +3 -0
  55. package/dist/collection/components/utils/checkout/isEuDapRemittance.js +15 -0
  56. package/dist/collection/scripts/_loadStripe.js +20 -2
  57. package/dist/collection/scripts/_zonosBase.js +5 -0
  58. package/dist/collection/types/generated/graphql.internal.types.js +78 -0
  59. package/dist/esm/{cart-c3cd0036.js → cart-402dcde5.js} +38 -13
  60. package/dist/esm/{collect-a7a4696c.js → collect-b88fe4ca.js} +2 -2
  61. package/dist/esm/{hasInclusivePrice-93a88196.js → hasInclusivePrice-1589fef9.js} +1 -1
  62. package/dist/esm/index.js +32 -9
  63. package/dist/esm/{invoice-5a07bb03.js → invoice-5eb27944.js} +2 -2
  64. package/dist/esm/{localization-a185c345.js → localization-d49867ed.js} +60 -0
  65. package/dist/esm/{paypal-cc558697.js → paypal-2d4c9d01.js} +2 -2
  66. package/dist/esm/{placeTestOrder-92847316.js → placeTestOrder-2ba7c3f2.js} +2 -2
  67. package/dist/esm/{renderCheckoutCurrency-34aaa81e.js → renderCheckoutCurrency-ef71083e.js} +2 -2
  68. package/dist/esm/zonos-address-display_8.entry.js +2 -2
  69. package/dist/esm/zonos-address_4.entry.js +2 -2
  70. package/dist/esm/zonos-airwallex-payment.entry.js +4 -3
  71. package/dist/esm/zonos-card_5.entry.js +4 -3
  72. package/dist/esm/zonos-cart-items_12.entry.js +74 -9
  73. package/dist/esm/zonos-checkout.entry.js +4 -3
  74. package/dist/esm/zonos-collect-cart-items_3.entry.js +3 -2
  75. package/dist/esm/zonos-collect-finish_6.entry.js +7 -6
  76. package/dist/esm/zonos-collect.entry.js +5 -4
  77. package/dist/esm/zonos-controller.entry.js +18 -4
  78. package/dist/esm/zonos-country-flag.entry.js +1 -1
  79. package/dist/esm/zonos-country-select_4.entry.js +1 -1
  80. package/dist/esm/zonos-hello-dialog.entry.js +2 -2
  81. package/dist/esm/zonos-hello.entry.js +1 -1
  82. package/dist/esm/zonos-invoice-cart-items_2.entry.js +5 -4
  83. package/dist/esm/zonos-invoice-finish_5.entry.js +7 -6
  84. package/dist/esm/zonos-invoice.entry.js +5 -4
  85. package/dist/esm/zonos-language-select_2.entry.js +1 -1
  86. package/dist/esm/zonos-policy-consent_2.entry.js +4 -3
  87. package/dist/esm-es5/cart-402dcde5.js +1 -0
  88. package/dist/esm-es5/{collect-a7a4696c.js → collect-b88fe4ca.js} +1 -1
  89. package/dist/esm-es5/{hasInclusivePrice-93a88196.js → hasInclusivePrice-1589fef9.js} +1 -1
  90. package/dist/esm-es5/index.js +1 -1
  91. package/dist/esm-es5/{invoice-5a07bb03.js → invoice-5eb27944.js} +1 -1
  92. package/dist/esm-es5/localization-d49867ed.js +1 -0
  93. package/dist/esm-es5/{paypal-cc558697.js → paypal-2d4c9d01.js} +1 -1
  94. package/dist/esm-es5/{placeTestOrder-92847316.js → placeTestOrder-2ba7c3f2.js} +1 -1
  95. package/dist/esm-es5/{renderCheckoutCurrency-34aaa81e.js → renderCheckoutCurrency-ef71083e.js} +1 -1
  96. package/dist/esm-es5/zonos-address-display_8.entry.js +1 -1
  97. package/dist/esm-es5/zonos-address_4.entry.js +1 -1
  98. package/dist/esm-es5/zonos-airwallex-payment.entry.js +1 -1
  99. package/dist/esm-es5/zonos-card_5.entry.js +1 -1
  100. package/dist/esm-es5/zonos-cart-items_12.entry.js +1 -1
  101. package/dist/esm-es5/zonos-checkout.entry.js +1 -1
  102. package/dist/esm-es5/zonos-collect-cart-items_3.entry.js +1 -1
  103. package/dist/esm-es5/zonos-collect-finish_6.entry.js +1 -1
  104. package/dist/esm-es5/zonos-collect.entry.js +1 -1
  105. package/dist/esm-es5/zonos-controller.entry.js +1 -1
  106. package/dist/esm-es5/zonos-country-flag.entry.js +1 -1
  107. package/dist/esm-es5/zonos-country-select_4.entry.js +1 -1
  108. package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
  109. package/dist/esm-es5/zonos-hello.entry.js +1 -1
  110. package/dist/esm-es5/zonos-invoice-cart-items_2.entry.js +1 -1
  111. package/dist/esm-es5/zonos-invoice-finish_5.entry.js +1 -1
  112. package/dist/esm-es5/zonos-invoice.entry.js +1 -1
  113. package/dist/esm-es5/zonos-language-select_2.entry.js +1 -1
  114. package/dist/esm-es5/zonos-policy-consent_2.entry.js +1 -1
  115. package/dist/scripts/index.d.ts +23 -0
  116. package/dist/scripts/index.js +1 -1
  117. package/dist/scripts/loadZonos.js +1 -1
  118. package/dist/scripts/zonos.js +1 -1
  119. package/dist/types/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.d.ts +8 -0
  120. package/dist/types/components/store/checkout/cart.d.ts +2 -2
  121. package/dist/types/components/store/translationStore/strings.arabic.d.ts +3 -0
  122. package/dist/types/components/store/translationStore/strings.base.d.ts +3 -0
  123. package/dist/types/components/store/translationStore/strings.chinese.d.ts +3 -0
  124. package/dist/types/components/store/translationStore/strings.danish.d.ts +3 -0
  125. package/dist/types/components/store/translationStore/strings.dutch.d.ts +3 -0
  126. package/dist/types/components/store/translationStore/strings.french.d.ts +3 -0
  127. package/dist/types/components/store/translationStore/strings.german.d.ts +3 -0
  128. package/dist/types/components/store/translationStore/strings.hebrew.d.ts +3 -0
  129. package/dist/types/components/store/translationStore/strings.indonesian.d.ts +3 -0
  130. package/dist/types/components/store/translationStore/strings.italian.d.ts +3 -0
  131. package/dist/types/components/store/translationStore/strings.japanese.d.ts +3 -0
  132. package/dist/types/components/store/translationStore/strings.korean.d.ts +3 -0
  133. package/dist/types/components/store/translationStore/strings.norwegian.d.ts +3 -0
  134. package/dist/types/components/store/translationStore/strings.polish.d.ts +3 -0
  135. package/dist/types/components/store/translationStore/strings.portuguese.d.ts +3 -0
  136. package/dist/types/components/store/translationStore/strings.russian.d.ts +3 -0
  137. package/dist/types/components/store/translationStore/strings.spanish.d.ts +3 -0
  138. package/dist/types/components/store/translationStore/strings.swedish.d.ts +3 -0
  139. package/dist/types/components/store/translationStore/strings.turkish.d.ts +3 -0
  140. package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +3 -0
  141. package/dist/types/components/utils/checkout/isEuDapRemittance.d.ts +15 -0
  142. package/dist/types/scripts/_zonosBase.d.ts +12 -0
  143. package/dist/types/types/generated/graphql.internal.types.d.ts +94 -0
  144. package/dist/types/types/generated/graphql.internal.types.ts +114 -7
  145. package/dist/zonos-elements/index.esm.js +1 -1
  146. package/dist/zonos-elements/{p-ac762358.entry.js → p-0745e440.entry.js} +1 -1
  147. package/dist/zonos-elements/p-0b321037.system.entry.js +1 -0
  148. package/dist/zonos-elements/p-10715fee.system.entry.js +1 -0
  149. package/dist/zonos-elements/p-144a380d.entry.js +1 -0
  150. package/dist/zonos-elements/p-18135660.entry.js +1 -0
  151. package/dist/zonos-elements/{p-38d2da0d.entry.js → p-1e4dcd29.entry.js} +1 -1
  152. package/dist/zonos-elements/{p-3fa307d1.system.entry.js → p-293183c1.system.entry.js} +1 -1
  153. package/dist/zonos-elements/p-29b60bf3.system.js +1 -1
  154. package/dist/zonos-elements/p-2e0d813f.system.js +1 -0
  155. package/dist/zonos-elements/{p-03c357f5.system.js → p-2ea73ca2.system.js} +1 -1
  156. package/dist/zonos-elements/{p-96972001.entry.js → p-3cf22558.entry.js} +1 -1
  157. package/dist/zonos-elements/p-3cfa4880.js +1 -0
  158. package/dist/zonos-elements/p-3feff726.entry.js +1 -0
  159. package/dist/zonos-elements/p-42ba4da5.system.entry.js +1 -0
  160. package/dist/zonos-elements/p-45535a81.js +1 -0
  161. package/dist/zonos-elements/p-4596bdca.system.entry.js +1 -0
  162. package/dist/zonos-elements/p-48627415.system.entry.js +1 -0
  163. package/dist/zonos-elements/p-4a1c9fa1.entry.js +1 -0
  164. package/dist/zonos-elements/{p-3e914f69.system.entry.js → p-4a6f9c5e.system.entry.js} +1 -1
  165. package/dist/zonos-elements/p-4b06044f.js +1 -0
  166. package/dist/zonos-elements/p-4d29dcc8.entry.js +1 -0
  167. package/dist/zonos-elements/{p-79f58524.system.entry.js → p-4e6e9a3c.system.entry.js} +1 -1
  168. package/dist/zonos-elements/p-521cbeea.entry.js +1 -0
  169. package/dist/zonos-elements/p-534057ad.system.entry.js +1 -0
  170. package/dist/zonos-elements/p-55195dab.entry.js +1 -0
  171. package/dist/zonos-elements/p-58b56c69.entry.js +1 -0
  172. package/dist/zonos-elements/p-5ce88ef3.system.entry.js +1 -0
  173. package/dist/zonos-elements/{p-d6d18115.system.entry.js → p-5d3ea491.system.entry.js} +1 -1
  174. package/dist/zonos-elements/p-5e3b0ef4.entry.js +1 -0
  175. package/dist/zonos-elements/p-628fe742.system.entry.js +1 -0
  176. package/dist/zonos-elements/{p-be233925.system.js → p-647438d6.system.js} +1 -1
  177. package/dist/zonos-elements/p-684e27da.system.js +1 -0
  178. package/dist/zonos-elements/{p-863cfab2.system.js → p-6ad0f720.system.js} +2 -2
  179. package/dist/zonos-elements/p-77ac8bfe.entry.js +1 -0
  180. package/dist/zonos-elements/p-864525b4.system.entry.js +1 -0
  181. package/dist/zonos-elements/p-89befc63.system.entry.js +1 -0
  182. package/dist/zonos-elements/{p-12396d79.system.entry.js → p-998f9df5.system.entry.js} +1 -1
  183. package/dist/zonos-elements/p-9fab45aa.system.js +1 -0
  184. package/dist/zonos-elements/{p-9cb80484.js → p-a02ff788.js} +1 -1
  185. package/dist/zonos-elements/{p-e3376f43.js → p-a3bc7e97.js} +1 -1
  186. package/dist/zonos-elements/{p-a1f59d6d.system.entry.js → p-a7050d1e.system.entry.js} +1 -1
  187. package/dist/zonos-elements/p-ac1b60c8.system.entry.js +1 -0
  188. package/dist/zonos-elements/{p-819f182e.entry.js → p-ac9b9f7d.entry.js} +1 -1
  189. package/dist/zonos-elements/{p-a7028453.js → p-b1c86a5b.js} +1 -1
  190. package/dist/zonos-elements/p-b79989a6.entry.js +1 -0
  191. package/dist/zonos-elements/p-b7e4f1f5.entry.js +1 -0
  192. package/dist/zonos-elements/p-c209e36d.js +1 -0
  193. package/dist/zonos-elements/p-c750a2e0.system.entry.js +1 -0
  194. package/dist/zonos-elements/{p-f97da77c.entry.js → p-d5945ddc.entry.js} +1 -1
  195. package/dist/zonos-elements/p-d7bda14d.js +1 -0
  196. package/dist/zonos-elements/p-d90e79e4.system.js +1 -0
  197. package/dist/zonos-elements/{p-216d31ca.entry.js → p-ee434a71.entry.js} +1 -1
  198. package/dist/zonos-elements/{p-3ea7643b.system.js → p-f2768c92.system.js} +1 -1
  199. package/dist/zonos-elements/{p-3980e553.system.js → p-f2d50796.system.js} +1 -1
  200. package/dist/zonos-elements/{p-a9d01bfa.entry.js → p-f3a73132.entry.js} +1 -1
  201. package/dist/zonos-elements/{p-4900096c.system.entry.js → p-ffbf87c8.system.entry.js} +1 -1
  202. package/dist/zonos-elements/zonos-elements.esm.js +1 -1
  203. package/package.json +1 -1
  204. package/dist/esm-es5/cart-c3cd0036.js +0 -1
  205. package/dist/esm-es5/localization-a185c345.js +0 -1
  206. package/dist/zonos-elements/p-043e9a84.js +0 -1
  207. package/dist/zonos-elements/p-1906c8f7.js +0 -1
  208. package/dist/zonos-elements/p-1de258c3.js +0 -1
  209. package/dist/zonos-elements/p-2b2122bc.system.entry.js +0 -1
  210. package/dist/zonos-elements/p-2bdfa429.system.js +0 -1
  211. package/dist/zonos-elements/p-2c0a627d.js +0 -1
  212. package/dist/zonos-elements/p-387f33ae.js +0 -1
  213. package/dist/zonos-elements/p-391ea5c2.entry.js +0 -1
  214. package/dist/zonos-elements/p-3f8050ab.entry.js +0 -1
  215. package/dist/zonos-elements/p-51b537a6.system.entry.js +0 -1
  216. package/dist/zonos-elements/p-5427bf51.entry.js +0 -1
  217. package/dist/zonos-elements/p-577b543c.entry.js +0 -1
  218. package/dist/zonos-elements/p-5ce8b3c3.system.entry.js +0 -1
  219. package/dist/zonos-elements/p-70fd21c4.system.entry.js +0 -1
  220. package/dist/zonos-elements/p-785d6f43.entry.js +0 -1
  221. package/dist/zonos-elements/p-8873d332.system.entry.js +0 -1
  222. package/dist/zonos-elements/p-9295b932.entry.js +0 -1
  223. package/dist/zonos-elements/p-93c6c2df.system.entry.js +0 -1
  224. package/dist/zonos-elements/p-9d80357b.entry.js +0 -1
  225. package/dist/zonos-elements/p-a2353242.system.entry.js +0 -1
  226. package/dist/zonos-elements/p-a33e1549.system.entry.js +0 -1
  227. package/dist/zonos-elements/p-b376aba7.system.entry.js +0 -1
  228. package/dist/zonos-elements/p-b9034a75.system.entry.js +0 -1
  229. package/dist/zonos-elements/p-b9359002.system.entry.js +0 -1
  230. package/dist/zonos-elements/p-c68a7f3e.entry.js +0 -1
  231. package/dist/zonos-elements/p-d1f2e532.system.js +0 -1
  232. package/dist/zonos-elements/p-d62dab88.system.js +0 -1
  233. package/dist/zonos-elements/p-e562d953.system.js +0 -1
  234. package/dist/zonos-elements/p-e5f25b27.entry.js +0 -1
  235. package/dist/zonos-elements/p-e9e3c951.system.entry.js +0 -1
  236. package/dist/zonos-elements/p-ee70bd2e.entry.js +0 -1
  237. package/dist/zonos-elements/p-ee920b9b.entry.js +0 -1
  238. package/dist/zonos-elements/p-fb830355.entry.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-73d7ecdc.js');
7
- const localization = require('./localization-09e91031.js');
8
- const renderCheckoutCurrency = require('./renderCheckoutCurrency-d902f973.js');
6
+ const cart = require('./cart-65e8da66.js');
7
+ const localization = require('./localization-90650d7d.js');
8
+ const renderCheckoutCurrency = require('./renderCheckoutCurrency-fd35b4ef.js');
9
9
  const cleanHtmlMarkdown = require('./cleanHtmlMarkdown-57147de7.js');
10
10
  const classes = require('./classes-b7918f56.js');
11
11
  const zonosStore = require('./zonosStore-fee716c9.js');
12
- const hasInclusivePrice = require('./hasInclusivePrice-38ebedfb.js');
13
- const paypal = require('./paypal-11acb15f.js');
12
+ const hasInclusivePrice = require('./hasInclusivePrice-798ce42d.js');
13
+ const paypal = require('./paypal-1952f6ec.js');
14
14
  const handleFetch = require('./handleFetch-954f30e1.js');
15
15
  const createCustomEvent = require('./createCustomEvent-7b6fad95.js');
16
16
  const getBorderRadius = require('./getBorderRadius-4da24d7c.js');
17
17
  const VarianceTest = require('./VarianceTest-bec00ea8.js');
18
18
  const ILanguage = require('./ILanguage-98b04442.js');
19
- const placeTestOrder = require('./placeTestOrder-e0f80338.js');
19
+ const placeTestOrder = require('./placeTestOrder-30191a8f.js');
20
20
  const isDarkColor = require('./isDarkColor-ebc74b4d.js');
21
21
  const getContrastColor = require('./getContrastColor-2fb235b8.js');
22
22
  const isColorVariable = require('./isColorVariable-525dbfa7.js');
@@ -266,6 +266,41 @@ const ZonosCartSubtotal = class {
266
266
  }
267
267
  return null;
268
268
  };
269
+ /**
270
+ * EU 3-EUR cutover (05CHECK-893): for EU remittance quotes that we keep as DAP
271
+ * (see [[isEuDapRemittance]]), taxes and fees are included in the checkout
272
+ * total while duties are paid upon delivery. Returns the foreign (presentment)
273
+ * estimates needed for the dedicated message, or `null` when the selected
274
+ * quote isn't this case.
275
+ */
276
+ this.getEuDapDetails = () => {
277
+ var _a, _b, _c, _d, _e, _f;
278
+ const selectedLandedCost = cart.cartStore.selectedLandedCost;
279
+ const landedCost = selectedLandedCost === null || selectedLandedCost === void 0 ? void 0 : selectedLandedCost.landedCost;
280
+ if (!landedCost) {
281
+ return null;
282
+ }
283
+ const isEuDap = cart.isEuDapRemittance({
284
+ deliveryType: (_b = (_a = cart.cartStore.selectedShippingOption) === null || _a === void 0 ? void 0 : _a.shippingProfile) === null || _b === void 0 ? void 0 : _b.serviceLevel.deliveryType,
285
+ landedCost,
286
+ shipToCountry: (_c = cart.stripeStore.stripeAddressEventData) === null || _c === void 0 ? void 0 : _c.value.address.country,
287
+ });
288
+ if (!isEuDap) {
289
+ return null;
290
+ }
291
+ // Landed cost amounts are in the source currency; convert to presentment.
292
+ const exchangeRate = selectedLandedCost.subtotals.exchangeRate.rate;
293
+ const sumAmounts = (amounts) => amounts.reduce((total, { amount }) => total + amount, 0);
294
+ // Taxes and fees are collected at checkout, so use the checkout session
295
+ // subtotals (already in presentment currency) — this is what the shopper
296
+ // actually pays. Duties are not collected (paid on delivery), so they come
297
+ // from the landed cost estimate converted to presentment.
298
+ const checkoutSubtotals = (_d = cart.cartStore.checkoutSession) === null || _d === void 0 ? void 0 : _d.subtotals;
299
+ return {
300
+ dutiesEstimate: sumAmounts(landedCost.duties) * exchangeRate,
301
+ taxesAndFeesEstimate: ((_e = checkoutSubtotals === null || checkoutSubtotals === void 0 ? void 0 : checkoutSubtotals.taxes) !== null && _e !== void 0 ? _e : 0) + ((_f = checkoutSubtotals === null || checkoutSubtotals === void 0 ? void 0 : checkoutSubtotals.fees) !== null && _f !== void 0 ? _f : 0),
302
+ };
303
+ };
269
304
  }
270
305
  render() {
271
306
  var _a, _b, _c, _d, _e;
@@ -274,6 +309,9 @@ const ZonosCartSubtotal = class {
274
309
  ? cart.cartStore.subtotal + cart.cartStore.adjustmentTotal
275
310
  : cart.cartStore.total;
276
311
  const showDutyTaxesInfo = cart.cartStore.step === 'payment' || cart.cartStore.step === 'shipping';
312
+ // EU 3-EUR cutover (05CHECK-893): when we collect and remit taxes for an EU
313
+ // DAP quote, taxes and fees are included while duties are paid on delivery.
314
+ const euDapDetails = this.getEuDapDetails();
277
315
  // Show 0 for subtotal and total when all items are restricted
278
316
  const total = cart.cartStoreHasOneEligibleItem() ? cartTotal : 0;
279
317
  // Total is in target currency, devide by target rate to get base currency
@@ -372,7 +410,19 @@ const ZonosCartSubtotal = class {
372
410
  amount: cart.cartStore.shipping,
373
411
  isForeign: true,
374
412
  })
375
- : '-')), showDutyTaxesInfo && (index.h("tr", { class: "zonos--row zonos--cart-duties" }, index.h("td", { class: "zonos--column" }), renderLandedCost())), shouldRenderPromoInput && (index.h("tr", { class: "zonos--row zonos--cart-promo-code" }, index.h("td", { class: "zonos--column" }), !!appliedPromoCode ? (index.h(index.Fragment, null, index.h("td", { class: "zonos--column zonos--cart-promo-code-col" }, this.loading ? (index.h("zonos-spinner", { size: 16 })) : (index.h("zonos-badge", { dismissHandler: () => removePromoCode() }, cart.cartStore.promoCode))), index.h("td", { class: "zonos--column zonos--cart-promo-code-col" }))) : (index.h("td", { class: "zonos--column zonos--cart-promo-code-col", colSpan: 2 }, index.h("div", { class: "zonos--cart-promo-code-input-wrapper" }, index.h("zonos-input", { class: "zonos--cart-promo-code-input", inputLabel: localization.translate('Add promotional code'), inputValue: cart.cartStore.promoCode, isError: cart.cartStore.promoCodeError, onInputChange: e => (cart.cartStore.promoCode = e.detail.trim()), onKeyDown: e => {
413
+ : '-')), showDutyTaxesInfo &&
414
+ (euDapDetails ? (
415
+ // EU DAP remittance: taxes and fees are collected/included, duties
416
+ // are estimated and paid upon delivery — show them on two lines.
417
+ index.h(index.Fragment, null, index.h("tr", { class: "zonos--row zonos--cart-duties" }, index.h("td", { class: "zonos--column" }), index.h("td", { class: "zonos--column zonos--cart-subtotal-title zonos--landed-cost" }, index.h("zonos-text", { class: "zonos--title", type: "semiBoldLabel" }, localization.translate('Taxes and fees'))), index.h("td", { class: "zonos--column zonos--cart-subtotal-price zonos--landed-cost" }, index.h("div", { class: "zonos--cart-duty-tax-price" }, renderCheckoutCurrency.renderCheckoutCurrency({
418
+ amount: euDapDetails.taxesAndFeesEstimate,
419
+ isForeign: true,
420
+ })))), index.h("tr", { class: "zonos--row zonos--cart-duties" }, index.h("td", { class: "zonos--column" }), index.h("td", { class: "zonos--column zonos--cart-subtotal-title zonos--landed-cost" }, index.h("zonos-text", { class: "zonos--title", type: "semiBoldLabel" }, localization.translate('Duties')), localization.translate('Estimated [amount]', {
421
+ amount: renderCheckoutCurrency.renderCheckoutCurrency({
422
+ amount: euDapDetails.dutiesEstimate,
423
+ isForeign: true,
424
+ }),
425
+ })), index.h("td", { class: "zonos--column zonos--cart-subtotal-price zonos--landed-cost" }, index.h("div", { class: "zonos--cart-duty-tax-price" }, localization.translate('Due at delivery')))))) : (index.h("tr", { class: "zonos--row zonos--cart-duties" }, index.h("td", { class: "zonos--column" }), renderLandedCost()))), shouldRenderPromoInput && (index.h("tr", { class: "zonos--row zonos--cart-promo-code" }, index.h("td", { class: "zonos--column" }), !!appliedPromoCode ? (index.h(index.Fragment, null, index.h("td", { class: "zonos--column zonos--cart-promo-code-col" }, this.loading ? (index.h("zonos-spinner", { size: 16 })) : (index.h("zonos-badge", { dismissHandler: () => removePromoCode() }, cart.cartStore.promoCode))), index.h("td", { class: "zonos--column zonos--cart-promo-code-col" }))) : (index.h("td", { class: "zonos--column zonos--cart-promo-code-col", colSpan: 2 }, index.h("div", { class: "zonos--cart-promo-code-input-wrapper" }, index.h("zonos-input", { class: "zonos--cart-promo-code-input", inputLabel: localization.translate('Add promotional code'), inputValue: cart.cartStore.promoCode, isError: cart.cartStore.promoCodeError, onInputChange: e => (cart.cartStore.promoCode = e.detail.trim()), onKeyDown: e => {
376
426
  if (e.key === 'Enter') {
377
427
  void applyPromoCode();
378
428
  }
@@ -2466,11 +2516,12 @@ const ZonosShipping = class {
2466
2516
  : '';
2467
2517
  const matchedLandedCosts = (_a = cart.cartStore.landedCostData) === null || _a === void 0 ? void 0 : _a.filter(landedCostItem => { var _a; return ((_a = landedCostItem.landedCost) === null || _a === void 0 ? void 0 : _a.shipmentRating.id) === item.id; });
2468
2518
  return ((matchedLandedCosts === null || matchedLandedCosts === void 0 ? void 0 : matchedLandedCosts.map(landedCost => {
2519
+ var _a;
2469
2520
  const shippingAmount = landedCost.subtotals.shipping;
2470
2521
  /**
2471
2522
  * For some service levels, the landed cost that's DAP and we do remittance on behalf of the merchant, these landed cost should be treated as DDP
2472
2523
  */
2473
- const method = cart.cartStoreGetMethod(landedCost.landedCost);
2524
+ const method = cart.cartStoreGetMethod(landedCost.landedCost, (_a = item.shippingProfile) === null || _a === void 0 ? void 0 : _a.serviceLevel.deliveryType);
2474
2525
  const option = {
2475
2526
  amount: shippingAmount,
2476
2527
  label: `${item.displayName}${this.getLandedCostMethodLabelSuffix(method)}`,
@@ -2556,6 +2607,7 @@ const ZonosShipping = class {
2556
2607
  void this.preselectFirstShippingMethod();
2557
2608
  }
2558
2609
  render() {
2610
+ var _a;
2559
2611
  // re-init service levels if the currency is toggled
2560
2612
  if (this.isCurrencyToggled()) {
2561
2613
  this.initServiceLevels();
@@ -2564,6 +2616,17 @@ const ZonosShipping = class {
2564
2616
  ...this.serviceLevelsDDP,
2565
2617
  ...this.serviceLevelsOther,
2566
2618
  ];
2619
+ // EU 3-EUR cutover (05CHECK-893): when we collect and remit taxes for an EU
2620
+ // POSTAL DAP quote, only duties (not taxes) are charged upon delivery. The
2621
+ // delivery type lives on the shipment rating, so match it by id.
2622
+ const isEuDapRemittanceQuote = !!((_a = cart.cartStore.landedCostData) === null || _a === void 0 ? void 0 : _a.some(landedCostData => {
2623
+ var _a, _b, _c, _d;
2624
+ return cart.isEuDapRemittance({
2625
+ deliveryType: (_c = (_b = (_a = cart.cartStore.shippingData) === null || _a === void 0 ? void 0 : _a.find(shipmentRating => shipmentRating.id === landedCostData.landedCost.shipmentRating.id)) === null || _b === void 0 ? void 0 : _b.shippingProfile) === null || _c === void 0 ? void 0 : _c.serviceLevel.deliveryType,
2626
+ landedCost: landedCostData.landedCost,
2627
+ shipToCountry: (_d = cart.stripeStore.stripeAddressEventData) === null || _d === void 0 ? void 0 : _d.value.address.country,
2628
+ });
2629
+ }));
2567
2630
  // start validate on typing after error banner is shown, and hide it if the form is complete
2568
2631
  if (this.showErrorBanner) {
2569
2632
  this.showErrorBanner = !this.handleValidate();
@@ -2580,7 +2643,9 @@ const ZonosShipping = class {
2580
2643
  this.collapsedDAPOptions && 'collapsed',
2581
2644
  ]), onClick: () => {
2582
2645
  this.collapsedDAPOptions = !this.collapsedDAPOptions;
2583
- } }, index.h("div", { class: "zonos--title-wrapper" }, index.h("zonos-text", { type: "label" }, `${localization.translate(this.collapsedDAPOptions ? 'Show non-prepaid options' : 'Hide non-prepaid options')} `), index.h("zonos-icon", { content: ChevronUpIcon })))), index.h("zonos-collapse", { collapsed: this.collapsedDAPOptions }, index.h("div", { class: "zonos--dap-wrapper" }, index.h("zonos-banner", { bannerTitle: localization.translate('Duties and taxes will be charged upon delivery.'), intent: "warning" }, localization.translate('You may incur additional fees from the shipping carrier by not prepaying.')), index.h("zonos-shipping-rich-radio", { isMobile: this.isMobile, items: this.serviceLevelsDAP, onRadioSelected: e => this.handleRadioSelected(e), selectedItem: this.selectedShippingMethod })))));
2646
+ } }, index.h("div", { class: "zonos--title-wrapper" }, index.h("zonos-text", { type: "label" }, `${localization.translate(this.collapsedDAPOptions ? 'Show non-prepaid options' : 'Hide non-prepaid options')} `), index.h("zonos-icon", { content: ChevronUpIcon })))), index.h("zonos-collapse", { collapsed: this.collapsedDAPOptions }, index.h("div", { class: "zonos--dap-wrapper" }, index.h("zonos-banner", { bannerTitle: localization.translate(isEuDapRemittanceQuote
2647
+ ? 'Duties will be charged upon delivery.'
2648
+ : 'Duties and taxes will be charged upon delivery.'), intent: "warning" }, localization.translate('You may incur additional fees from the shipping carrier by not prepaying.')), index.h("zonos-shipping-rich-radio", { isMobile: this.isMobile, items: this.serviceLevelsDAP, onRadioSelected: e => this.handleRadioSelected(e), selectedItem: this.selectedShippingMethod })))));
2584
2649
  };
2585
2650
  return (index.h(index.Host, { class: classes.classes([
2586
2651
  'zonos--shipping zonos--elements',
@@ -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-73d7ecdc.js');
7
- const paypal = require('./paypal-11acb15f.js');
8
- const localization = require('./localization-09e91031.js');
6
+ const cart = require('./cart-65e8da66.js');
7
+ const paypal = require('./paypal-1952f6ec.js');
8
+ const localization = require('./localization-90650d7d.js');
9
9
  const zonosStore = require('./zonosStore-fee716c9.js');
10
10
  const buildCartItemsByTempCart = require('./buildCartItemsByTempCart-edddbf4b.js');
11
11
  const handleFetch = require('./handleFetch-954f30e1.js');
@@ -18,6 +18,7 @@ const getBorderRadius = require('./getBorderRadius-4da24d7c.js');
18
18
  const isDarkColor = require('./isDarkColor-ebc74b4d.js');
19
19
  const styles = require('./styles-d1e64fb9.js');
20
20
  const RemoveIcon = require('./RemoveIcon-081ac073.js');
21
+ require('./TaxId-12acedde.js');
21
22
  require('./isContrastColor-ef24b7aa.js');
22
23
  require('./submitGtag-74762255.js');
23
24
  require('./debounce-9a712c79.js');
@@ -3,16 +3,17 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-b1f95d96.js');
6
- const cart = require('./cart-73d7ecdc.js');
6
+ const cart = require('./cart-65e8da66.js');
7
7
  const cleanHtmlMarkdown = require('./cleanHtmlMarkdown-57147de7.js');
8
8
  const zonosStore = require('./zonosStore-fee716c9.js');
9
9
  const classes = require('./classes-b7918f56.js');
10
10
  const styles = require('./styles-d1e64fb9.js');
11
- require('./localization-09e91031.js');
11
+ require('./localization-90650d7d.js');
12
12
  require('./handleFetch-954f30e1.js');
13
13
  require('./VarianceTest-bec00ea8.js');
14
14
  require('./isDarkColor-ebc74b4d.js');
15
15
  require('./getBorderRadius-4da24d7c.js');
16
+ require('./TaxId-12acedde.js');
16
17
 
17
18
  const zonosCollectCartItemsCss = ":host{font-family:var(--zonos--font-family, Inter), Inter;display:block;white-space:normal}:host *{font-family:var(--zonos--font-family, Inter), Inter}:host img{max-width:100%}:host dl,:host dd,:host h1,:host h2,:host h3,:host h4,:host h5,:host h6,:host hr,:host figure,:host p,:host pre{margin:0}:host{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}:host .zonos--cart-table{width:100%;border:none;border-collapse:collapse;overflow:auto;font-size:var(--zonos-elements-font-size-base)}:host .zonos--cart-table .zonos--column{padding:8px;padding-left:0;font-size:var(--zonos-elements-font-size-base)}:host .zonos--cart-table .zonos--column:first-child{width:48px}:host .zonos--cart-table td{vertical-align:middle}:host .zonos--cart-item-price zonos-text{white-space:nowrap}:host img{min-width:40px;margin-top:6px;-webkit-box-shadow:0 0 0 1px rgba(110, 110, 120, 0.1), 0 1px 2px 0 rgba(10, 10, 11, 0.06), 0 1px 3px 0 rgba(10, 10, 11, 0.1);box-shadow:0 0 0 1px rgba(110, 110, 120, 0.1), 0 1px 2px 0 rgba(10, 10, 11, 0.06), 0 1px 3px 0 rgba(10, 10, 11, 0.1);border-radius:10px}";
18
19
  const ZonosCollectCartItemsStyle0 = zonosCollectCartItemsCss;
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-b1f95d96.js');
6
- const collect = require('./collect-32ea7a37.js');
7
- const cart = require('./cart-73d7ecdc.js');
8
- const paypal = require('./paypal-11acb15f.js');
9
- const localization = require('./localization-09e91031.js');
6
+ const collect = require('./collect-37c177ab.js');
7
+ const cart = require('./cart-65e8da66.js');
8
+ const paypal = require('./paypal-1952f6ec.js');
9
+ const localization = require('./localization-90650d7d.js');
10
10
  const zonosStore = require('./zonosStore-fee716c9.js');
11
11
  const handleFetch = require('./handleFetch-954f30e1.js');
12
12
  const createCustomEvent = require('./createCustomEvent-7b6fad95.js');
@@ -15,10 +15,11 @@ const VarianceTest = require('./VarianceTest-bec00ea8.js');
15
15
  const isCollectMobileTablet = require('./isCollectMobileTablet-884d4280.js');
16
16
  const classes = require('./classes-b7918f56.js');
17
17
  const ILanguage = require('./ILanguage-98b04442.js');
18
- const renderCheckoutCurrency = require('./renderCheckoutCurrency-d902f973.js');
19
- const placeTestOrder = require('./placeTestOrder-e0f80338.js');
18
+ const renderCheckoutCurrency = require('./renderCheckoutCurrency-fd35b4ef.js');
19
+ const placeTestOrder = require('./placeTestOrder-30191a8f.js');
20
20
  const renderFallback = require('./renderFallback-bc20ee20.js');
21
21
  require('./isDarkColor-ebc74b4d.js');
22
+ require('./TaxId-12acedde.js');
22
23
  require('./isContrastColor-ef24b7aa.js');
23
24
  require('./submitGtag-74762255.js');
24
25
 
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-b1f95d96.js');
6
- const collect = require('./collect-32ea7a37.js');
7
- const cart = require('./cart-73d7ecdc.js');
8
- const paypal = require('./paypal-11acb15f.js');
9
- const localization = require('./localization-09e91031.js');
6
+ const collect = require('./collect-37c177ab.js');
7
+ const cart = require('./cart-65e8da66.js');
8
+ const paypal = require('./paypal-1952f6ec.js');
9
+ const localization = require('./localization-90650d7d.js');
10
10
  const zonosStore = require('./zonosStore-fee716c9.js');
11
11
  const buildCartItemsByTempCart = require('./buildCartItemsByTempCart-edddbf4b.js');
12
12
  const handleFetch = require('./handleFetch-954f30e1.js');
@@ -17,6 +17,7 @@ const renderFallback = require('./renderFallback-bc20ee20.js');
17
17
  const ILanguage = require('./ILanguage-98b04442.js');
18
18
  require('./isDarkColor-ebc74b4d.js');
19
19
  require('./getBorderRadius-4da24d7c.js');
20
+ require('./TaxId-12acedde.js');
20
21
  require('./isContrastColor-ef24b7aa.js');
21
22
  require('./submitGtag-74762255.js');
22
23
 
@@ -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-73d7ecdc.js');
7
- const localization = require('./localization-09e91031.js');
6
+ const cart = require('./cart-65e8da66.js');
7
+ const localization = require('./localization-90650d7d.js');
8
8
  const zonosStore = require('./zonosStore-fee716c9.js');
9
9
  const getGenericSettingsOverride = require('./getGenericSettingsOverride-c0ca32b9.js');
10
10
  const handleFetch = require('./handleFetch-954f30e1.js');
@@ -12,6 +12,7 @@ const VarianceTest = require('./VarianceTest-bec00ea8.js');
12
12
  const submitGtag = require('./submitGtag-74762255.js');
13
13
  require('./isDarkColor-ebc74b4d.js');
14
14
  require('./getBorderRadius-4da24d7c.js');
15
+ require('./TaxId-12acedde.js');
15
16
 
16
17
  const getZonosSettings = async () => {
17
18
  if (window.Zonos.cartSettings) {
@@ -721,7 +722,7 @@ const ZonosController = class {
721
722
  zonosStore.zonosStore.zonosApiKey = this.zonosApiKey;
722
723
  // running with scope async function to avoid blocking the main thread
723
724
  (async () => {
724
- var _a, _b, _c, _d;
725
+ var _a, _b, _c, _d, _e, _f;
725
726
  const { errors, json, zonosMode } = await getZonosSettings();
726
727
  if (((_b = (_a = errors[0]) === null || _a === void 0 ? void 0 : _a.type) === null || _b === void 0 ? void 0 : _b.toString()) === '403') {
727
728
  VarianceTest.log('Failed to load zonos settings. This domain may not have access', 'warn');
@@ -790,6 +791,19 @@ const ZonosController = class {
790
791
  VarianceTest.log('zonos controller loaded');
791
792
  return;
792
793
  }
794
+ const hasCartCallback =
795
+ // eslint-disable-next-line deprecation/deprecation -- gating Stripe load also honors the legacy callback
796
+ typeof ((_e = zonosStore.zonosStore.checkoutSettings) === null || _e === void 0 ? void 0 : _e.buildCartDetail) === 'function' ||
797
+ typeof ((_f = zonosStore.zonosStore.checkoutSettings) === null || _f === void 0 ? void 0 : _f.createCartId) === 'function';
798
+ // Checkout also runs without merchant cart callbacks when a cart is
799
+ // prefetched (e.g. `tempCartUUID` -> `cartData`) or when resuming a
800
+ // payment via the Stripe client secret. Stripe must still load for those.
801
+ const clientSecret = new URL(window.location.href).searchParams.get('payment_intent_client_secret') || sessionStorage.getItem('zonos--client-secret');
802
+ const hasPrefetchedCheckoutContext = !!(window.Zonos.cartId && window.Zonos.cartData) || !!clientSecret;
803
+ if (!hasCartCallback && !hasPrefetchedCheckoutContext) {
804
+ VarianceTest.log(`Skip loading Stripe because no cart callback (buildCartDetail/createCartId), prefetched cart, or payment client secret is present`, 'warn');
805
+ return;
806
+ }
793
807
  // send publishable key out to load stripe
794
808
  this.stripeInitEvent.emit({
795
809
  publishableKey: publishableKey.token,
@@ -849,7 +863,7 @@ const ZonosController = class {
849
863
  zonosStore.zonosStore.organizationName = organizationName;
850
864
  }
851
865
  render() {
852
- return index.h(index.Host, { key: '172f5c893940145cc2eb84c721783bc64332d3dc', class: "zonos--elements" });
866
+ return index.h(index.Host, { key: '925af89a63419b44e6372de48c66e0898d039ae0', class: "zonos--elements" });
853
867
  }
854
868
  };
855
869
  ZonosController.style = ZonosControllerStyle0;
@@ -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-09e91031.js');
6
+ const localization = require('./localization-90650d7d.js');
7
7
  const zonosStore = require('./zonosStore-fee716c9.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-09e91031.js');
6
+ const localization = require('./localization-90650d7d.js');
7
7
  const zonosStore = require('./zonosStore-fee716c9.js');
8
8
  const formatStringWithLinks = require('./formatStringWithLinks-52341fc7.js');
9
9
  const isDarkColor = require('./isDarkColor-ebc74b4d.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-09e91031.js');
6
+ const localization = require('./localization-90650d7d.js');
7
7
  const zonosStore = require('./zonosStore-fee716c9.js');
8
8
  const classes = require('./classes-b7918f56.js');
9
9
  const formatStringWithLinks = require('./formatStringWithLinks-52341fc7.js');
10
- const hasInclusivePrice = require('./hasInclusivePrice-38ebedfb.js');
10
+ const hasInclusivePrice = require('./hasInclusivePrice-798ce42d.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-9a712c79.js');
7
- const localization = require('./localization-09e91031.js');
7
+ const localization = require('./localization-90650d7d.js');
8
8
  const zonosStore = require('./zonosStore-fee716c9.js');
9
9
  const classes = require('./classes-b7918f56.js');
10
10
  const handleFetch = require('./handleFetch-954f30e1.js');
@@ -3,17 +3,18 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-b1f95d96.js');
6
- const cart = require('./cart-73d7ecdc.js');
7
- const localization = require('./localization-09e91031.js');
8
- const renderCheckoutCurrency = require('./renderCheckoutCurrency-d902f973.js');
6
+ const cart = require('./cart-65e8da66.js');
7
+ const localization = require('./localization-90650d7d.js');
8
+ const renderCheckoutCurrency = require('./renderCheckoutCurrency-fd35b4ef.js');
9
9
  const classes = require('./classes-b7918f56.js');
10
- const invoice = require('./invoice-df662cd1.js');
10
+ const invoice = require('./invoice-96f5c802.js');
11
11
  const renderFallback = require('./renderFallback-bc20ee20.js');
12
12
  require('./zonosStore-fee716c9.js');
13
13
  require('./VarianceTest-bec00ea8.js');
14
14
  require('./handleFetch-954f30e1.js');
15
15
  require('./isDarkColor-ebc74b4d.js');
16
16
  require('./getBorderRadius-4da24d7c.js');
17
+ require('./TaxId-12acedde.js');
17
18
 
18
19
  const zonosInvoiceCartItemsCss = ":host{font-family:var(--zonos--font-family, Inter), Inter;display:block;white-space:normal}:host *{font-family:var(--zonos--font-family, Inter), Inter}:host img{max-width:100%}:host dl,:host dd,:host h1,:host h2,:host h3,:host h4,:host h5,:host h6,:host hr,:host figure,:host p,:host pre{margin:0}:host{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}:host .zonos--cart-table{width:100%;border:none;border-collapse:collapse;overflow:auto;font-size:var(--zonos-elements-font-size-base)}:host .zonos--cart-table .zonos--column{padding:8px;padding-left:0;font-size:var(--zonos-elements-font-size-base)}:host .zonos--cart-table .zonos--column:last-child{text-align:right;padding-right:0}:host .zonos--cart-table .zonos--column:first-child{padding-left:0;width:50px}:host .zonos--cart-table .zonos--cart-item-link{text-align:left}:host .zonos--cart-table .zonos--cart-item-created-at{text-align:right}:host .zonos--cart-table td{vertical-align:middle}:host .zonos--cart-item-price zonos-text{white-space:nowrap}:host(.mobile) table{margin-top:16px}:host(.mobile) table td{vertical-align:top}";
19
20
  const ZonosInvoiceCartItemsStyle0 = zonosInvoiceCartItemsCss;
@@ -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-73d7ecdc.js');
7
- const paypal = require('./paypal-11acb15f.js');
8
- const localization = require('./localization-09e91031.js');
6
+ const cart = require('./cart-65e8da66.js');
7
+ const paypal = require('./paypal-1952f6ec.js');
8
+ const localization = require('./localization-90650d7d.js');
9
9
  const zonosStore = require('./zonosStore-fee716c9.js');
10
10
  const handleFetch = require('./handleFetch-954f30e1.js');
11
11
  const createCustomEvent = require('./createCustomEvent-7b6fad95.js');
@@ -14,11 +14,12 @@ 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-df662cd1.js');
18
- const renderCheckoutCurrency = require('./renderCheckoutCurrency-d902f973.js');
19
- const placeTestOrder = require('./placeTestOrder-e0f80338.js');
17
+ const invoice = require('./invoice-96f5c802.js');
18
+ const renderCheckoutCurrency = require('./renderCheckoutCurrency-fd35b4ef.js');
19
+ const placeTestOrder = require('./placeTestOrder-30191a8f.js');
20
20
  const renderFallback = require('./renderFallback-bc20ee20.js');
21
21
  require('./isDarkColor-ebc74b4d.js');
22
+ require('./TaxId-12acedde.js');
22
23
  require('./isContrastColor-ef24b7aa.js');
23
24
  require('./submitGtag-74762255.js');
24
25
 
@@ -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-73d7ecdc.js');
7
- const invoice = require('./invoice-df662cd1.js');
8
- const paypal = require('./paypal-11acb15f.js');
9
- const localization = require('./localization-09e91031.js');
6
+ const cart = require('./cart-65e8da66.js');
7
+ const invoice = require('./invoice-96f5c802.js');
8
+ const paypal = require('./paypal-1952f6ec.js');
9
+ const localization = require('./localization-90650d7d.js');
10
10
  const zonosStore = require('./zonosStore-fee716c9.js');
11
11
  const buildCartItemsByTempCart = require('./buildCartItemsByTempCart-edddbf4b.js');
12
12
  const handleFetch = require('./handleFetch-954f30e1.js');
@@ -16,6 +16,7 @@ const VarianceTest = require('./VarianceTest-bec00ea8.js');
16
16
  const ILanguage = require('./ILanguage-98b04442.js');
17
17
  require('./isDarkColor-ebc74b4d.js');
18
18
  require('./getBorderRadius-4da24d7c.js');
19
+ require('./TaxId-12acedde.js');
19
20
  require('./isContrastColor-ef24b7aa.js');
20
21
  require('./submitGtag-74762255.js');
21
22
 
@@ -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-09e91031.js');
6
+ const localization = require('./localization-90650d7d.js');
7
7
  const zonosStore = require('./zonosStore-fee716c9.js');
8
8
  const ILanguage = require('./ILanguage-98b04442.js');
9
9
  require('./handleFetch-954f30e1.js');
@@ -3,14 +3,15 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-b1f95d96.js');
6
- const cart = require('./cart-73d7ecdc.js');
7
- const localization = require('./localization-09e91031.js');
6
+ const cart = require('./cart-65e8da66.js');
7
+ const localization = require('./localization-90650d7d.js');
8
8
  const zonosStore = require('./zonosStore-fee716c9.js');
9
- const renderCheckoutCurrency = require('./renderCheckoutCurrency-d902f973.js');
9
+ const renderCheckoutCurrency = require('./renderCheckoutCurrency-fd35b4ef.js');
10
10
  const getBorderRadius = require('./getBorderRadius-4da24d7c.js');
11
11
  require('./VarianceTest-bec00ea8.js');
12
12
  require('./handleFetch-954f30e1.js');
13
13
  require('./isDarkColor-ebc74b4d.js');
14
+ require('./TaxId-12acedde.js');
14
15
 
15
16
  const zonosPolicyConsentCss = ":host{font-family:var(--zonos--font-family, Inter), Inter;display:block;white-space:normal}:host *{font-family:var(--zonos--font-family, Inter), Inter}:host img{max-width:100%}:host dl,:host dd,:host h1,:host h2,:host h3,:host h4,:host h5,:host h6,:host hr,:host figure,:host p,:host pre{margin:0}:host{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}:host{display:block;margin-top:20px}.zonos--policy-consent{background-color:var(--zonos-elements-gray-50);border:1px solid var(--zonos-elements-gray-200);border-radius:8px;padding:12px 14px;-webkit-transition:border-color 0.15s ease, background-color 0.15s ease;transition:border-color 0.15s ease, background-color 0.15s ease}.zonos--policy-consent:hover{border-color:var(--zonos-elements-gray-300)}.zonos--policy-consent--error{background-color:var(--zonos-elements-red-50);border-color:var(--zonos-elements-red-400)}.zonos--policy-consent-label{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox;display:flex;gap:10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.zonos--policy-consent-checkbox{accent-color:var(--zonos-elements-blue-600);cursor:pointer;-ms-flex-negative:0;flex-shrink:0;height:18px;margin:0;width:18px}.zonos--policy-consent-text{color:var(--zonos-elements-gray-800);font-size:14px;line-height:1.45}.zonos--policy-consent-text a{color:var(--zonos-elements-blue-600);text-decoration:underline;text-underline-offset:2px}.zonos--policy-consent-text a:hover{color:var(--zonos-elements-blue-700)}.zonos--policy-consent-error{color:var(--zonos-elements-red-600);font-size:13px;line-height:1.4;margin-top:8px;padding:0 4px}";
16
17
  const ZonosPolicyConsentStyle0 = zonosPolicyConsentCss;
@@ -4,6 +4,7 @@ import { stripeStore, stripeStoreApplyPromoCode, stripeStoreRemovePromoCode, } f
4
4
  import { localizationStore } from "../../../store/hello/localization";
5
5
  import { translate } from "../../../store/translationStore";
6
6
  import { zonosStore } from "../../../store/zonosStore";
7
+ import { isEuDapRemittance } from "../../../utils/checkout/isEuDapRemittance";
7
8
  import { renderCheckoutCurrency } from "../../../utils/checkout/renderCheckoutCurrency";
8
9
  import { hasInclusivePrice } from "../../../utils/hasInclusivePrice";
9
10
  import { parseLinkedText } from "../../../utils/parseLinkedText";
@@ -56,6 +57,41 @@ export class ZonosCartSubtotal {
56
57
  }
57
58
  return null;
58
59
  };
60
+ /**
61
+ * EU 3-EUR cutover (05CHECK-893): for EU remittance quotes that we keep as DAP
62
+ * (see [[isEuDapRemittance]]), taxes and fees are included in the checkout
63
+ * total while duties are paid upon delivery. Returns the foreign (presentment)
64
+ * estimates needed for the dedicated message, or `null` when the selected
65
+ * quote isn't this case.
66
+ */
67
+ this.getEuDapDetails = () => {
68
+ var _a, _b, _c, _d, _e, _f;
69
+ const selectedLandedCost = cartStore.selectedLandedCost;
70
+ const landedCost = selectedLandedCost === null || selectedLandedCost === void 0 ? void 0 : selectedLandedCost.landedCost;
71
+ if (!landedCost) {
72
+ return null;
73
+ }
74
+ const isEuDap = isEuDapRemittance({
75
+ deliveryType: (_b = (_a = cartStore.selectedShippingOption) === null || _a === void 0 ? void 0 : _a.shippingProfile) === null || _b === void 0 ? void 0 : _b.serviceLevel.deliveryType,
76
+ landedCost,
77
+ shipToCountry: (_c = stripeStore.stripeAddressEventData) === null || _c === void 0 ? void 0 : _c.value.address.country,
78
+ });
79
+ if (!isEuDap) {
80
+ return null;
81
+ }
82
+ // Landed cost amounts are in the source currency; convert to presentment.
83
+ const exchangeRate = selectedLandedCost.subtotals.exchangeRate.rate;
84
+ const sumAmounts = (amounts) => amounts.reduce((total, { amount }) => total + amount, 0);
85
+ // Taxes and fees are collected at checkout, so use the checkout session
86
+ // subtotals (already in presentment currency) — this is what the shopper
87
+ // actually pays. Duties are not collected (paid on delivery), so they come
88
+ // from the landed cost estimate converted to presentment.
89
+ const checkoutSubtotals = (_d = cartStore.checkoutSession) === null || _d === void 0 ? void 0 : _d.subtotals;
90
+ return {
91
+ dutiesEstimate: sumAmounts(landedCost.duties) * exchangeRate,
92
+ taxesAndFeesEstimate: ((_e = checkoutSubtotals === null || checkoutSubtotals === void 0 ? void 0 : checkoutSubtotals.taxes) !== null && _e !== void 0 ? _e : 0) + ((_f = checkoutSubtotals === null || checkoutSubtotals === void 0 ? void 0 : checkoutSubtotals.fees) !== null && _f !== void 0 ? _f : 0),
93
+ };
94
+ };
59
95
  }
60
96
  render() {
61
97
  var _a, _b, _c, _d, _e;
@@ -64,6 +100,9 @@ export class ZonosCartSubtotal {
64
100
  ? cartStore.subtotal + cartStore.adjustmentTotal
65
101
  : cartStore.total;
66
102
  const showDutyTaxesInfo = cartStore.step === 'payment' || cartStore.step === 'shipping';
103
+ // EU 3-EUR cutover (05CHECK-893): when we collect and remit taxes for an EU
104
+ // DAP quote, taxes and fees are included while duties are paid on delivery.
105
+ const euDapDetails = this.getEuDapDetails();
67
106
  // Show 0 for subtotal and total when all items are restricted
68
107
  const total = cartStoreHasOneEligibleItem() ? cartTotal : 0;
69
108
  // Total is in target currency, devide by target rate to get base currency
@@ -162,7 +201,19 @@ export class ZonosCartSubtotal {
162
201
  amount: cartStore.shipping,
163
202
  isForeign: true,
164
203
  })
165
- : '-')), showDutyTaxesInfo && (h("tr", { class: "zonos--row zonos--cart-duties" }, h("td", { class: "zonos--column" }), renderLandedCost())), shouldRenderPromoInput && (h("tr", { class: "zonos--row zonos--cart-promo-code" }, h("td", { class: "zonos--column" }), !!appliedPromoCode ? (h(Fragment, null, h("td", { class: "zonos--column zonos--cart-promo-code-col" }, this.loading ? (h("zonos-spinner", { size: 16 })) : (h("zonos-badge", { dismissHandler: () => removePromoCode() }, cartStore.promoCode))), h("td", { class: "zonos--column zonos--cart-promo-code-col" }))) : (h("td", { class: "zonos--column zonos--cart-promo-code-col", colSpan: 2 }, h("div", { class: "zonos--cart-promo-code-input-wrapper" }, h("zonos-input", { class: "zonos--cart-promo-code-input", inputLabel: translate('Add promotional code'), inputValue: cartStore.promoCode, isError: cartStore.promoCodeError, onInputChange: e => (cartStore.promoCode = e.detail.trim()), onKeyDown: e => {
204
+ : '-')), showDutyTaxesInfo &&
205
+ (euDapDetails ? (
206
+ // EU DAP remittance: taxes and fees are collected/included, duties
207
+ // are estimated and paid upon delivery — show them on two lines.
208
+ h(Fragment, null, h("tr", { class: "zonos--row zonos--cart-duties" }, h("td", { class: "zonos--column" }), h("td", { class: "zonos--column zonos--cart-subtotal-title zonos--landed-cost" }, h("zonos-text", { class: "zonos--title", type: "semiBoldLabel" }, translate('Taxes and fees'))), h("td", { class: "zonos--column zonos--cart-subtotal-price zonos--landed-cost" }, h("div", { class: "zonos--cart-duty-tax-price" }, renderCheckoutCurrency({
209
+ amount: euDapDetails.taxesAndFeesEstimate,
210
+ isForeign: true,
211
+ })))), h("tr", { class: "zonos--row zonos--cart-duties" }, h("td", { class: "zonos--column" }), h("td", { class: "zonos--column zonos--cart-subtotal-title zonos--landed-cost" }, h("zonos-text", { class: "zonos--title", type: "semiBoldLabel" }, translate('Duties')), translate('Estimated [amount]', {
212
+ amount: renderCheckoutCurrency({
213
+ amount: euDapDetails.dutiesEstimate,
214
+ isForeign: true,
215
+ }),
216
+ })), h("td", { class: "zonos--column zonos--cart-subtotal-price zonos--landed-cost" }, h("div", { class: "zonos--cart-duty-tax-price" }, translate('Due at delivery')))))) : (h("tr", { class: "zonos--row zonos--cart-duties" }, h("td", { class: "zonos--column" }), renderLandedCost()))), shouldRenderPromoInput && (h("tr", { class: "zonos--row zonos--cart-promo-code" }, h("td", { class: "zonos--column" }), !!appliedPromoCode ? (h(Fragment, null, h("td", { class: "zonos--column zonos--cart-promo-code-col" }, this.loading ? (h("zonos-spinner", { size: 16 })) : (h("zonos-badge", { dismissHandler: () => removePromoCode() }, cartStore.promoCode))), h("td", { class: "zonos--column zonos--cart-promo-code-col" }))) : (h("td", { class: "zonos--column zonos--cart-promo-code-col", colSpan: 2 }, h("div", { class: "zonos--cart-promo-code-input-wrapper" }, h("zonos-input", { class: "zonos--cart-promo-code-input", inputLabel: translate('Add promotional code'), inputValue: cartStore.promoCode, isError: cartStore.promoCodeError, onInputChange: e => (cartStore.promoCode = e.detail.trim()), onKeyDown: e => {
166
217
  if (e.key === 'Enter') {
167
218
  void applyPromoCode();
168
219
  }
@@ -2157,7 +2157,7 @@ export class ZonosCheckout {
2157
2157
  "signature": "(session: CheckoutSessionDetailsFragment) => Promise<void>",
2158
2158
  "parameters": [{
2159
2159
  "name": "session",
2160
- "type": "{ cartId: string | null; clientSecret: string; completedAt: string | null; customerProfile: { email: string | null; locations: { administrativeArea: string; countryCode: CountryCode; email: string | null; line1: string; line2: string | null; name: string | null; phone: string | null; locality: string; postalCode: string; }[] | null; name: string | null; storeCreditBalance: number | null; } | null; customerSessionClientSecret: string | null; id: string; landedCost: { amountSubtotals: { discounts: number | null; duties: number; fees: number; items: number; landedCostTotal: number; shipping: number; taxes: number; } | null; appliedAdjustments: { adjustment: { name: string | null; source: AdjustmentSource | null; } | null; amount: number; type: LandedCostAdjustmentType | null; item: { amount: number; } | null; }[] | null; currencyCode: CurrencyCode; deMinimis: { type: DeMinimisType; threshold: DeMinimisThreshold; method: IncotermCode; note: string; formula: string; }[]; duties: { amount: number; currencyCode: CurrencyCode; }[]; fees: { amount: number; currencyCode: CurrencyCode; }[]; landedCostGuaranteeCode: LandedCostGuaranteeCode; id: string; method: IncotermCode; remittance: { amount: number; description: string; }[]; rootId: string; shipmentRating: { amount: number; currencyCode: CurrencyCode; displayName: string; id: string; shippingProfile: { serviceLevel: { code: string; }; transitTime: { guaranteedDelivery: string | null; max: number | null; min: number | null; type: TransitTypeCode | null; } | null; } | null; }; taxes: { amount: number; currencyCode: CurrencyCode; }[]; } | null; metadata: ({ key: string; value: string; } | null)[] | null; organizationId: string; paymentProcessor: CheckoutPaymentProcessorType | null; references: { inclusivePriceConfigurationId: string | null; } | null; subtotals: { adjustments: number; duties: number; exchangeRate: { id: string; rate: number; sourceCurrencyCode: CurrencyCode; targetCurrencyCode: CurrencyCode; type: ExchangeRateType; }; fees: number; items: number; landedCostTotal: number; presentmentCurrencyCode: CurrencyCode; shipping: number; storeCredit: number; taxes: number; total: number; }; varianceTestResults: { selectedVariantKey: string; testKey: string; }[] | null; }",
2160
+ "type": "{ cartId: string | null; clientSecret: string; completedAt: string | null; customerProfile: { email: string | null; locations: { administrativeArea: string; countryCode: CountryCode; email: string | null; line1: string; line2: string | null; name: string | null; phone: string | null; locality: string; postalCode: string; }[] | null; name: string | null; storeCreditBalance: number | null; } | null; customerSessionClientSecret: string | null; id: string; landedCost: { amountSubtotals: { discounts: number | null; duties: number; fees: number; items: number; landedCostTotal: number; shipping: number; taxes: number; } | null; appliedAdjustments: { adjustment: { name: string | null; source: AdjustmentSource | null; } | null; amount: number; type: LandedCostAdjustmentType | null; item: { amount: number; } | null; }[] | null; currencyCode: CurrencyCode; deMinimis: { type: DeMinimisType; threshold: DeMinimisThreshold; method: IncotermCode; note: string; formula: string; }[]; duties: { amount: number; currencyCode: CurrencyCode; }[]; fees: { amount: number; currencyCode: CurrencyCode; }[]; landedCostGuaranteeCode: LandedCostGuaranteeCode; id: string; method: IncotermCode; remittance: { amount: number; description: string; }[]; rootId: string; shipmentRating: { amount: number; currencyCode: CurrencyCode; displayName: string; id: string; shippingProfile: { serviceLevel: { code: string; deliveryType: DeliveryType | null; }; transitTime: { guaranteedDelivery: string | null; max: number | null; min: number | null; type: TransitTypeCode | null; } | null; } | null; }; taxes: { amount: number; currencyCode: CurrencyCode; }[]; } | null; metadata: ({ key: string; value: string; } | null)[] | null; organizationId: string; paymentProcessor: CheckoutPaymentProcessorType | null; references: { inclusivePriceConfigurationId: string | null; } | null; subtotals: { adjustments: number; duties: number; exchangeRate: { id: string; rate: number; sourceCurrencyCode: CurrencyCode; targetCurrencyCode: CurrencyCode; type: ExchangeRateType; }; fees: number; items: number; landedCostTotal: number; presentmentCurrencyCode: CurrencyCode; shipping: number; storeCredit: number; taxes: number; total: number; }; varianceTestResults: { selectedVariantKey: string; testKey: string; }[] | null; }",
2161
2161
  "docs": ""
2162
2162
  }],
2163
2163
  "references": {